@marmot-systems/common 2.0.94 → 2.0.95

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.
package/dist/index.cjs CHANGED
@@ -331,8 +331,7 @@ function makeInvoiceSchemas(t) {
331
331
  tax_rate: import_zod8.z.number().default(0),
332
332
  tax_amount: import_zod8.z.number().default(0),
333
333
  warehouse_id: import_zod8.z.uuid().optional(),
334
- invoice_status: import_zod8.z.enum(INVOICE_STATUS).default("finalized"),
335
- point_of_sales_id: import_zod8.z.number().optional()
334
+ invoice_status: import_zod8.z.enum(INVOICE_STATUS).default("finalized")
336
335
  }).superRefine(({ invoice_date, due_date }, ctx) => {
337
336
  if (due_date < invoice_date) {
338
337
  ctx.addIssue({
@@ -541,10 +540,7 @@ function makePosSchemas(t) {
541
540
  invoice_number_end_range: InvoiceNumberSchema,
542
541
  next_invoice_number: InvoiceNumberSchema,
543
542
  issuance_date: YmdDateSchema,
544
- issuance_deadline: YmdDateSchema,
545
- pos_name: import_zod11.z.string().transform(normalizeSpaces).pipe(
546
- import_zod11.z.string().min(1, t("pos_name_required")).max(100, t("pos_name_max"))
547
- )
543
+ issuance_deadline: YmdDateSchema
548
544
  }).superRefine(
549
545
  ({
550
546
  issuance_date,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/types/money_types.ts","../src/utils/utils.ts","../src/types/shared_types.ts","../src/domains/auth/login/login_schemas.ts","../src/domains/companies/companies_schemas.ts","../src/domains/companies/companies_types.ts","../src/domains/users/users_schemas.ts","../src/domains/customers/customer_schemas.ts","../src/domains/products/product_schemas.ts","../src/domains/invoices/invoices_schemas.ts","../src/domains/invoices/invoices_types.ts","../src/domains/invoice_items/invoice_items_mappers.ts","../src/domains/credit_applications/credit_applications_schemas.ts","../src/domains/payments/payments_schemas.ts","../src/domains/payments/payments_types.ts","../src/utils/money_utils.ts","../src/utils/date_utils.ts","../src/utils/errors_utils.ts","../src/domains/point_of_sales/point_of_sales_schemas.ts","../src/domains/point_of_sales/point_of_sales_types.ts"],"sourcesContent":["export * from \"./utils/utils\";\n\nexport { CreatedLocation, UUID } from \"./types/shared_types\";\n\n//Login\nexport * from \"./domains/auth/login/login_schemas\";\n\n//Company\nexport * from \"./domains/companies/companies_schemas\";\nexport * from \"./domains/companies/companies_types\";\n\n//Users\nexport * from \"./domains/users/users_types\";\nexport * from \"./domains/users/users_schemas\";\n\n//Customers\nexport * from \"./domains/customers/customer_schemas\";\nexport * from \"./domains/customers/customers_types\";\n\n//Vendors\nexport * from \"./domains/vendors/vendors_types\";\n\n// Products\nexport * from \"./domains/products/product_schemas\";\nexport * from \"./domains/products/products_types\";\n\n//Warehouses\nexport * from \"./domains/warehouses/warehouses_types\";\n\n//Inventory\nexport * from \"./domains/inventory/inventory_locations/inventory_locations_types\";\nexport * from \"./domains/inventory/inventory_balances/inventory_balances_type\";\n\n//Invoices\nexport * from \"./domains/invoices/invoices_schemas\";\nexport * from \"./domains/invoices/invoices_types\";\n\n//Invoice Items\nexport * from \"./domains/invoice_items/invoice_items_types\";\nexport * from \"./domains/invoice_items/invoice_items_mappers\";\n\n//Credit Applications\nexport * from \"./domains/credit_applications/credit_applications_schemas\";\nexport * from \"./domains/credit_applications/credit_applications_types\";\n\n//Payments\nexport * from \"./domains/payments/payments_schemas\";\nexport * from \"./domains/payments/payments_types\";\n\n//Drivers\nexport * from \"./domains/drivers/driver_customers/driver_customers_types\";\nexport * from \"./domains/drivers/driver_settings/driver_settings_types\";\n\n//Sync\nexport * from \"./domains/sync/sync_types\";\n\n// Money\nexport * from \"./utils/money_utils\";\nexport * from \"./types/money_types\";\n\n//Date\nexport * from \"./utils/date_utils\";\n\n//Errors\nexport * from \"./utils/errors_utils\";\n\n//Audit Events\nexport * from \"./domains/audit_events/audit_events_types\";\n\n//Country Tax Rules\nexport * from \"./domains/country_tax_rules/country_tax_rules_types\";\n\n//Point of sales\nexport * from \"./domains/point_of_sales/point_of_sales_schemas\";\nexport * from \"./domains/point_of_sales/point_of_sales_types\";\n","import { IsoCountryCode } from \"../domains/companies/companies_types\";\n\nexport type IsoCurrencyCode = \"USD\" | \"HNL\";\ntype Locale = \"en-US\" | \"es-HN\";\n\nexport const countryToCurrency: Record<IsoCountryCode, IsoCurrencyCode> = {\n US: \"USD\",\n HN: \"HNL\",\n};\n\nexport const currencyToLocale: Record<IsoCurrencyCode, Locale> = {\n USD: \"en-US\",\n HNL: \"es-HN\",\n};\n","import * as GlobalTypes from \"./types\";\nimport { IsoCountryCode } from \"../domains/companies/companies_types\";\nimport {\n IsoCurrencyCode,\n countryToCurrency,\n currencyToLocale,\n} from \"../types/money_types\";\n\nimport { z } from \"zod\";\nimport { SchemaT } from \"../domains/invoices/invoices_types\";\n\n/**\n * Validates zod currency with precision.\n *\n *\n * @param minAmount\n * @param maxAmount\n * @returns\n */\nexport function handleZodCurrency(\n minAmount: number,\n maxAmount: number,\n t?: SchemaT,\n) {\n if (!t) {\n const fromString = z\n .string({\n error: \"Enter a valid number\",\n })\n .refine((s) => s.trim().length > 0, { error: \"Enter a valid number\" })\n .transform((s) => s.replace(/[,\\s]/g, \"\"))\n .refine((s) => s !== \"\" && !Number.isNaN(Number(s)), {\n error: \"Enter a valid number\",\n })\n .refine((s) => Number.isFinite(Number(s)), {\n error: \"Enter a valid number\",\n })\n .refine((s) => Number(s) >= 0, { error: \"Enter a positive number\" })\n .transform((s) => Number(s));\n\n const fromNumber = z\n .number()\n .refine((n) => Number.isFinite(n), { error: \"Enter a valid number\" })\n .refine((n) => n >= 0, { error: \"Enter a positive number\" });\n\n return z\n .union([fromString, fromNumber])\n .transform((n) => roundWithPrecision(n, 2))\n .refine((n) => n >= minAmount, {\n error: `Must be at least ${minAmount}`,\n })\n .refine((n) => n <= maxAmount, {\n error: `Exceeds allowed limit ${maxAmount}`,\n });\n }\n\n const fromString = z\n .string({\n error: t(\"enter_a_valid_number\"),\n })\n .refine((s) => s.trim().length > 0, {\n error: t(\"enter_a_valid_number\"),\n })\n .transform((s) => s.replace(/[,\\s]/g, \"\"))\n .refine((s) => s !== \"\" && !Number.isNaN(Number(s)), {\n error: t(\"enter_a_valid_number\"),\n })\n .refine((s) => Number.isFinite(Number(s)), {\n error: t(\"enter_a_valid_number\"),\n })\n .refine((s) => Number(s) >= 0, {\n error: t(\"enter_a_positive_number\"),\n })\n .transform((s) => Number(s));\n\n const fromNumber = z\n .number()\n .refine((n) => Number.isFinite(n), {\n error: t(\"enter_a_valid_number\"),\n })\n .refine((n) => n >= 0, {\n error: t(\"enter_a_positive_number\"),\n });\n\n return z\n .union([fromString, fromNumber])\n .transform((n) => roundWithPrecision(n, 2))\n .refine((n) => n >= minAmount, {\n error: `${t(\"must_be_at_least\")} ${minAmount}`,\n })\n .refine((n) => n <= maxAmount, {\n error: `${t(\"exceeds_allowed_limit\")} ${maxAmount}`,\n });\n}\n\n/**\n * Trims any leading or trailing spaces\n * Transforms empty strings into undefined.\n *\n * @param s\n * @returns\n */\nexport const transformEmptyStringToUndefined = (s: string) =>\n s.trim() === \"\" ? undefined : s;\n\n/**\n * - Collapses any run of whitespace in a string (spaces, tabs, newlines, nbspb, and other weird unicode spaces etc.)\n * into a single ASCII space.\n * - Trims leading and trailing whitespace.\n * \" Jared \\n Gomez \\t Driver\\t \" -> \"Jared Gomez Driver\"\n *\n * @param s\n * @returns\n */\nexport const normalizeSpaces = (s: string) => whitespace(s, \"normalize\");\n\n/**\n * Removes all whitespace from a string\n * @param s\n * @returns\n */\nexport const removeAllWhitespace = (s: string) => whitespace(s, \"remove\");\n\nconst whitespace = (s: string, mode: GlobalTypes.WhitespaceMode) => {\n if (mode === \"remove\") {\n return s.replace(/\\s+/g, \"\");\n }\n\n return s.replace(/\\s+/g, \" \").trim();\n};\n\n/**\n * Removes all dashes and + signs from a string\n * +1-305-555-0123 -> \"13055550123\"\n * 305-555-0123 -> \"3055550123\"\n *\n * @param s\n * @returns\n */\nexport const removeDashesAndPlusSign = (s: string): string =>\n s.replace(/[+-]/g, \"\");\n\n/**\n * Rounds a number to a certain precision.\n * Contract:\n * 1. Number must be finite and non negative.\n * 2. Precision must be finite nonnegative and an integer.\n * 3. Precision must be <= Max precision\n * 4. Returns a number >= 0\n * Default is round half up.\n *\n * @param num\n * @param precision\n * @param opts\n * @returns\n */\nexport function roundWithPrecision(\n num: number,\n precision: number,\n opts?: GlobalTypes.ToFixedOptions,\n): number {\n const MAX_PRECISION = 2;\n const { roundType = \"half_up\" } = opts ?? {};\n\n if (!Number.isFinite(num) || num < 0) {\n throw new RangeError(\"Number must be finite and greater than 0.\");\n }\n\n if (\n !Number.isFinite(precision) ||\n !Number.isInteger(precision) ||\n precision < 1\n ) {\n throw new RangeError(\"Precision must be a finite integer greater than 0.\");\n }\n\n if (precision > MAX_PRECISION) {\n throw new RangeError(\"Max precision allowed is 2.\");\n }\n\n return Number(\n (+(Math.round(+(num + \"e\" + precision)) + \"e\" + -precision)).toFixed(\n precision,\n ),\n );\n}\n\nexport function getCurrencyFromCountry(\n country: IsoCountryCode,\n): IsoCurrencyCode {\n return countryToCurrency[country];\n}\n\nexport function formatMoneyCurrency(value: number, currency: IsoCurrencyCode) {\n const locale =\n currency in currencyToLocale ? currencyToLocale[currency] : \"en-US\";\n\n const formatted = new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency: currency,\n }).format(value);\n\n return sanitizeSpaces(formatted);\n}\n\nfunction sanitizeSpaces(str: string): string {\n return str\n .replace(/\\u00A0/g, \" \")\n .replace(/\\u202F/g, \" \")\n .replace(/[^\\x20-\\x7E]/g, \"\");\n}\n","import { z } from \"zod\";\n\nexport const CREATED_LOCATION = [\"web\", \"mobile\"] as const;\n\nexport type CreatedLocation = (typeof CREATED_LOCATION)[number];\n\nexport type IntBool = 0 | 1;\n\nexport const uuidSchema = z.uuid();\nexport type UUID = z.infer<typeof uuidSchema>;\n\nexport type status = \"active\" | \"inactive\";\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../../utils/utils\";\n\nexport const LoginFormSchema = z.strictObject({\n user_email: z\n .string({ error: \"Email required\" })\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email()\n .max(254, \"Customer email must be at most 254 characters.\")\n .transform((email) => email.toLowerCase())\n ),\n password: z\n .string({ error: \"Password required\" })\n .min(1, { error: \"Password required\" }),\n});\n","import { z } from \"zod\";\nimport { COMPANY_LANGUAGES, ISO_COUNTRY_CODES } from \"./companies_types\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nconst iso_country_code = z.enum(ISO_COUNTRY_CODES, {\n error: \"Country code not supported.\",\n});\n\nexport function makeRegisterSchemas(t: SchemaT) {\n const RegisterFormSchema = z.strictObject({\n companyData: z.strictObject({\n company_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"company_name_required\"))\n .max(50, t(\"company_name_max\")),\n ),\n company_address: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"company_address_required\"))\n .max(100, t(\"company_address_max\")),\n ),\n company_phone_number: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .transform(GlobalUtils.removeDashesAndPlusSign)\n .refine((s) => /^\\d{4,15}$/.test(s), {\n error: t(\"phone_number_required\"),\n }),\n iso_country_code: z\n .string({ error: t(\"country_required\") })\n .transform(GlobalUtils.removeAllWhitespace)\n .transform((s) => s.toUpperCase())\n .pipe(iso_country_code),\n }),\n adminUserData: z.strictObject({\n user_first_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"first_name_required\"))\n .max(50, t(\"first_name_max\")),\n ),\n user_last_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"lsat_name_required\"))\n .max(50, t(\"last_name_max\")),\n ),\n user_email: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email({ error: t(\"email_required\") })\n .max(254, t(\"email_max\"))\n .transform((email) => email.toLowerCase()),\n ),\n password: z\n .string()\n .min(8, t(\"pass_min\"))\n .max(25, t(\"pass_max\"))\n .regex(/[A-Z]/, t(\"pass_uppercase\"))\n .regex(/[a-z]/, t(\"pass_lowercase\"))\n .regex(/\\d/, t(\"pass_one_number\"))\n .regex(/[@$!%*?&#^_+=-]/, t(\"pass_special_character\"))\n .regex(/^\\S*$/, t(\"pass_no_whitespace\")),\n }),\n });\n\n return { RegisterFormSchema };\n}\n\nconst schemas = makeRegisterSchemas((k) => k);\n\nexport const CompanyFormSchema =\n schemas.RegisterFormSchema.shape.companyData.safeExtend({\n company_email: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email(\"Invalid company email.\")\n .max(254, \"Company email must be at most 254 characters.\")\n .transform((email) => email.toLowerCase()),\n ),\n rtn: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(z.string().max(100, \"RTN must be at most 100 characters.\"))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n web_language: z.enum(COMPANY_LANGUAGES, {\n error: \"Please select a web portal language.\",\n }),\n });\n","export const ISO_COUNTRY_CODES = [\"US\", \"HN\"] as const;\n\nexport type IsoCountryCode = (typeof ISO_COUNTRY_CODES)[number];\n\nexport const USER_ROLES = [\"admin\", \"driver\"] as const;\n\nexport type UserRole = (typeof USER_ROLES)[number];\n\nexport type InventorySystem = \"warehouse_only\" | \"dsd\";\n\nexport type CompanySnapshot = {\n company_id: number;\n company_name: string;\n company_address: string;\n company_phone_number: string;\n company_email: string;\n inventory_system: InventorySystem;\n iso_country_code: IsoCountryCode;\n rtn: string | null;\n};\n\nexport const COMPANY_LANGUAGES = [\"es\", \"en\"] as const;\n\nexport type CompanyLanguages = (typeof COMPANY_LANGUAGES)[number];\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makeUsersSchemas(t: SchemaT) {\n const CreateUserSchema = z.object({\n firstName: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"first_name_required\"))\n .max(50, t(\"first_name_max\")),\n ),\n lastName: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z.string().min(1, t(\"lsat_name_required\")).max(50, t(\"last_name_max\")),\n ),\n email: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email({ error: t(\"email_required\") })\n .max(254, t(\"email_max\"))\n .transform((email) => email.toLowerCase()),\n ),\n password: z\n .string()\n .min(8, t(\"pass_min\"))\n .max(25, t(\"pass_max\"))\n .regex(/[A-Z]/, t(\"pass_uppercase\"))\n .regex(/[a-z]/, t(\"pass_lowercase\"))\n .regex(/\\d/, t(\"pass_one_number\"))\n .regex(/[@$!%*?&#^_+=-]/, t(\"pass_special_character\"))\n .regex(/^\\S*$/, t(\"pass_no_whitespace\")),\n\n accountType: z.enum([\"admin\", \"driver\"], {\n error: t(\"account_type\"),\n }),\n });\n\n return { CreateUserSchema };\n}\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makeCustomerSchemas(t: SchemaT) {\n const CustomerFormSchema = z.strictObject({\n customer_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"customer_name_required\"))\n .max(50, t(\"customer_name_max\")),\n ),\n\n customer_address: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(z.string().max(100, t(\"customer_address_max\")))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n customer_phone_number: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .transform(GlobalUtils.removeDashesAndPlusSign)\n .refine((s) => s === \"\" || /^\\d{4,15}$/.test(s), {\n error: t(\"customer_phone_number\"),\n })\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n customer_email_address: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .pipe(\n z\n .email()\n .max(254, t(\"customer_email_max\"))\n .transform((email) => email.toLowerCase())\n .optional(),\n )\n .optional(),\n });\n\n return { CustomerFormSchema };\n}\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makeProductSchemas(t: SchemaT) {\n const ProductFormSchema = z\n .strictObject({\n product_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"product_name_required\"))\n .max(50, t(\"product_name_max\")),\n ),\n\n product_description: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(z.string().max(100, t(\"product_descr_max\")))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n product_sku: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(z.string().max(30, t(\"product_sku_max\")))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n product_upc: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .refine((s) => s === \"\" || /^\\d{12}$/.test(s), {\n error: t(\"product_upc_test\"),\n })\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n country_tax_rule_id: z.number().optional(),\n\n product_gtin_14: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .refine((s) => s === \"\" || /^\\d{14}$/.test(s), {\n error: \"GTIN14 must be exactly 14 digits\",\n })\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n product_type: z.enum([\"unit\", \"weight\", \"case\"], {\n error: t(\"product_type_validation\"),\n }),\n\n weight_unit: z.preprocess(\n (v) => {\n if (v === \"\") return undefined;\n if (typeof v === \"string\") return v.trim().toLowerCase();\n return v;\n },\n z.enum([\"kg\", \"lb\", \"g\", \"oz\"]).optional(),\n ),\n\n price: GlobalUtils.handleZodCurrency(0, 99_999.99, t),\n cost: GlobalUtils.handleZodCurrency(0, 99_999.99, t),\n })\n\n .superRefine((data, ctx) => {\n if (data.product_type === \"weight\" && !data.weight_unit) {\n ctx.addIssue({\n code: \"custom\",\n error: t(\"weight_unit_required\"),\n path: [\"weight_unit\"],\n });\n }\n\n if (\n data.product_type !== \"weight\" &&\n typeof data.weight_unit !== \"undefined\"\n ) {\n ctx.addIssue({\n code: \"custom\",\n error: t(\"weight_unit_empty\"),\n path: [\"weight_unit\"],\n });\n }\n });\n\n return { ProductFormSchema };\n}\n","import { z } from \"zod\";\nimport {\n CREDIT_TYPE,\n INVOICE_STATUS,\n INVOICE_TYPE,\n SchemaT,\n} from \"./invoices_types\";\nimport { handleZodCurrency } from \"../../utils/utils\";\n\nexport const YmdDateSchema = z\n .string()\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/, \"Use YYYY-MM-DD\");\n\n///////////////////////////////////////////////////////////////////////\n//English / Spanish implementation\n\nexport function makeInvoiceSchemas(t: SchemaT) {\n const YmdDateSchema = z\n .string()\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/, \"Use YYYY-MM-DD\");\n\n const BaseInvoice = z\n .object({\n invoice_type: z.enum(INVOICE_TYPE, {\n error: t(\"invoice_type_not_found\"),\n }),\n invoice_date: YmdDateSchema,\n due_date: YmdDateSchema,\n tax_rate: z.number().default(0),\n tax_amount: z.number().default(0),\n warehouse_id: z.uuid().optional(),\n invoice_status: z.enum(INVOICE_STATUS).default(\"finalized\"),\n point_of_sales_id: z.number().optional(),\n })\n .superRefine(({ invoice_date, due_date }, ctx) => {\n if (due_date < invoice_date) {\n ctx.addIssue({\n code: \"custom\",\n message: \"Due date can't be earlier than the invoice date.\",\n path: [\"due_date\"],\n });\n }\n });\n\n const LineItemBase = z.object({\n invoice_id: z.uuid().optional(),\n product_id: z.uuid({\n error: t(\"select_product\"),\n }),\n product_name: z.string().optional(),\n product_description: z.string().optional(),\n product_type: z.enum([\"unit\", \"weight\", \"case\"]).optional(),\n product_upc: z.string().optional(),\n weight_unit: z.enum([\"kg\", \"lb\", \"g\", \"oz\"]).optional(),\n quantity: handleZodCurrency(0.01, 99_999.99, t),\n country_tax_rule_id: z.number().optional(),\n tax_percentage: z.number().optional(),\n });\n\n const SalesItem = LineItemBase.safeExtend({\n price: handleZodCurrency(0, 99_999.99, t),\n credit_type: z.undefined(),\n });\n\n const CreditItem = LineItemBase.safeExtend({\n price: handleZodCurrency(0, 99_999.99, t),\n credit_type: z.enum(CREDIT_TYPE, {\n error: t(\"select_credit_type\"),\n }),\n });\n\n const PurchaseItem = LineItemBase.safeExtend({\n price: handleZodCurrency(0, 99_999.99, t),\n credit_type: z.undefined(),\n });\n\n const SalesInvoiceSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"sales\"),\n party_id: z.uuid({\n error: t(\"select_customer\"),\n }),\n invoice_items: z.array(SalesItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const CreditInvoiceSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"credit\"),\n party_id: z.uuid({\n error: t(\"select_customer\"),\n }),\n invoice_items: z.array(CreditItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const PurchaseInvoiceSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"purchase\"),\n party_id: z.uuid({\n error: t(\"select_vendor\"),\n }),\n invoice_items: z.array(PurchaseItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const SalesOrderSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"sales_order\"),\n party_id: z.uuid({\n error: t(\"select_customer\"),\n }),\n invoice_items: z.array(SalesItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const AnyInvoiceSchema = z.discriminatedUnion(\"invoice_type\", [\n SalesInvoiceSchema,\n PurchaseInvoiceSchema,\n CreditInvoiceSchema,\n SalesOrderSchema,\n ]);\n\n return {\n YmdDateSchema,\n SalesInvoiceSchema,\n CreditInvoiceSchema,\n PurchaseInvoiceSchema,\n SalesOrderSchema,\n AnyInvoiceSchema,\n };\n}\n\nexport type InvoiceSchemas = ReturnType<typeof makeInvoiceSchemas>;\n","import { z } from \"zod\";\nimport * as InvoiceSchemas from \"./invoices_schemas\";\nimport { IntBool, UUID } from \"../../types/shared_types\";\n\nexport type SchemaT = (key: string, params?: Record<string, any>) => string;\n\nexport const INVOICE_TYPE = [\n \"sales\",\n \"credit\",\n \"purchase\",\n \"sales_order\",\n] as const;\n\nexport type InvoiceType = (typeof INVOICE_TYPE)[number];\n\nexport const INVOICE_STATUS = [\"finalized\", \"voided\"] as const;\n\nexport type InvoiceStatus = (typeof INVOICE_STATUS)[number];\n\nexport const CREDIT_TYPE = [\"dump\", \"return\"] as const;\n\nexport type CreditType = (typeof CREDIT_TYPE)[number];\n\nexport type InvoiceSchemaSet = ReturnType<\n typeof InvoiceSchemas.makeInvoiceSchemas\n>;\nexport type AnyInvoiceOut = z.output<InvoiceSchemaSet[\"AnyInvoiceSchema\"]>;\n\nexport type InvoiceSnapshot = {\n invoice_id: UUID;\n invoice_type: InvoiceType;\n subtotal: string;\n tax_amount: string;\n total_amount: string;\n remaining_balance: string;\n due_date: string;\n tax_rate: string;\n is_admin_reviewed: IntBool;\n customer_id: UUID;\n company_id: number;\n short_invoice_id: string;\n invoice_date: string;\n invoice_status: InvoiceStatus;\n occurred_at_ms: string;\n cai: string | null;\n invoice_number_start_range: string | null;\n invoice_number_end_range: string | null;\n issuance_date: string | null;\n issuance_deadline: string | null;\n};\n\nexport type InvoiceSnapshotMobile = InvoiceSnapshot & {\n signature: string | null;\n};\n","import * as InvoiceItemsTypes from \"./invoice_items_types\";\n\nexport function mapInvoiceProducts(\n row: InvoiceItemsTypes.InvoiceItemResponse,\n): InvoiceItemsTypes.MappedInvoiceItem {\n return {\n invoice_item_id: row.invoice_item_id,\n product_id: row.product_id,\n quantity: Number(row.quantity),\n price: Number(row.price),\n amount: Number(row.amount),\n country_tax_rule_id: row.country_tax_rule_id ?? undefined,\n credit_type: row.credit_type ?? undefined,\n product_name: row.product_name,\n product_description: row.product_description ?? undefined,\n product_type: row.product_type,\n weight_unit: row.weight_unit ?? undefined,\n product_upc: row.product_upc ?? undefined,\n rule_name: row.rule_name ?? undefined,\n tax_percentage:\n row.tax_percentage === null ? undefined : Number(row.tax_percentage),\n };\n}\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\n\nexport const CreditApplicationSchema = z.strictObject({\n credit_invoice_id: z.uuid({ error: \"Select a credit\" }),\n applied_amount: GlobalUtils.handleZodCurrency(0.01, 999_999.99),\n});\n","import { z } from \"zod\";\nimport { PAYMENT_METHOD } from \"./payments_types\";\nimport * as GlobalUtils from \"../../utils/utils\";\n\nexport const PaymentFormSchema = z.strictObject({\n payment_method: z.enum(PAYMENT_METHOD, {\n error: \"Payment method is required.\",\n }),\n check_number: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z.string().max(50, \"Payment check number must be at most 50 characters.\")\n )\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n payment_amount: GlobalUtils.handleZodCurrency(0.01, 999_999.99),\n});\n","import { IntBool, UUID } from \"../../types/shared_types\";\n\nexport const PAYMENT_METHOD = [\n \"check\",\n \"cash\",\n \"bank_transfer\",\n \"digital_wallet\",\n] as const;\n\nexport type PaymentMethod = (typeof PAYMENT_METHOD)[number];\n\nexport type PaymentStatus = \"finalized\" | \"voided\";\n\nexport type PaymentSnapshot = {\n payment_id: UUID;\n invoice_id: UUID;\n payment_amount: string;\n payment_date: string;\n payment_method: PaymentMethod;\n check_number: string | null;\n is_admin_reviewed: IntBool;\n company_id: number;\n short_invoice_id: string;\n payment_status: PaymentStatus;\n occurred_at_ms: string;\n};\n","export const exceedsTwoDecimals = (raw: string) => {\n const s = String(raw ?? \"\").replace(/[,\\s]/g, \"\");\n const dot = s.indexOf(\".\");\n if (dot === -1) return false;\n const after = s.slice(dot + 1);\n const digitsAfter = (after.match(/\\d/g) ?? []).length;\n return digitsAfter > 2;\n};\n","// \"Today\" in the user's LOCAL timezone as YMD\nexport function todayLocalYmd(): string {\n const now = new Date();\n const y = now.getFullYear();\n const m = String(now.getMonth() + 1).padStart(2, \"0\");\n const d = String(now.getDate()).padStart(2, \"0\");\n return `${y}-${m}-${d}`;\n}\n\n// Add days in LOCAL time (no drift)\nexport function addDaysLocalYmd(ymd: string, days: number): string {\n const dt = localDateFromYmd(ymd);\n dt.setDate(dt.getDate() + days);\n return ymdFromLocalDate(dt);\n}\n\nexport function formatYmdLong(ymd: string, locale = \"en-US\"): string {\n const { y, m, d } = parseYmd(ymd);\n const utcDate = new Date(Date.UTC(y, m - 1, d)); // 00:00Z\n return new Intl.DateTimeFormat(locale, {\n dateStyle: \"long\",\n timeZone: \"UTC\",\n }).format(utcDate);\n}\n\nexport function localDateFromYmd(ymd: string): Date {\n const { y, m, d } = parseYmd(ymd);\n return new Date(y, m - 1, d); // LOCAL midnight\n}\n\nexport function ymdFromLocalDate(dt: Date): string {\n const y = dt.getFullYear();\n const m = String(dt.getMonth() + 1).padStart(2, \"0\");\n const d = String(dt.getDate()).padStart(2, \"0\");\n return `${y}-${m}-${d}`;\n}\n\nfunction parseYmd(ymd: string): { y: number; m: number; d: number } {\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(ymd);\n if (!m) throw new Error(\"Bad YMD\");\n return { y: Number(m[1]), m: Number(m[2]), d: Number(m[3]) };\n}\n","import type { FieldError, FieldErrorsImpl, Merge } from \"react-hook-form\";\n\ntype RHFError =\n | string\n | FieldError\n | Merge<FieldError, FieldErrorsImpl<any>>\n | undefined;\n\nexport const getErrorMessage = (err: RHFError): string | undefined => {\n if (!err) return undefined;\n if (typeof err === \"string\") return err;\n // FieldError has .message (string | undefined)\n const msg = (err as FieldError).message as string | undefined;\n return typeof msg === \"string\" ? msg : undefined;\n};\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { YmdDateSchema } from \"../invoices/invoices_schemas\";\nimport { POS_INVOICE_TYPE } from \"./point_of_sales_types\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makePosSchemas(t: SchemaT) {\n const HN_INVOICE_REGEX = /^\\d{3}-\\d{3}-\\d{2}-\\d{8}$/;\n\n const InvoiceNumberSchema = z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .string()\n .min(19, t(\"must_be_in_format\"))\n .max(19, t(\"must_be_in_format\"))\n .regex(HN_INVOICE_REGEX, {\n error: t(\"must_be_in_format\"),\n }),\n );\n\n const PointOfSalesSchema = z\n .strictObject({\n cai: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(z.string().min(1, t(\"cai_is_required\")).max(50, t(\"cai_max\"))),\n\n pos_invoice_type: z.enum(POS_INVOICE_TYPE, t(\"select_invoice_type\")),\n\n invoice_number_start_range: InvoiceNumberSchema,\n invoice_number_end_range: InvoiceNumberSchema,\n next_invoice_number: InvoiceNumberSchema,\n\n issuance_date: YmdDateSchema,\n issuance_deadline: YmdDateSchema,\n\n pos_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z.string().min(1, t(\"pos_name_required\")).max(100, t(\"pos_name_max\")),\n ),\n })\n .superRefine(\n (\n {\n issuance_date,\n issuance_deadline,\n invoice_number_start_range: start,\n invoice_number_end_range: end,\n next_invoice_number: next,\n },\n\n ctx,\n ) => {\n if (issuance_deadline < issuance_date) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"issuance_deadline\"),\n path: [\"issuance_deadline\"],\n });\n }\n\n const prefix = (s: string) => s.slice(0, 10); // \"NNN-NNN-NN\"\n\n if (prefix(start) !== prefix(end)) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"start_end_numbers\"),\n path: [\"invoice_number_end_range\"],\n });\n }\n\n if (prefix(start) !== prefix(next)) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"start_next_numbers\"),\n path: [\"next_invoice_number\"],\n });\n }\n\n if (!(next >= start && next <= end)) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"next_invoice_number\"),\n path: [\"next_invoice_number\"],\n });\n }\n\n if (end < start) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"end_invoice_number\"),\n path: [\"invoice_number_end_range\"],\n });\n }\n },\n );\n\n return {\n PointOfSalesSchema,\n };\n}\n","export type MappedPointOfSales = {\n point_of_sales_id: number;\n cai: string;\n pos_invoice_type: PosInvoiceType;\n invoice_number_start_range: string;\n invoice_number_end_range: string;\n next_invoice_number: string;\n issuance_date: string;\n issuance_deadline: string;\n pos_name: string;\n};\n\nexport const POS_INVOICE_TYPE = [\"sales\", \"credit\"] as const;\n\nexport type PosInvoiceType = (typeof POS_INVOICE_TYPE)[number];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKO,IAAM,oBAA6D;AAAA,EACxE,IAAI;AAAA,EACJ,IAAI;AACN;AAEO,IAAM,mBAAoD;AAAA,EAC/D,KAAK;AAAA,EACL,KAAK;AACP;;;ACLA,iBAAkB;AAWX,SAAS,kBACd,WACA,WACA,GACA;AACA,MAAI,CAAC,GAAG;AACN,UAAMA,cAAa,aAChB,OAAO;AAAA,MACN,OAAO;AAAA,IACT,CAAC,EACA,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE,OAAO,uBAAuB,CAAC,EACpE,UAAU,CAAC,MAAM,EAAE,QAAQ,UAAU,EAAE,CAAC,EACxC,OAAO,CAAC,MAAM,MAAM,MAAM,CAAC,OAAO,MAAM,OAAO,CAAC,CAAC,GAAG;AAAA,MACnD,OAAO;AAAA,IACT,CAAC,EACA,OAAO,CAAC,MAAM,OAAO,SAAS,OAAO,CAAC,CAAC,GAAG;AAAA,MACzC,OAAO;AAAA,IACT,CAAC,EACA,OAAO,CAAC,MAAM,OAAO,CAAC,KAAK,GAAG,EAAE,OAAO,0BAA0B,CAAC,EAClE,UAAU,CAAC,MAAM,OAAO,CAAC,CAAC;AAE7B,UAAMC,cAAa,aAChB,OAAO,EACP,OAAO,CAAC,MAAM,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,uBAAuB,CAAC,EACnE,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,OAAO,0BAA0B,CAAC;AAE7D,WAAO,aACJ,MAAM,CAACD,aAAYC,WAAU,CAAC,EAC9B,UAAU,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,EACzC,OAAO,CAAC,MAAM,KAAK,WAAW;AAAA,MAC7B,OAAO,oBAAoB,SAAS;AAAA,IACtC,CAAC,EACA,OAAO,CAAC,MAAM,KAAK,WAAW;AAAA,MAC7B,OAAO,yBAAyB,SAAS;AAAA,IAC3C,CAAC;AAAA,EACL;AAEA,QAAM,aAAa,aAChB,OAAO;AAAA,IACN,OAAO,EAAE,sBAAsB;AAAA,EACjC,CAAC,EACA,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG;AAAA,IAClC,OAAO,EAAE,sBAAsB;AAAA,EACjC,CAAC,EACA,UAAU,CAAC,MAAM,EAAE,QAAQ,UAAU,EAAE,CAAC,EACxC,OAAO,CAAC,MAAM,MAAM,MAAM,CAAC,OAAO,MAAM,OAAO,CAAC,CAAC,GAAG;AAAA,IACnD,OAAO,EAAE,sBAAsB;AAAA,EACjC,CAAC,EACA,OAAO,CAAC,MAAM,OAAO,SAAS,OAAO,CAAC,CAAC,GAAG;AAAA,IACzC,OAAO,EAAE,sBAAsB;AAAA,EACjC,CAAC,EACA,OAAO,CAAC,MAAM,OAAO,CAAC,KAAK,GAAG;AAAA,IAC7B,OAAO,EAAE,yBAAyB;AAAA,EACpC,CAAC,EACA,UAAU,CAAC,MAAM,OAAO,CAAC,CAAC;AAE7B,QAAM,aAAa,aAChB,OAAO,EACP,OAAO,CAAC,MAAM,OAAO,SAAS,CAAC,GAAG;AAAA,IACjC,OAAO,EAAE,sBAAsB;AAAA,EACjC,CAAC,EACA,OAAO,CAAC,MAAM,KAAK,GAAG;AAAA,IACrB,OAAO,EAAE,yBAAyB;AAAA,EACpC,CAAC;AAEH,SAAO,aACJ,MAAM,CAAC,YAAY,UAAU,CAAC,EAC9B,UAAU,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,EACzC,OAAO,CAAC,MAAM,KAAK,WAAW;AAAA,IAC7B,OAAO,GAAG,EAAE,kBAAkB,CAAC,IAAI,SAAS;AAAA,EAC9C,CAAC,EACA,OAAO,CAAC,MAAM,KAAK,WAAW;AAAA,IAC7B,OAAO,GAAG,EAAE,uBAAuB,CAAC,IAAI,SAAS;AAAA,EACnD,CAAC;AACL;AASO,IAAM,kCAAkC,CAAC,MAC9C,EAAE,KAAK,MAAM,KAAK,SAAY;AAWzB,IAAM,kBAAkB,CAAC,MAAc,WAAW,GAAG,WAAW;AAOhE,IAAM,sBAAsB,CAAC,MAAc,WAAW,GAAG,QAAQ;AAExE,IAAM,aAAa,CAAC,GAAW,SAAqC;AAClE,MAAI,SAAS,UAAU;AACrB,WAAO,EAAE,QAAQ,QAAQ,EAAE;AAAA,EAC7B;AAEA,SAAO,EAAE,QAAQ,QAAQ,GAAG,EAAE,KAAK;AACrC;AAUO,IAAM,0BAA0B,CAAC,MACtC,EAAE,QAAQ,SAAS,EAAE;AAgBhB,SAAS,mBACd,KACA,WACA,MACQ;AACR,QAAM,gBAAgB;AACtB,QAAM,EAAE,YAAY,UAAU,IAAI,sBAAQ,CAAC;AAE3C,MAAI,CAAC,OAAO,SAAS,GAAG,KAAK,MAAM,GAAG;AACpC,UAAM,IAAI,WAAW,2CAA2C;AAAA,EAClE;AAEA,MACE,CAAC,OAAO,SAAS,SAAS,KAC1B,CAAC,OAAO,UAAU,SAAS,KAC3B,YAAY,GACZ;AACA,UAAM,IAAI,WAAW,oDAAoD;AAAA,EAC3E;AAEA,MAAI,YAAY,eAAe;AAC7B,UAAM,IAAI,WAAW,6BAA6B;AAAA,EACpD;AAEA,SAAO;AAAA,KACJ,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,UAAU,IAAI,MAAM,CAAC,YAAY;AAAA,MAC3D;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,uBACd,SACiB;AACjB,SAAO,kBAAkB,OAAO;AAClC;AAEO,SAAS,oBAAoB,OAAe,UAA2B;AAC5E,QAAM,SACJ,YAAY,mBAAmB,iBAAiB,QAAQ,IAAI;AAE9D,QAAM,YAAY,IAAI,KAAK,aAAa,QAAQ;AAAA,IAC9C,OAAO;AAAA,IACP;AAAA,EACF,CAAC,EAAE,OAAO,KAAK;AAEf,SAAO,eAAe,SAAS;AACjC;AAEA,SAAS,eAAe,KAAqB;AAC3C,SAAO,IACJ,QAAQ,WAAW,GAAG,EACtB,QAAQ,WAAW,GAAG,EACtB,QAAQ,iBAAiB,EAAE;AAChC;;;AClNA,IAAAC,cAAkB;AAQX,IAAM,aAAa,cAAE,KAAK;;;ACRjC,IAAAC,cAAkB;AAGX,IAAM,kBAAkB,cAAE,aAAa;AAAA,EAC5C,YAAY,cACT,OAAO,EAAE,OAAO,iBAAiB,CAAC,EAClC,UAAsB,mBAAmB,EACzC;AAAA,IACC,cACG,MAAM,EACN,IAAI,KAAK,gDAAgD,EACzD,UAAU,CAAC,UAAU,MAAM,YAAY,CAAC;AAAA,EAC7C;AAAA,EACF,UAAU,cACP,OAAO,EAAE,OAAO,oBAAoB,CAAC,EACrC,IAAI,GAAG,EAAE,OAAO,oBAAoB,CAAC;AAC1C,CAAC;;;AChBD,IAAAC,cAAkB;;;ACAX,IAAM,oBAAoB,CAAC,MAAM,IAAI;AAIrC,IAAM,aAAa,CAAC,SAAS,QAAQ;AAiBrC,IAAM,oBAAoB,CAAC,MAAM,IAAI;;;ADhB5C,IAAM,mBAAmB,cAAE,KAAK,mBAAmB;AAAA,EACjD,OAAO;AACT,CAAC;AAEM,SAAS,oBAAoB,GAAY;AAC9C,QAAM,qBAAqB,cAAE,aAAa;AAAA,IACxC,aAAa,cAAE,aAAa;AAAA,MAC1B,cAAc,cACX,OAAO,EACP,UAAsB,eAAe,EACrC;AAAA,QACC,cACG,OAAO,EACP,IAAI,GAAG,EAAE,uBAAuB,CAAC,EACjC,IAAI,IAAI,EAAE,kBAAkB,CAAC;AAAA,MAClC;AAAA,MACF,iBAAiB,cACd,OAAO,EACP,UAAsB,eAAe,EACrC;AAAA,QACC,cACG,OAAO,EACP,IAAI,GAAG,EAAE,0BAA0B,CAAC,EACpC,IAAI,KAAK,EAAE,qBAAqB,CAAC;AAAA,MACtC;AAAA,MACF,sBAAsB,cACnB,OAAO,EACP,UAAsB,mBAAmB,EACzC,UAAsB,uBAAuB,EAC7C,OAAO,CAAC,MAAM,aAAa,KAAK,CAAC,GAAG;AAAA,QACnC,OAAO,EAAE,uBAAuB;AAAA,MAClC,CAAC;AAAA,MACH,kBAAkB,cACf,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,EACvC,UAAsB,mBAAmB,EACzC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,EAChC,KAAK,gBAAgB;AAAA,IAC1B,CAAC;AAAA,IACD,eAAe,cAAE,aAAa;AAAA,MAC5B,iBAAiB,cACd,OAAO,EACP,UAAsB,eAAe,EACrC;AAAA,QACC,cACG,OAAO,EACP,IAAI,GAAG,EAAE,qBAAqB,CAAC,EAC/B,IAAI,IAAI,EAAE,gBAAgB,CAAC;AAAA,MAChC;AAAA,MACF,gBAAgB,cACb,OAAO,EACP,UAAsB,eAAe,EACrC;AAAA,QACC,cACG,OAAO,EACP,IAAI,GAAG,EAAE,oBAAoB,CAAC,EAC9B,IAAI,IAAI,EAAE,eAAe,CAAC;AAAA,MAC/B;AAAA,MACF,YAAY,cACT,OAAO,EACP,UAAsB,mBAAmB,EACzC;AAAA,QACC,cACG,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,EACpC,IAAI,KAAK,EAAE,WAAW,CAAC,EACvB,UAAU,CAAC,UAAU,MAAM,YAAY,CAAC;AAAA,MAC7C;AAAA,MACF,UAAU,cACP,OAAO,EACP,IAAI,GAAG,EAAE,UAAU,CAAC,EACpB,IAAI,IAAI,EAAE,UAAU,CAAC,EACrB,MAAM,SAAS,EAAE,gBAAgB,CAAC,EAClC,MAAM,SAAS,EAAE,gBAAgB,CAAC,EAClC,MAAM,MAAM,EAAE,iBAAiB,CAAC,EAChC,MAAM,mBAAmB,EAAE,wBAAwB,CAAC,EACpD,MAAM,SAAS,EAAE,oBAAoB,CAAC;AAAA,IAC3C,CAAC;AAAA,EACH,CAAC;AAED,SAAO,EAAE,mBAAmB;AAC9B;AAEA,IAAM,UAAU,oBAAoB,CAAC,MAAM,CAAC;AAErC,IAAM,oBACX,QAAQ,mBAAmB,MAAM,YAAY,WAAW;AAAA,EACtD,eAAe,cACZ,OAAO,EACP,UAAsB,mBAAmB,EACzC;AAAA,IACC,cACG,MAAM,wBAAwB,EAC9B,IAAI,KAAK,+CAA+C,EACxD,UAAU,CAAC,UAAU,MAAM,YAAY,CAAC;AAAA,EAC7C;AAAA,EACF,KAAK,cACF,OAAO,EACP,UAAsB,mBAAmB,EACzC,KAAK,cAAE,OAAO,EAAE,IAAI,KAAK,qCAAqC,CAAC,EAC/D,UAAsB,+BAA+B,EACrD,SAAS;AAAA,EACZ,cAAc,cAAE,KAAK,mBAAmB;AAAA,IACtC,OAAO;AAAA,EACT,CAAC;AACH,CAAC;;;AE5GH,IAAAC,cAAkB;AAIX,SAAS,iBAAiB,GAAY;AAC3C,QAAM,mBAAmB,cAAE,OAAO;AAAA,IAChC,WAAW,cACR,OAAO,EACP,UAAsB,eAAe,EACrC;AAAA,MACC,cACG,OAAO,EACP,IAAI,GAAG,EAAE,qBAAqB,CAAC,EAC/B,IAAI,IAAI,EAAE,gBAAgB,CAAC;AAAA,IAChC;AAAA,IACF,UAAU,cACP,OAAO,EACP,UAAsB,eAAe,EACrC;AAAA,MACC,cAAE,OAAO,EAAE,IAAI,GAAG,EAAE,oBAAoB,CAAC,EAAE,IAAI,IAAI,EAAE,eAAe,CAAC;AAAA,IACvE;AAAA,IACF,OAAO,cACJ,OAAO,EACP,UAAsB,mBAAmB,EACzC;AAAA,MACC,cACG,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,EACpC,IAAI,KAAK,EAAE,WAAW,CAAC,EACvB,UAAU,CAAC,UAAU,MAAM,YAAY,CAAC;AAAA,IAC7C;AAAA,IACF,UAAU,cACP,OAAO,EACP,IAAI,GAAG,EAAE,UAAU,CAAC,EACpB,IAAI,IAAI,EAAE,UAAU,CAAC,EACrB,MAAM,SAAS,EAAE,gBAAgB,CAAC,EAClC,MAAM,SAAS,EAAE,gBAAgB,CAAC,EAClC,MAAM,MAAM,EAAE,iBAAiB,CAAC,EAChC,MAAM,mBAAmB,EAAE,wBAAwB,CAAC,EACpD,MAAM,SAAS,EAAE,oBAAoB,CAAC;AAAA,IAEzC,aAAa,cAAE,KAAK,CAAC,SAAS,QAAQ,GAAG;AAAA,MACvC,OAAO,EAAE,cAAc;AAAA,IACzB,CAAC;AAAA,EACH,CAAC;AAED,SAAO,EAAE,iBAAiB;AAC5B;;;AC9CA,IAAAC,cAAkB;AAIX,SAAS,oBAAoB,GAAY;AAC9C,QAAM,qBAAqB,cAAE,aAAa;AAAA,IACxC,eAAe,cACZ,OAAO,EACP,UAAsB,eAAe,EACrC;AAAA,MACC,cACG,OAAO,EACP,IAAI,GAAG,EAAE,wBAAwB,CAAC,EAClC,IAAI,IAAI,EAAE,mBAAmB,CAAC;AAAA,IACnC;AAAA,IAEF,kBAAkB,cACf,OAAO,EACP,UAAsB,eAAe,EACrC,KAAK,cAAE,OAAO,EAAE,IAAI,KAAK,EAAE,sBAAsB,CAAC,CAAC,EACnD,UAAsB,+BAA+B,EACrD,SAAS;AAAA,IAEZ,uBAAuB,cACpB,OAAO,EACP,UAAsB,mBAAmB,EACzC,UAAsB,uBAAuB,EAC7C,OAAO,CAAC,MAAM,MAAM,MAAM,aAAa,KAAK,CAAC,GAAG;AAAA,MAC/C,OAAO,EAAE,uBAAuB;AAAA,IAClC,CAAC,EACA,UAAsB,+BAA+B,EACrD,SAAS;AAAA,IAEZ,wBAAwB,cACrB,OAAO,EACP,UAAsB,mBAAmB,EACzC,UAAsB,+BAA+B,EACrD;AAAA,MACC,cACG,MAAM,EACN,IAAI,KAAK,EAAE,oBAAoB,CAAC,EAChC,UAAU,CAAC,UAAU,MAAM,YAAY,CAAC,EACxC,SAAS;AAAA,IACd,EACC,SAAS;AAAA,EACd,CAAC;AAED,SAAO,EAAE,mBAAmB;AAC9B;;;AChDA,IAAAC,cAAkB;AAIX,SAAS,mBAAmB,GAAY;AAC7C,QAAM,oBAAoB,cACvB,aAAa;AAAA,IACZ,cAAc,cACX,OAAO,EACP,UAAsB,eAAe,EACrC;AAAA,MACC,cACG,OAAO,EACP,IAAI,GAAG,EAAE,uBAAuB,CAAC,EACjC,IAAI,IAAI,EAAE,kBAAkB,CAAC;AAAA,IAClC;AAAA,IAEF,qBAAqB,cAClB,OAAO,EACP,UAAsB,eAAe,EACrC,KAAK,cAAE,OAAO,EAAE,IAAI,KAAK,EAAE,mBAAmB,CAAC,CAAC,EAChD,UAAsB,+BAA+B,EACrD,SAAS;AAAA,IAEZ,aAAa,cACV,OAAO,EACP,UAAsB,eAAe,EACrC,KAAK,cAAE,OAAO,EAAE,IAAI,IAAI,EAAE,iBAAiB,CAAC,CAAC,EAC7C,UAAsB,+BAA+B,EACrD,SAAS;AAAA,IAEZ,aAAa,cACV,OAAO,EACP,UAAsB,mBAAmB,EACzC,OAAO,CAAC,MAAM,MAAM,MAAM,WAAW,KAAK,CAAC,GAAG;AAAA,MAC7C,OAAO,EAAE,kBAAkB;AAAA,IAC7B,CAAC,EACA,UAAsB,+BAA+B,EACrD,SAAS;AAAA,IACZ,qBAAqB,cAAE,OAAO,EAAE,SAAS;AAAA,IAEzC,iBAAiB,cACd,OAAO,EACP,UAAsB,mBAAmB,EACzC,OAAO,CAAC,MAAM,MAAM,MAAM,WAAW,KAAK,CAAC,GAAG;AAAA,MAC7C,OAAO;AAAA,IACT,CAAC,EACA,UAAsB,+BAA+B,EACrD,SAAS;AAAA,IAEZ,cAAc,cAAE,KAAK,CAAC,QAAQ,UAAU,MAAM,GAAG;AAAA,MAC/C,OAAO,EAAE,yBAAyB;AAAA,IACpC,CAAC;AAAA,IAED,aAAa,cAAE;AAAA,MACb,CAAC,MAAM;AACL,YAAI,MAAM,GAAI,QAAO;AACrB,YAAI,OAAO,MAAM,SAAU,QAAO,EAAE,KAAK,EAAE,YAAY;AACvD,eAAO;AAAA,MACT;AAAA,MACA,cAAE,KAAK,CAAC,MAAM,MAAM,KAAK,IAAI,CAAC,EAAE,SAAS;AAAA,IAC3C;AAAA,IAEA,OAAmB,kBAAkB,GAAG,UAAW,CAAC;AAAA,IACpD,MAAkB,kBAAkB,GAAG,UAAW,CAAC;AAAA,EACrD,CAAC,EAEA,YAAY,CAAC,MAAM,QAAQ;AAC1B,QAAI,KAAK,iBAAiB,YAAY,CAAC,KAAK,aAAa;AACvD,UAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN,OAAO,EAAE,sBAAsB;AAAA,QAC/B,MAAM,CAAC,aAAa;AAAA,MACtB,CAAC;AAAA,IACH;AAEA,QACE,KAAK,iBAAiB,YACtB,OAAO,KAAK,gBAAgB,aAC5B;AACA,UAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN,OAAO,EAAE,mBAAmB;AAAA,QAC5B,MAAM,CAAC,aAAa;AAAA,MACtB,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAEH,SAAO,EAAE,kBAAkB;AAC7B;;;ACzFA,IAAAC,cAAkB;;;ACMX,IAAM,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,IAAM,iBAAiB,CAAC,aAAa,QAAQ;AAI7C,IAAM,cAAc,CAAC,QAAQ,QAAQ;;;ADVrC,IAAM,gBAAgB,cAC1B,OAAO,EACP,MAAM,uBAAuB,gBAAgB;AAKzC,SAAS,mBAAmB,GAAY;AAC7C,QAAMC,iBAAgB,cACnB,OAAO,EACP,MAAM,uBAAuB,gBAAgB;AAEhD,QAAM,cAAc,cACjB,OAAO;AAAA,IACN,cAAc,cAAE,KAAK,cAAc;AAAA,MACjC,OAAO,EAAE,wBAAwB;AAAA,IACnC,CAAC;AAAA,IACD,cAAcA;AAAA,IACd,UAAUA;AAAA,IACV,UAAU,cAAE,OAAO,EAAE,QAAQ,CAAC;AAAA,IAC9B,YAAY,cAAE,OAAO,EAAE,QAAQ,CAAC;AAAA,IAChC,cAAc,cAAE,KAAK,EAAE,SAAS;AAAA,IAChC,gBAAgB,cAAE,KAAK,cAAc,EAAE,QAAQ,WAAW;AAAA,IAC1D,mBAAmB,cAAE,OAAO,EAAE,SAAS;AAAA,EACzC,CAAC,EACA,YAAY,CAAC,EAAE,cAAc,SAAS,GAAG,QAAQ;AAChD,QAAI,WAAW,cAAc;AAC3B,UAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM,CAAC,UAAU;AAAA,MACnB,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAEH,QAAM,eAAe,cAAE,OAAO;AAAA,IAC5B,YAAY,cAAE,KAAK,EAAE,SAAS;AAAA,IAC9B,YAAY,cAAE,KAAK;AAAA,MACjB,OAAO,EAAE,gBAAgB;AAAA,IAC3B,CAAC;AAAA,IACD,cAAc,cAAE,OAAO,EAAE,SAAS;AAAA,IAClC,qBAAqB,cAAE,OAAO,EAAE,SAAS;AAAA,IACzC,cAAc,cAAE,KAAK,CAAC,QAAQ,UAAU,MAAM,CAAC,EAAE,SAAS;AAAA,IAC1D,aAAa,cAAE,OAAO,EAAE,SAAS;AAAA,IACjC,aAAa,cAAE,KAAK,CAAC,MAAM,MAAM,KAAK,IAAI,CAAC,EAAE,SAAS;AAAA,IACtD,UAAU,kBAAkB,MAAM,UAAW,CAAC;AAAA,IAC9C,qBAAqB,cAAE,OAAO,EAAE,SAAS;AAAA,IACzC,gBAAgB,cAAE,OAAO,EAAE,SAAS;AAAA,EACtC,CAAC;AAED,QAAM,YAAY,aAAa,WAAW;AAAA,IACxC,OAAO,kBAAkB,GAAG,UAAW,CAAC;AAAA,IACxC,aAAa,cAAE,UAAU;AAAA,EAC3B,CAAC;AAED,QAAM,aAAa,aAAa,WAAW;AAAA,IACzC,OAAO,kBAAkB,GAAG,UAAW,CAAC;AAAA,IACxC,aAAa,cAAE,KAAK,aAAa;AAAA,MAC/B,OAAO,EAAE,oBAAoB;AAAA,IAC/B,CAAC;AAAA,EACH,CAAC;AAED,QAAM,eAAe,aAAa,WAAW;AAAA,IAC3C,OAAO,kBAAkB,GAAG,UAAW,CAAC;AAAA,IACxC,aAAa,cAAE,UAAU;AAAA,EAC3B,CAAC;AAED,QAAM,qBAAqB,YAAY,WAAW;AAAA,IAChD,cAAc,cAAE,QAAQ,OAAO;AAAA,IAC/B,UAAU,cAAE,KAAK;AAAA,MACf,OAAO,EAAE,iBAAiB;AAAA,IAC5B,CAAC;AAAA,IACD,eAAe,cAAE,MAAM,SAAS,EAAE,IAAI,GAAG,EAAE,sBAAsB,CAAC;AAAA,EACpE,CAAC;AAED,QAAM,sBAAsB,YAAY,WAAW;AAAA,IACjD,cAAc,cAAE,QAAQ,QAAQ;AAAA,IAChC,UAAU,cAAE,KAAK;AAAA,MACf,OAAO,EAAE,iBAAiB;AAAA,IAC5B,CAAC;AAAA,IACD,eAAe,cAAE,MAAM,UAAU,EAAE,IAAI,GAAG,EAAE,sBAAsB,CAAC;AAAA,EACrE,CAAC;AAED,QAAM,wBAAwB,YAAY,WAAW;AAAA,IACnD,cAAc,cAAE,QAAQ,UAAU;AAAA,IAClC,UAAU,cAAE,KAAK;AAAA,MACf,OAAO,EAAE,eAAe;AAAA,IAC1B,CAAC;AAAA,IACD,eAAe,cAAE,MAAM,YAAY,EAAE,IAAI,GAAG,EAAE,sBAAsB,CAAC;AAAA,EACvE,CAAC;AAED,QAAM,mBAAmB,YAAY,WAAW;AAAA,IAC9C,cAAc,cAAE,QAAQ,aAAa;AAAA,IACrC,UAAU,cAAE,KAAK;AAAA,MACf,OAAO,EAAE,iBAAiB;AAAA,IAC5B,CAAC;AAAA,IACD,eAAe,cAAE,MAAM,SAAS,EAAE,IAAI,GAAG,EAAE,sBAAsB,CAAC;AAAA,EACpE,CAAC;AAED,QAAM,mBAAmB,cAAE,mBAAmB,gBAAgB;AAAA,IAC5D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL,eAAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AEzHO,SAAS,mBACd,KACqC;AAJvC;AAKE,SAAO;AAAA,IACL,iBAAiB,IAAI;AAAA,IACrB,YAAY,IAAI;AAAA,IAChB,UAAU,OAAO,IAAI,QAAQ;AAAA,IAC7B,OAAO,OAAO,IAAI,KAAK;AAAA,IACvB,QAAQ,OAAO,IAAI,MAAM;AAAA,IACzB,sBAAqB,SAAI,wBAAJ,YAA2B;AAAA,IAChD,cAAa,SAAI,gBAAJ,YAAmB;AAAA,IAChC,cAAc,IAAI;AAAA,IAClB,sBAAqB,SAAI,wBAAJ,YAA2B;AAAA,IAChD,cAAc,IAAI;AAAA,IAClB,cAAa,SAAI,gBAAJ,YAAmB;AAAA,IAChC,cAAa,SAAI,gBAAJ,YAAmB;AAAA,IAChC,YAAW,SAAI,cAAJ,YAAiB;AAAA,IAC5B,gBACE,IAAI,mBAAmB,OAAO,SAAY,OAAO,IAAI,cAAc;AAAA,EACvE;AACF;;;ACtBA,IAAAC,cAAkB;AAGX,IAAM,0BAA0B,cAAE,aAAa;AAAA,EACpD,mBAAmB,cAAE,KAAK,EAAE,OAAO,kBAAkB,CAAC;AAAA,EACtD,gBAA4B,kBAAkB,MAAM,SAAU;AAChE,CAAC;;;ACND,IAAAC,eAAkB;;;ACEX,IAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADHO,IAAM,oBAAoB,eAAE,aAAa;AAAA,EAC9C,gBAAgB,eAAE,KAAK,gBAAgB;AAAA,IACrC,OAAO;AAAA,EACT,CAAC;AAAA,EACD,cAAc,eACX,OAAO,EACP,UAAsB,eAAe,EACrC;AAAA,IACC,eAAE,OAAO,EAAE,IAAI,IAAI,qDAAqD;AAAA,EAC1E,EACC,UAAsB,+BAA+B,EACrD,SAAS;AAAA,EAEZ,gBAA4B,kBAAkB,MAAM,SAAU;AAChE,CAAC;;;AElBM,IAAM,qBAAqB,CAAC,QAAgB;AAAnD;AACE,QAAM,IAAI,OAAO,oBAAO,EAAE,EAAE,QAAQ,UAAU,EAAE;AAChD,QAAM,MAAM,EAAE,QAAQ,GAAG;AACzB,MAAI,QAAQ,GAAI,QAAO;AACvB,QAAM,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC7B,QAAM,gBAAe,WAAM,MAAM,KAAK,MAAjB,YAAsB,CAAC,GAAG;AAC/C,SAAO,cAAc;AACvB;;;ACNO,SAAS,gBAAwB;AACtC,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,IAAI,IAAI,YAAY;AAC1B,QAAM,IAAI,OAAO,IAAI,SAAS,IAAI,CAAC,EAAE,SAAS,GAAG,GAAG;AACpD,QAAM,IAAI,OAAO,IAAI,QAAQ,CAAC,EAAE,SAAS,GAAG,GAAG;AAC/C,SAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB;AAGO,SAAS,gBAAgB,KAAa,MAAsB;AACjE,QAAM,KAAK,iBAAiB,GAAG;AAC/B,KAAG,QAAQ,GAAG,QAAQ,IAAI,IAAI;AAC9B,SAAO,iBAAiB,EAAE;AAC5B;AAEO,SAAS,cAAc,KAAa,SAAS,SAAiB;AACnE,QAAM,EAAE,GAAG,GAAG,EAAE,IAAI,SAAS,GAAG;AAChC,QAAM,UAAU,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AAC9C,SAAO,IAAI,KAAK,eAAe,QAAQ;AAAA,IACrC,WAAW;AAAA,IACX,UAAU;AAAA,EACZ,CAAC,EAAE,OAAO,OAAO;AACnB;AAEO,SAAS,iBAAiB,KAAmB;AAClD,QAAM,EAAE,GAAG,GAAG,EAAE,IAAI,SAAS,GAAG;AAChC,SAAO,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC;AAC7B;AAEO,SAAS,iBAAiB,IAAkB;AACjD,QAAM,IAAI,GAAG,YAAY;AACzB,QAAM,IAAI,OAAO,GAAG,SAAS,IAAI,CAAC,EAAE,SAAS,GAAG,GAAG;AACnD,QAAM,IAAI,OAAO,GAAG,QAAQ,CAAC,EAAE,SAAS,GAAG,GAAG;AAC9C,SAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB;AAEA,SAAS,SAAS,KAAkD;AAClE,QAAM,IAAI,4BAA4B,KAAK,GAAG;AAC9C,MAAI,CAAC,EAAG,OAAM,IAAI,MAAM,SAAS;AACjC,SAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC,CAAC,EAAE;AAC7D;;;ACjCO,IAAM,kBAAkB,CAAC,QAAsC;AACpE,MAAI,CAAC,IAAK,QAAO;AACjB,MAAI,OAAO,QAAQ,SAAU,QAAO;AAEpC,QAAM,MAAO,IAAmB;AAChC,SAAO,OAAO,QAAQ,WAAW,MAAM;AACzC;;;ACdA,IAAAC,eAAkB;;;ACYX,IAAM,mBAAmB,CAAC,SAAS,QAAQ;;;ADN3C,SAAS,eAAe,GAAY;AACzC,QAAM,mBAAmB;AAEzB,QAAM,sBAAsB,eACzB,OAAO,EACP,UAAsB,mBAAmB,EACzC;AAAA,IACC,eACG,OAAO,EACP,IAAI,IAAI,EAAE,mBAAmB,CAAC,EAC9B,IAAI,IAAI,EAAE,mBAAmB,CAAC,EAC9B,MAAM,kBAAkB;AAAA,MACvB,OAAO,EAAE,mBAAmB;AAAA,IAC9B,CAAC;AAAA,EACL;AAEF,QAAM,qBAAqB,eACxB,aAAa;AAAA,IACZ,KAAK,eACF,OAAO,EACP,UAAsB,mBAAmB,EACzC,KAAK,eAAE,OAAO,EAAE,IAAI,GAAG,EAAE,iBAAiB,CAAC,EAAE,IAAI,IAAI,EAAE,SAAS,CAAC,CAAC;AAAA,IAErE,kBAAkB,eAAE,KAAK,kBAAkB,EAAE,qBAAqB,CAAC;AAAA,IAEnE,4BAA4B;AAAA,IAC5B,0BAA0B;AAAA,IAC1B,qBAAqB;AAAA,IAErB,eAAe;AAAA,IACf,mBAAmB;AAAA,IAEnB,UAAU,eACP,OAAO,EACP,UAAsB,eAAe,EACrC;AAAA,MACC,eAAE,OAAO,EAAE,IAAI,GAAG,EAAE,mBAAmB,CAAC,EAAE,IAAI,KAAK,EAAE,cAAc,CAAC;AAAA,IACtE;AAAA,EACJ,CAAC,EACA;AAAA,IACC,CACE;AAAA,MACE;AAAA,MACA;AAAA,MACA,4BAA4B;AAAA,MAC5B,0BAA0B;AAAA,MAC1B,qBAAqB;AAAA,IACvB,GAEA,QACG;AACH,UAAI,oBAAoB,eAAe;AACrC,YAAI,SAAS;AAAA,UACX,MAAM;AAAA,UACN,SAAS,EAAE,mBAAmB;AAAA,UAC9B,MAAM,CAAC,mBAAmB;AAAA,QAC5B,CAAC;AAAA,MACH;AAEA,YAAM,SAAS,CAAC,MAAc,EAAE,MAAM,GAAG,EAAE;AAE3C,UAAI,OAAO,KAAK,MAAM,OAAO,GAAG,GAAG;AACjC,YAAI,SAAS;AAAA,UACX,MAAM;AAAA,UACN,SAAS,EAAE,mBAAmB;AAAA,UAC9B,MAAM,CAAC,0BAA0B;AAAA,QACnC,CAAC;AAAA,MACH;AAEA,UAAI,OAAO,KAAK,MAAM,OAAO,IAAI,GAAG;AAClC,YAAI,SAAS;AAAA,UACX,MAAM;AAAA,UACN,SAAS,EAAE,oBAAoB;AAAA,UAC/B,MAAM,CAAC,qBAAqB;AAAA,QAC9B,CAAC;AAAA,MACH;AAEA,UAAI,EAAE,QAAQ,SAAS,QAAQ,MAAM;AACnC,YAAI,SAAS;AAAA,UACX,MAAM;AAAA,UACN,SAAS,EAAE,qBAAqB;AAAA,UAChC,MAAM,CAAC,qBAAqB;AAAA,QAC9B,CAAC;AAAA,MACH;AAEA,UAAI,MAAM,OAAO;AACf,YAAI,SAAS;AAAA,UACX,MAAM;AAAA,UACN,SAAS,EAAE,oBAAoB;AAAA,UAC/B,MAAM,CAAC,0BAA0B;AAAA,QACnC,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEF,SAAO;AAAA,IACL;AAAA,EACF;AACF;","names":["fromString","fromNumber","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","YmdDateSchema","import_zod","import_zod","import_zod"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/types/money_types.ts","../src/utils/utils.ts","../src/types/shared_types.ts","../src/domains/auth/login/login_schemas.ts","../src/domains/companies/companies_schemas.ts","../src/domains/companies/companies_types.ts","../src/domains/users/users_schemas.ts","../src/domains/customers/customer_schemas.ts","../src/domains/products/product_schemas.ts","../src/domains/invoices/invoices_schemas.ts","../src/domains/invoices/invoices_types.ts","../src/domains/invoice_items/invoice_items_mappers.ts","../src/domains/credit_applications/credit_applications_schemas.ts","../src/domains/payments/payments_schemas.ts","../src/domains/payments/payments_types.ts","../src/utils/money_utils.ts","../src/utils/date_utils.ts","../src/utils/errors_utils.ts","../src/domains/point_of_sales/point_of_sales_schemas.ts","../src/domains/point_of_sales/point_of_sales_types.ts"],"sourcesContent":["export * from \"./utils/utils\";\n\nexport { CreatedLocation, UUID } from \"./types/shared_types\";\n\n//Login\nexport * from \"./domains/auth/login/login_schemas\";\n\n//Company\nexport * from \"./domains/companies/companies_schemas\";\nexport * from \"./domains/companies/companies_types\";\n\n//Users\nexport * from \"./domains/users/users_types\";\nexport * from \"./domains/users/users_schemas\";\n\n//Customers\nexport * from \"./domains/customers/customer_schemas\";\nexport * from \"./domains/customers/customers_types\";\n\n//Vendors\nexport * from \"./domains/vendors/vendors_types\";\n\n// Products\nexport * from \"./domains/products/product_schemas\";\nexport * from \"./domains/products/products_types\";\n\n//Warehouses\nexport * from \"./domains/warehouses/warehouses_types\";\n\n//Inventory\nexport * from \"./domains/inventory/inventory_locations/inventory_locations_types\";\nexport * from \"./domains/inventory/inventory_balances/inventory_balances_type\";\n\n//Invoices\nexport * from \"./domains/invoices/invoices_schemas\";\nexport * from \"./domains/invoices/invoices_types\";\n\n//Invoice Items\nexport * from \"./domains/invoice_items/invoice_items_types\";\nexport * from \"./domains/invoice_items/invoice_items_mappers\";\n\n//Credit Applications\nexport * from \"./domains/credit_applications/credit_applications_schemas\";\nexport * from \"./domains/credit_applications/credit_applications_types\";\n\n//Payments\nexport * from \"./domains/payments/payments_schemas\";\nexport * from \"./domains/payments/payments_types\";\n\n//Drivers\nexport * from \"./domains/drivers/driver_customers/driver_customers_types\";\nexport * from \"./domains/drivers/driver_settings/driver_settings_types\";\n\n//Sync\nexport * from \"./domains/sync/sync_types\";\n\n// Money\nexport * from \"./utils/money_utils\";\nexport * from \"./types/money_types\";\n\n//Date\nexport * from \"./utils/date_utils\";\n\n//Errors\nexport * from \"./utils/errors_utils\";\n\n//Audit Events\nexport * from \"./domains/audit_events/audit_events_types\";\n\n//Country Tax Rules\nexport * from \"./domains/country_tax_rules/country_tax_rules_types\";\n\n//Point of sales\nexport * from \"./domains/point_of_sales/point_of_sales_schemas\";\nexport * from \"./domains/point_of_sales/point_of_sales_types\";\n","import { IsoCountryCode } from \"../domains/companies/companies_types\";\n\nexport type IsoCurrencyCode = \"USD\" | \"HNL\";\ntype Locale = \"en-US\" | \"es-HN\";\n\nexport const countryToCurrency: Record<IsoCountryCode, IsoCurrencyCode> = {\n US: \"USD\",\n HN: \"HNL\",\n};\n\nexport const currencyToLocale: Record<IsoCurrencyCode, Locale> = {\n USD: \"en-US\",\n HNL: \"es-HN\",\n};\n","import * as GlobalTypes from \"./types\";\nimport { IsoCountryCode } from \"../domains/companies/companies_types\";\nimport {\n IsoCurrencyCode,\n countryToCurrency,\n currencyToLocale,\n} from \"../types/money_types\";\n\nimport { z } from \"zod\";\nimport { SchemaT } from \"../domains/invoices/invoices_types\";\n\n/**\n * Validates zod currency with precision.\n *\n *\n * @param minAmount\n * @param maxAmount\n * @returns\n */\nexport function handleZodCurrency(\n minAmount: number,\n maxAmount: number,\n t?: SchemaT,\n) {\n if (!t) {\n const fromString = z\n .string({\n error: \"Enter a valid number\",\n })\n .refine((s) => s.trim().length > 0, { error: \"Enter a valid number\" })\n .transform((s) => s.replace(/[,\\s]/g, \"\"))\n .refine((s) => s !== \"\" && !Number.isNaN(Number(s)), {\n error: \"Enter a valid number\",\n })\n .refine((s) => Number.isFinite(Number(s)), {\n error: \"Enter a valid number\",\n })\n .refine((s) => Number(s) >= 0, { error: \"Enter a positive number\" })\n .transform((s) => Number(s));\n\n const fromNumber = z\n .number()\n .refine((n) => Number.isFinite(n), { error: \"Enter a valid number\" })\n .refine((n) => n >= 0, { error: \"Enter a positive number\" });\n\n return z\n .union([fromString, fromNumber])\n .transform((n) => roundWithPrecision(n, 2))\n .refine((n) => n >= minAmount, {\n error: `Must be at least ${minAmount}`,\n })\n .refine((n) => n <= maxAmount, {\n error: `Exceeds allowed limit ${maxAmount}`,\n });\n }\n\n const fromString = z\n .string({\n error: t(\"enter_a_valid_number\"),\n })\n .refine((s) => s.trim().length > 0, {\n error: t(\"enter_a_valid_number\"),\n })\n .transform((s) => s.replace(/[,\\s]/g, \"\"))\n .refine((s) => s !== \"\" && !Number.isNaN(Number(s)), {\n error: t(\"enter_a_valid_number\"),\n })\n .refine((s) => Number.isFinite(Number(s)), {\n error: t(\"enter_a_valid_number\"),\n })\n .refine((s) => Number(s) >= 0, {\n error: t(\"enter_a_positive_number\"),\n })\n .transform((s) => Number(s));\n\n const fromNumber = z\n .number()\n .refine((n) => Number.isFinite(n), {\n error: t(\"enter_a_valid_number\"),\n })\n .refine((n) => n >= 0, {\n error: t(\"enter_a_positive_number\"),\n });\n\n return z\n .union([fromString, fromNumber])\n .transform((n) => roundWithPrecision(n, 2))\n .refine((n) => n >= minAmount, {\n error: `${t(\"must_be_at_least\")} ${minAmount}`,\n })\n .refine((n) => n <= maxAmount, {\n error: `${t(\"exceeds_allowed_limit\")} ${maxAmount}`,\n });\n}\n\n/**\n * Trims any leading or trailing spaces\n * Transforms empty strings into undefined.\n *\n * @param s\n * @returns\n */\nexport const transformEmptyStringToUndefined = (s: string) =>\n s.trim() === \"\" ? undefined : s;\n\n/**\n * - Collapses any run of whitespace in a string (spaces, tabs, newlines, nbspb, and other weird unicode spaces etc.)\n * into a single ASCII space.\n * - Trims leading and trailing whitespace.\n * \" Jared \\n Gomez \\t Driver\\t \" -> \"Jared Gomez Driver\"\n *\n * @param s\n * @returns\n */\nexport const normalizeSpaces = (s: string) => whitespace(s, \"normalize\");\n\n/**\n * Removes all whitespace from a string\n * @param s\n * @returns\n */\nexport const removeAllWhitespace = (s: string) => whitespace(s, \"remove\");\n\nconst whitespace = (s: string, mode: GlobalTypes.WhitespaceMode) => {\n if (mode === \"remove\") {\n return s.replace(/\\s+/g, \"\");\n }\n\n return s.replace(/\\s+/g, \" \").trim();\n};\n\n/**\n * Removes all dashes and + signs from a string\n * +1-305-555-0123 -> \"13055550123\"\n * 305-555-0123 -> \"3055550123\"\n *\n * @param s\n * @returns\n */\nexport const removeDashesAndPlusSign = (s: string): string =>\n s.replace(/[+-]/g, \"\");\n\n/**\n * Rounds a number to a certain precision.\n * Contract:\n * 1. Number must be finite and non negative.\n * 2. Precision must be finite nonnegative and an integer.\n * 3. Precision must be <= Max precision\n * 4. Returns a number >= 0\n * Default is round half up.\n *\n * @param num\n * @param precision\n * @param opts\n * @returns\n */\nexport function roundWithPrecision(\n num: number,\n precision: number,\n opts?: GlobalTypes.ToFixedOptions,\n): number {\n const MAX_PRECISION = 2;\n const { roundType = \"half_up\" } = opts ?? {};\n\n if (!Number.isFinite(num) || num < 0) {\n throw new RangeError(\"Number must be finite and greater than 0.\");\n }\n\n if (\n !Number.isFinite(precision) ||\n !Number.isInteger(precision) ||\n precision < 1\n ) {\n throw new RangeError(\"Precision must be a finite integer greater than 0.\");\n }\n\n if (precision > MAX_PRECISION) {\n throw new RangeError(\"Max precision allowed is 2.\");\n }\n\n return Number(\n (+(Math.round(+(num + \"e\" + precision)) + \"e\" + -precision)).toFixed(\n precision,\n ),\n );\n}\n\nexport function getCurrencyFromCountry(\n country: IsoCountryCode,\n): IsoCurrencyCode {\n return countryToCurrency[country];\n}\n\nexport function formatMoneyCurrency(value: number, currency: IsoCurrencyCode) {\n const locale =\n currency in currencyToLocale ? currencyToLocale[currency] : \"en-US\";\n\n const formatted = new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency: currency,\n }).format(value);\n\n return sanitizeSpaces(formatted);\n}\n\nfunction sanitizeSpaces(str: string): string {\n return str\n .replace(/\\u00A0/g, \" \")\n .replace(/\\u202F/g, \" \")\n .replace(/[^\\x20-\\x7E]/g, \"\");\n}\n","import { z } from \"zod\";\n\nexport const CREATED_LOCATION = [\"web\", \"mobile\"] as const;\n\nexport type CreatedLocation = (typeof CREATED_LOCATION)[number];\n\nexport type IntBool = 0 | 1;\n\nexport const uuidSchema = z.uuid();\nexport type UUID = z.infer<typeof uuidSchema>;\n\nexport type status = \"active\" | \"inactive\";\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../../utils/utils\";\n\nexport const LoginFormSchema = z.strictObject({\n user_email: z\n .string({ error: \"Email required\" })\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email()\n .max(254, \"Customer email must be at most 254 characters.\")\n .transform((email) => email.toLowerCase())\n ),\n password: z\n .string({ error: \"Password required\" })\n .min(1, { error: \"Password required\" }),\n});\n","import { z } from \"zod\";\nimport { COMPANY_LANGUAGES, ISO_COUNTRY_CODES } from \"./companies_types\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nconst iso_country_code = z.enum(ISO_COUNTRY_CODES, {\n error: \"Country code not supported.\",\n});\n\nexport function makeRegisterSchemas(t: SchemaT) {\n const RegisterFormSchema = z.strictObject({\n companyData: z.strictObject({\n company_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"company_name_required\"))\n .max(50, t(\"company_name_max\")),\n ),\n company_address: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"company_address_required\"))\n .max(100, t(\"company_address_max\")),\n ),\n company_phone_number: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .transform(GlobalUtils.removeDashesAndPlusSign)\n .refine((s) => /^\\d{4,15}$/.test(s), {\n error: t(\"phone_number_required\"),\n }),\n iso_country_code: z\n .string({ error: t(\"country_required\") })\n .transform(GlobalUtils.removeAllWhitespace)\n .transform((s) => s.toUpperCase())\n .pipe(iso_country_code),\n }),\n adminUserData: z.strictObject({\n user_first_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"first_name_required\"))\n .max(50, t(\"first_name_max\")),\n ),\n user_last_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"lsat_name_required\"))\n .max(50, t(\"last_name_max\")),\n ),\n user_email: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email({ error: t(\"email_required\") })\n .max(254, t(\"email_max\"))\n .transform((email) => email.toLowerCase()),\n ),\n password: z\n .string()\n .min(8, t(\"pass_min\"))\n .max(25, t(\"pass_max\"))\n .regex(/[A-Z]/, t(\"pass_uppercase\"))\n .regex(/[a-z]/, t(\"pass_lowercase\"))\n .regex(/\\d/, t(\"pass_one_number\"))\n .regex(/[@$!%*?&#^_+=-]/, t(\"pass_special_character\"))\n .regex(/^\\S*$/, t(\"pass_no_whitespace\")),\n }),\n });\n\n return { RegisterFormSchema };\n}\n\nconst schemas = makeRegisterSchemas((k) => k);\n\nexport const CompanyFormSchema =\n schemas.RegisterFormSchema.shape.companyData.safeExtend({\n company_email: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email(\"Invalid company email.\")\n .max(254, \"Company email must be at most 254 characters.\")\n .transform((email) => email.toLowerCase()),\n ),\n rtn: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(z.string().max(100, \"RTN must be at most 100 characters.\"))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n web_language: z.enum(COMPANY_LANGUAGES, {\n error: \"Please select a web portal language.\",\n }),\n });\n","export const ISO_COUNTRY_CODES = [\"US\", \"HN\"] as const;\n\nexport type IsoCountryCode = (typeof ISO_COUNTRY_CODES)[number];\n\nexport const USER_ROLES = [\"admin\", \"driver\"] as const;\n\nexport type UserRole = (typeof USER_ROLES)[number];\n\nexport type InventorySystem = \"warehouse_only\" | \"dsd\";\n\nexport type CompanySnapshot = {\n company_id: number;\n company_name: string;\n company_address: string;\n company_phone_number: string;\n company_email: string;\n inventory_system: InventorySystem;\n iso_country_code: IsoCountryCode;\n rtn: string | null;\n};\n\nexport const COMPANY_LANGUAGES = [\"es\", \"en\"] as const;\n\nexport type CompanyLanguages = (typeof COMPANY_LANGUAGES)[number];\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makeUsersSchemas(t: SchemaT) {\n const CreateUserSchema = z.object({\n firstName: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"first_name_required\"))\n .max(50, t(\"first_name_max\")),\n ),\n lastName: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z.string().min(1, t(\"lsat_name_required\")).max(50, t(\"last_name_max\")),\n ),\n email: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email({ error: t(\"email_required\") })\n .max(254, t(\"email_max\"))\n .transform((email) => email.toLowerCase()),\n ),\n password: z\n .string()\n .min(8, t(\"pass_min\"))\n .max(25, t(\"pass_max\"))\n .regex(/[A-Z]/, t(\"pass_uppercase\"))\n .regex(/[a-z]/, t(\"pass_lowercase\"))\n .regex(/\\d/, t(\"pass_one_number\"))\n .regex(/[@$!%*?&#^_+=-]/, t(\"pass_special_character\"))\n .regex(/^\\S*$/, t(\"pass_no_whitespace\")),\n\n accountType: z.enum([\"admin\", \"driver\"], {\n error: t(\"account_type\"),\n }),\n });\n\n return { CreateUserSchema };\n}\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makeCustomerSchemas(t: SchemaT) {\n const CustomerFormSchema = z.strictObject({\n customer_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"customer_name_required\"))\n .max(50, t(\"customer_name_max\")),\n ),\n\n customer_address: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(z.string().max(100, t(\"customer_address_max\")))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n customer_phone_number: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .transform(GlobalUtils.removeDashesAndPlusSign)\n .refine((s) => s === \"\" || /^\\d{4,15}$/.test(s), {\n error: t(\"customer_phone_number\"),\n })\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n customer_email_address: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .pipe(\n z\n .email()\n .max(254, t(\"customer_email_max\"))\n .transform((email) => email.toLowerCase())\n .optional(),\n )\n .optional(),\n });\n\n return { CustomerFormSchema };\n}\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makeProductSchemas(t: SchemaT) {\n const ProductFormSchema = z\n .strictObject({\n product_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"product_name_required\"))\n .max(50, t(\"product_name_max\")),\n ),\n\n product_description: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(z.string().max(100, t(\"product_descr_max\")))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n product_sku: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(z.string().max(30, t(\"product_sku_max\")))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n product_upc: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .refine((s) => s === \"\" || /^\\d{12}$/.test(s), {\n error: t(\"product_upc_test\"),\n })\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n country_tax_rule_id: z.number().optional(),\n\n product_gtin_14: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .refine((s) => s === \"\" || /^\\d{14}$/.test(s), {\n error: \"GTIN14 must be exactly 14 digits\",\n })\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n product_type: z.enum([\"unit\", \"weight\", \"case\"], {\n error: t(\"product_type_validation\"),\n }),\n\n weight_unit: z.preprocess(\n (v) => {\n if (v === \"\") return undefined;\n if (typeof v === \"string\") return v.trim().toLowerCase();\n return v;\n },\n z.enum([\"kg\", \"lb\", \"g\", \"oz\"]).optional(),\n ),\n\n price: GlobalUtils.handleZodCurrency(0, 99_999.99, t),\n cost: GlobalUtils.handleZodCurrency(0, 99_999.99, t),\n })\n\n .superRefine((data, ctx) => {\n if (data.product_type === \"weight\" && !data.weight_unit) {\n ctx.addIssue({\n code: \"custom\",\n error: t(\"weight_unit_required\"),\n path: [\"weight_unit\"],\n });\n }\n\n if (\n data.product_type !== \"weight\" &&\n typeof data.weight_unit !== \"undefined\"\n ) {\n ctx.addIssue({\n code: \"custom\",\n error: t(\"weight_unit_empty\"),\n path: [\"weight_unit\"],\n });\n }\n });\n\n return { ProductFormSchema };\n}\n","import { z } from \"zod\";\nimport {\n CREDIT_TYPE,\n INVOICE_STATUS,\n INVOICE_TYPE,\n SchemaT,\n} from \"./invoices_types\";\nimport { handleZodCurrency } from \"../../utils/utils\";\n\nexport const YmdDateSchema = z\n .string()\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/, \"Use YYYY-MM-DD\");\n\n///////////////////////////////////////////////////////////////////////\n//English / Spanish implementation\n\nexport function makeInvoiceSchemas(t: SchemaT) {\n const YmdDateSchema = z\n .string()\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/, \"Use YYYY-MM-DD\");\n\n const BaseInvoice = z\n .object({\n invoice_type: z.enum(INVOICE_TYPE, {\n error: t(\"invoice_type_not_found\"),\n }),\n invoice_date: YmdDateSchema,\n due_date: YmdDateSchema,\n tax_rate: z.number().default(0),\n tax_amount: z.number().default(0),\n warehouse_id: z.uuid().optional(),\n invoice_status: z.enum(INVOICE_STATUS).default(\"finalized\"),\n })\n .superRefine(({ invoice_date, due_date }, ctx) => {\n if (due_date < invoice_date) {\n ctx.addIssue({\n code: \"custom\",\n message: \"Due date can't be earlier than the invoice date.\",\n path: [\"due_date\"],\n });\n }\n });\n\n const LineItemBase = z.object({\n invoice_id: z.uuid().optional(),\n product_id: z.uuid({\n error: t(\"select_product\"),\n }),\n product_name: z.string().optional(),\n product_description: z.string().optional(),\n product_type: z.enum([\"unit\", \"weight\", \"case\"]).optional(),\n product_upc: z.string().optional(),\n weight_unit: z.enum([\"kg\", \"lb\", \"g\", \"oz\"]).optional(),\n quantity: handleZodCurrency(0.01, 99_999.99, t),\n country_tax_rule_id: z.number().optional(),\n tax_percentage: z.number().optional(),\n });\n\n const SalesItem = LineItemBase.safeExtend({\n price: handleZodCurrency(0, 99_999.99, t),\n credit_type: z.undefined(),\n });\n\n const CreditItem = LineItemBase.safeExtend({\n price: handleZodCurrency(0, 99_999.99, t),\n credit_type: z.enum(CREDIT_TYPE, {\n error: t(\"select_credit_type\"),\n }),\n });\n\n const PurchaseItem = LineItemBase.safeExtend({\n price: handleZodCurrency(0, 99_999.99, t),\n credit_type: z.undefined(),\n });\n\n const SalesInvoiceSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"sales\"),\n party_id: z.uuid({\n error: t(\"select_customer\"),\n }),\n invoice_items: z.array(SalesItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const CreditInvoiceSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"credit\"),\n party_id: z.uuid({\n error: t(\"select_customer\"),\n }),\n invoice_items: z.array(CreditItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const PurchaseInvoiceSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"purchase\"),\n party_id: z.uuid({\n error: t(\"select_vendor\"),\n }),\n invoice_items: z.array(PurchaseItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const SalesOrderSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"sales_order\"),\n party_id: z.uuid({\n error: t(\"select_customer\"),\n }),\n invoice_items: z.array(SalesItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const AnyInvoiceSchema = z.discriminatedUnion(\"invoice_type\", [\n SalesInvoiceSchema,\n PurchaseInvoiceSchema,\n CreditInvoiceSchema,\n SalesOrderSchema,\n ]);\n\n return {\n YmdDateSchema,\n SalesInvoiceSchema,\n CreditInvoiceSchema,\n PurchaseInvoiceSchema,\n SalesOrderSchema,\n AnyInvoiceSchema,\n };\n}\n\nexport type InvoiceSchemas = ReturnType<typeof makeInvoiceSchemas>;\n","import { z } from \"zod\";\nimport * as InvoiceSchemas from \"./invoices_schemas\";\nimport { IntBool, UUID } from \"../../types/shared_types\";\n\nexport type SchemaT = (key: string, params?: Record<string, any>) => string;\n\nexport const INVOICE_TYPE = [\n \"sales\",\n \"credit\",\n \"purchase\",\n \"sales_order\",\n] as const;\n\nexport type InvoiceType = (typeof INVOICE_TYPE)[number];\n\nexport const INVOICE_STATUS = [\"finalized\", \"voided\"] as const;\n\nexport type InvoiceStatus = (typeof INVOICE_STATUS)[number];\n\nexport const CREDIT_TYPE = [\"dump\", \"return\"] as const;\n\nexport type CreditType = (typeof CREDIT_TYPE)[number];\n\nexport type InvoiceSchemaSet = ReturnType<\n typeof InvoiceSchemas.makeInvoiceSchemas\n>;\nexport type AnyInvoiceOut = z.output<InvoiceSchemaSet[\"AnyInvoiceSchema\"]>;\n\nexport type InvoiceSnapshot = {\n invoice_id: UUID;\n invoice_type: InvoiceType;\n subtotal: string;\n tax_amount: string;\n total_amount: string;\n remaining_balance: string;\n due_date: string;\n tax_rate: string;\n is_admin_reviewed: IntBool;\n customer_id: UUID;\n company_id: number;\n short_invoice_id: string;\n invoice_date: string;\n invoice_status: InvoiceStatus;\n occurred_at_ms: string;\n cai: string | null;\n invoice_number_start_range: string | null;\n invoice_number_end_range: string | null;\n issuance_date: string | null;\n issuance_deadline: string | null;\n};\n\nexport type InvoiceSnapshotMobile = InvoiceSnapshot & {\n signature: string | null;\n};\n","import * as InvoiceItemsTypes from \"./invoice_items_types\";\n\nexport function mapInvoiceProducts(\n row: InvoiceItemsTypes.InvoiceItemResponse,\n): InvoiceItemsTypes.MappedInvoiceItem {\n return {\n invoice_item_id: row.invoice_item_id,\n product_id: row.product_id,\n quantity: Number(row.quantity),\n price: Number(row.price),\n amount: Number(row.amount),\n country_tax_rule_id: row.country_tax_rule_id ?? undefined,\n credit_type: row.credit_type ?? undefined,\n product_name: row.product_name,\n product_description: row.product_description ?? undefined,\n product_type: row.product_type,\n weight_unit: row.weight_unit ?? undefined,\n product_upc: row.product_upc ?? undefined,\n rule_name: row.rule_name ?? undefined,\n tax_percentage:\n row.tax_percentage === null ? undefined : Number(row.tax_percentage),\n };\n}\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\n\nexport const CreditApplicationSchema = z.strictObject({\n credit_invoice_id: z.uuid({ error: \"Select a credit\" }),\n applied_amount: GlobalUtils.handleZodCurrency(0.01, 999_999.99),\n});\n","import { z } from \"zod\";\nimport { PAYMENT_METHOD } from \"./payments_types\";\nimport * as GlobalUtils from \"../../utils/utils\";\n\nexport const PaymentFormSchema = z.strictObject({\n payment_method: z.enum(PAYMENT_METHOD, {\n error: \"Payment method is required.\",\n }),\n check_number: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z.string().max(50, \"Payment check number must be at most 50 characters.\")\n )\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n payment_amount: GlobalUtils.handleZodCurrency(0.01, 999_999.99),\n});\n","import { IntBool, UUID } from \"../../types/shared_types\";\n\nexport const PAYMENT_METHOD = [\n \"check\",\n \"cash\",\n \"bank_transfer\",\n \"digital_wallet\",\n] as const;\n\nexport type PaymentMethod = (typeof PAYMENT_METHOD)[number];\n\nexport type PaymentStatus = \"finalized\" | \"voided\";\n\nexport type PaymentSnapshot = {\n payment_id: UUID;\n invoice_id: UUID;\n payment_amount: string;\n payment_date: string;\n payment_method: PaymentMethod;\n check_number: string | null;\n is_admin_reviewed: IntBool;\n company_id: number;\n short_invoice_id: string;\n payment_status: PaymentStatus;\n occurred_at_ms: string;\n};\n","export const exceedsTwoDecimals = (raw: string) => {\n const s = String(raw ?? \"\").replace(/[,\\s]/g, \"\");\n const dot = s.indexOf(\".\");\n if (dot === -1) return false;\n const after = s.slice(dot + 1);\n const digitsAfter = (after.match(/\\d/g) ?? []).length;\n return digitsAfter > 2;\n};\n","// \"Today\" in the user's LOCAL timezone as YMD\nexport function todayLocalYmd(): string {\n const now = new Date();\n const y = now.getFullYear();\n const m = String(now.getMonth() + 1).padStart(2, \"0\");\n const d = String(now.getDate()).padStart(2, \"0\");\n return `${y}-${m}-${d}`;\n}\n\n// Add days in LOCAL time (no drift)\nexport function addDaysLocalYmd(ymd: string, days: number): string {\n const dt = localDateFromYmd(ymd);\n dt.setDate(dt.getDate() + days);\n return ymdFromLocalDate(dt);\n}\n\nexport function formatYmdLong(ymd: string, locale = \"en-US\"): string {\n const { y, m, d } = parseYmd(ymd);\n const utcDate = new Date(Date.UTC(y, m - 1, d)); // 00:00Z\n return new Intl.DateTimeFormat(locale, {\n dateStyle: \"long\",\n timeZone: \"UTC\",\n }).format(utcDate);\n}\n\nexport function localDateFromYmd(ymd: string): Date {\n const { y, m, d } = parseYmd(ymd);\n return new Date(y, m - 1, d); // LOCAL midnight\n}\n\nexport function ymdFromLocalDate(dt: Date): string {\n const y = dt.getFullYear();\n const m = String(dt.getMonth() + 1).padStart(2, \"0\");\n const d = String(dt.getDate()).padStart(2, \"0\");\n return `${y}-${m}-${d}`;\n}\n\nfunction parseYmd(ymd: string): { y: number; m: number; d: number } {\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(ymd);\n if (!m) throw new Error(\"Bad YMD\");\n return { y: Number(m[1]), m: Number(m[2]), d: Number(m[3]) };\n}\n","import type { FieldError, FieldErrorsImpl, Merge } from \"react-hook-form\";\n\ntype RHFError =\n | string\n | FieldError\n | Merge<FieldError, FieldErrorsImpl<any>>\n | undefined;\n\nexport const getErrorMessage = (err: RHFError): string | undefined => {\n if (!err) return undefined;\n if (typeof err === \"string\") return err;\n // FieldError has .message (string | undefined)\n const msg = (err as FieldError).message as string | undefined;\n return typeof msg === \"string\" ? msg : undefined;\n};\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { YmdDateSchema } from \"../invoices/invoices_schemas\";\nimport { POS_INVOICE_TYPE } from \"./point_of_sales_types\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makePosSchemas(t: SchemaT) {\n const HN_INVOICE_REGEX = /^\\d{3}-\\d{3}-\\d{2}-\\d{8}$/;\n\n const InvoiceNumberSchema = z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .string()\n .min(19, t(\"must_be_in_format\"))\n .max(19, t(\"must_be_in_format\"))\n .regex(HN_INVOICE_REGEX, {\n error: t(\"must_be_in_format\"),\n }),\n );\n\n const PointOfSalesSchema = z\n .strictObject({\n cai: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(z.string().min(1, t(\"cai_is_required\")).max(50, t(\"cai_max\"))),\n\n pos_invoice_type: z.enum(POS_INVOICE_TYPE, t(\"select_invoice_type\")),\n\n invoice_number_start_range: InvoiceNumberSchema,\n invoice_number_end_range: InvoiceNumberSchema,\n next_invoice_number: InvoiceNumberSchema,\n\n issuance_date: YmdDateSchema,\n issuance_deadline: YmdDateSchema,\n })\n .superRefine(\n (\n {\n issuance_date,\n issuance_deadline,\n invoice_number_start_range: start,\n invoice_number_end_range: end,\n next_invoice_number: next,\n },\n\n ctx,\n ) => {\n if (issuance_deadline < issuance_date) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"issuance_deadline\"),\n path: [\"issuance_deadline\"],\n });\n }\n\n const prefix = (s: string) => s.slice(0, 10); // \"NNN-NNN-NN\"\n\n if (prefix(start) !== prefix(end)) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"start_end_numbers\"),\n path: [\"invoice_number_end_range\"],\n });\n }\n\n if (prefix(start) !== prefix(next)) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"start_next_numbers\"),\n path: [\"next_invoice_number\"],\n });\n }\n\n if (!(next >= start && next <= end)) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"next_invoice_number\"),\n path: [\"next_invoice_number\"],\n });\n }\n\n if (end < start) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"end_invoice_number\"),\n path: [\"invoice_number_end_range\"],\n });\n }\n },\n );\n\n return {\n PointOfSalesSchema,\n };\n}\n","export type MappedPointOfSales = {\n point_of_sales_id: number;\n cai: string;\n pos_invoice_type: PosInvoiceType;\n invoice_number_start_range: string;\n invoice_number_end_range: string;\n next_invoice_number: string;\n issuance_date: string;\n issuance_deadline: string;\n};\n\nexport const POS_INVOICE_TYPE = [\"sales\", \"credit\"] as const;\n\nexport type PosInvoiceType = (typeof POS_INVOICE_TYPE)[number];\n"],"mappings":"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","names":["fromString","fromNumber","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","YmdDateSchema","import_zod","import_zod","import_zod"]}
package/dist/index.d.cts CHANGED
@@ -42,7 +42,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
42
42
  finalized: "finalized";
43
43
  voided: "voided";
44
44
  }>>;
45
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
46
45
  invoice_type: z.ZodLiteral<"sales">;
47
46
  party_id: z.ZodUUID;
48
47
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -79,7 +78,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
79
78
  finalized: "finalized";
80
79
  voided: "voided";
81
80
  }>>;
82
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
83
81
  invoice_type: z.ZodLiteral<"credit">;
84
82
  party_id: z.ZodUUID;
85
83
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -119,7 +117,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
119
117
  finalized: "finalized";
120
118
  voided: "voided";
121
119
  }>>;
122
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
123
120
  invoice_type: z.ZodLiteral<"purchase">;
124
121
  party_id: z.ZodUUID;
125
122
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -156,7 +153,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
156
153
  finalized: "finalized";
157
154
  voided: "voided";
158
155
  }>>;
159
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
160
156
  invoice_type: z.ZodLiteral<"sales_order">;
161
157
  party_id: z.ZodUUID;
162
158
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -193,7 +189,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
193
189
  finalized: "finalized";
194
190
  voided: "voided";
195
191
  }>>;
196
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
197
192
  invoice_type: z.ZodLiteral<"sales">;
198
193
  party_id: z.ZodUUID;
199
194
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -229,7 +224,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
229
224
  finalized: "finalized";
230
225
  voided: "voided";
231
226
  }>>;
