@marmot-systems/common 2.0.92 → 2.0.94
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 +6 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -331,7 +331,8 @@ 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")
|
|
334
|
+
invoice_status: import_zod8.z.enum(INVOICE_STATUS).default("finalized"),
|
|
335
|
+
point_of_sales_id: import_zod8.z.number().optional()
|
|
335
336
|
}).superRefine(({ invoice_date, due_date }, ctx) => {
|
|
336
337
|
if (due_date < invoice_date) {
|
|
337
338
|
ctx.addIssue({
|
|
@@ -540,7 +541,10 @@ function makePosSchemas(t) {
|
|
|
540
541
|
invoice_number_end_range: InvoiceNumberSchema,
|
|
541
542
|
next_invoice_number: InvoiceNumberSchema,
|
|
542
543
|
issuance_date: YmdDateSchema,
|
|
543
|
-
issuance_deadline: 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
|
+
)
|
|
544
548
|
}).superRefine(
|
|
545
549
|
({
|
|
546
550
|
issuance_date,
|
package/dist/index.cjs.map
CHANGED
|
@@ -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 })\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"]}
|
|
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":"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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,6 +42,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
42
42
|
finalized: "finalized";
|
|
43
43
|
voided: "voided";
|
|
44
44
|
}>>;
|
|
45
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
45
46
|
invoice_type: z.ZodLiteral<"sales">;
|
|
46
47
|
party_id: z.ZodUUID;
|
|
47
48
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -78,6 +79,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
78
79
|
finalized: "finalized";
|
|
79
80
|
voided: "voided";
|
|
80
81
|
}>>;
|
|
82
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
81
83
|
invoice_type: z.ZodLiteral<"credit">;
|
|
82
84
|
party_id: z.ZodUUID;
|
|
83
85
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -117,6 +119,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
117
119
|
finalized: "finalized";
|
|
118
120
|
voided: "voided";
|
|
119
121
|
}>>;
|
|
122
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
120
123
|
invoice_type: z.ZodLiteral<"purchase">;
|
|
121
124
|
party_id: z.ZodUUID;
|
|
122
125
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -153,6 +156,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
153
156
|
finalized: "finalized";
|
|
154
157
|
voided: "voided";
|
|
155
158
|
}>>;
|
|
159
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
156
160
|
invoice_type: z.ZodLiteral<"sales_order">;
|
|
157
161
|
party_id: z.ZodUUID;
|
|
158
162
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -189,6 +193,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
189
193
|
finalized: "finalized";
|
|
190
194
|
voided: "voided";
|
|
191
195
|
}>>;
|
|
196
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
192
197
|
invoice_type: z.ZodLiteral<"sales">;
|
|
193
198
|
party_id: z.ZodUUID;
|
|
194
199
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -224,6 +229,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
224
229
|
finalized: "finalized";
|
|
225
230
|
voided: "voided";
|
|
226
231
|
}>>;
|
|
232
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
227
233
|
invoice_type: z.ZodLiteral<"purchase">;
|
|
228
234
|
party_id: z.ZodUUID;
|
|
229
235
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -259,6 +265,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
259
265
|
finalized: "finalized";
|
|
260
266
|
voided: "voided";
|
|
261
267
|
}>>;
|
|
268
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
262
269
|
invoice_type: z.ZodLiteral<"credit">;
|
|
263
270
|
party_id: z.ZodUUID;
|
|
264
271
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -297,6 +304,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
297
304
|
finalized: "finalized";
|
|
298
305
|
voided: "voided";
|
|
299
306
|
}>>;
|
|
307
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
300
308
|
invoice_type: z.ZodLiteral<"sales_order">;
|
|
301
309
|
party_id: z.ZodUUID;
|
|
302
310
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -786,6 +794,7 @@ declare function makePosSchemas(t: SchemaT): {
|
|
|
786
794
|
next_invoice_number: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>;
|
|
787
795
|
issuance_date: z.ZodString;
|
|
788
796
|
issuance_deadline: z.ZodString;
|
|
797
|
+
pos_name: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>;
|
|
789
798
|
}, z.core.$strict>;
|
|
790
799
|
};
|
|
791
800
|
|
|
@@ -798,6 +807,7 @@ type MappedPointOfSales = {
|
|
|
798
807
|
next_invoice_number: string;
|
|
799
808
|
issuance_date: string;
|
|
800
809
|
issuance_deadline: string;
|
|
810
|
+
pos_name: string;
|
|
801
811
|
};
|
|
802
812
|
declare const POS_INVOICE_TYPE: readonly ["sales", "credit"];
|
|
803
813
|
type PosInvoiceType = (typeof POS_INVOICE_TYPE)[number];
|
package/dist/index.d.ts
CHANGED
|
@@ -42,6 +42,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
42
42
|
finalized: "finalized";
|
|
43
43
|
voided: "voided";
|
|
44
44
|
}>>;
|
|
45
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
45
46
|
invoice_type: z.ZodLiteral<"sales">;
|
|
46
47
|
party_id: z.ZodUUID;
|
|
47
48
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -78,6 +79,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
78
79
|
finalized: "finalized";
|
|
79
80
|
voided: "voided";
|
|
80
81
|
}>>;
|
|
82
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
81
83
|
invoice_type: z.ZodLiteral<"credit">;
|
|
82
84
|
party_id: z.ZodUUID;
|
|
83
85
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -117,6 +119,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
117
119
|
finalized: "finalized";
|
|
118
120
|
voided: "voided";
|
|
119
121
|
}>>;
|
|
122
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
120
123
|
invoice_type: z.ZodLiteral<"purchase">;
|
|
121
124
|
party_id: z.ZodUUID;
|
|
122
125
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -153,6 +156,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
153
156
|
finalized: "finalized";
|
|
154
157
|
voided: "voided";
|
|
155
158
|
}>>;
|
|
159
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
156
160
|
invoice_type: z.ZodLiteral<"sales_order">;
|
|
157
161
|
party_id: z.ZodUUID;
|
|
158
162
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -189,6 +193,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
189
193
|
finalized: "finalized";
|
|
190
194
|
voided: "voided";
|
|
191
195
|
}>>;
|
|
196
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
192
197
|
invoice_type: z.ZodLiteral<"sales">;
|
|
193
198
|
party_id: z.ZodUUID;
|
|
194
199
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -224,6 +229,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
224
229
|
finalized: "finalized";
|
|
225
230
|
voided: "voided";
|
|
226
231
|
}>>;
|
|
232
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
227
233
|
invoice_type: z.ZodLiteral<"purchase">;
|
|
228
234
|
party_id: z.ZodUUID;
|
|
229
235
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -259,6 +265,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
259
265
|
finalized: "finalized";
|
|
260
266
|
voided: "voided";
|
|
261
267
|
}>>;
|
|
268
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
262
269
|
invoice_type: z.ZodLiteral<"credit">;
|
|
263
270
|
party_id: z.ZodUUID;
|
|
264
271
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -297,6 +304,7 @@ declare function makeInvoiceSchemas(t: SchemaT): {
|
|
|
297
304
|
finalized: "finalized";
|
|
298
305
|
voided: "voided";
|
|
299
306
|
}>>;
|
|
307
|
+
point_of_sales_id: z.ZodOptional<z.ZodNumber>;
|
|
300
308
|
invoice_type: z.ZodLiteral<"sales_order">;
|
|
301
309
|
party_id: z.ZodUUID;
|
|
302
310
|
invoice_items: z.ZodArray<z.ZodObject<{
|
|
@@ -786,6 +794,7 @@ declare function makePosSchemas(t: SchemaT): {
|
|
|
786
794
|
next_invoice_number: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>;
|
|
787
795
|
issuance_date: z.ZodString;
|
|
788
796
|
issuance_deadline: z.ZodString;
|
|
797
|
+
pos_name: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>;
|
|
789
798
|
}, z.core.$strict>;
|
|
790
799
|
};
|
|
791
800
|
|
|
@@ -798,6 +807,7 @@ type MappedPointOfSales = {
|
|
|
798
807
|
next_invoice_number: string;
|
|
799
808
|
issuance_date: string;
|
|
800
809
|
issuance_deadline: string;
|
|
810
|
+
pos_name: string;
|
|
801
811
|
};
|
|
802
812
|
declare const POS_INVOICE_TYPE: readonly ["sales", "credit"];
|
|
803
813
|
type PosInvoiceType = (typeof POS_INVOICE_TYPE)[number];
|
package/dist/index.js
CHANGED
|
@@ -269,7 +269,8 @@ 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")
|
|
272
|
+
invoice_status: z8.enum(INVOICE_STATUS).default("finalized"),
|
|
273
|
+
point_of_sales_id: z8.number().optional()
|
|
273
274
|
}).superRefine(({ invoice_date, due_date }, ctx) => {
|
|
274
275
|
if (due_date < invoice_date) {
|
|
275
276
|
ctx.addIssue({
|
|
@@ -478,7 +479,10 @@ function makePosSchemas(t) {
|
|
|
478
479
|
invoice_number_end_range: InvoiceNumberSchema,
|
|
479
480
|
next_invoice_number: InvoiceNumberSchema,
|
|
480
481
|
issuance_date: YmdDateSchema,
|
|
481
|
-
issuance_deadline: 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
|
+
)
|
|
482
486
|
}).superRefine(
|
|
483
487
|
({
|
|
484
488
|
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 })\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"]}
|
|
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"]}
|