232
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
233
227
  invoice_type: z.ZodLiteral<"purchase">;
234
228
  party_id: z.ZodUUID;
235
229
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -265,7 +259,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
265
259
  finalized: "finalized";
266
260
  voided: "voided";
267
261
  }>>;
268
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
269
262
  invoice_type: z.ZodLiteral<"credit">;
270
263
  party_id: z.ZodUUID;
271
264
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -304,7 +297,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
304
297
  finalized: "finalized";
305
298
  voided: "voided";
306
299
  }>>;
307
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
308
300
  invoice_type: z.ZodLiteral<"sales_order">;
309
301
  party_id: z.ZodUUID;
310
302
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -794,7 +786,6 @@ declare function makePosSchemas(t: SchemaT): {
794
786
  next_invoice_number: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>;
795
787
  issuance_date: z.ZodString;
796
788
  issuance_deadline: z.ZodString;
797
- pos_name: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>;
798
789
  }, z.core.$strict>;
799
790
  };
800
791
 
@@ -807,7 +798,6 @@ type MappedPointOfSales = {
807
798
  next_invoice_number: string;
808
799
  issuance_date: string;
809
800
  issuance_deadline: string;
810
- pos_name: string;
811
801
  };
812
802
  declare const POS_INVOICE_TYPE: readonly ["sales", "credit"];
813
803
  type PosInvoiceType = (typeof POS_INVOICE_TYPE)[number];
package/dist/index.d.ts CHANGED
@@ -42,7 +42,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
42
42
  finalized: "finalized";
43
43
  voided: "voided";
44
44
  }>>;
45
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
46
45
  invoice_type: z.ZodLiteral<"sales">;
47
46
  party_id: z.ZodUUID;
48
47
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -79,7 +78,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
79
78
  finalized: "finalized";
80
79
  voided: "voided";
81
80
  }>>;
82
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
83
81
  invoice_type: z.ZodLiteral<"credit">;
84
82
  party_id: z.ZodUUID;
85
83
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -119,7 +117,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
119
117
  finalized: "finalized";
120
118
  voided: "voided";
121
119
  }>>;
122
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
123
120
  invoice_type: z.ZodLiteral<"purchase">;
124
121
  party_id: z.ZodUUID;
125
122
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -156,7 +153,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
156
153
  finalized: "finalized";
157
154
  voided: "voided";
158
155
  }>>;
159
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
160
156
  invoice_type: z.ZodLiteral<"sales_order">;
161
157
  party_id: z.ZodUUID;
162
158
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -193,7 +189,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
193
189
  finalized: "finalized";
194
190
  voided: "voided";
195
191
  }>>;
196
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
197
192
  invoice_type: z.ZodLiteral<"sales">;
198
193
  party_id: z.ZodUUID;
199
194
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -229,7 +224,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
229
224
  finalized: "finalized";
230
225
  voided: "voided";
231
226
  }>>;
232
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
233
227
  invoice_type: z.ZodLiteral<"purchase">;
234
228
  party_id: z.ZodUUID;
235
229
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -265,7 +259,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
265
259
  finalized: "finalized";
266
260
  voided: "voided";
267
261
  }>>;
268
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
269
262
  invoice_type: z.ZodLiteral<"credit">;
270
263
  party_id: z.ZodUUID;
271
264
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -304,7 +297,6 @@ declare function makeInvoiceSchemas(t: SchemaT): {
304
297
  finalized: "finalized";
305
298
  voided: "voided";
306
299
  }>>;
307
- point_of_sales_id: z.ZodOptional<z.ZodNumber>;
308
300
  invoice_type: z.ZodLiteral<"sales_order">;
309
301
  party_id: z.ZodUUID;
310
302
  invoice_items: z.ZodArray<z.ZodObject<{
@@ -794,7 +786,6 @@ declare function makePosSchemas(t: SchemaT): {
794
786
  next_invoice_number: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>;
795
787
  issuance_date: z.ZodString;
796
788
  issuance_deadline: z.ZodString;
797
- pos_name: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>;
798
789
  }, z.core.$strict>;
799
790
  };
800
791
 
@@ -807,7 +798,6 @@ type MappedPointOfSales = {
807
798
  next_invoice_number: string;
808
799
  issuance_date: string;
809
800
  issuance_deadline: string;
810
- pos_name: string;
811
801
  };
812
802
  declare const POS_INVOICE_TYPE: readonly ["sales", "credit"];
813
803
  type PosInvoiceType = (typeof POS_INVOICE_TYPE)[number];
package/dist/index.js CHANGED
@@ -269,8 +269,7 @@ function makeInvoiceSchemas(t) {
269
269
  tax_rate: z8.number().default(0),
270
270
  tax_amount: z8.number().default(0),
271
271
  warehouse_id: z8.uuid().optional(),
272
- invoice_status: z8.enum(INVOICE_STATUS).default("finalized"),
273
- point_of_sales_id: z8.number().optional()
272
+ invoice_status: z8.enum(INVOICE_STATUS).default("finalized")
274
273
  }).superRefine(({ invoice_date, due_date }, ctx) => {
275
274
  if (due_date < invoice_date) {
276
275
  ctx.addIssue({
@@ -479,10 +478,7 @@ function makePosSchemas(t) {
479
478
  invoice_number_end_range: InvoiceNumberSchema,
480
479
  next_invoice_number: InvoiceNumberSchema,
481
480
  issuance_date: YmdDateSchema,
482
- issuance_deadline: YmdDateSchema,
483
- pos_name: z11.string().transform(normalizeSpaces).pipe(
484
- z11.string().min(1, t("pos_name_required")).max(100, t("pos_name_max"))
485
- )
481
+ issuance_deadline: YmdDateSchema
486
482
  }).superRefine(
487
483
  ({
488
484
  issuance_date,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types/money_types.ts","../src/utils/utils.ts","../src/types/shared_types.ts","../src/domains/auth/login/login_schemas.ts","../src/domains/companies/companies_schemas.ts","../src/domains/companies/companies_types.ts","../src/domains/users/users_schemas.ts","../src/domains/customers/customer_schemas.ts","../src/domains/products/product_schemas.ts","../src/domains/invoices/invoices_schemas.ts","../src/domains/invoices/invoices_types.ts","../src/domains/invoice_items/invoice_items_mappers.ts","../src/domains/credit_applications/credit_applications_schemas.ts","../src/domains/payments/payments_schemas.ts","../src/domains/payments/payments_types.ts","../src/utils/money_utils.ts","../src/utils/date_utils.ts","../src/utils/errors_utils.ts","../src/domains/point_of_sales/point_of_sales_schemas.ts","../src/domains/point_of_sales/point_of_sales_types.ts"],"sourcesContent":["import { IsoCountryCode } from \"../domains/companies/companies_types\";\n\nexport type IsoCurrencyCode = \"USD\" | \"HNL\";\ntype Locale = \"en-US\" | \"es-HN\";\n\nexport const countryToCurrency: Record<IsoCountryCode, IsoCurrencyCode> = {\n US: \"USD\",\n HN: \"HNL\",\n};\n\nexport const currencyToLocale: Record<IsoCurrencyCode, Locale> = {\n USD: \"en-US\",\n HNL: \"es-HN\",\n};\n","import * as GlobalTypes from \"./types\";\nimport { IsoCountryCode } from \"../domains/companies/companies_types\";\nimport {\n IsoCurrencyCode,\n countryToCurrency,\n currencyToLocale,\n} from \"../types/money_types\";\n\nimport { z } from \"zod\";\nimport { SchemaT } from \"../domains/invoices/invoices_types\";\n\n/**\n * Validates zod currency with precision.\n *\n *\n * @param minAmount\n * @param maxAmount\n * @returns\n */\nexport function handleZodCurrency(\n minAmount: number,\n maxAmount: number,\n t?: SchemaT,\n) {\n if (!t) {\n const fromString = z\n .string({\n error: \"Enter a valid number\",\n })\n .refine((s) => s.trim().length > 0, { error: \"Enter a valid number\" })\n .transform((s) => s.replace(/[,\\s]/g, \"\"))\n .refine((s) => s !== \"\" && !Number.isNaN(Number(s)), {\n error: \"Enter a valid number\",\n })\n .refine((s) => Number.isFinite(Number(s)), {\n error: \"Enter a valid number\",\n })\n .refine((s) => Number(s) >= 0, { error: \"Enter a positive number\" })\n .transform((s) => Number(s));\n\n const fromNumber = z\n .number()\n .refine((n) => Number.isFinite(n), { error: \"Enter a valid number\" })\n .refine((n) => n >= 0, { error: \"Enter a positive number\" });\n\n return z\n .union([fromString, fromNumber])\n .transform((n) => roundWithPrecision(n, 2))\n .refine((n) => n >= minAmount, {\n error: `Must be at least ${minAmount}`,\n })\n .refine((n) => n <= maxAmount, {\n error: `Exceeds allowed limit ${maxAmount}`,\n });\n }\n\n const fromString = z\n .string({\n error: t(\"enter_a_valid_number\"),\n })\n .refine((s) => s.trim().length > 0, {\n error: t(\"enter_a_valid_number\"),\n })\n .transform((s) => s.replace(/[,\\s]/g, \"\"))\n .refine((s) => s !== \"\" && !Number.isNaN(Number(s)), {\n error: t(\"enter_a_valid_number\"),\n })\n .refine((s) => Number.isFinite(Number(s)), {\n error: t(\"enter_a_valid_number\"),\n })\n .refine((s) => Number(s) >= 0, {\n error: t(\"enter_a_positive_number\"),\n })\n .transform((s) => Number(s));\n\n const fromNumber = z\n .number()\n .refine((n) => Number.isFinite(n), {\n error: t(\"enter_a_valid_number\"),\n })\n .refine((n) => n >= 0, {\n error: t(\"enter_a_positive_number\"),\n });\n\n return z\n .union([fromString, fromNumber])\n .transform((n) => roundWithPrecision(n, 2))\n .refine((n) => n >= minAmount, {\n error: `${t(\"must_be_at_least\")} ${minAmount}`,\n })\n .refine((n) => n <= maxAmount, {\n error: `${t(\"exceeds_allowed_limit\")} ${maxAmount}`,\n });\n}\n\n/**\n * Trims any leading or trailing spaces\n * Transforms empty strings into undefined.\n *\n * @param s\n * @returns\n */\nexport const transformEmptyStringToUndefined = (s: string) =>\n s.trim() === \"\" ? undefined : s;\n\n/**\n * - Collapses any run of whitespace in a string (spaces, tabs, newlines, nbspb, and other weird unicode spaces etc.)\n * into a single ASCII space.\n * - Trims leading and trailing whitespace.\n * \" Jared \\n Gomez \\t Driver\\t \" -> \"Jared Gomez Driver\"\n *\n * @param s\n * @returns\n */\nexport const normalizeSpaces = (s: string) => whitespace(s, \"normalize\");\n\n/**\n * Removes all whitespace from a string\n * @param s\n * @returns\n */\nexport const removeAllWhitespace = (s: string) => whitespace(s, \"remove\");\n\nconst whitespace = (s: string, mode: GlobalTypes.WhitespaceMode) => {\n if (mode === \"remove\") {\n return s.replace(/\\s+/g, \"\");\n }\n\n return s.replace(/\\s+/g, \" \").trim();\n};\n\n/**\n * Removes all dashes and + signs from a string\n * +1-305-555-0123 -> \"13055550123\"\n * 305-555-0123 -> \"3055550123\"\n *\n * @param s\n * @returns\n */\nexport const removeDashesAndPlusSign = (s: string): string =>\n s.replace(/[+-]/g, \"\");\n\n/**\n * Rounds a number to a certain precision.\n * Contract:\n * 1. Number must be finite and non negative.\n * 2. Precision must be finite nonnegative and an integer.\n * 3. Precision must be <= Max precision\n * 4. Returns a number >= 0\n * Default is round half up.\n *\n * @param num\n * @param precision\n * @param opts\n * @returns\n */\nexport function roundWithPrecision(\n num: number,\n precision: number,\n opts?: GlobalTypes.ToFixedOptions,\n): number {\n const MAX_PRECISION = 2;\n const { roundType = \"half_up\" } = opts ?? {};\n\n if (!Number.isFinite(num) || num < 0) {\n throw new RangeError(\"Number must be finite and greater than 0.\");\n }\n\n if (\n !Number.isFinite(precision) ||\n !Number.isInteger(precision) ||\n precision < 1\n ) {\n throw new RangeError(\"Precision must be a finite integer greater than 0.\");\n }\n\n if (precision > MAX_PRECISION) {\n throw new RangeError(\"Max precision allowed is 2.\");\n }\n\n return Number(\n (+(Math.round(+(num + \"e\" + precision)) + \"e\" + -precision)).toFixed(\n precision,\n ),\n );\n}\n\nexport function getCurrencyFromCountry(\n country: IsoCountryCode,\n): IsoCurrencyCode {\n return countryToCurrency[country];\n}\n\nexport function formatMoneyCurrency(value: number, currency: IsoCurrencyCode) {\n const locale =\n currency in currencyToLocale ? currencyToLocale[currency] : \"en-US\";\n\n const formatted = new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency: currency,\n }).format(value);\n\n return sanitizeSpaces(formatted);\n}\n\nfunction sanitizeSpaces(str: string): string {\n return str\n .replace(/\\u00A0/g, \" \")\n .replace(/\\u202F/g, \" \")\n .replace(/[^\\x20-\\x7E]/g, \"\");\n}\n","import { z } from \"zod\";\n\nexport const CREATED_LOCATION = [\"web\", \"mobile\"] as const;\n\nexport type CreatedLocation = (typeof CREATED_LOCATION)[number];\n\nexport type IntBool = 0 | 1;\n\nexport const uuidSchema = z.uuid();\nexport type UUID = z.infer<typeof uuidSchema>;\n\nexport type status = \"active\" | \"inactive\";\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../../utils/utils\";\n\nexport const LoginFormSchema = z.strictObject({\n user_email: z\n .string({ error: \"Email required\" })\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email()\n .max(254, \"Customer email must be at most 254 characters.\")\n .transform((email) => email.toLowerCase())\n ),\n password: z\n .string({ error: \"Password required\" })\n .min(1, { error: \"Password required\" }),\n});\n","import { z } from \"zod\";\nimport { COMPANY_LANGUAGES, ISO_COUNTRY_CODES } from \"./companies_types\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nconst iso_country_code = z.enum(ISO_COUNTRY_CODES, {\n error: \"Country code not supported.\",\n});\n\nexport function makeRegisterSchemas(t: SchemaT) {\n const RegisterFormSchema = z.strictObject({\n companyData: z.strictObject({\n company_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"company_name_required\"))\n .max(50, t(\"company_name_max\")),\n ),\n company_address: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"company_address_required\"))\n .max(100, t(\"company_address_max\")),\n ),\n company_phone_number: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .transform(GlobalUtils.removeDashesAndPlusSign)\n .refine((s) => /^\\d{4,15}$/.test(s), {\n error: t(\"phone_number_required\"),\n }),\n iso_country_code: z\n .string({ error: t(\"country_required\") })\n .transform(GlobalUtils.removeAllWhitespace)\n .transform((s) => s.toUpperCase())\n .pipe(iso_country_code),\n }),\n adminUserData: z.strictObject({\n user_first_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"first_name_required\"))\n .max(50, t(\"first_name_max\")),\n ),\n user_last_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"lsat_name_required\"))\n .max(50, t(\"last_name_max\")),\n ),\n user_email: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email({ error: t(\"email_required\") })\n .max(254, t(\"email_max\"))\n .transform((email) => email.toLowerCase()),\n ),\n password: z\n .string()\n .min(8, t(\"pass_min\"))\n .max(25, t(\"pass_max\"))\n .regex(/[A-Z]/, t(\"pass_uppercase\"))\n .regex(/[a-z]/, t(\"pass_lowercase\"))\n .regex(/\\d/, t(\"pass_one_number\"))\n .regex(/[@$!%*?&#^_+=-]/, t(\"pass_special_character\"))\n .regex(/^\\S*$/, t(\"pass_no_whitespace\")),\n }),\n });\n\n return { RegisterFormSchema };\n}\n\nconst schemas = makeRegisterSchemas((k) => k);\n\nexport const CompanyFormSchema =\n schemas.RegisterFormSchema.shape.companyData.safeExtend({\n company_email: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email(\"Invalid company email.\")\n .max(254, \"Company email must be at most 254 characters.\")\n .transform((email) => email.toLowerCase()),\n ),\n rtn: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(z.string().max(100, \"RTN must be at most 100 characters.\"))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n web_language: z.enum(COMPANY_LANGUAGES, {\n error: \"Please select a web portal language.\",\n }),\n });\n","export const ISO_COUNTRY_CODES = [\"US\", \"HN\"] as const;\n\nexport type IsoCountryCode = (typeof ISO_COUNTRY_CODES)[number];\n\nexport const USER_ROLES = [\"admin\", \"driver\"] as const;\n\nexport type UserRole = (typeof USER_ROLES)[number];\n\nexport type InventorySystem = \"warehouse_only\" | \"dsd\";\n\nexport type CompanySnapshot = {\n company_id: number;\n company_name: string;\n company_address: string;\n company_phone_number: string;\n company_email: string;\n inventory_system: InventorySystem;\n iso_country_code: IsoCountryCode;\n rtn: string | null;\n};\n\nexport const COMPANY_LANGUAGES = [\"es\", \"en\"] as const;\n\nexport type CompanyLanguages = (typeof COMPANY_LANGUAGES)[number];\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makeUsersSchemas(t: SchemaT) {\n const CreateUserSchema = z.object({\n firstName: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"first_name_required\"))\n .max(50, t(\"first_name_max\")),\n ),\n lastName: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z.string().min(1, t(\"lsat_name_required\")).max(50, t(\"last_name_max\")),\n ),\n email: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email({ error: t(\"email_required\") })\n .max(254, t(\"email_max\"))\n .transform((email) => email.toLowerCase()),\n ),\n password: z\n .string()\n .min(8, t(\"pass_min\"))\n .max(25, t(\"pass_max\"))\n .regex(/[A-Z]/, t(\"pass_uppercase\"))\n .regex(/[a-z]/, t(\"pass_lowercase\"))\n .regex(/\\d/, t(\"pass_one_number\"))\n .regex(/[@$!%*?&#^_+=-]/, t(\"pass_special_character\"))\n .regex(/^\\S*$/, t(\"pass_no_whitespace\")),\n\n accountType: z.enum([\"admin\", \"driver\"], {\n error: t(\"account_type\"),\n }),\n });\n\n return { CreateUserSchema };\n}\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makeCustomerSchemas(t: SchemaT) {\n const CustomerFormSchema = z.strictObject({\n customer_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"customer_name_required\"))\n .max(50, t(\"customer_name_max\")),\n ),\n\n customer_address: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(z.string().max(100, t(\"customer_address_max\")))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n customer_phone_number: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .transform(GlobalUtils.removeDashesAndPlusSign)\n .refine((s) => s === \"\" || /^\\d{4,15}$/.test(s), {\n error: t(\"customer_phone_number\"),\n })\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n customer_email_address: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .pipe(\n z\n .email()\n .max(254, t(\"customer_email_max\"))\n .transform((email) => email.toLowerCase())\n .optional(),\n )\n .optional(),\n });\n\n return { CustomerFormSchema };\n}\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makeProductSchemas(t: SchemaT) {\n const ProductFormSchema = z\n .strictObject({\n product_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"product_name_required\"))\n .max(50, t(\"product_name_max\")),\n ),\n\n product_description: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(z.string().max(100, t(\"product_descr_max\")))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n product_sku: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(z.string().max(30, t(\"product_sku_max\")))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n product_upc: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .refine((s) => s === \"\" || /^\\d{12}$/.test(s), {\n error: t(\"product_upc_test\"),\n })\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n country_tax_rule_id: z.number().optional(),\n\n product_gtin_14: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .refine((s) => s === \"\" || /^\\d{14}$/.test(s), {\n error: \"GTIN14 must be exactly 14 digits\",\n })\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n product_type: z.enum([\"unit\", \"weight\", \"case\"], {\n error: t(\"product_type_validation\"),\n }),\n\n weight_unit: z.preprocess(\n (v) => {\n if (v === \"\") return undefined;\n if (typeof v === \"string\") return v.trim().toLowerCase();\n return v;\n },\n z.enum([\"kg\", \"lb\", \"g\", \"oz\"]).optional(),\n ),\n\n price: GlobalUtils.handleZodCurrency(0, 99_999.99, t),\n cost: GlobalUtils.handleZodCurrency(0, 99_999.99, t),\n })\n\n .superRefine((data, ctx) => {\n if (data.product_type === \"weight\" && !data.weight_unit) {\n ctx.addIssue({\n code: \"custom\",\n error: t(\"weight_unit_required\"),\n path: [\"weight_unit\"],\n });\n }\n\n if (\n data.product_type !== \"weight\" &&\n typeof data.weight_unit !== \"undefined\"\n ) {\n ctx.addIssue({\n code: \"custom\",\n error: t(\"weight_unit_empty\"),\n path: [\"weight_unit\"],\n });\n }\n });\n\n return { ProductFormSchema };\n}\n","import { z } from \"zod\";\nimport {\n CREDIT_TYPE,\n INVOICE_STATUS,\n INVOICE_TYPE,\n SchemaT,\n} from \"./invoices_types\";\nimport { handleZodCurrency } from \"../../utils/utils\";\n\nexport const YmdDateSchema = z\n .string()\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/, \"Use YYYY-MM-DD\");\n\n///////////////////////////////////////////////////////////////////////\n//English / Spanish implementation\n\nexport function makeInvoiceSchemas(t: SchemaT) {\n const YmdDateSchema = z\n .string()\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/, \"Use YYYY-MM-DD\");\n\n const BaseInvoice = z\n .object({\n invoice_type: z.enum(INVOICE_TYPE, {\n error: t(\"invoice_type_not_found\"),\n }),\n invoice_date: YmdDateSchema,\n due_date: YmdDateSchema,\n tax_rate: z.number().default(0),\n tax_amount: z.number().default(0),\n warehouse_id: z.uuid().optional(),\n invoice_status: z.enum(INVOICE_STATUS).default(\"finalized\"),\n point_of_sales_id: z.number().optional(),\n })\n .superRefine(({ invoice_date, due_date }, ctx) => {\n if (due_date < invoice_date) {\n ctx.addIssue({\n code: \"custom\",\n message: \"Due date can't be earlier than the invoice date.\",\n path: [\"due_date\"],\n });\n }\n });\n\n const LineItemBase = z.object({\n invoice_id: z.uuid().optional(),\n product_id: z.uuid({\n error: t(\"select_product\"),\n }),\n product_name: z.string().optional(),\n product_description: z.string().optional(),\n product_type: z.enum([\"unit\", \"weight\", \"case\"]).optional(),\n product_upc: z.string().optional(),\n weight_unit: z.enum([\"kg\", \"lb\", \"g\", \"oz\"]).optional(),\n quantity: handleZodCurrency(0.01, 99_999.99, t),\n country_tax_rule_id: z.number().optional(),\n tax_percentage: z.number().optional(),\n });\n\n const SalesItem = LineItemBase.safeExtend({\n price: handleZodCurrency(0, 99_999.99, t),\n credit_type: z.undefined(),\n });\n\n const CreditItem = LineItemBase.safeExtend({\n price: handleZodCurrency(0, 99_999.99, t),\n credit_type: z.enum(CREDIT_TYPE, {\n error: t(\"select_credit_type\"),\n }),\n });\n\n const PurchaseItem = LineItemBase.safeExtend({\n price: handleZodCurrency(0, 99_999.99, t),\n credit_type: z.undefined(),\n });\n\n const SalesInvoiceSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"sales\"),\n party_id: z.uuid({\n error: t(\"select_customer\"),\n }),\n invoice_items: z.array(SalesItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const CreditInvoiceSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"credit\"),\n party_id: z.uuid({\n error: t(\"select_customer\"),\n }),\n invoice_items: z.array(CreditItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const PurchaseInvoiceSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"purchase\"),\n party_id: z.uuid({\n error: t(\"select_vendor\"),\n }),\n invoice_items: z.array(PurchaseItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const SalesOrderSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"sales_order\"),\n party_id: z.uuid({\n error: t(\"select_customer\"),\n }),\n invoice_items: z.array(SalesItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const AnyInvoiceSchema = z.discriminatedUnion(\"invoice_type\", [\n SalesInvoiceSchema,\n PurchaseInvoiceSchema,\n CreditInvoiceSchema,\n SalesOrderSchema,\n ]);\n\n return {\n YmdDateSchema,\n SalesInvoiceSchema,\n CreditInvoiceSchema,\n PurchaseInvoiceSchema,\n SalesOrderSchema,\n AnyInvoiceSchema,\n };\n}\n\nexport type InvoiceSchemas = ReturnType<typeof makeInvoiceSchemas>;\n","import { z } from \"zod\";\nimport * as InvoiceSchemas from \"./invoices_schemas\";\nimport { IntBool, UUID } from \"../../types/shared_types\";\n\nexport type SchemaT = (key: string, params?: Record<string, any>) => string;\n\nexport const INVOICE_TYPE = [\n \"sales\",\n \"credit\",\n \"purchase\",\n \"sales_order\",\n] as const;\n\nexport type InvoiceType = (typeof INVOICE_TYPE)[number];\n\nexport const INVOICE_STATUS = [\"finalized\", \"voided\"] as const;\n\nexport type InvoiceStatus = (typeof INVOICE_STATUS)[number];\n\nexport const CREDIT_TYPE = [\"dump\", \"return\"] as const;\n\nexport type CreditType = (typeof CREDIT_TYPE)[number];\n\nexport type InvoiceSchemaSet = ReturnType<\n typeof InvoiceSchemas.makeInvoiceSchemas\n>;\nexport type AnyInvoiceOut = z.output<InvoiceSchemaSet[\"AnyInvoiceSchema\"]>;\n\nexport type InvoiceSnapshot = {\n invoice_id: UUID;\n invoice_type: InvoiceType;\n subtotal: string;\n tax_amount: string;\n total_amount: string;\n remaining_balance: string;\n due_date: string;\n tax_rate: string;\n is_admin_reviewed: IntBool;\n customer_id: UUID;\n company_id: number;\n short_invoice_id: string;\n invoice_date: string;\n invoice_status: InvoiceStatus;\n occurred_at_ms: string;\n cai: string | null;\n invoice_number_start_range: string | null;\n invoice_number_end_range: string | null;\n issuance_date: string | null;\n issuance_deadline: string | null;\n};\n\nexport type InvoiceSnapshotMobile = InvoiceSnapshot & {\n signature: string | null;\n};\n","import * as InvoiceItemsTypes from \"./invoice_items_types\";\n\nexport function mapInvoiceProducts(\n row: InvoiceItemsTypes.InvoiceItemResponse,\n): InvoiceItemsTypes.MappedInvoiceItem {\n return {\n invoice_item_id: row.invoice_item_id,\n product_id: row.product_id,\n quantity: Number(row.quantity),\n price: Number(row.price),\n amount: Number(row.amount),\n country_tax_rule_id: row.country_tax_rule_id ?? undefined,\n credit_type: row.credit_type ?? undefined,\n product_name: row.product_name,\n product_description: row.product_description ?? undefined,\n product_type: row.product_type,\n weight_unit: row.weight_unit ?? undefined,\n product_upc: row.product_upc ?? undefined,\n rule_name: row.rule_name ?? undefined,\n tax_percentage:\n row.tax_percentage === null ? undefined : Number(row.tax_percentage),\n };\n}\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\n\nexport const CreditApplicationSchema = z.strictObject({\n credit_invoice_id: z.uuid({ error: \"Select a credit\" }),\n applied_amount: GlobalUtils.handleZodCurrency(0.01, 999_999.99),\n});\n","import { z } from \"zod\";\nimport { PAYMENT_METHOD } from \"./payments_types\";\nimport * as GlobalUtils from \"../../utils/utils\";\n\nexport const PaymentFormSchema = z.strictObject({\n payment_method: z.enum(PAYMENT_METHOD, {\n error: \"Payment method is required.\",\n }),\n check_number: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z.string().max(50, \"Payment check number must be at most 50 characters.\")\n )\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n payment_amount: GlobalUtils.handleZodCurrency(0.01, 999_999.99),\n});\n","import { IntBool, UUID } from \"../../types/shared_types\";\n\nexport const PAYMENT_METHOD = [\n \"check\",\n \"cash\",\n \"bank_transfer\",\n \"digital_wallet\",\n] as const;\n\nexport type PaymentMethod = (typeof PAYMENT_METHOD)[number];\n\nexport type PaymentStatus = \"finalized\" | \"voided\";\n\nexport type PaymentSnapshot = {\n payment_id: UUID;\n invoice_id: UUID;\n payment_amount: string;\n payment_date: string;\n payment_method: PaymentMethod;\n check_number: string | null;\n is_admin_reviewed: IntBool;\n company_id: number;\n short_invoice_id: string;\n payment_status: PaymentStatus;\n occurred_at_ms: string;\n};\n","export const exceedsTwoDecimals = (raw: string) => {\n const s = String(raw ?? \"\").replace(/[,\\s]/g, \"\");\n const dot = s.indexOf(\".\");\n if (dot === -1) return false;\n const after = s.slice(dot + 1);\n const digitsAfter = (after.match(/\\d/g) ?? []).length;\n return digitsAfter > 2;\n};\n","// \"Today\" in the user's LOCAL timezone as YMD\nexport function todayLocalYmd(): string {\n const now = new Date();\n const y = now.getFullYear();\n const m = String(now.getMonth() + 1).padStart(2, \"0\");\n const d = String(now.getDate()).padStart(2, \"0\");\n return `${y}-${m}-${d}`;\n}\n\n// Add days in LOCAL time (no drift)\nexport function addDaysLocalYmd(ymd: string, days: number): string {\n const dt = localDateFromYmd(ymd);\n dt.setDate(dt.getDate() + days);\n return ymdFromLocalDate(dt);\n}\n\nexport function formatYmdLong(ymd: string, locale = \"en-US\"): string {\n const { y, m, d } = parseYmd(ymd);\n const utcDate = new Date(Date.UTC(y, m - 1, d)); // 00:00Z\n return new Intl.DateTimeFormat(locale, {\n dateStyle: \"long\",\n timeZone: \"UTC\",\n }).format(utcDate);\n}\n\nexport function localDateFromYmd(ymd: string): Date {\n const { y, m, d } = parseYmd(ymd);\n return new Date(y, m - 1, d); // LOCAL midnight\n}\n\nexport function ymdFromLocalDate(dt: Date): string {\n const y = dt.getFullYear();\n const m = String(dt.getMonth() + 1).padStart(2, \"0\");\n const d = String(dt.getDate()).padStart(2, \"0\");\n return `${y}-${m}-${d}`;\n}\n\nfunction parseYmd(ymd: string): { y: number; m: number; d: number } {\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(ymd);\n if (!m) throw new Error(\"Bad YMD\");\n return { y: Number(m[1]), m: Number(m[2]), d: Number(m[3]) };\n}\n","import type { FieldError, FieldErrorsImpl, Merge } from \"react-hook-form\";\n\ntype RHFError =\n | string\n | FieldError\n | Merge<FieldError, FieldErrorsImpl<any>>\n | undefined;\n\nexport const getErrorMessage = (err: RHFError): string | undefined => {\n if (!err) return undefined;\n if (typeof err === \"string\") return err;\n // FieldError has .message (string | undefined)\n const msg = (err as FieldError).message as string | undefined;\n return typeof msg === \"string\" ? msg : undefined;\n};\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { YmdDateSchema } from \"../invoices/invoices_schemas\";\nimport { POS_INVOICE_TYPE } from \"./point_of_sales_types\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makePosSchemas(t: SchemaT) {\n const HN_INVOICE_REGEX = /^\\d{3}-\\d{3}-\\d{2}-\\d{8}$/;\n\n const InvoiceNumberSchema = z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .string()\n .min(19, t(\"must_be_in_format\"))\n .max(19, t(\"must_be_in_format\"))\n .regex(HN_INVOICE_REGEX, {\n error: t(\"must_be_in_format\"),\n }),\n );\n\n const PointOfSalesSchema = z\n .strictObject({\n cai: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(z.string().min(1, t(\"cai_is_required\")).max(50, t(\"cai_max\"))),\n\n pos_invoice_type: z.enum(POS_INVOICE_TYPE, t(\"select_invoice_type\")),\n\n invoice_number_start_range: InvoiceNumberSchema,\n invoice_number_end_range: InvoiceNumberSchema,\n next_invoice_number: InvoiceNumberSchema,\n\n issuance_date: YmdDateSchema,\n issuance_deadline: YmdDateSchema,\n\n pos_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z.string().min(1, t(\"pos_name_required\")).max(100, t(\"pos_name_max\")),\n ),\n })\n .superRefine(\n (\n {\n issuance_date,\n issuance_deadline,\n invoice_number_start_range: start,\n invoice_number_end_range: end,\n next_invoice_number: next,\n },\n\n ctx,\n ) => {\n if (issuance_deadline < issuance_date) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"issuance_deadline\"),\n path: [\"issuance_deadline\"],\n });\n }\n\n const prefix = (s: string) => s.slice(0, 10); // \"NNN-NNN-NN\"\n\n if (prefix(start) !== prefix(end)) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"start_end_numbers\"),\n path: [\"invoice_number_end_range\"],\n });\n }\n\n if (prefix(start) !== prefix(next)) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"start_next_numbers\"),\n path: [\"next_invoice_number\"],\n });\n }\n\n if (!(next >= start && next <= end)) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"next_invoice_number\"),\n path: [\"next_invoice_number\"],\n });\n }\n\n if (end < start) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"end_invoice_number\"),\n path: [\"invoice_number_end_range\"],\n });\n }\n },\n );\n\n return {\n PointOfSalesSchema,\n };\n}\n","export type MappedPointOfSales = {\n point_of_sales_id: number;\n cai: string;\n pos_invoice_type: PosInvoiceType;\n invoice_number_start_range: string;\n invoice_number_end_range: string;\n next_invoice_number: string;\n issuance_date: string;\n issuance_deadline: string;\n pos_name: string;\n};\n\nexport const POS_INVOICE_TYPE = [\"sales\", \"credit\"] as const;\n\nexport type PosInvoiceType = (typeof POS_INVOICE_TYPE)[number];\n"],"mappings":"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","names":["fromString","fromNumber","z","z","z","z","z","z","z","z","z","z","z","z","z","z","YmdDateSchema","z","z","z","z","z","z"]}
1
+ {"version":3,"sources":["../src/types/money_types.ts","../src/utils/utils.ts","../src/types/shared_types.ts","../src/domains/auth/login/login_schemas.ts","../src/domains/companies/companies_schemas.ts","../src/domains/companies/companies_types.ts","../src/domains/users/users_schemas.ts","../src/domains/customers/customer_schemas.ts","../src/domains/products/product_schemas.ts","../src/domains/invoices/invoices_schemas.ts","../src/domains/invoices/invoices_types.ts","../src/domains/invoice_items/invoice_items_mappers.ts","../src/domains/credit_applications/credit_applications_schemas.ts","../src/domains/payments/payments_schemas.ts","../src/domains/payments/payments_types.ts","../src/utils/money_utils.ts","../src/utils/date_utils.ts","../src/utils/errors_utils.ts","../src/domains/point_of_sales/point_of_sales_schemas.ts","../src/domains/point_of_sales/point_of_sales_types.ts"],"sourcesContent":["import { IsoCountryCode } from \"../domains/companies/companies_types\";\n\nexport type IsoCurrencyCode = \"USD\" | \"HNL\";\ntype Locale = \"en-US\" | \"es-HN\";\n\nexport const countryToCurrency: Record<IsoCountryCode, IsoCurrencyCode> = {\n US: \"USD\",\n HN: \"HNL\",\n};\n\nexport const currencyToLocale: Record<IsoCurrencyCode, Locale> = {\n USD: \"en-US\",\n HNL: \"es-HN\",\n};\n","import * as GlobalTypes from \"./types\";\nimport { IsoCountryCode } from \"../domains/companies/companies_types\";\nimport {\n IsoCurrencyCode,\n countryToCurrency,\n currencyToLocale,\n} from \"../types/money_types\";\n\nimport { z } from \"zod\";\nimport { SchemaT } from \"../domains/invoices/invoices_types\";\n\n/**\n * Validates zod currency with precision.\n *\n *\n * @param minAmount\n * @param maxAmount\n * @returns\n */\nexport function handleZodCurrency(\n minAmount: number,\n maxAmount: number,\n t?: SchemaT,\n) {\n if (!t) {\n const fromString = z\n .string({\n error: \"Enter a valid number\",\n })\n .refine((s) => s.trim().length > 0, { error: \"Enter a valid number\" })\n .transform((s) => s.replace(/[,\\s]/g, \"\"))\n .refine((s) => s !== \"\" && !Number.isNaN(Number(s)), {\n error: \"Enter a valid number\",\n })\n .refine((s) => Number.isFinite(Number(s)), {\n error: \"Enter a valid number\",\n })\n .refine((s) => Number(s) >= 0, { error: \"Enter a positive number\" })\n .transform((s) => Number(s));\n\n const fromNumber = z\n .number()\n .refine((n) => Number.isFinite(n), { error: \"Enter a valid number\" })\n .refine((n) => n >= 0, { error: \"Enter a positive number\" });\n\n return z\n .union([fromString, fromNumber])\n .transform((n) => roundWithPrecision(n, 2))\n .refine((n) => n >= minAmount, {\n error: `Must be at least ${minAmount}`,\n })\n .refine((n) => n <= maxAmount, {\n error: `Exceeds allowed limit ${maxAmount}`,\n });\n }\n\n const fromString = z\n .string({\n error: t(\"enter_a_valid_number\"),\n })\n .refine((s) => s.trim().length > 0, {\n error: t(\"enter_a_valid_number\"),\n })\n .transform((s) => s.replace(/[,\\s]/g, \"\"))\n .refine((s) => s !== \"\" && !Number.isNaN(Number(s)), {\n error: t(\"enter_a_valid_number\"),\n })\n .refine((s) => Number.isFinite(Number(s)), {\n error: t(\"enter_a_valid_number\"),\n })\n .refine((s) => Number(s) >= 0, {\n error: t(\"enter_a_positive_number\"),\n })\n .transform((s) => Number(s));\n\n const fromNumber = z\n .number()\n .refine((n) => Number.isFinite(n), {\n error: t(\"enter_a_valid_number\"),\n })\n .refine((n) => n >= 0, {\n error: t(\"enter_a_positive_number\"),\n });\n\n return z\n .union([fromString, fromNumber])\n .transform((n) => roundWithPrecision(n, 2))\n .refine((n) => n >= minAmount, {\n error: `${t(\"must_be_at_least\")} ${minAmount}`,\n })\n .refine((n) => n <= maxAmount, {\n error: `${t(\"exceeds_allowed_limit\")} ${maxAmount}`,\n });\n}\n\n/**\n * Trims any leading or trailing spaces\n * Transforms empty strings into undefined.\n *\n * @param s\n * @returns\n */\nexport const transformEmptyStringToUndefined = (s: string) =>\n s.trim() === \"\" ? undefined : s;\n\n/**\n * - Collapses any run of whitespace in a string (spaces, tabs, newlines, nbspb, and other weird unicode spaces etc.)\n * into a single ASCII space.\n * - Trims leading and trailing whitespace.\n * \" Jared \\n Gomez \\t Driver\\t \" -> \"Jared Gomez Driver\"\n *\n * @param s\n * @returns\n */\nexport const normalizeSpaces = (s: string) => whitespace(s, \"normalize\");\n\n/**\n * Removes all whitespace from a string\n * @param s\n * @returns\n */\nexport const removeAllWhitespace = (s: string) => whitespace(s, \"remove\");\n\nconst whitespace = (s: string, mode: GlobalTypes.WhitespaceMode) => {\n if (mode === \"remove\") {\n return s.replace(/\\s+/g, \"\");\n }\n\n return s.replace(/\\s+/g, \" \").trim();\n};\n\n/**\n * Removes all dashes and + signs from a string\n * +1-305-555-0123 -> \"13055550123\"\n * 305-555-0123 -> \"3055550123\"\n *\n * @param s\n * @returns\n */\nexport const removeDashesAndPlusSign = (s: string): string =>\n s.replace(/[+-]/g, \"\");\n\n/**\n * Rounds a number to a certain precision.\n * Contract:\n * 1. Number must be finite and non negative.\n * 2. Precision must be finite nonnegative and an integer.\n * 3. Precision must be <= Max precision\n * 4. Returns a number >= 0\n * Default is round half up.\n *\n * @param num\n * @param precision\n * @param opts\n * @returns\n */\nexport function roundWithPrecision(\n num: number,\n precision: number,\n opts?: GlobalTypes.ToFixedOptions,\n): number {\n const MAX_PRECISION = 2;\n const { roundType = \"half_up\" } = opts ?? {};\n\n if (!Number.isFinite(num) || num < 0) {\n throw new RangeError(\"Number must be finite and greater than 0.\");\n }\n\n if (\n !Number.isFinite(precision) ||\n !Number.isInteger(precision) ||\n precision < 1\n ) {\n throw new RangeError(\"Precision must be a finite integer greater than 0.\");\n }\n\n if (precision > MAX_PRECISION) {\n throw new RangeError(\"Max precision allowed is 2.\");\n }\n\n return Number(\n (+(Math.round(+(num + \"e\" + precision)) + \"e\" + -precision)).toFixed(\n precision,\n ),\n );\n}\n\nexport function getCurrencyFromCountry(\n country: IsoCountryCode,\n): IsoCurrencyCode {\n return countryToCurrency[country];\n}\n\nexport function formatMoneyCurrency(value: number, currency: IsoCurrencyCode) {\n const locale =\n currency in currencyToLocale ? currencyToLocale[currency] : \"en-US\";\n\n const formatted = new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency: currency,\n }).format(value);\n\n return sanitizeSpaces(formatted);\n}\n\nfunction sanitizeSpaces(str: string): string {\n return str\n .replace(/\\u00A0/g, \" \")\n .replace(/\\u202F/g, \" \")\n .replace(/[^\\x20-\\x7E]/g, \"\");\n}\n","import { z } from \"zod\";\n\nexport const CREATED_LOCATION = [\"web\", \"mobile\"] as const;\n\nexport type CreatedLocation = (typeof CREATED_LOCATION)[number];\n\nexport type IntBool = 0 | 1;\n\nexport const uuidSchema = z.uuid();\nexport type UUID = z.infer<typeof uuidSchema>;\n\nexport type status = \"active\" | \"inactive\";\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../../utils/utils\";\n\nexport const LoginFormSchema = z.strictObject({\n user_email: z\n .string({ error: \"Email required\" })\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email()\n .max(254, \"Customer email must be at most 254 characters.\")\n .transform((email) => email.toLowerCase())\n ),\n password: z\n .string({ error: \"Password required\" })\n .min(1, { error: \"Password required\" }),\n});\n","import { z } from \"zod\";\nimport { COMPANY_LANGUAGES, ISO_COUNTRY_CODES } from \"./companies_types\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nconst iso_country_code = z.enum(ISO_COUNTRY_CODES, {\n error: \"Country code not supported.\",\n});\n\nexport function makeRegisterSchemas(t: SchemaT) {\n const RegisterFormSchema = z.strictObject({\n companyData: z.strictObject({\n company_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"company_name_required\"))\n .max(50, t(\"company_name_max\")),\n ),\n company_address: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"company_address_required\"))\n .max(100, t(\"company_address_max\")),\n ),\n company_phone_number: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .transform(GlobalUtils.removeDashesAndPlusSign)\n .refine((s) => /^\\d{4,15}$/.test(s), {\n error: t(\"phone_number_required\"),\n }),\n iso_country_code: z\n .string({ error: t(\"country_required\") })\n .transform(GlobalUtils.removeAllWhitespace)\n .transform((s) => s.toUpperCase())\n .pipe(iso_country_code),\n }),\n adminUserData: z.strictObject({\n user_first_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"first_name_required\"))\n .max(50, t(\"first_name_max\")),\n ),\n user_last_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"lsat_name_required\"))\n .max(50, t(\"last_name_max\")),\n ),\n user_email: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email({ error: t(\"email_required\") })\n .max(254, t(\"email_max\"))\n .transform((email) => email.toLowerCase()),\n ),\n password: z\n .string()\n .min(8, t(\"pass_min\"))\n .max(25, t(\"pass_max\"))\n .regex(/[A-Z]/, t(\"pass_uppercase\"))\n .regex(/[a-z]/, t(\"pass_lowercase\"))\n .regex(/\\d/, t(\"pass_one_number\"))\n .regex(/[@$!%*?&#^_+=-]/, t(\"pass_special_character\"))\n .regex(/^\\S*$/, t(\"pass_no_whitespace\")),\n }),\n });\n\n return { RegisterFormSchema };\n}\n\nconst schemas = makeRegisterSchemas((k) => k);\n\nexport const CompanyFormSchema =\n schemas.RegisterFormSchema.shape.companyData.safeExtend({\n company_email: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email(\"Invalid company email.\")\n .max(254, \"Company email must be at most 254 characters.\")\n .transform((email) => email.toLowerCase()),\n ),\n rtn: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(z.string().max(100, \"RTN must be at most 100 characters.\"))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n web_language: z.enum(COMPANY_LANGUAGES, {\n error: \"Please select a web portal language.\",\n }),\n });\n","export const ISO_COUNTRY_CODES = [\"US\", \"HN\"] as const;\n\nexport type IsoCountryCode = (typeof ISO_COUNTRY_CODES)[number];\n\nexport const USER_ROLES = [\"admin\", \"driver\"] as const;\n\nexport type UserRole = (typeof USER_ROLES)[number];\n\nexport type InventorySystem = \"warehouse_only\" | \"dsd\";\n\nexport type CompanySnapshot = {\n company_id: number;\n company_name: string;\n company_address: string;\n company_phone_number: string;\n company_email: string;\n inventory_system: InventorySystem;\n iso_country_code: IsoCountryCode;\n rtn: string | null;\n};\n\nexport const COMPANY_LANGUAGES = [\"es\", \"en\"] as const;\n\nexport type CompanyLanguages = (typeof COMPANY_LANGUAGES)[number];\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makeUsersSchemas(t: SchemaT) {\n const CreateUserSchema = z.object({\n firstName: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"first_name_required\"))\n .max(50, t(\"first_name_max\")),\n ),\n lastName: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z.string().min(1, t(\"lsat_name_required\")).max(50, t(\"last_name_max\")),\n ),\n email: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .email({ error: t(\"email_required\") })\n .max(254, t(\"email_max\"))\n .transform((email) => email.toLowerCase()),\n ),\n password: z\n .string()\n .min(8, t(\"pass_min\"))\n .max(25, t(\"pass_max\"))\n .regex(/[A-Z]/, t(\"pass_uppercase\"))\n .regex(/[a-z]/, t(\"pass_lowercase\"))\n .regex(/\\d/, t(\"pass_one_number\"))\n .regex(/[@$!%*?&#^_+=-]/, t(\"pass_special_character\"))\n .regex(/^\\S*$/, t(\"pass_no_whitespace\")),\n\n accountType: z.enum([\"admin\", \"driver\"], {\n error: t(\"account_type\"),\n }),\n });\n\n return { CreateUserSchema };\n}\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makeCustomerSchemas(t: SchemaT) {\n const CustomerFormSchema = z.strictObject({\n customer_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"customer_name_required\"))\n .max(50, t(\"customer_name_max\")),\n ),\n\n customer_address: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(z.string().max(100, t(\"customer_address_max\")))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n customer_phone_number: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .transform(GlobalUtils.removeDashesAndPlusSign)\n .refine((s) => s === \"\" || /^\\d{4,15}$/.test(s), {\n error: t(\"customer_phone_number\"),\n })\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n customer_email_address: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .pipe(\n z\n .email()\n .max(254, t(\"customer_email_max\"))\n .transform((email) => email.toLowerCase())\n .optional(),\n )\n .optional(),\n });\n\n return { CustomerFormSchema };\n}\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makeProductSchemas(t: SchemaT) {\n const ProductFormSchema = z\n .strictObject({\n product_name: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z\n .string()\n .min(1, t(\"product_name_required\"))\n .max(50, t(\"product_name_max\")),\n ),\n\n product_description: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(z.string().max(100, t(\"product_descr_max\")))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n product_sku: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(z.string().max(30, t(\"product_sku_max\")))\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n product_upc: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .refine((s) => s === \"\" || /^\\d{12}$/.test(s), {\n error: t(\"product_upc_test\"),\n })\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n country_tax_rule_id: z.number().optional(),\n\n product_gtin_14: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .refine((s) => s === \"\" || /^\\d{14}$/.test(s), {\n error: \"GTIN14 must be exactly 14 digits\",\n })\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n product_type: z.enum([\"unit\", \"weight\", \"case\"], {\n error: t(\"product_type_validation\"),\n }),\n\n weight_unit: z.preprocess(\n (v) => {\n if (v === \"\") return undefined;\n if (typeof v === \"string\") return v.trim().toLowerCase();\n return v;\n },\n z.enum([\"kg\", \"lb\", \"g\", \"oz\"]).optional(),\n ),\n\n price: GlobalUtils.handleZodCurrency(0, 99_999.99, t),\n cost: GlobalUtils.handleZodCurrency(0, 99_999.99, t),\n })\n\n .superRefine((data, ctx) => {\n if (data.product_type === \"weight\" && !data.weight_unit) {\n ctx.addIssue({\n code: \"custom\",\n error: t(\"weight_unit_required\"),\n path: [\"weight_unit\"],\n });\n }\n\n if (\n data.product_type !== \"weight\" &&\n typeof data.weight_unit !== \"undefined\"\n ) {\n ctx.addIssue({\n code: \"custom\",\n error: t(\"weight_unit_empty\"),\n path: [\"weight_unit\"],\n });\n }\n });\n\n return { ProductFormSchema };\n}\n","import { z } from \"zod\";\nimport {\n CREDIT_TYPE,\n INVOICE_STATUS,\n INVOICE_TYPE,\n SchemaT,\n} from \"./invoices_types\";\nimport { handleZodCurrency } from \"../../utils/utils\";\n\nexport const YmdDateSchema = z\n .string()\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/, \"Use YYYY-MM-DD\");\n\n///////////////////////////////////////////////////////////////////////\n//English / Spanish implementation\n\nexport function makeInvoiceSchemas(t: SchemaT) {\n const YmdDateSchema = z\n .string()\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/, \"Use YYYY-MM-DD\");\n\n const BaseInvoice = z\n .object({\n invoice_type: z.enum(INVOICE_TYPE, {\n error: t(\"invoice_type_not_found\"),\n }),\n invoice_date: YmdDateSchema,\n due_date: YmdDateSchema,\n tax_rate: z.number().default(0),\n tax_amount: z.number().default(0),\n warehouse_id: z.uuid().optional(),\n invoice_status: z.enum(INVOICE_STATUS).default(\"finalized\"),\n })\n .superRefine(({ invoice_date, due_date }, ctx) => {\n if (due_date < invoice_date) {\n ctx.addIssue({\n code: \"custom\",\n message: \"Due date can't be earlier than the invoice date.\",\n path: [\"due_date\"],\n });\n }\n });\n\n const LineItemBase = z.object({\n invoice_id: z.uuid().optional(),\n product_id: z.uuid({\n error: t(\"select_product\"),\n }),\n product_name: z.string().optional(),\n product_description: z.string().optional(),\n product_type: z.enum([\"unit\", \"weight\", \"case\"]).optional(),\n product_upc: z.string().optional(),\n weight_unit: z.enum([\"kg\", \"lb\", \"g\", \"oz\"]).optional(),\n quantity: handleZodCurrency(0.01, 99_999.99, t),\n country_tax_rule_id: z.number().optional(),\n tax_percentage: z.number().optional(),\n });\n\n const SalesItem = LineItemBase.safeExtend({\n price: handleZodCurrency(0, 99_999.99, t),\n credit_type: z.undefined(),\n });\n\n const CreditItem = LineItemBase.safeExtend({\n price: handleZodCurrency(0, 99_999.99, t),\n credit_type: z.enum(CREDIT_TYPE, {\n error: t(\"select_credit_type\"),\n }),\n });\n\n const PurchaseItem = LineItemBase.safeExtend({\n price: handleZodCurrency(0, 99_999.99, t),\n credit_type: z.undefined(),\n });\n\n const SalesInvoiceSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"sales\"),\n party_id: z.uuid({\n error: t(\"select_customer\"),\n }),\n invoice_items: z.array(SalesItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const CreditInvoiceSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"credit\"),\n party_id: z.uuid({\n error: t(\"select_customer\"),\n }),\n invoice_items: z.array(CreditItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const PurchaseInvoiceSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"purchase\"),\n party_id: z.uuid({\n error: t(\"select_vendor\"),\n }),\n invoice_items: z.array(PurchaseItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const SalesOrderSchema = BaseInvoice.safeExtend({\n invoice_type: z.literal(\"sales_order\"),\n party_id: z.uuid({\n error: t(\"select_customer\"),\n }),\n invoice_items: z.array(SalesItem).min(1, t(\"add_one_invoice_item\")),\n });\n\n const AnyInvoiceSchema = z.discriminatedUnion(\"invoice_type\", [\n SalesInvoiceSchema,\n PurchaseInvoiceSchema,\n CreditInvoiceSchema,\n SalesOrderSchema,\n ]);\n\n return {\n YmdDateSchema,\n SalesInvoiceSchema,\n CreditInvoiceSchema,\n PurchaseInvoiceSchema,\n SalesOrderSchema,\n AnyInvoiceSchema,\n };\n}\n\nexport type InvoiceSchemas = ReturnType<typeof makeInvoiceSchemas>;\n","import { z } from \"zod\";\nimport * as InvoiceSchemas from \"./invoices_schemas\";\nimport { IntBool, UUID } from \"../../types/shared_types\";\n\nexport type SchemaT = (key: string, params?: Record<string, any>) => string;\n\nexport const INVOICE_TYPE = [\n \"sales\",\n \"credit\",\n \"purchase\",\n \"sales_order\",\n] as const;\n\nexport type InvoiceType = (typeof INVOICE_TYPE)[number];\n\nexport const INVOICE_STATUS = [\"finalized\", \"voided\"] as const;\n\nexport type InvoiceStatus = (typeof INVOICE_STATUS)[number];\n\nexport const CREDIT_TYPE = [\"dump\", \"return\"] as const;\n\nexport type CreditType = (typeof CREDIT_TYPE)[number];\n\nexport type InvoiceSchemaSet = ReturnType<\n typeof InvoiceSchemas.makeInvoiceSchemas\n>;\nexport type AnyInvoiceOut = z.output<InvoiceSchemaSet[\"AnyInvoiceSchema\"]>;\n\nexport type InvoiceSnapshot = {\n invoice_id: UUID;\n invoice_type: InvoiceType;\n subtotal: string;\n tax_amount: string;\n total_amount: string;\n remaining_balance: string;\n due_date: string;\n tax_rate: string;\n is_admin_reviewed: IntBool;\n customer_id: UUID;\n company_id: number;\n short_invoice_id: string;\n invoice_date: string;\n invoice_status: InvoiceStatus;\n occurred_at_ms: string;\n cai: string | null;\n invoice_number_start_range: string | null;\n invoice_number_end_range: string | null;\n issuance_date: string | null;\n issuance_deadline: string | null;\n};\n\nexport type InvoiceSnapshotMobile = InvoiceSnapshot & {\n signature: string | null;\n};\n","import * as InvoiceItemsTypes from \"./invoice_items_types\";\n\nexport function mapInvoiceProducts(\n row: InvoiceItemsTypes.InvoiceItemResponse,\n): InvoiceItemsTypes.MappedInvoiceItem {\n return {\n invoice_item_id: row.invoice_item_id,\n product_id: row.product_id,\n quantity: Number(row.quantity),\n price: Number(row.price),\n amount: Number(row.amount),\n country_tax_rule_id: row.country_tax_rule_id ?? undefined,\n credit_type: row.credit_type ?? undefined,\n product_name: row.product_name,\n product_description: row.product_description ?? undefined,\n product_type: row.product_type,\n weight_unit: row.weight_unit ?? undefined,\n product_upc: row.product_upc ?? undefined,\n rule_name: row.rule_name ?? undefined,\n tax_percentage:\n row.tax_percentage === null ? undefined : Number(row.tax_percentage),\n };\n}\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\n\nexport const CreditApplicationSchema = z.strictObject({\n credit_invoice_id: z.uuid({ error: \"Select a credit\" }),\n applied_amount: GlobalUtils.handleZodCurrency(0.01, 999_999.99),\n});\n","import { z } from \"zod\";\nimport { PAYMENT_METHOD } from \"./payments_types\";\nimport * as GlobalUtils from \"../../utils/utils\";\n\nexport const PaymentFormSchema = z.strictObject({\n payment_method: z.enum(PAYMENT_METHOD, {\n error: \"Payment method is required.\",\n }),\n check_number: z\n .string()\n .transform(GlobalUtils.normalizeSpaces)\n .pipe(\n z.string().max(50, \"Payment check number must be at most 50 characters.\")\n )\n .transform(GlobalUtils.transformEmptyStringToUndefined)\n .optional(),\n\n payment_amount: GlobalUtils.handleZodCurrency(0.01, 999_999.99),\n});\n","import { IntBool, UUID } from \"../../types/shared_types\";\n\nexport const PAYMENT_METHOD = [\n \"check\",\n \"cash\",\n \"bank_transfer\",\n \"digital_wallet\",\n] as const;\n\nexport type PaymentMethod = (typeof PAYMENT_METHOD)[number];\n\nexport type PaymentStatus = \"finalized\" | \"voided\";\n\nexport type PaymentSnapshot = {\n payment_id: UUID;\n invoice_id: UUID;\n payment_amount: string;\n payment_date: string;\n payment_method: PaymentMethod;\n check_number: string | null;\n is_admin_reviewed: IntBool;\n company_id: number;\n short_invoice_id: string;\n payment_status: PaymentStatus;\n occurred_at_ms: string;\n};\n","export const exceedsTwoDecimals = (raw: string) => {\n const s = String(raw ?? \"\").replace(/[,\\s]/g, \"\");\n const dot = s.indexOf(\".\");\n if (dot === -1) return false;\n const after = s.slice(dot + 1);\n const digitsAfter = (after.match(/\\d/g) ?? []).length;\n return digitsAfter > 2;\n};\n","// \"Today\" in the user's LOCAL timezone as YMD\nexport function todayLocalYmd(): string {\n const now = new Date();\n const y = now.getFullYear();\n const m = String(now.getMonth() + 1).padStart(2, \"0\");\n const d = String(now.getDate()).padStart(2, \"0\");\n return `${y}-${m}-${d}`;\n}\n\n// Add days in LOCAL time (no drift)\nexport function addDaysLocalYmd(ymd: string, days: number): string {\n const dt = localDateFromYmd(ymd);\n dt.setDate(dt.getDate() + days);\n return ymdFromLocalDate(dt);\n}\n\nexport function formatYmdLong(ymd: string, locale = \"en-US\"): string {\n const { y, m, d } = parseYmd(ymd);\n const utcDate = new Date(Date.UTC(y, m - 1, d)); // 00:00Z\n return new Intl.DateTimeFormat(locale, {\n dateStyle: \"long\",\n timeZone: \"UTC\",\n }).format(utcDate);\n}\n\nexport function localDateFromYmd(ymd: string): Date {\n const { y, m, d } = parseYmd(ymd);\n return new Date(y, m - 1, d); // LOCAL midnight\n}\n\nexport function ymdFromLocalDate(dt: Date): string {\n const y = dt.getFullYear();\n const m = String(dt.getMonth() + 1).padStart(2, \"0\");\n const d = String(dt.getDate()).padStart(2, \"0\");\n return `${y}-${m}-${d}`;\n}\n\nfunction parseYmd(ymd: string): { y: number; m: number; d: number } {\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(ymd);\n if (!m) throw new Error(\"Bad YMD\");\n return { y: Number(m[1]), m: Number(m[2]), d: Number(m[3]) };\n}\n","import type { FieldError, FieldErrorsImpl, Merge } from \"react-hook-form\";\n\ntype RHFError =\n | string\n | FieldError\n | Merge<FieldError, FieldErrorsImpl<any>>\n | undefined;\n\nexport const getErrorMessage = (err: RHFError): string | undefined => {\n if (!err) return undefined;\n if (typeof err === \"string\") return err;\n // FieldError has .message (string | undefined)\n const msg = (err as FieldError).message as string | undefined;\n return typeof msg === \"string\" ? msg : undefined;\n};\n","import { z } from \"zod\";\nimport * as GlobalUtils from \"../../utils/utils\";\nimport { YmdDateSchema } from \"../invoices/invoices_schemas\";\nimport { POS_INVOICE_TYPE } from \"./point_of_sales_types\";\nimport { SchemaT } from \"../invoices/invoices_types\";\n\nexport function makePosSchemas(t: SchemaT) {\n const HN_INVOICE_REGEX = /^\\d{3}-\\d{3}-\\d{2}-\\d{8}$/;\n\n const InvoiceNumberSchema = z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(\n z\n .string()\n .min(19, t(\"must_be_in_format\"))\n .max(19, t(\"must_be_in_format\"))\n .regex(HN_INVOICE_REGEX, {\n error: t(\"must_be_in_format\"),\n }),\n );\n\n const PointOfSalesSchema = z\n .strictObject({\n cai: z\n .string()\n .transform(GlobalUtils.removeAllWhitespace)\n .pipe(z.string().min(1, t(\"cai_is_required\")).max(50, t(\"cai_max\"))),\n\n pos_invoice_type: z.enum(POS_INVOICE_TYPE, t(\"select_invoice_type\")),\n\n invoice_number_start_range: InvoiceNumberSchema,\n invoice_number_end_range: InvoiceNumberSchema,\n next_invoice_number: InvoiceNumberSchema,\n\n issuance_date: YmdDateSchema,\n issuance_deadline: YmdDateSchema,\n })\n .superRefine(\n (\n {\n issuance_date,\n issuance_deadline,\n invoice_number_start_range: start,\n invoice_number_end_range: end,\n next_invoice_number: next,\n },\n\n ctx,\n ) => {\n if (issuance_deadline < issuance_date) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"issuance_deadline\"),\n path: [\"issuance_deadline\"],\n });\n }\n\n const prefix = (s: string) => s.slice(0, 10); // \"NNN-NNN-NN\"\n\n if (prefix(start) !== prefix(end)) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"start_end_numbers\"),\n path: [\"invoice_number_end_range\"],\n });\n }\n\n if (prefix(start) !== prefix(next)) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"start_next_numbers\"),\n path: [\"next_invoice_number\"],\n });\n }\n\n if (!(next >= start && next <= end)) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"next_invoice_number\"),\n path: [\"next_invoice_number\"],\n });\n }\n\n if (end < start) {\n ctx.addIssue({\n code: \"custom\",\n message: t(\"end_invoice_number\"),\n path: [\"invoice_number_end_range\"],\n });\n }\n },\n );\n\n return {\n PointOfSalesSchema,\n };\n}\n","export type MappedPointOfSales = {\n point_of_sales_id: number;\n cai: string;\n pos_invoice_type: PosInvoiceType;\n invoice_number_start_range: string;\n invoice_number_end_range: string;\n next_invoice_number: string;\n issuance_date: string;\n issuance_deadline: string;\n};\n\nexport const POS_INVOICE_TYPE = [\"sales\", \"credit\"] as const;\n\nexport type PosInvoiceType = (typeof POS_INVOICE_TYPE)[number];\n"],"mappings":"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","names":["fromString","fromNumber","z","z","z","z","z","z","z","z","z","z","z","z","z","z","YmdDateSchema","z","z","z","z","z","z"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marmot-systems/common",
3
- "version": "2.0.94",
3
+ "version": "2.0.95",
4
4
  "description": "Schemas and utils shared across Marmot apps",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",