@artu-ai/compliance-sdk 0.0.6 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/errors/api.d.ts +160 -0
- package/dist/errors/api.d.ts.map +1 -0
- package/dist/errors/api.js +255 -0
- package/dist/errors/base.d.ts +87 -0
- package/dist/errors/base.d.ts.map +1 -0
- package/dist/errors/base.js +84 -0
- package/dist/errors/index.d.ts +32 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +35 -0
- package/dist/errors/upload.d.ts +109 -0
- package/dist/errors/upload.d.ts.map +1 -0
- package/dist/errors/upload.js +163 -0
- package/dist/errors/validation.d.ts +98 -0
- package/dist/errors/validation.d.ts.map +1 -0
- package/dist/errors/validation.js +129 -0
- package/dist/exports/base.d.ts +12 -0
- package/dist/exports/base.d.ts.map +1 -0
- package/dist/exports/base.js +21 -0
- package/dist/exports/index.d.ts +40 -0
- package/dist/exports/index.d.ts.map +1 -0
- package/dist/exports/index.js +59 -0
- package/dist/{mexico → exports/mexico}/actividad-vulnerable/avi.d.ts +130 -138
- package/dist/exports/mexico/actividad-vulnerable/avi.d.ts.map +1 -0
- package/dist/exports/mexico/actividad-vulnerable/avi.js +108 -0
- package/dist/{mexico → exports/mexico}/actividad-vulnerable/jys.d.ts +147 -158
- package/dist/exports/mexico/actividad-vulnerable/jys.d.ts.map +1 -0
- package/dist/exports/mexico/actividad-vulnerable/jys.js +115 -0
- package/dist/{mexico → exports/mexico}/actividad-vulnerable/tsc.d.ts +118 -129
- package/dist/exports/mexico/actividad-vulnerable/tsc.d.ts.map +1 -0
- package/dist/exports/mexico/actividad-vulnerable/tsc.js +103 -0
- package/dist/exports/mexico/index.d.ts +48 -0
- package/dist/exports/mexico/index.d.ts.map +1 -0
- package/dist/exports/mexico/index.js +70 -0
- package/dist/models/Address.d.ts +118 -0
- package/dist/models/Address.d.ts.map +1 -0
- package/dist/models/Address.js +187 -0
- package/dist/models/BankAccount.d.ts +124 -0
- package/dist/models/BankAccount.d.ts.map +1 -0
- package/dist/models/BankAccount.js +190 -0
- package/dist/models/Client.d.ts +170 -0
- package/dist/models/Client.d.ts.map +1 -0
- package/dist/models/Client.js +275 -0
- package/dist/models/ContactMethod.d.ts +102 -0
- package/dist/models/ContactMethod.d.ts.map +1 -0
- package/dist/models/ContactMethod.js +152 -0
- package/dist/models/Document.d.ts +167 -0
- package/dist/models/Document.d.ts.map +1 -0
- package/dist/models/Document.js +295 -0
- package/dist/models/LinkedClient.d.ts +62 -0
- package/dist/models/LinkedClient.d.ts.map +1 -0
- package/dist/models/LinkedClient.js +70 -0
- package/dist/models/Report.d.ts +98 -0
- package/dist/models/Report.d.ts.map +1 -0
- package/dist/models/Report.js +156 -0
- package/dist/models/ReportItem.d.ts +106 -0
- package/dist/models/ReportItem.d.ts.map +1 -0
- package/dist/models/ReportItem.js +167 -0
- package/dist/models/Transaction.d.ts +108 -0
- package/dist/models/Transaction.d.ts.map +1 -0
- package/dist/models/Transaction.js +175 -0
- package/dist/models/base.d.ts +42 -0
- package/dist/models/base.d.ts.map +1 -0
- package/dist/models/base.js +51 -0
- package/dist/models/index.d.ts +20 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +34 -0
- package/dist/models/mex/MexAddress.d.ts +93 -0
- package/dist/models/mex/MexAddress.d.ts.map +1 -0
- package/dist/models/mex/MexAddress.js +148 -0
- package/dist/models/mex/MexBankAccount.d.ts +65 -0
- package/dist/models/mex/MexBankAccount.d.ts.map +1 -0
- package/dist/models/mex/MexBankAccount.js +90 -0
- package/dist/models/mex/MexClient.d.ts +88 -0
- package/dist/models/mex/MexClient.d.ts.map +1 -0
- package/dist/models/mex/MexClient.js +133 -0
- package/dist/models/mex/MexDocument.d.ts +415 -0
- package/dist/models/mex/MexDocument.d.ts.map +1 -0
- package/dist/models/mex/MexDocument.js +687 -0
- package/dist/models/mex/MexReport.d.ts +50 -0
- package/dist/models/mex/MexReport.d.ts.map +1 -0
- package/dist/models/mex/MexReport.js +73 -0
- package/dist/models/mex/MexReportItem.d.ts +39 -0
- package/dist/models/mex/MexReportItem.d.ts.map +1 -0
- package/dist/models/mex/MexReportItem.js +50 -0
- package/dist/models/mex/MexTransaction.d.ts +53 -0
- package/dist/models/mex/MexTransaction.d.ts.map +1 -0
- package/dist/models/mex/MexTransaction.js +78 -0
- package/dist/models/mex/actividad-vulnerable/MexActividadVulnerableClient.d.ts +37 -0
- package/dist/models/mex/actividad-vulnerable/MexActividadVulnerableClient.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/MexActividadVulnerableClient.js +46 -0
- package/dist/models/mex/actividad-vulnerable/MexActividadVulnerableReport.d.ts +38 -0
- package/dist/models/mex/actividad-vulnerable/MexActividadVulnerableReport.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/MexActividadVulnerableReport.js +39 -0
- package/dist/models/mex/actividad-vulnerable/MexActividadVulnerableReportItem.d.ts +38 -0
- package/dist/models/mex/actividad-vulnerable/MexActividadVulnerableReportItem.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/MexActividadVulnerableReportItem.js +39 -0
- package/dist/models/mex/actividad-vulnerable/MexActividadVulnerableTransaction.d.ts +29 -0
- package/dist/models/mex/actividad-vulnerable/MexActividadVulnerableTransaction.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/MexActividadVulnerableTransaction.js +37 -0
- package/dist/models/mex/actividad-vulnerable/avi/MexAVIClient.d.ts +43 -0
- package/dist/models/mex/actividad-vulnerable/avi/MexAVIClient.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/avi/MexAVIClient.js +59 -0
- package/dist/models/mex/actividad-vulnerable/avi/MexAVIReport.d.ts +53 -0
- package/dist/models/mex/actividad-vulnerable/avi/MexAVIReport.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/avi/MexAVIReport.js +75 -0
- package/dist/models/mex/actividad-vulnerable/avi/MexAVIReportItem.d.ts +56 -0
- package/dist/models/mex/actividad-vulnerable/avi/MexAVIReportItem.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/avi/MexAVIReportItem.js +63 -0
- package/dist/models/mex/actividad-vulnerable/avi/MexAVITransaction.d.ts +67 -0
- package/dist/models/mex/actividad-vulnerable/avi/MexAVITransaction.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/avi/MexAVITransaction.js +136 -0
- package/dist/models/mex/actividad-vulnerable/index.d.ts +20 -0
- package/dist/models/mex/actividad-vulnerable/index.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/index.js +25 -0
- package/dist/models/mex/actividad-vulnerable/jys/MexJYSClient.d.ts +39 -0
- package/dist/models/mex/actividad-vulnerable/jys/MexJYSClient.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/jys/MexJYSClient.js +53 -0
- package/dist/models/mex/actividad-vulnerable/jys/MexJYSReport.d.ts +53 -0
- package/dist/models/mex/actividad-vulnerable/jys/MexJYSReport.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/jys/MexJYSReport.js +75 -0
- package/dist/models/mex/actividad-vulnerable/jys/MexJYSReportItem.d.ts +56 -0
- package/dist/models/mex/actividad-vulnerable/jys/MexJYSReportItem.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/jys/MexJYSReportItem.js +63 -0
- package/dist/models/mex/actividad-vulnerable/jys/MexJYSTransaction.d.ts +85 -0
- package/dist/models/mex/actividad-vulnerable/jys/MexJYSTransaction.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/jys/MexJYSTransaction.js +152 -0
- package/dist/models/mex/actividad-vulnerable/tsc/MexTSCClient.d.ts +39 -0
- package/dist/models/mex/actividad-vulnerable/tsc/MexTSCClient.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/tsc/MexTSCClient.js +53 -0
- package/dist/models/mex/actividad-vulnerable/tsc/MexTSCReport.d.ts +53 -0
- package/dist/models/mex/actividad-vulnerable/tsc/MexTSCReport.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/tsc/MexTSCReport.js +75 -0
- package/dist/models/mex/actividad-vulnerable/tsc/MexTSCReportItem.d.ts +56 -0
- package/dist/models/mex/actividad-vulnerable/tsc/MexTSCReportItem.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/tsc/MexTSCReportItem.js +63 -0
- package/dist/models/mex/actividad-vulnerable/tsc/MexTSCTransaction.d.ts +53 -0
- package/dist/models/mex/actividad-vulnerable/tsc/MexTSCTransaction.d.ts.map +1 -0
- package/dist/models/mex/actividad-vulnerable/tsc/MexTSCTransaction.js +82 -0
- package/dist/models/mex/index.d.ts +12 -0
- package/dist/models/mex/index.d.ts.map +1 -0
- package/dist/models/mex/index.js +20 -0
- package/dist/models/types.d.ts +81 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +6 -0
- package/dist/namespaces/index.d.ts +25 -0
- package/dist/namespaces/index.d.ts.map +1 -0
- package/dist/namespaces/index.js +27 -0
- package/dist/namespaces/mexico/actividad-vulnerable/avi/index.d.ts +322 -0
- package/dist/namespaces/mexico/actividad-vulnerable/avi/index.d.ts.map +1 -0
- package/dist/namespaces/mexico/actividad-vulnerable/avi/index.js +42 -0
- package/dist/namespaces/mexico/actividad-vulnerable/index.d.ts +1361 -0
- package/dist/namespaces/mexico/actividad-vulnerable/index.d.ts.map +1 -0
- package/dist/namespaces/mexico/actividad-vulnerable/index.js +53 -0
- package/dist/namespaces/mexico/actividad-vulnerable/jys/index.d.ts +454 -0
- package/dist/namespaces/mexico/actividad-vulnerable/jys/index.d.ts.map +1 -0
- package/dist/namespaces/mexico/actividad-vulnerable/jys/index.js +52 -0
- package/dist/namespaces/mexico/actividad-vulnerable/tsc/index.d.ts +162 -0
- package/dist/namespaces/mexico/actividad-vulnerable/tsc/index.d.ts.map +1 -0
- package/dist/namespaces/mexico/actividad-vulnerable/tsc/index.js +40 -0
- package/dist/namespaces/mexico/index.d.ts +2481 -0
- package/dist/namespaces/mexico/index.d.ts.map +1 -0
- package/dist/namespaces/mexico/index.js +140 -0
- package/dist/resources/addresses.d.ts +171 -0
- package/dist/resources/addresses.d.ts.map +1 -0
- package/dist/resources/addresses.js +208 -0
- package/dist/resources/bank-accounts.d.ts +174 -0
- package/dist/resources/bank-accounts.d.ts.map +1 -0
- package/dist/resources/bank-accounts.js +220 -0
- package/dist/resources/base.d.ts +192 -0
- package/dist/resources/base.d.ts.map +1 -0
- package/dist/resources/base.js +205 -0
- package/dist/resources/clients.d.ts +446 -0
- package/dist/resources/clients.d.ts.map +1 -0
- package/dist/resources/clients.js +448 -0
- package/dist/resources/contact-methods.d.ts +176 -0
- package/dist/resources/contact-methods.d.ts.map +1 -0
- package/dist/resources/contact-methods.js +215 -0
- package/dist/resources/documents.d.ts +340 -0
- package/dist/resources/documents.d.ts.map +1 -0
- package/dist/resources/documents.js +447 -0
- package/dist/resources/index.d.ts +23 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +25 -0
- package/dist/resources/mex/actividad-vulnerable/avi/clients.d.ts +165 -0
- package/dist/resources/mex/actividad-vulnerable/avi/clients.d.ts.map +1 -0
- package/dist/resources/mex/actividad-vulnerable/avi/clients.js +317 -0
- package/dist/resources/mex/actividad-vulnerable/avi/index.d.ts +7 -0
- package/dist/resources/mex/actividad-vulnerable/avi/index.d.ts.map +1 -0
- package/dist/resources/mex/actividad-vulnerable/avi/index.js +6 -0
- package/dist/resources/mex/actividad-vulnerable/avi/reports.d.ts +152 -0
- package/dist/resources/mex/actividad-vulnerable/avi/reports.d.ts.map +1 -0
- package/dist/resources/mex/actividad-vulnerable/avi/reports.js +401 -0
- package/dist/resources/mex/actividad-vulnerable/avi/transactions.d.ts +89 -0
- package/dist/resources/mex/actividad-vulnerable/avi/transactions.d.ts.map +1 -0
- package/dist/resources/mex/actividad-vulnerable/avi/transactions.js +252 -0
- package/dist/resources/mex/actividad-vulnerable/index.d.ts +7 -0
- package/dist/resources/mex/actividad-vulnerable/index.d.ts.map +1 -0
- package/dist/resources/mex/actividad-vulnerable/index.js +9 -0
- package/dist/resources/mex/actividad-vulnerable/jys/clients.d.ts +119 -0
- package/dist/resources/mex/actividad-vulnerable/jys/clients.d.ts.map +1 -0
- package/dist/resources/mex/actividad-vulnerable/jys/clients.js +231 -0
- package/dist/resources/mex/actividad-vulnerable/jys/index.d.ts +7 -0
- package/dist/resources/mex/actividad-vulnerable/jys/index.d.ts.map +1 -0
- package/dist/resources/mex/actividad-vulnerable/jys/index.js +6 -0
- package/dist/resources/mex/actividad-vulnerable/jys/reports.d.ts +132 -0
- package/dist/resources/mex/actividad-vulnerable/jys/reports.d.ts.map +1 -0
- package/dist/resources/mex/actividad-vulnerable/jys/reports.js +381 -0
- package/dist/resources/mex/actividad-vulnerable/jys/transactions.d.ts +93 -0
- package/dist/resources/mex/actividad-vulnerable/jys/transactions.d.ts.map +1 -0
- package/dist/resources/mex/actividad-vulnerable/jys/transactions.js +253 -0
- package/dist/resources/mex/actividad-vulnerable/tsc/clients.d.ts +119 -0
- package/dist/resources/mex/actividad-vulnerable/tsc/clients.d.ts.map +1 -0
- package/dist/resources/mex/actividad-vulnerable/tsc/clients.js +231 -0
- package/dist/resources/mex/actividad-vulnerable/tsc/index.d.ts +7 -0
- package/dist/resources/mex/actividad-vulnerable/tsc/index.d.ts.map +1 -0
- package/dist/resources/mex/actividad-vulnerable/tsc/index.js +6 -0
- package/dist/resources/mex/actividad-vulnerable/tsc/reports.d.ts +132 -0
- package/dist/resources/mex/actividad-vulnerable/tsc/reports.d.ts.map +1 -0
- package/dist/resources/mex/actividad-vulnerable/tsc/reports.js +381 -0
- package/dist/resources/mex/actividad-vulnerable/tsc/transactions.d.ts +90 -0
- package/dist/resources/mex/actividad-vulnerable/tsc/transactions.d.ts.map +1 -0
- package/dist/resources/mex/actividad-vulnerable/tsc/transactions.js +259 -0
- package/dist/resources/mex/addresses.d.ts +143 -0
- package/dist/resources/mex/addresses.d.ts.map +1 -0
- package/dist/resources/mex/addresses.js +328 -0
- package/dist/resources/mex/bank-accounts.d.ts +107 -0
- package/dist/resources/mex/bank-accounts.d.ts.map +1 -0
- package/dist/resources/mex/bank-accounts.js +163 -0
- package/dist/resources/mex/clients.d.ts +195 -0
- package/dist/resources/mex/clients.d.ts.map +1 -0
- package/dist/resources/mex/clients.js +454 -0
- package/dist/resources/mex/ebr.d.ts +213 -0
- package/dist/resources/mex/ebr.d.ts.map +1 -0
- package/dist/resources/mex/ebr.js +417 -0
- package/dist/resources/mex/index.d.ts +11 -0
- package/dist/resources/mex/index.d.ts.map +1 -0
- package/dist/resources/mex/index.js +12 -0
- package/dist/resources/mex/reports.d.ts +226 -0
- package/dist/resources/mex/reports.d.ts.map +1 -0
- package/dist/resources/mex/reports.js +440 -0
- package/dist/resources/mex/transactions.d.ts +125 -0
- package/dist/resources/mex/transactions.d.ts.map +1 -0
- package/dist/resources/mex/transactions.js +274 -0
- package/dist/resources/reports.d.ts +211 -0
- package/dist/resources/reports.d.ts.map +1 -0
- package/dist/resources/reports.js +308 -0
- package/dist/resources/transactions.d.ts +142 -0
- package/dist/resources/transactions.d.ts.map +1 -0
- package/dist/resources/transactions.js +221 -0
- package/dist/sdk/ComplianceSDK.d.ts +459 -0
- package/dist/sdk/ComplianceSDK.d.ts.map +1 -0
- package/dist/sdk/ComplianceSDK.js +528 -0
- package/dist/sdk/base.d.ts +17 -0
- package/dist/sdk/base.d.ts.map +1 -0
- package/dist/sdk/base.js +22 -0
- package/dist/sdk/index.d.ts +18 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +43 -0
- package/dist/{ComplianceSDK-BgzIwSsY.d.cts → sdk/mex/ComplianceSDK.d.ts} +16 -7
- package/dist/sdk/mex/ComplianceSDK.d.ts.map +1 -0
- package/dist/{ComplianceSDK-DoIZOSJq.d.ts → sdk/mex/ComplianceSDK.js} +26 -11
- package/dist/sdk/mex/actividad-vulnerable/avi/ComplianceSDK.d.ts +44 -0
- package/dist/sdk/mex/actividad-vulnerable/avi/ComplianceSDK.d.ts.map +1 -0
- package/dist/sdk/mex/actividad-vulnerable/avi/ComplianceSDK.js +39 -0
- package/dist/sdk/mex/actividad-vulnerable/avi/index.d.ts +8 -0
- package/dist/sdk/mex/actividad-vulnerable/avi/index.d.ts.map +1 -0
- package/dist/sdk/mex/actividad-vulnerable/avi/index.js +9 -0
- package/dist/sdk/mex/actividad-vulnerable/avi/types.d.ts +35 -0
- package/dist/sdk/mex/actividad-vulnerable/avi/types.d.ts.map +1 -0
- package/dist/sdk/mex/actividad-vulnerable/avi/types.js +20 -0
- package/dist/sdk/mex/actividad-vulnerable/index.d.ts +13 -0
- package/dist/sdk/mex/actividad-vulnerable/index.d.ts.map +1 -0
- package/dist/sdk/mex/actividad-vulnerable/index.js +31 -0
- package/dist/sdk/mex/actividad-vulnerable/jys/ComplianceSDK.d.ts +44 -0
- package/dist/sdk/mex/actividad-vulnerable/jys/ComplianceSDK.d.ts.map +1 -0
- package/dist/sdk/mex/actividad-vulnerable/jys/ComplianceSDK.js +39 -0
- package/dist/sdk/mex/actividad-vulnerable/jys/index.d.ts +8 -0
- package/dist/sdk/mex/actividad-vulnerable/jys/index.d.ts.map +1 -0
- package/dist/sdk/mex/actividad-vulnerable/jys/index.js +9 -0
- package/dist/sdk/mex/actividad-vulnerable/jys/types.d.ts +35 -0
- package/dist/sdk/mex/actividad-vulnerable/jys/types.d.ts.map +1 -0
- package/dist/sdk/mex/actividad-vulnerable/jys/types.js +20 -0
- package/dist/sdk/mex/actividad-vulnerable/tsc/ComplianceSDK.d.ts +44 -0
- package/dist/sdk/mex/actividad-vulnerable/tsc/ComplianceSDK.d.ts.map +1 -0
- package/dist/sdk/mex/actividad-vulnerable/tsc/ComplianceSDK.js +39 -0
- package/dist/sdk/mex/actividad-vulnerable/tsc/index.d.ts +8 -0
- package/dist/sdk/mex/actividad-vulnerable/tsc/index.d.ts.map +1 -0
- package/dist/sdk/mex/actividad-vulnerable/tsc/index.js +9 -0
- package/dist/sdk/mex/actividad-vulnerable/tsc/types.d.ts +35 -0
- package/dist/sdk/mex/actividad-vulnerable/tsc/types.d.ts.map +1 -0
- package/dist/sdk/mex/actividad-vulnerable/tsc/types.js +20 -0
- package/dist/sdk/mex/index.d.ts +13 -0
- package/dist/sdk/mex/index.d.ts.map +1 -0
- package/dist/sdk/mex/index.js +38 -0
- package/dist/sdk/mex/types.d.ts +57 -0
- package/dist/sdk/mex/types.d.ts.map +1 -0
- package/dist/sdk/mex/types.js +7 -0
- package/dist/sdk/resource-registry.d.ts +118 -0
- package/dist/sdk/resource-registry.d.ts.map +1 -0
- package/dist/sdk/resource-registry.js +145 -0
- package/dist/sdk/sdk-registry.d.ts +59 -0
- package/dist/sdk/sdk-registry.d.ts.map +1 -0
- package/dist/sdk/sdk-registry.js +82 -0
- package/dist/sdk/types.d.ts +232 -0
- package/dist/sdk/types.d.ts.map +1 -0
- package/dist/sdk/types.js +42 -0
- package/dist/utils/environment.d.ts +126 -0
- package/dist/utils/environment.d.ts.map +1 -0
- package/dist/utils/environment.js +148 -0
- package/dist/utils/filters.d.ts +338 -0
- package/dist/utils/filters.d.ts.map +1 -0
- package/dist/utils/filters.js +373 -0
- package/dist/utils/index.d.ts +15 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +43 -0
- package/dist/utils/pagination.d.ts +85 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/pagination.js +120 -0
- package/dist/utils/session.d.ts +173 -0
- package/dist/utils/session.d.ts.map +1 -0
- package/dist/utils/session.js +58 -0
- package/dist/utils/trpc-client.d.ts +19507 -0
- package/dist/utils/trpc-client.d.ts.map +1 -0
- package/dist/utils/trpc-client.js +129 -0
- package/dist/utils/upload.d.ts +81 -0
- package/dist/utils/upload.d.ts.map +1 -0
- package/dist/utils/upload.js +261 -0
- package/package.json +17 -27
- package/src/errors/api.ts +305 -0
- package/src/errors/base.ts +127 -0
- package/src/errors/index.ts +63 -0
- package/src/errors/upload.ts +204 -0
- package/src/errors/validation.ts +163 -0
- package/src/exports/base.ts +139 -0
- package/src/exports/index.ts +187 -0
- package/src/exports/mexico/actividad-vulnerable/avi.ts +207 -0
- package/src/exports/mexico/actividad-vulnerable/jys.ts +214 -0
- package/src/exports/mexico/actividad-vulnerable/tsc.ts +202 -0
- package/src/exports/mexico/index.ts +215 -0
- package/src/models/Address.ts +235 -0
- package/src/models/BankAccount.ts +235 -0
- package/src/models/Client.ts +363 -0
- package/src/models/ContactMethod.ts +197 -0
- package/src/models/Document.ts +355 -0
- package/src/models/LinkedClient.ts +84 -0
- package/src/models/Report.ts +193 -0
- package/src/models/ReportItem.ts +211 -0
- package/src/models/Transaction.ts +219 -0
- package/src/models/base.ts +56 -0
- package/src/models/index.ts +148 -0
- package/src/models/mex/MexAddress.ts +184 -0
- package/src/models/mex/MexBankAccount.ts +121 -0
- package/src/models/mex/MexClient.ts +177 -0
- package/src/models/mex/MexDocument.ts +890 -0
- package/src/models/mex/MexReport.ts +99 -0
- package/src/models/mex/MexReportItem.ts +79 -0
- package/src/models/mex/MexTransaction.ts +105 -0
- package/src/models/mex/actividad-vulnerable/MexActividadVulnerableClient.ts +66 -0
- package/src/models/mex/actividad-vulnerable/MexActividadVulnerableReport.ts +73 -0
- package/src/models/mex/actividad-vulnerable/MexActividadVulnerableReportItem.ts +74 -0
- package/src/models/mex/actividad-vulnerable/MexActividadVulnerableTransaction.ts +50 -0
- package/src/models/mex/actividad-vulnerable/avi/MexAVIClient.ts +80 -0
- package/src/models/mex/actividad-vulnerable/avi/MexAVIReport.ts +114 -0
- package/src/models/mex/actividad-vulnerable/avi/MexAVIReportItem.ts +105 -0
- package/src/models/mex/actividad-vulnerable/avi/MexAVITransaction.ts +157 -0
- package/src/models/mex/actividad-vulnerable/index.ts +78 -0
- package/src/models/mex/actividad-vulnerable/jys/MexJYSClient.ts +73 -0
- package/src/models/mex/actividad-vulnerable/jys/MexJYSReport.ts +114 -0
- package/src/models/mex/actividad-vulnerable/jys/MexJYSReportItem.ts +105 -0
- package/src/models/mex/actividad-vulnerable/jys/MexJYSTransaction.ts +178 -0
- package/src/models/mex/actividad-vulnerable/tsc/MexTSCClient.ts +73 -0
- package/src/models/mex/actividad-vulnerable/tsc/MexTSCReport.ts +114 -0
- package/src/models/mex/actividad-vulnerable/tsc/MexTSCReportItem.ts +105 -0
- package/src/models/mex/actividad-vulnerable/tsc/MexTSCTransaction.ts +104 -0
- package/src/models/mex/index.ts +57 -0
- package/src/models/types.ts +196 -0
- package/src/namespaces/index.ts +29 -0
- package/src/namespaces/mexico/actividad-vulnerable/avi/index.ts +62 -0
- package/src/namespaces/mexico/actividad-vulnerable/index.ts +79 -0
- package/src/namespaces/mexico/actividad-vulnerable/jys/index.ts +72 -0
- package/src/namespaces/mexico/actividad-vulnerable/tsc/index.ts +60 -0
- package/src/namespaces/mexico/index.ts +325 -0
- package/src/resources/addresses.ts +391 -0
- package/src/resources/bank-accounts.ts +417 -0
- package/src/resources/base.ts +327 -0
- package/src/resources/clients.ts +808 -0
- package/src/resources/contact-methods.ts +412 -0
- package/src/resources/documents.ts +688 -0
- package/src/resources/index.ts +40 -0
- package/src/resources/mex/actividad-vulnerable/avi/clients.ts +559 -0
- package/src/resources/mex/actividad-vulnerable/avi/index.ts +7 -0
- package/src/resources/mex/actividad-vulnerable/avi/reports.ts +609 -0
- package/src/resources/mex/actividad-vulnerable/avi/transactions.ts +404 -0
- package/src/resources/mex/actividad-vulnerable/index.ts +12 -0
- package/src/resources/mex/actividad-vulnerable/jys/clients.ts +445 -0
- package/src/resources/mex/actividad-vulnerable/jys/index.ts +7 -0
- package/src/resources/mex/actividad-vulnerable/jys/reports.ts +591 -0
- package/src/resources/mex/actividad-vulnerable/jys/transactions.ts +395 -0
- package/src/resources/mex/actividad-vulnerable/tsc/clients.ts +445 -0
- package/src/resources/mex/actividad-vulnerable/tsc/index.ts +7 -0
- package/src/resources/mex/actividad-vulnerable/tsc/reports.ts +591 -0
- package/src/resources/mex/actividad-vulnerable/tsc/transactions.ts +404 -0
- package/src/resources/mex/addresses.ts +493 -0
- package/src/resources/mex/bank-accounts.ts +283 -0
- package/src/resources/mex/clients.ts +758 -0
- package/src/resources/mex/ebr.ts +621 -0
- package/src/resources/mex/index.ts +23 -0
- package/src/resources/mex/reports.ts +643 -0
- package/src/resources/mex/transactions.ts +422 -0
- package/src/resources/reports.ts +515 -0
- package/src/resources/transactions.ts +358 -0
- package/src/sdk/ComplianceSDK.ts +812 -0
- package/src/sdk/base.ts +43 -0
- package/src/sdk/index.ts +98 -0
- package/src/sdk/mex/ComplianceSDK.ts +147 -0
- package/src/sdk/mex/actividad-vulnerable/avi/ComplianceSDK.ts +55 -0
- package/src/sdk/mex/actividad-vulnerable/avi/index.ts +16 -0
- package/src/sdk/mex/actividad-vulnerable/avi/types.ts +86 -0
- package/src/sdk/mex/actividad-vulnerable/index.ts +58 -0
- package/src/sdk/mex/actividad-vulnerable/jys/ComplianceSDK.ts +54 -0
- package/src/sdk/mex/actividad-vulnerable/jys/index.ts +16 -0
- package/src/sdk/mex/actividad-vulnerable/jys/types.ts +86 -0
- package/src/sdk/mex/actividad-vulnerable/tsc/ComplianceSDK.ts +54 -0
- package/src/sdk/mex/actividad-vulnerable/tsc/index.ts +16 -0
- package/src/sdk/mex/actividad-vulnerable/tsc/types.ts +86 -0
- package/src/sdk/mex/index.ts +66 -0
- package/src/sdk/mex/types.ts +88 -0
- package/src/sdk/resource-registry.ts +204 -0
- package/src/sdk/sdk-registry.ts +99 -0
- package/src/sdk/types.ts +304 -0
- package/src/utils/environment.ts +187 -0
- package/src/utils/filters.ts +412 -0
- package/src/utils/index.ts +134 -0
- package/src/utils/pagination.ts +143 -0
- package/src/utils/session.ts +303 -0
- package/src/utils/trpc-client.ts +242 -0
- package/src/utils/upload.ts +388 -0
- package/dist/chunk-2CIR32CT.cjs +0 -22972
- package/dist/chunk-2CIR32CT.cjs.map +0 -1
- package/dist/chunk-5FXVLHD3.js +0 -23
- package/dist/chunk-5FXVLHD3.js.map +0 -1
- package/dist/chunk-62M35I6I.js +0 -249
- package/dist/chunk-62M35I6I.js.map +0 -1
- package/dist/chunk-ARI5WM5X.js +0 -22819
- package/dist/chunk-ARI5WM5X.js.map +0 -1
- package/dist/chunk-B75YW6BN.cjs +0 -26
- package/dist/chunk-B75YW6BN.cjs.map +0 -1
- package/dist/chunk-F6THYYF5.cjs +0 -26
- package/dist/chunk-F6THYYF5.cjs.map +0 -1
- package/dist/chunk-HAEBRF5N.js +0 -23
- package/dist/chunk-HAEBRF5N.js.map +0 -1
- package/dist/chunk-HEGTPUIS.cjs +0 -26
- package/dist/chunk-HEGTPUIS.cjs.map +0 -1
- package/dist/chunk-TYXYZ3WV.js +0 -23
- package/dist/chunk-TYXYZ3WV.js.map +0 -1
- package/dist/chunk-ZFW24DFL.cjs +0 -261
- package/dist/chunk-ZFW24DFL.cjs.map +0 -1
- package/dist/filters-UX1_wF2Z.d.cts +0 -6460
- package/dist/filters-UX1_wF2Z.d.ts +0 -6460
- package/dist/index-6dNlw8uP.d.cts +0 -2866
- package/dist/index-CUIwWk-y.d.ts +0 -2866
- package/dist/index.cjs +0 -417
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -9
- package/dist/index.d.ts +0 -9
- package/dist/index.js +0 -28
- package/dist/index.js.map +0 -1
- package/dist/mexico/actividad-vulnerable/avi.cjs +0 -320
- package/dist/mexico/actividad-vulnerable/avi.cjs.map +0 -1
- package/dist/mexico/actividad-vulnerable/avi.d.cts +0 -680
- package/dist/mexico/actividad-vulnerable/avi.js +0 -55
- package/dist/mexico/actividad-vulnerable/avi.js.map +0 -1
- package/dist/mexico/actividad-vulnerable/jys.cjs +0 -330
- package/dist/mexico/actividad-vulnerable/jys.cjs.map +0 -1
- package/dist/mexico/actividad-vulnerable/jys.d.cts +0 -746
- package/dist/mexico/actividad-vulnerable/jys.js +0 -65
- package/dist/mexico/actividad-vulnerable/jys.js.map +0 -1
- package/dist/mexico/actividad-vulnerable/tsc.cjs +0 -318
- package/dist/mexico/actividad-vulnerable/tsc.cjs.map +0 -1
- package/dist/mexico/actividad-vulnerable/tsc.d.cts +0 -600
- package/dist/mexico/actividad-vulnerable/tsc.js +0 -53
- package/dist/mexico/actividad-vulnerable/tsc.js.map +0 -1
- package/dist/mexico/index.cjs +0 -384
- package/dist/mexico/index.cjs.map +0 -1
- package/dist/mexico/index.d.cts +0 -1422
- package/dist/mexico/index.d.ts +0 -1422
- package/dist/mexico/index.js +0 -7
- package/dist/mexico/index.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors/base.ts","../src/errors/validation.ts","../src/errors/api.ts","../src/errors/upload.ts","../src/utils/pagination.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js","../../../node_modules/.pnpm/@trpc+server@11.7.2_typescript@5.9.3/node_modules/@trpc/server/src/observable/observable.ts","../../../node_modules/.pnpm/@trpc+server@11.7.2_typescript@5.9.3/node_modules/@trpc/server/src/observable/operators.ts","../../../node_modules/.pnpm/@trpc+server@11.7.2_typescript@5.9.3/node_modules/@trpc/server/src/observable/behaviorSubject.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/src/links/internals/createChain.ts","../../../node_modules/.pnpm/@trpc+server@11.7.2_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/utils.ts","../../../node_modules/.pnpm/@trpc+server@11.7.2_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/createProxy.ts","../../../node_modules/.pnpm/@trpc+server@11.7.2_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js","../../../node_modules/.pnpm/@trpc+server@11.7.2_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js","../../../node_modules/.pnpm/@trpc+server@11.7.2_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js","../../../node_modules/.pnpm/@trpc+server@11.7.2_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js","../../../node_modules/.pnpm/@trpc+server@11.7.2_typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js","../../../node_modules/.pnpm/@trpc+server@11.7.2_typescript@5.9.3/node_modules/@trpc/server/src/unstable-core-do-not-import/transformer.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/src/TRPCClientError.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/src/internals/transformer.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/src/getFetch.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/src/links/internals/httpUtils.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/src/internals/dataLoader.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/src/internals/signals.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/src/links/httpBatchLink.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/src/links/internals/urlWithConnectionParams.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/src/links/wsLink/wsClient/utils.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/src/links/wsLink/wsClient/wsConnection.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/src/internals/TRPCUntypedClient.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/@trpc/client/src/createTRPCClient.ts","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js","../../../node_modules/.pnpm/@trpc+client@11.7.2_@trpc+server@11.7.2_typescript@5.9.3__typescript@5.9.3/node_modules/node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js","../src/sdk/types.ts","../src/resources/base.ts","../src/models/base.ts","../src/models/Client.ts","../src/models/Transaction.ts","../src/models/Report.ts","../src/models/ReportItem.ts","../src/models/Address.ts","../src/models/ContactMethod.ts","../src/models/BankAccount.ts","../src/models/Document.ts","../src/models/mex/MexClient.ts","../src/models/mex/MexTransaction.ts","../src/models/mex/MexBankAccount.ts","../src/models/mex/MexAddress.ts","../src/models/mex/MexDocument.ts","../src/models/mex/MexReport.ts","../src/models/mex/MexReportItem.ts","../src/models/mex/actividad-vulnerable/MexActividadVulnerableClient.ts","../src/models/mex/actividad-vulnerable/avi/MexAVIClient.ts","../src/models/mex/actividad-vulnerable/jys/MexJYSClient.ts","../src/models/mex/actividad-vulnerable/tsc/MexTSCClient.ts","../src/models/mex/actividad-vulnerable/MexActividadVulnerableTransaction.ts","../src/models/mex/actividad-vulnerable/avi/MexAVITransaction.ts","../src/models/mex/actividad-vulnerable/jys/MexJYSTransaction.ts","../src/models/mex/actividad-vulnerable/tsc/MexTSCTransaction.ts","../src/models/mex/actividad-vulnerable/MexActividadVulnerableReport.ts","../src/models/mex/actividad-vulnerable/avi/MexAVIReport.ts","../src/models/mex/actividad-vulnerable/MexActividadVulnerableReportItem.ts","../src/models/mex/actividad-vulnerable/avi/MexAVIReportItem.ts","../src/models/mex/actividad-vulnerable/jys/MexJYSReport.ts","../src/models/mex/actividad-vulnerable/jys/MexJYSReportItem.ts","../src/models/mex/actividad-vulnerable/tsc/MexTSCReport.ts","../src/models/mex/actividad-vulnerable/tsc/MexTSCReportItem.ts","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/classic/external.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/index.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/core.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/util.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/errors.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/parse.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/regexes.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/checks.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/doc.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/versions.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/schemas.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/index.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/ar.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/az.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/be.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/bg.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/ca.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/cs.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/da.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/de.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/en.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/eo.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/es.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/fa.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/fi.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/fr.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/fr-CA.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/he.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/hu.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/id.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/is.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/it.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/ja.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/ka.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/km.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/kh.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/ko.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/lt.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/mk.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/ms.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/nl.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/no.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/ota.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/ps.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/pl.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/pt.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/ru.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/sl.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/sv.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/ta.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/th.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/tr.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/uk.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/ua.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/ur.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/vi.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/zh-CN.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/zh-TW.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/locales/yo.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/registries.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/api.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/to-json-schema.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/core/json-schema.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/classic/iso.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/classic/errors.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/classic/parse.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/classic/schemas.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/classic/compat.js","../../../node_modules/.pnpm/zod@4.1.12/node_modules/zod/v4/classic/coerce.js","../src/resources/clients.ts","../src/resources/transactions.ts","../src/resources/reports.ts","../src/resources/addresses.ts","../src/resources/contact-methods.ts","../src/resources/bank-accounts.ts","../src/resources/documents.ts","../src/resources/mex/clients.ts","../src/resources/mex/transactions.ts","../src/resources/mex/bank-accounts.ts","../src/resources/mex/reports.ts","../src/resources/mex/actividad-vulnerable/avi/clients.ts","../src/resources/mex/actividad-vulnerable/avi/transactions.ts","../src/resources/mex/actividad-vulnerable/avi/reports.ts","../src/resources/mex/actividad-vulnerable/jys/clients.ts","../src/resources/mex/actividad-vulnerable/jys/transactions.ts","../src/resources/mex/actividad-vulnerable/jys/reports.ts","../src/resources/mex/actividad-vulnerable/tsc/clients.ts","../src/resources/mex/actividad-vulnerable/tsc/transactions.ts","../src/resources/mex/actividad-vulnerable/tsc/reports.ts","../src/resources/mex/addresses.ts","../src/resources/mex/ebr.ts","../src/utils/trpc-client.ts","../src/utils/environment.ts","../src/sdk/resource-registry.ts","../src/sdk/sdk-registry.ts","../src/sdk/ComplianceSDK.ts","../src/sdk/mex/ComplianceSDK.ts","../src/utils/filters.ts"],"names":["error","issue","_typeof","o","toPrimitive","toPropertyKey","r","subscribe: (observer: Observer<TValue, TError>) => TeardownLogic","self: Observable<TValue, TError>","teardownRef: TeardownLogic | null","prev: any","fn: UnaryFunction<any, any>","observable: Observable<TValue, unknown>","promise","_opts?: ShareConfig","subscription: Unsubscribable | null","observers: Partial<Observer<TValue, TError>>[]","initialValue: TValue","value: TValue","observerList: Observer<TValue, never>[]","observer: Observer<TValue, never>","nextValue: TValue","opts: {\n links: OperationLink<TRouter, TInput, TOutput>[];\n op: Operation<TInput>;\n}","value: unknown","obj: object","callback: ProxyCallback","path: readonly string[]","memo: Record<string, unknown>","callback: (path: keyof TFaux) => any","require_typeof","require_toPrimitive","require_toPropertyKey","require_defineProperty","response:\n | TRPCResponse<TOutput, inferRouterError<TRouter>>\n | TRPCResponseMessage<TOutput, inferRouterError<TRouter>>","transformer: DataTransformer","result: ReturnType<typeof transformResultInner>","cause: unknown","obj: unknown","err: unknown","fallback: string","TRPCClientError","message: string","opts?: {\n result?: Maybe<TRPCErrorResponse<inferErrorShape<TRouterOrProcedure>>>;\n cause?: Error;\n meta?: Record<string, unknown>;\n }","_cause: Error | TRPCErrorResponse<any> | object","opts: { meta?: Record<string, unknown> }","import_objectSpread2","transformer:\n | TransformerOptions<{ transformer: false }>['transformer']\n | TransformerOptions<{ transformer: true }>['transformer']\n | undefined","isFunction","fn: unknown","customFetchImpl?: FetchEsque | NativeFetchEsque","opts: HTTPLinkBaseOptions<AnyClientTypes>","array: unknown[]","dict: Record<number, unknown>","array","opts: GetInputOptions","getUrl: GetUrl","url","queryParts: string[]","getBody: GetBody","jsonHttpRequester: Requester","signal: Maybe<AbortSignal>","opts: HTTPRequestOptions","json","batchLoader: BatchLoader<TKey, TValue>","pendingItems: BatchItem<TKey, TValue>[] | null","dispatchTimer: ReturnType<typeof setTimeout> | null","items: BatchItem<TKey, TValue>[]","groupedItems: BatchItem<TKey, TValue>[][]","batch: Batch<TKey, TValue>","key: TKey","item: BatchItem<TKey, TValue>","opts: HTTPBatchLinkOptions<TRouter['_def']['_config']['$types']>","type: ProcedureType","value: T | ((...args: TArgs) => T)","resolve: (value: T | PromiseLike<T>) => void","reject: (reason?: any) => void","urlOptions: UrlOptionsWithConnectionParams","connectionParams: CallbackOrValue<TRPCRequestInfo['connectionParams']>","message: TRPCConnectionParamsMessage","ws: WebSocket","pingTimeout: ReturnType<typeof setTimeout> | undefined","pongTimeout: ReturnType<typeof setTimeout> | undefined","WsConnection","opts: WebSocketConnectionOptions","this","opts: CreateTRPCClientOptions<TInferrable>","opts: {\n type: TRPCType;\n input: TInput;\n path: string;\n context?: OperationContext;\n signal: Maybe<AbortSignal>;\n }","path: string","input?: unknown","opts?: TRPCRequestOptions","input: unknown","opts: Partial<\n TRPCSubscriptionObserver<unknown, TRPCClientError<AnyRouter>>\n > &\n TRPCRequestOptions","clientCallTypeMap: Record<\n keyof DecorateProcedure<any, any>,\n ProcedureType\n>","clientCallType: string","client: TRPCUntypedClient<TRouter>","opts: CreateTRPCClientOptions<TRouter>","_asyncIterator","AsyncFromSyncIterator","e","n","OverloadYield","_awaitAsyncGenerator","_wrapAsyncGenerator","t","Jurisdiction","config","ClientType","TransactionStatus","ReportStatus","AddressType","ContactMethodType","BankAccountType","formatBytes","DocumentStatus","DocumentCategory","MexDocumentType","avi","jys","tsc","_default","base64","base64url","bigint","boolean","_catch","cidrv4","cidrv6","core_exports","cuid","cuid2","date","decode","decodeAsync","e164","email","emoji","encode","encodeAsync","_enum","guid","hex","hostname","ipv4","ipv6","ksuid","lazy","map","nanoid","_null","nullish","number","parse","parseAsync","safeDecode","safeDecodeAsync","safeEncode","safeEncodeAsync","safeParse","safeParseAsync","string","ulid","_undefined","uuid","_void","xid","_emoji","initializer","assert","isObject","object","Class","version","time","inst","result","checks","checkResult","canary","_","allowsEval","results","left","right","keyResult","valueResult","output","parsedType","codec","file","id","schema","params","gen","datetime","duration","issues","def","check","ZodFirstPartyTypeKind","createClientInputSchema","updateClientInputSchema","linkedClientSchema","createTransactionInputSchema","updateTransactionInputSchema","createReportInputSchema","updateReportInputSchema","createReportItemInputSchema","updateReportItemInputSchema","validateReportInputSchema","submitReportInputSchema","createAddressInputSchema","updateAddressInputSchema","createContactMethodInputSchema","updateContactMethodInputSchema","createBankAccountInputSchema","updateBankAccountInputSchema","createDocumentInputSchema","updateDocumentInputSchema","createMexClientInputSchema","updateMexClientInputSchema","createMexTransactionInputSchema","updateMexTransactionInputSchema","createMexReportInputSchema","updateMexReportInputSchema","createMexReportItemInputSchema","updateMexReportItemInputSchema","mexValidateReportInputSchema","mexSubmitReportInputSchema","createAVIClientInputSchema","updateAVIClientInputSchema","CodigoActividad","createAVITransactionInputSchema","updateAVITransactionInputSchema","createAVIReportInputSchema","updateAVIReportInputSchema","createAVIReportItemInputSchema","updateAVIReportItemInputSchema","mexAviValidateInputSchema","submitAVIReportInputSchema","createJYSClientInputSchema","updateJYSClientInputSchema","createJYSTransactionInputSchema","updateJYSTransactionInputSchema","createJYSReportInputSchema","updateJYSReportInputSchema","createJYSReportItemInputSchema","updateJYSReportItemInputSchema","mexJysValidateInputSchema","submitJYSSubmissionInputSchema","createTSCClientInputSchema","updateTSCClientInputSchema","createTSCTransactionInputSchema","updateTSCTransactionInputSchema","createTSCReportInputSchema","updateTSCReportInputSchema","createTSCReportItemInputSchema","updateTSCReportItemInputSchema","mexTscValidateInputSchema","submitTSCSubmissionInputSchema","createMexAddressInputSchema","updateMexAddressInputSchema","CreateEBRConfigInputSchema","WEIGHT_RANGE","DEFAULT_THRESHOLDS","RiskLevels"],"mappings":"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","file":"chunk-2CIR32CT.cjs","sourcesContent":["/**\n * Base error class for SDK errors\n *\n * All SDK errors extend this class, providing consistent\n * structure for error handling and serialization.\n */\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Options for creating a ComplianceError\n */\nexport interface ComplianceErrorOptions {\n /**\n * Request ID for tracing (from X-Request-ID header)\n */\n requestId?: string;\n\n /**\n * Additional error details\n */\n details?: Record<string, unknown>;\n\n /**\n * Original error that caused this error\n */\n cause?: Error;\n}\n\n/**\n * JSON representation of a ComplianceError\n */\nexport interface ComplianceErrorJSON {\n name: string;\n code: string;\n message: string;\n requestId?: string;\n details?: Record<string, unknown>;\n}\n\n// ===========================\n// Base Error Class\n// ===========================\n\n/**\n * Base error class for all SDK errors.\n *\n * Provides consistent structure for:\n * - Error codes for programmatic handling\n * - Request IDs for debugging\n * - Additional details\n * - JSON serialization\n *\n * @example\n * ```typescript\n * try {\n * await sdk.clients.retrieve(\"invalid-id\");\n * } catch (error) {\n * if (error instanceof ComplianceError) {\n * console.log(\"Error code:\", error.code);\n * console.log(\"Request ID:\", error.requestId);\n * // Send to logging service\n * logger.error(error.toJSON());\n * }\n * }\n * ```\n */\nexport class ComplianceError extends Error {\n /**\n * Error code for programmatic handling.\n * Examples: \"VALIDATION_ERROR\", \"NOT_FOUND\", \"UNAUTHORIZED\"\n */\n public readonly code: string;\n\n /**\n * Request ID for tracing (from X-Request-ID header).\n * Useful for debugging with support.\n */\n public readonly requestId?: string;\n\n /**\n * Additional error details.\n * Structure varies by error type.\n */\n public readonly details?: Record<string, unknown>;\n\n constructor(message: string, code: string, options?: ComplianceErrorOptions) {\n super(message, { cause: options?.cause });\n this.name = \"ComplianceError\";\n this.code = code;\n this.requestId = options?.requestId;\n this.details = options?.details;\n\n // Maintain proper prototype chain for instanceof checks\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n /**\n * Serializes the error to a JSON-compatible object.\n * Useful for logging and error reporting.\n *\n * @returns JSON representation of the error\n */\n toJSON(): ComplianceErrorJSON {\n return {\n name: this.name,\n code: this.code,\n message: this.message,\n requestId: this.requestId,\n details: this.details,\n };\n }\n\n /**\n * Returns a string suitable for sending to support.\n * Includes request ID if available.\n */\n toSupportInfo(): string {\n const parts = [`Error: ${this.message}`, `Code: ${this.code}`];\n if (this.requestId) {\n parts.push(`Request ID: ${this.requestId}`);\n }\n return parts.join(\"\\n\");\n }\n}\n","/**\n * Validation error class\n *\n * Thrown when input validation fails, either client-side (Zod)\n * or server-side (API validation).\n */\n\nimport type { ZodError } from \"zod\";\nimport { ComplianceError } from \"./base\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * A single validation issue\n */\nexport interface ValidationIssue {\n /**\n * Path to the field that failed validation.\n * Example: [\"addresses\", \"0\", \"postalCode\"]\n */\n path: PropertyKey[];\n\n /**\n * Human-readable error message\n */\n message: string;\n\n /**\n * Validation rule that failed (optional)\n */\n code?: string;\n}\n\n// ===========================\n// Validation Error Class\n// ===========================\n\n/**\n * Error thrown when input validation fails.\n *\n * Contains structured information about which fields failed\n * and why, making it easy to display errors in forms.\n *\n * @example\n * ```typescript\n * try {\n * await sdk.clients.create({ name: \"\" });\n * } catch (error) {\n * if (error instanceof ValidationError) {\n * error.issues.forEach((issue) => {\n * console.log(`${issue.path.join(\".\")}: ${issue.message}`);\n * });\n * }\n * }\n * ```\n */\nexport class ValidationError extends ComplianceError {\n /**\n * List of validation issues\n */\n public readonly issues: ValidationIssue[];\n\n constructor(issues: ValidationIssue[], requestId?: string) {\n const message = ValidationError.formatMessage(issues);\n super(message, \"VALIDATION_ERROR\", {\n requestId,\n details: { issues },\n });\n this.name = \"ValidationError\";\n this.issues = issues;\n }\n\n /**\n * Creates a ValidationError from a Zod error.\n *\n * @param error - Zod validation error\n * @param requestId - Optional request ID for tracing\n * @returns ValidationError with formatted issues\n */\n static fromZodError(error: ZodError, requestId?: string): ValidationError {\n const issues: ValidationIssue[] = error.issues.map((issue) => ({\n path: issue.path,\n message: issue.message,\n code: issue.code,\n }));\n return new ValidationError(issues, requestId);\n }\n\n /**\n * Gets validation errors for a specific field path.\n *\n * @param path - Field path (e.g., \"name\" or \"addresses.0.city\")\n * @returns Array of error messages for the field\n *\n * @example\n * ```typescript\n * const nameErrors = error.getFieldErrors(\"name\");\n * // [\"Name is required\", \"Name must be at least 2 characters\"]\n * ```\n */\n getFieldErrors(path: string): string[] {\n const pathParts = path.split(\".\");\n return this.issues\n .filter((issue) => {\n if (issue.path.length !== pathParts.length) return false;\n return pathParts.every((part, i) => String(issue.path[i]) === part);\n })\n .map((issue) => issue.message);\n }\n\n /**\n * Checks if a specific field has validation errors.\n *\n * @param path - Field path to check\n * @returns True if the field has errors\n */\n hasFieldError(path: string): boolean {\n return this.getFieldErrors(path).length > 0;\n }\n\n /**\n * Gets a flat object of field paths to error messages.\n * Useful for form libraries.\n *\n * @returns Object mapping field paths to error messages\n *\n * @example\n * ```typescript\n * const fieldErrors = error.toFieldErrors();\n * // { \"name\": \"Name is required\", \"email\": \"Invalid email\" }\n * ```\n */\n toFieldErrors(): Record<string, string> {\n const errors: Record<string, string> = {};\n for (const issue of this.issues) {\n const path = issue.path.join(\".\");\n // Only keep first error per field\n if (!errors[path]) {\n errors[path] = issue.message;\n }\n }\n return errors;\n }\n\n /**\n * Formats the validation issues into a human-readable message.\n */\n private static formatMessage(issues: ValidationIssue[]): string {\n if (issues.length === 0) {\n return \"Validation failed\";\n }\n if (issues.length === 1) {\n const [issue] = issues;\n if (issue) {\n const path = issue.path.length > 0 ? `${issue.path.join(\".\")}: ` : \"\";\n return `Validation failed: ${path}${issue.message}`;\n }\n }\n return `Validation failed with ${issues.length} errors`;\n }\n}\n","/**\n * API error classes\n *\n * Errors thrown when the API returns error responses.\n * Includes specific error types for common scenarios.\n */\n\nimport { TRPCClientError } from \"@trpc/client\";\nimport { ComplianceError, type ComplianceErrorOptions } from \"./base\";\nimport { ValidationError, type ValidationIssue } from \"./validation\";\n\n// ===========================\n// API Error Base Class\n// ===========================\n\n/**\n * Error thrown when the API returns an error response.\n *\n * @example\n * ```typescript\n * try {\n * await sdk.clients.create({ ... });\n * } catch (error) {\n * if (error instanceof APIError) {\n * console.log(\"Status:\", error.statusCode);\n * console.log(\"Code:\", error.code);\n * }\n * }\n * ```\n */\nexport class APIError extends ComplianceError {\n /**\n * HTTP status code (if available)\n */\n public readonly statusCode?: number;\n\n constructor(\n message: string,\n code: string,\n options?: ComplianceErrorOptions & { statusCode?: number }\n ) {\n super(message, code, options);\n this.name = \"APIError\";\n this.statusCode = options?.statusCode;\n }\n}\n\n// ===========================\n// Specific API Errors\n// ===========================\n\n/**\n * Resource not found error (404).\n *\n * @example\n * ```typescript\n * try {\n * await sdk.clients.retrieve(\"invalid-id\");\n * } catch (error) {\n * if (error instanceof NotFoundError) {\n * console.log(`${error.resourceType} '${error.resourceId}' not found`);\n * }\n * }\n * ```\n */\nexport class NotFoundError extends APIError {\n /**\n * Type of resource that was not found (e.g., \"Client\", \"Transaction\")\n */\n public readonly resourceType: string;\n\n /**\n * ID of the resource that was not found\n */\n public readonly resourceId: string;\n\n constructor(resourceType: string, resourceId: string, requestId?: string) {\n super(`${resourceType} with ID '${resourceId}' not found`, \"NOT_FOUND\", {\n statusCode: 404,\n requestId,\n details: { resourceType, resourceId },\n });\n this.name = \"NotFoundError\";\n this.resourceType = resourceType;\n this.resourceId = resourceId;\n }\n}\n\n/**\n * Authentication failed error (401).\n * Thrown when the API key is invalid or missing.\n */\nexport class UnauthorizedError extends APIError {\n constructor(message = \"Invalid or missing API key\", requestId?: string) {\n super(message, \"UNAUTHORIZED\", { statusCode: 401, requestId });\n this.name = \"UnauthorizedError\";\n }\n}\n\n/**\n * Permission denied error (403).\n * Thrown when the API key lacks permission for the operation.\n *\n * @example\n * ```typescript\n * // Using test API key with live environment\n * const sdk = new ComplianceSDK({\n * apiKey: \"sk_test_...\",\n * environment: \"live\", // No permission!\n * });\n * ```\n */\nexport class ForbiddenError extends APIError {\n constructor(message = \"Permission denied\", requestId?: string) {\n super(message, \"FORBIDDEN\", { statusCode: 403, requestId });\n this.name = \"ForbiddenError\";\n }\n}\n\n/**\n * Rate limit exceeded error (429).\n * Includes retry information when available.\n *\n * @example\n * ```typescript\n * try {\n * await sdk.clients.list();\n * } catch (error) {\n * if (error instanceof RateLimitError) {\n * console.log(`Rate limited. Retry after ${error.retryAfter}s`);\n * await sleep(error.retryAfter * 1000);\n * // Retry...\n * }\n * }\n * ```\n */\nexport class RateLimitError extends APIError {\n /**\n * Seconds to wait before retrying (if provided by API)\n */\n public readonly retryAfter?: number;\n\n constructor(retryAfter?: number, requestId?: string) {\n const message = retryAfter\n ? `Rate limit exceeded. Retry after ${retryAfter} seconds`\n : \"Rate limit exceeded\";\n super(message, \"RATE_LIMITED\", {\n statusCode: 429,\n requestId,\n details: retryAfter ? { retryAfter } : undefined,\n });\n this.name = \"RateLimitError\";\n this.retryAfter = retryAfter;\n }\n}\n\n/**\n * Server error (5xx).\n * Indicates an unexpected error on the API server.\n */\nexport class ServerError extends APIError {\n constructor(message = \"Internal server error\", requestId?: string) {\n super(message, \"SERVER_ERROR\", { statusCode: 500, requestId });\n this.name = \"ServerError\";\n }\n}\n\n/**\n * Network/connection error.\n * Thrown when the request fails to reach the server.\n */\nexport class NetworkError extends APIError {\n constructor(message = \"Network error\", cause?: Error) {\n super(message, \"NETWORK_ERROR\", { cause });\n this.name = \"NetworkError\";\n }\n}\n\n/**\n * Request timeout error.\n * Thrown when the request exceeds the configured timeout.\n */\nexport class TimeoutError extends APIError {\n /**\n * Timeout duration in milliseconds\n */\n public readonly timeout: number;\n\n constructor(timeout: number, requestId?: string) {\n super(`Request timed out after ${timeout}ms`, \"TIMEOUT\", {\n requestId,\n details: { timeout },\n });\n this.name = \"TimeoutError\";\n this.timeout = timeout;\n }\n}\n\n// ===========================\n// tRPC Error Mapping\n// ===========================\n\n/**\n * Maps a tRPC client error to an SDK-specific error.\n *\n * This function converts tRPC errors into the appropriate\n * SDK error class for better error handling.\n *\n * @param error - tRPC client error\n * @returns SDK-specific error\n *\n * @example\n * ```typescript\n * try {\n * await trpcClient.clients.retrieve.query({ id: \"...\" });\n * } catch (error) {\n * if (isTRPCError(error)) {\n * throw mapTRPCError(error);\n * }\n * throw error;\n * }\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function mapTRPCError(error: TRPCClientError<any>): ComplianceError {\n // Extract error data from tRPC response\n const data = error.data as Record<string, unknown> | undefined;\n const code = data?.code as string | undefined;\n const requestId = data?.requestId as string | undefined;\n\n // Handle specific error codes\n switch (code) {\n case \"NOT_FOUND\":\n return new NotFoundError(\n (data?.resourceType as string) ?? \"Resource\",\n (data?.resourceId as string) ?? \"unknown\",\n requestId\n );\n\n case \"UNAUTHORIZED\":\n return new UnauthorizedError(error.message, requestId);\n\n case \"FORBIDDEN\":\n return new ForbiddenError(error.message, requestId);\n\n case \"BAD_REQUEST\": {\n // Check for Zod validation errors\n const zodError = data?.zodError as\n | { issues?: ValidationIssue[] }\n | undefined;\n if (zodError?.issues) {\n return new ValidationError(zodError.issues, requestId);\n }\n return new ValidationError(\n [{ path: [], message: error.message }],\n requestId\n );\n }\n\n case \"TOO_MANY_REQUESTS\":\n return new RateLimitError(\n data?.retryAfter as number | undefined,\n requestId\n );\n\n case \"INTERNAL_SERVER_ERROR\":\n return new ServerError(error.message, requestId);\n\n case \"TIMEOUT\":\n return new TimeoutError((data?.timeout as number) ?? 30000, requestId);\n\n default:\n // Check for network errors\n if (\n error.message.includes(\"fetch failed\") ||\n error.message.includes(\"network\") ||\n error.message.includes(\"ECONNREFUSED\")\n ) {\n return new NetworkError(error.message, error);\n }\n\n // Generic API error\n return new APIError(error.message, code ?? \"UNKNOWN_ERROR\", {\n requestId,\n cause: error,\n });\n }\n}\n\n/**\n * Type guard to check if an error is a specific API error type.\n *\n * @param error - Error to check\n * @param type - Error class to check against\n * @returns True if error is an instance of the specified type\n */\nexport function isAPIError<T extends typeof APIError>(\n error: unknown,\n type?: T\n): error is InstanceType<T> {\n if (type) {\n return error instanceof type;\n }\n return error instanceof APIError;\n}\n","/**\n * Upload error classes\n *\n * Errors thrown during file upload operations.\n */\n\nimport { ComplianceError, type ComplianceErrorOptions } from \"./base\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Stage of upload where the error occurred\n */\nexport type UploadStage = \"request\" | \"upload\" | \"confirm\";\n\n// ===========================\n// Upload Error Classes\n// ===========================\n\n/**\n * Error thrown during file upload operations.\n *\n * @example\n * ```typescript\n * try {\n * await sdk.documents.upload(file, { clientId: \"...\" });\n * } catch (error) {\n * if (error instanceof UploadError) {\n * console.log(`Upload failed at stage: ${error.stage}`);\n * }\n * }\n * ```\n */\nexport class UploadError extends ComplianceError {\n /**\n * Stage of the upload process where the error occurred:\n * - \"request\": Failed to request upload URL\n * - \"upload\": Failed to upload file to storage\n * - \"confirm\": Failed to confirm upload with API\n */\n public readonly stage: UploadStage;\n\n constructor(\n message: string,\n stage: UploadStage,\n options?: ComplianceErrorOptions\n ) {\n super(message, \"UPLOAD_ERROR\", options);\n this.name = \"UploadError\";\n this.stage = stage;\n }\n}\n\n/**\n * File exceeds maximum allowed size.\n *\n * @example\n * ```typescript\n * try {\n * await sdk.documents.upload(largeFile, { clientId: \"...\" });\n * } catch (error) {\n * if (error instanceof FileTooLargeError) {\n * console.log(`Max size: ${error.maxSizeFormatted}`);\n * console.log(`Your file: ${error.actualSizeFormatted}`);\n * }\n * }\n * ```\n */\nexport class FileTooLargeError extends UploadError {\n /**\n * Maximum allowed file size in bytes\n */\n public readonly maxSize: number;\n\n /**\n * Actual file size in bytes\n */\n public readonly actualSize: number;\n\n constructor(actualSize: number, maxSize: number) {\n super(\n `File size (${formatBytes(actualSize)}) exceeds maximum allowed size (${formatBytes(maxSize)})`,\n \"request\",\n { details: { actualSize, maxSize } }\n );\n this.name = \"FileTooLargeError\";\n this.maxSize = maxSize;\n this.actualSize = actualSize;\n }\n\n /**\n * Maximum size formatted for display (e.g., \"10 MB\")\n */\n get maxSizeFormatted(): string {\n return formatBytes(this.maxSize);\n }\n\n /**\n * Actual size formatted for display (e.g., \"15.2 MB\")\n */\n get actualSizeFormatted(): string {\n return formatBytes(this.actualSize);\n }\n}\n\n/**\n * Upload timed out.\n */\nexport class UploadTimeoutError extends UploadError {\n /**\n * Timeout duration in milliseconds\n */\n public readonly timeout: number;\n\n constructor(timeout: number, requestId?: string) {\n super(`Upload timed out after ${timeout}ms`, \"upload\", {\n requestId,\n details: { timeout },\n });\n this.name = \"UploadTimeoutError\";\n this.timeout = timeout;\n }\n}\n\n/**\n * Invalid file type.\n */\nexport class InvalidFileTypeError extends UploadError {\n /**\n * Allowed MIME types\n */\n public readonly allowedTypes: string[];\n\n /**\n * Actual MIME type of the file\n */\n public readonly actualType: string;\n\n constructor(actualType: string, allowedTypes: string[]) {\n super(\n `File type '${actualType}' is not allowed. Allowed types: ${allowedTypes.join(\", \")}`,\n \"request\",\n { details: { actualType, allowedTypes } }\n );\n this.name = \"InvalidFileTypeError\";\n this.actualType = actualType;\n this.allowedTypes = allowedTypes;\n }\n}\n\n/**\n * Upload was aborted.\n */\nexport class UploadAbortedError extends UploadError {\n constructor(requestId?: string) {\n super(\"Upload was aborted\", \"upload\", { requestId });\n this.name = \"UploadAbortedError\";\n }\n}\n\n/**\n * Upload URL expired before upload completed.\n */\nexport class UploadUrlExpiredError extends UploadError {\n constructor(requestId?: string) {\n super(\n \"Upload URL has expired. Please request a new upload URL.\",\n \"upload\",\n {\n requestId,\n }\n );\n this.name = \"UploadUrlExpiredError\";\n }\n}\n\n// ===========================\n// Helpers\n// ===========================\n\n/**\n * Formats bytes into a human-readable string.\n *\n * @param bytes - Number of bytes\n * @returns Formatted string (e.g., \"1.5 MB\")\n */\nfunction formatBytes(bytes: number): string {\n if (bytes === 0) return \"0 bytes\";\n if (bytes < 1024) return `${bytes} bytes`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n if (bytes < 1024 * 1024 * 1024) {\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n }\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;\n}\n\n/**\n * Type guard to check if an error is an upload error.\n */\nexport function isUploadError(error: unknown): error is UploadError {\n return error instanceof UploadError;\n}\n","/**\n * Pagination utilities\n *\n * Helpers for working with paginated API responses.\n * Includes async iterators for automatic pagination.\n */\n\nimport type { PaginationInput, PaginatedResponse } from \"@artu-ai/shared\";\n\n// ===========================\n// Constants\n// ===========================\n\n/**\n * Default page size for paginated requests\n */\nexport const DEFAULT_PAGE_SIZE = 20;\n\n/**\n * Maximum page size allowed by the API\n */\nexport const MAX_PAGE_SIZE = 200;\n\n// ===========================\n// Functions\n// ===========================\n\n/**\n * Creates an async iterator for paginated results.\n * Automatically fetches subsequent pages as you iterate.\n *\n * @param fetchPage - Function that fetches a page of results\n * @param options - Iterator options\n * @returns Async generator yielding individual items\n *\n * @example\n * ```typescript\n * const iterator = createPaginatedIterator(\n * (pagination) => client.clients.list.query(pagination)\n * );\n *\n * for await (const client of iterator) {\n * console.log(client.name);\n * }\n * ```\n */\nexport async function* createPaginatedIterator<T>(\n fetchPage: (pagination: PaginationInput) => Promise<PaginatedResponse<T>>,\n options?: { limit?: number }\n): AsyncGenerator<T, void, undefined> {\n let cursor: string | undefined;\n let hasMore = true;\n const pageSize = options?.limit ?? DEFAULT_PAGE_SIZE;\n\n while (hasMore) {\n const response = await fetchPage({\n cursor,\n limit: Math.min(pageSize, MAX_PAGE_SIZE),\n });\n\n for (const item of response.data) {\n yield item;\n }\n\n hasMore = response.pagination.hasMore;\n cursor = response.pagination.nextCursor ?? undefined;\n }\n}\n\n/**\n * Collects all items from a paginated iterator into an array.\n * Use with caution on large datasets.\n *\n * @param iterator - Async iterator to collect from\n * @returns Array of all items\n *\n * @example\n * ```typescript\n * const allClients = await collectAll(\n * createPaginatedIterator((p) => client.clients.list.query(p))\n * );\n * ```\n */\nexport async function collectAll<T>(\n iterator: AsyncGenerator<T, void, undefined>\n): Promise<T[]> {\n const items: T[] = [];\n for await (const item of iterator) {\n items.push(item);\n }\n return items;\n}\n\n/**\n * Collects items from a paginated iterator up to a maximum count.\n * Useful when you only need a subset of results.\n *\n * @param iterator - Async iterator to collect from\n * @param maxItems - Maximum number of items to collect\n * @returns Array of collected items\n *\n * @example\n * ```typescript\n * // Get first 100 clients\n * const clients = await collectUpTo(\n * createPaginatedIterator((p) => client.clients.list.query(p)),\n * 100\n * );\n * ```\n */\nexport async function collectUpTo<T>(\n iterator: AsyncGenerator<T, void, undefined>,\n maxItems: number\n): Promise<T[]> {\n const items: T[] = [];\n for await (const item of iterator) {\n items.push(item);\n if (items.length >= maxItems) {\n break;\n }\n }\n return items;\n}\n\n/**\n * Gets the first item from a paginated iterator, or undefined if empty.\n *\n * @param iterator - Async iterator to get first item from\n * @returns First item or undefined\n *\n * @example\n * ```typescript\n * const firstClient = await getFirst(\n * createPaginatedIterator((p) => client.clients.list.query({ ...p, limit: 1 }))\n * );\n * ```\n */\nexport async function getFirst<T>(\n iterator: AsyncGenerator<T, void, undefined>\n): Promise<T | undefined> {\n const result = await iterator.next();\n return result.done ? undefined : result.value;\n}\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import type { Result } from '../unstable-core-do-not-import';\nimport type {\n Observable,\n Observer,\n OperatorFunction,\n TeardownLogic,\n UnaryFunction,\n Unsubscribable,\n} from './types';\n\n/** @public */\nexport type inferObservableValue<TObservable> =\n TObservable extends Observable<infer TValue, unknown> ? TValue : never;\n\n/** @public */\nexport function isObservable(x: unknown): x is Observable<unknown, unknown> {\n return typeof x === 'object' && x !== null && 'subscribe' in x;\n}\n\n/** @public */\nexport function observable<TValue, TError = unknown>(\n subscribe: (observer: Observer<TValue, TError>) => TeardownLogic,\n): Observable<TValue, TError> {\n const self: Observable<TValue, TError> = {\n subscribe(observer) {\n let teardownRef: TeardownLogic | null = null;\n let isDone = false;\n let unsubscribed = false;\n let teardownImmediately = false;\n function unsubscribe() {\n if (teardownRef === null) {\n teardownImmediately = true;\n return;\n }\n if (unsubscribed) {\n return;\n }\n unsubscribed = true;\n\n if (typeof teardownRef === 'function') {\n teardownRef();\n } else if (teardownRef) {\n teardownRef.unsubscribe();\n }\n }\n teardownRef = subscribe({\n next(value) {\n if (isDone) {\n return;\n }\n observer.next?.(value);\n },\n error(err) {\n if (isDone) {\n return;\n }\n isDone = true;\n observer.error?.(err);\n unsubscribe();\n },\n complete() {\n if (isDone) {\n return;\n }\n isDone = true;\n observer.complete?.();\n unsubscribe();\n },\n });\n if (teardownImmediately) {\n unsubscribe();\n }\n return {\n unsubscribe,\n };\n },\n pipe(\n ...operations: OperatorFunction<any, any, any, any>[]\n ): Observable<any, any> {\n return operations.reduce(pipeReducer, self);\n },\n };\n return self;\n}\n\nfunction pipeReducer(prev: any, fn: UnaryFunction<any, any>) {\n return fn(prev);\n}\n\n/** @internal */\nexport function observableToPromise<TValue>(\n observable: Observable<TValue, unknown>,\n) {\n const ac = new AbortController();\n const promise = new Promise<TValue>((resolve, reject) => {\n let isDone = false;\n function onDone() {\n if (isDone) {\n return;\n }\n isDone = true;\n obs$.unsubscribe();\n }\n ac.signal.addEventListener('abort', () => {\n reject(ac.signal.reason);\n });\n const obs$ = observable.subscribe({\n next(data) {\n isDone = true;\n resolve(data);\n onDone();\n },\n error(data) {\n reject(data);\n },\n complete() {\n ac.abort();\n onDone();\n },\n });\n });\n return promise;\n}\n\n/**\n * @internal\n */\nfunction observableToReadableStream<TValue>(\n observable: Observable<TValue, unknown>,\n signal: AbortSignal,\n): ReadableStream<Result<TValue>> {\n let unsub: Unsubscribable | null = null;\n\n const onAbort = () => {\n unsub?.unsubscribe();\n unsub = null;\n signal.removeEventListener('abort', onAbort);\n };\n\n return new ReadableStream<Result<TValue>>({\n start(controller) {\n unsub = observable.subscribe({\n next(data) {\n controller.enqueue({ ok: true, value: data });\n },\n error(error) {\n controller.enqueue({ ok: false, error });\n controller.close();\n },\n complete() {\n controller.close();\n },\n });\n\n if (signal.aborted) {\n onAbort();\n } else {\n signal.addEventListener('abort', onAbort, { once: true });\n }\n },\n cancel() {\n onAbort();\n },\n });\n}\n\n/** @internal */\nexport function observableToAsyncIterable<TValue>(\n observable: Observable<TValue, unknown>,\n signal: AbortSignal,\n): AsyncIterable<TValue> {\n const stream = observableToReadableStream(observable, signal);\n\n const reader = stream.getReader();\n const iterator: AsyncIterator<TValue> = {\n async next() {\n const value = await reader.read();\n if (value.done) {\n return {\n value: undefined,\n done: true,\n };\n }\n const { value: result } = value;\n if (!result.ok) {\n throw result.error;\n }\n return {\n value: result.value,\n done: false,\n };\n },\n async return() {\n await reader.cancel();\n return {\n value: undefined,\n done: true,\n };\n },\n };\n return {\n [Symbol.asyncIterator]() {\n return iterator;\n },\n };\n}\n","import { observable } from './observable';\nimport type {\n MonoTypeOperatorFunction,\n Observer,\n OperatorFunction,\n Unsubscribable,\n} from './types';\n\nexport function map<TValueBefore, TError, TValueAfter>(\n project: (value: TValueBefore, index: number) => TValueAfter,\n): OperatorFunction<TValueBefore, TError, TValueAfter, TError> {\n return (source) => {\n return observable((destination) => {\n let index = 0;\n const subscription = source.subscribe({\n next(value) {\n destination.next(project(value, index++));\n },\n error(error) {\n destination.error(error);\n },\n complete() {\n destination.complete();\n },\n });\n return subscription;\n });\n };\n}\n\ninterface ShareConfig {}\nexport function share<TValue, TError>(\n _opts?: ShareConfig,\n): MonoTypeOperatorFunction<TValue, TError> {\n return (source) => {\n let refCount = 0;\n\n let subscription: Unsubscribable | null = null;\n const observers: Partial<Observer<TValue, TError>>[] = [];\n\n function startIfNeeded() {\n if (subscription) {\n return;\n }\n subscription = source.subscribe({\n next(value) {\n for (const observer of observers) {\n observer.next?.(value);\n }\n },\n error(error) {\n for (const observer of observers) {\n observer.error?.(error);\n }\n },\n complete() {\n for (const observer of observers) {\n observer.complete?.();\n }\n },\n });\n }\n function resetIfNeeded() {\n // \"resetOnRefCountZero\"\n if (refCount === 0 && subscription) {\n const _sub = subscription;\n subscription = null;\n _sub.unsubscribe();\n }\n }\n\n return observable((subscriber) => {\n refCount++;\n\n observers.push(subscriber);\n startIfNeeded();\n return {\n unsubscribe() {\n refCount--;\n resetIfNeeded();\n\n const index = observers.findIndex((v) => v === subscriber);\n\n if (index > -1) {\n observers.splice(index, 1);\n }\n },\n };\n });\n };\n}\n\nexport function tap<TValue, TError>(\n observer: Partial<Observer<TValue, TError>>,\n): MonoTypeOperatorFunction<TValue, TError> {\n return (source) => {\n return observable((destination) => {\n return source.subscribe({\n next(value) {\n observer.next?.(value);\n destination.next(value);\n },\n error(error) {\n observer.error?.(error);\n destination.error(error);\n },\n complete() {\n observer.complete?.();\n destination.complete();\n },\n });\n });\n };\n}\n\nconst distinctUnsetMarker = Symbol();\nexport function distinctUntilChanged<TValue, TError>(\n compare: (a: TValue, b: TValue) => boolean = (a, b) => a === b,\n): MonoTypeOperatorFunction<TValue, TError> {\n return (source) => {\n return observable((destination) => {\n let lastValue: TValue | typeof distinctUnsetMarker = distinctUnsetMarker;\n\n return source.subscribe({\n next(value) {\n if (lastValue !== distinctUnsetMarker && compare(lastValue, value)) {\n return;\n }\n lastValue = value;\n destination.next(value);\n },\n error(error) {\n destination.error(error);\n },\n complete() {\n destination.complete();\n },\n });\n });\n };\n}\n\nconst isDeepEqual = <T>(a: T, b: T): boolean => {\n if (a === b) {\n return true;\n }\n const bothAreObjects =\n a && b && typeof a === 'object' && typeof b === 'object';\n\n return (\n !!bothAreObjects &&\n Object.keys(a).length === Object.keys(b).length &&\n Object.entries(a).every(([k, v]) => isDeepEqual(v, b[k as keyof T]))\n );\n};\nexport function distinctUntilDeepChanged<\n TValue,\n TError,\n>(): MonoTypeOperatorFunction<TValue, TError> {\n return distinctUntilChanged(isDeepEqual);\n}\n","import { observable } from './observable';\nimport type { Observable, Observer } from './types';\n\nexport interface BehaviorSubject<TValue> extends Observable<TValue, never> {\n observable: Observable<TValue, never>;\n next: (value: TValue) => void;\n get: () => TValue;\n}\n\nexport interface ReadonlyBehaviorSubject<TValue>\n extends Omit<BehaviorSubject<TValue>, 'next'> {}\n\n/**\n * @internal\n * An observable that maintains and provides a \"current value\" to subscribers\n * @see https://www.learnrxjs.io/learn-rxjs/subjects/behaviorsubject\n */\nexport function behaviorSubject<TValue>(\n initialValue: TValue,\n): BehaviorSubject<TValue> {\n let value: TValue = initialValue;\n\n const observerList: Observer<TValue, never>[] = [];\n\n const addObserver = (observer: Observer<TValue, never>) => {\n if (value !== undefined) {\n observer.next(value);\n }\n observerList.push(observer);\n };\n const removeObserver = (observer: Observer<TValue, never>) => {\n observerList.splice(observerList.indexOf(observer), 1);\n };\n\n const obs = observable<TValue, never>((observer) => {\n addObserver(observer);\n return () => {\n removeObserver(observer);\n };\n }) as BehaviorSubject<TValue>;\n\n obs.next = (nextValue: TValue) => {\n if (value === nextValue) {\n return;\n }\n value = nextValue;\n for (const observer of observerList) {\n observer.next(nextValue);\n }\n };\n\n obs.get = () => value;\n\n return obs;\n}\n","import { observable } from '@trpc/server/observable';\nimport type { AnyRouter } from '@trpc/server/unstable-core-do-not-import';\nimport type {\n Operation,\n OperationLink,\n OperationResultObservable,\n} from '../types';\n\n/** @internal */\nexport function createChain<\n TRouter extends AnyRouter,\n TInput = unknown,\n TOutput = unknown,\n>(opts: {\n links: OperationLink<TRouter, TInput, TOutput>[];\n op: Operation<TInput>;\n}): OperationResultObservable<TRouter, TOutput> {\n return observable((observer) => {\n function execute(index = 0, op = opts.op) {\n const next = opts.links[index];\n if (!next) {\n throw new Error(\n 'No more links to execute - did you forget to add an ending link?',\n );\n }\n const subscription = next({\n op,\n next(nextOp) {\n const nextObserver = execute(index + 1, nextOp);\n\n return nextObserver;\n },\n });\n return subscription;\n }\n\n const obs$ = execute();\n return obs$.subscribe(observer);\n });\n}\n","/** @internal */\nexport type UnsetMarker = 'unsetMarker' & {\n __brand: 'unsetMarker';\n};\n\n/**\n * Ensures there are no duplicate keys when building a procedure.\n * @internal\n */\nexport function mergeWithoutOverrides<TType extends Record<string, unknown>>(\n obj1: TType,\n ...objs: Partial<TType>[]\n): TType {\n const newObj: TType = Object.assign(Object.create(null), obj1);\n\n for (const overrides of objs) {\n for (const key in overrides) {\n if (key in newObj && newObj[key] !== overrides[key]) {\n throw new Error(`Duplicate key ${key}`);\n }\n newObj[key as keyof TType] = overrides[key] as TType[keyof TType];\n }\n }\n return newObj;\n}\n\n/**\n * Check that value is object\n * @internal\n */\nexport function isObject(value: unknown): value is Record<string, unknown> {\n return !!value && !Array.isArray(value) && typeof value === 'object';\n}\n\ntype AnyFn = ((...args: any[]) => unknown) & Record<keyof any, unknown>;\nexport function isFunction(fn: unknown): fn is AnyFn {\n return typeof fn === 'function';\n}\n\n/**\n * Create an object without inheriting anything from `Object.prototype`\n * @internal\n */\nexport function omitPrototype<TObj extends Record<string, unknown>>(\n obj: TObj,\n): TObj {\n return Object.assign(Object.create(null), obj);\n}\n\nconst asyncIteratorsSupported =\n typeof Symbol === 'function' && !!Symbol.asyncIterator;\n\nexport function isAsyncIterable<TValue>(\n value: unknown,\n): value is AsyncIterable<TValue> {\n return (\n asyncIteratorsSupported && isObject(value) && Symbol.asyncIterator in value\n );\n}\n\n/**\n * Run an IIFE\n */\nexport const run = <TValue>(fn: () => TValue): TValue => fn();\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop(): void {}\n\nexport function identity<T>(it: T): T {\n return it;\n}\n\n/**\n * Generic runtime assertion function. Throws, if the condition is not `true`.\n *\n * Can be used as a slightly less dangerous variant of type assertions. Code\n * mistakes would be revealed at runtime then (hopefully during testing).\n */\nexport function assert(\n condition: boolean,\n msg = 'no additional info',\n): asserts condition {\n if (!condition) {\n throw new Error(`AssertionError: ${msg}`);\n }\n}\n\nexport function sleep(ms = 0): Promise<void> {\n return new Promise<void>((res) => setTimeout(res, ms));\n}\n\n/**\n * Ponyfill for\n * [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).\n */\nexport function abortSignalsAnyPonyfill(signals: AbortSignal[]): AbortSignal {\n if (typeof AbortSignal.any === 'function') {\n return AbortSignal.any(signals);\n }\n\n const ac = new AbortController();\n\n for (const signal of signals) {\n if (signal.aborted) {\n trigger();\n break;\n }\n signal.addEventListener('abort', trigger, { once: true });\n }\n\n return ac.signal;\n\n function trigger() {\n ac.abort();\n for (const signal of signals) {\n signal.removeEventListener('abort', trigger);\n }\n }\n}\n","interface ProxyCallbackOptions {\n path: readonly string[];\n args: readonly unknown[];\n}\ntype ProxyCallback = (opts: ProxyCallbackOptions) => unknown;\n\nconst noop = () => {\n // noop\n};\n\nconst freezeIfAvailable = (obj: object) => {\n if (Object.freeze) {\n Object.freeze(obj);\n }\n};\n\nfunction createInnerProxy(\n callback: ProxyCallback,\n path: readonly string[],\n memo: Record<string, unknown>,\n) {\n const cacheKey = path.join('.');\n\n memo[cacheKey] ??= new Proxy(noop, {\n get(_obj, key) {\n if (typeof key !== 'string' || key === 'then') {\n // special case for if the proxy is accidentally treated\n // like a PromiseLike (like in `Promise.resolve(proxy)`)\n return undefined;\n }\n return createInnerProxy(callback, [...path, key], memo);\n },\n apply(_1, _2, args) {\n const lastOfPath = path[path.length - 1];\n\n let opts = { args, path };\n // special handling for e.g. `trpc.hello.call(this, 'there')` and `trpc.hello.apply(this, ['there'])\n if (lastOfPath === 'call') {\n opts = {\n args: args.length >= 2 ? [args[1]] : [],\n path: path.slice(0, -1),\n };\n } else if (lastOfPath === 'apply') {\n opts = {\n args: args.length >= 2 ? args[1] : [],\n path: path.slice(0, -1),\n };\n }\n freezeIfAvailable(opts.args);\n freezeIfAvailable(opts.path);\n return callback(opts);\n },\n });\n\n return memo[cacheKey];\n}\n\n/**\n * Creates a proxy that calls the callback with the path and arguments\n *\n * @internal\n */\nexport const createRecursiveProxy = <TFaux = unknown>(\n callback: ProxyCallback,\n): TFaux => createInnerProxy(callback, [], Object.create(null)) as TFaux;\n\n/**\n * Used in place of `new Proxy` where each handler will map 1 level deep to another value.\n *\n * @internal\n */\nexport const createFlatProxy = <TFaux>(\n callback: (path: keyof TFaux) => any,\n): TFaux => {\n return new Proxy(noop, {\n get(_obj, name) {\n if (name === 'then') {\n // special case for if the proxy is accidentally treated\n // like a PromiseLike (like in `Promise.resolve(proxy)`)\n return undefined;\n }\n return callback(name as any);\n },\n }) as TFaux;\n};\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import type { AnyRootTypes, RootConfig } from './rootConfig';\nimport type { AnyRouter, inferRouterError } from './router';\nimport type {\n TRPCResponse,\n TRPCResponseMessage,\n TRPCResultMessage,\n} from './rpc';\nimport { isObject } from './utils';\n\n/**\n * @public\n */\nexport interface DataTransformer {\n serialize(object: any): any;\n deserialize(object: any): any;\n}\n\ninterface InputDataTransformer extends DataTransformer {\n /**\n * This function runs **on the client** before sending the data to the server.\n */\n serialize(object: any): any;\n /**\n * This function runs **on the server** to transform the data before it is passed to the resolver\n */\n deserialize(object: any): any;\n}\n\ninterface OutputDataTransformer extends DataTransformer {\n /**\n * This function runs **on the server** before sending the data to the client.\n */\n serialize(object: any): any;\n /**\n * This function runs **only on the client** to transform the data sent from the server.\n */\n deserialize(object: any): any;\n}\n\n/**\n * @public\n */\nexport interface CombinedDataTransformer {\n /**\n * Specify how the data sent from the client to the server should be transformed.\n */\n input: InputDataTransformer;\n /**\n * Specify how the data sent from the server to the client should be transformed.\n */\n output: OutputDataTransformer;\n}\n\n/**\n * @public\n */\nexport type CombinedDataTransformerClient = {\n input: Pick<CombinedDataTransformer['input'], 'serialize'>;\n output: Pick<CombinedDataTransformer['output'], 'deserialize'>;\n};\n\n/**\n * @public\n */\nexport type DataTransformerOptions = CombinedDataTransformer | DataTransformer;\n\n/**\n * @internal\n */\nexport function getDataTransformer(\n transformer: DataTransformerOptions,\n): CombinedDataTransformer {\n if ('input' in transformer) {\n return transformer;\n }\n return { input: transformer, output: transformer };\n}\n\n/**\n * @internal\n */\nexport const defaultTransformer: CombinedDataTransformer = {\n input: { serialize: (obj) => obj, deserialize: (obj) => obj },\n output: { serialize: (obj) => obj, deserialize: (obj) => obj },\n};\n\nfunction transformTRPCResponseItem<\n TResponseItem extends TRPCResponse | TRPCResponseMessage,\n>(config: RootConfig<AnyRootTypes>, item: TResponseItem): TResponseItem {\n if ('error' in item) {\n return {\n ...item,\n error: config.transformer.output.serialize(item.error),\n };\n }\n\n if ('data' in item.result) {\n return {\n ...item,\n result: {\n ...item.result,\n data: config.transformer.output.serialize(item.result.data),\n },\n };\n }\n\n return item;\n}\n\n/**\n * Takes a unserialized `TRPCResponse` and serializes it with the router's transformers\n **/\nexport function transformTRPCResponse<\n TResponse extends\n | TRPCResponse\n | TRPCResponse[]\n | TRPCResponseMessage\n | TRPCResponseMessage[],\n>(config: RootConfig<AnyRootTypes>, itemOrItems: TResponse) {\n return Array.isArray(itemOrItems)\n ? itemOrItems.map((item) => transformTRPCResponseItem(config, item))\n : transformTRPCResponseItem(config, itemOrItems);\n}\n\n// FIXME:\n// - the generics here are probably unnecessary\n// - the RPC-spec could probably be simplified to combine HTTP + WS\n/** @internal */\nfunction transformResultInner<TRouter extends AnyRouter, TOutput>(\n response:\n | TRPCResponse<TOutput, inferRouterError<TRouter>>\n | TRPCResponseMessage<TOutput, inferRouterError<TRouter>>,\n transformer: DataTransformer,\n) {\n if ('error' in response) {\n const error = transformer.deserialize(\n response.error,\n ) as inferRouterError<TRouter>;\n return {\n ok: false,\n error: {\n ...response,\n error,\n },\n } as const;\n }\n\n const result = {\n ...response.result,\n ...((!response.result.type || response.result.type === 'data') && {\n type: 'data',\n data: transformer.deserialize(response.result.data),\n }),\n } as TRPCResultMessage<TOutput>['result'];\n return { ok: true, result } as const;\n}\n\nclass TransformResultError extends Error {\n constructor() {\n super('Unable to transform response from server');\n }\n}\n\n/**\n * Transforms and validates that the result is a valid TRPCResponse\n * @internal\n */\nexport function transformResult<TRouter extends AnyRouter, TOutput>(\n response:\n | TRPCResponse<TOutput, inferRouterError<TRouter>>\n | TRPCResponseMessage<TOutput, inferRouterError<TRouter>>,\n transformer: DataTransformer,\n): ReturnType<typeof transformResultInner> {\n let result: ReturnType<typeof transformResultInner>;\n try {\n // Use the data transformers on the JSON-response\n result = transformResultInner(response, transformer);\n } catch {\n throw new TransformResultError();\n }\n\n // check that output of the transformers is a valid TRPCResponse\n if (\n !result.ok &&\n (!isObject(result.error.error) ||\n typeof result.error.error['code'] !== 'number')\n ) {\n throw new TransformResultError();\n }\n if (result.ok && !isObject(result.result)) {\n throw new TransformResultError();\n }\n return result;\n}\n","import type {\n inferClientTypes,\n InferrableClientTypes,\n Maybe,\n TRPCErrorResponse,\n} from '@trpc/server/unstable-core-do-not-import';\nimport {\n isObject,\n type DefaultErrorShape,\n} from '@trpc/server/unstable-core-do-not-import';\n\ntype inferErrorShape<TInferrable extends InferrableClientTypes> =\n inferClientTypes<TInferrable>['errorShape'];\nexport interface TRPCClientErrorBase<TShape extends DefaultErrorShape> {\n readonly message: string;\n readonly shape: Maybe<TShape>;\n readonly data: Maybe<TShape['data']>;\n}\nexport type TRPCClientErrorLike<TInferrable extends InferrableClientTypes> =\n TRPCClientErrorBase<inferErrorShape<TInferrable>>;\n\nexport function isTRPCClientError<TInferrable extends InferrableClientTypes>(\n cause: unknown,\n): cause is TRPCClientError<TInferrable> {\n return cause instanceof TRPCClientError;\n}\n\nfunction isTRPCErrorResponse(obj: unknown): obj is TRPCErrorResponse<any> {\n return (\n isObject(obj) &&\n isObject(obj['error']) &&\n typeof obj['error']['code'] === 'number' &&\n typeof obj['error']['message'] === 'string'\n );\n}\n\nfunction getMessageFromUnknownError(err: unknown, fallback: string): string {\n if (typeof err === 'string') {\n return err;\n }\n if (isObject(err) && typeof err['message'] === 'string') {\n return err['message'];\n }\n return fallback;\n}\n\nexport class TRPCClientError<TRouterOrProcedure extends InferrableClientTypes>\n extends Error\n implements TRPCClientErrorBase<inferErrorShape<TRouterOrProcedure>>\n{\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore override doesn't work in all environments due to \"This member cannot have an 'override' modifier because it is not declared in the base class 'Error'\"\n public override readonly cause;\n public readonly shape: Maybe<inferErrorShape<TRouterOrProcedure>>;\n public readonly data: Maybe<inferErrorShape<TRouterOrProcedure>['data']>;\n\n /**\n * Additional meta data about the error\n * In the case of HTTP-errors, we'll have `response` and potentially `responseJSON` here\n */\n public meta;\n\n constructor(\n message: string,\n opts?: {\n result?: Maybe<TRPCErrorResponse<inferErrorShape<TRouterOrProcedure>>>;\n cause?: Error;\n meta?: Record<string, unknown>;\n },\n ) {\n const cause = opts?.cause;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore https://github.com/tc39/proposal-error-cause\n super(message, { cause });\n\n this.meta = opts?.meta;\n\n this.cause = cause;\n this.shape = opts?.result?.error;\n this.data = opts?.result?.error.data;\n this.name = 'TRPCClientError';\n\n Object.setPrototypeOf(this, TRPCClientError.prototype);\n }\n\n public static from<TRouterOrProcedure extends InferrableClientTypes>(\n _cause: Error | TRPCErrorResponse<any> | object,\n opts: { meta?: Record<string, unknown> } = {},\n ): TRPCClientError<TRouterOrProcedure> {\n const cause = _cause as unknown;\n\n if (isTRPCClientError(cause)) {\n if (opts.meta) {\n // Decorate with meta error data\n cause.meta = {\n ...cause.meta,\n ...opts.meta,\n };\n }\n return cause;\n }\n if (isTRPCErrorResponse(cause)) {\n return new TRPCClientError(cause.error.message, {\n ...opts,\n result: cause,\n });\n }\n return new TRPCClientError(\n getMessageFromUnknownError(cause, 'Unknown error'),\n {\n ...opts,\n cause: cause as any,\n },\n );\n }\n}\n","import type {\n AnyClientTypes,\n CombinedDataTransformer,\n DataTransformerOptions,\n TypeError,\n} from '@trpc/server/unstable-core-do-not-import';\n\n/**\n * @internal\n */\nexport type CoercedTransformerParameters = {\n transformer?: DataTransformerOptions;\n};\n\ntype TransformerOptionYes = {\n /**\n * Data transformer\n *\n * You must use the same transformer on the backend and frontend\n * @see https://trpc.io/docs/v11/data-transformers\n **/\n transformer: DataTransformerOptions;\n};\ntype TransformerOptionNo = {\n /**\n * Data transformer\n *\n * You must use the same transformer on the backend and frontend\n * @see https://trpc.io/docs/v11/data-transformers\n **/\n transformer?: TypeError<'You must define a transformer on your your `initTRPC`-object first'>;\n};\n\n/**\n * @internal\n */\nexport type TransformerOptions<\n TRoot extends Pick<AnyClientTypes, 'transformer'>,\n> = TRoot['transformer'] extends true\n ? TransformerOptionYes\n : TransformerOptionNo;\n/**\n * @internal\n */\n\n/**\n * @internal\n */\nexport function getTransformer(\n transformer:\n | TransformerOptions<{ transformer: false }>['transformer']\n | TransformerOptions<{ transformer: true }>['transformer']\n | undefined,\n): CombinedDataTransformer {\n const _transformer =\n transformer as CoercedTransformerParameters['transformer'];\n if (!_transformer) {\n return {\n input: {\n serialize: (data) => data,\n deserialize: (data) => data,\n },\n output: {\n serialize: (data) => data,\n deserialize: (data) => data,\n },\n };\n }\n if ('input' in _transformer) {\n return _transformer;\n }\n return {\n input: _transformer,\n output: _transformer,\n };\n}\n","import type { FetchEsque, NativeFetchEsque } from './internals/types';\n\ntype AnyFn = (...args: any[]) => unknown;\n\nconst isFunction = (fn: unknown): fn is AnyFn => typeof fn === 'function';\n\nexport function getFetch(\n customFetchImpl?: FetchEsque | NativeFetchEsque,\n): FetchEsque {\n if (customFetchImpl) {\n return customFetchImpl as FetchEsque;\n }\n\n if (typeof window !== 'undefined' && isFunction(window.fetch)) {\n return window.fetch as FetchEsque;\n }\n\n if (typeof globalThis !== 'undefined' && isFunction(globalThis.fetch)) {\n return globalThis.fetch as FetchEsque;\n }\n\n throw new Error('No fetch implementation found');\n}\n","import type {\n AnyClientTypes,\n CombinedDataTransformer,\n Maybe,\n ProcedureType,\n TRPCAcceptHeader,\n TRPCResponse,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { getFetch } from '../../getFetch';\nimport type {\n FetchEsque,\n RequestInitEsque,\n ResponseEsque,\n} from '../../internals/types';\nimport type { TransformerOptions } from '../../unstable-internals';\nimport { getTransformer } from '../../unstable-internals';\nimport type { HTTPHeaders } from '../types';\n\n/**\n * @internal\n */\nexport type HTTPLinkBaseOptions<\n TRoot extends Pick<AnyClientTypes, 'transformer'>,\n> = {\n url: string | URL;\n /**\n * Add ponyfill for fetch\n */\n fetch?: FetchEsque;\n /**\n * Send all requests `as POST`s requests regardless of the procedure type\n * The HTTP handler must separately allow overriding the method. See:\n * @see https://trpc.io/docs/rpc\n */\n methodOverride?: 'POST';\n} & TransformerOptions<TRoot>;\n\nexport interface ResolvedHTTPLinkOptions {\n url: string;\n fetch?: FetchEsque;\n transformer: CombinedDataTransformer;\n methodOverride?: 'POST';\n}\n\nexport function resolveHTTPLinkOptions(\n opts: HTTPLinkBaseOptions<AnyClientTypes>,\n): ResolvedHTTPLinkOptions {\n return {\n url: opts.url.toString(),\n fetch: opts.fetch,\n transformer: getTransformer(opts.transformer),\n methodOverride: opts.methodOverride,\n };\n}\n\n// https://github.com/trpc/trpc/pull/669\nfunction arrayToDict(array: unknown[]) {\n const dict: Record<number, unknown> = {};\n for (let index = 0; index < array.length; index++) {\n const element = array[index];\n dict[index] = element;\n }\n return dict;\n}\n\nconst METHOD = {\n query: 'GET',\n mutation: 'POST',\n subscription: 'PATCH',\n} as const;\n\nexport interface HTTPResult {\n json: TRPCResponse;\n meta: {\n response: ResponseEsque;\n responseJSON?: unknown;\n };\n}\n\ntype GetInputOptions = {\n transformer: CombinedDataTransformer;\n} & ({ input: unknown } | { inputs: unknown[] });\n\nexport function getInput(opts: GetInputOptions) {\n return 'input' in opts\n ? opts.transformer.input.serialize(opts.input)\n : arrayToDict(\n opts.inputs.map((_input) => opts.transformer.input.serialize(_input)),\n );\n}\n\nexport type HTTPBaseRequestOptions = GetInputOptions &\n ResolvedHTTPLinkOptions & {\n type: ProcedureType;\n path: string;\n signal: Maybe<AbortSignal>;\n };\n\ntype GetUrl = (opts: HTTPBaseRequestOptions) => string;\ntype GetBody = (opts: HTTPBaseRequestOptions) => RequestInitEsque['body'];\n\nexport type ContentOptions = {\n trpcAcceptHeader?: TRPCAcceptHeader;\n contentTypeHeader?: string;\n getUrl: GetUrl;\n getBody: GetBody;\n};\n\nexport const getUrl: GetUrl = (opts) => {\n const parts = opts.url.split('?') as [string, string?];\n const base = parts[0].replace(/\\/$/, ''); // Remove any trailing slashes\n\n let url = base + '/' + opts.path;\n const queryParts: string[] = [];\n\n if (parts[1]) {\n queryParts.push(parts[1]);\n }\n if ('inputs' in opts) {\n queryParts.push('batch=1');\n }\n if (opts.type === 'query' || opts.type === 'subscription') {\n const input = getInput(opts);\n if (input !== undefined && opts.methodOverride !== 'POST') {\n queryParts.push(`input=${encodeURIComponent(JSON.stringify(input))}`);\n }\n }\n if (queryParts.length) {\n url += '?' + queryParts.join('&');\n }\n return url;\n};\n\nexport const getBody: GetBody = (opts) => {\n if (opts.type === 'query' && opts.methodOverride !== 'POST') {\n return undefined;\n }\n const input = getInput(opts);\n return input !== undefined ? JSON.stringify(input) : undefined;\n};\n\nexport type Requester = (\n opts: HTTPBaseRequestOptions & {\n headers: () => HTTPHeaders | Promise<HTTPHeaders>;\n },\n) => Promise<HTTPResult>;\n\nexport const jsonHttpRequester: Requester = (opts) => {\n return httpRequest({\n ...opts,\n contentTypeHeader: 'application/json',\n getUrl,\n getBody,\n });\n};\n\n/**\n * Polyfill for DOMException with AbortError name\n */\nclass AbortError extends Error {\n constructor() {\n const name = 'AbortError';\n super(name);\n this.name = name;\n this.message = name;\n }\n}\n\nexport type HTTPRequestOptions = ContentOptions &\n HTTPBaseRequestOptions & {\n headers: () => HTTPHeaders | Promise<HTTPHeaders>;\n };\n\n/**\n * Polyfill for `signal.throwIfAborted()`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/throwIfAborted\n */\nconst throwIfAborted = (signal: Maybe<AbortSignal>) => {\n if (!signal?.aborted) {\n return;\n }\n // If available, use the native implementation\n signal.throwIfAborted?.();\n\n // If we have `DOMException`, use it\n if (typeof DOMException !== 'undefined') {\n throw new DOMException('AbortError', 'AbortError');\n }\n\n // Otherwise, use our own implementation\n throw new AbortError();\n};\n\nexport async function fetchHTTPResponse(opts: HTTPRequestOptions) {\n throwIfAborted(opts.signal);\n\n const url = opts.getUrl(opts);\n const body = opts.getBody(opts);\n const method = opts.methodOverride ?? METHOD[opts.type];\n const resolvedHeaders = await (async () => {\n const heads = await opts.headers();\n if (Symbol.iterator in heads) {\n return Object.fromEntries(heads);\n }\n return heads;\n })();\n const headers = {\n ...(opts.contentTypeHeader && method !== 'GET'\n ? { 'content-type': opts.contentTypeHeader }\n : {}),\n ...(opts.trpcAcceptHeader\n ? { 'trpc-accept': opts.trpcAcceptHeader }\n : undefined),\n ...resolvedHeaders,\n };\n\n return getFetch(opts.fetch)(url, {\n method,\n signal: opts.signal,\n body,\n headers,\n });\n}\n\nexport async function httpRequest(\n opts: HTTPRequestOptions,\n): Promise<HTTPResult> {\n const meta = {} as HTTPResult['meta'];\n\n const res = await fetchHTTPResponse(opts);\n meta.response = res;\n\n const json = await res.json();\n\n meta.responseJSON = json;\n\n return {\n json: json as TRPCResponse,\n meta,\n };\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n\ntype BatchItem<TKey, TValue> = {\n aborted: boolean;\n key: TKey;\n resolve: ((value: TValue) => void) | null;\n reject: ((error: Error) => void) | null;\n batch: Batch<TKey, TValue> | null;\n};\ntype Batch<TKey, TValue> = {\n items: BatchItem<TKey, TValue>[];\n};\nexport type BatchLoader<TKey, TValue> = {\n validate: (keys: TKey[]) => boolean;\n fetch: (keys: TKey[]) => Promise<TValue[] | Promise<TValue>[]>;\n};\n\n/**\n * A function that should never be called unless we messed something up.\n */\nconst throwFatalError = () => {\n throw new Error(\n 'Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new',\n );\n};\n\n/**\n * Dataloader that's very inspired by https://github.com/graphql/dataloader\n * Less configuration, no caching, and allows you to cancel requests\n * When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled\n */\nexport function dataLoader<TKey, TValue>(\n batchLoader: BatchLoader<TKey, TValue>,\n) {\n let pendingItems: BatchItem<TKey, TValue>[] | null = null;\n let dispatchTimer: ReturnType<typeof setTimeout> | null = null;\n\n const destroyTimerAndPendingItems = () => {\n clearTimeout(dispatchTimer as any);\n dispatchTimer = null;\n pendingItems = null;\n };\n\n /**\n * Iterate through the items and split them into groups based on the `batchLoader`'s validate function\n */\n function groupItems(items: BatchItem<TKey, TValue>[]) {\n const groupedItems: BatchItem<TKey, TValue>[][] = [[]];\n let index = 0;\n while (true) {\n const item = items[index];\n if (!item) {\n // we're done\n break;\n }\n const lastGroup = groupedItems[groupedItems.length - 1]!;\n\n if (item.aborted) {\n // Item was aborted before it was dispatched\n item.reject?.(new Error('Aborted'));\n index++;\n continue;\n }\n\n const isValid = batchLoader.validate(\n lastGroup.concat(item).map((it) => it.key),\n );\n\n if (isValid) {\n lastGroup.push(item);\n index++;\n continue;\n }\n\n if (lastGroup.length === 0) {\n item.reject?.(new Error('Input is too big for a single dispatch'));\n index++;\n continue;\n }\n // Create new group, next iteration will try to add the item to that\n groupedItems.push([]);\n }\n return groupedItems;\n }\n\n function dispatch() {\n const groupedItems = groupItems(pendingItems!);\n destroyTimerAndPendingItems();\n\n // Create batches for each group of items\n for (const items of groupedItems) {\n if (!items.length) {\n continue;\n }\n const batch: Batch<TKey, TValue> = {\n items,\n };\n for (const item of items) {\n item.batch = batch;\n }\n const promise = batchLoader.fetch(batch.items.map((_item) => _item.key));\n\n promise\n .then(async (result) => {\n await Promise.all(\n result.map(async (valueOrPromise, index) => {\n const item = batch.items[index]!;\n try {\n const value = await Promise.resolve(valueOrPromise);\n\n item.resolve?.(value);\n } catch (cause) {\n item.reject?.(cause as Error);\n }\n\n item.batch = null;\n item.reject = null;\n item.resolve = null;\n }),\n );\n\n for (const item of batch.items) {\n item.reject?.(new Error('Missing result'));\n item.batch = null;\n }\n })\n .catch((cause) => {\n for (const item of batch.items) {\n item.reject?.(cause);\n item.batch = null;\n }\n });\n }\n }\n function load(key: TKey): Promise<TValue> {\n const item: BatchItem<TKey, TValue> = {\n aborted: false,\n key,\n batch: null,\n resolve: throwFatalError,\n reject: throwFatalError,\n };\n\n const promise = new Promise<TValue>((resolve, reject) => {\n item.reject = reject;\n item.resolve = resolve;\n\n pendingItems ??= [];\n pendingItems.push(item);\n });\n\n dispatchTimer ??= setTimeout(dispatch);\n\n return promise;\n }\n\n return {\n load,\n };\n}\n","import type { Maybe } from '@trpc/server/unstable-core-do-not-import';\n\n/**\n * Like `Promise.all()` but for abort signals\n * - When all signals have been aborted, the merged signal will be aborted\n * - If one signal is `null`, no signal will be aborted\n */\nexport function allAbortSignals(...signals: Maybe<AbortSignal>[]): AbortSignal {\n const ac = new AbortController();\n\n const count = signals.length;\n\n let abortedCount = 0;\n\n const onAbort = () => {\n if (++abortedCount === count) {\n ac.abort();\n }\n };\n\n for (const signal of signals) {\n if (signal?.aborted) {\n onAbort();\n } else {\n signal?.addEventListener('abort', onAbort, {\n once: true,\n });\n }\n }\n\n return ac.signal;\n}\n\n/**\n * Like `Promise.race` but for abort signals\n *\n * Basically, a ponyfill for\n * [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).\n */\nexport function raceAbortSignals(\n ...signals: Maybe<AbortSignal>[]\n): AbortSignal {\n const ac = new AbortController();\n\n for (const signal of signals) {\n if (signal?.aborted) {\n ac.abort();\n } else {\n signal?.addEventListener('abort', () => ac.abort(), { once: true });\n }\n }\n\n return ac.signal;\n}\n\nexport function abortSignalToPromise(signal: AbortSignal): Promise<never> {\n return new Promise((_, reject) => {\n if (signal.aborted) {\n reject(signal.reason);\n return;\n }\n signal.addEventListener(\n 'abort',\n () => {\n reject(signal.reason);\n },\n { once: true },\n );\n });\n}\n","import type { AnyRouter, ProcedureType } from '@trpc/server';\nimport { observable } from '@trpc/server/observable';\nimport { transformResult } from '@trpc/server/unstable-core-do-not-import';\nimport type { BatchLoader } from '../internals/dataLoader';\nimport { dataLoader } from '../internals/dataLoader';\nimport { allAbortSignals } from '../internals/signals';\nimport type { NonEmptyArray } from '../internals/types';\nimport { TRPCClientError } from '../TRPCClientError';\nimport type { HTTPBatchLinkOptions } from './HTTPBatchLinkOptions';\nimport type { HTTPResult } from './internals/httpUtils';\nimport {\n getUrl,\n jsonHttpRequester,\n resolveHTTPLinkOptions,\n} from './internals/httpUtils';\nimport type { Operation, TRPCLink } from './types';\n\n/**\n * @see https://trpc.io/docs/client/links/httpBatchLink\n */\nexport function httpBatchLink<TRouter extends AnyRouter>(\n opts: HTTPBatchLinkOptions<TRouter['_def']['_config']['$types']>,\n): TRPCLink<TRouter> {\n const resolvedOpts = resolveHTTPLinkOptions(opts);\n const maxURLLength = opts.maxURLLength ?? Infinity;\n const maxItems = opts.maxItems ?? Infinity;\n\n return () => {\n const batchLoader = (\n type: ProcedureType,\n ): BatchLoader<Operation, HTTPResult> => {\n return {\n validate(batchOps) {\n if (maxURLLength === Infinity && maxItems === Infinity) {\n // escape hatch for quick calcs\n return true;\n }\n if (batchOps.length > maxItems) {\n return false;\n }\n const path = batchOps.map((op) => op.path).join(',');\n const inputs = batchOps.map((op) => op.input);\n\n const url = getUrl({\n ...resolvedOpts,\n type,\n path,\n inputs,\n signal: null,\n });\n\n return url.length <= maxURLLength;\n },\n async fetch(batchOps) {\n const path = batchOps.map((op) => op.path).join(',');\n const inputs = batchOps.map((op) => op.input);\n const signal = allAbortSignals(...batchOps.map((op) => op.signal));\n\n const res = await jsonHttpRequester({\n ...resolvedOpts,\n path,\n inputs,\n type,\n headers() {\n if (!opts.headers) {\n return {};\n }\n if (typeof opts.headers === 'function') {\n return opts.headers({\n opList: batchOps as NonEmptyArray<Operation>,\n });\n }\n return opts.headers;\n },\n signal,\n });\n const resJSON = Array.isArray(res.json)\n ? res.json\n : batchOps.map(() => res.json);\n const result = resJSON.map((item) => ({\n meta: res.meta,\n json: item,\n }));\n return result;\n },\n };\n };\n\n const query = dataLoader(batchLoader('query'));\n const mutation = dataLoader(batchLoader('mutation'));\n\n const loaders = { query, mutation };\n return ({ op }) => {\n return observable((observer) => {\n /* istanbul ignore if -- @preserve */\n if (op.type === 'subscription') {\n throw new Error(\n 'Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`',\n );\n }\n const loader = loaders[op.type];\n const promise = loader.load(op);\n\n let _res = undefined as HTTPResult | undefined;\n promise\n .then((res) => {\n _res = res;\n const transformed = transformResult(\n res.json,\n resolvedOpts.transformer.output,\n );\n\n if (!transformed.ok) {\n observer.error(\n TRPCClientError.from(transformed.error, {\n meta: res.meta,\n }),\n );\n return;\n }\n observer.next({\n context: res.meta,\n result: transformed.result,\n });\n observer.complete();\n })\n .catch((err) => {\n observer.error(\n TRPCClientError.from(err, {\n meta: _res?.meta,\n }),\n );\n });\n\n return () => {\n // noop\n };\n });\n };\n };\n}\n","import { type TRPCRequestInfo } from '@trpc/server/http';\n\n/**\n * Get the result of a value or function that returns a value\n * It also optionally accepts typesafe arguments for the function\n */\nexport const resultOf = <T, TArgs extends any[]>(\n value: T | ((...args: TArgs) => T),\n ...args: TArgs\n): T => {\n return typeof value === 'function'\n ? (value as (...args: TArgs) => T)(...args)\n : value;\n};\n\n/**\n * A value that can be wrapped in callback\n */\nexport type CallbackOrValue<T> = T | (() => T | Promise<T>);\n\nexport interface UrlOptionsWithConnectionParams {\n /**\n * The URL to connect to (can be a function that returns a URL)\n */\n url: CallbackOrValue<string>;\n\n /**\n * Connection params that are available in `createContext()`\n * - For `wsLink`/`wsClient`, these are sent as the first message\n * - For `httpSubscriptionLink`, these are serialized as part of the URL under the `connectionParams` query\n */\n connectionParams?: CallbackOrValue<TRPCRequestInfo['connectionParams']>;\n}\n","import type {\n TRPCConnectionParamsMessage,\n TRPCRequestInfo,\n} from '@trpc/server/unstable-core-do-not-import';\nimport type {\n CallbackOrValue,\n UrlOptionsWithConnectionParams,\n} from '../../internals/urlWithConnectionParams';\nimport { resultOf } from '../../internals/urlWithConnectionParams';\n\nexport class TRPCWebSocketClosedError extends Error {\n constructor(opts: { message: string; cause?: unknown }) {\n super(opts.message, {\n cause: opts.cause,\n });\n this.name = 'TRPCWebSocketClosedError';\n Object.setPrototypeOf(this, TRPCWebSocketClosedError.prototype);\n }\n}\n\n/**\n * Utility class for managing a timeout that can be started, stopped, and reset.\n * Useful for scenarios where the timeout duration is reset dynamically based on events.\n */\nexport class ResettableTimeout {\n private timeout: ReturnType<typeof setTimeout> | undefined;\n\n constructor(\n private readonly onTimeout: () => void,\n private readonly timeoutMs: number,\n ) {}\n\n /**\n * Resets the current timeout, restarting it with the same duration.\n * Does nothing if no timeout is active.\n */\n public reset() {\n if (!this.timeout) return;\n\n clearTimeout(this.timeout);\n this.timeout = setTimeout(this.onTimeout, this.timeoutMs);\n }\n\n public start() {\n clearTimeout(this.timeout);\n this.timeout = setTimeout(this.onTimeout, this.timeoutMs);\n }\n\n public stop() {\n clearTimeout(this.timeout);\n this.timeout = undefined;\n }\n}\n\n// Ponyfill for Promise.withResolvers https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers\nexport function withResolvers<T>() {\n let resolve: (value: T | PromiseLike<T>) => void;\n let reject: (reason?: any) => void;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return { promise, resolve: resolve!, reject: reject! };\n}\n\n/**\n * Resolves a WebSocket URL and optionally appends connection parameters.\n *\n * If connectionParams are provided, appends 'connectionParams=1' query parameter.\n */\nexport async function prepareUrl(urlOptions: UrlOptionsWithConnectionParams) {\n const url = await resultOf(urlOptions.url);\n\n if (!urlOptions.connectionParams) return url;\n\n // append `?connectionParams=1` when connection params are used\n const prefix = url.includes('?') ? '&' : '?';\n const connectionParams = `${prefix}connectionParams=1`;\n\n return url + connectionParams;\n}\n\nexport async function buildConnectionMessage(\n connectionParams: CallbackOrValue<TRPCRequestInfo['connectionParams']>,\n) {\n const message: TRPCConnectionParamsMessage = {\n method: 'connectionParams',\n data: await resultOf(connectionParams),\n };\n\n return JSON.stringify(message);\n}\n","import { behaviorSubject } from '@trpc/server/observable';\nimport type { UrlOptionsWithConnectionParams } from '../../internals/urlWithConnectionParams';\nimport { buildConnectionMessage, prepareUrl, withResolvers } from './utils';\n\n/**\n * Opens a WebSocket connection asynchronously and returns a promise\n * that resolves when the connection is successfully established.\n * The promise rejects if an error occurs during the connection attempt.\n */\nfunction asyncWsOpen(ws: WebSocket) {\n const { promise, resolve, reject } = withResolvers<void>();\n\n ws.addEventListener('open', () => {\n ws.removeEventListener('error', reject);\n resolve();\n });\n ws.addEventListener('error', reject);\n\n return promise;\n}\n\ninterface PingPongOptions {\n /**\n * The interval (in milliseconds) between \"PING\" messages.\n */\n intervalMs: number;\n\n /**\n * The timeout (in milliseconds) to wait for a \"PONG\" response before closing the connection.\n */\n pongTimeoutMs: number;\n}\n\n/**\n * Sets up a periodic ping-pong mechanism to keep the WebSocket connection alive.\n *\n * - Sends \"PING\" messages at regular intervals defined by `intervalMs`.\n * - If a \"PONG\" response is not received within the `pongTimeoutMs`, the WebSocket is closed.\n * - The ping timer resets upon receiving any message to maintain activity.\n * - Automatically starts the ping process when the WebSocket connection is opened.\n * - Cleans up timers when the WebSocket is closed.\n *\n * @param ws - The WebSocket instance to manage.\n * @param options - Configuration options for ping-pong intervals and timeouts.\n */\nfunction setupPingInterval(\n ws: WebSocket,\n { intervalMs, pongTimeoutMs }: PingPongOptions,\n) {\n let pingTimeout: ReturnType<typeof setTimeout> | undefined;\n let pongTimeout: ReturnType<typeof setTimeout> | undefined;\n\n function start() {\n pingTimeout = setTimeout(() => {\n ws.send('PING');\n pongTimeout = setTimeout(() => {\n ws.close();\n }, pongTimeoutMs);\n }, intervalMs);\n }\n\n function reset() {\n clearTimeout(pingTimeout);\n start();\n }\n\n function pong() {\n clearTimeout(pongTimeout);\n reset();\n }\n\n ws.addEventListener('open', start);\n ws.addEventListener('message', ({ data }) => {\n clearTimeout(pingTimeout);\n start();\n\n if (data === 'PONG') {\n pong();\n }\n });\n ws.addEventListener('close', () => {\n clearTimeout(pingTimeout);\n clearTimeout(pongTimeout);\n });\n}\n\nexport interface WebSocketConnectionOptions {\n WebSocketPonyfill?: typeof WebSocket;\n urlOptions: UrlOptionsWithConnectionParams;\n keepAlive: PingPongOptions & {\n enabled: boolean;\n };\n}\n\n/**\n * Manages a WebSocket connection with support for reconnection, keep-alive mechanisms,\n * and observable state tracking.\n */\nexport class WsConnection {\n static connectCount = 0;\n public id = ++WsConnection.connectCount;\n\n private readonly WebSocketPonyfill: typeof WebSocket;\n private readonly urlOptions: UrlOptionsWithConnectionParams;\n private readonly keepAliveOpts: WebSocketConnectionOptions['keepAlive'];\n public readonly wsObservable = behaviorSubject<WebSocket | null>(null);\n\n constructor(opts: WebSocketConnectionOptions) {\n this.WebSocketPonyfill = opts.WebSocketPonyfill ?? WebSocket;\n if (!this.WebSocketPonyfill) {\n throw new Error(\n \"No WebSocket implementation found - you probably don't want to use this on the server, but if you do you need to pass a `WebSocket`-ponyfill\",\n );\n }\n\n this.urlOptions = opts.urlOptions;\n this.keepAliveOpts = opts.keepAlive;\n }\n\n public get ws() {\n return this.wsObservable.get();\n }\n\n private set ws(ws) {\n this.wsObservable.next(ws);\n }\n\n /**\n * Checks if the WebSocket connection is open and ready to communicate.\n */\n public isOpen(): this is { ws: WebSocket } {\n return (\n !!this.ws &&\n this.ws.readyState === this.WebSocketPonyfill.OPEN &&\n !this.openPromise\n );\n }\n\n /**\n * Checks if the WebSocket connection is closed or in the process of closing.\n */\n public isClosed(): this is { ws: WebSocket } {\n return (\n !!this.ws &&\n (this.ws.readyState === this.WebSocketPonyfill.CLOSING ||\n this.ws.readyState === this.WebSocketPonyfill.CLOSED)\n );\n }\n\n /**\n * Manages the WebSocket opening process, ensuring that only one open operation\n * occurs at a time. Tracks the ongoing operation with `openPromise` to avoid\n * redundant calls and ensure proper synchronization.\n *\n * Sets up the keep-alive mechanism and necessary event listeners for the connection.\n *\n * @returns A promise that resolves once the WebSocket connection is successfully opened.\n */\n private openPromise: Promise<void> | null = null;\n public async open() {\n if (this.openPromise) return this.openPromise;\n\n this.id = ++WsConnection.connectCount;\n const wsPromise = prepareUrl(this.urlOptions).then(\n (url) => new this.WebSocketPonyfill(url),\n );\n this.openPromise = wsPromise.then(async (ws) => {\n this.ws = ws;\n\n // Setup ping listener\n ws.addEventListener('message', function ({ data }) {\n if (data === 'PING') {\n this.send('PONG');\n }\n });\n\n if (this.keepAliveOpts.enabled) {\n setupPingInterval(ws, this.keepAliveOpts);\n }\n\n ws.addEventListener('close', () => {\n if (this.ws === ws) {\n this.ws = null;\n }\n });\n\n await asyncWsOpen(ws);\n\n if (this.urlOptions.connectionParams) {\n ws.send(await buildConnectionMessage(this.urlOptions.connectionParams));\n }\n });\n\n try {\n await this.openPromise;\n } finally {\n this.openPromise = null;\n }\n }\n\n /**\n * Closes the WebSocket connection gracefully.\n * Waits for any ongoing open operation to complete before closing.\n */\n public async close() {\n try {\n await this.openPromise;\n } finally {\n this.ws?.close();\n }\n }\n}\n\n/**\n * Provides a backward-compatible representation of the connection state.\n */\nexport function backwardCompatibility(connection: WsConnection) {\n if (connection.isOpen()) {\n return {\n id: connection.id,\n state: 'open',\n ws: connection.ws,\n } as const;\n }\n\n if (connection.isClosed()) {\n return {\n id: connection.id,\n state: 'closed',\n ws: connection.ws,\n } as const;\n }\n\n if (!connection.ws) {\n return null;\n }\n\n return {\n id: connection.id,\n state: 'connecting',\n ws: connection.ws,\n } as const;\n}\n","import type {\n inferObservableValue,\n Unsubscribable,\n} from '@trpc/server/observable';\nimport { observableToPromise, share } from '@trpc/server/observable';\nimport type {\n AnyRouter,\n inferAsyncIterableYield,\n InferrableClientTypes,\n Maybe,\n TypeError,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { createChain } from '../links/internals/createChain';\nimport type { TRPCConnectionState } from '../links/internals/subscriptions';\nimport type {\n OperationContext,\n OperationLink,\n TRPCClientRuntime,\n TRPCLink,\n} from '../links/types';\nimport { TRPCClientError } from '../TRPCClientError';\n\ntype TRPCType = 'mutation' | 'query' | 'subscription';\nexport interface TRPCRequestOptions {\n /**\n * Pass additional context to links\n */\n context?: OperationContext;\n signal?: AbortSignal;\n}\n\nexport interface TRPCSubscriptionObserver<TValue, TError> {\n onStarted: (opts: { context: OperationContext | undefined }) => void;\n onData: (value: inferAsyncIterableYield<TValue>) => void;\n onError: (err: TError) => void;\n onStopped: () => void;\n onComplete: () => void;\n onConnectionStateChange: (state: TRPCConnectionState<TError>) => void;\n}\n\n/** @internal */\nexport type CreateTRPCClientOptions<TRouter extends InferrableClientTypes> = {\n links: TRPCLink<TRouter>[];\n transformer?: TypeError<'The transformer property has moved to httpLink/httpBatchLink/wsLink'>;\n};\n\nexport class TRPCUntypedClient<TInferrable extends InferrableClientTypes> {\n private readonly links: OperationLink<TInferrable>[];\n public readonly runtime: TRPCClientRuntime;\n private requestId: number;\n\n constructor(opts: CreateTRPCClientOptions<TInferrable>) {\n this.requestId = 0;\n\n this.runtime = {};\n\n // Initialize the links\n this.links = opts.links.map((link) => link(this.runtime));\n }\n\n private $request<TInput = unknown, TOutput = unknown>(opts: {\n type: TRPCType;\n input: TInput;\n path: string;\n context?: OperationContext;\n signal: Maybe<AbortSignal>;\n }) {\n const chain$ = createChain<AnyRouter, TInput, TOutput>({\n links: this.links as OperationLink<any, any, any>[],\n op: {\n ...opts,\n context: opts.context ?? {},\n id: ++this.requestId,\n },\n });\n return chain$.pipe(share());\n }\n\n private async requestAsPromise<TInput = unknown, TOutput = unknown>(opts: {\n type: TRPCType;\n input: TInput;\n path: string;\n context?: OperationContext;\n signal: Maybe<AbortSignal>;\n }): Promise<TOutput> {\n try {\n const req$ = this.$request<TInput, TOutput>(opts);\n type TValue = inferObservableValue<typeof req$>;\n\n const envelope = await observableToPromise<TValue>(req$);\n const data = (envelope.result as any).data;\n return data;\n } catch (err) {\n throw TRPCClientError.from(err as Error);\n }\n }\n public query(path: string, input?: unknown, opts?: TRPCRequestOptions) {\n return this.requestAsPromise<unknown, unknown>({\n type: 'query',\n path,\n input,\n context: opts?.context,\n signal: opts?.signal,\n });\n }\n public mutation(path: string, input?: unknown, opts?: TRPCRequestOptions) {\n return this.requestAsPromise<unknown, unknown>({\n type: 'mutation',\n path,\n input,\n context: opts?.context,\n signal: opts?.signal,\n });\n }\n public subscription(\n path: string,\n input: unknown,\n opts: Partial<\n TRPCSubscriptionObserver<unknown, TRPCClientError<AnyRouter>>\n > &\n TRPCRequestOptions,\n ): Unsubscribable {\n const observable$ = this.$request({\n type: 'subscription',\n path,\n input,\n context: opts.context,\n signal: opts.signal,\n });\n return observable$.subscribe({\n next(envelope) {\n switch (envelope.result.type) {\n case 'state': {\n opts.onConnectionStateChange?.(envelope.result);\n break;\n }\n case 'started': {\n opts.onStarted?.({\n context: envelope.context,\n });\n break;\n }\n case 'stopped': {\n opts.onStopped?.();\n break;\n }\n case 'data':\n case undefined: {\n opts.onData?.(envelope.result.data);\n break;\n }\n }\n },\n error(err) {\n opts.onError?.(err);\n },\n complete() {\n opts.onComplete?.();\n },\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport type { Unsubscribable } from '@trpc/server/observable';\nimport type {\n AnyProcedure,\n AnyRouter,\n inferClientTypes,\n inferProcedureInput,\n InferrableClientTypes,\n inferTransformedProcedureOutput,\n ProcedureType,\n RouterRecord,\n} from '@trpc/server/unstable-core-do-not-import';\nimport {\n createFlatProxy,\n createRecursiveProxy,\n} from '@trpc/server/unstable-core-do-not-import';\nimport type { CreateTRPCClientOptions } from './createTRPCUntypedClient';\nimport type { TRPCSubscriptionObserver } from './internals/TRPCUntypedClient';\nimport { TRPCUntypedClient } from './internals/TRPCUntypedClient';\nimport type { TRPCProcedureOptions } from './internals/types';\nimport type { TRPCClientError } from './TRPCClientError';\n\n/**\n * @public\n * @deprecated use {@link TRPCClient} instead, will be removed in v12\n **/\nexport type inferRouterClient<TRouter extends AnyRouter> = TRPCClient<TRouter>;\n\n/**\n * @public\n * @deprecated use {@link TRPCClient} instead, will be removed in v12\n **/\nexport type CreateTRPCClient<TRouter extends AnyRouter> = TRPCClient<TRouter>;\n\nconst untypedClientSymbol = Symbol.for('trpc_untypedClient');\n\n/**\n * @public\n **/\nexport type TRPCClient<TRouter extends AnyRouter> = DecoratedProcedureRecord<\n {\n transformer: TRouter['_def']['_config']['$types']['transformer'];\n errorShape: TRouter['_def']['_config']['$types']['errorShape'];\n },\n TRouter['_def']['record']\n> & {\n [untypedClientSymbol]: TRPCUntypedClient<TRouter>;\n};\n\ntype ResolverDef = {\n input: any;\n output: any;\n transformer: boolean;\n errorShape: any;\n};\n\ntype coerceAsyncGeneratorToIterable<T> =\n T extends AsyncGenerator<infer $T, infer $Return, infer $Next>\n ? AsyncIterable<$T, $Return, $Next>\n : T;\n\n/** @internal */\nexport type Resolver<TDef extends ResolverDef> = (\n input: TDef['input'],\n opts?: TRPCProcedureOptions,\n) => Promise<coerceAsyncGeneratorToIterable<TDef['output']>>;\n\ntype SubscriptionResolver<TDef extends ResolverDef> = (\n input: TDef['input'],\n opts: Partial<\n TRPCSubscriptionObserver<TDef['output'], TRPCClientError<TDef>>\n > &\n TRPCProcedureOptions,\n) => Unsubscribable;\n\ntype DecorateProcedure<\n TType extends ProcedureType,\n TDef extends ResolverDef,\n> = TType extends 'query'\n ? {\n query: Resolver<TDef>;\n }\n : TType extends 'mutation'\n ? {\n mutate: Resolver<TDef>;\n }\n : TType extends 'subscription'\n ? {\n subscribe: SubscriptionResolver<TDef>;\n }\n : never;\n\n/**\n * @internal\n */\ntype DecoratedProcedureRecord<\n TRoot extends InferrableClientTypes,\n TRecord extends RouterRecord,\n> = {\n [TKey in keyof TRecord]: TRecord[TKey] extends infer $Value\n ? $Value extends AnyProcedure\n ? DecorateProcedure<\n $Value['_def']['type'],\n {\n input: inferProcedureInput<$Value>;\n output: inferTransformedProcedureOutput<\n inferClientTypes<TRoot>,\n $Value\n >;\n errorShape: inferClientTypes<TRoot>['errorShape'];\n transformer: inferClientTypes<TRoot>['transformer'];\n }\n >\n : $Value extends RouterRecord\n ? DecoratedProcedureRecord<TRoot, $Value>\n : never\n : never;\n};\n\nconst clientCallTypeMap: Record<\n keyof DecorateProcedure<any, any>,\n ProcedureType\n> = {\n query: 'query',\n mutate: 'mutation',\n subscribe: 'subscription',\n};\n\n/** @internal */\nexport const clientCallTypeToProcedureType = (\n clientCallType: string,\n): ProcedureType => {\n return clientCallTypeMap[clientCallType as keyof typeof clientCallTypeMap];\n};\n\n/**\n * @internal\n */\nexport function createTRPCClientProxy<TRouter extends AnyRouter>(\n client: TRPCUntypedClient<TRouter>,\n): TRPCClient<TRouter> {\n const proxy = createRecursiveProxy<TRPCClient<TRouter>>(({ path, args }) => {\n const pathCopy = [...path];\n const procedureType = clientCallTypeToProcedureType(pathCopy.pop()!);\n\n const fullPath = pathCopy.join('.');\n\n return (client[procedureType] as any)(fullPath, ...(args as any));\n });\n return createFlatProxy<TRPCClient<TRouter>>((key) => {\n if (key === untypedClientSymbol) {\n return client;\n }\n return proxy[key];\n });\n}\n\nexport function createTRPCClient<TRouter extends AnyRouter>(\n opts: CreateTRPCClientOptions<TRouter>,\n): TRPCClient<TRouter> {\n const client = new TRPCUntypedClient(opts);\n const proxy = createTRPCClientProxy<TRouter>(client);\n return proxy;\n}\n\n/**\n * Get an untyped client from a proxy client\n * @internal\n */\nexport function getUntypedClient<TRouter extends AnyRouter>(\n client: TRPCClient<TRouter>,\n): TRPCUntypedClient<TRouter> {\n return client[untypedClientSymbol];\n}\n","function _asyncIterator(r) {\n var n,\n t,\n o,\n e = 2;\n for (\"undefined\" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) {\n if (t && null != (n = r[t])) return n.call(r);\n if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));\n t = \"@@asyncIterator\", o = \"@@iterator\";\n }\n throw new TypeError(\"Object is not async iterable\");\n}\nfunction AsyncFromSyncIterator(r) {\n function AsyncFromSyncIteratorContinuation(r) {\n if (Object(r) !== r) return Promise.reject(new TypeError(r + \" is not an object.\"));\n var n = r.done;\n return Promise.resolve(r.value).then(function (r) {\n return {\n value: r,\n done: n\n };\n });\n }\n return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) {\n this.s = r, this.n = r.next;\n }, AsyncFromSyncIterator.prototype = {\n s: null,\n n: null,\n next: function next() {\n return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));\n },\n \"return\": function _return(r) {\n var n = this.s[\"return\"];\n return void 0 === n ? Promise.resolve({\n value: r,\n done: !0\n }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n },\n \"throw\": function _throw(r) {\n var n = this.s[\"return\"];\n return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n }\n }, new AsyncFromSyncIterator(r);\n}\nmodule.exports = _asyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _usingCtx() {\n var r = \"function\" == typeof SuppressedError ? SuppressedError : function (r, e) {\n var n = Error();\n return n.name = \"SuppressedError\", n.error = r, n.suppressed = e, n;\n },\n e = {},\n n = [];\n function using(r, e) {\n if (null != e) {\n if (Object(e) !== e) throw new TypeError(\"using declarations can only be used with objects, functions, null, or undefined.\");\n if (r) var o = e[Symbol.asyncDispose || Symbol[\"for\"](\"Symbol.asyncDispose\")];\n if (void 0 === o && (o = e[Symbol.dispose || Symbol[\"for\"](\"Symbol.dispose\")], r)) var t = o;\n if (\"function\" != typeof o) throw new TypeError(\"Object is not disposable.\");\n t && (o = function o() {\n try {\n t.call(e);\n } catch (r) {\n return Promise.reject(r);\n }\n }), n.push({\n v: e,\n d: o,\n a: r\n });\n } else r && n.push({\n d: e,\n a: r\n });\n return e;\n }\n return {\n e: e,\n u: using.bind(null, !1),\n a: using.bind(null, !0),\n d: function d() {\n var o,\n t = this.e,\n s = 0;\n function next() {\n for (; o = n.pop();) try {\n if (!o.a && 1 === s) return s = 0, n.push(o), Promise.resolve().then(next);\n if (o.d) {\n var r = o.d.call(o.v);\n if (o.a) return s |= 2, Promise.resolve(r).then(next, err);\n } else s |= 1;\n } catch (r) {\n return err(r);\n }\n if (1 === s) return t !== e ? Promise.reject(t) : Promise.resolve();\n if (t !== e) throw t;\n }\n function err(n) {\n return t = t !== e ? new r(n, t) : n, next();\n }\n return next();\n }\n };\n}\nmodule.exports = _usingCtx, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nfunction _awaitAsyncGenerator(e) {\n return new OverloadYield(e, 0);\n}\nmodule.exports = _awaitAsyncGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nfunction _wrapAsyncGenerator(e) {\n return function () {\n return new AsyncGenerator(e.apply(this, arguments));\n };\n}\nfunction AsyncGenerator(e) {\n var r, t;\n function resume(r, t) {\n try {\n var n = e[r](t),\n o = n.value,\n u = o instanceof OverloadYield;\n Promise.resolve(u ? o.v : o).then(function (t) {\n if (u) {\n var i = \"return\" === r ? \"return\" : \"next\";\n if (!o.k || t.done) return resume(i, t);\n t = e[i](t).value;\n }\n settle(n.done ? \"return\" : \"normal\", t);\n }, function (e) {\n resume(\"throw\", e);\n });\n } catch (e) {\n settle(\"throw\", e);\n }\n }\n function settle(e, n) {\n switch (e) {\n case \"return\":\n r.resolve({\n value: n,\n done: !0\n });\n break;\n case \"throw\":\n r.reject(n);\n break;\n default:\n r.resolve({\n value: n,\n done: !1\n });\n }\n (r = r.next) ? resume(r.key, r.arg) : t = null;\n }\n this._invoke = function (e, n) {\n return new Promise(function (o, u) {\n var i = {\n key: e,\n arg: n,\n resolve: o,\n reject: u,\n next: null\n };\n t ? t = t.next = i : (r = t = i, resume(e, n));\n });\n }, \"function\" != typeof e[\"return\"] && (this[\"return\"] = void 0);\n}\nAsyncGenerator.prototype[\"function\" == typeof Symbol && Symbol.asyncIterator || \"@@asyncIterator\"] = function () {\n return this;\n}, AsyncGenerator.prototype.next = function (e) {\n return this._invoke(\"next\", e);\n}, AsyncGenerator.prototype[\"throw\"] = function (e) {\n return this._invoke(\"throw\", e);\n}, AsyncGenerator.prototype[\"return\"] = function (e) {\n return this._invoke(\"return\", e);\n};\nmodule.exports = _wrapAsyncGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * SDK Core Types\n *\n * Base types for SDK configuration that are shared across all jurisdictions.\n * Jurisdiction-specific types (like MexicoSDKOptions) are defined in their\n * respective namespace modules.\n */\n\nimport { Jurisdiction, type CodigoActividad } from \"@artu-ai/shared\";\nimport type { APIVersion } from \"../utils/trpc-client\";\n\n// ===========================\n// Environment Types\n// ===========================\n\n/**\n * SDK environment mode\n * - \"test\": Uses test data, no real regulatory submissions\n * - \"live\": Uses production data, real regulatory submissions\n */\nexport type Environment = \"test\" | \"live\";\n\n// ===========================\n// Base SDK Options\n// ===========================\n\n/**\n * Base SDK configuration options (common to all scopes)\n */\nexport interface ComplianceSDKOptionsBase {\n /**\n * API key for authentication.\n * Obtained from WorkOS dashboard.\n *\n * If not provided, falls back to the `ARTU_API_KEY` environment variable.\n *\n * @example \"ak_test_abc123...\"\n */\n apiKey?: string;\n\n /**\n * Target environment for data isolation.\n * - \"test\": Uses test data, no real regulatory submissions\n * - \"live\": Uses production data, real regulatory submissions\n *\n * The API key must have permissions for the requested environment.\n */\n environment: Environment;\n\n /**\n * Base URL for the API.\n *\n * Priority order:\n * 1. Explicit baseUrl option\n * 2. `ARTU_BASE_URL` environment variable\n * 3. Default production URL: https://api.artu.ai\n *\n * Override for local development or custom deployments.\n *\n * @example \"http://localhost:3001\"\n */\n baseUrl?: string;\n\n /**\n * API version to use.\n * Defaults to latest stable version.\n *\n * @default \"v1\"\n */\n apiVersion?: APIVersion;\n\n /**\n * Request timeout in milliseconds.\n *\n * @default 30000 (30 seconds)\n */\n timeout?: number;\n}\n\n// ===========================\n// Scope Types\n// ===========================\n\n/**\n * SDK scope configuration - base (unscoped or non-Mexico)\n */\nexport interface SDKScopeBase {\n jurisdiction?: Jurisdiction;\n}\n\n/**\n * SDK scope configuration - Mexico with optional Actividad Vulnerable\n */\nexport interface SDKScopeMexico {\n jurisdiction: typeof Jurisdiction.Mexico;\n actividadVulnerable?: CodigoActividad;\n}\n\n/**\n * SDK scope configuration\n */\nexport type SDKScope = SDKScopeBase | SDKScopeMexico;\n\n/**\n * Type guard to check if scope is Mexico-scoped\n */\nexport function isMexicoScope(scope: SDKScope): scope is SDKScopeMexico {\n return scope.jurisdiction === Jurisdiction.Mexico;\n}\n\n/**\n * Builds an SDKScope from jurisdiction and actividadVulnerable options.\n *\n * @param jurisdiction - Target jurisdiction (optional)\n * @param actividadVulnerable - Target activity code (only for Mexico)\n * @returns Properly typed SDKScope\n *\n * @example\n * ```typescript\n * const scope = buildScope(\"MX\", \"AVI\");\n * // { jurisdiction: \"MX\", actividadVulnerable: \"AVI\" }\n *\n * const unscopedScope = buildScope();\n * // {}\n * ```\n */\nexport function buildScope(\n jurisdiction?: Jurisdiction | \"MX\" | \"US\",\n actividadVulnerable?: CodigoActividad | \"AVI\" | \"JYS\" | \"TSC\"\n): SDKScope {\n if (jurisdiction === Jurisdiction.Mexico) {\n return {\n jurisdiction: Jurisdiction.Mexico,\n actividadVulnerable: actividadVulnerable as CodigoActividad | undefined,\n };\n }\n\n if (jurisdiction) {\n return { jurisdiction: jurisdiction as Jurisdiction };\n }\n\n return {};\n}\n\n// ===========================\n// Unscoped SDK Options\n// ===========================\n\n/**\n * SDK options - unscoped or non-Mexico jurisdiction\n */\nexport interface ComplianceSDKOptionsUnscoped extends ComplianceSDKOptionsBase {\n jurisdiction?: Jurisdiction | \"MX\" | \"US\";\n}\n\n/**\n * Options for creating an unscoped SDK (no jurisdiction)\n */\nexport interface UnscopedSDKOptions extends ComplianceSDKOptionsBase {\n jurisdiction?: undefined;\n}\n\n/**\n * Options for creating an SDK with a non-Mexico jurisdiction.\n * Returns an unscoped SDK since only Mexico has specialized resources.\n */\nexport interface OtherJurisdictionSDKOptions extends ComplianceSDKOptionsBase {\n jurisdiction: typeof Jurisdiction.UnitedStates | \"US\";\n}\n\n// ===========================\n// Base SDK Interface\n// ===========================\n\n/**\n * Base SDK properties shared across all SDK scopes.\n * Contains environment info, scope helpers, and supporting resources.\n */\nexport interface BaseComplianceSDK {\n // Environment getters\n readonly environment: Environment;\n readonly apiVersion: APIVersion;\n readonly isTest: boolean;\n readonly isLive: boolean;\n\n // Scope getters\n readonly jurisdiction: Jurisdiction | undefined;\n readonly actividadVulnerable: CodigoActividad | undefined;\n readonly scope: Readonly<SDKScope>;\n readonly isScoped: boolean;\n readonly isMexico: boolean;\n readonly isUnitedStates: boolean;\n readonly isActividadVulnerable: boolean;\n}\n","/**\n * Base Resource Class\n *\n * Abstract base class for all resource managers.\n * Provides common patterns: validation, error mapping, pagination.\n */\n\nimport type { ZodType } from \"zod\";\nimport { TRPCClientError } from \"@trpc/client\";\nimport type {\n PaginatedResponse,\n ListOptions,\n IterateOptions,\n} from \"@artu-ai/shared\";\nimport { Jurisdiction, type CodigoActividad } from \"@artu-ai/shared\";\nimport type { TRPCClient } from \"../utils/trpc-client\";\nimport { mapTRPCError, ValidationError } from \"../errors\";\nimport { createPaginatedIterator } from \"../utils/pagination\";\n\nimport { type SDKScope, type Environment, isMexicoScope } from \"../sdk/types\";\n\n/**\n * Type guard for tRPC client errors\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isTRPCError(error: unknown): error is TRPCClientError<any> {\n return error instanceof TRPCClientError;\n}\n\n/**\n * Configuration for creating a resource manager\n */\nexport interface ResourceConfig {\n /**\n * tRPC client instance for API communication\n */\n trpc: TRPCClient;\n\n /**\n * Optional SDK scope for jurisdiction/activity scoping\n */\n scope?: SDKScope;\n\n /**\n * SDK environment (test or live)\n */\n environment?: Environment;\n}\n// ===========================\n// Base Resource Class\n// ===========================\n\n/**\n * Abstract base class for all resource managers.\n *\n * Provides:\n * - Input validation with Zod schemas\n * - Automatic error mapping from tRPC to SDK errors\n * - Pagination iterator factory\n *\n * @typeParam TModel - The model type returned by this resource\n * @typeParam TCreateInput - Input type for create operations\n * @typeParam TUpdateInput - Input type for update operations\n * @typeParam TFilter - Filter type for list operations\n *\n * @example\n * ```typescript\n * class ClientsResource extends BaseResource<\n * Client,\n * CreateClientInput,\n * UpdateClientInput,\n * ClientFilter\n * > {\n * async create(data: CreateClientInput): Promise<Client> {\n * const validated = this.validate(createClientInputSchema, data);\n * return this.execute(() =>\n * this.trpc.clients.create.mutate(validated)\n * );\n * }\n * }\n * ```\n */\nexport abstract class BaseResource<\n TModel,\n TCreateInput,\n TUpdateInput,\n TFilter = Record<string, unknown>,\n> {\n /**\n * tRPC client for API communication\n */\n protected readonly trpc: TRPCClient;\n\n /**\n * SDK scope (jurisdiction and actividadVulnerable)\n */\n protected readonly scope: SDKScope;\n\n constructor(config: ResourceConfig) {\n this.trpc = config.trpc;\n this.scope = config.scope ?? {};\n }\n\n /**\n * Whether this resource is scoped to a jurisdiction\n */\n protected get isScoped(): boolean {\n return this.scope.jurisdiction !== undefined;\n }\n\n /**\n * Whether this resource is scoped to Mexico\n */\n protected get isMexicoScoped(): boolean {\n return this.scope.jurisdiction === Jurisdiction.Mexico;\n }\n\n /**\n * Whether this resource is scoped to an Actividad Vulnerable activity\n */\n protected get isActivityScoped(): boolean {\n return (\n isMexicoScope(this.scope) && this.scope.actividadVulnerable !== undefined\n );\n }\n\n /**\n * Gets the actividadVulnerable code if scoped, undefined otherwise\n */\n protected get scopedActivity(): CodigoActividad | undefined {\n return isMexicoScope(this.scope)\n ? this.scope.actividadVulnerable\n : undefined;\n }\n\n // ===========================\n // Abstract Methods\n // ===========================\n\n /**\n * Creates a new resource\n * @param data - Creation data\n * @returns The created model\n */\n abstract create(data: TCreateInput): Promise<TModel>;\n\n /**\n * Retrieves a resource by ID\n * @param id - Resource ID\n * @returns The retrieved model\n */\n abstract retrieve(id: string): Promise<TModel>;\n\n /**\n * Updates an existing resource\n * @param id - Resource ID\n * @param data - Update data\n * @returns The updated model\n */\n abstract update(id: string, data: TUpdateInput): Promise<TModel>;\n\n /**\n * Deletes a resource by ID\n * @param id - Resource ID\n */\n abstract delete(id: string): Promise<void>;\n\n /**\n * Lists resources with optional filtering and pagination\n * @param options - List options\n * @returns Paginated response\n */\n abstract list(\n options?: ListOptions<TFilter>\n ): Promise<PaginatedResponse<TModel>>;\n\n // ===========================\n // Protected Helpers\n // ===========================\n\n /**\n * Validates input against a Zod schema.\n * Throws ValidationError if validation fails.\n *\n * @param schema - Zod schema to validate against\n * @param data - Data to validate\n * @returns Validated and typed data\n * @throws ValidationError if validation fails\n *\n * @example\n * ```typescript\n * const validated = this.validate(createClientSchema, data);\n * // validated is now typed as CreateClientInput\n * ```\n */\n protected validate<T>(schema: ZodType<T>, data: unknown): T {\n const result = schema.safeParse(data);\n if (!result.success) {\n throw ValidationError.fromZodError(result.error);\n }\n return result.data;\n }\n\n /**\n * Wraps a tRPC operation with error mapping.\n * Converts tRPC errors to SDK-specific errors.\n *\n * @param operation - Async operation to execute\n * @returns Result of the operation\n * @throws SDK-specific error if operation fails\n *\n * @example\n * ```typescript\n * const result = await this.execute(() =>\n * this.trpc.clients.create.mutate(data)\n * );\n * ```\n */\n protected async execute<T>(operation: () => Promise<T>): Promise<T> {\n try {\n return await operation();\n } catch (error) {\n if (isTRPCError(error)) {\n throw mapTRPCError(error);\n }\n throw error;\n }\n }\n\n /**\n * Creates an async iterator for paginated results.\n * Automatically fetches subsequent pages as you iterate.\n *\n * @typeParam T - The model type to return (defaults to TModel, can be overridden by subclasses)\n * @param options - Iterator options\n * @returns Async generator yielding individual items\n *\n * @example\n * ```typescript\n * for await (const client of this.iterate({ filter: { type: \"individual\" } })) {\n * console.log(client.name);\n * }\n * ```\n */\n protected createIterator<T = TModel>(\n options?: IterateOptions<TFilter>\n ): AsyncGenerator<T, void, undefined> {\n return createPaginatedIterator<T>(\n (pagination) =>\n this.list({\n filter: options?.filter,\n ...pagination,\n }) as unknown as Promise<PaginatedResponse<T>>,\n { limit: options?.pageSize }\n );\n }\n}\n\n// ===========================\n// Read-Only Resource Base\n// ===========================\n\n/**\n * Base class for read-only resources (no create/update/delete).\n * Useful for resources that are managed elsewhere.\n *\n * @typeParam TModel - The model type returned by this resource\n * @typeParam TFilter - Filter type for list operations\n */\nexport abstract class ReadOnlyResource<\n TModel,\n TFilter = Record<string, unknown>,\n> {\n protected readonly trpc: TRPCClient;\n\n constructor(config: ResourceConfig) {\n this.trpc = config.trpc;\n }\n\n /**\n * Retrieves a resource by ID\n */\n abstract retrieve(id: string): Promise<TModel>;\n\n /**\n * Lists resources with optional filtering and pagination\n */\n abstract list(\n options?: ListOptions<TFilter>\n ): Promise<PaginatedResponse<TModel>>;\n\n /**\n * Wraps a tRPC operation with error mapping\n */\n protected async execute<T>(operation: () => Promise<T>): Promise<T> {\n try {\n return await operation();\n } catch (error) {\n if (isTRPCError(error)) {\n throw mapTRPCError(error);\n }\n throw error;\n }\n }\n\n /**\n * Creates an async iterator for paginated results\n */\n protected createIterator<T = TModel>(\n options?: IterateOptions<TFilter>\n ): AsyncGenerator<T, void, undefined> {\n return createPaginatedIterator<T>(\n (pagination) =>\n this.list({\n filter: options?.filter,\n ...pagination,\n }) as unknown as Promise<PaginatedResponse<T>>,\n { limit: options?.pageSize }\n );\n }\n}\n","/**\n * Base Model Class\n *\n * Abstract base class for all data models.\n * Models are pure data containers - they never make API calls.\n */\n\n// ===========================\n// Base Model Class\n// ===========================\n\n/**\n * Abstract base class for all data models.\n *\n * - **Immutable**: Data is frozen on construction\n * - **Pure data**: No API calls, just typed accessors\n * - **Serializable**: `toJSON()` returns the raw data\n *\n * @typeParam TData - The raw data type this model wraps\n *\n * @example\n * ```typescript\n * class Client extends BaseModel<BaseClientData> {\n * get id(): string { return this._data.id; }\n * get name(): string { return this._data.name; }\n * }\n * ```\n */\nexport abstract class BaseModel<TData extends object> {\n /**\n * The underlying raw data.\n * Frozen to ensure immutability.\n */\n protected readonly _data: TData;\n\n constructor(data: TData) {\n // Deep freeze to ensure complete immutability\n this._data = Object.freeze(data) as TData;\n }\n\n /**\n * Returns the raw data object.\n * Useful for serialization and debugging.\n */\n toJSON(): TData {\n return this._data;\n }\n\n /**\n * Returns a string representation of the model.\n * Override in subclasses for better output.\n */\n toString(): string {\n return `${this.constructor.name}(${JSON.stringify(this._data)})`;\n }\n}\n","/**\n * Base Client Model\n *\n * Pure data model with no API calls.\n * Provides type-safe access to common client properties.\n */\n\nimport { BaseModel } from \"./base\";\nimport { ClientType } from \"@artu-ai/shared\";\nimport type { BaseClient, Jurisdiction } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Client data as stored in the model.\n * Uses BaseClient for proper output typing (Date objects).\n * Note: API returns string dates, but models convert them in getters.\n */\nexport type ClientData = BaseClient & {\n // Server-generated fields (added by API)\n id: string;\n createdAt: string;\n updatedAt: string;\n};\n\n// ===========================\n// Client Model\n// ===========================\n\n/**\n * Base Client Model.\n *\n * Pure data model with no API calls.\n * Extended by jurisdiction-specific models (MexClient, etc.).\n *\n * @example\n * ```typescript\n * const client = await sdk.clients.retrieve(\"client_123\");\n * console.log(client.name);\n * console.log(client.email);\n * ```\n */\nexport class Client extends BaseModel<ClientData> {\n // ─────────────────────────────────────────────────────────────────\n // Identity\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Unique identifier\n */\n get id(): string {\n return this._data.id;\n }\n\n /**\n * Client type: \"individual\" or \"company\"\n */\n get type(): ClientType {\n return this._data.type;\n }\n\n /**\n * Whether this is an individual (individual)\n */\n get isIndividual(): boolean {\n return this._data.type === ClientType.Individual;\n }\n\n /**\n * Whether this is a company (legal entity)\n */\n get isCompany(): boolean {\n return this._data.type === ClientType.Company;\n }\n\n /**\n * Whether this is a trust\n */\n get isTrust(): boolean {\n return this._data.type === ClientType.Trust;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Common Fields\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Full name (individual) or legal name (company)\n */\n get name(): string {\n return this._data.name;\n }\n\n /**\n * Nationalities as ISO2 country codes\n */\n get nationalities(): string[] {\n return this._data.nationalities ?? [];\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Individual-specific fields\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Birth date (individuals only)\n * Returns undefined for companies and trusts\n */\n get birthDate(): Date | undefined {\n // Access via record since BaseClient is a discriminated union\n const raw = (this._data as Record<string, unknown>).birthDate as\n | string\n | undefined;\n return raw ? new Date(raw) : undefined;\n }\n\n /**\n * Middle name (individuals only)\n */\n get middleName(): string | undefined {\n return (this._data as Record<string, unknown>).middleName as\n | string\n | undefined;\n }\n\n /**\n * Last name(s) (individuals only)\n * Returns as array to support multiple surnames (e.g., Spanish naming)\n */\n get lastName(): string[] | undefined {\n return (this._data as Record<string, unknown>).lastName as\n | string[]\n | undefined;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Company-specific fields\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Incorporation date (companies only)\n * Returns undefined for individuals and trusts\n */\n get incorporationDate(): Date | undefined {\n const raw = (this._data as Record<string, unknown>).incorporationDate as\n | string\n | undefined;\n return raw ? new Date(raw) : undefined;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Trust-specific fields\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Formation date (trusts only)\n * Returns undefined for individuals and companies\n */\n get formationDate(): Date | undefined {\n const raw = (this._data as Record<string, unknown>).formationDate as\n | string\n | undefined;\n return raw ? new Date(raw) : undefined;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Jurisdiction\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Primary jurisdiction for compliance purposes.\n * May be undefined if not set (can be inferred from SDK scope).\n */\n get primaryJurisdiction(): Jurisdiction | undefined {\n return this._data.primaryJurisdiction;\n }\n\n /**\n * Checks if client has data for a specific jurisdiction\n */\n hasJurisdiction(jurisdiction: Jurisdiction): boolean {\n if (!this._data.jurisdictions) return false;\n return jurisdiction in this._data.jurisdictions;\n }\n\n /**\n * Raw jurisdiction data object\n */\n get jurisdictions(): BaseClient[\"jurisdictions\"] {\n return this._data.jurisdictions ?? {};\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Metadata\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * External ID for integration with other systems\n */\n get externalId(): string | undefined {\n return this._data.externalId;\n }\n\n /**\n * Custom metadata\n */\n get metadata(): Record<string, unknown> | undefined {\n return this._data.metadata;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Timestamps\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * When the client was created\n */\n get createdAt(): Date {\n return new Date(this._data.createdAt);\n }\n\n /**\n * When the client was last updated\n */\n get updatedAt(): Date {\n return new Date(this._data.updatedAt);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `Client(${this.id}, ${this.name})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\n/**\n * Check if value is any type of Client model\n */\nexport function isClient(value: unknown): value is Client {\n return value instanceof Client;\n}\n\n/**\n * Check if client is an individual (individual)\n */\nexport function isIndividual(client: Client): boolean {\n return client.isIndividual;\n}\n\n/**\n * Check if client is a company (legal entity)\n */\nexport function isCompany(client: Client): boolean {\n return client.isCompany;\n}\n\n/**\n * Check if client is a trust\n */\nexport function isTrust(client: Client): boolean {\n return client.isTrust;\n}\n","/**\n * Base Transaction Model\n *\n * Pure data model with no API calls.\n * Provides type-safe access to common transaction properties.\n */\n\nimport { BaseModel } from \"./base\";\nimport { TransactionStatus } from \"@artu-ai/shared\";\nimport type { BaseTransaction, Jurisdiction } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Transaction data as returned from the API.\n * Extends the base schema with server-generated fields.\n */\nexport interface TransactionData extends Omit<BaseTransaction, \"timestamp\"> {\n id: string;\n timestamp: string; // API returns ISO string (JSON serialization)\n createdAt: string;\n updatedAt: string;\n}\n\n// ===========================\n// Transaction Model\n// ===========================\n\n/**\n * Base Transaction Model.\n *\n * Pure data model with no API calls.\n * Extended by jurisdiction-specific models (MexTransaction, etc.).\n *\n * @example\n * ```typescript\n * const txn = await sdk.transactions.retrieve(\"txn_123\");\n * console.log(txn.formattedAmount);\n * console.log(txn.status);\n * ```\n */\nexport class Transaction extends BaseModel<TransactionData> {\n // ─────────────────────────────────────────────────────────────────\n // Identity\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Unique identifier\n */\n get id(): string {\n return this._data.id;\n }\n\n /**\n * Transaction status\n */\n get status(): TransactionStatus {\n return this._data.status;\n }\n\n /**\n * Whether the transaction is completed\n */\n get isCompleted(): boolean {\n return this._data.status === TransactionStatus.Completed;\n }\n\n /**\n * Whether the transaction is pending\n */\n get isPending(): boolean {\n return this._data.status === TransactionStatus.Pending;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Amount\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Transaction amount\n */\n get amount(): number {\n return this._data.amount;\n }\n\n /**\n * Currency code (ISO 4217)\n */\n get currency(): string {\n return this._data.currency;\n }\n\n /**\n * Formats amount with currency\n */\n get formattedAmount(): string {\n try {\n return new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: this.currency,\n }).format(this.amount);\n } catch {\n // Fallback for unsupported currencies\n return `${this.currency} ${this.amount.toLocaleString()}`;\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // References\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * IDs of clients related to this transaction\n */\n get relatedClientIds(): string[] {\n return this._data.relatedClientIds ?? [];\n }\n\n /**\n * External ID for integration with other systems\n */\n get externalId(): string | undefined {\n return this._data.externalId;\n }\n\n /**\n * Transaction description\n */\n get description(): string | undefined {\n return this._data.description;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Jurisdiction\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Primary jurisdiction for compliance purposes\n */\n get primaryJurisdiction(): Jurisdiction | undefined {\n return this._data.primaryJurisdiction;\n }\n\n /**\n * Checks if transaction has data for a specific jurisdiction\n */\n hasJurisdiction(jurisdiction: Jurisdiction): boolean {\n if (!this._data.jurisdictions) return false;\n return jurisdiction in this._data.jurisdictions;\n }\n\n /**\n * Raw jurisdiction data object\n */\n get jurisdictions(): BaseTransaction[\"jurisdictions\"] {\n return this._data.jurisdictions ?? {};\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Timing\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * When the transaction was executed/occurred\n */\n get timestamp(): Date {\n return new Date(this._data.timestamp);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Metadata\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Custom metadata\n */\n get metadata(): Record<string, unknown> | undefined {\n return this._data.metadata;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Timestamps\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * When the transaction record was created\n */\n get createdAt(): Date {\n return new Date(this._data.createdAt);\n }\n\n /**\n * When the transaction record was last updated\n */\n get updatedAt(): Date {\n return new Date(this._data.updatedAt);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `Transaction(${this.id}, ${this.formattedAmount}, ${this.status})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\n/**\n * Check if value is any type of Transaction model\n */\nexport function isTransaction(value: unknown): value is Transaction {\n return value instanceof Transaction;\n}\n","/**\n * Base Report Model\n *\n * Pure data model with no API calls.\n * Provides type-safe access to common report properties.\n */\n\nimport { BaseModel } from \"./base\";\nimport { ReportStatus } from \"@artu-ai/shared\";\nimport type { BaseReport, Report as ReportSchema } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Report data as returned from the API.\n */\nexport type ReportData = ReportSchema;\n\n// ===========================\n// Report Model\n// ===========================\n\n/**\n * Base Report Model.\n *\n * Pure data model with no API calls.\n * Extended by jurisdiction-specific models (MexReport, etc.).\n *\n * @example\n * ```typescript\n * const report = await sdk.reports.retrieve(\"report_123\");\n * console.log(report.type);\n * console.log(report.status);\n * ```\n */\nexport class Report extends BaseModel<ReportData> {\n // ─────────────────────────────────────────────────────────────────\n // Identity\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Unique identifier\n */\n get id(): string {\n return this._data.id;\n }\n\n /**\n * Organization ID\n */\n get organizationId(): string {\n return this._data.organizationId;\n }\n\n /**\n * Environment (test or live)\n */\n get environment(): \"test\" | \"live\" {\n return this._data.environment;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Status\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Report status\n */\n get status(): ReportStatus {\n return this._data.status;\n }\n\n /**\n * Number of items in the report\n */\n get itemCount(): number {\n return this._data.itemCount;\n }\n\n /**\n * Whether the report is in draft status\n */\n get isDraft(): boolean {\n return this._data.status === ReportStatus.Draft;\n }\n\n /**\n * Whether the report has been validated successfully\n */\n get isValid(): boolean {\n return this._data.status === ReportStatus.Valid;\n }\n\n /**\n * Whether the report failed validation\n */\n get isInvalid(): boolean {\n return this._data.status === ReportStatus.Invalid;\n }\n\n /**\n * Whether the report has been submitted\n */\n get isSubmitted(): boolean {\n return this._data.status === ReportStatus.Submitted;\n }\n\n /**\n * Whether the report can be edited\n */\n get canEdit(): boolean {\n return [\n ReportStatus.Draft,\n ReportStatus.Valid,\n ReportStatus.Invalid,\n ].includes(this._data.status);\n }\n\n /**\n * Whether the report can be validated/generated\n */\n get canGenerate(): boolean {\n return [ReportStatus.Draft, ReportStatus.Valid].includes(this._data.status);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Jurisdiction\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Raw jurisdiction data object\n */\n get jurisdictions(): BaseReport[\"jurisdictions\"] {\n return this._data.jurisdictions ?? {};\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Metadata\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * External ID for integration with other systems\n */\n get externalId(): string | undefined {\n return this._data.externalId;\n }\n\n /**\n * Custom metadata\n */\n get metadata(): Record<string, unknown> | undefined {\n return this._data.metadata;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Timestamps\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * When the report was created\n */\n get createdAt(): Date {\n return new Date(this._data.createdAt);\n }\n\n /**\n * When the report was last updated\n */\n get updatedAt(): Date {\n return new Date(this._data.updatedAt);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `Report(${this.id}, ${this.status})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\n/**\n * Check if value is any type of Report model\n */\nexport function isReport(value: unknown): value is Report {\n return value instanceof Report;\n}\n","/**\n * Base Report Item Model\n *\n * Pure data model with no API calls.\n * Provides type-safe access to common report item properties.\n */\n\nimport { BaseModel } from \"./base\";\nimport type {\n ReportItem as ReportItemSchema,\n ReportItemValidationError,\n BaseReportItem,\n} from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Report item data as returned from the API.\n */\nexport type ReportItemData = ReportItemSchema;\n\n// ===========================\n// ReportItem Model\n// ===========================\n\n/**\n * Base Report Item Model.\n *\n * Pure data model with no API calls.\n * Extended by jurisdiction-specific models.\n *\n * @example\n * ```typescript\n * const items = await sdk.reports.listItems(\"report_123\");\n * for (const item of items) {\n * console.log(item.clientName, item.transactionAmount);\n * }\n * ```\n */\nexport class ReportItem extends BaseModel<ReportItemData> {\n // ─────────────────────────────────────────────────────────────────\n // Identity\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Unique identifier\n */\n get id(): string {\n return this._data.id;\n }\n\n /**\n * Parent report ID\n */\n get reportId(): string {\n return this._data.reportId;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // References\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Transaction ID (if item is transaction-based)\n */\n get transactionId(): string | undefined {\n return this._data.transactionId;\n }\n\n /**\n * Client ID\n */\n get clientId(): string | undefined {\n return this._data.clientId;\n }\n\n /**\n * Whether this item is based on a transaction\n */\n get isTransactionBased(): boolean {\n return !!this._data.transactionId;\n }\n\n /**\n * Whether this item is client-only (no transaction)\n */\n get isClientOnly(): boolean {\n return !this._data.transactionId && !!this._data.clientId;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Denormalized Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Client name (denormalized for display)\n */\n get clientName(): string | undefined {\n return this._data.clientName;\n }\n\n /**\n * Transaction amount (denormalized for display)\n */\n get transactionAmount(): number | undefined {\n return this._data.transactionAmount;\n }\n\n /**\n * Transaction currency (denormalized for display)\n */\n get transactionCurrency(): string | undefined {\n return this._data.transactionCurrency;\n }\n\n /**\n * Transaction date (denormalized for display)\n */\n get transactionDate(): string | undefined {\n return this._data.transactionDate;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Validation\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Validation errors for this item\n */\n get validationErrors(): ReportItemValidationError[] {\n return this._data.validationErrors ?? [];\n }\n\n /**\n * Whether this item has validation errors\n */\n get hasErrors(): boolean {\n return this.validationErrors.some((e) => e.severity === \"error\");\n }\n\n /**\n * Whether this item has validation warnings\n */\n get hasWarnings(): boolean {\n return this.validationErrors.some((e) => e.severity === \"warning\");\n }\n\n /**\n * Number of errors\n */\n get errorCount(): number {\n return this.validationErrors.filter((e) => e.severity === \"error\").length;\n }\n\n /**\n * Number of warnings\n */\n get warningCount(): number {\n return this.validationErrors.filter((e) => e.severity === \"warning\").length;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Jurisdiction\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Raw jurisdiction data object\n */\n get jurisdictions(): BaseReportItem[\"jurisdictions\"] {\n return this._data.jurisdictions ?? {};\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Timestamps\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * When the item was created\n */\n get createdAt(): Date {\n return new Date(this._data.createdAt);\n }\n\n /**\n * When the item was last updated\n */\n get updatedAt(): Date {\n return new Date(this._data.updatedAt);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `ReportItem(${this.id}, ${this.clientName ?? \"Unknown\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\n/**\n * Check if value is any type of ReportItem model\n */\nexport function isReportItem(value: unknown): value is ReportItem {\n return value instanceof ReportItem;\n}\n","/**\n * Address Model\n *\n * Physical or mailing address for a client.\n */\n\nimport {\n AddressType,\n type Address as AddressSchema,\n type CountryIso2,\n} from \"@artu-ai/shared\";\nimport { BaseModel } from \"./base\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Address data structure from the API\n */\nexport interface AddressData extends AddressSchema {\n id: string;\n createdAt: string;\n updatedAt: string;\n}\n\n// ===========================\n// Address Model\n// ===========================\n\n/**\n * Address Model.\n *\n * Provides typed accessors for address data with formatting helpers.\n *\n * @example\n * ```typescript\n * const addresses = await sdk.addresses.listByClient(\"client_123\");\n * for (const addr of addresses) {\n * console.log(addr.formatted);\n * console.log(`Primary: ${addr.isPrimary}`);\n * }\n * ```\n */\nexport class Address extends BaseModel<AddressData> {\n // ─────────────────────────────────────────────────────────────────\n // Core Properties\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Unique address identifier\n */\n get id(): string {\n return this._data.id;\n }\n\n /**\n * ID of the client this address belongs to\n */\n get clientId(): string {\n return this._data.clientId;\n }\n\n /**\n * Address type (home, business, mailing, legal, other)\n */\n get type(): AddressType {\n return this._data.type;\n }\n\n /**\n * Whether this is the primary address\n */\n get isPrimary(): boolean {\n return this._data.isPrimary ?? false;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Address Fields\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Street address line\n */\n get street(): string {\n return this._data.street;\n }\n\n /**\n * City name\n */\n get city(): string {\n return this._data.city;\n }\n\n /**\n * State or province\n */\n get state(): string {\n return this._data.state;\n }\n\n /**\n * Postal/ZIP code\n */\n get postalCode(): string {\n return this._data.postalCode;\n }\n\n /**\n * Country code (ISO 3166-1 alpha-2)\n */\n get country(): CountryIso2 {\n return this._data.country;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Jurisdictions & Metadata\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Jurisdiction-scoped data\n * (e.g., Mexico: exteriorNumber, neighborhood)\n */\n get jurisdictions(): AddressSchema[\"jurisdictions\"] {\n return this._data.jurisdictions;\n }\n\n /**\n * Additional metadata\n */\n get metadata(): Record<string, unknown> | undefined {\n return this._data.metadata;\n }\n\n /**\n * When the address was created\n */\n get createdAt(): Date {\n return new Date(this._data.createdAt);\n }\n\n /**\n * When the address was last updated\n */\n get updatedAt(): Date {\n return new Date(this._data.updatedAt);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Type Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether this is a home address\n */\n get isHome(): boolean {\n return this.type === AddressType.Home;\n }\n\n /**\n * Whether this is a business address\n */\n get isBusiness(): boolean {\n return this.type === AddressType.Business;\n }\n\n /**\n * Whether this is a mailing address\n */\n get isMailing(): boolean {\n return this.type === AddressType.Mailing;\n }\n\n /**\n * Whether this is a legal address\n */\n get isLegal(): boolean {\n return this.type === AddressType.Legal;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Formatting\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Returns a formatted single-line address string\n */\n get formatted(): string {\n const parts = [\n this.street,\n `${this.city}, ${this.state} ${this.postalCode}`,\n this.country,\n ].filter(Boolean);\n return parts.join(\", \");\n }\n\n /**\n * Returns a formatted multi-line address string\n */\n get formattedMultiLine(): string {\n const lines = [\n this.street,\n `${this.city}, ${this.state} ${this.postalCode}`,\n this.country,\n ].filter(Boolean);\n return lines.join(\"\\n\");\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `Address(${this.id}, ${this.type}, ${this.city})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\n/**\n * Check if value is any type of Address model\n */\nexport function isAddress(value: unknown): value is Address {\n return value instanceof Address;\n}\n","/**\n * ContactMethod Model\n *\n * Communication channel for a client (email, phone, etc.).\n */\n\nimport {\n ContactMethodType,\n type ContactMethod as ContactMethodSchema,\n} from \"@artu-ai/shared\";\nimport { BaseModel } from \"./base\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Contact method data structure from the API\n */\nexport interface ContactMethodData\n extends Omit<ContactMethodSchema, \"verifiedAt\"> {\n id: string;\n verifiedAt: string | null; // API returns ISO string or null (JSON serialization)\n createdAt: string;\n updatedAt: string;\n}\n\n// ===========================\n// ContactMethod Model\n// ===========================\n\n/**\n * ContactMethod Model.\n *\n * Provides typed accessors for contact method data with formatting helpers.\n *\n * @example\n * ```typescript\n * const contacts = await sdk.contactMethods.listByClient(\"client_123\");\n * for (const contact of contacts) {\n * console.log(contact.display);\n * console.log(`Verified: ${contact.isVerified}`);\n * }\n * ```\n */\nexport class ContactMethod extends BaseModel<ContactMethodData> {\n // ─────────────────────────────────────────────────────────────────\n // Core Properties\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Unique contact method identifier\n */\n get id(): string {\n return this._data.id;\n }\n\n /**\n * ID of the client this contact method belongs to\n */\n get clientId(): string {\n return this._data.clientId;\n }\n\n /**\n * Contact method type (email, phone, mobile, fax, other)\n */\n get type(): ContactMethodType {\n return this._data.type;\n }\n\n /**\n * Whether this is the primary contact method for its type\n */\n get isPrimary(): boolean {\n return this._data.isPrimary;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Value Fields\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * The contact value (email address, phone number, etc.)\n */\n get value(): string {\n return this._data.value;\n }\n\n /**\n * Optional label (e.g., \"Work\", \"Personal\")\n */\n get label(): string | undefined {\n return this._data.label;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Verification\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether this contact method has been verified\n */\n get isVerified(): boolean {\n return this._data.isVerified;\n }\n\n /**\n * When this contact method was verified\n */\n get verifiedAt(): Date | null {\n return this._data.verifiedAt ? new Date(this._data.verifiedAt) : null;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Metadata\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Additional metadata\n */\n get metadata(): Record<string, unknown> | undefined {\n return this._data.metadata;\n }\n\n /**\n * When the contact method was created\n */\n get createdAt(): Date {\n return new Date(this._data.createdAt);\n }\n\n /**\n * When the contact method was last updated\n */\n get updatedAt(): Date {\n return new Date(this._data.updatedAt);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Type Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether this is an email contact\n */\n get isEmail(): boolean {\n return this.type === ContactMethodType.Email;\n }\n\n /**\n * Whether this is a phone contact\n */\n get isPhone(): boolean {\n return this.type === ContactMethodType.Phone;\n }\n\n /**\n * Whether this is a mobile contact\n */\n get isMobile(): boolean {\n return this.type === ContactMethodType.Mobile;\n }\n\n /**\n * Whether this is a fax contact\n */\n get isFax(): boolean {\n return this.type === ContactMethodType.Fax;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Formatting\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Returns a display string with optional label\n */\n get display(): string {\n return this.label ? `${this.label}: ${this.value}` : this.value;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `ContactMethod(${this.id}, ${this.type}, ${this.value})`;\n }\n}\n","/**\n * BankAccount Model\n *\n * Bank account information for a client.\n * Uses discriminated union based on `country` field.\n */\n\nimport {\n BankAccountType,\n type BankAccount as BankAccountSchema,\n type CurrencyCode,\n} from \"@artu-ai/shared\";\nimport { BaseModel } from \"./base\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Bank account data structure from the API (discriminated union)\n */\nexport type BankAccountData = BankAccountSchema;\n\n// ===========================\n// BankAccount Model\n// ===========================\n\n/**\n * BankAccount Model.\n *\n * Base class for bank account data. The concrete type depends on\n * the `country` field:\n * - `country === \"MX\"` → MexBankAccount with clabe, codigoBanco, codigoPlaza\n * - Other countries → GenericBankAccount\n *\n * @example\n * ```typescript\n * const account = await sdk.bankAccounts.retrieve(id);\n *\n * // Check country for type narrowing\n * if (account.country === \"MX\") {\n * console.log(account.clabe); // MexBankAccount\n * }\n * ```\n */\nexport class BankAccount extends BaseModel<BankAccountData> {\n // ─────────────────────────────────────────────────────────────────\n // Core Properties\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Unique bank account identifier\n */\n get id(): string {\n return this._data.id;\n }\n\n /**\n * ID of the client this bank account belongs to\n */\n get clientId(): string {\n return this._data.clientId;\n }\n\n /**\n * Account number\n */\n get accountNumber(): string {\n return this._data.accountNumber;\n }\n\n /**\n * Bank name\n */\n get bankName(): string {\n return this._data.bankName;\n }\n\n /**\n * Bank code (e.g., SWIFT, routing number)\n */\n get bankCode(): string | undefined {\n return this._data.bankCode;\n }\n\n /**\n * Country where the bank account is held (ISO 3166-1 alpha-2)\n *\n * This is the discriminator field - determines which fields are available.\n */\n get country(): string {\n return this._data.country;\n }\n\n /**\n * Account type (checking, savings, investment, other)\n */\n get type(): BankAccountType {\n return this._data.type;\n }\n\n /**\n * Account currency (ISO 4217 code)\n */\n get currency(): CurrencyCode {\n return this._data.currency;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Status\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether this is the primary bank account\n */\n get isPrimary(): boolean {\n return this._data.isPrimary ?? false;\n }\n\n /**\n * Whether this account is active\n */\n get isActive(): boolean {\n return this._data.isActive ?? true;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Metadata\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Optional label (e.g., \"Personal Checking\")\n */\n get label(): string | undefined {\n return this._data.label;\n }\n\n /**\n * Additional metadata\n */\n get metadata(): Record<string, unknown> | undefined {\n return this._data.metadata;\n }\n\n /**\n * When the bank account was created\n */\n get createdAt(): Date {\n return new Date(this._data.createdAt);\n }\n\n /**\n * When the bank account was last updated\n */\n get updatedAt(): Date {\n return new Date(this._data.updatedAt);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Type Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether this is a checking account\n */\n get isChecking(): boolean {\n return this.type === BankAccountType.Checking;\n }\n\n /**\n * Whether this is a savings account\n */\n get isSavings(): boolean {\n return this.type === BankAccountType.Savings;\n }\n\n /**\n * Whether this is an investment account\n */\n get isInvestment(): boolean {\n return this.type === BankAccountType.Investment;\n }\n\n /**\n * Whether this is a Mexican bank account\n */\n get isMexican(): boolean {\n return this.country === \"MX\";\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Formatting\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Returns a masked account number (shows last 4 digits)\n */\n get maskedAccountNumber(): string {\n const lastFour = this.accountNumber.slice(-4);\n return `****${lastFour}`;\n }\n\n /**\n * Returns a display string with bank name and masked account\n */\n get display(): string {\n return `${this.bankName} (${this.maskedAccountNumber})`;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `BankAccount(${this.id}, ${this.bankName}, ${this.country})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\n/**\n * Check if value is any type of BankAccount model\n */\nexport function isBankAccount(value: unknown): value is BankAccount {\n return value instanceof BankAccount;\n}\n","/**\n * Document model\n *\n * Represents a file uploaded for a client.\n * Supports jurisdiction-specific document types (MX, US).\n */\n\nimport { BaseModel } from \"./base\";\nimport {\n DocumentStatus,\n DocumentCategory,\n Jurisdiction,\n type DocumentResponse,\n} from \"@artu-ai/shared\";\n\n// ─────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Document data as returned by the API.\n * Uses the centralized type from @artu-ai/shared.\n */\nexport type DocumentData = DocumentResponse;\n\n// ─────────────────────────────────────────────────────────────────\n// Document Model\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Document model - represents an uploaded file.\n *\n * @example\n * ```typescript\n * const doc = await sdk.documents.retrieve(\"doc_123\");\n *\n * console.log(doc.filename); // \"passport.pdf\"\n * console.log(doc.formattedSize); // \"2.5 MB\"\n * console.log(doc.isAvailable); // true\n *\n * if (doc.isMexico) {\n * console.log(doc.type); // \"ine_front\" | \"rfc\" | etc.\n * }\n * ```\n */\nexport class Document extends BaseModel<DocumentData> {\n // ─────────────────────────────────────────────────────────────────\n // Core Properties\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Unique identifier for the document\n */\n get id(): string {\n return this._data.id;\n }\n\n /**\n * ID of the client this document belongs to\n */\n get clientId(): string {\n return this._data.clientId;\n }\n\n /**\n * Jurisdiction for this document (MX, US)\n */\n get jurisdiction(): Jurisdiction {\n return this._data.jurisdiction;\n }\n\n /**\n * Document type (jurisdiction-specific)\n */\n get type(): string {\n return this._data.type;\n }\n\n /**\n * Document category (identity, address, financial, etc.)\n */\n get category(): DocumentCategory {\n return this._data.category;\n }\n\n /**\n * Document status\n */\n get status(): DocumentStatus {\n return this._data.status;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // File Properties\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether a file is attached to this document\n */\n get hasFile(): boolean {\n return !!this._data.filename;\n }\n\n /**\n * Original filename (undefined if no file attached)\n */\n get filename(): string | undefined {\n return this._data.filename ?? undefined;\n }\n\n /**\n * MIME content type (undefined if no file attached)\n */\n get contentType(): string | undefined {\n return this._data.contentType ?? undefined;\n }\n\n /**\n * File size in bytes (undefined if no file attached)\n */\n get size(): number | undefined {\n return this._data.size ?? undefined;\n }\n\n /**\n * Human-readable file size (e.g., \"2.5 MB\")\n * Returns undefined if no file attached\n */\n get formattedSize(): string | undefined {\n if (this._data.size === undefined || this._data.size === null)\n return undefined;\n return formatBytes(this._data.size);\n }\n\n /**\n * File extension derived from filename\n * Returns empty string if no file or no extension\n */\n get extension(): string {\n if (!this.filename) return \"\";\n const parts = this.filename.split(\".\");\n const ext = parts.at(-1);\n if (!ext || parts.length <= 1) return \"\";\n return ext.toLowerCase();\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Status Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether the document is ready for download\n */\n get isAvailable(): boolean {\n return (\n this.status === DocumentStatus.Uploaded ||\n this.status === DocumentStatus.Verified\n );\n }\n\n /**\n * Whether the document is pending upload\n */\n get isPending(): boolean {\n return this.status === DocumentStatus.PendingUpload;\n }\n\n /**\n * Whether the document has been verified\n */\n get isVerified(): boolean {\n return this.status === DocumentStatus.Verified;\n }\n\n /**\n * Whether the document was rejected\n */\n get isRejected(): boolean {\n return this.status === DocumentStatus.Rejected;\n }\n\n /**\n * Whether the document has expired\n */\n get isExpired(): boolean {\n if (this.status === DocumentStatus.Expired) return true;\n if (!this._data.expiresAt) return false;\n return new Date(this._data.expiresAt) < new Date();\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Validity\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Document expiration date, if set\n */\n get expiresAt(): Date | undefined {\n return this._data.expiresAt ? new Date(this._data.expiresAt) : undefined;\n }\n\n /**\n * Days until document expires (negative if already expired)\n */\n get daysUntilExpiry(): number | undefined {\n if (!this.expiresAt) return undefined;\n const now = new Date();\n const diffTime = this.expiresAt.getTime() - now.getTime();\n return Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Fields\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Document-specific fields (extracted or provided data)\n *\n * For typed fields, use jurisdiction-specific document models:\n * - MexIneFrontDocument.ineFields\n * - MexPassportDocument.passportFields\n * - etc.\n */\n get fields(): Record<string, unknown> | undefined {\n return (this._data as DocumentData & { fields?: Record<string, unknown> })\n .fields;\n }\n\n /**\n * Get a specific field value\n */\n getField<T = unknown>(key: string): T | undefined {\n return this.fields?.[key] as T | undefined;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Metadata\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Custom metadata attached to the document\n */\n get metadata(): Record<string, unknown> | undefined {\n return this._data.metadata;\n }\n\n /**\n * Get a specific metadata value\n */\n getMetadata<T = unknown>(key: string): T | undefined {\n return this.metadata?.[key] as T | undefined;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Timestamps\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * When the document was created\n */\n get createdAt(): Date {\n return new Date(this._data.createdAt);\n }\n\n /**\n * When the document was last updated\n */\n get updatedAt(): Date {\n return new Date(this._data.updatedAt);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Jurisdiction Type Guards\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether this is a Mexico document\n */\n get isMexico(): boolean {\n return this._data.jurisdiction === Jurisdiction.Mexico;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Category Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether this is an identity document\n */\n get isIdentityDocument(): boolean {\n return this.category === DocumentCategory.Identity;\n }\n\n /**\n * Whether this is an address proof document\n */\n get isAddressProof(): boolean {\n return this.category === DocumentCategory.Address;\n }\n\n /**\n * Whether this is a financial document\n */\n get isFinancialDocument(): boolean {\n return this.category === DocumentCategory.Financial;\n }\n\n /**\n * Whether this is an incorporation document\n */\n get isIncorporationDocument(): boolean {\n return this.category === DocumentCategory.Incorporation;\n }\n\n /**\n * Whether this is a tax document\n */\n get isTaxDocument(): boolean {\n return this.category === DocumentCategory.Tax;\n }\n}\n\n// ─────────────────────────────────────────────────────────────────\n// Helpers\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Format bytes into human-readable string\n */\nfunction formatBytes(bytes: number): string {\n if (bytes === 0) return \"0 bytes\";\n\n const units = [\"bytes\", \"KB\", \"MB\", \"GB\"];\n let size = bytes;\n let unitIndex = 0;\n\n while (size >= 1024 && unitIndex < units.length - 1) {\n size /= 1024;\n unitIndex++;\n }\n\n // Show decimals only for KB and larger\n if (unitIndex === 0) {\n return `${size} ${units[unitIndex]}`;\n }\n\n return `${size.toFixed(1)} ${units[unitIndex]}`;\n}\n","/**\n * Mexico Client Model\n *\n * Extends base Client with Mexico-specific accessors.\n * Provides type-safe access to RFC, CURP, and jurisdiction data.\n */\n\nimport { Client, type ClientData } from \"../Client\";\nimport type { MexJurisdictionData } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Client data with Mexico jurisdiction\n */\nexport type MexClientData = ClientData & {\n jurisdictions?: {\n MX?: MexJurisdictionData;\n [key: string]: unknown;\n };\n};\n\n// ===========================\n// MexClient Model\n// ===========================\n\n/**\n * Mexico Client Model.\n *\n * Provides typed accessors for Mexico-specific data:\n * - RFC (Registro Federal de Contribuyentes)\n * - CURP (Clave Única de Registro de Población)\n * - Actividad Económica\n * - Giro Mercantil\n *\n * @example\n * ```typescript\n * if (client instanceof MexClient) {\n * console.log(`RFC: ${client.rfc}`);\n * console.log(`CURP: ${client.curp}`);\n * }\n * ```\n */\nexport class MexClient extends Client {\n // ─────────────────────────────────────────────────────────────────\n // Mexico Jurisdiction Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Mexico-specific jurisdiction data\n */\n protected get mexicoData(): MexJurisdictionData | undefined {\n return (this._data as MexClientData).jurisdictions?.MX;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Tax Identifiers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * RFC (Registro Federal de Contribuyentes)\n * Tax identification number\n */\n get rfc(): string | undefined {\n return this.mexicoData?.rfc;\n }\n\n /**\n * CURP (Clave Única de Registro de Población)\n * Only applicable for personas físicas\n */\n get curp(): string | undefined {\n return this.mexicoData?.curp;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Economic Activity\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Economic activity classification code\n */\n get actividadEconomica(): string | undefined {\n return this.mexicoData?.actividadEconomica;\n }\n\n /**\n * Business sector (giro mercantil)\n */\n get giroMercantil(): string | undefined {\n return this.mexicoData?.giroMercantil;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Actividades Vulnerables\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether client is registered for any Actividad Vulnerable\n */\n get isActividadVulnerable(): boolean {\n const av = this.mexicoData?.actividadVulnerable;\n if (!av) return false;\n return !!(av.AVI || av.JYS || av.TSC);\n }\n\n /**\n * Activity codes the client is registered for\n */\n get activityCodes(): string[] {\n const av = this.mexicoData?.actividadVulnerable;\n if (!av) return [];\n const codes: string[] = [];\n if (av.AVI) codes.push(\"AVI\");\n if (av.JYS) codes.push(\"JYS\");\n if (av.TSC) codes.push(\"TSC\");\n return codes;\n }\n\n /**\n * Checks if registered for a specific activity\n */\n hasActivity(code: \"AVI\" | \"JYS\" | \"TSC\"): boolean {\n return this.activityCodes.includes(code);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexClient(${this.id}, ${this.name}, RFC: ${this.rfc ?? \"N/A\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ClientModel } from \"../types\";\n\n/**\n * Check if client is a Mexico client\n */\nexport function isMexClient(client: ClientModel): client is MexClient {\n return client instanceof MexClient;\n}\n","/**\n * Mexico Transaction Model\n *\n * Extends base Transaction with Mexico-specific accessors.\n */\n\nimport { Transaction, type TransactionData } from \"../Transaction\";\nimport type { MexTransactionJurisdictionData } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Transaction data with Mexico jurisdiction\n */\nexport interface MexTransactionData extends TransactionData {\n jurisdictions?: {\n MX?: MexTransactionJurisdictionData;\n [key: string]: unknown;\n };\n}\n\n// ===========================\n// MexTransaction Model\n// ===========================\n\n/**\n * Mexico Transaction Model.\n *\n * Provides typed accessors for Mexico-specific transaction data.\n *\n * @example\n * ```typescript\n * if (txn instanceof MexTransaction) {\n * console.log(`Activities: ${txn.activityCodes.join(\", \")}`);\n * }\n * ```\n */\nexport class MexTransaction extends Transaction {\n // ─────────────────────────────────────────────────────────────────\n // Mexico Jurisdiction Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Mexico-specific jurisdiction data\n */\n protected get mexicoData(): MexTransactionJurisdictionData | undefined {\n return (this._data as MexTransactionData).jurisdictions?.MX;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Actividades Vulnerables\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether transaction is related to any Actividad Vulnerable\n */\n get isActividadVulnerable(): boolean {\n const av = this.mexicoData?.actividadVulnerable;\n if (!av) return false;\n return !!(av.AVI || av.JYS || av.TSC);\n }\n\n /**\n * Activity codes this transaction is associated with\n */\n get activityCodes(): string[] {\n const av = this.mexicoData?.actividadVulnerable;\n if (!av) return [];\n const codes: string[] = [];\n if (av.AVI) codes.push(\"AVI\");\n if (av.JYS) codes.push(\"JYS\");\n if (av.TSC) codes.push(\"TSC\");\n return codes;\n }\n\n /**\n * Checks if transaction is for a specific activity\n */\n hasActivity(code: \"AVI\" | \"JYS\" | \"TSC\"): boolean {\n return this.activityCodes.includes(code);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexTransaction(${this.id}, ${this.formattedAmount}, Activities: [${this.activityCodes.join(\", \")}])`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { TransactionModel } from \"../types\";\n\n/**\n * Check if transaction is a Mexico transaction\n */\nexport function isMexTransaction(txn: TransactionModel): txn is MexTransaction {\n return txn instanceof MexTransaction;\n}\n","/**\n * Mexico Bank Account Model\n *\n * Extends BankAccount with Mexico-specific accessors.\n * Data is flattened at root level (clabe, codigoBanco, codigoPlaza).\n */\n\nimport type { MexBankAccount as MexBankAccountSchema } from \"@artu-ai/shared\";\nimport { BankAccount } from \"../BankAccount\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Mexico bank account data (with MX-specific fields at root)\n */\nexport type MexBankAccountData = MexBankAccountSchema;\n\n// ===========================\n// MexBankAccount Model\n// ===========================\n\n/**\n * Mexico Bank Account Model.\n *\n * Provides typed accessors for Mexico-specific fields like CLABE.\n *\n * @example\n * ```typescript\n * const account = await sdk.bankAccounts.retrieve(id);\n *\n * if (account.country === \"MX\") {\n * // account is MexBankAccount\n * console.log(`CLABE: ${account.clabe}`);\n * console.log(`Bank Code: ${account.codigoBanco}`);\n * }\n * ```\n */\nexport class MexBankAccount extends BankAccount {\n // Narrow the data type for Mexico-specific fields\n declare protected _data: MexBankAccountData;\n\n // ─────────────────────────────────────────────────────────────────\n // CLABE (Clave Bancaria Estandarizada)\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * CLABE (18-digit Mexican interbank code)\n *\n * The CLABE is structured as:\n * - Digits 1-3: Bank code\n * - Digits 4-6: Plaza (branch location) code\n * - Digits 7-17: Account number\n * - Digit 18: Check digit\n */\n get clabe(): string | undefined {\n return this._data.clabe;\n }\n\n /**\n * Bank code from CLABE (first 3 digits)\n */\n get codigoBanco(): string | undefined {\n return this._data.codigoBanco;\n }\n\n /**\n * Plaza (branch location) code from CLABE (digits 4-6)\n */\n get codigoPlaza(): string | undefined {\n return this._data.codigoPlaza;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Formatting\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Returns a masked CLABE (shows last 4 digits)\n */\n get maskedClabe(): string | undefined {\n const clabe = this.clabe;\n if (!clabe) return undefined;\n const lastFour = clabe.slice(-4);\n return `**************${lastFour}`;\n }\n\n /**\n * Returns a formatted CLABE with spaces for readability\n * Format: XXX XXX XXXXXXXXXXX X\n */\n get formattedClabe(): string | undefined {\n const clabe = this.clabe;\n if (!clabe || clabe.length !== 18) return clabe;\n return `${clabe.slice(0, 3)} ${clabe.slice(3, 6)} ${clabe.slice(6, 17)} ${clabe.slice(17)}`;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexBankAccount(${this.id}, ${this.bankName}, ${this.maskedClabe ?? this.maskedAccountNumber})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { BankAccountModel } from \"../types\";\n\n/**\n * Check if bank account is a Mexico bank account\n */\nexport function isMexBankAccount(\n account: BankAccountModel\n): account is MexBankAccount {\n return account instanceof MexBankAccount;\n}\n","/**\n * Mexico Address Model\n *\n * Extends Address with Mexico-specific accessors for the standard\n * Mexican address format: street, exteriorNumber, interiorNumber, neighborhood.\n */\n\nimport type { MexAddressData } from \"@artu-ai/shared\";\nimport { Address } from \"../Address\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Mexico-specific address data\n */\nexport type { MexAddressData };\n\n// ===========================\n// MexAddress Model\n// ===========================\n\n/**\n * Mexico Address Model.\n *\n * Extends `Address` with Mexico-specific accessors for the standard\n * Mexican address format.\n *\n * @example\n * ```typescript\n * if (address instanceof MexAddress) {\n * console.log(`Street: ${address.street}`);\n * console.log(`Number: ${address.exteriorNumber}`);\n * console.log(`Neighborhood: ${address.neighborhood}`);\n * console.log(`Formatted: ${address.formattedMexican}`);\n * }\n * ```\n */\nexport class MexAddress extends Address {\n // ─────────────────────────────────────────────────────────────────\n // Mexico-Specific Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Mexico-specific address data\n */\n protected get mexicoData(): MexAddressData | undefined {\n return this._data.jurisdictions?.MX as MexAddressData | undefined;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Mexico Address Fields\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Exterior number (número exterior)\n * @example \"222\", \"S/N\"\n */\n get exteriorNumber(): string | undefined {\n return this.mexicoData?.exteriorNumber;\n }\n\n /**\n * Interior number (número interior)\n * @example \"Piso 5\", \"Depto. 301\", \"Local A\"\n */\n get interiorNumber(): string | undefined {\n return this.mexicoData?.interiorNumber;\n }\n\n /**\n * Neighborhood/Colony (colonia)\n * @example \"Juárez\", \"Roma Norte\", \"Polanco\"\n */\n get neighborhood(): string | undefined {\n return this.mexicoData?.neighborhood;\n }\n\n /**\n * Municipality or delegation (municipio/alcaldía)\n * @example \"Cuauhtémoc\", \"Miguel Hidalgo\"\n */\n get municipality(): string | undefined {\n return this.mexicoData?.municipality;\n }\n\n /**\n * Between streets reference (entre calles)\n * @example \"Between Varsovia and Praga\"\n */\n get betweenStreets(): string | undefined {\n return this.mexicoData?.betweenStreets;\n }\n\n /**\n * Additional reference (referencia)\n * @example \"Blue building in front of the park\"\n */\n get reference(): string | undefined {\n return this.mexicoData?.reference;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Formatting\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Street address line with number (Mexican format)\n * @example \"Paseo de la Reforma 222 Int. Piso 5\"\n */\n get streetLine(): string {\n const parts = [this.street, this.exteriorNumber];\n if (this.interiorNumber) {\n parts.push(`Int. ${this.interiorNumber}`);\n }\n return parts.filter(Boolean).join(\" \");\n }\n\n /**\n * Returns a formatted single-line address in Mexican format\n * @example \"Paseo de la Reforma 222, Col. Juárez, 06600 Ciudad de México, CDMX\"\n */\n get formattedMexican(): string {\n const parts = [\n this.streetLine,\n this.neighborhood ? `Col. ${this.neighborhood}` : undefined,\n `${this.postalCode} ${this.city}`,\n this.state,\n ].filter(Boolean);\n return parts.join(\", \");\n }\n\n /**\n * Returns a formatted multi-line address in Mexican format\n */\n get formattedMexicanMultiLine(): string {\n const lines = [\n this.streetLine,\n this.neighborhood ? `Col. ${this.neighborhood}` : undefined,\n this.municipality ? `${this.municipality}` : undefined,\n `${this.postalCode} ${this.city}, ${this.state}`,\n this.betweenStreets,\n this.reference,\n ].filter(Boolean);\n return lines.join(\"\\n\");\n }\n\n /**\n * Override the base formatted to use Mexican format\n */\n override get formatted(): string {\n return this.formattedMexican;\n }\n\n /**\n * Override the base formattedMultiLine to use Mexican format\n */\n override get formattedMultiLine(): string {\n return this.formattedMexicanMultiLine;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n const location = this.neighborhood || this.city;\n return `MexAddress(${this.id}, ${this.type}, ${location})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { AddressModel } from \"../types\";\n\n/**\n * Check if address is a Mexico address\n */\nexport function isMexAddress(address: AddressModel): address is MexAddress {\n return address instanceof MexAddress;\n}\n","/**\n * Mexico Document Models\n *\n * Type-specific document models with typed field accessors.\n * Provides helpers for accessing extracted document data.\n */\n\nimport { Document, type DocumentData } from \"../Document\";\nimport {\n type IneFrontFields,\n type IneBackFields,\n type CurpDocumentFields,\n type RfcConstanciaFields,\n type AddressProofFields,\n type ActaConstitutivaFields,\n type PoderNotarialFields,\n type PassportFields,\n MexDocumentType,\n} from \"@artu-ai/shared\";\n\n/**\n * Union of all Mexico document field types\n */\nexport type MexDocumentFields =\n | IneFrontFields\n | IneBackFields\n | PassportFields\n | CurpDocumentFields\n | RfcConstanciaFields\n | AddressProofFields\n | ActaConstitutivaFields\n | PoderNotarialFields;\n\n// ─────────────────────────────────────────────────────────────────\n// Base Mexico Document\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Mexico document model - base class for all Mexico documents\n */\nexport class MexDocument extends Document {\n /**\n * Mexico document type\n */\n override get type(): MexDocumentType {\n return this._data.type as MexDocumentType;\n }\n\n /**\n * Document fields - typed as union of all Mexico document field types\n *\n * For specific field types, use type-specific document classes:\n * - MexIneFrontDocument.ineFields\n * - MexPassportDocument.passportFields\n * - etc.\n */\n override get fields(): Partial<MexDocumentFields> | undefined {\n return (\n this._data as DocumentData & { fields?: Partial<MexDocumentFields> }\n ).fields;\n }\n\n /**\n * Check if this is an INE front document\n */\n get isIneFront(): boolean {\n return this.type === MexDocumentType.IneFront;\n }\n\n /**\n * Check if this is an INE back document\n */\n get isIneBack(): boolean {\n return this.type === MexDocumentType.IneBack;\n }\n\n /**\n * Check if this is a passport document\n */\n get isPassport(): boolean {\n return this.type === MexDocumentType.Passport;\n }\n\n /**\n * Check if this is a CURP document\n */\n get isCurp(): boolean {\n return this.type === MexDocumentType.Curp;\n }\n\n /**\n * Check if this is an RFC constancia document\n */\n get isRfcConstancia(): boolean {\n return this.type === MexDocumentType.RfcConstancia;\n }\n\n /**\n * Check if this is an address proof document\n */\n get isAddressProof(): boolean {\n return this.type === MexDocumentType.AddressProof;\n }\n\n /**\n * Check if this is an acta constitutiva document\n */\n get isActaConstitutiva(): boolean {\n return this.type === MexDocumentType.ActaConstitutiva;\n }\n\n /**\n * Check if this is a poder notarial document\n */\n get isPoderNotarial(): boolean {\n return this.type === MexDocumentType.PoderNotarial;\n }\n}\n\n// ─────────────────────────────────────────────────────────────────\n// INE Front Document\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * INE Front document model with typed field accessors\n *\n * @example\n * ```typescript\n * const doc = await sdk.mex.documents.retrieve(id) as MexIneFrontDocument;\n *\n * if (doc.isIneFront) {\n * console.log(doc.claveElector); // Typed accessor\n * console.log(doc.curp);\n * console.log(doc.fullName);\n * }\n * ```\n */\nexport class MexIneFrontDocument extends MexDocument {\n /**\n * Typed INE front fields\n */\n get ineFields(): Partial<IneFrontFields> | undefined {\n return this.fields as Partial<IneFrontFields> | undefined;\n }\n\n /** Voter ID number (Clave de Elector) */\n get claveElector(): string | undefined {\n return this.ineFields?.claveElector;\n }\n\n /** CURP */\n get curp(): string | undefined {\n return this.ineFields?.curp;\n }\n\n /** Full name as shown on INE */\n get fullName(): string | undefined {\n return this.ineFields?.fullName;\n }\n\n /** Paternal surname */\n get paternalSurname(): string | undefined {\n return this.ineFields?.paternalSurname;\n }\n\n /** Maternal surname */\n get maternalSurname(): string | undefined {\n return this.ineFields?.maternalSurname;\n }\n\n /** Given name(s) */\n get givenNames(): string | undefined {\n return this.ineFields?.givenNames;\n }\n\n /** Date of birth */\n get dateOfBirth(): Date | undefined {\n const val = this.ineFields?.dateOfBirth;\n return val ? new Date(val) : undefined;\n }\n\n /** Gender (H = Hombre, M = Mujer) */\n get gender(): \"H\" | \"M\" | undefined {\n return this.ineFields?.gender;\n }\n\n /** State of birth */\n get birthState(): string | undefined {\n return this.ineFields?.birthState;\n }\n\n /** Electoral section */\n get section(): string | undefined {\n return this.ineFields?.section;\n }\n\n /** Registration year */\n get registrationYear(): number | undefined {\n return this.ineFields?.registrationYear;\n }\n\n /** Expiration year */\n get expirationYear(): number | undefined {\n return this.ineFields?.expirationYear;\n }\n\n /** Full address from INE */\n get address(): {\n street?: string;\n exteriorNumber?: string;\n interiorNumber?: string;\n neighborhood?: string;\n municipality?: string;\n state?: string;\n postalCode?: string;\n } {\n return {\n street: this.ineFields?.street,\n exteriorNumber: this.ineFields?.exteriorNumber,\n interiorNumber: this.ineFields?.interiorNumber,\n neighborhood: this.ineFields?.neighborhood,\n municipality: this.ineFields?.municipality,\n state: this.ineFields?.state,\n postalCode: this.ineFields?.postalCode,\n };\n }\n}\n\n// ─────────────────────────────────────────────────────────────────\n// INE Back Document\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * INE Back document model with typed field accessors\n */\nexport class MexIneBackDocument extends MexDocument {\n /**\n * Typed INE back fields\n */\n get ineBackFields(): Partial<IneBackFields> | undefined {\n return this.fields as Partial<IneBackFields> | undefined;\n }\n\n /** OCR number */\n get ocrNumber(): string | undefined {\n return this.ineBackFields?.ocrNumber;\n }\n\n /** CIC number */\n get cicNumber(): string | undefined {\n return this.ineBackFields?.cicNumber;\n }\n\n /** Citizen ID (9 digits) */\n get citizenId(): string | undefined {\n return this.ineBackFields?.citizenId;\n }\n\n /** MRZ lines (Machine Readable Zone) */\n get mrz(): { line1?: string; line2?: string; line3?: string } {\n return {\n line1: this.ineBackFields?.mrzLine1,\n line2: this.ineBackFields?.mrzLine2,\n line3: this.ineBackFields?.mrzLine3,\n };\n }\n}\n\n// ─────────────────────────────────────────────────────────────────\n// Passport Document\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Passport document model with typed field accessors\n */\nexport class MexPassportDocument extends MexDocument {\n /**\n * Typed passport fields\n */\n get passportFields(): Partial<PassportFields> | undefined {\n return this.fields as Partial<PassportFields> | undefined;\n }\n\n /** Passport number */\n get passportNumber(): string | undefined {\n return this.passportFields?.passportNumber;\n }\n\n /** Issuing country */\n get issuingCountry(): string | undefined {\n return this.passportFields?.issuingCountry;\n }\n\n /** Nationality */\n get nationality(): string | undefined {\n return this.passportFields?.nationality;\n }\n\n /** Full name as shown on passport */\n get fullName(): string | undefined {\n return this.passportFields?.fullName;\n }\n\n /** Given name(s) */\n get givenNames(): string | undefined {\n return this.passportFields?.givenNames;\n }\n\n /** Surname(s) */\n get surnames(): string | undefined {\n return this.passportFields?.surnames;\n }\n\n /** Date of birth */\n get dateOfBirth(): Date | undefined {\n const val = this.passportFields?.dateOfBirth;\n return val ? new Date(val) : undefined;\n }\n\n /** Place of birth */\n get placeOfBirth(): string | undefined {\n return this.passportFields?.placeOfBirth;\n }\n\n /** Gender */\n get gender(): \"M\" | \"F\" | \"X\" | undefined {\n return this.passportFields?.gender;\n }\n\n /** Issue date */\n get issueDate(): Date | undefined {\n const val = this.passportFields?.issueDate;\n return val ? new Date(val) : undefined;\n }\n\n /** Expiration date */\n get passportExpirationDate(): Date | undefined {\n const val = this.passportFields?.expirationDate;\n return val ? new Date(val) : undefined;\n }\n\n /** MRZ lines */\n get mrz(): { line1?: string; line2?: string } {\n return {\n line1: this.passportFields?.mrzLine1,\n line2: this.passportFields?.mrzLine2,\n };\n }\n}\n\n// ─────────────────────────────────────────────────────────────────\n// CURP Document\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * CURP document model with typed field accessors\n */\nexport class MexCurpDocument extends MexDocument {\n /**\n * Typed CURP fields\n */\n get curpFields(): Partial<CurpDocumentFields> | undefined {\n return this.fields as Partial<CurpDocumentFields> | undefined;\n }\n\n /** CURP (18 character ID) */\n get curp(): string | undefined {\n return this.curpFields?.curp;\n }\n\n /** Full name */\n get fullName(): string | undefined {\n return this.curpFields?.fullName;\n }\n\n /** Paternal surname */\n get paternalSurname(): string | undefined {\n return this.curpFields?.paternalSurname;\n }\n\n /** Maternal surname */\n get maternalSurname(): string | undefined {\n return this.curpFields?.maternalSurname;\n }\n\n /** Given name(s) */\n get givenNames(): string | undefined {\n return this.curpFields?.givenNames;\n }\n\n /** Date of birth */\n get dateOfBirth(): Date | undefined {\n const val = this.curpFields?.dateOfBirth;\n return val ? new Date(val) : undefined;\n }\n\n /** Gender */\n get gender(): \"H\" | \"M\" | undefined {\n return this.curpFields?.gender;\n }\n\n /** State of birth */\n get birthState(): string | undefined {\n return this.curpFields?.birthState;\n }\n\n /** Verification URL */\n get verificationUrl(): string | undefined {\n return this.curpFields?.verificationUrl;\n }\n}\n\n// ─────────────────────────────────────────────────────────────────\n// RFC Constancia Document\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * RFC Constancia document model with typed field accessors\n */\nexport class MexRfcConstanciaDocument extends MexDocument {\n /**\n * Typed RFC fields\n */\n get rfcFields(): Partial<RfcConstanciaFields> | undefined {\n return this.fields as Partial<RfcConstanciaFields> | undefined;\n }\n\n /** RFC (tax ID) */\n get rfc(): string | undefined {\n return this.rfcFields?.rfc;\n }\n\n /** Full name or business name */\n get fullName(): string | undefined {\n return this.rfcFields?.fullName;\n }\n\n /** CURP (for individuals) */\n get curp(): string | undefined {\n return this.rfcFields?.curp;\n }\n\n /** Tax regime(s) */\n get taxRegimes(): string[] | undefined {\n return this.rfcFields?.taxRegimes;\n }\n\n /** Economic activities */\n get economicActivities(): string[] | undefined {\n return this.rfcFields?.economicActivities;\n }\n\n /** Tax obligations */\n get taxObligations(): string[] | undefined {\n return this.rfcFields?.taxObligations;\n }\n\n /** Registration date */\n get registrationDate(): Date | undefined {\n const val = this.rfcFields?.registrationDate;\n return val ? new Date(val) : undefined;\n }\n\n /** Registered address */\n get address(): {\n street?: string;\n exteriorNumber?: string;\n interiorNumber?: string;\n neighborhood?: string;\n municipality?: string;\n state?: string;\n postalCode?: string;\n } {\n return {\n street: this.rfcFields?.street,\n exteriorNumber: this.rfcFields?.exteriorNumber,\n interiorNumber: this.rfcFields?.interiorNumber,\n neighborhood: this.rfcFields?.neighborhood,\n municipality: this.rfcFields?.municipality,\n state: this.rfcFields?.state,\n postalCode: this.rfcFields?.postalCode,\n };\n }\n}\n\n// ─────────────────────────────────────────────────────────────────\n// Address Proof Document\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Address proof document model with typed field accessors\n * (Comprobante de Domicilio, Recibo de Luz/Agua, Estado de Cuenta)\n */\nexport class MexAddressProofDocument extends MexDocument {\n /**\n * Typed address proof fields\n */\n get addressProofFields(): Partial<AddressProofFields> | undefined {\n return this.fields as Partial<AddressProofFields> | undefined;\n }\n\n /** Account holder name */\n get accountHolderName(): string | undefined {\n return this.addressProofFields?.accountHolderName;\n }\n\n /** Service type */\n get serviceType(): string | undefined {\n return this.addressProofFields?.serviceType;\n }\n\n /** Provider name */\n get providerName(): string | undefined {\n return this.addressProofFields?.providerName;\n }\n\n /** Account/contract number */\n get accountNumber(): string | undefined {\n return this.addressProofFields?.accountNumber;\n }\n\n /** Statement date */\n get statementDate(): Date | undefined {\n const val = this.addressProofFields?.statementDate;\n return val ? new Date(val) : undefined;\n }\n\n /** Service address */\n get serviceAddress(): {\n street?: string;\n exteriorNumber?: string;\n interiorNumber?: string;\n neighborhood?: string;\n municipality?: string;\n state?: string;\n postalCode?: string;\n } {\n return {\n street: this.addressProofFields?.street,\n exteriorNumber: this.addressProofFields?.exteriorNumber,\n interiorNumber: this.addressProofFields?.interiorNumber,\n neighborhood: this.addressProofFields?.neighborhood,\n municipality: this.addressProofFields?.municipality,\n state: this.addressProofFields?.state,\n postalCode: this.addressProofFields?.postalCode,\n };\n }\n}\n\n// ─────────────────────────────────────────────────────────────────\n// Acta Constitutiva Document\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Acta Constitutiva (Articles of Incorporation) document model\n * with typed field accessors\n */\nexport class MexActaConstitutivaDocument extends MexDocument {\n /**\n * Typed acta constitutiva fields\n */\n get actaFields(): Partial<ActaConstitutivaFields> | undefined {\n return this.fields as Partial<ActaConstitutivaFields> | undefined;\n }\n\n /** Company legal name (Denominación o Razón Social) */\n get companyName(): string | undefined {\n return this.actaFields?.companyName;\n }\n\n /** Company RFC (tax ID) */\n get companyRfc(): string | undefined {\n return this.actaFields?.companyRfc;\n }\n\n /** Type of legal entity */\n get entityType(): string | undefined {\n return this.actaFields?.entityType;\n }\n\n /** Notary number (Número de Notaría) */\n get notaryNumber(): number | undefined {\n return this.actaFields?.notaryNumber;\n }\n\n /** Notary name */\n get notaryName(): string | undefined {\n return this.actaFields?.notaryName;\n }\n\n /** Notary state/city */\n get notaryLocation(): string | undefined {\n return this.actaFields?.notaryLocation;\n }\n\n /** Instrument number (Número de Escritura) */\n get instrumentNumber(): string | undefined {\n return this.actaFields?.instrumentNumber;\n }\n\n /** Book number (Número de Libro) */\n get bookNumber(): string | undefined {\n return this.actaFields?.bookNumber;\n }\n\n /** Volume number (Número de Volumen) */\n get volumeNumber(): string | undefined {\n return this.actaFields?.volumeNumber;\n }\n\n /** Date of incorporation */\n get incorporationDate(): Date | undefined {\n const val = this.actaFields?.incorporationDate;\n return val ? new Date(val) : undefined;\n }\n\n /** Registration number at Public Registry of Commerce */\n get publicRegistryNumber(): string | undefined {\n return this.actaFields?.publicRegistryNumber;\n }\n\n /** Public Registry of Commerce location */\n get publicRegistryLocation(): string | undefined {\n return this.actaFields?.publicRegistryLocation;\n }\n\n /** Registration date at Public Registry */\n get publicRegistryDate(): Date | undefined {\n const val = this.actaFields?.publicRegistryDate;\n return val ? new Date(val) : undefined;\n }\n\n /** Corporate purpose (Objeto Social) */\n get corporatePurpose(): string | undefined {\n return this.actaFields?.corporatePurpose;\n }\n\n /** Duration of the company */\n get duration(): string | undefined {\n return this.actaFields?.duration;\n }\n\n /** Initial capital (Capital Social Inicial) */\n get initialCapital(): number | undefined {\n return this.actaFields?.initialCapital;\n }\n\n /** Capital currency */\n get capitalCurrency(): string | undefined {\n return this.actaFields?.capitalCurrency;\n }\n\n /** List of founding partners/shareholders */\n get founders():\n | {\n name: string;\n rfc?: string;\n capitalContribution?: number;\n percentageOwnership?: number;\n }[]\n | undefined {\n return this.actaFields?.founders;\n }\n\n /** Legal representatives mentioned */\n get legalRepresentatives(): string[] | undefined {\n return this.actaFields?.legalRepresentatives;\n }\n\n /** Registered address */\n get registeredAddress(): {\n street?: string;\n exteriorNumber?: string;\n interiorNumber?: string;\n neighborhood?: string;\n municipality?: string;\n state?: string;\n postalCode?: string;\n } {\n return {\n street: this.actaFields?.street,\n exteriorNumber: this.actaFields?.exteriorNumber,\n interiorNumber: this.actaFields?.interiorNumber,\n neighborhood: this.actaFields?.neighborhood,\n municipality: this.actaFields?.municipality,\n state: this.actaFields?.state,\n postalCode: this.actaFields?.postalCode,\n };\n }\n}\n\n// ─────────────────────────────────────────────────────────────────\n// Poder Notarial Document\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Poder Notarial (Notarized Power of Attorney) document model\n * with typed field accessors\n */\nexport class MexPoderNotarialDocument extends MexDocument {\n /**\n * Typed poder notarial fields\n */\n get poderFields(): Partial<PoderNotarialFields> | undefined {\n return this.fields as Partial<PoderNotarialFields> | undefined;\n }\n\n /** Type of power granted */\n get powerType(): string | undefined {\n return this.poderFields?.powerType;\n }\n\n /** Grantor name (Poderdante - individual/company giving power) */\n get grantorName(): string | undefined {\n return this.poderFields?.grantorName;\n }\n\n /** Grantor RFC */\n get grantorRfc(): string | undefined {\n return this.poderFields?.grantorRfc;\n }\n\n /** Grantor type */\n get grantorType(): \"individual\" | \"company\" | undefined {\n return this.poderFields?.grantorType;\n }\n\n /** Attorney-in-fact name (Apoderado - individual receiving power) */\n get attorneyName(): string | undefined {\n return this.poderFields?.attorneyName;\n }\n\n /** Attorney RFC */\n get attorneyRfc(): string | undefined {\n return this.poderFields?.attorneyRfc;\n }\n\n /** Attorney CURP */\n get attorneyCurp(): string | undefined {\n return this.poderFields?.attorneyCurp;\n }\n\n /** Notary number */\n get notaryNumber(): number | undefined {\n return this.poderFields?.notaryNumber;\n }\n\n /** Notary name */\n get notaryName(): string | undefined {\n return this.poderFields?.notaryName;\n }\n\n /** Notary state/city */\n get notaryLocation(): string | undefined {\n return this.poderFields?.notaryLocation;\n }\n\n /** Instrument number (Número de Escritura) */\n get instrumentNumber(): string | undefined {\n return this.poderFields?.instrumentNumber;\n }\n\n /** Book number */\n get bookNumber(): string | undefined {\n return this.poderFields?.bookNumber;\n }\n\n /** Volume number */\n get volumeNumber(): string | undefined {\n return this.poderFields?.volumeNumber;\n }\n\n /** Date power was granted */\n get grantDate(): Date | undefined {\n const val = this.poderFields?.grantDate;\n return val ? new Date(val) : undefined;\n }\n\n /** Expiration date (if applicable) */\n get poderExpirationDate(): Date | undefined {\n const val = this.poderFields?.expirationDate;\n return val ? new Date(val) : undefined;\n }\n\n /** Whether the power is revocable */\n get isRevocable(): boolean | undefined {\n return this.poderFields?.isRevocable;\n }\n\n /** Scope/limitations of the power */\n get scope(): string | undefined {\n return this.poderFields?.scope;\n }\n\n /** Specific acts authorized (for special powers) */\n get authorizedActs(): string[] | undefined {\n return this.poderFields?.authorizedActs;\n }\n\n /** Registration number (if registered) */\n get registrationNumber(): string | undefined {\n return this.poderFields?.registrationNumber;\n }\n\n /** Whether this power has been revoked */\n get isRevoked(): boolean | undefined {\n return this.poderFields?.isRevoked;\n }\n\n /** Revocation date */\n get revocationDate(): Date | undefined {\n const val = this.poderFields?.revocationDate;\n return val ? new Date(val) : undefined;\n }\n}\n\n// ─────────────────────────────────────────────────────────────────\n// Type Guards\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Check if document is a Mexico document\n */\nexport function isMexDocument(doc: Document): doc is MexDocument {\n return doc.isMexico;\n}\n\n/**\n * Check if document is INE front\n */\nexport function isMexIneFront(doc: Document): doc is MexIneFrontDocument {\n return doc.isMexico && doc.type === MexDocumentType.IneFront;\n}\n\n/**\n * Check if document is INE back\n */\nexport function isMexIneBack(doc: Document): doc is MexIneBackDocument {\n return doc.isMexico && doc.type === MexDocumentType.IneBack;\n}\n\n/**\n * Check if document is a passport\n */\nexport function isMexPassport(doc: Document): doc is MexPassportDocument {\n return doc.isMexico && doc.type === MexDocumentType.Passport;\n}\n\n/**\n * Check if document is a CURP\n */\nexport function isMexCurp(doc: Document): doc is MexCurpDocument {\n return doc.isMexico && doc.type === MexDocumentType.Curp;\n}\n\n/**\n * Check if document is an RFC constancia\n */\nexport function isMexRfcConstancia(\n doc: Document\n): doc is MexRfcConstanciaDocument {\n return doc.isMexico && doc.type === MexDocumentType.RfcConstancia;\n}\n\n/**\n * Check if document is an address proof\n */\nexport function isMexAddressProof(\n doc: Document\n): doc is MexAddressProofDocument {\n return doc.isMexico && doc.type === MexDocumentType.AddressProof;\n}\n\n/**\n * Check if document is an acta constitutiva\n */\nexport function isMexActaConstitutiva(\n doc: Document\n): doc is MexActaConstitutivaDocument {\n return doc.isMexico && doc.type === MexDocumentType.ActaConstitutiva;\n}\n\n/**\n * Check if document is a poder notarial\n */\nexport function isMexPoderNotarial(\n doc: Document\n): doc is MexPoderNotarialDocument {\n return doc.isMexico && doc.type === MexDocumentType.PoderNotarial;\n}\n","/**\n * Mexico Report Model\n *\n * Extends base Report with Mexico-specific accessors.\n */\n\nimport { Report, type ReportData } from \"../Report\";\nimport type { MexReportJurisdictionData } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Report data with Mexico jurisdiction\n */\nexport interface MexReportData extends ReportData {\n jurisdictions?: {\n MX?: MexReportJurisdictionData;\n [key: string]: unknown;\n };\n}\n\n// ===========================\n// MexReport Model\n// ===========================\n\n/**\n * Mexico Report Model.\n *\n * Provides typed accessors for Mexico-specific data.\n * Extended by MexActividadVulnerableReport.\n *\n * @example\n * ```typescript\n * if (report instanceof MexReport) {\n * console.log(`Activities: ${report.activityCodes.join(\", \")}`);\n * }\n * ```\n */\nexport class MexReport extends Report {\n // ─────────────────────────────────────────────────────────────────\n // Mexico Jurisdiction Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Mexico-specific jurisdiction data\n */\n protected get mexicoData(): MexReportJurisdictionData | undefined {\n return (this._data as MexReportData).jurisdictions?.MX;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Actividad Vulnerable\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether this report is for an Actividad Vulnerable\n */\n get isActividadVulnerable(): boolean {\n const av = this.mexicoData?.actividadVulnerable;\n if (!av) return false;\n return !!(av.AVI || av.JYS || av.TSC);\n }\n\n /**\n * Activity codes with data in this report\n */\n get activityCodes(): string[] {\n const av = this.mexicoData?.actividadVulnerable;\n if (!av) return [];\n const codes: string[] = [];\n if (av.AVI) codes.push(\"AVI\");\n if (av.JYS) codes.push(\"JYS\");\n if (av.TSC) codes.push(\"TSC\");\n return codes;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexReport(${this.id}, ${this.status})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ReportModel } from \"../types\";\n\n/**\n * Check if report is a Mexico report\n */\nexport function isMexReport(report: ReportModel): report is MexReport {\n return report instanceof MexReport;\n}\n","/**\n * Mexico Report Item Model\n *\n * Extends base ReportItem with Mexico-specific accessors.\n */\n\nimport { ReportItem, type ReportItemData } from \"../ReportItem\";\nimport type { MexReportItemJurisdictionData } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Report item data with Mexico jurisdiction\n */\nexport interface MexReportItemData extends ReportItemData {\n jurisdictions?: {\n MX?: MexReportItemJurisdictionData;\n [key: string]: unknown;\n };\n}\n\n// ===========================\n// MexReportItem Model\n// ===========================\n\n/**\n * Mexico Report Item Model.\n *\n * Provides typed accessors for Mexico-specific data.\n * Extended by MexActividadVulnerableReportItem.\n */\nexport class MexReportItem extends ReportItem {\n // ─────────────────────────────────────────────────────────────────\n // Mexico Jurisdiction Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Mexico-specific jurisdiction data\n */\n protected get mexicoData(): MexReportItemJurisdictionData | undefined {\n return (this._data as MexReportItemData).jurisdictions?.MX;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Actividad Vulnerable\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether this item has Actividad Vulnerable data\n */\n get isActividadVulnerable(): boolean {\n const av = this.mexicoData?.actividadVulnerable;\n if (!av) return false;\n return !!(av.AVI || av.JYS || av.TSC);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexReportItem(${this.id}, ${this.clientName ?? \"Unknown\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ReportItemModel } from \"../types\";\n\n/**\n * Check if report item is a Mexico report item\n */\nexport function isMexReportItem(item: ReportItemModel): item is MexReportItem {\n return item instanceof MexReportItem;\n}\n","/**\n * Mexico Actividad Vulnerable Base Client\n *\n * Common functionality for all Actividad Vulnerable clients.\n * Extended by activity-specific models (AVI, JYS, TSC).\n */\n\nimport { MexClient } from \"../MexClient\";\n\n// ===========================\n// MexActividadVulnerableClient Model\n// ===========================\n\n/**\n * Base model for Mexico Actividad Vulnerable clients.\n *\n * Provides common accessors for all activity types.\n * Extended by MexAVIClient, MexJYSClient, MexTSCClient.\n *\n * @example\n * ```typescript\n * if (client instanceof MexActividadVulnerableClient) {\n * console.log(`Activities: ${client.activityCodes.join(\", \")}`);\n * }\n * ```\n */\nexport class MexActividadVulnerableClient extends MexClient {\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexActividadVulnerableClient(${this.id}, ${this.name}, Activities: [${this.activityCodes.join(\", \")}])`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ClientModel } from \"../../types\";\n\n/**\n * Check if client is registered for any Actividad Vulnerable\n */\nexport function isActividadVulnerable(\n client: ClientModel\n): client is MexActividadVulnerableClient {\n return client instanceof MexActividadVulnerableClient;\n}\n","/**\n * Mexico AVI (Activos Virtuales) Client\n *\n * Specialized for virtual asset / cryptocurrency operations.\n */\n\nimport type { avi } from \"@artu-ai/shared\";\nimport { MexActividadVulnerableClient } from \"../MexActividadVulnerableClient\";\n\n// ===========================\n// MexAVIClient Model\n// ===========================\n\n/**\n * Mexico AVI Client Model.\n *\n * Provides typed accessors for virtual asset specific data.\n *\n * @example\n * ```typescript\n * if (client instanceof MexAVIClient) {\n * console.log(`Username: ${client.aviUsername}`);\n * }\n * ```\n */\nexport class MexAVIClient extends MexActividadVulnerableClient {\n // ─────────────────────────────────────────────────────────────────\n // AVI-Specific Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * AVI-specific activity data\n */\n protected get aviData(): avi.AVIClientData | undefined {\n return this.mexicoData?.actividadVulnerable?.AVI;\n }\n\n /**\n * Platform username for virtual asset operations\n */\n get username(): string | undefined {\n return this.aviData?.username;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexAVIClient(${this.id}, ${this.name}, Username: ${this.username ?? \"N/A\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ClientModel } from \"../../../types\";\n\n/**\n * Check if client is an AVI (Activos Virtuales) client\n */\nexport function isMexAVIClient(client: ClientModel): client is MexAVIClient {\n return client instanceof MexAVIClient;\n}\n","/**\n * Mexico JYS (Juegos y Sorteos) Client\n *\n * Specialized for gaming and lottery operations.\n */\n\nimport type { jys } from \"@artu-ai/shared\";\nimport { MexActividadVulnerableClient } from \"../MexActividadVulnerableClient\";\n\n// ===========================\n// MexJYSClient Model\n// ===========================\n\n/**\n * Mexico JYS Client Model.\n *\n * Provides typed accessors for gaming/lottery specific data.\n *\n * @example\n * ```typescript\n * if (client instanceof MexJYSClient) {\n * console.log(`JYS Client: ${client.name}`);\n * }\n * ```\n */\nexport class MexJYSClient extends MexActividadVulnerableClient {\n // ─────────────────────────────────────────────────────────────────\n // JYS-Specific Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * JYS-specific activity data\n */\n protected get jysData(): jys.JYSClientData | undefined {\n return this.mexicoData?.actividadVulnerable?.JYS;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexJYSClient(${this.id}, ${this.name})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ClientModel } from \"../../../types\";\n\n/**\n * Check if client is a JYS (Juegos y Sorteos) client\n */\nexport function isMexJYSClient(client: ClientModel): client is MexJYSClient {\n return client instanceof MexJYSClient;\n}\n","/**\n * Mexico TSC (Tarjetas de Servicio y Crédito) Client\n *\n * Specialized for service and credit card operations.\n */\n\nimport type { tsc } from \"@artu-ai/shared\";\nimport { MexActividadVulnerableClient } from \"../MexActividadVulnerableClient\";\n\n// ===========================\n// MexTSCClient Model\n// ===========================\n\n/**\n * Mexico TSC Client Model.\n *\n * Provides typed accessors for service/credit card specific data.\n *\n * @example\n * ```typescript\n * if (client instanceof MexTSCClient) {\n * console.log(`TSC Client: ${client.name}`);\n * }\n * ```\n */\nexport class MexTSCClient extends MexActividadVulnerableClient {\n // ─────────────────────────────────────────────────────────────────\n // TSC-Specific Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * TSC-specific activity data\n */\n protected get tscData(): tsc.TSCClientData | undefined {\n return this.mexicoData?.actividadVulnerable?.TSC;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexTSCClient(${this.id}, ${this.name})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ClientModel } from \"../../../types\";\n\n/**\n * Check if client is a TSC (Tarjetas de Servicio y Crédito) client\n */\nexport function isMexTSCClient(client: ClientModel): client is MexTSCClient {\n return client instanceof MexTSCClient;\n}\n","/**\n * Mexico Actividad Vulnerable Transaction Base\n *\n * Common functionality for all Actividad Vulnerable transactions.\n * Extended by activity-specific models (AVI, JYS, TSC).\n */\n\nimport { MexTransaction } from \"../MexTransaction\";\n\n// ===========================\n// MexActividadVulnerableTransaction Model\n// ===========================\n\n/**\n * Base model for Mexico Actividad Vulnerable transactions.\n *\n * Provides common accessors for all activity types.\n * Extended by MexAVITransaction, MexJYSTransaction, MexTSCTransaction.\n *\n * @example\n * ```typescript\n * if (txn instanceof MexActividadVulnerableTransaction) {\n * console.log(`Activities: ${txn.activityCodes.join(\", \")}`);\n * }\n * ```\n */\nexport class MexActividadVulnerableTransaction extends MexTransaction {\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexActividadVulnerableTransaction(${this.id}, ${this.formattedAmount}, Activities: [${this.activityCodes.join(\", \")}])`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { TransactionModel } from \"../../types\";\n\n/**\n * Check if transaction is for any Actividad Vulnerable\n */\nexport function isActividadVulnerableTransaction(\n txn: TransactionModel\n): txn is MexActividadVulnerableTransaction {\n return txn instanceof MexActividadVulnerableTransaction;\n}\n","/**\n * Mexico AVI (Activos Virtuales) Transaction\n *\n * Specialized for virtual asset / cryptocurrency transactions.\n */\n\nimport { avi } from \"@artu-ai/shared\";\nimport { MexActividadVulnerableTransaction } from \"../MexActividadVulnerableTransaction\";\n\n// ===========================\n// MexAVITransaction Model\n// ===========================\n\n/**\n * Mexico AVI Transaction Model.\n *\n * Provides typed accessors for virtual asset transaction data.\n *\n * @example\n * ```typescript\n * if (txn instanceof MexAVITransaction) {\n * console.log(`Operation: ${txn.operationType}`);\n * console.log(`Crypto: ${txn.crypto}`);\n * }\n * ```\n */\nexport class MexAVITransaction extends MexActividadVulnerableTransaction {\n // ─────────────────────────────────────────────────────────────────\n // AVI-Specific Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * AVI-specific transaction data\n */\n protected get aviData(): avi.AVITransactionData | undefined {\n return this.mexicoData?.actividadVulnerable?.AVI;\n }\n\n /**\n * Operation type (buy, sell, exchange, transfer, deposit, withdrawal)\n */\n get operationType(): string | undefined {\n return this.aviData?.operationType;\n }\n\n /**\n * Cryptocurrency/virtual asset code (for buy, sell, transfer operations)\n */\n get crypto(): string | undefined {\n const data = this.aviData;\n if (!data) return undefined;\n if (\"crypto\" in data) {\n return data.crypto;\n }\n return undefined;\n }\n\n /**\n * Amount of virtual asset (for buy, sell, transfer operations)\n */\n get cryptoAmount(): number | undefined {\n const data = this.aviData;\n if (!data) return undefined;\n if (\"cryptoAmount\" in data) {\n return data.cryptoAmount;\n }\n return undefined;\n }\n\n /**\n * Exchange rate to MXN (for buy, sell, transfer operations)\n */\n get cryptoExchangeRate(): string | undefined {\n const data = this.aviData;\n if (!data) return undefined;\n if (\"cryptoExchangeRate\" in data) {\n return data.cryptoExchangeRate;\n }\n return undefined;\n }\n\n /**\n * Description of the virtual asset (for buy, sell, transfer operations)\n */\n get cryptoDescription(): string | undefined {\n const data = this.aviData;\n if (!data) return undefined;\n if (\"cryptoDescription\" in data) {\n return data.cryptoDescription;\n }\n return undefined;\n }\n\n /**\n * Transaction hash (for blockchain operations)\n */\n get hash(): string | undefined {\n const data = this.aviData;\n if (!data) return undefined;\n if (\"hash\" in data) {\n return data.hash;\n }\n return undefined;\n }\n\n /**\n * Monetary instrument (for deposit/withdrawal operations)\n */\n get monetaryInstrument(): string | undefined {\n const data = this.aviData;\n if (!data) return undefined;\n if (\"monetaryInstrument\" in data) {\n return data.monetaryInstrument;\n }\n return undefined;\n }\n\n /**\n * Exchange data (for exchange operations)\n */\n get exchangeData():\n | Omit<AVIExchangeTransaction, \"operationType\" | \"hash\">\n | undefined {\n const data = this.aviData;\n if (!data || data.operationType !== avi.TipoOperacion.Exchange)\n return undefined;\n if (\"sent\" in data && \"received\" in data) {\n return { sent: data.sent, received: data.received };\n }\n return undefined;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexAVITransaction(${this.id}, ${this.formattedAmount}, ${this.operationType ?? \"unknown\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { TransactionModel } from \"../../../types\";\n\ntype AVIExchangeTransaction = avi.AVIExchangeTransaction;\n\n/**\n * Check if transaction is an AVI (Activos Virtuales) transaction\n */\nexport function isMexAVITransaction(\n txn: TransactionModel\n): txn is MexAVITransaction {\n return txn instanceof MexAVITransaction;\n}\n","/**\n * Mexico JYS (Juegos y Sorteos) Transaction\n *\n * Specialized for gaming and lottery transactions.\n */\n\nimport { jys } from \"@artu-ai/shared\";\nimport { MexActividadVulnerableTransaction } from \"../MexActividadVulnerableTransaction\";\n\n// ===========================\n// MexJYSTransaction Model\n// ===========================\n\n/**\n * Mexico JYS Transaction Model.\n *\n * Provides typed accessors for gaming/lottery transaction data.\n *\n * @example\n * ```typescript\n * if (txn instanceof MexJYSTransaction) {\n * console.log(`Operation: ${txn.operationType}`);\n * console.log(`Settlement: ${txn.settlementType}`);\n * }\n * ```\n */\nexport class MexJYSTransaction extends MexActividadVulnerableTransaction {\n // ─────────────────────────────────────────────────────────────────\n // JYS-Specific Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * JYS-specific transaction data\n */\n protected get jysData(): jys.JYSTransactionData | undefined {\n return this.mexicoData?.actividadVulnerable?.JYS;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Operation Fields\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Operation type (e.g., bet, prize, purchase)\n */\n get operationType(): string | undefined {\n return this.jysData?.operationType;\n }\n\n /**\n * Business line (e.g., casino, lottery, sports betting)\n */\n get businessLine(): string | undefined {\n return this.jysData?.businessLine;\n }\n\n /**\n * Operation method (e.g., in-individual, online)\n */\n get operationMethod(): string | undefined {\n return this.jysData?.operationMethod;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Branch Information\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Branch information where the transaction occurred\n */\n get branchInfo(): jys.BranchInformation | undefined {\n const data = this.jysData;\n if (!data) return undefined;\n return data.branchInformation;\n }\n\n /**\n * Branch postal code\n */\n get branchPostalCode(): string | undefined {\n return this.branchInfo?.postalCode;\n }\n\n /**\n * Whether this is an operator branch (vs own branch)\n */\n get isOperatorBranch(): boolean {\n return this.branchInfo?.type === jys.TipoSucursal.Operator;\n }\n\n /**\n * Operator name (if operator branch)\n */\n get operatorName(): string | undefined {\n const info = this.branchInfo;\n if (info?.type === jys.TipoSucursal.Operator) {\n return info.operatorName;\n }\n return undefined;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Settlement Information\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Settlement type (cash or in-kind)\n */\n get settlementType(): jys.TipoLiquidacion | undefined {\n const data = this.jysData;\n if (!data || !(\"settlementType\" in data)) return undefined;\n return data.settlementType;\n }\n\n /**\n * Whether this is a cash settlement\n */\n get isCashSettlement(): boolean {\n return this.settlementType === jys.TipoLiquidacion.Cash;\n }\n\n /**\n * Whether this is an in-kind settlement (assets)\n */\n get isInKindSettlement(): boolean {\n return this.settlementType === jys.TipoLiquidacion.InKind;\n }\n\n /**\n * Monetary instrument (for cash settlements)\n */\n get monetaryInstrument(): string | undefined {\n const data = this.jysData;\n if (!data || !(\"monetaryInstrument\" in data)) return undefined;\n return data.monetaryInstrument as string;\n }\n\n /**\n * Asset type (for in-kind settlements)\n */\n get assetType(): string | undefined {\n const data = this.jysData;\n if (!data || !(\"assetType\" in data)) return undefined;\n return data.assetType as string;\n }\n\n /**\n * Real estate type (for real estate in-kind settlements)\n */\n get realEstateType(): string | undefined {\n const data = this.jysData;\n if (!data || !(\"realEstateType\" in data)) return undefined;\n return data.realEstateType as string;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexJYSTransaction(${this.id}, ${this.formattedAmount}, ${this.operationType ?? \"unknown\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { TransactionModel } from \"../../../types\";\n\n/**\n * Check if transaction is a JYS (Juegos y Sorteos) transaction\n */\nexport function isMexJYSTransaction(\n txn: TransactionModel\n): txn is MexJYSTransaction {\n return txn instanceof MexJYSTransaction;\n}\n","/**\n * Mexico TSC (Tarjetas de Servicio y Crédito) Transaction\n *\n * Specialized for service and credit card transactions.\n */\n\nimport { tsc } from \"@artu-ai/shared\";\nimport { MexActividadVulnerableTransaction } from \"../MexActividadVulnerableTransaction\";\n\n// ===========================\n// MexTSCTransaction Model\n// ===========================\n\n/**\n * Mexico TSC Transaction Model.\n *\n * Provides typed accessors for service/credit card transaction data.\n *\n * @example\n * ```typescript\n * if (txn instanceof MexTSCTransaction) {\n * console.log(`Card: ${txn.cardType}`);\n * console.log(`ID: ${txn.idNumber}`);\n * }\n * ```\n */\nexport class MexTSCTransaction extends MexActividadVulnerableTransaction {\n // ─────────────────────────────────────────────────────────────────\n // TSC-Specific Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * TSC-specific transaction data\n */\n protected get tscData(): tsc.TSCTransactionData | undefined {\n return this.mexicoData?.actividadVulnerable?.TSC;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Card Fields\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Card type (service or credit)\n */\n get cardType(): string | undefined {\n return this.tscData?.cardType;\n }\n\n /**\n * Card/account identifier\n */\n get idNumber(): string | undefined {\n return this.tscData?.idNumber;\n }\n\n /**\n * Operation type (typically card consumption)\n */\n get operationType(): string | undefined {\n return this.tscData?.operationType;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Whether this is a service card transaction\n */\n get isServiceCard(): boolean {\n return this.cardType === tsc.TiposTarjeta.enum.ServiceCard;\n }\n\n /**\n * Whether this is a credit card transaction\n */\n get isCreditCard(): boolean {\n return this.cardType === tsc.TiposTarjeta.enum.CreditCard;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexTSCTransaction(${this.id}, ${this.formattedAmount}, ${this.cardType ?? \"unknown\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { TransactionModel } from \"../../../types\";\n\n/**\n * Check if transaction is a TSC (Tarjetas de Servicio y Crédito) transaction\n */\nexport function isMexTSCTransaction(\n txn: TransactionModel\n): txn is MexTSCTransaction {\n return txn instanceof MexTSCTransaction;\n}\n","/**\n * Mexico Actividad Vulnerable Base Report\n *\n * Common functionality for all Actividad Vulnerable reports.\n * Extended by activity-specific models (AVI, JYS, TSC).\n */\n\nimport { MexReport, type MexReportData } from \"../MexReport\";\nimport type { ActividadVulnerableReportData } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Report data with Actividad Vulnerable data\n */\nexport interface MexActividadVulnerableReportData extends MexReportData {\n jurisdictions?: {\n MX?: {\n actividadVulnerable?: ActividadVulnerableReportData;\n };\n [key: string]: unknown;\n };\n}\n\n// ===========================\n// MexActividadVulnerableReport Model\n// ===========================\n\n/**\n * Base model for Mexico Actividad Vulnerable reports.\n *\n * Provides common accessors for all activity types.\n * Extended by MexAVIReport, MexJYSReport, MexTSCReport.\n */\nexport class MexActividadVulnerableReport extends MexReport {\n // ─────────────────────────────────────────────────────────────────\n // Activity Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Actividad Vulnerable data\n */\n protected get actividadVulnerableData():\n | ActividadVulnerableReportData\n | undefined {\n return this.mexicoData?.actividadVulnerable;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexActividadVulnerableReport(${this.id}, ${this.status})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ReportModel } from \"../../types\";\n\n/**\n * Check if report is for any Actividad Vulnerable\n */\nexport function isActividadVulnerableReport(\n report: ReportModel\n): report is MexActividadVulnerableReport {\n return report instanceof MexActividadVulnerableReport;\n}\n","/**\n * Mexico AVI Report Model\n *\n * Report model for Activos Virtuales (Virtual Assets) activity.\n */\n\nimport {\n MexActividadVulnerableReport,\n type MexActividadVulnerableReportData,\n} from \"../MexActividadVulnerableReport\";\nimport type { avi } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * AVI report data\n */\nexport interface MexAVIReportData extends MexActividadVulnerableReportData {\n jurisdictions?: {\n MX?: {\n actividadVulnerable?: {\n AVI?: avi.AVIReportData;\n };\n };\n [key: string]: unknown;\n };\n}\n\n// ===========================\n// MexAVIReport Model\n// ===========================\n\n/**\n * Mexico AVI Report Model.\n *\n * Provides typed accessors for AVI-specific report data.\n *\n * @example\n * ```typescript\n * if (report instanceof MexAVIReport) {\n * console.log(`Period: ${report.mesReportado}`);\n * }\n * ```\n */\nexport class MexAVIReport extends MexActividadVulnerableReport {\n // ─────────────────────────────────────────────────────────────────\n // AVI Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * AVI-specific report data\n */\n protected get aviData(): avi.AVIReportData | undefined {\n return this.actividadVulnerableData?.AVI;\n }\n\n /**\n * Reporting period (YYYYMM format)\n */\n get mesReportado(): string | undefined {\n return this.aviData?.mesReportado;\n }\n\n /**\n * Reporting period as a formatted string (e.g., \"January 2024\")\n */\n get formattedPeriod(): string | undefined {\n const mes = this.mesReportado;\n if (!mes) return undefined;\n\n const year = mes.slice(0, 4);\n const month = parseInt(mes.slice(4, 6), 10);\n\n const monthNames = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ];\n\n return `${monthNames[month - 1]} ${year}`;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexAVIReport(${this.id}, ${this.mesReportado ?? \"N/A\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ReportModel } from \"../../../types\";\n\n/**\n * Check if report is an AVI (Activos Virtuales) report\n */\nexport function isMexAVIReport(report: ReportModel): report is MexAVIReport {\n return report instanceof MexAVIReport;\n}\n","/**\n * Mexico Actividad Vulnerable Base Report Item\n *\n * Common functionality for all Actividad Vulnerable report items.\n * Extended by activity-specific models (AVI, JYS, TSC).\n */\n\nimport { MexReportItem, type MexReportItemData } from \"../MexReportItem\";\nimport type { ActividadVulnerableReportItemData } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Report item data with Actividad Vulnerable data\n */\nexport interface MexActividadVulnerableReportItemData\n extends MexReportItemData {\n jurisdictions?: {\n MX?: {\n actividadVulnerable?: ActividadVulnerableReportItemData;\n };\n [key: string]: unknown;\n };\n}\n\n// ===========================\n// MexActividadVulnerableReportItem Model\n// ===========================\n\n/**\n * Base model for Mexico Actividad Vulnerable report items.\n *\n * Provides common accessors for all activity types.\n * Extended by MexAVIReportItem, MexJYSReportItem, MexTSCReportItem.\n */\nexport class MexActividadVulnerableReportItem extends MexReportItem {\n // ─────────────────────────────────────────────────────────────────\n // Activity Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Actividad Vulnerable data\n */\n protected get actividadVulnerableData():\n | ActividadVulnerableReportItemData\n | undefined {\n return this.mexicoData?.actividadVulnerable;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexActividadVulnerableReportItem(${this.id}, ${this.clientName ?? \"Unknown\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ReportItemModel } from \"../../types\";\n\n/**\n * Check if report item is for any Actividad Vulnerable\n */\nexport function isActividadVulnerableReportItem(\n item: ReportItemModel\n): item is MexActividadVulnerableReportItem {\n return item instanceof MexActividadVulnerableReportItem;\n}\n","/**\n * Mexico AVI Report Item Model\n *\n * Report item model for Activos Virtuales (Virtual Assets) activity.\n */\n\nimport {\n MexActividadVulnerableReportItem,\n type MexActividadVulnerableReportItemData,\n} from \"../MexActividadVulnerableReportItem\";\nimport type { avi } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * AVI report item data\n */\nexport interface MexAVIReportItemData\n extends MexActividadVulnerableReportItemData {\n jurisdictions?: {\n MX?: {\n actividadVulnerable?: {\n AVI?: avi.AVIReportItemData;\n };\n };\n [key: string]: unknown;\n };\n}\n\n// ===========================\n// MexAVIReportItem Model\n// ===========================\n\n/**\n * Mexico AVI Report Item Model.\n *\n * Provides typed accessors for AVI-specific report item data.\n */\nexport class MexAVIReportItem extends MexActividadVulnerableReportItem {\n // ─────────────────────────────────────────────────────────────────\n // AVI Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * AVI-specific report item data\n */\n protected get aviData(): avi.AVIReportItemData | undefined {\n return this.actividadVulnerableData?.AVI;\n }\n\n /**\n * Alert type code\n * - \"100\" for monthly reports\n * - Other codes for unusual activity\n */\n get alertType(): avi.TipoAlerta | undefined {\n return this.aviData?.alertType;\n }\n\n /**\n * Alert description (for unusual activity)\n */\n get alertDescription(): string | undefined {\n return this.aviData?.alertDescription;\n }\n\n /**\n * Amendment data for corrections\n */\n get amendment(): avi.Amendment | undefined {\n return this.aviData?.amendment;\n }\n\n /**\n * Whether this item is an amendment\n */\n get isAmendment(): boolean {\n return !!this.aviData?.amendment;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexAVIReportItem(${this.id}, ${this.clientName ?? \"Unknown\"}, Alert: ${this.alertType ?? \"N/A\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ReportItemModel } from \"../../../types\";\n\n/**\n * Check if report item is an AVI (Activos Virtuales) report item\n */\nexport function isMexAVIReportItem(\n item: ReportItemModel\n): item is MexAVIReportItem {\n return item instanceof MexAVIReportItem;\n}\n","/**\n * Mexico JYS Report Model\n *\n * Report model for Juegos y Sorteos (Games and Raffles) activity.\n */\n\nimport {\n MexActividadVulnerableReport,\n type MexActividadVulnerableReportData,\n} from \"../MexActividadVulnerableReport\";\nimport type { jys } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * JYS report data\n */\nexport interface MexJYSReportData extends MexActividadVulnerableReportData {\n jurisdictions?: {\n MX?: {\n actividadVulnerable?: {\n JYS?: jys.JYSReportData;\n };\n };\n [key: string]: unknown;\n };\n}\n\n// ===========================\n// MexJYSReport Model\n// ===========================\n\n/**\n * Mexico JYS Report Model.\n *\n * Provides typed accessors for JYS-specific report data.\n *\n * @example\n * ```typescript\n * if (report instanceof MexJYSReport) {\n * console.log(`Period: ${report.mesReportado}`);\n * }\n * ```\n */\nexport class MexJYSReport extends MexActividadVulnerableReport {\n // ─────────────────────────────────────────────────────────────────\n // JYS Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * JYS-specific report data\n */\n protected get jysData(): jys.JYSReportData | undefined {\n return this.actividadVulnerableData?.JYS;\n }\n\n /**\n * Reporting period (YYYYMM format)\n */\n get mesReportado(): string | undefined {\n return this.jysData?.mesReportado;\n }\n\n /**\n * Reporting period as a formatted string (e.g., \"January 2024\")\n */\n get formattedPeriod(): string | undefined {\n const mes = this.mesReportado;\n if (!mes) return undefined;\n\n const year = mes.slice(0, 4);\n const month = parseInt(mes.slice(4, 6), 10);\n\n const monthNames = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ];\n\n return `${monthNames[month - 1]} ${year}`;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexJYSReport(${this.id}, ${this.mesReportado ?? \"N/A\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ReportModel } from \"../../../types\";\n\n/**\n * Check if report is a JYS (Juegos y Sorteos) report\n */\nexport function isMexJYSReport(report: ReportModel): report is MexJYSReport {\n return report instanceof MexJYSReport;\n}\n","/**\n * Mexico JYS Report Item Model\n *\n * Report item model for Juegos y Sorteos (Games and Raffles) activity.\n */\n\nimport {\n MexActividadVulnerableReportItem,\n type MexActividadVulnerableReportItemData,\n} from \"../MexActividadVulnerableReportItem\";\nimport type { jys } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * JYS report item data\n */\nexport interface MexJYSReportItemData\n extends MexActividadVulnerableReportItemData {\n jurisdictions?: {\n MX?: {\n actividadVulnerable?: {\n JYS?: jys.JYSReportItemData;\n };\n };\n [key: string]: unknown;\n };\n}\n\n// ===========================\n// MexJYSReportItem Model\n// ===========================\n\n/**\n * Mexico JYS Report Item Model.\n *\n * Provides typed accessors for JYS-specific report item data.\n */\nexport class MexJYSReportItem extends MexActividadVulnerableReportItem {\n // ─────────────────────────────────────────────────────────────────\n // JYS Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * JYS-specific report item data\n */\n protected get jysData(): jys.JYSReportItemData | undefined {\n return this.actividadVulnerableData?.JYS;\n }\n\n /**\n * Alert type code\n * - \"100\" for monthly reports\n * - Other codes for unusual activity\n */\n get alertType(): jys.TipoAlerta | undefined {\n return this.jysData?.alertType;\n }\n\n /**\n * Alert description (for unusual activity)\n */\n get alertDescription(): string | undefined {\n return this.jysData?.alertDescription;\n }\n\n /**\n * Amendment data for corrections\n */\n get amendment(): jys.Amendment | undefined {\n return this.jysData?.amendment;\n }\n\n /**\n * Whether this item is an amendment\n */\n get isAmendment(): boolean {\n return !!this.jysData?.amendment;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexJYSReportItem(${this.id}, ${this.clientName ?? \"Unknown\"}, Alert: ${this.alertType ?? \"N/A\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ReportItemModel } from \"../../../types\";\n\n/**\n * Check if report item is a JYS (Juegos y Sorteos) report item\n */\nexport function isMexJYSReportItem(\n item: ReportItemModel\n): item is MexJYSReportItem {\n return item instanceof MexJYSReportItem;\n}\n","/**\n * Mexico TSC Report Model\n *\n * Report model for Tarjetas de Servicio y Crédito (Service and Credit Cards) activity.\n */\n\nimport {\n MexActividadVulnerableReport,\n type MexActividadVulnerableReportData,\n} from \"../MexActividadVulnerableReport\";\nimport type { tsc } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * TSC report data\n */\nexport interface MexTSCReportData extends MexActividadVulnerableReportData {\n jurisdictions?: {\n MX?: {\n actividadVulnerable?: {\n TSC?: tsc.TSCReportData;\n };\n };\n [key: string]: unknown;\n };\n}\n\n// ===========================\n// MexTSCReport Model\n// ===========================\n\n/**\n * Mexico TSC Report Model.\n *\n * Provides typed accessors for TSC-specific report data.\n *\n * @example\n * ```typescript\n * if (report instanceof MexTSCReport) {\n * console.log(`Period: ${report.mesReportado}`);\n * }\n * ```\n */\nexport class MexTSCReport extends MexActividadVulnerableReport {\n // ─────────────────────────────────────────────────────────────────\n // TSC Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * TSC-specific report data\n */\n protected get tscData(): tsc.TSCReportData | undefined {\n return this.actividadVulnerableData?.TSC;\n }\n\n /**\n * Reporting period (YYYYMM format)\n */\n get mesReportado(): string | undefined {\n return this.tscData?.mesReportado;\n }\n\n /**\n * Reporting period as a formatted string (e.g., \"January 2024\")\n */\n get formattedPeriod(): string | undefined {\n const mes = this.mesReportado;\n if (!mes) return undefined;\n\n const year = mes.slice(0, 4);\n const month = parseInt(mes.slice(4, 6), 10);\n\n const monthNames = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ];\n\n return `${monthNames[month - 1]} ${year}`;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexTSCReport(${this.id}, ${this.mesReportado ?? \"N/A\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ReportModel } from \"../../../types\";\n\n/**\n * Check if report is a TSC (Tarjetas de Servicio y Crédito) report\n */\nexport function isMexTSCReport(report: ReportModel): report is MexTSCReport {\n return report instanceof MexTSCReport;\n}\n","/**\n * Mexico TSC Report Item Model\n *\n * Report item model for Tarjetas de Servicio y Crédito (Service and Credit Cards) activity.\n */\n\nimport {\n MexActividadVulnerableReportItem,\n type MexActividadVulnerableReportItemData,\n} from \"../MexActividadVulnerableReportItem\";\nimport type { tsc } from \"@artu-ai/shared\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * TSC report item data\n */\nexport interface MexTSCReportItemData\n extends MexActividadVulnerableReportItemData {\n jurisdictions?: {\n MX?: {\n actividadVulnerable?: {\n TSC?: tsc.TSCReportItemData;\n };\n };\n [key: string]: unknown;\n };\n}\n\n// ===========================\n// MexTSCReportItem Model\n// ===========================\n\n/**\n * Mexico TSC Report Item Model.\n *\n * Provides typed accessors for TSC-specific report item data.\n */\nexport class MexTSCReportItem extends MexActividadVulnerableReportItem {\n // ─────────────────────────────────────────────────────────────────\n // TSC Data\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * TSC-specific report item data\n */\n protected get tscData(): tsc.TSCReportItemData | undefined {\n return this.actividadVulnerableData?.TSC;\n }\n\n /**\n * Alert type code\n * - \"100\" for monthly reports\n * - Other codes for unusual activity\n */\n get alertType(): tsc.TipoAlerta | undefined {\n return this.tscData?.alertType;\n }\n\n /**\n * Alert description (for unusual activity)\n */\n get alertDescription(): string | undefined {\n return this.tscData?.alertDescription;\n }\n\n /**\n * Amendment data for corrections\n */\n get amendment(): tsc.Amendment | undefined {\n return this.tscData?.amendment;\n }\n\n /**\n * Whether this item is an amendment\n */\n get isAmendment(): boolean {\n return !!this.tscData?.amendment;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // String Representation\n // ─────────────────────────────────────────────────────────────────\n\n override toString(): string {\n return `MexTSCReportItem(${this.id}, ${this.clientName ?? \"Unknown\"}, Alert: ${this.alertType ?? \"N/A\"})`;\n }\n}\n\n// ===========================\n// Type Guards\n// ===========================\n\nimport type { ReportItemModel } from \"../../../types\";\n\n/**\n * Check if report item is a TSC (Tarjetas de Servicio y Crédito) report item\n */\nexport function isMexTSCReportItem(\n item: ReportItemModel\n): item is MexTSCReportItem {\n return item instanceof MexTSCReportItem;\n}\n","export * as core from \"../core/index.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./errors.js\";\nexport * from \"./parse.js\";\nexport * from \"./compat.js\";\n// zod-specified\nimport { config } from \"../core/index.js\";\nimport en from \"../locales/en.js\";\nconfig(en());\nexport { globalRegistry, registry, config, $output, $input, $brand, clone, regexes, treeifyError, prettifyError, formatError, flattenError, toJSONSchema, TimePrecision, util, NEVER, } from \"../core/index.js\";\nexport * as locales from \"../locales/index.js\";\n// iso\n// must be exported from top-level\n// https://github.com/colinhacks/zod/issues/4491\nexport { ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration } from \"./iso.js\";\nexport * as iso from \"./iso.js\";\nexport * as coerce from \"./coerce.js\";\n","export * from \"./core.js\";\nexport * from \"./parse.js\";\nexport * from \"./errors.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./versions.js\";\nexport * as util from \"./util.js\";\nexport * as regexes from \"./regexes.js\";\nexport * as locales from \"../locales/index.js\";\nexport * from \"./registries.js\";\nexport * from \"./doc.js\";\nexport * from \"./api.js\";\nexport * from \"./to-json-schema.js\";\nexport * as JSONSchema from \"./json-schema.js\";\n","/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n var _a;\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod ?? {},\n enumerable: false,\n });\n (_a = inst._zod).traits ?? (_a.traits = new Set());\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n for (const k in _.prototype) {\n if (!(k in inst))\n Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n }\n inst._zod.constr = _;\n inst._zod.def = def;\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport class $ZodEncodeError extends Error {\n constructor(name) {\n super(`Encountered unidirectional transform during encode: ${name}`);\n this.name = \"ZodEncodeError\";\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n","// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepString = step.toString();\n let stepDecCount = (stepString.split(\".\")[1] || \"\").length;\n if (stepDecCount === 0 && /\\d?e-\\d?/.test(stepString)) {\n const match = stepString.match(/\\d?e-(\\d?)/);\n if (match?.[1]) {\n stepDecCount = Number.parseInt(match[1]);\n }\n }\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nconst EVALUATING = Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n let value = undefined;\n Object.defineProperty(object, key, {\n get() {\n if (value === EVALUATING) {\n // Circular reference detected, return undefined to break the cycle\n return undefined;\n }\n if (value === undefined) {\n value = EVALUATING;\n value = getter();\n }\n return value;\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function objectClone(obj) {\n return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function mergeDefs(...defs) {\n const mergedDescriptors = {};\n for (const def of defs) {\n const descriptors = Object.getOwnPropertyDescriptors(def);\n Object.assign(mergedDescriptors, descriptors);\n }\n return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n // @ts-ignore\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function shallowClone(o) {\n if (isPlainObject(o))\n return { ...o };\n if (Array.isArray(o))\n return [...o];\n return o;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n // @ts-ignore\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const currDef = schema._zod.def;\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = {};\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n newShape[key] = currDef.shape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function omit(schema, mask) {\n const currDef = schema._zod.def;\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = { ...schema._zod.def.shape };\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const checks = schema._zod.def.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\"Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function safeExtend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n }\n const def = {\n ...schema._zod.def,\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: schema._zod.def.checks,\n };\n return clone(schema, def);\n}\nexport function merge(a, b) {\n const def = mergeDefs(a._zod.def, {\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n get catchall() {\n return b._zod.def.catchall;\n },\n checks: [], // delete existing checks\n });\n return clone(a, def);\n}\nexport function partial(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function required(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n if (x.aborted === true)\n return true;\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true) {\n return true;\n }\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n // @ts-ignore\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n let binaryString = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binaryString += String.fromCharCode(bytes[i]);\n }\n return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n const cleanHex = hex.replace(/^0x/, \"\");\n if (cleanHex.length % 2 !== 0) {\n throw new Error(\"Invalid hex string length\");\n }\n const bytes = new Uint8Array(cleanHex.length / 2);\n for (let i = 0; i < cleanHex.length; i += 2) {\n bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n }\n return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n inst.message = JSON.stringify(def, util.jsonStringifyReplacer, 2);\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, mapper = (issue) => issue.message) {\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, mapper = (issue) => issue.message) {\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n const segs = [];\n const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\nexport const _encode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _parse(_Err)(schema, value, ctx);\n};\nexport const encode = /* @__PURE__*/ _encode(errors.$ZodRealError);\nexport const _decode = (_Err) => (schema, value, _ctx) => {\n return _parse(_Err)(schema, value, _ctx);\n};\nexport const decode = /* @__PURE__*/ _decode(errors.$ZodRealError);\nexport const _encodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _parseAsync(_Err)(schema, value, ctx);\n};\nexport const encodeAsync = /* @__PURE__*/ _encodeAsync(errors.$ZodRealError);\nexport const _decodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _parseAsync(_Err)(schema, value, _ctx);\n};\nexport const decodeAsync = /* @__PURE__*/ _decodeAsync(errors.$ZodRealError);\nexport const _safeEncode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _safeParse(_Err)(schema, value, ctx);\n};\nexport const safeEncode = /* @__PURE__*/ _safeEncode(errors.$ZodRealError);\nexport const _safeDecode = (_Err) => (schema, value, _ctx) => {\n return _safeParse(_Err)(schema, value, _ctx);\n};\nexport const safeDecode = /* @__PURE__*/ _safeDecode(errors.$ZodRealError);\nexport const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _safeParseAsync(_Err)(schema, value, ctx);\n};\nexport const safeEncodeAsync = /* @__PURE__*/ _safeEncodeAsync(errors.$ZodRealError);\nexport const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _safeParseAsync(_Err)(schema, value, _ctx);\n};\nexport const safeDecodeAsync = /* @__PURE__*/ _safeDecodeAsync(errors.$ZodRealError);\n","export const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 9562/4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n if (!version)\n return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;\n return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const idnEmail = unicodeEmail;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const hostname = /^(?=.{1,253}\\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\\.?$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\nexport const e164 = /^\\+(?:[0-9]){6,14}[0-9]$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n const regex = typeof args.precision === \"number\"\n ? args.precision === -1\n ? `${hhmm}`\n : args.precision === 0\n ? `${hhmm}:[0-5]\\\\d`\n : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n return regex;\n}\nexport function time(args) {\n return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n const time = timeSource({ precision: args.precision });\n const opts = [\"Z\"];\n if (args.local)\n opts.push(\"\");\n // if (args.offset) opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n if (args.offset)\n opts.push(`([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)`);\n const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^-?\\d+n?$/;\nexport const integer = /^-?\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?/;\nexport const boolean = /^(?:true|false)$/i;\nconst _null = /^null$/i;\nexport { _null as null };\nconst _undefined = /^undefined$/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n// regex for hexadecimal strings (any length)\nexport const hex = /^[0-9a-fA-F]*$/;\n// Hash regexes for different algorithms and encodings\n// Helper function to create base64 regex with exact length and padding\nfunction fixedBase64(bodyLength, padding) {\n return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);\n}\n// Helper function to create base64url regex with exact length (no padding)\nfunction fixedBase64url(length) {\n return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);\n}\n// MD5 (16 bytes): base64 = 24 chars total (22 + \"==\")\nexport const md5_hex = /^[0-9a-fA-F]{32}$/;\nexport const md5_base64 = /*@__PURE__*/ fixedBase64(22, \"==\");\nexport const md5_base64url = /*@__PURE__*/ fixedBase64url(22);\n// SHA1 (20 bytes): base64 = 28 chars total (27 + \"=\")\nexport const sha1_hex = /^[0-9a-fA-F]{40}$/;\nexport const sha1_base64 = /*@__PURE__*/ fixedBase64(27, \"=\");\nexport const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);\n// SHA256 (32 bytes): base64 = 44 chars total (43 + \"=\")\nexport const sha256_hex = /^[0-9a-fA-F]{64}$/;\nexport const sha256_base64 = /*@__PURE__*/ fixedBase64(43, \"=\");\nexport const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);\n// SHA384 (48 bytes): base64 = 64 chars total (no padding)\nexport const sha384_hex = /^[0-9a-fA-F]{96}$/;\nexport const sha384_base64 = /*@__PURE__*/ fixedBase64(64, \"\");\nexport const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);\n// SHA512 (64 bytes): base64 = 88 chars total (86 + \"==\")\nexport const sha512_hex = /^[0-9a-fA-F]{128}$/;\nexport const sha512_base64 = /*@__PURE__*/ fixedBase64(86, \"==\");\nexport const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n if (def.value < curr) {\n if (def.inclusive)\n bag.maximum = def.value;\n else\n bag.exclusiveMaximum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n if (def.value > curr) {\n if (def.inclusive)\n bag.minimum = def.value;\n else\n bag.exclusiveMinimum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n var _a;\n (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n });\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n if (isInt)\n bag.pattern = regexes.integer;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n continue: false,\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_small\",\n minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.size;\n bag.maximum = def.size;\n bag.size = def.size;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.length;\n bag.maximum = def.length;\n bag.length = def.length;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a, _b;\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n if (def.pattern) {\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(def.pattern);\n }\n });\n if (def.pattern)\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n else\n (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.mime = def.mime;\n });\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n","export class Doc {\n constructor(args = []) {\n this.content = [];\n this.indent = 0;\n if (this)\n this.args = args;\n }\n indented(fn) {\n this.indent += 1;\n fn(this);\n this.indent -= 1;\n }\n write(arg) {\n if (typeof arg === \"function\") {\n arg(this, { execution: \"sync\" });\n arg(this, { execution: \"async\" });\n return;\n }\n const content = arg;\n const lines = content.split(\"\\n\").filter((x) => x);\n const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n for (const line of dedented) {\n this.content.push(line);\n }\n }\n compile() {\n const F = Function;\n const args = this?.args;\n const content = this?.content ?? [``];\n const lines = [...content.map((x) => ` ${x}`)];\n // console.log(lines.join(\"\\n\"));\n return new F(...args, lines.join(\"\\n\"));\n }\n}\n","export const version = {\n major: 4,\n minor: 1,\n patch: 12,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { parse, parseAsync, safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n // const handleChecksResult = (\n // checkResult: ParsePayload,\n // originalResult: ParsePayload,\n // ctx: ParseContextInternal\n // ): util.MaybeAsync<ParsePayload> => {\n // // if the checks mutated the value && there are no issues, re-parse the result\n // if (checkResult.value !== originalResult.value && !checkResult.issues.length)\n // return inst._zod.parse(checkResult, ctx);\n // return originalResult;\n // };\n const handleCanaryResult = (canary, payload, ctx) => {\n // abort if the canary is aborted\n if (util.aborted(canary)) {\n canary.aborted = true;\n return canary;\n }\n // run checks first, then\n const checkResult = runChecks(payload, checks, ctx);\n if (checkResult instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));\n }\n return inst._zod.parse(checkResult, ctx);\n };\n inst._zod.run = (payload, ctx) => {\n if (ctx.skipChecks) {\n return inst._zod.parse(payload, ctx);\n }\n if (ctx.direction === \"backward\") {\n // run canary\n // initial pass (no checks)\n const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });\n if (canary instanceof Promise) {\n return canary.then((canary) => {\n return handleCanaryResult(canary, payload, ctx);\n });\n }\n return handleCanaryResult(canary, payload, ctx);\n }\n // forward\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n inst[\"~standard\"] = {\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n // Trim whitespace from input\n const trimmed = payload.value.trim();\n // @ts-ignore\n const url = new URL(trimmed);\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: regexes.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // Set the output value based on normalize flag\n if (def.normalize) {\n // Use normalized URL\n payload.value = url.href;\n }\n else {\n // Preserve the original input (trimmed)\n payload.value = trimmed;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv4`;\n });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv6`;\n });\n inst._zod.check = (payload) => {\n try {\n // @ts-ignore\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const parts = payload.value.split(\"/\");\n try {\n if (parts.length !== 2)\n throw new Error();\n const [address, prefix] = parts;\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n // @ts-ignore\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n // @ts-ignore\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64url\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n // @ts-ignore\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handlePropertyResult(result, final, key, input) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n if (result.value === undefined) {\n if (key in input) {\n final.value[key] = undefined;\n }\n }\n else {\n final.value[key] = result.value;\n }\n}\nfunction normalizeDef(def) {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!def.shape?.[k]?._zod?.traits?.has(\"$ZodType\")) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n ...def,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n}\nfunction handleCatchall(proms, input, payload, ctx, def, inst) {\n const unrecognized = [];\n // iterate over input keys\n const keySet = def.keySet;\n const _catchall = def.catchall._zod;\n const t = _catchall.def.type;\n for (const key of Object.keys(input)) {\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n }\n else {\n handlePropertyResult(r, payload, key, input);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n // const sh = def.shape;\n const desc = Object.getOwnPropertyDescriptor(def, \"shape\");\n if (!desc?.get) {\n const sh = def.shape;\n Object.defineProperty(def, \"shape\", {\n get: () => {\n const newSh = { ...sh };\n Object.defineProperty(def, \"shape\", {\n value: newSh,\n });\n return newSh;\n },\n });\n }\n const _normalized = util.cached(() => normalizeDef(def));\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const isObject = util.isObject;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = {};\n const proms = [];\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n }\n else {\n handlePropertyResult(r, payload, key, input);\n }\n }\n if (!catchall) {\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n return handleCatchall(proms, input, payload, ctx, _normalized.value, inst);\n };\n});\nexport const $ZodObjectJIT = /*@__PURE__*/ core.$constructor(\"$ZodObjectJIT\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodObject.init(inst, def);\n const superParse = inst._zod.parse;\n const _normalized = util.cached(() => normalizeDef(def));\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {};`);\n for (const key of normalized.keys) {\n const id = ids[key];\n const k = util.esc(key);\n doc.write(`const ${id} = ${parseStr(key)};`);\n doc.write(`\n if (${id}.issues.length) {\n payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n \n \n if (${id}.value === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n newResult[${k}] = ${id}.value;\n }\n \n `);\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n if (!catchall)\n return payload;\n return handleCatchall([], input, payload, ctx, value, inst);\n }\n return superParse(payload, ctx);\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n const nonaborted = results.filter((r) => !util.aborted(r));\n if (nonaborted.length === 1) {\n final.value = nonaborted[0].value;\n return nonaborted[0];\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n const single = def.options.length === 1;\n const first = def.options[0]._zod.run;\n inst._zod.parse = (payload, ctx) => {\n if (single) {\n return first(payload, ctx);\n }\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues?.[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n if (def.unionFallback) {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n discriminator: def.discriminator,\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n if (left.issues.length) {\n result.issues.push(...left.issues);\n }\n if (right.issues.length) {\n result.issues.push(...right.issues);\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n if (!def.rest) {\n const tooBig = input.length > items.length;\n const tooSmall = input.length < optStart - 1;\n if (tooBig || tooSmall) {\n payload.issues.push({\n ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n input,\n inst,\n origin: \"array\",\n });\n return payload;\n }\n }\n let i = -1;\n for (const item of items) {\n i++;\n if (i >= input.length)\n if (i >= optStart)\n continue;\n const result = item._zod.run({\n value: input[i],\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n if (def.rest) {\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({\n value: el,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (def.keyType._zod.values) {\n const values = def.keyType._zod.values;\n payload.value = {};\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!values.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n code: \"invalid_key\",\n origin: \"record\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n payload.value[keyResult.value] = keyResult.value;\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n code: \"invalid_key\",\n origin: \"map\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n const valuesSet = new Set(values);\n inst._zod.values = valuesSet;\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (valuesSet.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n if (def.values.length === 0) {\n throw new Error(\"Cannot create literal schema with no valid values\");\n }\n inst._zod.values = new Set(def.values);\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n // @ts-ignore\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n const _out = def.transform(payload.value, payload);\n if (ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nfunction handleOptionalResult(result, input) {\n if (result.issues.length && input === undefined) {\n return { issues: [], value: undefined };\n }\n return result;\n}\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (def.innerType._zod.optin === \"optional\") {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise)\n return result.then((r) => handleOptionalResult(r, payload.value));\n return handleOptionalResult(result, payload.value);\n }\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n // Forward direction (decode): allow null to pass through\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply defaults for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault returns the default value immediately in forward direction.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n // Forward direction: continue with default handling\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply prefault for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(\"ZodSuccess\");\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply catch logic\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handlePipeResult(right, def.in, ctx));\n }\n return handlePipeResult(right, def.in, ctx);\n }\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def.out, ctx));\n }\n return handlePipeResult(left, def.out, ctx);\n };\n});\nfunction handlePipeResult(left, next, ctx) {\n if (left.issues.length) {\n // prevent further checks\n left.aborted = true;\n return left;\n }\n return next._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodCodec = /*@__PURE__*/ core.$constructor(\"$ZodCodec\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handleCodecAResult(left, def, ctx));\n }\n return handleCodecAResult(left, def, ctx);\n }\n else {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handleCodecAResult(right, def, ctx));\n }\n return handleCodecAResult(right, def, ctx);\n }\n };\n});\nfunction handleCodecAResult(result, def, ctx) {\n if (result.issues.length) {\n // prevent further checks\n result.aborted = true;\n return result;\n }\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const transformed = def.transform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));\n }\n return handleCodecTxResult(result, transformed, def.out, ctx);\n }\n else {\n const transformed = def.reverseTransform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));\n }\n return handleCodecTxResult(result, transformed, def.in, ctx);\n }\n}\nfunction handleCodecTxResult(left, value, nextSchema, ctx) {\n // Check if transform added any issues\n if (left.issues.length) {\n left.aborted = true;\n return left;\n }\n return nextSchema._zod.run({ value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (typeof part === \"object\" && part !== null) {\n // is Zod schema\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"template_literal\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: def.format ?? \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodFunction = /*@__PURE__*/ core.$constructor(\"$ZodFunction\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._def = def;\n inst._zod.def = def;\n inst.implement = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implement() must be called with a function\");\n }\n return function (...args) {\n const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;\n const result = Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return parse(inst._def.output, result);\n }\n return result;\n };\n };\n inst.implementAsync = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implementAsync() must be called with a function\");\n }\n return async function (...args) {\n const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;\n const result = await Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return await parseAsync(inst._def.output, result);\n }\n return result;\n };\n };\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"function\") {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"function\",\n input: payload.value,\n inst,\n });\n return payload;\n }\n // Check if output is a promise type to determine if we should use async implementation\n const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === \"promise\";\n if (hasPromiseOutput) {\n payload.value = inst.implementAsync(payload.value);\n }\n else {\n payload.value = inst.implement(payload.value);\n }\n return payload;\n };\n inst.input = (...args) => {\n const F = inst.constructor;\n if (Array.isArray(args[0])) {\n return new F({\n type: \"function\",\n input: new $ZodTuple({\n type: \"tuple\",\n items: args[0],\n rest: args[1],\n }),\n output: inst._def.output,\n });\n }\n return new F({\n type: \"function\",\n input: args[0],\n output: inst._def.output,\n });\n };\n inst.output = (output) => {\n const F = inst.constructor;\n return new F({\n type: \"function\",\n input: inst._def.input,\n output,\n });\n };\n return inst;\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n // let _innerType!: any;\n // util.defineLazy(def, \"getter\", () => {\n // if (!_innerType) {\n // _innerType = def.getter();\n // }\n // return () => _innerType;\n // });\n util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin ?? undefined);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout ?? undefined);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n","export { default as ar } from \"./ar.js\";\nexport { default as az } from \"./az.js\";\nexport { default as be } from \"./be.js\";\nexport { default as bg } from \"./bg.js\";\nexport { default as ca } from \"./ca.js\";\nexport { default as cs } from \"./cs.js\";\nexport { default as da } from \"./da.js\";\nexport { default as de } from \"./de.js\";\nexport { default as en } from \"./en.js\";\nexport { default as eo } from \"./eo.js\";\nexport { default as es } from \"./es.js\";\nexport { default as fa } from \"./fa.js\";\nexport { default as fi } from \"./fi.js\";\nexport { default as fr } from \"./fr.js\";\nexport { default as frCA } from \"./fr-CA.js\";\nexport { default as he } from \"./he.js\";\nexport { default as hu } from \"./hu.js\";\nexport { default as id } from \"./id.js\";\nexport { default as is } from \"./is.js\";\nexport { default as it } from \"./it.js\";\nexport { default as ja } from \"./ja.js\";\nexport { default as ka } from \"./ka.js\";\nexport { default as kh } from \"./kh.js\";\nexport { default as km } from \"./km.js\";\nexport { default as ko } from \"./ko.js\";\nexport { default as lt } from \"./lt.js\";\nexport { default as mk } from \"./mk.js\";\nexport { default as ms } from \"./ms.js\";\nexport { default as nl } from \"./nl.js\";\nexport { default as no } from \"./no.js\";\nexport { default as ota } from \"./ota.js\";\nexport { default as ps } from \"./ps.js\";\nexport { default as pl } from \"./pl.js\";\nexport { default as pt } from \"./pt.js\";\nexport { default as ru } from \"./ru.js\";\nexport { default as sl } from \"./sl.js\";\nexport { default as sv } from \"./sv.js\";\nexport { default as ta } from \"./ta.js\";\nexport { default as th } from \"./th.js\";\nexport { default as tr } from \"./tr.js\";\nexport { default as ua } from \"./ua.js\";\nexport { default as uk } from \"./uk.js\";\nexport { default as ur } from \"./ur.js\";\nexport { default as vi } from \"./vi.js\";\nexport { default as zhCN } from \"./zh-CN.js\";\nexport { default as zhTW } from \"./zh-TW.js\";\nexport { default as yo } from \"./yo.js\";\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"حرف\", verb: \"أن يحوي\" },\n file: { unit: \"بايت\", verb: \"أن يحوي\" },\n array: { unit: \"عنصر\", verb: \"أن يحوي\" },\n set: { unit: \"عنصر\", verb: \"أن يحوي\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"مدخل\",\n email: \"بريد إلكتروني\",\n url: \"رابط\",\n emoji: \"إيموجي\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"تاريخ ووقت بمعيار ISO\",\n date: \"تاريخ بمعيار ISO\",\n time: \"وقت بمعيار ISO\",\n duration: \"مدة بمعيار ISO\",\n ipv4: \"عنوان IPv4\",\n ipv6: \"عنوان IPv6\",\n cidrv4: \"مدى عناوين بصيغة IPv4\",\n cidrv6: \"مدى عناوين بصيغة IPv6\",\n base64: \"نَص بترميز base64-encoded\",\n base64url: \"نَص بترميز base64url-encoded\",\n json_string: \"نَص على هيئة JSON\",\n e164: \"رقم هاتف بمعيار E.164\",\n jwt: \"JWT\",\n template_literal: \"مدخل\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `مدخلات غير مقبولة: يفترض إدخال ${issue.expected}، ولكن تم إدخال ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `مدخلات غير مقبولة: يفترض إدخال ${util.stringifyPrimitive(issue.values[0])}`;\n return `اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return ` أكبر من اللازم: يفترض أن تكون ${issue.origin ?? \"القيمة\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"عنصر\"}`;\n return `أكبر من اللازم: يفترض أن تكون ${issue.origin ?? \"القيمة\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `نَص غير مقبول: يجب أن يبدأ بـ \"${issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `نَص غير مقبول: يجب أن ينتهي بـ \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `نَص غير مقبول: يجب أن يتضمَّن \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `نَص غير مقبول: يجب أن يطابق النمط ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} غير مقبول`;\n }\n case \"not_multiple_of\":\n return `رقم غير مقبول: يجب أن يكون من مضاعفات ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `معرف${issue.keys.length > 1 ? \"ات\" : \"\"} غريب${issue.keys.length > 1 ? \"ة\" : \"\"}: ${util.joinValues(issue.keys, \"، \")}`;\n case \"invalid_key\":\n return `معرف غير مقبول في ${issue.origin}`;\n case \"invalid_union\":\n return \"مدخل غير مقبول\";\n case \"invalid_element\":\n return `مدخل غير مقبول في ${issue.origin}`;\n default:\n return \"مدخل غير مقبول\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"simvol\", verb: \"olmalıdır\" },\n file: { unit: \"bayt\", verb: \"olmalıdır\" },\n array: { unit: \"element\", verb: \"olmalıdır\" },\n set: { unit: \"element\", verb: \"olmalıdır\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Yanlış dəyər: gözlənilən ${issue.expected}, daxil olan ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Yanlış dəyər: gözlənilən ${util.stringifyPrimitive(issue.values[0])}`;\n return `Yanlış seçim: aşağıdakılardan biri olmalıdır: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çox böyük: gözlənilən ${issue.origin ?? \"dəyər\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n return `Çox böyük: gözlənilən ${issue.origin ?? \"dəyər\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Yanlış mətn: \"${_issue.prefix}\" ilə başlamalıdır`;\n if (_issue.format === \"ends_with\")\n return `Yanlış mətn: \"${_issue.suffix}\" ilə bitməlidir`;\n if (_issue.format === \"includes\")\n return `Yanlış mətn: \"${_issue.includes}\" daxil olmalıdır`;\n if (_issue.format === \"regex\")\n return `Yanlış mətn: ${_issue.pattern} şablonuna uyğun olmalıdır`;\n return `Yanlış ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Yanlış ədəd: ${issue.divisor} ilə bölünə bilən olmalıdır`;\n case \"unrecognized_keys\":\n return `Tanınmayan açar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} daxilində yanlış açar`;\n case \"invalid_union\":\n return \"Yanlış dəyər\";\n case \"invalid_element\":\n return `${issue.origin} daxilində yanlış dəyər`;\n default:\n return `Yanlış dəyər`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nfunction getBelarusianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"сімвал\",\n few: \"сімвалы\",\n many: \"сімвалаў\",\n },\n verb: \"мець\",\n },\n array: {\n unit: {\n one: \"элемент\",\n few: \"элементы\",\n many: \"элементаў\",\n },\n verb: \"мець\",\n },\n set: {\n unit: {\n one: \"элемент\",\n few: \"элементы\",\n many: \"элементаў\",\n },\n verb: \"мець\",\n },\n file: {\n unit: {\n one: \"байт\",\n few: \"байты\",\n many: \"байтаў\",\n },\n verb: \"мець\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"лік\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"масіў\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"увод\",\n email: \"email адрас\",\n url: \"URL\",\n emoji: \"эмодзі\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO дата і час\",\n date: \"ISO дата\",\n time: \"ISO час\",\n duration: \"ISO працягласць\",\n ipv4: \"IPv4 адрас\",\n ipv6: \"IPv6 адрас\",\n cidrv4: \"IPv4 дыяпазон\",\n cidrv6: \"IPv6 дыяпазон\",\n base64: \"радок у фармаце base64\",\n base64url: \"радок у фармаце base64url\",\n json_string: \"JSON радок\",\n e164: \"нумар E.164\",\n jwt: \"JWT\",\n template_literal: \"увод\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Няправільны ўвод: чакаўся ${issue.expected}, атрымана ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Няправільны ўвод: чакалася ${util.stringifyPrimitive(issue.values[0])}`;\n return `Няправільны варыянт: чакаўся адзін з ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getBelarusianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Занадта вялікі: чакалася, што ${issue.origin ?? \"значэнне\"} павінна ${sizing.verb} ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `Занадта вялікі: чакалася, што ${issue.origin ?? \"значэнне\"} павінна быць ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getBelarusianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Занадта малы: чакалася, што ${issue.origin} павінна ${sizing.verb} ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `Занадта малы: чакалася, што ${issue.origin} павінна быць ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Няправільны радок: павінен пачынацца з \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Няправільны радок: павінен заканчвацца на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Няправільны радок: павінен змяшчаць \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Няправільны радок: павінен адпавядаць шаблону ${_issue.pattern}`;\n return `Няправільны ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Няправільны лік: павінен быць кратным ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нераспазнаны ${issue.keys.length > 1 ? \"ключы\" : \"ключ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Няправільны ключ у ${issue.origin}`;\n case \"invalid_union\":\n return \"Няправільны ўвод\";\n case \"invalid_element\":\n return `Няправільнае значэнне ў ${issue.origin}`;\n default:\n return `Няправільны ўвод`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"число\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"масив\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"символа\", verb: \"да съдържа\" },\n file: { unit: \"байта\", verb: \"да съдържа\" },\n array: { unit: \"елемента\", verb: \"да съдържа\" },\n set: { unit: \"елемента\", verb: \"да съдържа\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"вход\",\n email: \"имейл адрес\",\n url: \"URL\",\n emoji: \"емоджи\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO време\",\n date: \"ISO дата\",\n time: \"ISO време\",\n duration: \"ISO продължителност\",\n ipv4: \"IPv4 адрес\",\n ipv6: \"IPv6 адрес\",\n cidrv4: \"IPv4 диапазон\",\n cidrv6: \"IPv6 диапазон\",\n base64: \"base64-кодиран низ\",\n base64url: \"base64url-кодиран низ\",\n json_string: \"JSON низ\",\n e164: \"E.164 номер\",\n jwt: \"JWT\",\n template_literal: \"вход\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Невалиден вход: очакван ${issue.expected}, получен ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Невалиден вход: очакван ${util.stringifyPrimitive(issue.values[0])}`;\n return `Невалидна опция: очаквано едно от ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Твърде голямо: очаква се ${issue.origin ?? \"стойност\"} да съдържа ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елемента\"}`;\n return `Твърде голямо: очаква се ${issue.origin ?? \"стойност\"} да бъде ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Твърде малко: очаква се ${issue.origin} да съдържа ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Твърде малко: очаква се ${issue.origin} да бъде ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Невалиден низ: трябва да започва с \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Невалиден низ: трябва да завършва с \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Невалиден низ: трябва да включва \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Невалиден низ: трябва да съвпада с ${_issue.pattern}`;\n let invalid_adj = \"Невалиден\";\n if (_issue.format === \"emoji\")\n invalid_adj = \"Невалидно\";\n if (_issue.format === \"datetime\")\n invalid_adj = \"Невалидно\";\n if (_issue.format === \"date\")\n invalid_adj = \"Невалидна\";\n if (_issue.format === \"time\")\n invalid_adj = \"Невалидно\";\n if (_issue.format === \"duration\")\n invalid_adj = \"Невалидна\";\n return `${invalid_adj} ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Невалидно число: трябва да бъде кратно на ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Неразпознат${issue.keys.length > 1 ? \"и\" : \"\"} ключ${issue.keys.length > 1 ? \"ове\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Невалиден ключ в ${issue.origin}`;\n case \"invalid_union\":\n return \"Невалиден вход\";\n case \"invalid_element\":\n return `Невалидна стойност в ${issue.origin}`;\n default:\n return `Невалиден вход`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caràcters\", verb: \"contenir\" },\n file: { unit: \"bytes\", verb: \"contenir\" },\n array: { unit: \"elements\", verb: \"contenir\" },\n set: { unit: \"elements\", verb: \"contenir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrada\",\n email: \"adreça electrònica\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"durada ISO\",\n ipv4: \"adreça IPv4\",\n ipv6: \"adreça IPv6\",\n cidrv4: \"rang IPv4\",\n cidrv6: \"rang IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"cadena codificada en base64url\",\n json_string: \"cadena JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Tipus invàlid: s'esperava ${issue.expected}, s'ha rebut ${parsedType(issue.input)}`;\n // return `Tipus invàlid: s'esperava ${issue.expected}, s'ha rebut ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Valor invàlid: s'esperava ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opció invàlida: s'esperava una de ${util.joinValues(issue.values, \" o \")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"com a màxim\" : \"menys de\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} contingués ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} fos ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"com a mínim\" : \"més de\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Massa petit: s'esperava que ${issue.origin} contingués ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Massa petit: s'esperava que ${issue.origin} fos ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Format invàlid: ha de començar amb \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Format invàlid: ha d'acabar amb \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Format invàlid: ha d'incloure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Format invàlid: ha de coincidir amb el patró ${_issue.pattern}`;\n return `Format invàlid per a ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Número invàlid: ha de ser múltiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clau${issue.keys.length > 1 ? \"s\" : \"\"} no reconeguda${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clau invàlida a ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada invàlida\"; // Could also be \"Tipus d'unió invàlid\" but \"Entrada invàlida\" is more general\n case \"invalid_element\":\n return `Element invàlid a ${issue.origin}`;\n default:\n return `Entrada invàlida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znaků\", verb: \"mít\" },\n file: { unit: \"bajtů\", verb: \"mít\" },\n array: { unit: \"prvků\", verb: \"mít\" },\n set: { unit: \"prvků\", verb: \"mít\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"číslo\";\n }\n case \"string\": {\n return \"řetězec\";\n }\n case \"boolean\": {\n return \"boolean\";\n }\n case \"bigint\": {\n return \"bigint\";\n }\n case \"function\": {\n return \"funkce\";\n }\n case \"symbol\": {\n return \"symbol\";\n }\n case \"undefined\": {\n return \"undefined\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"pole\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"regulární výraz\",\n email: \"e-mailová adresa\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"datum a čas ve formátu ISO\",\n date: \"datum ve formátu ISO\",\n time: \"čas ve formátu ISO\",\n duration: \"doba trvání ISO\",\n ipv4: \"IPv4 adresa\",\n ipv6: \"IPv6 adresa\",\n cidrv4: \"rozsah IPv4\",\n cidrv6: \"rozsah IPv6\",\n base64: \"řetězec zakódovaný ve formátu base64\",\n base64url: \"řetězec zakódovaný ve formátu base64url\",\n json_string: \"řetězec ve formátu JSON\",\n e164: \"číslo E.164\",\n jwt: \"JWT\",\n template_literal: \"vstup\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Neplatný vstup: očekáváno ${issue.expected}, obdrženo ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neplatný vstup: očekáváno ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neplatná možnost: očekávána jedna z hodnot ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je příliš velká: ${issue.origin ?? \"hodnota\"} musí mít ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"prvků\"}`;\n }\n return `Hodnota je příliš velká: ${issue.origin ?? \"hodnota\"} musí být ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je příliš malá: ${issue.origin ?? \"hodnota\"} musí mít ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"prvků\"}`;\n }\n return `Hodnota je příliš malá: ${issue.origin ?? \"hodnota\"} musí být ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Neplatný řetězec: musí začínat na \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Neplatný řetězec: musí končit na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neplatný řetězec: musí obsahovat \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neplatný řetězec: musí odpovídat vzoru ${_issue.pattern}`;\n return `Neplatný formát ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neplatné číslo: musí být násobkem ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Neznámé klíče: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neplatný klíč v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neplatný vstup\";\n case \"invalid_element\":\n return `Neplatná hodnota v ${issue.origin}`;\n default:\n return `Neplatný vstup`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tegn\", verb: \"havde\" },\n file: { unit: \"bytes\", verb: \"havde\" },\n array: { unit: \"elementer\", verb: \"indeholdt\" },\n set: { unit: \"elementer\", verb: \"indeholdt\" },\n };\n const TypeNames = {\n string: \"streng\",\n number: \"tal\",\n boolean: \"boolean\",\n array: \"liste\",\n object: \"objekt\",\n set: \"sæt\",\n file: \"fil\",\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n function getTypeName(type) {\n return TypeNames[type] ?? type;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"tal\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"liste\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n return \"objekt\";\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"e-mailadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkeslæt\",\n date: \"ISO-dato\",\n time: \"ISO-klokkeslæt\",\n duration: \"ISO-varighed\",\n ipv4: \"IPv4-område\",\n ipv6: \"IPv6-område\",\n cidrv4: \"IPv4-spektrum\",\n cidrv6: \"IPv6-spektrum\",\n base64: \"base64-kodet streng\",\n base64url: \"base64url-kodet streng\",\n json_string: \"JSON-streng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ugyldigt input: forventede ${getTypeName(issue.expected)}, fik ${getTypeName(parsedType(issue.input))}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig værdi: forventede ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ugyldigt valg: forventede en af følgende ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n const origin = getTypeName(issue.origin);\n if (sizing)\n return `For stor: forventede ${origin ?? \"value\"} ${sizing.verb} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n return `For stor: forventede ${origin ?? \"value\"} havde ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const origin = getTypeName(issue.origin);\n if (sizing) {\n return `For lille: forventede ${origin} ${sizing.verb} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `For lille: forventede ${origin} havde ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ugyldig streng: skal starte med \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ugyldig streng: skal ende med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ugyldig streng: skal indeholde \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ugyldig streng: skal matche mønsteret ${_issue.pattern}`;\n return `Ugyldig ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ugyldigt tal: skal være deleligt med ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ukendte nøgler\" : \"Ukendt nøgle\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ugyldig nøgle i ${issue.origin}`;\n case \"invalid_union\":\n return \"Ugyldigt input: matcher ingen af de tilladte typer\";\n case \"invalid_element\":\n return `Ugyldig værdi i ${issue.origin}`;\n default:\n return `Ugyldigt input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"Zeichen\", verb: \"zu haben\" },\n file: { unit: \"Bytes\", verb: \"zu haben\" },\n array: { unit: \"Elemente\", verb: \"zu haben\" },\n set: { unit: \"Elemente\", verb: \"zu haben\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"Zahl\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"Array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"Eingabe\",\n email: \"E-Mail-Adresse\",\n url: \"URL\",\n emoji: \"Emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-Datum und -Uhrzeit\",\n date: \"ISO-Datum\",\n time: \"ISO-Uhrzeit\",\n duration: \"ISO-Dauer\",\n ipv4: \"IPv4-Adresse\",\n ipv6: \"IPv6-Adresse\",\n cidrv4: \"IPv4-Bereich\",\n cidrv6: \"IPv6-Bereich\",\n base64: \"Base64-codierter String\",\n base64url: \"Base64-URL-codierter String\",\n json_string: \"JSON-String\",\n e164: \"E.164-Nummer\",\n jwt: \"JWT\",\n template_literal: \"Eingabe\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ungültige Eingabe: erwartet ${issue.expected}, erhalten ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ungültige Eingabe: erwartet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ungültige Option: erwartet eine von ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Zu groß: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"Elemente\"} hat`;\n return `Zu groß: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ist`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} hat`;\n }\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ist`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ungültiger String: muss mit \"${_issue.prefix}\" beginnen`;\n if (_issue.format === \"ends_with\")\n return `Ungültiger String: muss mit \"${_issue.suffix}\" enden`;\n if (_issue.format === \"includes\")\n return `Ungültiger String: muss \"${_issue.includes}\" enthalten`;\n if (_issue.format === \"regex\")\n return `Ungültiger String: muss dem Muster ${_issue.pattern} entsprechen`;\n return `Ungültig: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ungültige Zahl: muss ein Vielfaches von ${issue.divisor} sein`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Unbekannte Schlüssel\" : \"Unbekannter Schlüssel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ungültiger Schlüssel in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ungültige Eingabe\";\n case \"invalid_element\":\n return `Ungültiger Wert in ${issue.origin}`;\n default:\n return `Ungültige Eingabe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"characters\", verb: \"to have\" },\n file: { unit: \"bytes\", verb: \"to have\" },\n array: { unit: \"items\", verb: \"to have\" },\n set: { unit: \"items\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Invalid input: expected ${issue.expected}, received ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Invalid option: expected one of ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Too big: expected ${issue.origin ?? \"value\"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Too big: expected ${issue.origin ?? \"value\"} to be ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Invalid string: must start with \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Invalid string: must end with \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Invalid string: must include \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Invalid string: must match pattern ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Invalid number: must be a multiple of ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Unrecognized key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Invalid key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Invalid input\";\n case \"invalid_element\":\n return `Invalid value in ${issue.origin}`;\n default:\n return `Invalid input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombro\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tabelo\";\n }\n if (data === null) {\n return \"senvalora\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"karaktrojn\", verb: \"havi\" },\n file: { unit: \"bajtojn\", verb: \"havi\" },\n array: { unit: \"elementojn\", verb: \"havi\" },\n set: { unit: \"elementojn\", verb: \"havi\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"enigo\",\n email: \"retadreso\",\n url: \"URL\",\n emoji: \"emoĝio\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datotempo\",\n date: \"ISO-dato\",\n time: \"ISO-tempo\",\n duration: \"ISO-daŭro\",\n ipv4: \"IPv4-adreso\",\n ipv6: \"IPv6-adreso\",\n cidrv4: \"IPv4-rango\",\n cidrv6: \"IPv6-rango\",\n base64: \"64-ume kodita karaktraro\",\n base64url: \"URL-64-ume kodita karaktraro\",\n json_string: \"JSON-karaktraro\",\n e164: \"E.164-nombro\",\n jwt: \"JWT\",\n template_literal: \"enigo\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Nevalida enigo: atendiĝis ${issue.expected}, riceviĝis ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nevalida enigo: atendiĝis ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nevalida opcio: atendiĝis unu el ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Tro granda: atendiĝis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementojn\"}`;\n return `Tro granda: atendiĝis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Tro malgranda: atendiĝis ke ${issue.origin} havu ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Tro malgranda: atendiĝis ke ${issue.origin} estu ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nevalida karaktraro: devas komenciĝi per \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nevalida karaktraro: devas finiĝi per \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nevalida karaktraro: devas inkluzivi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`;\n return `Nevalida ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nevalida nombro: devas esti oblo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nekonata${issue.keys.length > 1 ? \"j\" : \"\"} ŝlosilo${issue.keys.length > 1 ? \"j\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nevalida ŝlosilo en ${issue.origin}`;\n case \"invalid_union\":\n return \"Nevalida enigo\";\n case \"invalid_element\":\n return `Nevalida valoro en ${issue.origin}`;\n default:\n return `Nevalida enigo`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"tener\" },\n file: { unit: \"bytes\", verb: \"tener\" },\n array: { unit: \"elementos\", verb: \"tener\" },\n set: { unit: \"elementos\", verb: \"tener\" },\n };\n const TypeNames = {\n string: \"texto\",\n number: \"número\",\n boolean: \"booleano\",\n array: \"arreglo\",\n object: \"objeto\",\n set: \"conjunto\",\n file: \"archivo\",\n date: \"fecha\",\n bigint: \"número grande\",\n symbol: \"símbolo\",\n undefined: \"indefinido\",\n null: \"nulo\",\n function: \"función\",\n map: \"mapa\",\n record: \"registro\",\n tuple: \"tupla\",\n enum: \"enumeración\",\n union: \"unión\",\n literal: \"literal\",\n promise: \"promesa\",\n void: \"vacío\",\n never: \"nunca\",\n unknown: \"desconocido\",\n any: \"cualquiera\",\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n function getTypeName(type) {\n return TypeNames[type] ?? type;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype) {\n return data.constructor.name;\n }\n return \"object\";\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrada\",\n email: \"dirección de correo electrónico\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"fecha y hora ISO\",\n date: \"fecha ISO\",\n time: \"hora ISO\",\n duration: \"duración ISO\",\n ipv4: \"dirección IPv4\",\n ipv6: \"dirección IPv6\",\n cidrv4: \"rango IPv4\",\n cidrv6: \"rango IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"URL codificada en base64\",\n json_string: \"cadena JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entrada inválida: se esperaba ${getTypeName(issue.expected)}, recibido ${getTypeName(parsedType(issue.input))}`;\n // return `Entrada inválida: se esperaba ${issue.expected}, recibido ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inválida: se esperaba ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opción inválida: se esperaba una de ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n const origin = getTypeName(issue.origin);\n if (sizing)\n return `Demasiado grande: se esperaba que ${origin ?? \"valor\"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Demasiado grande: se esperaba que ${origin ?? \"valor\"} fuera ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const origin = getTypeName(issue.origin);\n if (sizing) {\n return `Demasiado pequeño: se esperaba que ${origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Demasiado pequeño: se esperaba que ${origin} fuera ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Cadena inválida: debe comenzar con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Cadena inválida: debe terminar en \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Cadena inválida: debe incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Cadena inválida: debe coincidir con el patrón ${_issue.pattern}`;\n return `Inválido ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Número inválido: debe ser múltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Llave${issue.keys.length > 1 ? \"s\" : \"\"} desconocida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Llave inválida en ${getTypeName(issue.origin)}`;\n case \"invalid_union\":\n return \"Entrada inválida\";\n case \"invalid_element\":\n return `Valor inválido en ${getTypeName(issue.origin)}`;\n default:\n return `Entrada inválida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"کاراکتر\", verb: \"داشته باشد\" },\n file: { unit: \"بایت\", verb: \"داشته باشد\" },\n array: { unit: \"آیتم\", verb: \"داشته باشد\" },\n set: { unit: \"آیتم\", verb: \"داشته باشد\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"عدد\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"آرایه\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ورودی\",\n email: \"آدرس ایمیل\",\n url: \"URL\",\n emoji: \"ایموجی\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"تاریخ و زمان ایزو\",\n date: \"تاریخ ایزو\",\n time: \"زمان ایزو\",\n duration: \"مدت زمان ایزو\",\n ipv4: \"IPv4 آدرس\",\n ipv6: \"IPv6 آدرس\",\n cidrv4: \"IPv4 دامنه\",\n cidrv6: \"IPv6 دامنه\",\n base64: \"base64-encoded رشته\",\n base64url: \"base64url-encoded رشته\",\n json_string: \"JSON رشته\",\n e164: \"E.164 عدد\",\n jwt: \"JWT\",\n template_literal: \"ورودی\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ورودی نامعتبر: میبایست ${issue.expected} میبود، ${parsedType(issue.input)} دریافت شد`;\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `ورودی نامعتبر: میبایست ${util.stringifyPrimitive(issue.values[0])} میبود`;\n }\n return `گزینه نامعتبر: میبایست یکی از ${util.joinValues(issue.values, \"|\")} میبود`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `خیلی بزرگ: ${issue.origin ?? \"مقدار\"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عنصر\"} باشد`;\n }\n return `خیلی بزرگ: ${issue.origin ?? \"مقدار\"} باید ${adj}${issue.maximum.toString()} باشد`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} باشد`;\n }\n return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} باشد`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `رشته نامعتبر: باید با \"${_issue.prefix}\" شروع شود`;\n }\n if (_issue.format === \"ends_with\") {\n return `رشته نامعتبر: باید با \"${_issue.suffix}\" تمام شود`;\n }\n if (_issue.format === \"includes\") {\n return `رشته نامعتبر: باید شامل \"${_issue.includes}\" باشد`;\n }\n if (_issue.format === \"regex\") {\n return `رشته نامعتبر: باید با الگوی ${_issue.pattern} مطابقت داشته باشد`;\n }\n return `${Nouns[_issue.format] ?? issue.format} نامعتبر`;\n }\n case \"not_multiple_of\":\n return `عدد نامعتبر: باید مضرب ${issue.divisor} باشد`;\n case \"unrecognized_keys\":\n return `کلید${issue.keys.length > 1 ? \"های\" : \"\"} ناشناس: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `کلید ناشناس در ${issue.origin}`;\n case \"invalid_union\":\n return `ورودی نامعتبر`;\n case \"invalid_element\":\n return `مقدار نامعتبر در ${issue.origin}`;\n default:\n return `ورودی نامعتبر`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"merkkiä\", subject: \"merkkijonon\" },\n file: { unit: \"tavua\", subject: \"tiedoston\" },\n array: { unit: \"alkiota\", subject: \"listan\" },\n set: { unit: \"alkiota\", subject: \"joukon\" },\n number: { unit: \"\", subject: \"luvun\" },\n bigint: { unit: \"\", subject: \"suuren kokonaisluvun\" },\n int: { unit: \"\", subject: \"kokonaisluvun\" },\n date: { unit: \"\", subject: \"päivämäärän\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"säännöllinen lauseke\",\n email: \"sähköpostiosoite\",\n url: \"URL-osoite\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-aikaleima\",\n date: \"ISO-päivämäärä\",\n time: \"ISO-aika\",\n duration: \"ISO-kesto\",\n ipv4: \"IPv4-osoite\",\n ipv6: \"IPv6-osoite\",\n cidrv4: \"IPv4-alue\",\n cidrv6: \"IPv6-alue\",\n base64: \"base64-koodattu merkkijono\",\n base64url: \"base64url-koodattu merkkijono\",\n json_string: \"JSON-merkkijono\",\n e164: \"E.164-luku\",\n jwt: \"JWT\",\n template_literal: \"templaattimerkkijono\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Virheellinen tyyppi: odotettiin ${issue.expected}, oli ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Virheellinen syöte: täytyy olla ${util.stringifyPrimitive(issue.values[0])}`;\n return `Virheellinen valinta: täytyy olla yksi seuraavista: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian suuri: ${sizing.subject} täytyy olla ${adj}${issue.maximum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian suuri: arvon täytyy olla ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian pieni: ${sizing.subject} täytyy olla ${adj}${issue.minimum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian pieni: arvon täytyy olla ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Virheellinen syöte: täytyy alkaa \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Virheellinen syöte: täytyy loppua \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Virheellinen syöte: täytyy sisältää \"${_issue.includes}\"`;\n if (_issue.format === \"regex\") {\n return `Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${_issue.pattern}`;\n }\n return `Virheellinen ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Virheellinen luku: täytyy olla luvun ${issue.divisor} monikerta`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Tuntemattomat avaimet\" : \"Tuntematon avain\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return \"Virheellinen avain tietueessa\";\n case \"invalid_union\":\n return \"Virheellinen unioni\";\n case \"invalid_element\":\n return \"Virheellinen arvo joukossa\";\n default:\n return `Virheellinen syöte`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caractères\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"éléments\", verb: \"avoir\" },\n set: { unit: \"éléments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombre\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tableau\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrée\",\n email: \"adresse e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date et heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"durée ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"chaîne encodée en base64\",\n base64url: \"chaîne encodée en base64url\",\n json_string: \"chaîne JSON\",\n e164: \"numéro E.164\",\n jwt: \"JWT\",\n template_literal: \"entrée\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entrée invalide : ${issue.expected} attendu, ${parsedType(issue.input)} reçu`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrée invalide : ${util.stringifyPrimitive(issue.values[0])} attendu`;\n return `Option invalide : une valeur parmi ${util.joinValues(issue.values, \"|\")} attendue`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : ${issue.origin ?? \"valeur\"} doit ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"élément(s)\"}`;\n return `Trop grand : ${issue.origin ?? \"valeur\"} doit être ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Trop petit : ${issue.origin} doit ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Trop petit : ${issue.origin} doit être ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Chaîne invalide : doit commencer par \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Chaîne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chaîne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chaîne invalide : doit correspondre au modèle ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit être un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clé${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clé invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrée invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entrée invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caractères\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"éléments\", verb: \"avoir\" },\n set: { unit: \"éléments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrée\",\n email: \"adresse courriel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date-heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"durée ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"chaîne encodée en base64\",\n base64url: \"chaîne encodée en base64url\",\n json_string: \"chaîne JSON\",\n e164: \"numéro E.164\",\n jwt: \"JWT\",\n template_literal: \"entrée\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entrée invalide : attendu ${issue.expected}, reçu ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrée invalide : attendu ${util.stringifyPrimitive(issue.values[0])}`;\n return `Option invalide : attendu l'une des valeurs suivantes ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"≤\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} ait ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} soit ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"≥\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Trop petit : attendu que ${issue.origin} ait ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Trop petit : attendu que ${issue.origin} soit ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Chaîne invalide : doit commencer par \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Chaîne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chaîne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chaîne invalide : doit correspondre au motif ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit être un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clé${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clé invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrée invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entrée invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"אותיות\", verb: \"לכלול\" },\n file: { unit: \"בייטים\", verb: \"לכלול\" },\n array: { unit: \"פריטים\", verb: \"לכלול\" },\n set: { unit: \"פריטים\", verb: \"לכלול\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"קלט\",\n email: \"כתובת אימייל\",\n url: \"כתובת רשת\",\n emoji: \"אימוג'י\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"תאריך וזמן ISO\",\n date: \"תאריך ISO\",\n time: \"זמן ISO\",\n duration: \"משך זמן ISO\",\n ipv4: \"כתובת IPv4\",\n ipv6: \"כתובת IPv6\",\n cidrv4: \"טווח IPv4\",\n cidrv6: \"טווח IPv6\",\n base64: \"מחרוזת בבסיס 64\",\n base64url: \"מחרוזת בבסיס 64 לכתובות רשת\",\n json_string: \"מחרוזת JSON\",\n e164: \"מספר E.164\",\n jwt: \"JWT\",\n template_literal: \"קלט\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `קלט לא תקין: צריך ${issue.expected}, התקבל ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `קלט לא תקין: צריך ${util.stringifyPrimitive(issue.values[0])}`;\n return `קלט לא תקין: צריך אחת מהאפשרויות ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `גדול מדי: ${issue.origin ?? \"value\"} צריך להיות ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `גדול מדי: ${issue.origin ?? \"value\"} צריך להיות ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `מחרוזת לא תקינה: חייבת להתחיל ב\"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `מחרוזת לא תקינה: חייבת להסתיים ב \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `מחרוזת לא תקינה: חייבת לכלול \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `מחרוזת לא תקינה: חייבת להתאים לתבנית ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} לא תקין`;\n }\n case \"not_multiple_of\":\n return `מספר לא תקין: חייב להיות מכפלה של ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `מפתח${issue.keys.length > 1 ? \"ות\" : \"\"} לא מזוה${issue.keys.length > 1 ? \"ים\" : \"ה\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `מפתח לא תקין ב${issue.origin}`;\n case \"invalid_union\":\n return \"קלט לא תקין\";\n case \"invalid_element\":\n return `ערך לא תקין ב${issue.origin}`;\n default:\n return `קלט לא תקין`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"legyen\" },\n file: { unit: \"byte\", verb: \"legyen\" },\n array: { unit: \"elem\", verb: \"legyen\" },\n set: { unit: \"elem\", verb: \"legyen\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"szám\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tömb\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"bemenet\",\n email: \"email cím\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO időbélyeg\",\n date: \"ISO dátum\",\n time: \"ISO idő\",\n duration: \"ISO időintervallum\",\n ipv4: \"IPv4 cím\",\n ipv6: \"IPv6 cím\",\n cidrv4: \"IPv4 tartomány\",\n cidrv6: \"IPv6 tartomány\",\n base64: \"base64-kódolt string\",\n base64url: \"base64url-kódolt string\",\n json_string: \"JSON string\",\n e164: \"E.164 szám\",\n jwt: \"JWT\",\n template_literal: \"bemenet\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Érvénytelen bemenet: a várt érték ${issue.expected}, a kapott érték ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Érvénytelen bemenet: a várt érték ${util.stringifyPrimitive(issue.values[0])}`;\n return `Érvénytelen opció: valamelyik érték várt ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Túl nagy: ${issue.origin ?? \"érték\"} mérete túl nagy ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elem\"}`;\n return `Túl nagy: a bemeneti érték ${issue.origin ?? \"érték\"} túl nagy: ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Túl kicsi: a bemeneti érték ${issue.origin} mérete túl kicsi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Túl kicsi: a bemeneti érték ${issue.origin} túl kicsi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Érvénytelen string: \"${_issue.prefix}\" értékkel kell kezdődnie`;\n if (_issue.format === \"ends_with\")\n return `Érvénytelen string: \"${_issue.suffix}\" értékkel kell végződnie`;\n if (_issue.format === \"includes\")\n return `Érvénytelen string: \"${_issue.includes}\" értéket kell tartalmaznia`;\n if (_issue.format === \"regex\")\n return `Érvénytelen string: ${_issue.pattern} mintának kell megfelelnie`;\n return `Érvénytelen ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Érvénytelen szám: ${issue.divisor} többszörösének kell lennie`;\n case \"unrecognized_keys\":\n return `Ismeretlen kulcs${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Érvénytelen kulcs ${issue.origin}`;\n case \"invalid_union\":\n return \"Érvénytelen bemenet\";\n case \"invalid_element\":\n return `Érvénytelen érték: ${issue.origin}`;\n default:\n return `Érvénytelen bemenet`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"memiliki\" },\n file: { unit: \"byte\", verb: \"memiliki\" },\n array: { unit: \"item\", verb: \"memiliki\" },\n set: { unit: \"item\", verb: \"memiliki\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"alamat email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tanggal dan waktu format ISO\",\n date: \"tanggal format ISO\",\n time: \"jam format ISO\",\n duration: \"durasi format ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"rentang alamat IPv4\",\n cidrv6: \"rentang alamat IPv6\",\n base64: \"string dengan enkode base64\",\n base64url: \"string dengan enkode base64url\",\n json_string: \"string JSON\",\n e164: \"angka E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input tidak valid: diharapkan ${issue.expected}, diterima ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak valid: diharapkan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak valid: diharapkan salah satu dari ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} memiliki ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} menjadi ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: diharapkan ${issue.origin} memiliki ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: diharapkan ${issue.origin} menjadi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak valid: harus dimulai dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak valid: harus berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak valid: harus menyertakan \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak valid: harus sesuai pola ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} tidak valid`;\n }\n case \"not_multiple_of\":\n return `Angka tidak valid: harus kelipatan dari ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak valid di ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak valid\";\n case \"invalid_element\":\n return `Nilai tidak valid di ${issue.origin}`;\n default:\n return `Input tidak valid`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"númer\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"fylki\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"stafi\", verb: \"að hafa\" },\n file: { unit: \"bæti\", verb: \"að hafa\" },\n array: { unit: \"hluti\", verb: \"að hafa\" },\n set: { unit: \"hluti\", verb: \"að hafa\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"gildi\",\n email: \"netfang\",\n url: \"vefslóð\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dagsetning og tími\",\n date: \"ISO dagsetning\",\n time: \"ISO tími\",\n duration: \"ISO tímalengd\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded strengur\",\n base64url: \"base64url-encoded strengur\",\n json_string: \"JSON strengur\",\n e164: \"E.164 tölugildi\",\n jwt: \"JWT\",\n template_literal: \"gildi\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Rangt gildi: Þú slóst inn ${parsedType(issue.input)} þar sem á að vera ${issue.expected}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Rangt gildi: gert ráð fyrir ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ógilt val: má vera eitt af eftirfarandi ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Of stórt: gert er ráð fyrir að ${issue.origin ?? \"gildi\"} hafi ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"hluti\"}`;\n return `Of stórt: gert er ráð fyrir að ${issue.origin ?? \"gildi\"} sé ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Of lítið: gert er ráð fyrir að ${issue.origin} hafi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Of lítið: gert er ráð fyrir að ${issue.origin} sé ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ógildur strengur: verður að byrja á \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Ógildur strengur: verður að enda á \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ógildur strengur: verður að innihalda \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ógildur strengur: verður að fylgja mynstri ${_issue.pattern}`;\n return `Rangt ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Röng tala: verður að vera margfeldi af ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Óþekkt ${issue.keys.length > 1 ? \"ir lyklar\" : \"ur lykill\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Rangur lykill í ${issue.origin}`;\n case \"invalid_union\":\n return \"Rangt gildi\";\n case \"invalid_element\":\n return `Rangt gildi í ${issue.origin}`;\n default:\n return `Rangt gildi`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caratteri\", verb: \"avere\" },\n file: { unit: \"byte\", verb: \"avere\" },\n array: { unit: \"elementi\", verb: \"avere\" },\n set: { unit: \"elementi\", verb: \"avere\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"numero\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"vettore\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"indirizzo email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e ora ISO\",\n date: \"data ISO\",\n time: \"ora ISO\",\n duration: \"durata ISO\",\n ipv4: \"indirizzo IPv4\",\n ipv6: \"indirizzo IPv6\",\n cidrv4: \"intervallo IPv4\",\n cidrv6: \"intervallo IPv6\",\n base64: \"stringa codificata in base64\",\n base64url: \"URL codificata in base64\",\n json_string: \"stringa JSON\",\n e164: \"numero E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input non valido: atteso ${issue.expected}, ricevuto ${parsedType(issue.input)}`;\n // return `Input non valido: atteso ${issue.expected}, ricevuto ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input non valido: atteso ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opzione non valida: atteso uno tra ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve avere ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementi\"}`;\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve essere ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Troppo piccolo: ${issue.origin} deve avere ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Troppo piccolo: ${issue.origin} deve essere ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Stringa non valida: deve iniziare con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Stringa non valida: deve terminare con \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Stringa non valida: deve includere \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Numero non valido: deve essere un multiplo di ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chiav${issue.keys.length > 1 ? \"i\" : \"e\"} non riconosciut${issue.keys.length > 1 ? \"e\" : \"a\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chiave non valida in ${issue.origin}`;\n case \"invalid_union\":\n return \"Input non valido\";\n case \"invalid_element\":\n return `Valore non valido in ${issue.origin}`;\n default:\n return `Input non valido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"文字\", verb: \"である\" },\n file: { unit: \"バイト\", verb: \"である\" },\n array: { unit: \"要素\", verb: \"である\" },\n set: { unit: \"要素\", verb: \"である\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"数値\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"配列\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"入力値\",\n email: \"メールアドレス\",\n url: \"URL\",\n emoji: \"絵文字\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO日時\",\n date: \"ISO日付\",\n time: \"ISO時刻\",\n duration: \"ISO期間\",\n ipv4: \"IPv4アドレス\",\n ipv6: \"IPv6アドレス\",\n cidrv4: \"IPv4範囲\",\n cidrv6: \"IPv6範囲\",\n base64: \"base64エンコード文字列\",\n base64url: \"base64urlエンコード文字列\",\n json_string: \"JSON文字列\",\n e164: \"E.164番号\",\n jwt: \"JWT\",\n template_literal: \"入力値\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `無効な入力: ${issue.expected}が期待されましたが、${parsedType(issue.input)}が入力されました`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `無効な入力: ${util.stringifyPrimitive(issue.values[0])}が期待されました`;\n return `無効な選択: ${util.joinValues(issue.values, \"、\")}のいずれかである必要があります`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"以下である\" : \"より小さい\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `大きすぎる値: ${issue.origin ?? \"値\"}は${issue.maximum.toString()}${sizing.unit ?? \"要素\"}${adj}必要があります`;\n return `大きすぎる値: ${issue.origin ?? \"値\"}は${issue.maximum.toString()}${adj}必要があります`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"以上である\" : \"より大きい\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${sizing.unit}${adj}必要があります`;\n return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${adj}必要があります`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `無効な文字列: \"${_issue.prefix}\"で始まる必要があります`;\n if (_issue.format === \"ends_with\")\n return `無効な文字列: \"${_issue.suffix}\"で終わる必要があります`;\n if (_issue.format === \"includes\")\n return `無効な文字列: \"${_issue.includes}\"を含む必要があります`;\n if (_issue.format === \"regex\")\n return `無効な文字列: パターン${_issue.pattern}に一致する必要があります`;\n return `無効な${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `無効な数値: ${issue.divisor}の倍数である必要があります`;\n case \"unrecognized_keys\":\n return `認識されていないキー${issue.keys.length > 1 ? \"群\" : \"\"}: ${util.joinValues(issue.keys, \"、\")}`;\n case \"invalid_key\":\n return `${issue.origin}内の無効なキー`;\n case \"invalid_union\":\n return \"無効な入力\";\n case \"invalid_element\":\n return `${issue.origin}内の無効な値`;\n default:\n return `無効な入力`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"რიცხვი\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"მასივი\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n const typeMap = {\n string: \"სტრინგი\",\n boolean: \"ბულეანი\",\n undefined: \"undefined\",\n bigint: \"bigint\",\n symbol: \"symbol\",\n function: \"ფუნქცია\",\n };\n return typeMap[t] ?? t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"სიმბოლო\", verb: \"უნდა შეიცავდეს\" },\n file: { unit: \"ბაიტი\", verb: \"უნდა შეიცავდეს\" },\n array: { unit: \"ელემენტი\", verb: \"უნდა შეიცავდეს\" },\n set: { unit: \"ელემენტი\", verb: \"უნდა შეიცავდეს\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"შეყვანა\",\n email: \"ელ-ფოსტის მისამართი\",\n url: \"URL\",\n emoji: \"ემოჯი\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"თარიღი-დრო\",\n date: \"თარიღი\",\n time: \"დრო\",\n duration: \"ხანგრძლივობა\",\n ipv4: \"IPv4 მისამართი\",\n ipv6: \"IPv6 მისამართი\",\n cidrv4: \"IPv4 დიაპაზონი\",\n cidrv6: \"IPv6 დიაპაზონი\",\n base64: \"base64-კოდირებული სტრინგი\",\n base64url: \"base64url-კოდირებული სტრინგი\",\n json_string: \"JSON სტრინგი\",\n e164: \"E.164 ნომერი\",\n jwt: \"JWT\",\n template_literal: \"შეყვანა\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `არასწორი შეყვანა: მოსალოდნელი ${issue.expected}, მიღებული ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `არასწორი შეყვანა: მოსალოდნელი ${util.stringifyPrimitive(issue.values[0])}`;\n return `არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${util.joinValues(issue.values, \"|\")}-დან`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `ზედმეტად დიდი: მოსალოდნელი ${issue.origin ?? \"მნიშვნელობა\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n return `ზედმეტად დიდი: მოსალოდნელი ${issue.origin ?? \"მნიშვნელობა\"} იყოს ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `ზედმეტად პატარა: მოსალოდნელი ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `ზედმეტად პატარა: მოსალოდნელი ${issue.origin} იყოს ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `არასწორი სტრინგი: უნდა იწყებოდეს \"${_issue.prefix}\"-ით`;\n }\n if (_issue.format === \"ends_with\")\n return `არასწორი სტრინგი: უნდა მთავრდებოდეს \"${_issue.suffix}\"-ით`;\n if (_issue.format === \"includes\")\n return `არასწორი სტრინგი: უნდა შეიცავდეს \"${_issue.includes}\"-ს`;\n if (_issue.format === \"regex\")\n return `არასწორი სტრინგი: უნდა შეესაბამებოდეს შაბლონს ${_issue.pattern}`;\n return `არასწორი ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `არასწორი რიცხვი: უნდა იყოს ${issue.divisor}-ის ჯერადი`;\n case \"unrecognized_keys\":\n return `უცნობი გასაღებ${issue.keys.length > 1 ? \"ები\" : \"ი\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `არასწორი გასაღები ${issue.origin}-ში`;\n case \"invalid_union\":\n return \"არასწორი შეყვანა\";\n case \"invalid_element\":\n return `არასწორი მნიშვნელობა ${issue.origin}-ში`;\n default:\n return `არასწორი შეყვანა`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"តួអក្សរ\", verb: \"គួរមាន\" },\n file: { unit: \"បៃ\", verb: \"គួរមាន\" },\n array: { unit: \"ធាតុ\", verb: \"គួរមាន\" },\n set: { unit: \"ធាតុ\", verb: \"គួរមាន\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"មិនមែនជាលេខ (NaN)\" : \"លេខ\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"អារេ (Array)\";\n }\n if (data === null) {\n return \"គ្មានតម្លៃ (null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ទិន្នន័យបញ្ចូល\",\n email: \"អាសយដ្ឋានអ៊ីមែល\",\n url: \"URL\",\n emoji: \"សញ្ញាអារម្មណ៍\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"កាលបរិច្ឆេទ និងម៉ោង ISO\",\n date: \"កាលបរិច្ឆេទ ISO\",\n time: \"ម៉ោង ISO\",\n duration: \"រយៈពេល ISO\",\n ipv4: \"អាសយដ្ឋាន IPv4\",\n ipv6: \"អាសយដ្ឋាន IPv6\",\n cidrv4: \"ដែនអាសយដ្ឋាន IPv4\",\n cidrv6: \"ដែនអាសយដ្ឋាន IPv6\",\n base64: \"ខ្សែអក្សរអ៊ិកូដ base64\",\n base64url: \"ខ្សែអក្សរអ៊ិកូដ base64url\",\n json_string: \"ខ្សែអក្សរ JSON\",\n e164: \"លេខ E.164\",\n jwt: \"JWT\",\n template_literal: \"ទិន្នន័យបញ្ចូល\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${issue.expected} ប៉ុន្តែទទួលបាន ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${util.stringifyPrimitive(issue.values[0])}`;\n return `ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `ធំពេក៖ ត្រូវការ ${issue.origin ?? \"តម្លៃ\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"ធាតុ\"}`;\n return `ធំពេក៖ ត្រូវការ ${issue.origin ?? \"តម្លៃ\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${_issue.pattern}`;\n return `មិនត្រឹមត្រូវ៖ ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `រកឃើញសោមិនស្គាល់៖ ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `សោមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;\n case \"invalid_union\":\n return `ទិន្នន័យមិនត្រឹមត្រូវ`;\n case \"invalid_element\":\n return `ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;\n default:\n return `ទិន្នន័យមិនត្រឹមត្រូវ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import km from \"./km.js\";\n/** @deprecated Use `km` instead. */\nexport default function () {\n return km();\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"문자\", verb: \"to have\" },\n file: { unit: \"바이트\", verb: \"to have\" },\n array: { unit: \"개\", verb: \"to have\" },\n set: { unit: \"개\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"입력\",\n email: \"이메일 주소\",\n url: \"URL\",\n emoji: \"이모지\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO 날짜시간\",\n date: \"ISO 날짜\",\n time: \"ISO 시간\",\n duration: \"ISO 기간\",\n ipv4: \"IPv4 주소\",\n ipv6: \"IPv6 주소\",\n cidrv4: \"IPv4 범위\",\n cidrv6: \"IPv6 범위\",\n base64: \"base64 인코딩 문자열\",\n base64url: \"base64url 인코딩 문자열\",\n json_string: \"JSON 문자열\",\n e164: \"E.164 번호\",\n jwt: \"JWT\",\n template_literal: \"입력\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `잘못된 입력: 예상 타입은 ${issue.expected}, 받은 타입은 ${parsedType(issue.input)}입니다`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `잘못된 입력: 값은 ${util.stringifyPrimitive(issue.values[0])} 이어야 합니다`;\n return `잘못된 옵션: ${util.joinValues(issue.values, \"또는 \")} 중 하나여야 합니다`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"이하\" : \"미만\";\n const suffix = adj === \"미만\" ? \"이어야 합니다\" : \"여야 합니다\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"요소\";\n if (sizing)\n return `${issue.origin ?? \"값\"}이 너무 큽니다: ${issue.maximum.toString()}${unit} ${adj}${suffix}`;\n return `${issue.origin ?? \"값\"}이 너무 큽니다: ${issue.maximum.toString()} ${adj}${suffix}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"이상\" : \"초과\";\n const suffix = adj === \"이상\" ? \"이어야 합니다\" : \"여야 합니다\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"요소\";\n if (sizing) {\n return `${issue.origin ?? \"값\"}이 너무 작습니다: ${issue.minimum.toString()}${unit} ${adj}${suffix}`;\n }\n return `${issue.origin ?? \"값\"}이 너무 작습니다: ${issue.minimum.toString()} ${adj}${suffix}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `잘못된 문자열: \"${_issue.prefix}\"(으)로 시작해야 합니다`;\n }\n if (_issue.format === \"ends_with\")\n return `잘못된 문자열: \"${_issue.suffix}\"(으)로 끝나야 합니다`;\n if (_issue.format === \"includes\")\n return `잘못된 문자열: \"${_issue.includes}\"을(를) 포함해야 합니다`;\n if (_issue.format === \"regex\")\n return `잘못된 문자열: 정규식 ${_issue.pattern} 패턴과 일치해야 합니다`;\n return `잘못된 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `잘못된 숫자: ${issue.divisor}의 배수여야 합니다`;\n case \"unrecognized_keys\":\n return `인식할 수 없는 키: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `잘못된 키: ${issue.origin}`;\n case \"invalid_union\":\n return `잘못된 입력`;\n case \"invalid_element\":\n return `잘못된 값: ${issue.origin}`;\n default:\n return `잘못된 입력`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n return parsedTypeFromType(t, data);\n};\nconst parsedTypeFromType = (t, data = undefined) => {\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"skaičius\";\n }\n case \"bigint\": {\n return \"sveikasis skaičius\";\n }\n case \"string\": {\n return \"eilutė\";\n }\n case \"boolean\": {\n return \"loginė reikšmė\";\n }\n case \"undefined\":\n case \"void\": {\n return \"neapibrėžta reikšmė\";\n }\n case \"function\": {\n return \"funkcija\";\n }\n case \"symbol\": {\n return \"simbolis\";\n }\n case \"object\": {\n if (data === undefined)\n return \"nežinomas objektas\";\n if (data === null)\n return \"nulinė reikšmė\";\n if (Array.isArray(data))\n return \"masyvas\";\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n return \"objektas\";\n }\n //Zod types below\n case \"null\": {\n return \"nulinė reikšmė\";\n }\n }\n return t;\n};\nconst capitalizeFirstCharacter = (text) => {\n return text.charAt(0).toUpperCase() + text.slice(1);\n};\nfunction getUnitTypeFromNumber(number) {\n const abs = Math.abs(number);\n const last = abs % 10;\n const last2 = abs % 100;\n if ((last2 >= 11 && last2 <= 19) || last === 0)\n return \"many\";\n if (last === 1)\n return \"one\";\n return \"few\";\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"simbolis\",\n few: \"simboliai\",\n many: \"simbolių\",\n },\n verb: {\n smaller: {\n inclusive: \"turi būti ne ilgesnė kaip\",\n notInclusive: \"turi būti trumpesnė kaip\",\n },\n bigger: {\n inclusive: \"turi būti ne trumpesnė kaip\",\n notInclusive: \"turi būti ilgesnė kaip\",\n },\n },\n },\n file: {\n unit: {\n one: \"baitas\",\n few: \"baitai\",\n many: \"baitų\",\n },\n verb: {\n smaller: {\n inclusive: \"turi būti ne didesnis kaip\",\n notInclusive: \"turi būti mažesnis kaip\",\n },\n bigger: {\n inclusive: \"turi būti ne mažesnis kaip\",\n notInclusive: \"turi būti didesnis kaip\",\n },\n },\n },\n array: {\n unit: {\n one: \"elementą\",\n few: \"elementus\",\n many: \"elementų\",\n },\n verb: {\n smaller: {\n inclusive: \"turi turėti ne daugiau kaip\",\n notInclusive: \"turi turėti mažiau kaip\",\n },\n bigger: {\n inclusive: \"turi turėti ne mažiau kaip\",\n notInclusive: \"turi turėti daugiau kaip\",\n },\n },\n },\n set: {\n unit: {\n one: \"elementą\",\n few: \"elementus\",\n many: \"elementų\",\n },\n verb: {\n smaller: {\n inclusive: \"turi turėti ne daugiau kaip\",\n notInclusive: \"turi turėti mažiau kaip\",\n },\n bigger: {\n inclusive: \"turi turėti ne mažiau kaip\",\n notInclusive: \"turi turėti daugiau kaip\",\n },\n },\n },\n };\n function getSizing(origin, unitType, inclusive, targetShouldBe) {\n const result = Sizable[origin] ?? null;\n if (result === null)\n return result;\n return {\n unit: result.unit[unitType],\n verb: result.verb[targetShouldBe][inclusive ? \"inclusive\" : \"notInclusive\"],\n };\n }\n const Nouns = {\n regex: \"įvestis\",\n email: \"el. pašto adresas\",\n url: \"URL\",\n emoji: \"jaustukas\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO data ir laikas\",\n date: \"ISO data\",\n time: \"ISO laikas\",\n duration: \"ISO trukmė\",\n ipv4: \"IPv4 adresas\",\n ipv6: \"IPv6 adresas\",\n cidrv4: \"IPv4 tinklo prefiksas (CIDR)\",\n cidrv6: \"IPv6 tinklo prefiksas (CIDR)\",\n base64: \"base64 užkoduota eilutė\",\n base64url: \"base64url užkoduota eilutė\",\n json_string: \"JSON eilutė\",\n e164: \"E.164 numeris\",\n jwt: \"JWT\",\n template_literal: \"įvestis\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Gautas tipas ${parsedType(issue.input)}, o tikėtasi - ${parsedTypeFromType(issue.expected)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Privalo būti ${util.stringifyPrimitive(issue.values[0])}`;\n return `Privalo būti vienas iš ${util.joinValues(issue.values, \"|\")} pasirinkimų`;\n case \"too_big\": {\n const origin = parsedTypeFromType(issue.origin);\n const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.maximum)), issue.inclusive ?? false, \"smaller\");\n if (sizing?.verb)\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} ${sizing.verb} ${issue.maximum.toString()} ${sizing.unit ?? \"elementų\"}`;\n const adj = issue.inclusive ? \"ne didesnis kaip\" : \"mažesnis kaip\";\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} turi būti ${adj} ${issue.maximum.toString()} ${sizing?.unit}`;\n }\n case \"too_small\": {\n const origin = parsedTypeFromType(issue.origin);\n const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.minimum)), issue.inclusive ?? false, \"bigger\");\n if (sizing?.verb)\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} ${sizing.verb} ${issue.minimum.toString()} ${sizing.unit ?? \"elementų\"}`;\n const adj = issue.inclusive ? \"ne mažesnis kaip\" : \"didesnis kaip\";\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} turi būti ${adj} ${issue.minimum.toString()} ${sizing?.unit}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Eilutė privalo prasidėti \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Eilutė privalo pasibaigti \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Eilutė privalo įtraukti \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Eilutė privalo atitikti ${_issue.pattern}`;\n return `Neteisingas ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Skaičius privalo būti ${issue.divisor} kartotinis.`;\n case \"unrecognized_keys\":\n return `Neatpažint${issue.keys.length > 1 ? \"i\" : \"as\"} rakt${issue.keys.length > 1 ? \"ai\" : \"as\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return \"Rastas klaidingas raktas\";\n case \"invalid_union\":\n return \"Klaidinga įvestis\";\n case \"invalid_element\": {\n const origin = parsedTypeFromType(issue.origin);\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} turi klaidingą įvestį`;\n }\n default:\n return \"Klaidinga įvestis\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"знаци\", verb: \"да имаат\" },\n file: { unit: \"бајти\", verb: \"да имаат\" },\n array: { unit: \"ставки\", verb: \"да имаат\" },\n set: { unit: \"ставки\", verb: \"да имаат\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"број\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"низа\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"внес\",\n email: \"адреса на е-пошта\",\n url: \"URL\",\n emoji: \"емоџи\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO датум и време\",\n date: \"ISO датум\",\n time: \"ISO време\",\n duration: \"ISO времетраење\",\n ipv4: \"IPv4 адреса\",\n ipv6: \"IPv6 адреса\",\n cidrv4: \"IPv4 опсег\",\n cidrv6: \"IPv6 опсег\",\n base64: \"base64-енкодирана низа\",\n base64url: \"base64url-енкодирана низа\",\n json_string: \"JSON низа\",\n e164: \"E.164 број\",\n jwt: \"JWT\",\n template_literal: \"внес\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Грешен внес: се очекува ${issue.expected}, примено ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Грешана опција: се очекува една ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Премногу голем: се очекува ${issue.origin ?? \"вредноста\"} да има ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елементи\"}`;\n return `Премногу голем: се очекува ${issue.origin ?? \"вредноста\"} да биде ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Премногу мал: се очекува ${issue.origin} да има ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Премногу мал: се очекува ${issue.origin} да биде ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Неважечка низа: мора да започнува со \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Неважечка низа: мора да завршува со \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неважечка низа: мора да вклучува \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неважечка низа: мора да одгоара на патернот ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Грешен број: мора да биде делив со ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Непрепознаени клучеви\" : \"Непрепознаен клуч\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Грешен клуч во ${issue.origin}`;\n case \"invalid_union\":\n return \"Грешен внес\";\n case \"invalid_element\":\n return `Грешна вредност во ${issue.origin}`;\n default:\n return `Грешен внес`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"aksara\", verb: \"mempunyai\" },\n file: { unit: \"bait\", verb: \"mempunyai\" },\n array: { unit: \"elemen\", verb: \"mempunyai\" },\n set: { unit: \"elemen\", verb: \"mempunyai\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombor\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"alamat e-mel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tarikh masa ISO\",\n date: \"tarikh ISO\",\n time: \"masa ISO\",\n duration: \"tempoh ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"julat IPv4\",\n cidrv6: \"julat IPv6\",\n base64: \"string dikodkan base64\",\n base64url: \"string dikodkan base64url\",\n json_string: \"string JSON\",\n e164: \"nombor E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input tidak sah: dijangka ${issue.expected}, diterima ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak sah: dijangka ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak sah: dijangka salah satu daripada ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} adalah ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: dijangka ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: dijangka ${issue.origin} adalah ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak sah: mesti bermula dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak sah: mesti berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak sah: mesti mengandungi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} tidak sah`;\n }\n case \"not_multiple_of\":\n return `Nombor tidak sah: perlu gandaan ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak sah dalam ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak sah\";\n case \"invalid_element\":\n return `Nilai tidak sah dalam ${issue.origin}`;\n default:\n return `Input tidak sah`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tekens\" },\n file: { unit: \"bytes\" },\n array: { unit: \"elementen\" },\n set: { unit: \"elementen\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"getal\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"invoer\",\n email: \"emailadres\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum en tijd\",\n date: \"ISO datum\",\n time: \"ISO tijd\",\n duration: \"ISO duur\",\n ipv4: \"IPv4-adres\",\n ipv6: \"IPv6-adres\",\n cidrv4: \"IPv4-bereik\",\n cidrv6: \"IPv6-bereik\",\n base64: \"base64-gecodeerde tekst\",\n base64url: \"base64 URL-gecodeerde tekst\",\n json_string: \"JSON string\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"invoer\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ongeldige invoer: verwacht ${issue.expected}, ontving ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ongeldige invoer: verwacht ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ongeldige optie: verwacht één van ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Te lang: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementen\"} bevat`;\n return `Te lang: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} is`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Te kort: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} bevat`;\n }\n return `Te kort: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ongeldige tekst: moet met \"${_issue.prefix}\" beginnen`;\n }\n if (_issue.format === \"ends_with\")\n return `Ongeldige tekst: moet op \"${_issue.suffix}\" eindigen`;\n if (_issue.format === \"includes\")\n return `Ongeldige tekst: moet \"${_issue.includes}\" bevatten`;\n if (_issue.format === \"regex\")\n return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`;\n return `Ongeldig: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`;\n case \"unrecognized_keys\":\n return `Onbekende key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ongeldige key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ongeldige invoer\";\n case \"invalid_element\":\n return `Ongeldige waarde in ${issue.origin}`;\n default:\n return `Ongeldige invoer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tegn\", verb: \"å ha\" },\n file: { unit: \"bytes\", verb: \"å ha\" },\n array: { unit: \"elementer\", verb: \"å inneholde\" },\n set: { unit: \"elementer\", verb: \"å inneholde\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"tall\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"liste\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"e-postadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkeslett\",\n date: \"ISO-dato\",\n time: \"ISO-klokkeslett\",\n duration: \"ISO-varighet\",\n ipv4: \"IPv4-område\",\n ipv6: \"IPv6-område\",\n cidrv4: \"IPv4-spekter\",\n cidrv6: \"IPv6-spekter\",\n base64: \"base64-enkodet streng\",\n base64url: \"base64url-enkodet streng\",\n json_string: \"JSON-streng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ugyldig input: forventet ${issue.expected}, fikk ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig verdi: forventet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ugyldig valg: forventet en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til å ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til å ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ugyldig streng: må starte med \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ugyldig streng: må ende med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ugyldig streng: må inneholde \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ugyldig streng: må matche mønsteret ${_issue.pattern}`;\n return `Ugyldig ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ugyldig tall: må være et multiplum av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ukjente nøkler\" : \"Ukjent nøkkel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ugyldig nøkkel i ${issue.origin}`;\n case \"invalid_union\":\n return \"Ugyldig input\";\n case \"invalid_element\":\n return `Ugyldig verdi i ${issue.origin}`;\n default:\n return `Ugyldig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"harf\", verb: \"olmalıdır\" },\n file: { unit: \"bayt\", verb: \"olmalıdır\" },\n array: { unit: \"unsur\", verb: \"olmalıdır\" },\n set: { unit: \"unsur\", verb: \"olmalıdır\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"numara\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"saf\";\n }\n if (data === null) {\n return \"gayb\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"giren\",\n email: \"epostagâh\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO hengâmı\",\n date: \"ISO tarihi\",\n time: \"ISO zamanı\",\n duration: \"ISO müddeti\",\n ipv4: \"IPv4 nişânı\",\n ipv6: \"IPv6 nişânı\",\n cidrv4: \"IPv4 menzili\",\n cidrv6: \"IPv6 menzili\",\n base64: \"base64-şifreli metin\",\n base64url: \"base64url-şifreli metin\",\n json_string: \"JSON metin\",\n e164: \"E.164 sayısı\",\n jwt: \"JWT\",\n template_literal: \"giren\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Fâsit giren: umulan ${issue.expected}, alınan ${parsedType(issue.input)}`;\n // return `Fâsit giren: umulan ${issue.expected}, alınan ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Fâsit giren: umulan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Fâsit tercih: mûteberler ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Fazla büyük: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"} sahip olmalıydı.`;\n return `Fazla büyük: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} olmalıydı.`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} ${sizing.unit} sahip olmalıydı.`;\n }\n return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} olmalıydı.`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Fâsit metin: \"${_issue.prefix}\" ile başlamalı.`;\n if (_issue.format === \"ends_with\")\n return `Fâsit metin: \"${_issue.suffix}\" ile bitmeli.`;\n if (_issue.format === \"includes\")\n return `Fâsit metin: \"${_issue.includes}\" ihtivâ etmeli.`;\n if (_issue.format === \"regex\")\n return `Fâsit metin: ${_issue.pattern} nakşına uymalı.`;\n return `Fâsit ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Fâsit sayı: ${issue.divisor} katı olmalıydı.`;\n case \"unrecognized_keys\":\n return `Tanınmayan anahtar ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} için tanınmayan anahtar var.`;\n case \"invalid_union\":\n return \"Giren tanınamadı.\";\n case \"invalid_element\":\n return `${issue.origin} için tanınmayan kıymet var.`;\n default:\n return `Kıymet tanınamadı.`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"توکي\", verb: \"ولري\" },\n file: { unit: \"بایټس\", verb: \"ولري\" },\n array: { unit: \"توکي\", verb: \"ولري\" },\n set: { unit: \"توکي\", verb: \"ولري\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"عدد\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"ارې\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ورودي\",\n email: \"بریښنالیک\",\n url: \"یو آر ال\",\n emoji: \"ایموجي\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"نیټه او وخت\",\n date: \"نېټه\",\n time: \"وخت\",\n duration: \"موده\",\n ipv4: \"د IPv4 پته\",\n ipv6: \"د IPv6 پته\",\n cidrv4: \"د IPv4 ساحه\",\n cidrv6: \"د IPv6 ساحه\",\n base64: \"base64-encoded متن\",\n base64url: \"base64url-encoded متن\",\n json_string: \"JSON متن\",\n e164: \"د E.164 شمېره\",\n jwt: \"JWT\",\n template_literal: \"ورودي\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ناسم ورودي: باید ${issue.expected} وای, مګر ${parsedType(issue.input)} ترلاسه شو`;\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `ناسم ورودي: باید ${util.stringifyPrimitive(issue.values[0])} وای`;\n }\n return `ناسم انتخاب: باید یو له ${util.joinValues(issue.values, \"|\")} څخه وای`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `ډیر لوی: ${issue.origin ?? \"ارزښت\"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عنصرونه\"} ولري`;\n }\n return `ډیر لوی: ${issue.origin ?? \"ارزښت\"} باید ${adj}${issue.maximum.toString()} وي`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} ولري`;\n }\n return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} وي`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `ناسم متن: باید د \"${_issue.prefix}\" سره پیل شي`;\n }\n if (_issue.format === \"ends_with\") {\n return `ناسم متن: باید د \"${_issue.suffix}\" سره پای ته ورسيږي`;\n }\n if (_issue.format === \"includes\") {\n return `ناسم متن: باید \"${_issue.includes}\" ولري`;\n }\n if (_issue.format === \"regex\") {\n return `ناسم متن: باید د ${_issue.pattern} سره مطابقت ولري`;\n }\n return `${Nouns[_issue.format] ?? issue.format} ناسم دی`;\n }\n case \"not_multiple_of\":\n return `ناسم عدد: باید د ${issue.divisor} مضرب وي`;\n case \"unrecognized_keys\":\n return `ناسم ${issue.keys.length > 1 ? \"کلیډونه\" : \"کلیډ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `ناسم کلیډ په ${issue.origin} کې`;\n case \"invalid_union\":\n return `ناسمه ورودي`;\n case \"invalid_element\":\n return `ناسم عنصر په ${issue.origin} کې`;\n default:\n return `ناسمه ورودي`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znaków\", verb: \"mieć\" },\n file: { unit: \"bajtów\", verb: \"mieć\" },\n array: { unit: \"elementów\", verb: \"mieć\" },\n set: { unit: \"elementów\", verb: \"mieć\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"liczba\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tablica\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"wyrażenie\",\n email: \"adres email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i godzina w formacie ISO\",\n date: \"data w formacie ISO\",\n time: \"godzina w formacie ISO\",\n duration: \"czas trwania ISO\",\n ipv4: \"adres IPv4\",\n ipv6: \"adres IPv6\",\n cidrv4: \"zakres IPv4\",\n cidrv6: \"zakres IPv6\",\n base64: \"ciąg znaków zakodowany w formacie base64\",\n base64url: \"ciąg znaków zakodowany w formacie base64url\",\n json_string: \"ciąg znaków w formacie JSON\",\n e164: \"liczba E.164\",\n jwt: \"JWT\",\n template_literal: \"wejście\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Nieprawidłowe dane wejściowe: oczekiwano ${issue.expected}, otrzymano ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nieprawidłowe dane wejściowe: oczekiwano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nieprawidłowa opcja: oczekiwano jednej z wartości ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za duża wartość: oczekiwano, że ${issue.origin ?? \"wartość\"} będzie mieć ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementów\"}`;\n }\n return `Zbyt duż(y/a/e): oczekiwano, że ${issue.origin ?? \"wartość\"} będzie wynosić ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za mała wartość: oczekiwano, że ${issue.origin ?? \"wartość\"} będzie mieć ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"elementów\"}`;\n }\n return `Zbyt mał(y/a/e): oczekiwano, że ${issue.origin ?? \"wartość\"} będzie wynosić ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nieprawidłowy ciąg znaków: musi zaczynać się od \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nieprawidłowy ciąg znaków: musi kończyć się na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nieprawidłowy ciąg znaków: musi zawierać \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${_issue.pattern}`;\n return `Nieprawidłow(y/a/e) ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nieprawidłowa liczba: musi być wielokrotnością ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nierozpoznane klucze${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nieprawidłowy klucz w ${issue.origin}`;\n case \"invalid_union\":\n return \"Nieprawidłowe dane wejściowe\";\n case \"invalid_element\":\n return `Nieprawidłowa wartość w ${issue.origin}`;\n default:\n return `Nieprawidłowe dane wejściowe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"ter\" },\n file: { unit: \"bytes\", verb: \"ter\" },\n array: { unit: \"itens\", verb: \"ter\" },\n set: { unit: \"itens\", verb: \"ter\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"número\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"nulo\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"padrão\",\n email: \"endereço de e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"duração ISO\",\n ipv4: \"endereço IPv4\",\n ipv6: \"endereço IPv6\",\n cidrv4: \"faixa de IPv4\",\n cidrv6: \"faixa de IPv6\",\n base64: \"texto codificado em base64\",\n base64url: \"URL codificada em base64\",\n json_string: \"texto JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Tipo inválido: esperado ${issue.expected}, recebido ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inválida: esperado ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opção inválida: esperada uma das ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} tivesse ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} fosse ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Muito pequeno: esperado que ${issue.origin} tivesse ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Muito pequeno: esperado que ${issue.origin} fosse ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Texto inválido: deve começar com \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Texto inválido: deve terminar com \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Texto inválido: deve incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Texto inválido: deve corresponder ao padrão ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} inválido`;\n }\n case \"not_multiple_of\":\n return `Número inválido: deve ser múltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chave${issue.keys.length > 1 ? \"s\" : \"\"} desconhecida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chave inválida em ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inválida\";\n case \"invalid_element\":\n return `Valor inválido em ${issue.origin}`;\n default:\n return `Campo inválido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nfunction getRussianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"символ\",\n few: \"символа\",\n many: \"символов\",\n },\n verb: \"иметь\",\n },\n file: {\n unit: {\n one: \"байт\",\n few: \"байта\",\n many: \"байт\",\n },\n verb: \"иметь\",\n },\n array: {\n unit: {\n one: \"элемент\",\n few: \"элемента\",\n many: \"элементов\",\n },\n verb: \"иметь\",\n },\n set: {\n unit: {\n one: \"элемент\",\n few: \"элемента\",\n many: \"элементов\",\n },\n verb: \"иметь\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"число\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"массив\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ввод\",\n email: \"email адрес\",\n url: \"URL\",\n emoji: \"эмодзи\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO дата и время\",\n date: \"ISO дата\",\n time: \"ISO время\",\n duration: \"ISO длительность\",\n ipv4: \"IPv4 адрес\",\n ipv6: \"IPv6 адрес\",\n cidrv4: \"IPv4 диапазон\",\n cidrv6: \"IPv6 диапазон\",\n base64: \"строка в формате base64\",\n base64url: \"строка в формате base64url\",\n json_string: \"JSON строка\",\n e164: \"номер E.164\",\n jwt: \"JWT\",\n template_literal: \"ввод\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Неверный ввод: ожидалось ${issue.expected}, получено ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Неверный ввод: ожидалось ${util.stringifyPrimitive(issue.values[0])}`;\n return `Неверный вариант: ожидалось одно из ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Слишком большое значение: ожидалось, что ${issue.origin ?? \"значение\"} будет иметь ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `Слишком большое значение: ожидалось, что ${issue.origin ?? \"значение\"} будет ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет иметь ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Неверная строка: должна начинаться с \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Неверная строка: должна заканчиваться на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неверная строка: должна содержать \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неверная строка: должна соответствовать шаблону ${_issue.pattern}`;\n return `Неверный ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Неверное число: должно быть кратным ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нераспознанн${issue.keys.length > 1 ? \"ые\" : \"ый\"} ключ${issue.keys.length > 1 ? \"и\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Неверный ключ в ${issue.origin}`;\n case \"invalid_union\":\n return \"Неверные входные данные\";\n case \"invalid_element\":\n return `Неверное значение в ${issue.origin}`;\n default:\n return `Неверные входные данные`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znakov\", verb: \"imeti\" },\n file: { unit: \"bajtov\", verb: \"imeti\" },\n array: { unit: \"elementov\", verb: \"imeti\" },\n set: { unit: \"elementov\", verb: \"imeti\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"število\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tabela\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"vnos\",\n email: \"e-poštni naslov\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum in čas\",\n date: \"ISO datum\",\n time: \"ISO čas\",\n duration: \"ISO trajanje\",\n ipv4: \"IPv4 naslov\",\n ipv6: \"IPv6 naslov\",\n cidrv4: \"obseg IPv4\",\n cidrv6: \"obseg IPv6\",\n base64: \"base64 kodiran niz\",\n base64url: \"base64url kodiran niz\",\n json_string: \"JSON niz\",\n e164: \"E.164 številka\",\n jwt: \"JWT\",\n template_literal: \"vnos\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Neveljaven vnos: pričakovano ${issue.expected}, prejeto ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neveljaven vnos: pričakovano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neveljavna možnost: pričakovano eno izmed ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Preveliko: pričakovano, da bo ${issue.origin ?? \"vrednost\"} imelo ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementov\"}`;\n return `Preveliko: pričakovano, da bo ${issue.origin ?? \"vrednost\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Premajhno: pričakovano, da bo ${issue.origin} imelo ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Premajhno: pričakovano, da bo ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Neveljaven niz: mora se začeti z \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Neveljaven niz: mora se končati z \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neveljaven niz: mora vsebovati \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`;\n return `Neveljaven ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neveljavno število: mora biti večkratnik ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Neprepoznan${issue.keys.length > 1 ? \"i ključi\" : \" ključ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neveljaven ključ v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neveljaven vnos\";\n case \"invalid_element\":\n return `Neveljavna vrednost v ${issue.origin}`;\n default:\n return \"Neveljaven vnos\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tecken\", verb: \"att ha\" },\n file: { unit: \"bytes\", verb: \"att ha\" },\n array: { unit: \"objekt\", verb: \"att innehålla\" },\n set: { unit: \"objekt\", verb: \"att innehålla\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"antal\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"lista\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"reguljärt uttryck\",\n email: \"e-postadress\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datum och tid\",\n date: \"ISO-datum\",\n time: \"ISO-tid\",\n duration: \"ISO-varaktighet\",\n ipv4: \"IPv4-intervall\",\n ipv6: \"IPv6-intervall\",\n cidrv4: \"IPv4-spektrum\",\n cidrv6: \"IPv6-spektrum\",\n base64: \"base64-kodad sträng\",\n base64url: \"base64url-kodad sträng\",\n json_string: \"JSON-sträng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"mall-literal\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ogiltig inmatning: förväntat ${issue.expected}, fick ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ogiltig inmatning: förväntat ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ogiltigt val: förväntade en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `För stor(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n }\n return `För stor(t): förväntat ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `För lite(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `För lite(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ogiltig sträng: måste börja med \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Ogiltig sträng: måste sluta med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ogiltig sträng: måste innehålla \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ogiltig sträng: måste matcha mönstret \"${_issue.pattern}\"`;\n return `Ogiltig(t) ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ogiltigt tal: måste vara en multipel av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Okända nycklar\" : \"Okänd nyckel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ogiltig nyckel i ${issue.origin ?? \"värdet\"}`;\n case \"invalid_union\":\n return \"Ogiltig input\";\n case \"invalid_element\":\n return `Ogiltigt värde i ${issue.origin ?? \"värdet\"}`;\n default:\n return `Ogiltig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"எழுத்துக்கள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n file: { unit: \"பைட்டுகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n array: { unit: \"உறுப்புகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n set: { unit: \"உறுப்புகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"எண் அல்லாதது\" : \"எண்\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"அணி\";\n }\n if (data === null) {\n return \"வெறுமை\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"உள்ளீடு\",\n email: \"மின்னஞ்சல் முகவரி\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO தேதி நேரம்\",\n date: \"ISO தேதி\",\n time: \"ISO நேரம்\",\n duration: \"ISO கால அளவு\",\n ipv4: \"IPv4 முகவரி\",\n ipv6: \"IPv6 முகவரி\",\n cidrv4: \"IPv4 வரம்பு\",\n cidrv6: \"IPv6 வரம்பு\",\n base64: \"base64-encoded சரம்\",\n base64url: \"base64url-encoded சரம்\",\n json_string: \"JSON சரம்\",\n e164: \"E.164 எண்\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${issue.expected}, பெறப்பட்டது ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${util.stringifyPrimitive(issue.values[0])}`;\n return `தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${util.joinValues(issue.values, \"|\")} இல் ஒன்று`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? \"மதிப்பு\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"உறுப்புகள்\"} ஆக இருக்க வேண்டும்`;\n }\n return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? \"மதிப்பு\"} ${adj}${issue.maximum.toString()} ஆக இருக்க வேண்டும்`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ஆக இருக்க வேண்டும்`; //\n }\n return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ஆக இருக்க வேண்டும்`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `தவறான சரம்: \"${_issue.prefix}\" இல் தொடங்க வேண்டும்`;\n if (_issue.format === \"ends_with\")\n return `தவறான சரம்: \"${_issue.suffix}\" இல் முடிவடைய வேண்டும்`;\n if (_issue.format === \"includes\")\n return `தவறான சரம்: \"${_issue.includes}\" ஐ உள்ளடக்க வேண்டும்`;\n if (_issue.format === \"regex\")\n return `தவறான சரம்: ${_issue.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`;\n return `தவறான ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `தவறான எண்: ${issue.divisor} இன் பலமாக இருக்க வேண்டும்`;\n case \"unrecognized_keys\":\n return `அடையாளம் தெரியாத விசை${issue.keys.length > 1 ? \"கள்\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} இல் தவறான விசை`;\n case \"invalid_union\":\n return \"தவறான உள்ளீடு\";\n case \"invalid_element\":\n return `${issue.origin} இல் தவறான மதிப்பு`;\n default:\n return `தவறான உள்ளீடு`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"ตัวอักษร\", verb: \"ควรมี\" },\n file: { unit: \"ไบต์\", verb: \"ควรมี\" },\n array: { unit: \"รายการ\", verb: \"ควรมี\" },\n set: { unit: \"รายการ\", verb: \"ควรมี\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"ไม่ใช่ตัวเลข (NaN)\" : \"ตัวเลข\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"อาร์เรย์ (Array)\";\n }\n if (data === null) {\n return \"ไม่มีค่า (null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ข้อมูลที่ป้อน\",\n email: \"ที่อยู่อีเมล\",\n url: \"URL\",\n emoji: \"อิโมจิ\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"วันที่เวลาแบบ ISO\",\n date: \"วันที่แบบ ISO\",\n time: \"เวลาแบบ ISO\",\n duration: \"ช่วงเวลาแบบ ISO\",\n ipv4: \"ที่อยู่ IPv4\",\n ipv6: \"ที่อยู่ IPv6\",\n cidrv4: \"ช่วง IP แบบ IPv4\",\n cidrv6: \"ช่วง IP แบบ IPv6\",\n base64: \"ข้อความแบบ Base64\",\n base64url: \"ข้อความแบบ Base64 สำหรับ URL\",\n json_string: \"ข้อความแบบ JSON\",\n e164: \"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)\",\n jwt: \"โทเคน JWT\",\n template_literal: \"ข้อมูลที่ป้อน\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${issue.expected} แต่ได้รับ ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `ค่าไม่ถูกต้อง: ควรเป็น ${util.stringifyPrimitive(issue.values[0])}`;\n return `ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"ไม่เกิน\" : \"น้อยกว่า\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `เกินกำหนด: ${issue.origin ?? \"ค่า\"} ควรมี${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"รายการ\"}`;\n return `เกินกำหนด: ${issue.origin ?? \"ค่า\"} ควรมี${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"อย่างน้อย\" : \"มากกว่า\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องมี \"${_issue.includes}\" อยู่ในข้อความ`;\n if (_issue.format === \"regex\")\n return `รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${_issue.pattern}`;\n return `รูปแบบไม่ถูกต้อง: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${issue.divisor} ได้ลงตัว`;\n case \"unrecognized_keys\":\n return `พบคีย์ที่ไม่รู้จัก: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `คีย์ไม่ถูกต้องใน ${issue.origin}`;\n case \"invalid_union\":\n return \"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้\";\n case \"invalid_element\":\n return `ข้อมูลไม่ถูกต้องใน ${issue.origin}`;\n default:\n return `ข้อมูลไม่ถูกต้อง`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"olmalı\" },\n file: { unit: \"bayt\", verb: \"olmalı\" },\n array: { unit: \"öğe\", verb: \"olmalı\" },\n set: { unit: \"öğe\", verb: \"olmalı\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"girdi\",\n email: \"e-posta adresi\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO tarih ve saat\",\n date: \"ISO tarih\",\n time: \"ISO saat\",\n duration: \"ISO süre\",\n ipv4: \"IPv4 adresi\",\n ipv6: \"IPv6 adresi\",\n cidrv4: \"IPv4 aralığı\",\n cidrv6: \"IPv6 aralığı\",\n base64: \"base64 ile şifrelenmiş metin\",\n base64url: \"base64url ile şifrelenmiş metin\",\n json_string: \"JSON dizesi\",\n e164: \"E.164 sayısı\",\n jwt: \"JWT\",\n template_literal: \"Şablon dizesi\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Geçersiz değer: beklenen ${issue.expected}, alınan ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Geçersiz değer: beklenen ${util.stringifyPrimitive(issue.values[0])}`;\n return `Geçersiz seçenek: aşağıdakilerden biri olmalı: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çok büyük: beklenen ${issue.origin ?? \"değer\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"öğe\"}`;\n return `Çok büyük: beklenen ${issue.origin ?? \"değer\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Geçersiz metin: \"${_issue.prefix}\" ile başlamalı`;\n if (_issue.format === \"ends_with\")\n return `Geçersiz metin: \"${_issue.suffix}\" ile bitmeli`;\n if (_issue.format === \"includes\")\n return `Geçersiz metin: \"${_issue.includes}\" içermeli`;\n if (_issue.format === \"regex\")\n return `Geçersiz metin: ${_issue.pattern} desenine uymalı`;\n return `Geçersiz ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Geçersiz sayı: ${issue.divisor} ile tam bölünebilmeli`;\n case \"unrecognized_keys\":\n return `Tanınmayan anahtar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} içinde geçersiz anahtar`;\n case \"invalid_union\":\n return \"Geçersiz değer\";\n case \"invalid_element\":\n return `${issue.origin} içinde geçersiz değer`;\n default:\n return `Geçersiz değer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"символів\", verb: \"матиме\" },\n file: { unit: \"байтів\", verb: \"матиме\" },\n array: { unit: \"елементів\", verb: \"матиме\" },\n set: { unit: \"елементів\", verb: \"матиме\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"число\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"масив\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"вхідні дані\",\n email: \"адреса електронної пошти\",\n url: \"URL\",\n emoji: \"емодзі\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"дата та час ISO\",\n date: \"дата ISO\",\n time: \"час ISO\",\n duration: \"тривалість ISO\",\n ipv4: \"адреса IPv4\",\n ipv6: \"адреса IPv6\",\n cidrv4: \"діапазон IPv4\",\n cidrv6: \"діапазон IPv6\",\n base64: \"рядок у кодуванні base64\",\n base64url: \"рядок у кодуванні base64url\",\n json_string: \"рядок JSON\",\n e164: \"номер E.164\",\n jwt: \"JWT\",\n template_literal: \"вхідні дані\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${parsedType(issue.input)}`;\n // return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Неправильні вхідні дані: очікується ${util.stringifyPrimitive(issue.values[0])}`;\n return `Неправильна опція: очікується одне з ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Занадто велике: очікується, що ${issue.origin ?? \"значення\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елементів\"}`;\n return `Занадто велике: очікується, що ${issue.origin ?? \"значення\"} буде ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Неправильний рядок: повинен починатися з \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Неправильний рядок: повинен закінчуватися на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неправильний рядок: повинен містити \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;\n return `Неправильний ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Неправильне число: повинно бути кратним ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нерозпізнаний ключ${issue.keys.length > 1 ? \"і\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Неправильний ключ у ${issue.origin}`;\n case \"invalid_union\":\n return \"Неправильні вхідні дані\";\n case \"invalid_element\":\n return `Неправильне значення у ${issue.origin}`;\n default:\n return `Неправильні вхідні дані`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import uk from \"./uk.js\";\n/** @deprecated Use `uk` instead. */\nexport default function () {\n return uk();\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"حروف\", verb: \"ہونا\" },\n file: { unit: \"بائٹس\", verb: \"ہونا\" },\n array: { unit: \"آئٹمز\", verb: \"ہونا\" },\n set: { unit: \"آئٹمز\", verb: \"ہونا\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"نمبر\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"آرے\";\n }\n if (data === null) {\n return \"نل\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ان پٹ\",\n email: \"ای میل ایڈریس\",\n url: \"یو آر ایل\",\n emoji: \"ایموجی\",\n uuid: \"یو یو آئی ڈی\",\n uuidv4: \"یو یو آئی ڈی وی 4\",\n uuidv6: \"یو یو آئی ڈی وی 6\",\n nanoid: \"نینو آئی ڈی\",\n guid: \"جی یو آئی ڈی\",\n cuid: \"سی یو آئی ڈی\",\n cuid2: \"سی یو آئی ڈی 2\",\n ulid: \"یو ایل آئی ڈی\",\n xid: \"ایکس آئی ڈی\",\n ksuid: \"کے ایس یو آئی ڈی\",\n datetime: \"آئی ایس او ڈیٹ ٹائم\",\n date: \"آئی ایس او تاریخ\",\n time: \"آئی ایس او وقت\",\n duration: \"آئی ایس او مدت\",\n ipv4: \"آئی پی وی 4 ایڈریس\",\n ipv6: \"آئی پی وی 6 ایڈریس\",\n cidrv4: \"آئی پی وی 4 رینج\",\n cidrv6: \"آئی پی وی 6 رینج\",\n base64: \"بیس 64 ان کوڈڈ سٹرنگ\",\n base64url: \"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ\",\n json_string: \"جے ایس او این سٹرنگ\",\n e164: \"ای 164 نمبر\",\n jwt: \"جے ڈبلیو ٹی\",\n template_literal: \"ان پٹ\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `غلط ان پٹ: ${issue.expected} متوقع تھا، ${parsedType(issue.input)} موصول ہوا`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `غلط ان پٹ: ${util.stringifyPrimitive(issue.values[0])} متوقع تھا`;\n return `غلط آپشن: ${util.joinValues(issue.values, \"|\")} میں سے ایک متوقع تھا`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `بہت بڑا: ${issue.origin ?? \"ویلیو\"} کے ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عناصر\"} ہونے متوقع تھے`;\n return `بہت بڑا: ${issue.origin ?? \"ویلیو\"} کا ${adj}${issue.maximum.toString()} ہونا متوقع تھا`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `بہت چھوٹا: ${issue.origin} کے ${adj}${issue.minimum.toString()} ${sizing.unit} ہونے متوقع تھے`;\n }\n return `بہت چھوٹا: ${issue.origin} کا ${adj}${issue.minimum.toString()} ہونا متوقع تھا`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `غلط سٹرنگ: \"${_issue.prefix}\" سے شروع ہونا چاہیے`;\n }\n if (_issue.format === \"ends_with\")\n return `غلط سٹرنگ: \"${_issue.suffix}\" پر ختم ہونا چاہیے`;\n if (_issue.format === \"includes\")\n return `غلط سٹرنگ: \"${_issue.includes}\" شامل ہونا چاہیے`;\n if (_issue.format === \"regex\")\n return `غلط سٹرنگ: پیٹرن ${_issue.pattern} سے میچ ہونا چاہیے`;\n return `غلط ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `غلط نمبر: ${issue.divisor} کا مضاعف ہونا چاہیے`;\n case \"unrecognized_keys\":\n return `غیر تسلیم شدہ کی${issue.keys.length > 1 ? \"ز\" : \"\"}: ${util.joinValues(issue.keys, \"، \")}`;\n case \"invalid_key\":\n return `${issue.origin} میں غلط کی`;\n case \"invalid_union\":\n return \"غلط ان پٹ\";\n case \"invalid_element\":\n return `${issue.origin} میں غلط ویلیو`;\n default:\n return `غلط ان پٹ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"ký tự\", verb: \"có\" },\n file: { unit: \"byte\", verb: \"có\" },\n array: { unit: \"phần tử\", verb: \"có\" },\n set: { unit: \"phần tử\", verb: \"có\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"số\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"mảng\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"đầu vào\",\n email: \"địa chỉ email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ngày giờ ISO\",\n date: \"ngày ISO\",\n time: \"giờ ISO\",\n duration: \"khoảng thời gian ISO\",\n ipv4: \"địa chỉ IPv4\",\n ipv6: \"địa chỉ IPv6\",\n cidrv4: \"dải IPv4\",\n cidrv6: \"dải IPv6\",\n base64: \"chuỗi mã hóa base64\",\n base64url: \"chuỗi mã hóa base64url\",\n json_string: \"chuỗi JSON\",\n e164: \"số E.164\",\n jwt: \"JWT\",\n template_literal: \"đầu vào\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Đầu vào không hợp lệ: mong đợi ${issue.expected}, nhận được ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Đầu vào không hợp lệ: mong đợi ${util.stringifyPrimitive(issue.values[0])}`;\n return `Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Quá lớn: mong đợi ${issue.origin ?? \"giá trị\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"phần tử\"}`;\n return `Quá lớn: mong đợi ${issue.origin ?? \"giá trị\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Quá nhỏ: mong đợi ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Quá nhỏ: mong đợi ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Chuỗi không hợp lệ: phải bắt đầu bằng \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Chuỗi không hợp lệ: phải kết thúc bằng \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chuỗi không hợp lệ: phải bao gồm \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chuỗi không hợp lệ: phải khớp với mẫu ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} không hợp lệ`;\n }\n case \"not_multiple_of\":\n return `Số không hợp lệ: phải là bội số của ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Khóa không được nhận dạng: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Khóa không hợp lệ trong ${issue.origin}`;\n case \"invalid_union\":\n return \"Đầu vào không hợp lệ\";\n case \"invalid_element\":\n return `Giá trị không hợp lệ trong ${issue.origin}`;\n default:\n return `Đầu vào không hợp lệ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"字符\", verb: \"包含\" },\n file: { unit: \"字节\", verb: \"包含\" },\n array: { unit: \"项\", verb: \"包含\" },\n set: { unit: \"项\", verb: \"包含\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"非数字(NaN)\" : \"数字\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"数组\";\n }\n if (data === null) {\n return \"空值(null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"输入\",\n email: \"电子邮件\",\n url: \"URL\",\n emoji: \"表情符号\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO日期时间\",\n date: \"ISO日期\",\n time: \"ISO时间\",\n duration: \"ISO时长\",\n ipv4: \"IPv4地址\",\n ipv6: \"IPv6地址\",\n cidrv4: \"IPv4网段\",\n cidrv6: \"IPv6网段\",\n base64: \"base64编码字符串\",\n base64url: \"base64url编码字符串\",\n json_string: \"JSON字符串\",\n e164: \"E.164号码\",\n jwt: \"JWT\",\n template_literal: \"输入\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `无效输入:期望 ${issue.expected},实际接收 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `无效输入:期望 ${util.stringifyPrimitive(issue.values[0])}`;\n return `无效选项:期望以下之一 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `数值过大:期望 ${issue.origin ?? \"值\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"个元素\"}`;\n return `数值过大:期望 ${issue.origin ?? \"值\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `无效字符串:必须以 \"${_issue.prefix}\" 开头`;\n if (_issue.format === \"ends_with\")\n return `无效字符串:必须以 \"${_issue.suffix}\" 结尾`;\n if (_issue.format === \"includes\")\n return `无效字符串:必须包含 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `无效字符串:必须满足正则表达式 ${_issue.pattern}`;\n return `无效${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `无效数字:必须是 ${issue.divisor} 的倍数`;\n case \"unrecognized_keys\":\n return `出现未知的键(key): ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} 中的键(key)无效`;\n case \"invalid_union\":\n return \"无效输入\";\n case \"invalid_element\":\n return `${issue.origin} 中包含无效值(value)`;\n default:\n return `无效输入`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"字元\", verb: \"擁有\" },\n file: { unit: \"位元組\", verb: \"擁有\" },\n array: { unit: \"項目\", verb: \"擁有\" },\n set: { unit: \"項目\", verb: \"擁有\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"輸入\",\n email: \"郵件地址\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO 日期時間\",\n date: \"ISO 日期\",\n time: \"ISO 時間\",\n duration: \"ISO 期間\",\n ipv4: \"IPv4 位址\",\n ipv6: \"IPv6 位址\",\n cidrv4: \"IPv4 範圍\",\n cidrv6: \"IPv6 範圍\",\n base64: \"base64 編碼字串\",\n base64url: \"base64url 編碼字串\",\n json_string: \"JSON 字串\",\n e164: \"E.164 數值\",\n jwt: \"JWT\",\n template_literal: \"輸入\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `無效的輸入值:預期為 ${issue.expected},但收到 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `無效的輸入值:預期為 ${util.stringifyPrimitive(issue.values[0])}`;\n return `無效的選項:預期為以下其中之一 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `數值過大:預期 ${issue.origin ?? \"值\"} 應為 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"個元素\"}`;\n return `數值過大:預期 ${issue.origin ?? \"值\"} 應為 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `無效的字串:必須以 \"${_issue.prefix}\" 開頭`;\n }\n if (_issue.format === \"ends_with\")\n return `無效的字串:必須以 \"${_issue.suffix}\" 結尾`;\n if (_issue.format === \"includes\")\n return `無效的字串:必須包含 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `無效的字串:必須符合格式 ${_issue.pattern}`;\n return `無效的 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `無效的數字:必須為 ${issue.divisor} 的倍數`;\n case \"unrecognized_keys\":\n return `無法識別的鍵值${issue.keys.length > 1 ? \"們\" : \"\"}:${util.joinValues(issue.keys, \"、\")}`;\n case \"invalid_key\":\n return `${issue.origin} 中有無效的鍵值`;\n case \"invalid_union\":\n return \"無效的輸入值\";\n case \"invalid_element\":\n return `${issue.origin} 中有無效的值`;\n default:\n return `無效的輸入值`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"àmi\", verb: \"ní\" },\n file: { unit: \"bytes\", verb: \"ní\" },\n array: { unit: \"nkan\", verb: \"ní\" },\n set: { unit: \"nkan\", verb: \"ní\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nọ́mbà\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"akopọ\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ẹ̀rọ ìbáwọlé\",\n email: \"àdírẹ́sì ìmẹ́lì\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"àkókò ISO\",\n date: \"ọjọ́ ISO\",\n time: \"àkókò ISO\",\n duration: \"àkókò tó pé ISO\",\n ipv4: \"àdírẹ́sì IPv4\",\n ipv6: \"àdírẹ́sì IPv6\",\n cidrv4: \"àgbègbè IPv4\",\n cidrv6: \"àgbègbè IPv6\",\n base64: \"ọ̀rọ̀ tí a kọ́ ní base64\",\n base64url: \"ọ̀rọ̀ base64url\",\n json_string: \"ọ̀rọ̀ JSON\",\n e164: \"nọ́mbà E.164\",\n jwt: \"JWT\",\n template_literal: \"ẹ̀rọ ìbáwọlé\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ìbáwọlé aṣìṣe: a ní láti fi ${issue.expected}, àmọ̀ a rí ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ìbáwọlé aṣìṣe: a ní láti fi ${util.stringifyPrimitive(issue.values[0])}`;\n return `Àṣàyàn aṣìṣe: yan ọ̀kan lára ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Tó pọ̀ jù: a ní láti jẹ́ pé ${issue.origin ?? \"iye\"} ${sizing.verb} ${adj}${issue.maximum} ${sizing.unit}`;\n return `Tó pọ̀ jù: a ní láti jẹ́ ${adj}${issue.maximum}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Kéré ju: a ní láti jẹ́ pé ${issue.origin} ${sizing.verb} ${adj}${issue.minimum} ${sizing.unit}`;\n return `Kéré ju: a ní láti jẹ́ ${adj}${issue.minimum}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${_issue.pattern}`;\n return `Aṣìṣe: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Bọtìnì àìmọ̀: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Bọtìnì aṣìṣe nínú ${issue.origin}`;\n case \"invalid_union\":\n return \"Ìbáwọlé aṣìṣe\";\n case \"invalid_element\":\n return `Iye aṣìṣe nínú ${issue.origin}`;\n default:\n return \"Ìbáwọlé aṣìṣe\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","export const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new WeakMap();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n if (this._idmap.has(meta.id)) {\n throw new Error(`ID ${meta.id} already exists in the registry`);\n }\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n clear() {\n this._map = new WeakMap();\n this._idmap = new Map();\n return this;\n }\n remove(schema) {\n const meta = this._map.get(schema);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.delete(meta.id);\n }\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n const f = { ...pm, ...this._map.get(schema) };\n return Object.keys(f).length ? f : undefined;\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\nexport const globalRegistry = /*@__PURE__*/ registry();\n","import * as checks from \"./checks.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n return new Class({\n type: \"string\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedString(Class, params) {\n return new Class({\n type: \"string\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport const TimePrecision = {\n Any: null,\n Minute: -1,\n Second: 0,\n Millisecond: 3,\n Microsecond: 6,\n};\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _number(Class, params) {\n return new Class({\n type: \"number\",\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedNumber(Class, params) {\n return new Class({\n type: \"number\",\n coerce: true,\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass<schemas.$ZodTuple>,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// same as _custom but defaults to abort:false\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\nexport function _superRefine(fn) {\n const ch = _check((payload) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = ch);\n _issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true...\n payload.issues.push(util.issue(_issue));\n }\n };\n return fn(payload.value, payload);\n });\n return ch;\n}\nexport function _check(fn, params) {\n const ch = new checks.$ZodCheck({\n check: \"custom\",\n ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function _stringbool(Classes, _params) {\n const params = util.normalizeParams(_params);\n let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n if (params.case !== \"sensitive\") {\n truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n }\n const truthySet = new Set(truthyArray);\n const falsySet = new Set(falsyArray);\n const _Codec = Classes.Codec ?? schemas.$ZodCodec;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _String = Classes.String ?? schemas.$ZodString;\n const stringSchema = new _String({ type: \"string\", error: params.error });\n const booleanSchema = new _Boolean({ type: \"boolean\", error: params.error });\n const codec = new _Codec({\n type: \"pipe\",\n in: stringSchema,\n out: booleanSchema,\n transform: ((input, payload) => {\n let data = input;\n if (params.case !== \"sensitive\")\n data = data.toLowerCase();\n if (truthySet.has(data)) {\n return true;\n }\n else if (falsySet.has(data)) {\n return false;\n }\n else {\n payload.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...truthySet, ...falsySet],\n input: payload.value,\n inst: codec,\n continue: false,\n });\n return {};\n }\n }),\n reverseTransform: ((input, _payload) => {\n if (input === true) {\n return truthyArray[0] || \"true\";\n }\n else {\n return falsyArray[0] || \"false\";\n }\n }),\n error: params.error,\n });\n return codec;\n}\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n const params = util.normalizeParams(_params);\n const def = {\n ...util.normalizeParams(_params),\n check: \"string_format\",\n type: \"string\",\n format,\n fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n ...params,\n };\n if (fnOrRegex instanceof RegExp) {\n def.pattern = fnOrRegex;\n }\n const inst = new Class(def);\n return inst;\n}\n","import { $ZodRegistry, globalRegistry } from \"./registries.js\";\nimport { getEnumValues } from \"./util.js\";\nexport class JSONSchemaGenerator {\n constructor(params) {\n this.counter = 0;\n this.metadataRegistry = params?.metadata ?? globalRegistry;\n this.target = params?.target ?? \"draft-2020-12\";\n this.unrepresentable = params?.unrepresentable ?? \"throw\";\n this.override = params?.override ?? (() => { });\n this.io = params?.io ?? \"output\";\n this.seen = new Map();\n }\n process(schema, _params = { path: [], schemaPath: [] }) {\n var _a;\n const def = schema._zod.def;\n const formatMap = {\n guid: \"uuid\",\n url: \"uri\",\n datetime: \"date-time\",\n json_string: \"json-string\",\n regex: \"\", // do not set\n };\n // check for schema in seens\n const seen = this.seen.get(schema);\n if (seen) {\n seen.count++;\n // check if cycle\n const isCycle = _params.schemaPath.includes(schema);\n if (isCycle) {\n seen.cycle = _params.path;\n }\n return seen.schema;\n }\n // initialize\n const result = { schema: {}, count: 1, cycle: undefined, path: _params.path };\n this.seen.set(schema, result);\n // custom method overrides default behavior\n const overrideSchema = schema._zod.toJSONSchema?.();\n if (overrideSchema) {\n result.schema = overrideSchema;\n }\n else {\n const params = {\n ..._params,\n schemaPath: [..._params.schemaPath, schema],\n path: _params.path,\n };\n const parent = schema._zod.parent;\n if (parent) {\n // schema was cloned from another schema\n result.ref = parent;\n this.process(parent, params);\n this.seen.get(parent).isParent = true;\n }\n else {\n const _json = result.schema;\n switch (def.type) {\n case \"string\": {\n const json = _json;\n json.type = \"string\";\n const { minimum, maximum, format, patterns, contentEncoding } = schema._zod\n .bag;\n if (typeof minimum === \"number\")\n json.minLength = minimum;\n if (typeof maximum === \"number\")\n json.maxLength = maximum;\n // custom pattern overrides format\n if (format) {\n json.format = formatMap[format] ?? format;\n if (json.format === \"\")\n delete json.format; // empty format is not valid\n }\n if (contentEncoding)\n json.contentEncoding = contentEncoding;\n if (patterns && patterns.size > 0) {\n const regexes = [...patterns];\n if (regexes.length === 1)\n json.pattern = regexes[0].source;\n else if (regexes.length > 1) {\n result.schema.allOf = [\n ...regexes.map((regex) => ({\n ...(this.target === \"draft-7\" || this.target === \"draft-4\" || this.target === \"openapi-3.0\"\n ? { type: \"string\" }\n : {}),\n pattern: regex.source,\n })),\n ];\n }\n }\n break;\n }\n case \"number\": {\n const json = _json;\n const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;\n if (typeof format === \"string\" && format.includes(\"int\"))\n json.type = \"integer\";\n else\n json.type = \"number\";\n if (typeof exclusiveMinimum === \"number\") {\n if (this.target === \"draft-4\" || this.target === \"openapi-3.0\") {\n json.minimum = exclusiveMinimum;\n json.exclusiveMinimum = true;\n }\n else {\n json.exclusiveMinimum = exclusiveMinimum;\n }\n }\n if (typeof minimum === \"number\") {\n json.minimum = minimum;\n if (typeof exclusiveMinimum === \"number\" && this.target !== \"draft-4\") {\n if (exclusiveMinimum >= minimum)\n delete json.minimum;\n else\n delete json.exclusiveMinimum;\n }\n }\n if (typeof exclusiveMaximum === \"number\") {\n if (this.target === \"draft-4\" || this.target === \"openapi-3.0\") {\n json.maximum = exclusiveMaximum;\n json.exclusiveMaximum = true;\n }\n else {\n json.exclusiveMaximum = exclusiveMaximum;\n }\n }\n if (typeof maximum === \"number\") {\n json.maximum = maximum;\n if (typeof exclusiveMaximum === \"number\" && this.target !== \"draft-4\") {\n if (exclusiveMaximum <= maximum)\n delete json.maximum;\n else\n delete json.exclusiveMaximum;\n }\n }\n if (typeof multipleOf === \"number\")\n json.multipleOf = multipleOf;\n break;\n }\n case \"boolean\": {\n const json = _json;\n json.type = \"boolean\";\n break;\n }\n case \"bigint\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"BigInt cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"symbol\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Symbols cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"null\": {\n if (this.target === \"openapi-3.0\") {\n _json.type = \"string\";\n _json.nullable = true;\n _json.enum = [null];\n }\n else\n _json.type = \"null\";\n break;\n }\n case \"any\": {\n break;\n }\n case \"unknown\": {\n break;\n }\n case \"undefined\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Undefined cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"void\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Void cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"never\": {\n _json.not = {};\n break;\n }\n case \"date\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Date cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"array\": {\n const json = _json;\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n json.type = \"array\";\n json.items = this.process(def.element, { ...params, path: [...params.path, \"items\"] });\n break;\n }\n case \"object\": {\n const json = _json;\n json.type = \"object\";\n json.properties = {};\n const shape = def.shape; // params.shapeCache.get(schema)!;\n for (const key in shape) {\n json.properties[key] = this.process(shape[key], {\n ...params,\n path: [...params.path, \"properties\", key],\n });\n }\n // required keys\n const allKeys = new Set(Object.keys(shape));\n // const optionalKeys = new Set(def.optional);\n const requiredKeys = new Set([...allKeys].filter((key) => {\n const v = def.shape[key]._zod;\n if (this.io === \"input\") {\n return v.optin === undefined;\n }\n else {\n return v.optout === undefined;\n }\n }));\n if (requiredKeys.size > 0) {\n json.required = Array.from(requiredKeys);\n }\n // catchall\n if (def.catchall?._zod.def.type === \"never\") {\n // strict\n json.additionalProperties = false;\n }\n else if (!def.catchall) {\n // regular\n if (this.io === \"output\")\n json.additionalProperties = false;\n }\n else if (def.catchall) {\n json.additionalProperties = this.process(def.catchall, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n }\n break;\n }\n case \"union\": {\n const json = _json;\n const options = def.options.map((x, i) => this.process(x, {\n ...params,\n path: [...params.path, \"anyOf\", i],\n }));\n json.anyOf = options;\n break;\n }\n case \"intersection\": {\n const json = _json;\n const a = this.process(def.left, {\n ...params,\n path: [...params.path, \"allOf\", 0],\n });\n const b = this.process(def.right, {\n ...params,\n path: [...params.path, \"allOf\", 1],\n });\n const isSimpleIntersection = (val) => \"allOf\" in val && Object.keys(val).length === 1;\n const allOf = [\n ...(isSimpleIntersection(a) ? a.allOf : [a]),\n ...(isSimpleIntersection(b) ? b.allOf : [b]),\n ];\n json.allOf = allOf;\n break;\n }\n case \"tuple\": {\n const json = _json;\n json.type = \"array\";\n const prefixPath = this.target === \"draft-2020-12\" ? \"prefixItems\" : \"items\";\n const restPath = this.target === \"draft-2020-12\" ? \"items\" : this.target === \"openapi-3.0\" ? \"items\" : \"additionalItems\";\n const prefixItems = def.items.map((x, i) => this.process(x, {\n ...params,\n path: [...params.path, prefixPath, i],\n }));\n const rest = def.rest\n ? this.process(def.rest, {\n ...params,\n path: [...params.path, restPath, ...(this.target === \"openapi-3.0\" ? [def.items.length] : [])],\n })\n : null;\n if (this.target === \"draft-2020-12\") {\n json.prefixItems = prefixItems;\n if (rest) {\n json.items = rest;\n }\n }\n else if (this.target === \"openapi-3.0\") {\n json.items = {\n anyOf: prefixItems,\n };\n if (rest) {\n json.items.anyOf.push(rest);\n }\n json.minItems = prefixItems.length;\n if (!rest) {\n json.maxItems = prefixItems.length;\n }\n }\n else {\n json.items = prefixItems;\n if (rest) {\n json.additionalItems = rest;\n }\n }\n // length\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n break;\n }\n case \"record\": {\n const json = _json;\n json.type = \"object\";\n if (this.target === \"draft-7\" || this.target === \"draft-2020-12\") {\n json.propertyNames = this.process(def.keyType, {\n ...params,\n path: [...params.path, \"propertyNames\"],\n });\n }\n json.additionalProperties = this.process(def.valueType, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n break;\n }\n case \"map\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Map cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"set\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Set cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"enum\": {\n const json = _json;\n const values = getEnumValues(def.entries);\n // Number enums can have both string and number values\n if (values.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (values.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n json.enum = values;\n break;\n }\n case \"literal\": {\n const json = _json;\n const vals = [];\n for (const val of def.values) {\n if (val === undefined) {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Literal `undefined` cannot be represented in JSON Schema\");\n }\n else {\n // do not add to vals\n }\n }\n else if (typeof val === \"bigint\") {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"BigInt literals cannot be represented in JSON Schema\");\n }\n else {\n vals.push(Number(val));\n }\n }\n else {\n vals.push(val);\n }\n }\n if (vals.length === 0) {\n // do nothing (an undefined literal was stripped)\n }\n else if (vals.length === 1) {\n const val = vals[0];\n json.type = val === null ? \"null\" : typeof val;\n if (this.target === \"draft-4\" || this.target === \"openapi-3.0\") {\n json.enum = [val];\n }\n else {\n json.const = val;\n }\n }\n else {\n if (vals.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (vals.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n if (vals.every((v) => typeof v === \"boolean\"))\n json.type = \"string\";\n if (vals.every((v) => v === null))\n json.type = \"null\";\n json.enum = vals;\n }\n break;\n }\n case \"file\": {\n const json = _json;\n const file = {\n type: \"string\",\n format: \"binary\",\n contentEncoding: \"binary\",\n };\n const { minimum, maximum, mime } = schema._zod.bag;\n if (minimum !== undefined)\n file.minLength = minimum;\n if (maximum !== undefined)\n file.maxLength = maximum;\n if (mime) {\n if (mime.length === 1) {\n file.contentMediaType = mime[0];\n Object.assign(json, file);\n }\n else {\n json.anyOf = mime.map((m) => {\n const mFile = { ...file, contentMediaType: m };\n return mFile;\n });\n }\n }\n else {\n Object.assign(json, file);\n }\n // if (this.unrepresentable === \"throw\") {\n // throw new Error(\"File cannot be represented in JSON Schema\");\n // }\n break;\n }\n case \"transform\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Transforms cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"nullable\": {\n const inner = this.process(def.innerType, params);\n if (this.target === \"openapi-3.0\") {\n result.ref = def.innerType;\n _json.nullable = true;\n }\n else {\n _json.anyOf = [inner, { type: \"null\" }];\n }\n break;\n }\n case \"nonoptional\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"success\": {\n const json = _json;\n json.type = \"boolean\";\n break;\n }\n case \"default\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n _json.default = JSON.parse(JSON.stringify(def.defaultValue));\n break;\n }\n case \"prefault\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n if (this.io === \"input\")\n _json._prefault = JSON.parse(JSON.stringify(def.defaultValue));\n break;\n }\n case \"catch\": {\n // use conditionals\n this.process(def.innerType, params);\n result.ref = def.innerType;\n let catchValue;\n try {\n catchValue = def.catchValue(undefined);\n }\n catch {\n throw new Error(\"Dynamic catch values are not supported in JSON Schema\");\n }\n _json.default = catchValue;\n break;\n }\n case \"nan\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"NaN cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"template_literal\": {\n const json = _json;\n const pattern = schema._zod.pattern;\n if (!pattern)\n throw new Error(\"Pattern not found in template literal\");\n json.type = \"string\";\n json.pattern = pattern.source;\n break;\n }\n case \"pipe\": {\n const innerType = this.io === \"input\" ? (def.in._zod.def.type === \"transform\" ? def.out : def.in) : def.out;\n this.process(innerType, params);\n result.ref = innerType;\n break;\n }\n case \"readonly\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n _json.readOnly = true;\n break;\n }\n // passthrough types\n case \"promise\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"optional\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"lazy\": {\n const innerType = schema._zod.innerType;\n this.process(innerType, params);\n result.ref = innerType;\n break;\n }\n case \"custom\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Custom types cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"function\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Function types cannot be represented in JSON Schema\");\n }\n break;\n }\n default: {\n def;\n }\n }\n }\n }\n // metadata\n const meta = this.metadataRegistry.get(schema);\n if (meta)\n Object.assign(result.schema, meta);\n if (this.io === \"input\" && isTransforming(schema)) {\n // examples/defaults only apply to output type of pipe\n delete result.schema.examples;\n delete result.schema.default;\n }\n // set prefault as default\n if (this.io === \"input\" && result.schema._prefault)\n (_a = result.schema).default ?? (_a.default = result.schema._prefault);\n delete result.schema._prefault;\n // pulling fresh from this.seen in case it was overwritten\n const _result = this.seen.get(schema);\n return _result.schema;\n }\n emit(schema, _params) {\n const params = {\n cycles: _params?.cycles ?? \"ref\",\n reused: _params?.reused ?? \"inline\",\n // unrepresentable: _params?.unrepresentable ?? \"throw\",\n // uri: _params?.uri ?? ((id) => `${id}`),\n external: _params?.external ?? undefined,\n };\n // iterate over seen map;\n const root = this.seen.get(schema);\n if (!root)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n // initialize result with root schema fields\n // Object.assign(result, seen.cached);\n // returns a ref to the schema\n // defId will be empty if the ref points to an external schema (or #)\n const makeURI = (entry) => {\n // comparing the seen objects because sometimes\n // multiple schemas map to the same seen object.\n // e.g. lazy\n // external is configured\n const defsSegment = this.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n if (params.external) {\n const externalId = params.external.registry.get(entry[0])?.id; // ?? \"__shared\";// `__schema${this.counter++}`;\n // check if schema is in the external registry\n const uriGenerator = params.external.uri ?? ((id) => id);\n if (externalId) {\n return { ref: uriGenerator(externalId) };\n }\n // otherwise, add to __shared\n const id = entry[1].defId ?? entry[1].schema.id ?? `schema${this.counter++}`;\n entry[1].defId = id; // set defId so it will be reused if needed\n return { defId: id, ref: `${uriGenerator(\"__shared\")}#/${defsSegment}/${id}` };\n }\n if (entry[1] === root) {\n return { ref: \"#\" };\n }\n // self-contained schema\n const uriPrefix = `#`;\n const defUriPrefix = `${uriPrefix}/${defsSegment}/`;\n const defId = entry[1].schema.id ?? `__schema${this.counter++}`;\n return { defId, ref: defUriPrefix + defId };\n };\n // stored cached version in `def` property\n // remove all properties, set $ref\n const extractToDef = (entry) => {\n // if the schema is already a reference, do not extract it\n if (entry[1].schema.$ref) {\n return;\n }\n const seen = entry[1];\n const { ref, defId } = makeURI(entry);\n seen.def = { ...seen.schema };\n // defId won't be set if the schema is a reference to an external schema\n if (defId)\n seen.defId = defId;\n // wipe away all properties except $ref\n const schema = seen.schema;\n for (const key in schema) {\n delete schema[key];\n }\n schema.$ref = ref;\n };\n // throw on cycles\n // break cycles\n if (params.cycles === \"throw\") {\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n if (seen.cycle) {\n throw new Error(\"Cycle detected: \" +\n `#/${seen.cycle?.join(\"/\")}/<root>` +\n '\\n\\nSet the `cycles` parameter to `\"ref\"` to resolve cyclical schemas with defs.');\n }\n }\n }\n // extract schemas into $defs\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n // convert root schema to # $ref\n if (schema === entry[0]) {\n extractToDef(entry); // this has special handling for the root schema\n continue;\n }\n // extract schemas that are in the external registry\n if (params.external) {\n const ext = params.external.registry.get(entry[0])?.id;\n if (schema !== entry[0] && ext) {\n extractToDef(entry);\n continue;\n }\n }\n // extract schemas with `id` meta\n const id = this.metadataRegistry.get(entry[0])?.id;\n if (id) {\n extractToDef(entry);\n continue;\n }\n // break cycles\n if (seen.cycle) {\n // any\n extractToDef(entry);\n continue;\n }\n // extract reused schemas\n if (seen.count > 1) {\n if (params.reused === \"ref\") {\n extractToDef(entry);\n // biome-ignore lint:\n continue;\n }\n }\n }\n // flatten _refs\n const flattenRef = (zodSchema, params) => {\n const seen = this.seen.get(zodSchema);\n const schema = seen.def ?? seen.schema;\n const _cached = { ...schema };\n // already seen\n if (seen.ref === null) {\n return;\n }\n // flatten ref if defined\n const ref = seen.ref;\n seen.ref = null; // prevent recursion\n if (ref) {\n flattenRef(ref, params);\n // merge referenced schema into current\n const refSchema = this.seen.get(ref).schema;\n if (refSchema.$ref &&\n (params.target === \"draft-7\" || params.target === \"draft-4\" || params.target === \"openapi-3.0\")) {\n schema.allOf = schema.allOf ?? [];\n schema.allOf.push(refSchema);\n }\n else {\n Object.assign(schema, refSchema);\n Object.assign(schema, _cached); // prevent overwriting any fields in the original schema\n }\n }\n // execute overrides\n if (!seen.isParent)\n this.override({\n zodSchema: zodSchema,\n jsonSchema: schema,\n path: seen.path ?? [],\n });\n };\n for (const entry of [...this.seen.entries()].reverse()) {\n flattenRef(entry[0], { target: this.target });\n }\n const result = {};\n if (this.target === \"draft-2020-12\") {\n result.$schema = \"https://json-schema.org/draft/2020-12/schema\";\n }\n else if (this.target === \"draft-7\") {\n result.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else if (this.target === \"draft-4\") {\n result.$schema = \"http://json-schema.org/draft-04/schema#\";\n }\n else if (this.target === \"openapi-3.0\") {\n // OpenAPI 3.0 schema objects should not include a $schema property\n }\n else {\n // @ts-ignore\n console.warn(`Invalid target: ${this.target}`);\n }\n if (params.external?.uri) {\n const id = params.external.registry.get(schema)?.id;\n if (!id)\n throw new Error(\"Schema is missing an `id` property\");\n result.$id = params.external.uri(id);\n }\n Object.assign(result, root.def);\n // build defs object\n const defs = params.external?.defs ?? {};\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n if (seen.def && seen.defId) {\n defs[seen.defId] = seen.def;\n }\n }\n // set definitions in result\n if (params.external) {\n }\n else {\n if (Object.keys(defs).length > 0) {\n if (this.target === \"draft-2020-12\") {\n result.$defs = defs;\n }\n else {\n result.definitions = defs;\n }\n }\n }\n try {\n // this \"finalizes\" this schema and ensures all cycles are removed\n // each call to .emit() is functionally independent\n // though the seen map is shared\n return JSON.parse(JSON.stringify(result));\n }\n catch (_err) {\n throw new Error(\"Error converting schema to JSON.\");\n }\n }\n}\nexport function toJSONSchema(input, _params) {\n if (input instanceof $ZodRegistry) {\n const gen = new JSONSchemaGenerator(_params);\n const defs = {};\n for (const entry of input._idmap.entries()) {\n const [_, schema] = entry;\n gen.process(schema);\n }\n const schemas = {};\n const external = {\n registry: input,\n uri: _params?.uri,\n defs,\n };\n for (const entry of input._idmap.entries()) {\n const [key, schema] = entry;\n schemas[key] = gen.emit(schema, {\n ..._params,\n external,\n });\n }\n if (Object.keys(defs).length > 0) {\n const defsSegment = gen.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n schemas.__shared = {\n [defsSegment]: defs,\n };\n }\n return { schemas };\n }\n const gen = new JSONSchemaGenerator(_params);\n gen.process(input);\n return gen.emit(input, _params);\n}\nfunction isTransforming(_schema, _ctx) {\n const ctx = _ctx ?? { seen: new Set() };\n if (ctx.seen.has(_schema))\n return false;\n ctx.seen.add(_schema);\n const schema = _schema;\n const def = schema._zod.def;\n switch (def.type) {\n case \"string\":\n case \"number\":\n case \"bigint\":\n case \"boolean\":\n case \"date\":\n case \"symbol\":\n case \"undefined\":\n case \"null\":\n case \"any\":\n case \"unknown\":\n case \"never\":\n case \"void\":\n case \"literal\":\n case \"enum\":\n case \"nan\":\n case \"file\":\n case \"template_literal\":\n return false;\n case \"array\": {\n return isTransforming(def.element, ctx);\n }\n case \"object\": {\n for (const key in def.shape) {\n if (isTransforming(def.shape[key], ctx))\n return true;\n }\n return false;\n }\n case \"union\": {\n for (const option of def.options) {\n if (isTransforming(option, ctx))\n return true;\n }\n return false;\n }\n case \"intersection\": {\n return isTransforming(def.left, ctx) || isTransforming(def.right, ctx);\n }\n case \"tuple\": {\n for (const item of def.items) {\n if (isTransforming(item, ctx))\n return true;\n }\n if (def.rest && isTransforming(def.rest, ctx))\n return true;\n return false;\n }\n case \"record\": {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n case \"map\": {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n case \"set\": {\n return isTransforming(def.valueType, ctx);\n }\n // inner types\n case \"promise\":\n case \"optional\":\n case \"nonoptional\":\n case \"nullable\":\n case \"readonly\":\n return isTransforming(def.innerType, ctx);\n case \"lazy\":\n return isTransforming(def.getter(), ctx);\n case \"default\": {\n return isTransforming(def.innerType, ctx);\n }\n case \"prefault\": {\n return isTransforming(def.innerType, ctx);\n }\n case \"custom\": {\n return false;\n }\n case \"transform\": {\n return true;\n }\n case \"pipe\": {\n return isTransforming(def.in, ctx) || isTransforming(def.out, ctx);\n }\n case \"success\": {\n return false;\n }\n case \"catch\": {\n return false;\n }\n case \"function\": {\n return false;\n }\n default:\n def;\n }\n throw new Error(`Unknown schema type: ${def.type}`);\n}\n","export {};\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n core.$ZodISODateTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n core.$ZodISODate.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n core.$ZodISOTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n core.$ZodISODuration.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n return core._isoDuration(ZodISODuration, params);\n}\n","import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n Object.defineProperties(inst, {\n format: {\n value: (mapper) => core.formatError(inst, mapper),\n // enumerable: false,\n },\n flatten: {\n value: (mapper) => core.flattenError(inst, mapper),\n // enumerable: false,\n },\n addIssue: {\n value: (issue) => {\n inst.issues.push(issue);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n addIssues: {\n value: (issues) => {\n inst.issues.push(...issues);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return inst.issues.length === 0;\n },\n // enumerable: false,\n },\n });\n // Object.defineProperty(inst, \"isEmpty\", {\n // get() {\n // return inst.issues.length === 0;\n // },\n // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n// Codec functions\nexport const encode = /* @__PURE__ */ core._encode(ZodRealError);\nexport const decode = /* @__PURE__ */ core._decode(ZodRealError);\nexport const encodeAsync = /* @__PURE__ */ core._encodeAsync(ZodRealError);\nexport const decodeAsync = /* @__PURE__ */ core._decodeAsync(ZodRealError);\nexport const safeEncode = /* @__PURE__ */ core._safeEncode(ZodRealError);\nexport const safeDecode = /* @__PURE__ */ core._safeDecode(ZodRealError);\nexport const safeEncodeAsync = /* @__PURE__ */ core._safeEncodeAsync(ZodRealError);\nexport const safeDecodeAsync = /* @__PURE__ */ core._safeDecodeAsync(ZodRealError);\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n core.$ZodType.init(inst, def);\n inst.def = def;\n inst.type = def.type;\n Object.defineProperty(inst, \"_def\", { value: def });\n // base methods\n inst.check = (...checks) => {\n return inst.clone(util.mergeDefs(def, {\n checks: [\n ...(def.checks ?? []),\n ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }));\n };\n inst.clone = (def, params) => core.clone(inst, def, params);\n inst.brand = () => inst;\n inst.register = ((reg, meta) => {\n reg.add(inst, meta);\n return inst;\n });\n // parsing\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.spa = inst.safeParseAsync;\n // encoding/decoding\n inst.encode = (data, params) => parse.encode(inst, data, params);\n inst.decode = (data, params) => parse.decode(inst, data, params);\n inst.encodeAsync = async (data, params) => parse.encodeAsync(inst, data, params);\n inst.decodeAsync = async (data, params) => parse.decodeAsync(inst, data, params);\n inst.safeEncode = (data, params) => parse.safeEncode(inst, data, params);\n inst.safeDecode = (data, params) => parse.safeDecode(inst, data, params);\n inst.safeEncodeAsync = async (data, params) => parse.safeEncodeAsync(inst, data, params);\n inst.safeDecodeAsync = async (data, params) => parse.safeDecodeAsync(inst, data, params);\n // refinements\n inst.refine = (check, params) => inst.check(refine(check, params));\n inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n // wrappers\n inst.optional = () => optional(inst);\n inst.nullable = () => nullable(inst);\n inst.nullish = () => optional(nullable(inst));\n inst.nonoptional = (params) => nonoptional(inst, params);\n inst.array = () => array(inst);\n inst.or = (arg) => union([inst, arg]);\n inst.and = (arg) => intersection(inst, arg);\n inst.transform = (tx) => pipe(inst, transform(tx));\n inst.default = (def) => _default(inst, def);\n inst.prefault = (def) => prefault(inst, def);\n // inst.coalesce = (def, params) => coalesce(inst, def, params);\n inst.catch = (params) => _catch(inst, params);\n inst.pipe = (target) => pipe(inst, target);\n inst.readonly = () => readonly(inst);\n // meta\n inst.describe = (description) => {\n const cl = inst.clone();\n core.globalRegistry.add(cl, { description });\n return cl;\n };\n Object.defineProperty(inst, \"description\", {\n get() {\n return core.globalRegistry.get(inst)?.description;\n },\n configurable: true,\n });\n inst.meta = (...args) => {\n if (args.length === 0) {\n return core.globalRegistry.get(inst);\n }\n const cl = inst.clone();\n core.globalRegistry.add(cl, args[0]);\n return cl;\n };\n // helpers\n inst.isOptional = () => inst.safeParse(undefined).success;\n inst.isNullable = () => inst.safeParse(null).success;\n return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n const bag = inst._zod.bag;\n inst.format = bag.format ?? null;\n inst.minLength = bag.minimum ?? null;\n inst.maxLength = bag.maximum ?? null;\n // validations\n inst.regex = (...args) => inst.check(checks.regex(...args));\n inst.includes = (...args) => inst.check(checks.includes(...args));\n inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n inst.min = (...args) => inst.check(checks.minLength(...args));\n inst.max = (...args) => inst.check(checks.maxLength(...args));\n inst.length = (...args) => inst.check(checks.length(...args));\n inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n inst.lowercase = (params) => inst.check(checks.lowercase(params));\n inst.uppercase = (params) => inst.check(checks.uppercase(params));\n // transforms\n inst.trim = () => inst.check(checks.trim());\n inst.normalize = (...args) => inst.check(checks.normalize(...args));\n inst.toLowerCase = () => inst.check(checks.toLowerCase());\n inst.toUpperCase = () => inst.check(checks.toUpperCase());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n _ZodString.init(inst, def);\n inst.email = (params) => inst.check(core._email(ZodEmail, params));\n inst.url = (params) => inst.check(core._url(ZodURL, params));\n inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n // iso\n inst.datetime = (params) => inst.check(iso.datetime(params));\n inst.date = (params) => inst.check(iso.date(params));\n inst.time = (params) => inst.check(iso.time(params));\n inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmail.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodGUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodUUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodURL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodURL, params);\n}\nexport function httpUrl(params) {\n return core._url(ZodURL, {\n protocol: /^https?$/,\n hostname: core.regexes.domain,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmoji.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodNanoID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID2.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodULID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodXID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodKSUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodIPv4, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCustomStringFormat.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hostname\", core.regexes.hostname, _params);\n}\nexport function hex(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hex\", core.regexes.hex, _params);\n}\nexport function hash(alg, params) {\n const enc = params?.enc ?? \"hex\";\n const format = `${alg}_${enc}`;\n const regex = core.regexes[format];\n if (!regex)\n throw new Error(`Unrecognized hash format: ${format}`);\n return core._stringFormat(ZodCustomStringFormat, format, regex, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.int = (params) => inst.check(int(params));\n inst.safe = (params) => inst.check(int(params));\n inst.positive = (params) => inst.check(checks.gt(0, params));\n inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n inst.negative = (params) => inst.check(checks.lt(0, params));\n inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n // inst.finite = (params) => inst.check(core.finite(params));\n inst.finite = () => inst;\n const bag = inst._zod.bag;\n inst.minValue =\n Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n inst.maxValue =\n Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n inst.isFinite = true;\n inst.format = bag.format ?? null;\n});\nexport function number(params) {\n return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodNumber.init(inst, def);\n});\nexport function int(params) {\n return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n const bag = inst._zod.bag;\n inst.minValue = bag.minimum ?? null;\n inst.maxValue = bag.maximum ?? null;\n inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n const c = inst._zod.bag;\n inst.minDate = c.minimum ? new Date(c.minimum) : null;\n inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst.element = def.element;\n inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n inst.length = (len, params) => inst.check(checks.length(len, params));\n inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return _enum(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n core.$ZodObjectJIT.init(inst, def);\n ZodType.init(inst, def);\n util.defineLazy(inst, \"shape\", () => {\n return def.shape;\n });\n inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n inst.extend = (incoming) => {\n return util.extend(inst, incoming);\n };\n inst.safeExtend = (incoming) => {\n return util.safeExtend(inst, incoming);\n };\n inst.merge = (other) => util.merge(inst, other);\n inst.pick = (mask) => util.pick(inst, mask);\n inst.omit = (mask) => util.omit(inst, mask);\n inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n shape: shape ?? {},\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n shape,\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n shape,\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst.rest = (rest) => inst.clone({\n ...inst._zod.def,\n rest: rest,\n });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n const k = core.clone(keyType);\n k._zod.values = undefined;\n return new ZodRecord({\n type: \"record\",\n keyType: k,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst.enum = def.entries;\n inst.options = Object.values(def.entries);\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (_ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = inst);\n // _issue.continue ??= true;\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n payload.value = output;\n return payload;\n };\n});\nexport function transform(fn) {\n return new ZodTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodCodec = /*@__PURE__*/ core.$constructor(\"ZodCodec\", (inst, def) => {\n ZodPipe.init(inst, def);\n core.$ZodCodec.init(inst, def);\n});\nexport function codec(in_, out, params) {\n return new ZodCodec({\n type: \"pipe\",\n in: in_,\n out: out,\n transform: params.decode,\n reverseTransform: params.encode,\n });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodFunction = /*@__PURE__*/ core.$constructor(\"ZodFunction\", (inst, def) => {\n core.$ZodFunction.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function _function(params) {\n return new ZodFunction({\n type: \"function\",\n input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())),\n output: params?.output ?? unknown(),\n });\n}\nexport { _function as function };\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n // ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n return core._superRefine(fn);\n}\nfunction _instanceof(cls, params = {\n error: `Input not instance of ${cls.name}`,\n}) {\n const inst = new ZodCustom({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Codec: ZodCodec,\n Boolean: ZodBoolean,\n String: ZodString,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n return pipe(transform(fn), schema);\n}\n","// Zod 3 compat layer\nimport * as core from \"../core/index.js\";\n/** @deprecated Use the raw string literal codes instead, e.g. \"invalid_type\". */\nexport const ZodIssueCode = {\n invalid_type: \"invalid_type\",\n too_big: \"too_big\",\n too_small: \"too_small\",\n invalid_format: \"invalid_format\",\n not_multiple_of: \"not_multiple_of\",\n unrecognized_keys: \"unrecognized_keys\",\n invalid_union: \"invalid_union\",\n invalid_key: \"invalid_key\",\n invalid_element: \"invalid_element\",\n invalid_value: \"invalid_value\",\n custom: \"custom\",\n};\nexport { $brand, config } from \"../core/index.js\";\n/** @deprecated Use `z.config(params)` instead. */\nexport function setErrorMap(map) {\n core.config({\n customError: map,\n });\n}\n/** @deprecated Use `z.config()` instead. */\nexport function getErrorMap() {\n return core.config().customError;\n}\n/** @deprecated Do not use. Stub definition, only included for zod-to-json-schema compatibility. */\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport function string(params) {\n return core._coercedString(schemas.ZodString, params);\n}\nexport function number(params) {\n return core._coercedNumber(schemas.ZodNumber, params);\n}\nexport function boolean(params) {\n return core._coercedBoolean(schemas.ZodBoolean, params);\n}\nexport function bigint(params) {\n return core._coercedBigint(schemas.ZodBigInt, params);\n}\nexport function date(params) {\n return core._coercedDate(schemas.ZodDate, params);\n}\n","/**\n * Clients Resource\n *\n * CRUD operations, filtering, pagination, and batch operations for clients.\n *\n * This is the base (unscoped) resource. For jurisdiction-scoped SDKs, use:\n * - MexClientsResource - Mexico-scoped with flattened MX fields\n * - AVIClientsResource - Mexico AVI-scoped with flattened AVI fields\n * - JYSClientsResource - Mexico JYS-scoped with flattened JYS fields\n * - TSCClientsResource - Mexico TSC-scoped with flattened TSC fields\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateClientInput,\n UpdateClientInput,\n ClientFilter,\n ListOptions,\n PaginatedResponse,\n AtomicBatchResult,\n PartialBatchResult,\n ClientRelationshipType,\n LinkedClient,\n} from \"@artu-ai/shared\";\nimport {\n createClientInputSchema,\n updateClientInputSchema,\n linkedClientSchema,\n} from \"@artu-ai/shared\";\nimport { BaseResource } from \"./base\";\nimport { Client, type ClientData } from \"../models\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Options for batch operations\n */\nexport interface BatchOptions {\n /**\n * If true (default), all items must succeed or entire operation fails.\n * If false, partial success is allowed with succeeded/failed arrays.\n */\n atomic?: boolean;\n}\n\n/**\n * Information about a linked client relationship\n */\nexport interface LinkedClientInfo {\n /** The ID of the linked (child) client */\n clientId: string;\n /** The type of relationship */\n relationshipType: ClientRelationshipType;\n /** Optional metadata for the relationship */\n metadata: Record<string, unknown>;\n /** When the relationship was created */\n createdAt: string;\n /** When the relationship was last updated */\n updatedAt: string;\n}\n\n// ===========================\n// ClientsResource\n// ===========================\n\n/**\n * Base resource manager for client operations.\n *\n * Provides:\n * - CRUD operations (create, retrieve, update, delete)\n * - Filtering and pagination\n * - Batch operations (createMany, updateMany)\n *\n * @example\n * ```typescript\n * // Create a client with full nested format\n * const client = await sdk.clients.create({\n * type: \"individual\",\n * name: \"Juan García\",\n * primaryJurisdiction: \"MX\",\n * jurisdictions: {\n * MX: { rfc: \"GAJL850101ABC\" },\n * },\n * });\n *\n * // List with filtering\n * const { data, pagination } = await sdk.clients.list({\n * filter: { type: \"individual\", primaryJurisdiction: \"MX\" },\n * limit: 20,\n * });\n *\n * // Iterate all clients\n * for await (const client of sdk.clients.iterate()) {\n * console.log(client.name);\n * }\n * ```\n */\nexport class ClientsResource extends BaseResource<\n Client,\n CreateClientInput,\n UpdateClientInput,\n ClientFilter\n> {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates a new client.\n *\n * @param data - Client creation data in nested format\n * @returns The created client model\n *\n * @example\n * ```typescript\n * const client = await sdk.clients.create({\n * type: ClientType.Person,\n * name: \"Juan García\",\n * primaryJurisdiction: Jurisdiction.Mexico,\n * jurisdictions: {\n * MX: { rfc: \"GAJL850101ABC\" },\n * },\n * });\n * ```\n */\n async create(data: CreateClientInput): Promise<Client> {\n const validated = this.validate(createClientInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.clients.create.mutate(validated)\n );\n\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a client by ID.\n *\n * @param id - Client ID\n * @returns The client model\n *\n * @example\n * ```typescript\n * const client = await sdk.clients.retrieve(\"client_123\");\n * console.log(client.name);\n * ```\n */\n async retrieve(id: string): Promise<Client> {\n const response = await this.execute(() =>\n this.trpc.clients.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a client by metadata key/value.\n */\n async retrieveByMetadata(key: string, value: string): Promise<Client> {\n const response = await this.execute(() =>\n this.trpc.clients.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a client by externalId.\n *\n * @param externalId - External identifier assigned by your system\n * @returns The client model\n *\n * @example\n * ```typescript\n * const client = await sdk.clients.retrieveByExternalId(\"external-123\");\n * console.log(client.name);\n * ```\n */\n async retrieveByExternalId(externalId: string): Promise<Client> {\n const response = await this.execute(() =>\n this.trpc.clients.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n /**\n * Updates a client.\n *\n * @param id - Client ID\n * @param data - Update data (partial)\n * @returns The updated client model\n *\n * @example\n * ```typescript\n * const client = await sdk.clients.update(\"client_123\", {\n * email: \"new@example.com\",\n * });\n * ```\n */\n async update(id: string, data: UpdateClientInput): Promise<Client> {\n const validated = this.validate(updateClientInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.clients.update.mutate({ id, data: validated })\n );\n return this.instantiate(response);\n }\n\n /**\n * Deletes a client (soft delete).\n *\n * @param id - Client ID\n *\n * @example\n * ```typescript\n * await sdk.clients.delete(\"client_123\");\n * ```\n */\n async delete(id: string): Promise<void> {\n await this.execute(() => this.trpc.clients.delete.mutate({ id }));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Lists clients with optional filtering and pagination.\n *\n * @param options - List options (filter, cursor, limit)\n * @returns Paginated response with client models\n *\n * @example\n * ```typescript\n * const { data, pagination } = await sdk.clients.list({\n * filter: { type: \"individual\" },\n * limit: 20,\n * });\n *\n * if (pagination.hasMore) {\n * const nextPage = await sdk.clients.list({\n * cursor: pagination.nextCursor,\n * });\n * }\n * ```\n */\n async list(\n options?: ListOptions<ClientFilter>\n ): Promise<PaginatedResponse<Client>> {\n const response = await this.execute(() =>\n this.trpc.clients.list.query(options)\n );\n\n return {\n data: response.data.map((c) => this.instantiate(c)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Returns an async iterator over all clients matching the filter.\n * Automatically fetches subsequent pages as you iterate.\n *\n * @param filter - Optional filter criteria\n * @returns Async generator yielding client models\n *\n * @example\n * ```typescript\n * for await (const client of sdk.clients.iterate({ type: \"individual\" })) {\n * console.log(client.name);\n * }\n * ```\n */\n iterate(filter?: ClientFilter): AsyncGenerator<Client, void, undefined> {\n return this.createIterator({ filter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates multiple clients in a single request.\n *\n * @param clients - Array of client creation data\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n *\n * @example\n * ```typescript\n * // Atomic mode (default) - all or nothing\n * const result = await sdk.clients.createMany([...]);\n * if (result.atomic) {\n * console.log(\"All created:\", result.data);\n * }\n *\n * // Non-atomic mode - partial success allowed\n * const result = await sdk.clients.createMany([...], { atomic: false });\n * if (!result.atomic) {\n * console.log(\"Succeeded:\", result.succeeded.length);\n * console.log(\"Failed:\", result.failed.length);\n * }\n * ```\n */\n async createMany(\n clients: CreateClientInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<Client>>;\n async createMany(\n clients: CreateClientInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<Client>>;\n async createMany(\n clients: CreateClientInput[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<Client> | PartialBatchResult<Client>> {\n const atomic = options.atomic ?? true;\n const validated = this.validate(z.array(createClientInputSchema), clients);\n\n const response = await this.execute(() =>\n this.trpc.clients.createMany.mutate({ items: validated, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((c) => this.instantiate(c)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n /**\n * Updates multiple clients in a single request.\n *\n * @param updates - Array of { id, data } updates\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n *\n * @example\n * ```typescript\n * // Atomic mode (default) - all or nothing\n * const result = await sdk.clients.updateMany([...]);\n * if (result.atomic) {\n * console.log(\"All updated:\", result.data);\n * }\n *\n * // Non-atomic mode - partial success allowed\n * const result = await sdk.clients.updateMany([...], { atomic: false });\n * if (!result.atomic) {\n * console.log(\"Succeeded:\", result.succeeded.length);\n * console.log(\"Failed:\", result.failed.length);\n * }\n * ```\n */\n async updateMany(\n updates: { id: string; data: UpdateClientInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<Client>>;\n async updateMany(\n updates: { id: string; data: UpdateClientInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<Client>>;\n async updateMany(\n updates: { id: string; data: UpdateClientInput }[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<Client> | PartialBatchResult<Client>> {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateClientInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n\n const response = await this.execute(() =>\n this.trpc.clients.updateMany.mutate({ items: validated, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((c) => this.instantiate(c)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Client-to-Client Relationship Management\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Links a client to another client with a relationship type.\n *\n * @param parentClientId - The ID of the parent client (e.g., a company)\n * @param childClientId - The ID of the child client (e.g., a legal rep)\n * @param relationshipType - The type of relationship\n * @param metadata - Optional metadata for the relationship\n * @returns The updated parent client\n *\n * @example\n * ```typescript\n * // Link a legal representative to a company\n * await sdk.clients.linkClient(\n * companyId,\n * legalRepId,\n * ClientRelationshipType.LegalRepresentative\n * );\n *\n * // Link a controlling beneficiary with metadata\n * await sdk.clients.linkClient(\n * companyId,\n * beneficiaryId,\n * ClientRelationshipType.ControllingBeneficiary,\n * { ownershipPercentage: 51 }\n * );\n * ```\n */\n async linkClient(\n parentClientId: string,\n childClientId: string,\n relationshipType: ClientRelationshipType,\n metadata?: Record<string, unknown>\n ): Promise<Client> {\n const response = await this.execute(() =>\n this.trpc.clients.linkClient.mutate({\n parentClientId,\n childClientId,\n relationshipType,\n metadata,\n })\n );\n return this.instantiate(response);\n }\n\n /**\n * Unlinks a client from another client.\n *\n * @param parentClientId - The ID of the parent client\n * @param childClientId - The ID of the child client to unlink\n * @param relationshipType - The type of relationship to remove\n * @returns The updated parent client\n *\n * @example\n * ```typescript\n * // Remove a legal representative\n * await sdk.clients.unlinkClient(\n * companyId,\n * legalRepId,\n * ClientRelationshipType.LegalRepresentative\n * );\n * ```\n */\n async unlinkClient(\n parentClientId: string,\n childClientId: string,\n relationshipType: ClientRelationshipType\n ): Promise<Client> {\n const response = await this.execute(() =>\n this.trpc.clients.unlinkClient.mutate({\n parentClientId,\n childClientId,\n relationshipType,\n })\n );\n return this.instantiate(response);\n }\n\n /**\n * Lists all clients linked to a parent client.\n *\n * @param parentClientId - The ID of the parent client\n * @param relationshipType - Optional filter by relationship type\n * @returns Array of linked client information\n *\n * @example\n * ```typescript\n * // List all linked clients\n * const links = await sdk.clients.listLinkedClients(companyId);\n *\n * // List only legal representatives\n * const legalReps = await sdk.clients.listLinkedClients(\n * companyId,\n * ClientRelationshipType.LegalRepresentative\n * );\n * ```\n */\n async listLinkedClients(\n parentClientId: string,\n relationshipType?: ClientRelationshipType\n ): Promise<LinkedClientInfo[]> {\n const response = await this.execute(() =>\n this.trpc.clients.listLinkedClients.query({\n parentClientId,\n relationshipType,\n })\n );\n return response;\n }\n\n /**\n * Replaces all linked clients for a parent client.\n *\n * @param parentClientId - The ID of the parent client\n * @param linkedClients - Array of linked client definitions\n * @returns The updated parent client\n *\n * @example\n * ```typescript\n * // Replace all linked clients\n * await sdk.clients.setLinkedClients(companyId, [\n * { clientId: legalRepId, relationshipType: \"legal_representative\" },\n * { clientId: beneficiaryId, relationshipType: \"controlling_beneficiary\" },\n * ]);\n * ```\n */\n async setLinkedClients(\n parentClientId: string,\n linkedClients: LinkedClient[]\n ): Promise<Client> {\n const validated = this.validate(z.array(linkedClientSchema), linkedClients);\n\n const response = await this.execute(() =>\n this.trpc.clients.setLinkedClients.mutate({\n parentClientId,\n linkedClients: validated,\n })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Instantiation (protected for subclasses to override)\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Instantiates a Client model from API response data.\n * Subclasses override this to return their specific model type.\n */\n protected instantiate(data: ClientData): Client {\n return new Client(data);\n }\n}\n","/**\n * Transactions Resource\n *\n * CRUD operations, filtering, pagination, and client relationships.\n *\n * This is the base (unscoped) resource. For jurisdiction-scoped SDKs, use:\n * - MexTransactionsResource - Mexico-scoped with flattened MX fields\n * - AVITransactionsResource - Mexico AVI-scoped with flattened AVI fields\n * - JYSTransactionsResource - Mexico JYS-scoped with flattened JYS fields\n * - TSCTransactionsResource - Mexico TSC-scoped with flattened TSC fields\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateTransactionInput,\n UpdateTransactionInput,\n TransactionFilter,\n ListOptions,\n PaginatedResponse,\n AtomicBatchResult,\n PartialBatchResult,\n RelatedClient,\n} from \"@artu-ai/shared\";\nimport {\n createTransactionInputSchema,\n updateTransactionInputSchema,\n ClientRole,\n} from \"@artu-ai/shared\";\nimport type { BatchOptions } from \"./clients\";\nimport { BaseResource } from \"./base\";\nimport { Transaction, type TransactionData } from \"../models\";\n\n// ===========================\n// TransactionsResource\n// ===========================\n\n/**\n * Base resource manager for transaction operations.\n *\n * Provides:\n * - CRUD operations (create, retrieve, update, delete)\n * - Filtering and pagination\n * - Client relationship management (linkClient, unlinkClient)\n *\n * @example\n * ```typescript\n * // Create a transaction with full nested format\n * const txn = await sdk.transactions.create({\n * amount: 50000,\n * currency: \"MXN\",\n * primaryJurisdiction: \"MX\",\n * relatedClientIds: [\"client_sender\"],\n * timestamp: new Date(),\n * jurisdictions: {\n * MX: { actividadVulnerable: { AVI: { ... } } },\n * },\n * });\n *\n * // List with filtering\n * const { data, pagination } = await sdk.transactions.list({\n * filter: { status: \"completed\" },\n * limit: 20,\n * });\n * ```\n */\nexport class TransactionsResource extends BaseResource<\n Transaction,\n CreateTransactionInput,\n UpdateTransactionInput,\n TransactionFilter\n> {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates a new transaction.\n *\n * @param data - Transaction creation data in nested format\n * @returns The created transaction model\n */\n async create(data: CreateTransactionInput): Promise<Transaction> {\n const validated = this.validate(createTransactionInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.transactions.create.mutate(validated)\n );\n\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a transaction by ID.\n */\n async retrieve(id: string): Promise<Transaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a transaction by metadata key/value.\n */\n async retrieveByMetadata(key: string, value: string): Promise<Transaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a transaction by externalId.\n */\n async retrieveByExternalId(externalId: string): Promise<Transaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n /**\n * Updates a transaction.\n */\n async update(id: string, data: UpdateTransactionInput): Promise<Transaction> {\n const validated = this.validate(updateTransactionInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.transactions.update.mutate({ id, data: validated })\n );\n return this.instantiate(response);\n }\n\n /**\n * Deletes a transaction (soft delete).\n */\n async delete(id: string): Promise<void> {\n await this.execute(() => this.trpc.transactions.delete.mutate({ id }));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Lists transactions with optional filtering and pagination.\n */\n async list(\n options?: ListOptions<TransactionFilter>\n ): Promise<PaginatedResponse<Transaction>> {\n const response = await this.execute(() =>\n this.trpc.transactions.list.query(options)\n );\n\n return {\n data: response.data.map((t) => this.instantiate(t)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Lists all transactions for a specific client.\n *\n * @param clientId - The client ID\n * @param options - Optional pagination options\n * @returns Paginated list of Transactions\n */\n async listByClient(\n clientId: string,\n options?: { cursor?: string; limit?: number }\n ): Promise<PaginatedResponse<Transaction>> {\n const response = await this.execute(() =>\n this.trpc.transactions.listByClient.query({ clientId, ...options })\n );\n\n return {\n data: response.data.map((t) => this.instantiate(t)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Returns an async iterator over all transactions matching the filter.\n */\n iterate(\n filter?: TransactionFilter\n ): AsyncGenerator<Transaction, void, undefined> {\n return this.createIterator({ filter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Client Relationship Management\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Links a client to a transaction with an optional role.\n */\n async linkClient(\n transactionId: string,\n clientId: string,\n role?: ClientRole\n ): Promise<Transaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.linkClient.mutate({\n transactionId,\n clientId,\n role,\n })\n );\n return this.instantiate(response);\n }\n\n /**\n * Unlinks a client from a transaction.\n */\n async unlinkClient(\n transactionId: string,\n clientId: string\n ): Promise<Transaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.unlinkClient.mutate({\n transactionId,\n clientId,\n })\n );\n return this.instantiate(response);\n }\n\n /**\n * Replaces all clients related to a transaction.\n */\n async setClients(\n transactionId: string,\n clients: RelatedClient[]\n ): Promise<Transaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.setClients.mutate({\n transactionId,\n clients,\n })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates multiple transactions in a single request.\n *\n * @param transactions - Array of transaction creation data\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n */\n async createMany(\n transactions: CreateTransactionInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<Transaction>>;\n async createMany(\n transactions: CreateTransactionInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<Transaction>>;\n async createMany(\n transactions: CreateTransactionInput[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<Transaction> | PartialBatchResult<Transaction>> {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createTransactionInputSchema),\n transactions\n );\n\n const response = await this.execute(() =>\n this.trpc.transactions.createMany.mutate({ items: validated, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((t) => this.instantiate(t)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n /**\n * Updates multiple transactions in a single request.\n *\n * @param updates - Array of { id, data } updates\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n */\n async updateMany(\n updates: { id: string; data: UpdateTransactionInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<Transaction>>;\n async updateMany(\n updates: { id: string; data: UpdateTransactionInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<Transaction>>;\n async updateMany(\n updates: { id: string; data: UpdateTransactionInput }[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<Transaction> | PartialBatchResult<Transaction>> {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateTransactionInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n\n const response = await this.execute(() =>\n this.trpc.transactions.updateMany.mutate({ items: validated, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((t) => this.instantiate(t)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Instantiation (protected for subclasses to override)\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Instantiates a Transaction model from API response data.\n * Subclasses override this to return their specific model type.\n */\n protected instantiate(data: TransactionData): Transaction {\n return new Transaction(data);\n }\n}\n","/**\n * Reports Resource\n *\n * CRUD operations, report items management, validation, and generation.\n *\n * This is the base (unscoped) resource. For jurisdiction-scoped SDKs, use:\n * - MexReportsResource - Mexico-scoped with flattened MX fields\n * - AVIReportsResource - Mexico AVI-scoped with flattened AVI fields\n * - JYSReportsResource - Mexico JYS-scoped with flattened JYS fields\n * - TSCReportsResource - Mexico TSC-scoped with flattened TSC fields\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateReportInput,\n UpdateReportInput,\n CreateReportItemInput,\n UpdateReportItemInput,\n ReportFilter,\n ReportItemFilter,\n ValidationResult,\n GenerateResult,\n SubmitReportInput,\n SubmissionResult,\n ListOptions,\n PaginatedResponse,\n AtomicBatchResult,\n PartialBatchResult,\n ValidateReportInput,\n} from \"@artu-ai/shared\";\nimport {\n createReportInputSchema,\n updateReportInputSchema,\n createReportItemInputSchema,\n updateReportItemInputSchema,\n validateReportInputSchema,\n submitReportInputSchema,\n} from \"@artu-ai/shared\";\nimport type { BatchOptions } from \"./clients\";\nimport { BaseResource } from \"./base\";\nimport {\n Report,\n ReportItem,\n type ReportData,\n type ReportItemData,\n} from \"../models\";\n\n// ===========================\n// Types\n// ===========================\n\n// Re-export filter types for backwards compatibility\nexport type { ReportFilter, ReportItemFilter };\n\n/**\n * Add items result\n */\nexport interface AddItemsResult {\n added: number;\n items: ReportItem[];\n}\n\n// ===========================\n// ReportsResource\n// ===========================\n\n/**\n * Base resource manager for report operations.\n *\n * Provides:\n * - CRUD operations (create, retrieve, update, delete)\n * - Report items management (add, update, remove items)\n * - Validation and generation\n *\n * @example\n * ```typescript\n * // Create a report with full nested format\n * const report = await sdk.reports.create({\n * jurisdictions: {\n * MX: {\n * actividadVulnerable: {\n * AVI: { mesReportado: \"202401\" }\n * }\n * }\n * }\n * });\n *\n * // Add items to the report\n * await sdk.reports.addItem(report.id, {\n * transactionId: \"txn_123\",\n * });\n *\n * // Validate the report\n * const result = await sdk.reports.validate(report.id);\n * if (result.valid) {\n * // Generate XML\n * const xml = await sdk.reports.generate(report.id);\n * }\n * ```\n */\nexport class ReportsResource extends BaseResource<\n Report,\n CreateReportInput,\n UpdateReportInput,\n ReportFilter\n> {\n // ─────────────────────────────────────────────────────────────────\n // Report CRUD\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates a new report.\n *\n * @param data - Report creation data in nested format\n * @returns The created report model\n */\n async create(data: CreateReportInput): Promise<Report> {\n const validated = this.validate(createReportInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.reports.create.mutate(validated)\n );\n\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a report by ID.\n */\n async retrieve(id: string): Promise<Report> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a report by metadata key/value.\n */\n async retrieveByMetadata(key: string, value: string): Promise<Report> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a report by externalId.\n */\n async retrieveByExternalId(externalId: string): Promise<Report> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n /**\n * Updates a report.\n */\n async update(id: string, data: UpdateReportInput): Promise<Report> {\n const validated = this.validate(updateReportInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.reports.update.mutate({ id, data: validated })\n );\n return this.instantiate(response);\n }\n\n /**\n * Deletes a report.\n */\n async delete(id: string): Promise<void> {\n await this.execute(() => this.trpc.reports.delete.mutate({ id }));\n }\n\n /**\n * Lists reports with optional filtering and pagination.\n */\n async list(\n options?: ListOptions<ReportFilter>\n ): Promise<PaginatedResponse<Report>> {\n const response = await this.execute(() =>\n this.trpc.reports.list.query(options)\n );\n\n return {\n data: response.data.map((r) => this.instantiate(r)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Returns an async iterator over all reports matching the filter.\n */\n iterate(filter?: ReportFilter): AsyncGenerator<Report, void, undefined> {\n return this.createIterator({ filter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Report Items\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Adds an item to a report.\n */\n async addItem(\n reportId: string,\n data: CreateReportItemInput\n ): Promise<ReportItem> {\n const validated = this.validate(createReportItemInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.reports.addItem.mutate({ reportId, data: validated })\n );\n\n return this.instantiateItem(response);\n }\n\n /**\n * Gets a specific report item.\n */\n async getItem(reportId: string, itemId: string): Promise<ReportItem> {\n const response = await this.execute(() =>\n this.trpc.reports.getItem.query({ reportId, itemId })\n );\n return this.instantiateItem(response);\n }\n\n /**\n * Updates a report item.\n */\n async updateItem(\n reportId: string,\n itemId: string,\n data: UpdateReportItemInput\n ): Promise<ReportItem> {\n const validated = this.validate(updateReportItemInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.reports.updateItem.mutate({ reportId, itemId, data: validated })\n );\n return this.instantiateItem(response);\n }\n\n /**\n * Removes an item from a report.\n */\n async removeItem(reportId: string, itemId: string): Promise<void> {\n await this.execute(() =>\n this.trpc.reports.removeItem.mutate({ reportId, itemId })\n );\n }\n\n /**\n * Lists items in a report.\n */\n async listItems(\n reportId: string,\n options?: ListOptions<ReportItemFilter>\n ): Promise<PaginatedResponse<ReportItem>> {\n const response = await this.execute(() =>\n this.trpc.reports.listItems.query({\n reportId,\n ...options,\n })\n );\n\n return {\n data: response.data.map((i) => this.instantiateItem(i)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Adds multiple items to a report.\n * Validates all items upfront - fails fast if any item is invalid.\n */\n async addItems(\n reportId: string,\n items: CreateReportItemInput[]\n ): Promise<AddItemsResult> {\n const validated = this.validate(\n z.array(createReportItemInputSchema),\n items\n );\n\n const response = await this.execute(() =>\n this.trpc.reports.addItems.mutate({ reportId, items: validated })\n );\n\n return {\n added: response.added,\n items: response.items.map((i) => this.instantiateItem(i)),\n };\n }\n\n /**\n * Removes multiple items from a report.\n */\n async removeItems(\n reportId: string,\n itemIds: string[]\n ): Promise<{ removed: number }> {\n return this.execute(() =>\n this.trpc.reports.removeItems.mutate({ reportId, itemIds })\n );\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Validation & Generation\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Validates a report and its items.\n *\n * Requires jurisdiction and activity-specific defaults.\n * For scoped SDKs, use the scoped resource which provides a simpler API.\n *\n * @example\n * ```typescript\n * const result = await sdk.reports.validateReport({\n * reportId: report.id,\n * jurisdiction: \"MX\",\n * actividadVulnerable: \"AVI\",\n * defaults: {\n * rfc: \"ABC200101XXX\",\n * platformDomain: \"https://example.com\",\n * },\n * });\n * ```\n */\n async validateReport(input: ValidateReportInput): Promise<ValidationResult> {\n const validated = this.validate(validateReportInputSchema, input);\n return this.execute(() => this.trpc.reports.validate.mutate(validated));\n }\n\n /**\n * Generates the report output (e.g., XML for Mexico reports).\n *\n * Requires the same input as validateReport since generation uses\n * the same transformation and defaults.\n *\n * @example\n * ```typescript\n * const result = await sdk.reports.generate({\n * reportId: report.id,\n * jurisdiction: \"MX\",\n * actividadVulnerable: \"AVI\",\n * defaults: {\n * rfc: \"ABC200101XXX\",\n * platformDomain: \"https://example.com\",\n * },\n * });\n * ```\n */\n async generate(input: ValidateReportInput): Promise<GenerateResult> {\n const validated = this.validate(validateReportInputSchema, input);\n return this.execute(() => this.trpc.reports.generate.mutate(validated));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Submission\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Submits a validated report.\n *\n * The report must be in \"valid\" status. After submission, the report\n * is locked and cannot be edited.\n *\n * @param reportId - The report ID\n * @param input - Submission data with jurisdiction-specific structure\n */\n async submit(input: SubmitReportInput): Promise<SubmissionResult> {\n const validated = this.validate(submitReportInputSchema, input);\n return this.execute(() => this.trpc.reports.submit.mutate(validated));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates multiple reports in a single request.\n *\n * @param reports - Array of report creation data\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n */\n async createMany(\n reports: CreateReportInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<Report>>;\n async createMany(\n reports: CreateReportInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<Report>>;\n async createMany(\n reports: CreateReportInput[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<Report> | PartialBatchResult<Report>> {\n const atomic = options.atomic ?? true;\n const validated = this.validate(z.array(createReportInputSchema), reports);\n\n const response = await this.execute(() =>\n this.trpc.reports.createMany.mutate({ items: validated, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((r) => this.instantiate(r)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n /**\n * Updates multiple reports in a single request.\n *\n * @param updates - Array of { id, data } updates\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n */\n async updateMany(\n updates: { id: string; data: UpdateReportInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<Report>>;\n async updateMany(\n updates: { id: string; data: UpdateReportInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<Report>>;\n async updateMany(\n updates: { id: string; data: UpdateReportInput }[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<Report> | PartialBatchResult<Report>> {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateReportInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n\n const response = await this.execute(() =>\n this.trpc.reports.updateMany.mutate({ items: validated, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((r) => this.instantiate(r)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Instantiation (protected for subclasses to override)\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Instantiates a Report model from API response data.\n * Subclasses override this to return their specific model type.\n */\n protected instantiate(data: ReportData): Report {\n return new Report(data);\n }\n\n /**\n * Instantiates a ReportItem model from API response data.\n * Subclasses override this to return their specific model type.\n */\n protected instantiateItem(data: ReportItemData): ReportItem {\n return new ReportItem(data);\n }\n}\n","/**\n * Addresses Resource\n *\n * Manages physical and mailing addresses for clients.\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateAddressInput,\n UpdateAddressInput,\n AddressFilter,\n AddressType,\n ListOptions,\n PaginatedResponse,\n AtomicBatchResult,\n PartialBatchResult,\n} from \"@artu-ai/shared\";\nimport {\n createAddressInputSchema,\n updateAddressInputSchema,\n} from \"@artu-ai/shared\";\nimport { BaseResource } from \"./base\";\nimport { Address, type AddressData } from \"../models/Address\";\nimport type { BatchOptions } from \"./clients\";\n\n// ===========================\n// AddressesResource\n// ===========================\n\n/**\n * Resource for managing client addresses.\n *\n * @example\n * ```typescript\n * // Create an address for a client\n * const address = await sdk.addresses.create({\n * clientId: \"client_123\",\n * type: \"home\",\n * street1: \"Avenida Reforma 123\",\n * city: \"Ciudad de México\",\n * state: \"CDMX\",\n * postalCode: \"06600\",\n * country: \"MX\",\n * isPrimary: true,\n * });\n *\n * // List all addresses for a client\n * const addresses = await sdk.addresses.listByClient(\"client_123\");\n * ```\n */\nexport class AddressesResource extends BaseResource<\n Address,\n CreateAddressInput,\n UpdateAddressInput,\n AddressFilter\n> {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates an address for a client\n *\n * @param data - Address data including clientId\n * @returns The created Address\n */\n async create(data: CreateAddressInput): Promise<Address> {\n const validated = this.validate(createAddressInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.addresses.create.mutate(validated)\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves an address by ID\n *\n * @param id - The address ID\n * @returns The Address\n */\n async retrieve(id: string): Promise<Address> {\n const response = await this.execute(() =>\n this.trpc.addresses.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves an address by metadata key/value.\n */\n async retrieveByMetadata(key: string, value: string): Promise<Address> {\n const response = await this.execute(() =>\n this.trpc.addresses.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves an address by externalId\n */\n async retrieveByExternalId(externalId: string): Promise<Address> {\n const response = await this.execute(() =>\n this.trpc.addresses.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n /**\n * Updates an address\n *\n * @param id - The address ID\n * @param data - Fields to update\n * @returns The updated Address\n */\n async update(id: string, data: UpdateAddressInput): Promise<Address> {\n const validated = this.validate(updateAddressInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.addresses.update.mutate({ id, data: validated })\n );\n return this.instantiate(response);\n }\n\n /**\n * Deletes an address\n *\n * @param id - The address ID\n */\n async delete(id: string): Promise<void> {\n await this.execute(() => this.trpc.addresses.delete.mutate({ id }));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Lists addresses with optional filtering\n *\n * @param options - Filtering and pagination options\n * @returns Paginated list of Addresses\n */\n async list(\n options?: ListOptions<AddressFilter>\n ): Promise<PaginatedResponse<Address>> {\n const response = await this.execute(() =>\n this.trpc.addresses.list.query(options)\n );\n return {\n data: response.data.map((a) => this.instantiate(a)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Lists all addresses for a specific client\n *\n * @param clientId - The client ID\n * @param options - Optional pagination options\n * @returns Paginated list of Addresses\n */\n async listByClient(\n clientId: string,\n options?: { cursor?: string; limit?: number }\n ): Promise<PaginatedResponse<Address>> {\n const response = await this.execute(() =>\n this.trpc.addresses.listByClient.query({ clientId, ...options })\n );\n return {\n data: response.data.map((a) => this.instantiate(a)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Returns an async iterator over all addresses matching the filter.\n */\n iterate(filter?: AddressFilter): AsyncGenerator<Address, void, undefined> {\n return this.createIterator({ filter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates multiple addresses in a single request.\n *\n * @param addresses - Array of address creation data (each includes clientId)\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n */\n async createMany(\n addresses: CreateAddressInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<Address>>;\n async createMany(\n addresses: CreateAddressInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<Address>>;\n async createMany(\n addresses: CreateAddressInput[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<Address> | PartialBatchResult<Address>> {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createAddressInputSchema),\n addresses\n );\n\n const response = await this.execute(() =>\n this.trpc.addresses.createMany.mutate({ items: validated, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((a) => this.instantiate(a)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n /**\n * Updates multiple addresses in a single request.\n *\n * @param updates - Array of { id, data } updates\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n */\n async updateMany(\n updates: { id: string; data: UpdateAddressInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<Address>>;\n async updateMany(\n updates: { id: string; data: UpdateAddressInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<Address>>;\n async updateMany(\n updates: { id: string; data: UpdateAddressInput }[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<Address> | PartialBatchResult<Address>> {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateAddressInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n\n const response = await this.execute(() =>\n this.trpc.addresses.updateMany.mutate({ items: validated, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((a) => this.instantiate(a)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Helper Methods\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Gets the primary address for a client\n *\n * @param clientId - The client ID\n * @param type - Optional address type filter\n * @returns The primary Address or null\n */\n async getPrimary(\n clientId: string,\n type?: AddressType\n ): Promise<Address | null> {\n const response = await this.execute(() =>\n this.trpc.addresses.getPrimary.query({ clientId, type })\n );\n return response ? this.instantiate(response) : null;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Instantiation\n // ─────────────────────────────────────────────────────────────────\n\n protected instantiate(data: AddressData): Address {\n return new Address(data);\n }\n}\n","/**\n * Contact Methods Resource\n *\n * Manages communication channels (email, phone, etc.) for clients.\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateContactMethodInput,\n UpdateContactMethodInput,\n ContactMethodType,\n ContactMethodFilter,\n ListOptions,\n PaginatedResponse,\n AtomicBatchResult,\n PartialBatchResult,\n} from \"@artu-ai/shared\";\nimport {\n createContactMethodInputSchema,\n updateContactMethodInputSchema,\n} from \"@artu-ai/shared\";\nimport { BaseResource } from \"./base\";\nimport { ContactMethod, type ContactMethodData } from \"../models/ContactMethod\";\nimport type { BatchOptions } from \"./clients\";\n\n// ===========================\n// ContactMethodsResource\n// ===========================\n\n/**\n * Resource for managing client contact methods.\n *\n * @example\n * ```typescript\n * // Create an email contact for a client\n * const email = await sdk.contactMethods.create({\n * clientId: \"client_123\",\n * type: \"email\",\n * value: \"juan@example.com\",\n * label: \"Personal\",\n * isPrimary: true,\n * });\n *\n * // Get the primary email for a client\n * const primary = await sdk.contactMethods.getPrimary(\"client_123\", \"email\");\n * ```\n */\nexport class ContactMethodsResource extends BaseResource<\n ContactMethod,\n CreateContactMethodInput,\n UpdateContactMethodInput,\n ContactMethodFilter\n> {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates a contact method for a client\n *\n * @param data - Contact method data including clientId\n * @returns The created ContactMethod\n */\n async create(data: CreateContactMethodInput): Promise<ContactMethod> {\n const validated = this.validate(createContactMethodInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.contactMethods.create.mutate(validated)\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a contact method by ID\n *\n * @param id - The contact method ID\n * @returns The ContactMethod\n */\n async retrieve(id: string): Promise<ContactMethod> {\n const response = await this.execute(() =>\n this.trpc.contactMethods.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a contact method by metadata key/value.\n */\n async retrieveByMetadata(key: string, value: string): Promise<ContactMethod> {\n const response = await this.execute(() =>\n this.trpc.contactMethods.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a contact method by externalId.\n */\n async retrieveByExternalId(externalId: string): Promise<ContactMethod> {\n const response = await this.execute(() =>\n this.trpc.contactMethods.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n /**\n * Updates a contact method\n *\n * @param id - The contact method ID\n * @param data - Fields to update\n * @returns The updated ContactMethod\n */\n async update(\n id: string,\n data: UpdateContactMethodInput\n ): Promise<ContactMethod> {\n const validated = this.validate(updateContactMethodInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.contactMethods.update.mutate({ id, data: validated })\n );\n return this.instantiate(response);\n }\n\n /**\n * Deletes a contact method\n *\n * @param id - The contact method ID\n */\n async delete(id: string): Promise<void> {\n await this.execute(() => this.trpc.contactMethods.delete.mutate({ id }));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Lists contact methods with optional filtering\n *\n * @param options - Filtering and pagination options\n * @returns Paginated list of ContactMethods\n */\n async list(\n options?: ListOptions<ContactMethodFilter>\n ): Promise<PaginatedResponse<ContactMethod>> {\n const response = await this.execute(() =>\n this.trpc.contactMethods.list.query(options)\n );\n return {\n data: response.data.map((c) => this.instantiate(c)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Lists all contact methods for a specific client\n *\n * @param clientId - The client ID\n * @param options - Optional pagination options\n * @returns Paginated list of ContactMethods\n */\n async listByClient(\n clientId: string,\n options?: { cursor?: string; limit?: number }\n ): Promise<PaginatedResponse<ContactMethod>> {\n const response = await this.execute(() =>\n this.trpc.contactMethods.listByClient.query({ clientId, ...options })\n );\n return {\n data: response.data.map((c) => this.instantiate(c)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Returns an async iterator over all contact methods matching the filter.\n */\n iterate(\n filter?: ContactMethodFilter\n ): AsyncGenerator<ContactMethod, void, undefined> {\n return this.createIterator({ filter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates multiple contact methods in a single request.\n *\n * @param contacts - Array of contact method data (each includes clientId)\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n */\n async createMany(\n contacts: CreateContactMethodInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<ContactMethod>>;\n async createMany(\n contacts: CreateContactMethodInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<ContactMethod>>;\n async createMany(\n contacts: CreateContactMethodInput[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<ContactMethod> | PartialBatchResult<ContactMethod>\n > {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createContactMethodInputSchema),\n contacts\n );\n\n const response = await this.execute(() =>\n this.trpc.contactMethods.createMany.mutate({ items: validated, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((c) => this.instantiate(c)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n /**\n * Updates multiple contact methods in a single request.\n *\n * @param updates - Array of { id, data } updates\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n */\n async updateMany(\n updates: { id: string; data: UpdateContactMethodInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<ContactMethod>>;\n async updateMany(\n updates: { id: string; data: UpdateContactMethodInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<ContactMethod>>;\n async updateMany(\n updates: { id: string; data: UpdateContactMethodInput }[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<ContactMethod> | PartialBatchResult<ContactMethod>\n > {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateContactMethodInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n\n const response = await this.execute(() =>\n this.trpc.contactMethods.updateMany.mutate({ items: validated, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((c) => this.instantiate(c)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Specialized Methods\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Gets the primary contact method of a specific type for a client\n *\n * @param clientId - The client ID\n * @param type - The contact method type\n * @returns The primary ContactMethod or null\n */\n async getPrimary(\n clientId: string,\n type: ContactMethodType\n ): Promise<ContactMethod | null> {\n const response = await this.execute(() =>\n this.trpc.contactMethods.getPrimary.query({ clientId, type })\n );\n return response ? this.instantiate(response) : null;\n }\n\n /**\n * Marks a contact method as verified\n *\n * @param id - The contact method ID\n * @returns The updated ContactMethod\n */\n async markVerified(id: string): Promise<ContactMethod> {\n const response = await this.execute(() =>\n this.trpc.contactMethods.markVerified.mutate({ id })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Instantiation\n // ─────────────────────────────────────────────────────────────────\n\n protected instantiate(data: ContactMethodData): ContactMethod {\n return new ContactMethod(data);\n }\n}\n","/**\n * Bank Accounts Resource\n *\n * Manages bank account information for clients.\n *\n * This is the base (unscoped) resource. For jurisdiction-scoped SDKs, use:\n * - MexBankAccountsResource - Mexico-scoped with flattened CLABE fields\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateBankAccountInput,\n UpdateBankAccountInput,\n BankAccountFilter,\n PaginatedResponse,\n ListOptions,\n AtomicBatchResult,\n PartialBatchResult,\n} from \"@artu-ai/shared\";\nimport {\n createBankAccountInputSchema,\n updateBankAccountInputSchema,\n} from \"@artu-ai/shared\";\nimport type { BatchOptions } from \"./clients\";\nimport { BaseResource } from \"./base\";\nimport { BankAccount, type BankAccountData } from \"../models/BankAccount\";\n\n// ===========================\n// BankAccountsResource\n// ===========================\n\n/**\n * Base resource for managing client bank accounts.\n *\n * @example\n * ```typescript\n * // Create a bank account with full nested format\n * const account = await sdk.bankAccounts.create(\"client_123\", {\n * accountNumber: \"1234567890\",\n * bankName: \"BBVA México\",\n * type: BankAccountType.Checking,\n * currency: Currency.MXN,\n * jurisdictions: {\n * MX: {\n * clabe: \"012345678901234567\",\n * },\n * },\n * });\n *\n * // List accounts for a client\n * const accounts = await sdk.bankAccounts.list(\"client_123\");\n * ```\n */\nexport class BankAccountsResource extends BaseResource<\n BankAccount,\n CreateBankAccountInput,\n UpdateBankAccountInput,\n BankAccountFilter\n> {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates a new bank account for a client.\n *\n * @param data - Bank account creation data (includes clientId)\n * @returns The created bank account model\n */\n async create(data: CreateBankAccountInput): Promise<BankAccount> {\n const validated = this.validate(createBankAccountInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.bankAccounts.create.mutate(validated)\n );\n\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a bank account by ID.\n */\n async retrieve(id: string): Promise<BankAccount> {\n const response = await this.execute(() =>\n this.trpc.bankAccounts.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a bank account by metadata key/value.\n */\n async retrieveByMetadata(key: string, value: string): Promise<BankAccount> {\n const response = await this.execute(() =>\n this.trpc.bankAccounts.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a bank account by externalId.\n */\n async retrieveByExternalId(externalId: string): Promise<BankAccount> {\n const response = await this.execute(() =>\n this.trpc.bankAccounts.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n /**\n * Updates a bank account.\n */\n async update(id: string, data: UpdateBankAccountInput): Promise<BankAccount> {\n const validated = this.validate(updateBankAccountInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.bankAccounts.update.mutate({ id, data: validated })\n );\n return this.instantiate(response);\n }\n\n /**\n * Deletes a bank account.\n */\n async delete(id: string): Promise<void> {\n await this.execute(() => this.trpc.bankAccounts.delete.mutate({ id }));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Lists bank accounts with optional filtering.\n */\n async list(\n options?: ListOptions<BankAccountFilter>\n ): Promise<PaginatedResponse<BankAccount>> {\n const response = await this.execute(() =>\n this.trpc.bankAccounts.list.query(options)\n );\n\n return {\n data: response.data.map((a) => this.instantiate(a)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Lists all bank accounts for a specific client.\n */\n async listByClient(\n clientId: string,\n options?: { cursor?: string; limit?: number }\n ): Promise<PaginatedResponse<BankAccount>> {\n const response = await this.execute(() =>\n this.trpc.bankAccounts.listByClient.query({ clientId, ...options })\n );\n\n return {\n data: response.data.map((a) => this.instantiate(a)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Returns an async iterator over all bank accounts matching the filter.\n */\n iterate(\n filter?: BankAccountFilter\n ): AsyncGenerator<BankAccount, void, undefined> {\n return this.createIterator({ filter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Convenience Methods\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Gets the primary bank account for a client.\n *\n * @param clientId - The client ID\n * @returns The primary bank account, or null if none is marked as primary\n */\n async getPrimary(clientId: string): Promise<BankAccount | null> {\n const response = await this.execute(() =>\n this.trpc.bankAccounts.getPrimary.query({ clientId })\n );\n\n return response ? this.instantiate(response) : null;\n }\n\n /**\n * Sets a bank account as the primary account for a client.\n */\n async setPrimary(id: string): Promise<BankAccount> {\n const response = await this.execute(() =>\n this.trpc.bankAccounts.update.mutate({ id, data: { isPrimary: true } })\n );\n return this.instantiate(response);\n }\n\n /**\n * Activates a bank account.\n */\n async activate(id: string): Promise<BankAccount> {\n const response = await this.execute(() =>\n this.trpc.bankAccounts.update.mutate({ id, data: { isActive: true } })\n );\n return this.instantiate(response);\n }\n\n /**\n * Deactivates a bank account.\n */\n async deactivate(id: string): Promise<BankAccount> {\n const response = await this.execute(() =>\n this.trpc.bankAccounts.update.mutate({ id, data: { isActive: false } })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates multiple bank accounts in a single request.\n *\n * @param accounts - Array of bank account creation data (each includes clientId)\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n */\n async createMany(\n accounts: CreateBankAccountInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<BankAccount>>;\n async createMany(\n accounts: CreateBankAccountInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<BankAccount>>;\n async createMany(\n accounts: CreateBankAccountInput[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<BankAccount> | PartialBatchResult<BankAccount>> {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createBankAccountInputSchema),\n accounts\n );\n\n const response = await this.execute(() =>\n this.trpc.bankAccounts.createMany.mutate({ items: validated, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((a) => this.instantiate(a)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n /**\n * Updates multiple bank accounts in a single request.\n *\n * @param updates - Array of { id, data } updates\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n */\n async updateMany(\n updates: { id: string; data: UpdateBankAccountInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<BankAccount>>;\n async updateMany(\n updates: { id: string; data: UpdateBankAccountInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<BankAccount>>;\n async updateMany(\n updates: { id: string; data: UpdateBankAccountInput }[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<BankAccount> | PartialBatchResult<BankAccount>> {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateBankAccountInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n\n const response = await this.execute(() =>\n this.trpc.bankAccounts.updateMany.mutate({ items: validated, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((a) => this.instantiate(a)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Instantiation (protected for subclasses to override)\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Instantiates a BankAccount model from API response data.\n * Subclasses override this to return their specific model type.\n */\n protected instantiate(data: BankAccountData): BankAccount {\n return new BankAccount(data);\n }\n}\n","/**\n * Documents resource\n *\n * CRUD operations for documents. File upload/download operations are handled separately.\n * All documents are created with pending_upload status.\n */\n\nimport type {\n PaginatedResponse,\n DocumentFilter,\n CreateDocumentInput,\n UpdateDocumentInput,\n ListOptions,\n} from \"@artu-ai/shared\";\nimport {\n createDocumentInputSchema,\n updateDocumentInputSchema,\n} from \"@artu-ai/shared\";\nimport { z } from \"zod\";\nimport { Document, type DocumentData } from \"../models/Document\";\nimport { BaseResource } from \"./base\";\n\n// ─────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────\n\nexport interface BatchOptions {\n atomic?: boolean;\n}\n\nexport interface AtomicBatchResult<T> {\n atomic: true;\n data: T[];\n}\n\nexport interface PartialBatchResult<T> {\n atomic: false;\n succeeded: { index: number; data: T }[];\n failed: { index: number; error: { code: string; message: string } }[];\n}\n\n// ─────────────────────────────────────────────────────────────────\n// Resource\n// ─────────────────────────────────────────────────────────────────\n\n/**\n * Documents resource for managing document records.\n *\n * @example\n * ```typescript\n * // Create a document record\n * const doc = await sdk.documents.create({\n * clientId: \"client_123\",\n * jurisdiction: \"MX\",\n * type: \"ine_front\",\n * category: \"identity\",\n * });\n *\n * // List documents\n * const docs = await sdk.documents.list({ filter: { clientId: \"client_123\" } });\n *\n * // Update document metadata\n * await sdk.documents.update(doc.id, { metadata: { verified: true } });\n * ```\n */\nexport class DocumentsResource extends BaseResource<\n Document,\n CreateDocumentInput,\n UpdateDocumentInput,\n DocumentFilter\n> {\n // ─────────────────────────────────────────────────────────────────\n // Create\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates a new document record.\n *\n * Documents are created with status \"pending_upload\".\n * File upload is handled separately.\n *\n * @param data - Document data\n * @returns The created document\n */\n async create(data: CreateDocumentInput): Promise<Document> {\n const validated = this.validate(createDocumentInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.documents.create.mutate(validated)\n );\n\n return this.instantiate(response as DocumentData);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Retrieve\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Retrieves a document by ID\n *\n * @param id - Document ID\n * @returns The document\n */\n async retrieve(id: string): Promise<Document> {\n const response = await this.execute(() =>\n this.trpc.documents.retrieve.query({ id })\n );\n return this.instantiate(response as DocumentData);\n }\n\n /**\n * Retrieves a document by metadata key/value.\n */\n async retrieveByMetadata(key: string, value: string): Promise<Document> {\n const response = await this.execute(() =>\n this.trpc.documents.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response as DocumentData);\n }\n\n /**\n * Retrieves a document by externalId\n */\n async retrieveByExternalId(externalId: string): Promise<Document> {\n const response = await this.execute(() =>\n this.trpc.documents.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response as DocumentData);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Update\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Updates a document's metadata, expiration, or fields.\n *\n * Note: Status cannot be updated directly - it's managed by the system.\n *\n * @param id - Document ID\n * @param data - Fields to update\n * @returns The updated document\n */\n async update(id: string, data: UpdateDocumentInput): Promise<Document> {\n const validated = this.validate(updateDocumentInputSchema, data);\n\n const response = await this.execute(() =>\n this.trpc.documents.update.mutate({\n id,\n data: {\n ...validated,\n expiresAt: validated.expiresAt?.toISOString(),\n },\n })\n );\n return this.instantiate(response as DocumentData);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Delete\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Soft-deletes a document\n *\n * @param id - Document ID\n */\n async delete(id: string): Promise<void> {\n await this.execute(() => this.trpc.documents.delete.mutate({ id }));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Lists documents with optional filtering and pagination.\n *\n * @param options - List options with filter, cursor, and limit\n * @returns Paginated list of documents\n */\n async list(\n options?: ListOptions<DocumentFilter>\n ): Promise<PaginatedResponse<Document>> {\n const response = await this.execute(() =>\n this.trpc.documents.list.query(options)\n );\n\n const typedResponse = response as {\n data: DocumentData[];\n pagination: { nextCursor?: string; hasMore: boolean };\n };\n\n return {\n data: typedResponse.data.map((d) => this.instantiate(d)),\n pagination: typedResponse.pagination,\n };\n }\n\n /**\n * Lists all documents for a specific client with pagination.\n *\n * @param clientId - Client ID\n * @param options - Pagination options\n * @returns Paginated list of documents\n */\n async listByClient(\n clientId: string,\n options?: { cursor?: string; limit?: number }\n ): Promise<PaginatedResponse<Document>> {\n const response = await this.execute(() =>\n this.trpc.documents.listByClient.query({ clientId, ...options })\n );\n\n const typedResponse = response as {\n data: DocumentData[];\n pagination: { nextCursor?: string; hasMore: boolean };\n };\n\n return {\n data: typedResponse.data.map((d) => this.instantiate(d)),\n pagination: typedResponse.pagination,\n };\n }\n\n /**\n * Async iterator for documents with optional filtering.\n *\n * @param options - Filter options\n * @yields Documents one at a time\n */\n async *iterate(\n options?: ListOptions<DocumentFilter>\n ): AsyncGenerator<Document, void, unknown> {\n let cursor: string | undefined;\n let hasMore = true;\n\n while (hasMore) {\n const response = await this.list({\n ...options,\n cursor,\n limit: options?.limit ?? 100,\n });\n\n for (const doc of response.data) {\n yield doc;\n }\n\n cursor = response.pagination.nextCursor;\n hasMore = response.pagination.hasMore;\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates multiple document records in a batch.\n *\n * @param documents - Array of document creation data\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n */\n async createMany(\n documents: CreateDocumentInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<Document>>;\n async createMany(\n documents: CreateDocumentInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<Document>>;\n async createMany(\n documents: CreateDocumentInput[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<Document> | PartialBatchResult<Document>> {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createDocumentInputSchema),\n documents\n );\n\n const response = await this.execute(() =>\n this.trpc.documents.createMany.mutate({ items: validated, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((d) => this.instantiate(d as DocumentData)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data as DocumentData),\n })),\n failed: response.failed,\n };\n }\n }\n\n /**\n * Updates multiple documents in a batch.\n *\n * @param updates - Array of { id, data } objects\n * @param options - Batch options (atomic: true by default)\n * @returns Atomic result with data array, or partial result with succeeded/failed\n */\n async updateMany(\n updates: { id: string; data: UpdateDocumentInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<Document>>;\n async updateMany(\n updates: { id: string; data: UpdateDocumentInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<Document>>;\n async updateMany(\n updates: { id: string; data: UpdateDocumentInput }[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<Document> | PartialBatchResult<Document>> {\n const atomic = options.atomic ?? true;\n const validated = updates.map((u) => ({\n id: u.id,\n data: this.validate(updateDocumentInputSchema, u.data),\n }));\n\n // Convert Date objects to ISO strings for the API\n const items = validated.map((u) => ({\n id: u.id,\n data: {\n ...u.data,\n expiresAt: u.data.expiresAt?.toISOString(),\n },\n }));\n\n const response = await this.execute(() =>\n this.trpc.documents.updateMany.mutate({ items, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((d) => this.instantiate(d as DocumentData)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data as DocumentData),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Gets document count for a client\n *\n * @param clientId - Client ID\n * @returns Count of documents\n */\n async countByClient(clientId: string): Promise<number> {\n const response = await this.listByClient(clientId, { limit: 100 });\n // For accurate count, we'd need a dedicated endpoint\n // This is an approximation\n let count = response.data.length;\n let cursor = response.pagination.nextCursor;\n\n while (response.pagination.hasMore && cursor) {\n const next = await this.listByClient(clientId, { cursor, limit: 100 });\n count += next.data.length;\n cursor = next.pagination.nextCursor;\n if (!next.pagination.hasMore) break;\n }\n\n return count;\n }\n\n /**\n * Checks if a document with the given type exists for a client\n *\n * @param clientId - Client ID\n * @param type - Document type\n * @returns True if document exists and is available\n */\n async hasDocumentType(clientId: string, type: string): Promise<boolean> {\n const response = await this.list({\n filter: { clientId, type },\n limit: 1,\n });\n return response.data.some((d) => d.type === type && d.isAvailable);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Methods\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Instantiates a Document model from raw data.\n * Override in subclasses to return jurisdiction-specific models.\n */\n protected instantiate(data: DocumentData): Document {\n return new Document(data);\n }\n}\n","/**\n * Mexico Clients Resource\n *\n * Extends ClientsResource with Mexico-specific behavior:\n * - Accepts flattened CreateMexClientInput (MX fields at root level)\n * - Automatically sets primaryJurisdiction to Mexico\n * - Filters list/iterate to Mexico clients only\n * - Returns MexClient models\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateClientInput,\n UpdateClientInput,\n ClientFilter,\n ListOptions,\n PaginatedResponse,\n CreateMexClientInput,\n UpdateMexClientInput,\n AtomicBatchResult,\n PartialBatchResult,\n} from \"@artu-ai/shared\";\nimport {\n Jurisdiction,\n createMexClientInputSchema,\n updateMexClientInputSchema,\n} from \"@artu-ai/shared\";\nimport { ClientsResource, type BatchOptions } from \"../clients\";\nimport { MexClient, type ClientData } from \"../../models\";\n\n// ===========================\n// MexClientsResource\n// ===========================\n\n/**\n * Mexico-scoped clients resource.\n *\n * Provides the same operations as ClientsResource but with:\n * - Flattened input types (MX fields at root level)\n * - Automatic jurisdiction scoping\n * - MexClient model return type\n *\n * @example\n * ```typescript\n * const mexSdk = new ComplianceSDK({\n * apiKey,\n * environment: \"test\",\n * jurisdiction: Jurisdiction.Mexico,\n * });\n *\n * // Create with flattened input\n * const client = await mexSdk.clients.create({\n * type: ClientType.Person,\n * name: \"Juan García\",\n * rfc: \"GAJL850101ABC\", // MX field at root\n * curp: \"GAJL850101HDFRRL09\", // MX field at root\n * actividadVulnerable: { // Activity data keyed by code\n * AVI: { username: \"JGARCIA\" },\n * },\n * });\n *\n * // List returns only Mexico clients\n * const { data } = await mexSdk.clients.list();\n * // data is MexClient[]\n * ```\n */\nexport class MexClientsResource extends ClientsResource {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations (override with flattened input types)\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates a new Mexico client with flattened input.\n *\n * @param data - Client creation data with MX fields at root level\n * @returns The created MexClient model\n */\n async create(data: CreateMexClientInput): Promise<MexClient> {\n const validated = this.validate(createMexClientInputSchema, data);\n const nestedData = this.transformToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.clients.create.mutate(nestedData)\n );\n\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a client by ID.\n */\n async retrieve(id: string): Promise<MexClient> {\n const response = await this.execute(() =>\n this.trpc.clients.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a Mexico client by externalId.\n */\n async retrieveByExternalId(externalId: string): Promise<MexClient> {\n const response = await this.execute(() =>\n this.trpc.clients.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n /**\n * Updates a Mexico client with flattened input.\n */\n async update(id: string, data: UpdateMexClientInput): Promise<MexClient> {\n const validated = this.validate(updateMexClientInputSchema, data);\n const nestedData = this.transformUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.clients.update.mutate({ id, data: nestedData })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination (scoped to Mexico)\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Lists Mexico clients with optional filtering.\n * Automatically filters to clients with Mexico jurisdiction data.\n */\n async list(\n options?: ListOptions<ClientFilter>\n ): Promise<PaginatedResponse<MexClient>> {\n const scopedFilter = this.applyScopeToFilter(options?.filter);\n\n const response = await this.execute(() =>\n this.trpc.clients.list.query({\n ...options,\n filter: scopedFilter,\n })\n );\n\n return {\n data: response.data.map((c) => this.instantiate(c)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Iterates over Mexico clients.\n * Automatically filters to clients with Mexico jurisdiction data.\n */\n iterate(filter?: ClientFilter): AsyncGenerator<MexClient, void, undefined> {\n const scopedFilter = this.applyScopeToFilter(filter);\n return this.createIterator<MexClient>({ filter: scopedFilter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates multiple Mexico clients with flattened input.\n */\n async createMany(\n clients: CreateMexClientInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexClient>>;\n async createMany(\n clients: CreateMexClientInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexClient>>;\n async createMany(\n clients: CreateMexClientInput[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<MexClient> | PartialBatchResult<MexClient>> {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createMexClientInputSchema),\n clients\n );\n const nestedClients = validated.map((c) => this.transformToNested(c));\n\n const response = await this.execute(() =>\n this.trpc.clients.createMany.mutate({ items: nestedClients, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((c) => this.instantiate(c)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n /**\n * Updates multiple Mexico clients.\n */\n async updateMany(\n updates: { id: string; data: UpdateMexClientInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexClient>>;\n async updateMany(\n updates: { id: string; data: UpdateMexClientInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexClient>>;\n async updateMany(\n updates: { id: string; data: UpdateMexClientInput }[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<MexClient> | PartialBatchResult<MexClient>> {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateMexClientInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n const nestedUpdates = validated.map((u) => ({\n id: u.id,\n data: this.transformUpdateToNested(u.data),\n }));\n\n const response = await this.execute(() =>\n this.trpc.clients.updateMany.mutate({ items: nestedUpdates, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((c) => this.instantiate(c)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Applies Mexico jurisdiction filter.\n * Uses `jurisdictions.has` to find any client that includes Mexico.\n */\n protected applyScopeToFilter(filter?: ClientFilter): ClientFilter {\n return {\n ...filter,\n jurisdictions: {\n ...filter?.jurisdictions,\n has: Jurisdiction.Mexico,\n },\n };\n }\n\n /**\n * Transforms flattened MX input to nested API format.\n */\n protected transformToNested(data: CreateMexClientInput): CreateClientInput {\n const {\n rfc,\n curp,\n actividadEconomica,\n giroMercantil,\n actividadVulnerable,\n ...baseFields\n } = data as Record<string, unknown>;\n\n // Build MX jurisdiction data\n const mexData: Record<string, unknown> = {};\n if (rfc !== undefined) mexData.rfc = rfc;\n if (curp !== undefined) mexData.curp = curp;\n if (actividadEconomica !== undefined)\n mexData.actividadEconomica = actividadEconomica;\n if (giroMercantil !== undefined) mexData.giroMercantil = giroMercantil;\n if (actividadVulnerable !== undefined)\n mexData.actividadVulnerable = actividadVulnerable;\n\n return {\n ...baseFields,\n primaryJurisdiction: Jurisdiction.Mexico,\n jurisdictions: {\n MX: mexData,\n },\n } as CreateClientInput;\n }\n\n /**\n * Transforms flattened MX update input to nested API format.\n */\n protected transformUpdateToNested(\n data: UpdateMexClientInput\n ): UpdateClientInput {\n const {\n rfc,\n curp,\n actividadEconomica,\n giroMercantil,\n actividadVulnerable,\n ...baseFields\n } = data;\n\n // Only include MX data if any MX fields are present\n const hasMexFields =\n rfc !== undefined ||\n curp !== undefined ||\n actividadEconomica !== undefined ||\n giroMercantil !== undefined ||\n actividadVulnerable !== undefined;\n\n if (!hasMexFields) {\n return baseFields as UpdateClientInput;\n }\n\n const mexData: Record<string, unknown> = {};\n if (rfc !== undefined) mexData.rfc = rfc;\n if (curp !== undefined) mexData.curp = curp;\n if (actividadEconomica !== undefined)\n mexData.actividadEconomica = actividadEconomica;\n if (giroMercantil !== undefined) mexData.giroMercantil = giroMercantil;\n if (actividadVulnerable !== undefined)\n mexData.actividadVulnerable = actividadVulnerable;\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: mexData,\n },\n } as UpdateClientInput;\n }\n\n /**\n * Instantiates a MexClient model.\n */\n protected override instantiate(data: ClientData): MexClient {\n return new MexClient(data);\n }\n}\n","/**\n * Mexico Transactions Resource\n *\n * Extends TransactionsResource with Mexico-specific behavior:\n * - Accepts flattened CreateMexTransactionInput (MX fields at root level)\n * - Automatically sets primaryJurisdiction to Mexico\n * - Filters list/iterate to Mexico transactions only\n * - Returns MexTransaction models\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateTransactionInput,\n UpdateTransactionInput,\n TransactionFilter,\n ListOptions,\n PaginatedResponse,\n CreateMexTransactionInput,\n UpdateMexTransactionInput,\n AtomicBatchResult,\n PartialBatchResult,\n} from \"@artu-ai/shared\";\nimport {\n Jurisdiction,\n createMexTransactionInputSchema,\n updateMexTransactionInputSchema,\n} from \"@artu-ai/shared\";\nimport { TransactionsResource } from \"../transactions\";\nimport { type BatchOptions } from \"../clients\";\nimport { MexTransaction, type TransactionData } from \"../../models\";\n\n// ===========================\n// MexTransactionsResource\n// ===========================\n\n/**\n * Mexico-scoped transactions resource.\n *\n * Provides the same operations as TransactionsResource but with:\n * - Flattened input types (MX fields at root level)\n * - Automatic jurisdiction scoping\n * - MexTransaction model return type\n *\n * @example\n * ```typescript\n * const mexSdk = new ComplianceSDK({\n * apiKey,\n * environment: \"test\",\n * jurisdiction: Jurisdiction.Mexico,\n * });\n *\n * // Create with flattened input\n * const txn = await mexSdk.transactions.create({\n * amount: 50000,\n * currency: \"MXN\",\n * timestamp: new Date(),\n * actividadVulnerable: {\n * AVI: { tipoOperacion: \"compra\" },\n * },\n * });\n *\n * // List returns only Mexico transactions\n * const { data } = await mexSdk.transactions.list();\n * // data is MexTransaction[]\n * ```\n */\nexport class MexTransactionsResource extends TransactionsResource {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations (override with flattened input types)\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates a new Mexico transaction with flattened input.\n */\n async create(data: CreateMexTransactionInput): Promise<MexTransaction> {\n const validated = this.validate(createMexTransactionInputSchema, data);\n const nestedData = this.transformToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.transactions.create.mutate(nestedData)\n );\n\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a transaction by ID.\n */\n async retrieve(id: string): Promise<MexTransaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n async retrieveByMetadata(\n key: string,\n value: string\n ): Promise<MexTransaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n async retrieveByExternalId(externalId: string): Promise<MexTransaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n /**\n * Updates a Mexico transaction with flattened input.\n */\n async update(\n id: string,\n data: UpdateMexTransactionInput\n ): Promise<MexTransaction> {\n const validated = this.validate(updateMexTransactionInputSchema, data);\n const nestedData = this.transformUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.transactions.update.mutate({ id, data: nestedData })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination (scoped to Mexico)\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Lists Mexico transactions with optional filtering.\n */\n async list(\n options?: ListOptions<TransactionFilter>\n ): Promise<PaginatedResponse<MexTransaction>> {\n const scopedFilter = this.applyScopeToFilter(options?.filter);\n\n const response = await this.execute(() =>\n this.trpc.transactions.list.query({\n ...options,\n filter: scopedFilter,\n })\n );\n\n return {\n data: response.data.map((t) => this.instantiate(t)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Iterates over Mexico transactions.\n */\n iterate(\n filter?: TransactionFilter\n ): AsyncGenerator<MexTransaction, void, undefined> {\n const scopedFilter = this.applyScopeToFilter(filter);\n return this.createIterator<MexTransaction>({ filter: scopedFilter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n async createMany(\n transactions: CreateMexTransactionInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexTransaction>>;\n async createMany(\n transactions: CreateMexTransactionInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexTransaction>>;\n async createMany(\n transactions: CreateMexTransactionInput[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexTransaction> | PartialBatchResult<MexTransaction>\n > {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createMexTransactionInputSchema),\n transactions\n );\n const nestedItems = validated.map((t) => this.transformToNested(t));\n\n const response = await this.execute(() =>\n this.trpc.transactions.createMany.mutate({ items: nestedItems, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((t) => this.instantiate(t)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n async updateMany(\n updates: { id: string; data: UpdateMexTransactionInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexTransaction>>;\n async updateMany(\n updates: { id: string; data: UpdateMexTransactionInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexTransaction>>;\n async updateMany(\n updates: { id: string; data: UpdateMexTransactionInput }[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexTransaction> | PartialBatchResult<MexTransaction>\n > {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateMexTransactionInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n const nestedUpdates = validated.map((u) => ({\n id: u.id,\n data: this.transformUpdateToNested(u.data),\n }));\n\n const response = await this.execute(() =>\n this.trpc.transactions.updateMany.mutate({ items: nestedUpdates, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((t) => this.instantiate(t)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Applies Mexico jurisdiction filter.\n */\n protected applyScopeToFilter(filter?: TransactionFilter): TransactionFilter {\n return {\n ...filter,\n jurisdictions: {\n ...filter?.jurisdictions,\n has: Jurisdiction.Mexico,\n },\n };\n }\n\n /**\n * Transforms flattened MX input to nested API format.\n */\n protected transformToNested(\n data: CreateMexTransactionInput\n ): CreateTransactionInput {\n const { actividadVulnerable, ...baseFields } = data;\n\n // Build MX jurisdiction data\n const mexData: Record<string, unknown> = {};\n if (actividadVulnerable !== undefined) {\n mexData.actividadVulnerable = actividadVulnerable;\n }\n\n return {\n ...baseFields,\n primaryJurisdiction: Jurisdiction.Mexico,\n jurisdictions:\n Object.keys(mexData).length > 0\n ? {\n MX: mexData,\n }\n : undefined,\n } as CreateTransactionInput;\n }\n\n /**\n * Transforms flattened MX update input to nested API format.\n */\n protected transformUpdateToNested(\n data: UpdateMexTransactionInput\n ): UpdateTransactionInput {\n const { actividadVulnerable, ...baseFields } = data;\n\n if (actividadVulnerable === undefined) {\n return baseFields as UpdateTransactionInput;\n }\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: { actividadVulnerable },\n },\n } as UpdateTransactionInput;\n }\n\n /**\n * Instantiates a MexTransaction model.\n */\n protected override instantiate(data: TransactionData): MexTransaction {\n return new MexTransaction(data);\n }\n}\n","/**\n * Mexico Bank Accounts Resource\n *\n * Extends BankAccountsResource to return MexBankAccount models\n * with Mexico-specific helpers (CLABE formatting, etc.).\n */\n\nimport type {\n CreateBankAccountInput,\n UpdateBankAccountInput,\n BankAccountFilter,\n ListOptions,\n PaginatedResponse,\n AtomicBatchResult,\n PartialBatchResult,\n} from \"@artu-ai/shared\";\nimport { BankAccountsResource } from \"../bank-accounts\";\nimport { type BatchOptions } from \"../clients\";\nimport { MexBankAccount, type BankAccountData } from \"../../models\";\n\n/**\n * Mexico-scoped bank accounts resource.\n *\n * Identical to BankAccountsResource but returns MexBankAccount models\n * with Mexico-specific helpers like CLABE formatting.\n *\n * @example\n * ```typescript\n * const mexSdk = new ComplianceSDK({\n * apiKey,\n * environment: \"test\",\n * jurisdiction: Jurisdiction.Mexico,\n * });\n *\n * const account = await mexSdk.bankAccounts.create({\n * clientId: \"client_123\",\n * accountNumber: \"1234567890\",\n * bankName: \"BBVA México\",\n * type: \"checking\",\n * currency: \"MXN\",\n * country: \"MX\",\n * clabe: \"012180001234567890\",\n * });\n *\n * // Returns MexBankAccount with helpers\n * console.log(account.clabe);\n * console.log(account.formattedClabe); // \"012 180 00123456789 0\"\n * console.log(account.maskedClabe); // \"**************7890\"\n * ```\n */\nexport class MexBankAccountsResource extends BankAccountsResource {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations (override return types)\n // ─────────────────────────────────────────────────────────────────\n\n override async create(data: CreateBankAccountInput): Promise<MexBankAccount> {\n return super.create(data) as Promise<MexBankAccount>;\n }\n\n override async retrieve(id: string): Promise<MexBankAccount> {\n return super.retrieve(id) as Promise<MexBankAccount>;\n }\n\n override async retrieveByMetadata(\n key: string,\n value: string\n ): Promise<MexBankAccount> {\n return super.retrieveByMetadata(key, value) as Promise<MexBankAccount>;\n }\n\n override async retrieveByExternalId(\n externalId: string\n ): Promise<MexBankAccount> {\n return super.retrieveByExternalId(externalId) as Promise<MexBankAccount>;\n }\n\n override async update(\n id: string,\n data: UpdateBankAccountInput\n ): Promise<MexBankAccount> {\n return super.update(id, data) as Promise<MexBankAccount>;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination (override return types)\n // ─────────────────────────────────────────────────────────────────\n\n override async list(\n options?: ListOptions<BankAccountFilter>\n ): Promise<PaginatedResponse<MexBankAccount>> {\n return super.list(options) as Promise<PaginatedResponse<MexBankAccount>>;\n }\n\n override async listByClient(\n clientId: string,\n options?: { cursor?: string; limit?: number }\n ): Promise<PaginatedResponse<MexBankAccount>> {\n return super.listByClient(clientId, options) as Promise<\n PaginatedResponse<MexBankAccount>\n >;\n }\n\n override iterate(\n filter?: BankAccountFilter\n ): AsyncGenerator<MexBankAccount, void, undefined> {\n return super.iterate(filter) as AsyncGenerator<\n MexBankAccount,\n void,\n undefined\n >;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations (override return types)\n // ─────────────────────────────────────────────────────────────────\n\n override async createMany(\n accounts: CreateBankAccountInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexBankAccount>>;\n override async createMany(\n accounts: CreateBankAccountInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexBankAccount>>;\n override async createMany(\n accounts: CreateBankAccountInput[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexBankAccount> | PartialBatchResult<MexBankAccount>\n > {\n return super.createMany(accounts, options as { atomic?: true }) as Promise<\n AtomicBatchResult<MexBankAccount> | PartialBatchResult<MexBankAccount>\n >;\n }\n\n override async updateMany(\n updates: { id: string; data: UpdateBankAccountInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexBankAccount>>;\n override async updateMany(\n updates: { id: string; data: UpdateBankAccountInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexBankAccount>>;\n override async updateMany(\n updates: { id: string; data: UpdateBankAccountInput }[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexBankAccount> | PartialBatchResult<MexBankAccount>\n > {\n return super.updateMany(updates, options as { atomic?: true }) as Promise<\n AtomicBatchResult<MexBankAccount> | PartialBatchResult<MexBankAccount>\n >;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Convenience Methods (override return types)\n // ─────────────────────────────────────────────────────────────────\n\n override async setPrimary(id: string): Promise<MexBankAccount> {\n return super.setPrimary(id) as Promise<MexBankAccount>;\n }\n\n override async activate(id: string): Promise<MexBankAccount> {\n return super.activate(id) as Promise<MexBankAccount>;\n }\n\n override async deactivate(id: string): Promise<MexBankAccount> {\n return super.deactivate(id) as Promise<MexBankAccount>;\n }\n\n override async getPrimary(clientId: string): Promise<MexBankAccount | null> {\n return super.getPrimary(clientId) as Promise<MexBankAccount | null>;\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Instantiation\n // ─────────────────────────────────────────────────────────────────\n\n protected override instantiate(data: BankAccountData): MexBankAccount {\n return new MexBankAccount(data);\n }\n}\n","/**\n * Mexico Reports Resource\n *\n * Extends ReportsResource with Mexico-specific behavior:\n * - Accepts flattened CreateMexReportInput (MX fields at root level)\n * - Filters list/iterate to Mexico reports only\n * - Returns MexReport models\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateReportInput,\n UpdateReportInput,\n CreateReportItemInput,\n UpdateReportItemInput,\n CreateMexReportInput,\n UpdateMexReportInput,\n CreateMexReportItemInput,\n UpdateMexReportItemInput,\n ListOptions,\n PaginatedResponse,\n AtomicBatchResult,\n PartialBatchResult,\n MexValidateReportInput,\n MexSubmitReportInput,\n ValidationResult,\n GenerateResult,\n SubmissionResult,\n} from \"@artu-ai/shared\";\nimport {\n Jurisdiction,\n createMexReportInputSchema,\n updateMexReportInputSchema,\n createMexReportItemInputSchema,\n updateMexReportItemInputSchema,\n mexValidateReportInputSchema,\n mexSubmitReportInputSchema,\n} from \"@artu-ai/shared\";\nimport {\n ReportsResource,\n type ReportFilter,\n type ReportItemFilter,\n} from \"../reports\";\nimport { type BatchOptions } from \"../clients\";\nimport { MexReport, type ReportData, type ReportItemData } from \"../../models\";\nimport { MexReportItem } from \"../../models/mex\";\n\n// ===========================\n// MexReportsResource\n// ===========================\n\n/**\n * Mexico-scoped reports resource.\n *\n * Provides the same operations as ReportsResource but with:\n * - Flattened input types (MX fields at root level)\n * - Automatic jurisdiction scoping\n * - MexReport model return type\n *\n * @example\n * ```typescript\n * const mexSdk = new ComplianceSDK({\n * apiKey,\n * environment: \"test\",\n * jurisdiction: Jurisdiction.Mexico,\n * });\n *\n * // Create with flattened input\n * const report = await mexSdk.reports.create({\n * actividadVulnerable: {\n * AVI: { mesReportado: \"202401\" },\n * },\n * });\n *\n * // List returns only Mexico reports\n * const { data } = await mexSdk.reports.list();\n * // data is MexReport[]\n * ```\n */\nexport class MexReportsResource extends ReportsResource {\n // ─────────────────────────────────────────────────────────────────\n // Report CRUD (override with flattened input types)\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates a new Mexico report with flattened input.\n */\n async create(data: CreateMexReportInput): Promise<MexReport> {\n const validated = this.validate(createMexReportInputSchema, data);\n const nestedData = this.transformToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.create.mutate(nestedData)\n );\n\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a report by ID.\n */\n async retrieve(id: string): Promise<MexReport> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n async retrieveByMetadata(key: string, value: string): Promise<MexReport> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n async retrieveByExternalId(externalId: string): Promise<MexReport> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n /**\n * Updates a Mexico report with flattened input.\n */\n async update(id: string, data: UpdateMexReportInput): Promise<MexReport> {\n const validated = this.validate(updateMexReportInputSchema, data);\n const nestedData = this.transformUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.update.mutate({ id, data: nestedData })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination (scoped to Mexico)\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Lists Mexico reports with optional filtering.\n * Automatically filters to reports with Mexico jurisdiction data.\n */\n async list(\n options?: ListOptions<ReportFilter>\n ): Promise<PaginatedResponse<MexReport>> {\n const scopedFilter = this.applyScopeToFilter(options?.filter);\n\n const response = await this.execute(() =>\n this.trpc.reports.list.query({\n ...options,\n filter: scopedFilter,\n })\n );\n\n return {\n data: response.data.map((r) => this.instantiate(r)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Iterates over Mexico reports.\n * Automatically filters to reports with Mexico jurisdiction data.\n */\n iterate(filter?: ReportFilter): AsyncGenerator<MexReport, void, undefined> {\n const scopedFilter = this.applyScopeToFilter(filter);\n return this.createIterator<MexReport>({ filter: scopedFilter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n async createMany(\n reports: CreateMexReportInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexReport>>;\n async createMany(\n reports: CreateMexReportInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexReport>>;\n async createMany(\n reports: CreateMexReportInput[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<MexReport> | PartialBatchResult<MexReport>> {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createMexReportInputSchema),\n reports\n );\n const nestedItems = validated.map((r) => this.transformToNested(r));\n\n const response = await this.execute(() =>\n this.trpc.reports.createMany.mutate({ items: nestedItems, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((r) => this.instantiate(r)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n async updateMany(\n updates: { id: string; data: UpdateMexReportInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexReport>>;\n async updateMany(\n updates: { id: string; data: UpdateMexReportInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexReport>>;\n async updateMany(\n updates: { id: string; data: UpdateMexReportInput }[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<MexReport> | PartialBatchResult<MexReport>> {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateMexReportInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n const nestedUpdates = validated.map((u) => ({\n id: u.id,\n data: this.transformUpdateToNested(u.data),\n }));\n\n const response = await this.execute(() =>\n this.trpc.reports.updateMany.mutate({ items: nestedUpdates, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((r) => this.instantiate(r)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Report Items\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Adds an item to a report with flattened Mexico input.\n */\n async addItem(\n reportId: string,\n data: CreateMexReportItemInput\n ): Promise<MexReportItem> {\n const validated = this.validate(createMexReportItemInputSchema, data);\n const nestedData = this.transformItemToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.addItem.mutate({ reportId, data: nestedData })\n );\n\n return this.instantiateItem(response);\n }\n\n /**\n * Gets a specific report item.\n */\n async getItem(reportId: string, itemId: string): Promise<MexReportItem> {\n const response = await this.execute(() =>\n this.trpc.reports.getItem.query({ reportId, itemId })\n );\n return this.instantiateItem(response);\n }\n\n /**\n * Updates a report item with flattened Mexico input.\n */\n async updateItem(\n reportId: string,\n itemId: string,\n data: UpdateMexReportItemInput\n ): Promise<MexReportItem> {\n const validated = this.validate(updateMexReportItemInputSchema, data);\n const nestedData = this.transformItemUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.updateItem.mutate({\n reportId,\n itemId,\n data: nestedData,\n })\n );\n return this.instantiateItem(response);\n }\n\n /**\n * Lists items in a report.\n */\n async listItems(\n reportId: string,\n options?: ListOptions<ReportItemFilter>\n ): Promise<PaginatedResponse<MexReportItem>> {\n const response = await this.execute(() =>\n this.trpc.reports.listItems.query({\n reportId,\n ...options,\n })\n );\n\n return {\n data: response.data.map((i) => this.instantiateItem(i)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Adds multiple items to a report with flattened Mexico input.\n */\n async addItems(\n reportId: string,\n items: CreateMexReportItemInput[]\n ): Promise<{ added: number; items: MexReportItem[] }> {\n const validated = this.validate(\n z.array(createMexReportItemInputSchema),\n items\n );\n const nestedItems = validated.map((i) => this.transformItemToNested(i));\n\n const response = await this.execute(() =>\n this.trpc.reports.addItems.mutate({ reportId, items: nestedItems })\n );\n\n return {\n added: response.added,\n items: response.items.map((i) => this.instantiateItem(i)),\n };\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Validation\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Validates a Mexico report.\n *\n * Uses Mexico-scoped validation input (jurisdiction is implicit).\n *\n * @example\n * ```typescript\n * const result = await mexSdk.reports.validateReport({\n * reportId: report.id,\n * actividadVulnerable: \"AVI\",\n * defaults: {\n * rfc: \"ABC200101XXX\",\n * platformDomain: \"https://example.com\",\n * },\n * });\n * ```\n */\n async validateReport(\n input: MexValidateReportInput\n ): Promise<ValidationResult> {\n const validated = this.validate(mexValidateReportInputSchema, input);\n return this.execute(() => this.trpc.reports.validate.mutate(validated));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Generation\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Generates XML for a Mexico report.\n *\n * Uses the same input as validateReport since generation requires\n * the same transformation and defaults.\n *\n * @example\n * ```typescript\n * const result = await mexSdk.reports.generateReport({\n * reportId: report.id,\n * actividadVulnerable: \"AVI\",\n * defaults: {\n * rfc: \"ABC200101XXX\",\n * platformDomain: \"https://example.com\",\n * },\n * });\n * console.log(result.xml);\n * ```\n */\n async generateReport(input: MexValidateReportInput): Promise<GenerateResult> {\n const validated = this.validate(mexValidateReportInputSchema, input);\n return this.execute(() => this.trpc.reports.generate.mutate(validated));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Submission\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Submits a validated Mexico report.\n *\n * The report must be in \"valid\" status. After submission, the report\n * is locked and cannot be edited (except rejected reports which can\n * be edited and resubmitted).\n *\n * @param reportId - The report ID\n * @param actividadVulnerable - The activity type (AVI, JYS, or TSC)\n * @param data - Optional submission data (acuseRecibo, notes)\n *\n * @example\n * ```typescript\n * const result = await mexSdk.reports.submitReport(\n * report.id,\n * \"AVI\",\n * { acuseRecibo: \"SAT-12345\", notes: \"Submitted via portal\" }\n * );\n * ```\n */\n async submit(input: MexSubmitReportInput): Promise<SubmissionResult> {\n const validated = this.validate(mexSubmitReportInputSchema, input);\n\n const jurisdictions = {\n MX: {\n actividadVulnerable: validated.actividadVulnerable,\n },\n };\n\n return this.execute(() =>\n this.trpc.reports.submit.mutate({\n reportId: validated.reportId,\n jurisdictions,\n })\n );\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Applies Mexico jurisdiction filter.\n * Uses `jurisdictions.has` to find any report that includes Mexico.\n */\n protected applyScopeToFilter(filter?: ReportFilter): ReportFilter {\n return {\n ...filter,\n jurisdictions: {\n ...filter?.jurisdictions,\n has: Jurisdiction.Mexico,\n },\n };\n }\n\n /**\n * Transforms flattened MX input to nested API format.\n */\n protected transformToNested(data: CreateMexReportInput): CreateReportInput {\n const { actividadVulnerable, ...baseFields } = data;\n\n // Build MX jurisdiction data\n const mexData: Record<string, unknown> = {};\n if (actividadVulnerable !== undefined) {\n mexData.actividadVulnerable = actividadVulnerable;\n }\n\n return {\n ...baseFields,\n jurisdictions:\n Object.keys(mexData).length > 0\n ? {\n MX: mexData,\n }\n : undefined,\n } as CreateReportInput;\n }\n\n /**\n * Transforms flattened MX update input to nested API format.\n */\n protected transformUpdateToNested(\n data: UpdateMexReportInput\n ): UpdateReportInput {\n const { actividadVulnerable, ...baseFields } = data;\n\n if (actividadVulnerable === undefined) {\n return baseFields as UpdateReportInput;\n }\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: { actividadVulnerable },\n },\n } as UpdateReportInput;\n }\n\n /**\n * Instantiates a MexReport model.\n */\n protected override instantiate(data: ReportData): MexReport {\n return new MexReport(data);\n }\n\n /**\n * Instantiates a MexReportItem model.\n */\n protected override instantiateItem(data: ReportItemData): MexReportItem {\n return new MexReportItem(data);\n }\n\n /**\n * Transforms flattened MX report item input to nested API format.\n */\n protected transformItemToNested(\n data: CreateMexReportItemInput\n ): CreateReportItemInput {\n const { actividadVulnerable, ...baseFields } = data;\n\n if (actividadVulnerable === undefined) {\n return baseFields as CreateReportItemInput;\n }\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: { actividadVulnerable },\n },\n } as CreateReportItemInput;\n }\n\n /**\n * Transforms flattened MX report item update input to nested API format.\n */\n protected transformItemUpdateToNested(\n data: UpdateMexReportItemInput\n ): UpdateReportItemInput {\n const { actividadVulnerable, ...baseFields } = data;\n\n if (actividadVulnerable === undefined) {\n return baseFields as UpdateReportItemInput;\n }\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: { actividadVulnerable },\n },\n } as UpdateReportItemInput;\n }\n}\n","/**\n * AVI (Activos Virtuales) Clients Resource\n *\n * Extends MexClientsResource with AVI-specific behavior:\n * - Accepts flattened CreateAVIClientInput (AVI fields at root level)\n * - Returns MexAVIClient models\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateClientInput,\n UpdateClientInput,\n ClientFilter,\n ListOptions,\n PaginatedResponse,\n CreateAVIClientInput,\n UpdateAVIClientInput,\n CreateMexClientInput,\n UpdateMexClientInput,\n AtomicBatchResult,\n PartialBatchResult,\n} from \"@artu-ai/shared\";\nimport {\n CodigoActividad,\n createAVIClientInputSchema,\n updateAVIClientInputSchema,\n} from \"@artu-ai/shared\";\nimport { MexClientsResource } from \"../../clients\";\nimport { type BatchOptions } from \"../../../clients\";\nimport { MexAVIClient, type ClientData } from \"../../../../models\";\n\n// ===========================\n// AVIClientsResource\n// ===========================\n\n/**\n * AVI (Activos Virtuales) scoped clients resource.\n *\n * Provides the same operations as MexClientsResource but with:\n * - Flattened input types (AVI fields at root level)\n * - MexAVIClient model return type\n *\n * @example\n * ```typescript\n * const aviSdk = new ComplianceSDK({\n * apiKey,\n * environment: \"test\",\n * jurisdiction: Jurisdiction.Mexico,\n * actividadVulnerable: CodigoActividad.AVI,\n * });\n *\n * // Create with fully flattened input\n * const client = await aviSdk.clients.create({\n * type: ClientType.Person,\n * name: \"Juan García\",\n * rfc: \"GAJL850101ABC\", // MX field\n * username: \"JGARCIA\", // AVI field at root!\n * });\n *\n * // Returns MexAVIClient\n * console.log(client.username);\n * ```\n */\nexport class AVIClientsResource extends MexClientsResource {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates a new AVI client with fully flattened input.\n */\n async create(data: CreateAVIClientInput): Promise<MexAVIClient> {\n const validated = this.validate(createAVIClientInputSchema, data);\n const nestedData = this.transformToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.clients.create.mutate(nestedData)\n );\n\n return this.instantiate(response);\n }\n\n /**\n * Retrieves a client by ID.\n */\n async retrieve(id: string): Promise<MexAVIClient> {\n const response = await this.execute(() =>\n this.trpc.clients.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n /**\n * Retrieves an AVI client by externalId.\n */\n async retrieveByExternalId(externalId: string): Promise<MexAVIClient> {\n const response = await this.execute(() =>\n this.trpc.clients.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n /**\n * Updates an AVI client with flattened input.\n */\n async update(id: string, data: UpdateAVIClientInput): Promise<MexAVIClient> {\n const validated = this.validate(updateAVIClientInputSchema, data);\n const nestedData = this.transformUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.clients.update.mutate({ id, data: nestedData })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Lists AVI clients.\n */\n async list(\n options?: ListOptions<ClientFilter>\n ): Promise<PaginatedResponse<MexAVIClient>> {\n const scopedFilter = this.applyScopeToFilter(options?.filter);\n\n const response = await this.execute(() =>\n this.trpc.clients.list.query({\n ...options,\n filter: scopedFilter,\n })\n );\n\n return {\n data: response.data.map((c) => this.instantiate(c)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Iterates over AVI clients.\n */\n iterate(\n filter?: ClientFilter\n ): AsyncGenerator<MexAVIClient, void, undefined> {\n const scopedFilter = this.applyScopeToFilter(filter);\n return this.createIterator<MexAVIClient>({ filter: scopedFilter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates multiple AVI clients with flattened input.\n */\n async createMany(\n clients: CreateAVIClientInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexAVIClient>>;\n async createMany(\n clients: CreateAVIClientInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexAVIClient>>;\n async createMany(\n clients: CreateAVIClientInput[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexAVIClient> | PartialBatchResult<MexAVIClient>\n > {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createAVIClientInputSchema),\n clients\n );\n const nestedClients = validated.map((c) => this.transformToNested(c));\n\n const response = await this.execute(() =>\n this.trpc.clients.createMany.mutate({ items: nestedClients, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((c) => this.instantiate(c)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n /**\n * Updates multiple AVI clients.\n */\n async updateMany(\n updates: { id: string; data: UpdateAVIClientInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexAVIClient>>;\n async updateMany(\n updates: { id: string; data: UpdateAVIClientInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexAVIClient>>;\n async updateMany(\n updates: { id: string; data: UpdateAVIClientInput }[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexAVIClient> | PartialBatchResult<MexAVIClient>\n > {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateAVIClientInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n const nestedUpdates = validated.map((u) => ({\n id: u.id,\n data: this.transformUpdateToNested(u.data),\n }));\n\n const response = await this.execute(() =>\n this.trpc.clients.updateMany.mutate({ items: nestedUpdates, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((c) => this.instantiate(c)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Transforms flattened AVI input to nested API format.\n */\n protected override transformToNested(\n data: CreateAVIClientInput\n ): CreateClientInput {\n // Extract AVI-specific field first\n const { username, ...restData } = data as Record<string, unknown>;\n\n // Use parent for base + MX fields\n const nested = super.transformToNested(\n restData as unknown as CreateMexClientInput\n );\n\n // Add AVI activity data (parent always provides jurisdictions.MX)\n const mexData = nested.jurisdictions?.MX;\n\n return {\n ...nested,\n jurisdictions: {\n MX: {\n ...mexData,\n actividadVulnerable: {\n [CodigoActividad.AVI]: { username },\n },\n },\n },\n } as CreateClientInput;\n }\n\n /**\n * Transforms flattened AVI update input to nested API format.\n */\n protected override transformUpdateToNested(\n data: UpdateAVIClientInput\n ): UpdateClientInput {\n // Extract AVI-specific field first\n const { username, ...restData } = data as Record<string, unknown>;\n\n // Use parent for base + MX fields\n const nested = super.transformUpdateToNested(\n restData as unknown as UpdateMexClientInput\n );\n\n // Only add AVI data if username is provided\n if (username !== undefined) {\n const mexData = ((nested.jurisdictions?.MX as Record<string, unknown>) ??\n {}) as Record<string, unknown>;\n mexData.actividadVulnerable = {\n [CodigoActividad.AVI]: { username },\n };\n\n return {\n ...nested,\n jurisdictions: { MX: mexData },\n } as UpdateClientInput;\n }\n\n return nested;\n }\n\n /**\n * Instantiates a MexAVIClient model.\n */\n protected override instantiate(data: ClientData): MexAVIClient {\n return new MexAVIClient(data);\n }\n}\n","/**\n * AVI (Activos Virtuales) Transactions Resource\n *\n * Extends MexTransactionsResource with AVI-specific behavior:\n * - Accepts flattened CreateAVITransactionInput (AVI fields at root level)\n * - Returns MexAVITransaction models\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateTransactionInput,\n UpdateTransactionInput,\n TransactionFilter,\n ListOptions,\n PaginatedResponse,\n CreateAVITransactionInput,\n UpdateAVITransactionInput,\n AtomicBatchResult,\n PartialBatchResult,\n} from \"@artu-ai/shared\";\nimport {\n Jurisdiction,\n CodigoActividad,\n createAVITransactionInputSchema,\n updateAVITransactionInputSchema,\n} from \"@artu-ai/shared\";\nimport { MexTransactionsResource } from \"../../transactions\";\nimport { type BatchOptions } from \"../../../clients\";\nimport { MexAVITransaction, type TransactionData } from \"../../../../models\";\n\n// ===========================\n// AVITransactionsResource\n// ===========================\n\n/**\n * AVI (Activos Virtuales) scoped transactions resource.\n *\n * @example\n * ```typescript\n * const aviSdk = new ComplianceSDK({\n * apiKey,\n * jurisdiction: Jurisdiction.Mexico,\n * actividadVulnerable: CodigoActividad.AVI,\n * });\n *\n * // Create with fully flattened input\n * const txn = await aviSdk.transactions.create({\n * amount: 50000,\n * currency: \"MXN\",\n * timestamp: new Date(),\n * operationType: \"buy\",\n * crypto: \"BTC\",\n * hash: \"ABC123DEF456\",\n * });\n *\n * // Returns MexAVITransaction\n * console.log(txn.operationType);\n * ```\n */\nexport class AVITransactionsResource extends MexTransactionsResource {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations\n // ─────────────────────────────────────────────────────────────────\n\n async create(data: CreateAVITransactionInput): Promise<MexAVITransaction> {\n const validated = this.validate(createAVITransactionInputSchema, data);\n const nestedData = this.transformToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.transactions.create.mutate(nestedData)\n );\n\n return this.instantiate(response);\n }\n\n async retrieve(id: string): Promise<MexAVITransaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n async retrieveByMetadata(\n key: string,\n value: string\n ): Promise<MexAVITransaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n async update(\n id: string,\n data: UpdateAVITransactionInput\n ): Promise<MexAVITransaction> {\n const validated = this.validate(updateAVITransactionInputSchema, data);\n const nestedData = this.transformUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.transactions.update.mutate({ id, data: nestedData })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination\n // ─────────────────────────────────────────────────────────────────\n\n async list(\n options?: ListOptions<TransactionFilter>\n ): Promise<PaginatedResponse<MexAVITransaction>> {\n const scopedFilter = this.applyScopeToFilter(options?.filter);\n\n const response = await this.execute(() =>\n this.trpc.transactions.list.query({\n ...options,\n filter: scopedFilter,\n })\n );\n\n return {\n data: response.data.map((t) => this.instantiate(t)),\n pagination: response.pagination,\n };\n }\n\n iterate(\n filter?: TransactionFilter\n ): AsyncGenerator<MexAVITransaction, void, undefined> {\n const scopedFilter = this.applyScopeToFilter(filter);\n return this.createIterator<MexAVITransaction>({ filter: scopedFilter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n async createMany(\n transactions: CreateAVITransactionInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexAVITransaction>>;\n async createMany(\n transactions: CreateAVITransactionInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexAVITransaction>>;\n async createMany(\n transactions: CreateAVITransactionInput[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexAVITransaction> | PartialBatchResult<MexAVITransaction>\n > {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createAVITransactionInputSchema),\n transactions\n );\n const nestedItems = validated.map((t) => this.transformToNested(t));\n\n const response = await this.execute(() =>\n this.trpc.transactions.createMany.mutate({ items: nestedItems, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((t) => this.instantiate(t)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n async updateMany(\n updates: { id: string; data: UpdateAVITransactionInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexAVITransaction>>;\n async updateMany(\n updates: { id: string; data: UpdateAVITransactionInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexAVITransaction>>;\n async updateMany(\n updates: { id: string; data: UpdateAVITransactionInput }[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexAVITransaction> | PartialBatchResult<MexAVITransaction>\n > {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateAVITransactionInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n const nestedUpdates = validated.map((u) => ({\n id: u.id,\n data: this.transformUpdateToNested(u.data),\n }));\n\n const response = await this.execute(() =>\n this.trpc.transactions.updateMany.mutate({ items: nestedUpdates, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((t) => this.instantiate(t)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Helpers\n // ─────────────────────────────────────────────────────────────────\n\n protected override transformToNested(\n data: CreateAVITransactionInput\n ): CreateTransactionInput {\n // Extract AVI-specific fields based on operation type\n const {\n amount,\n currency,\n timestamp,\n relatedClientIds,\n description,\n externalId,\n metadata,\n ...aviFields\n } = data as Record<string, unknown>;\n\n // Build base fields (relatedClientIds is required)\n const baseFields: Record<string, unknown> = {\n amount,\n currency,\n timestamp,\n relatedClientIds,\n };\n if (description !== undefined) baseFields.description = description;\n if (externalId !== undefined) baseFields.externalId = externalId;\n if (metadata !== undefined) baseFields.metadata = metadata;\n\n return {\n ...baseFields,\n primaryJurisdiction: Jurisdiction.Mexico,\n jurisdictions: {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.AVI]: aviFields,\n },\n },\n },\n } as CreateTransactionInput;\n }\n\n protected override transformUpdateToNested(\n data: UpdateAVITransactionInput\n ): UpdateTransactionInput {\n // Update only allows base fields for AVI transactions\n return data as UpdateTransactionInput;\n }\n\n protected override instantiate(data: TransactionData): MexAVITransaction {\n return new MexAVITransaction(data);\n }\n}\n","/**\n * AVI (Activos Virtuales) Reports Resource\n *\n * Extends MexReportsResource with AVI-specific behavior:\n * - Accepts flattened CreateAVIReportInput (AVI fields at root level)\n * - Returns MexAVIReport models\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateReportInput,\n UpdateReportInput,\n CreateReportItemInput,\n UpdateReportItemInput,\n CreateAVIReportInput,\n UpdateAVIReportInput,\n CreateAVIReportItemInput,\n UpdateAVIReportItemInput,\n ListOptions,\n PaginatedResponse,\n AtomicBatchResult,\n PartialBatchResult,\n ValidationResult,\n GenerateResult,\n SubmissionResult,\n MexAVIValidateInput,\n SubmitAVIReportInput,\n} from \"@artu-ai/shared\";\nimport {\n CodigoActividad,\n createAVIReportInputSchema,\n updateAVIReportInputSchema,\n createAVIReportItemInputSchema,\n updateAVIReportItemInputSchema,\n mexAviValidateInputSchema,\n submitAVIReportInputSchema,\n} from \"@artu-ai/shared\";\nimport { MexReportsResource } from \"../../reports\";\nimport { type ReportFilter, type ReportItemFilter } from \"../../../reports\";\nimport { type BatchOptions } from \"../../../clients\";\nimport {\n MexAVIReport,\n MexAVIReportItem,\n type ReportData,\n type ReportItemData,\n} from \"../../../../models\";\n\n// ===========================\n// AVIReportsResource\n// ===========================\n\n/**\n * AVI (Activos Virtuales) scoped reports resource.\n *\n * @example\n * ```typescript\n * const aviSdk = new ComplianceSDK({\n * apiKey,\n * jurisdiction: Jurisdiction.Mexico,\n * actividadVulnerable: CodigoActividad.AVI,\n * });\n *\n * // Create with fully flattened input\n * const report = await aviSdk.reports.create({\n * mesReportado: \"202401\",\n * });\n *\n * // Returns MexAVIReport\n * console.log(report.mesReportado);\n * ```\n */\nexport class AVIReportsResource extends MexReportsResource {\n // ─────────────────────────────────────────────────────────────────\n // Report CRUD\n // ─────────────────────────────────────────────────────────────────\n\n async create(data: CreateAVIReportInput): Promise<MexAVIReport> {\n const validated = this.validate(createAVIReportInputSchema, data);\n const nestedData = this.transformToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.create.mutate(nestedData)\n );\n\n return this.instantiate(response);\n }\n\n async retrieve(id: string): Promise<MexAVIReport> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n async retrieveByMetadata(key: string, value: string): Promise<MexAVIReport> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n async retrieveByExternalId(externalId: string): Promise<MexAVIReport> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n async update(id: string, data: UpdateAVIReportInput): Promise<MexAVIReport> {\n const validated = this.validate(updateAVIReportInputSchema, data);\n const nestedData = this.transformUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.update.mutate({ id, data: nestedData })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination\n // ─────────────────────────────────────────────────────────────────\n\n async list(\n options?: ListOptions<ReportFilter>\n ): Promise<PaginatedResponse<MexAVIReport>> {\n const response = await this.execute(() =>\n this.trpc.reports.list.query(options)\n );\n\n return {\n data: response.data.map((r) => this.instantiate(r)),\n pagination: response.pagination,\n };\n }\n\n iterate(\n filter?: ReportFilter\n ): AsyncGenerator<MexAVIReport, void, undefined> {\n return this.createIterator<MexAVIReport>({ filter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n async createMany(\n reports: CreateAVIReportInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexAVIReport>>;\n async createMany(\n reports: CreateAVIReportInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexAVIReport>>;\n async createMany(\n reports: CreateAVIReportInput[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexAVIReport> | PartialBatchResult<MexAVIReport>\n > {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createAVIReportInputSchema),\n reports\n );\n const nestedItems = validated.map((r) => this.transformToNested(r));\n\n const response = await this.execute(() =>\n this.trpc.reports.createMany.mutate({ items: nestedItems, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((r) => this.instantiate(r)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n async updateMany(\n updates: { id: string; data: UpdateAVIReportInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexAVIReport>>;\n async updateMany(\n updates: { id: string; data: UpdateAVIReportInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexAVIReport>>;\n async updateMany(\n updates: { id: string; data: UpdateAVIReportInput }[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexAVIReport> | PartialBatchResult<MexAVIReport>\n > {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateAVIReportInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n const nestedUpdates = validated.map((u) => ({\n id: u.id,\n data: this.transformUpdateToNested(u.data),\n }));\n\n const response = await this.execute(() =>\n this.trpc.reports.updateMany.mutate({ items: nestedUpdates, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((r) => this.instantiate(r)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Report Items\n // ─────────────────────────────────────────────────────────────────\n\n async addItem(\n reportId: string,\n data: CreateAVIReportItemInput\n ): Promise<MexAVIReportItem> {\n const validated = this.validate(createAVIReportItemInputSchema, data);\n const nestedData = this.transformItemToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.addItem.mutate({ reportId, data: nestedData })\n );\n\n return this.instantiateItem(response);\n }\n\n async getItem(reportId: string, itemId: string): Promise<MexAVIReportItem> {\n const response = await this.execute(() =>\n this.trpc.reports.getItem.query({ reportId, itemId })\n );\n return this.instantiateItem(response);\n }\n\n async updateItem(\n reportId: string,\n itemId: string,\n data: UpdateAVIReportItemInput\n ): Promise<MexAVIReportItem> {\n const validated = this.validate(updateAVIReportItemInputSchema, data);\n const nestedData = this.transformItemUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.updateItem.mutate({\n reportId,\n itemId,\n data: nestedData,\n })\n );\n return this.instantiateItem(response);\n }\n\n async listItems(\n reportId: string,\n options?: ListOptions<ReportItemFilter>\n ): Promise<PaginatedResponse<MexAVIReportItem>> {\n const response = await this.execute(() =>\n this.trpc.reports.listItems.query({\n reportId,\n ...options,\n })\n );\n\n return {\n data: response.data.map((i) => this.instantiateItem(i)),\n pagination: response.pagination,\n };\n }\n\n async addItems(\n reportId: string,\n items: CreateAVIReportItemInput[]\n ): Promise<{ added: number; items: MexAVIReportItem[] }> {\n const validated = this.validate(\n z.array(createAVIReportItemInputSchema),\n items\n );\n const nestedItems = validated.map((i) => this.transformItemToNested(i));\n\n const response = await this.execute(() =>\n this.trpc.reports.addItems.mutate({ reportId, items: nestedItems })\n );\n\n return {\n added: response.added,\n items: response.items.map((i) => this.instantiateItem(i)),\n };\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Validation\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Validates an AVI report.\n *\n * Uses AVI-scoped validation input (jurisdiction and activity default automatically).\n *\n * @example\n * ```typescript\n * const result = await aviSdk.reports.validateReport({\n * reportId: report.id,\n * defaults: {\n * rfc: \"ABC200101XXX\",\n * platformDomain: \"https://example.com\",\n * },\n * });\n * ```\n */\n override async validateReport(\n input: MexAVIValidateInput\n ): Promise<ValidationResult> {\n const validated = this.validate(mexAviValidateInputSchema, input);\n return this.execute(() => this.trpc.reports.validate.mutate(validated));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Generation\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Generates XML for an AVI report.\n *\n * Uses the same input as validateReport.\n *\n * @example\n * ```typescript\n * const result = await aviSdk.reports.generateReport({\n * reportId: report.id,\n * defaults: {\n * rfc: \"ABC200101XXX\",\n * platformDomain: \"https://example.com\",\n * },\n * });\n * console.log(result.xml);\n * ```\n */\n override async generateReport(\n input: MexAVIValidateInput\n ): Promise<GenerateResult> {\n const validated = this.validate(mexAviValidateInputSchema, input);\n return this.execute(() => this.trpc.reports.generate.mutate(validated));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Submission\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Submits a validated AVI report.\n *\n * Uses AVI-scoped submission input (activity is implicit).\n *\n * @example\n * ```typescript\n * const result = await aviSdk.reports.submit({\n * reportId: report.id,\n * acuseRecibo: \"SAT-12345\",\n * notes: \"Submitted via portal\",\n * });\n * ```\n */\n override async submit(\n input: SubmitAVIReportInput\n ): Promise<SubmissionResult> {\n const validated = this.validate(submitAVIReportInputSchema, input);\n\n const jurisdictions = {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.AVI]: {\n acuseRecibo: validated.acuseRecibo,\n notes: validated.notes,\n },\n },\n },\n };\n\n return this.execute(() =>\n this.trpc.reports.submit.mutate({\n reportId: validated.reportId,\n jurisdictions,\n })\n );\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Helpers\n // ─────────────────────────────────────────────────────────────────\n\n protected override transformToNested(\n data: CreateAVIReportInput\n ): CreateReportInput {\n const { mesReportado, ...baseFields } = data;\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.AVI]: { mesReportado },\n },\n },\n },\n } as CreateReportInput;\n }\n\n protected override transformUpdateToNested(\n data: UpdateAVIReportInput\n ): UpdateReportInput {\n return data as UpdateReportInput;\n }\n\n protected override instantiate(data: ReportData): MexAVIReport {\n return new MexAVIReport(data);\n }\n\n protected override instantiateItem(data: ReportItemData): MexAVIReportItem {\n return new MexAVIReportItem(data);\n }\n\n protected transformItemToNested(\n data: CreateAVIReportItemInput\n ): CreateReportItemInput {\n const { alertType, alertDescription, amendment, ...baseFields } = data;\n\n const aviData: Record<string, unknown> = {};\n if (alertType !== undefined) aviData.alertType = alertType;\n if (alertDescription !== undefined)\n aviData.alertDescription = alertDescription;\n if (amendment !== undefined) aviData.amendment = amendment;\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.AVI]: aviData,\n },\n },\n },\n } as CreateReportItemInput;\n }\n\n protected transformItemUpdateToNested(\n data: UpdateAVIReportItemInput\n ): UpdateReportItemInput {\n const { alertType, alertDescription, amendment, ...baseFields } = data;\n\n const aviData: Record<string, unknown> = {};\n if (alertType !== undefined) aviData.alertType = alertType;\n if (alertDescription !== undefined)\n aviData.alertDescription = alertDescription;\n if (amendment !== undefined) aviData.amendment = amendment;\n\n if (Object.keys(aviData).length === 0) {\n return baseFields as UpdateReportItemInput;\n }\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.AVI]: aviData,\n },\n },\n },\n } as UpdateReportItemInput;\n }\n}\n","/**\n * JYS (Juegos y Sorteos) Clients Resource\n *\n * Extends MexClientsResource with JYS-specific behavior.\n * JYS clients have the same fields as Mexico clients (no additional activity fields).\n * Returns MexJYSClient models.\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateClientInput,\n UpdateClientInput,\n ClientFilter,\n ListOptions,\n PaginatedResponse,\n CreateJYSClientInput,\n UpdateJYSClientInput,\n CreateMexClientInput,\n UpdateMexClientInput,\n AtomicBatchResult,\n PartialBatchResult,\n} from \"@artu-ai/shared\";\nimport {\n CodigoActividad,\n createJYSClientInputSchema,\n updateJYSClientInputSchema,\n} from \"@artu-ai/shared\";\nimport { MexClientsResource } from \"../../clients\";\nimport { type BatchOptions } from \"../../../clients\";\nimport { MexJYSClient, type ClientData } from \"../../../../models\";\n\n// ===========================\n// JYSClientsResource\n// ===========================\n\n/**\n * JYS (Juegos y Sorteos) scoped clients resource.\n *\n * @example\n * ```typescript\n * const jysSdk = new ComplianceSDK({\n * apiKey,\n * environment: \"test\",\n * jurisdiction: Jurisdiction.Mexico,\n * actividadVulnerable: CodigoActividad.JYS,\n * });\n *\n * const client = await jysSdk.clients.create({\n * type: ClientType.Person,\n * name: \"Juan García\",\n * rfc: \"GAJL850101ABC\",\n * });\n *\n * // Returns MexJYSClient\n * ```\n */\nexport class JYSClientsResource extends MexClientsResource {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations\n // ─────────────────────────────────────────────────────────────────\n\n async create(data: CreateJYSClientInput): Promise<MexJYSClient> {\n const validated = this.validate(createJYSClientInputSchema, data);\n const nestedData = this.transformToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.clients.create.mutate(nestedData)\n );\n\n return this.instantiate(response);\n }\n\n async retrieve(id: string): Promise<MexJYSClient> {\n const response = await this.execute(() =>\n this.trpc.clients.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n async retrieveByExternalId(externalId: string): Promise<MexJYSClient> {\n const response = await this.execute(() =>\n this.trpc.clients.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n async update(id: string, data: UpdateJYSClientInput): Promise<MexJYSClient> {\n const validated = this.validate(updateJYSClientInputSchema, data);\n const nestedData = this.transformUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.clients.update.mutate({ id, data: nestedData })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination\n // ─────────────────────────────────────────────────────────────────\n\n async list(\n options?: ListOptions<ClientFilter>\n ): Promise<PaginatedResponse<MexJYSClient>> {\n const scopedFilter = this.applyScopeToFilter(options?.filter);\n\n const response = await this.execute(() =>\n this.trpc.clients.list.query({\n ...options,\n filter: scopedFilter,\n })\n );\n\n return {\n data: response.data.map((c) => this.instantiate(c)),\n pagination: response.pagination,\n };\n }\n\n iterate(\n filter?: ClientFilter\n ): AsyncGenerator<MexJYSClient, void, undefined> {\n const scopedFilter = this.applyScopeToFilter(filter);\n return this.createIterator<MexJYSClient>({ filter: scopedFilter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n async createMany(\n clients: CreateJYSClientInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexJYSClient>>;\n async createMany(\n clients: CreateJYSClientInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexJYSClient>>;\n async createMany(\n clients: CreateJYSClientInput[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexJYSClient> | PartialBatchResult<MexJYSClient>\n > {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createJYSClientInputSchema),\n clients\n );\n const nestedClients = validated.map((c) => this.transformToNested(c));\n\n const response = await this.execute(() =>\n this.trpc.clients.createMany.mutate({ items: nestedClients, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((c) => this.instantiate(c)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n async updateMany(\n updates: { id: string; data: UpdateJYSClientInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexJYSClient>>;\n async updateMany(\n updates: { id: string; data: UpdateJYSClientInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexJYSClient>>;\n async updateMany(\n updates: { id: string; data: UpdateJYSClientInput }[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexJYSClient> | PartialBatchResult<MexJYSClient>\n > {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateJYSClientInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n const nestedUpdates = validated.map((u) => ({\n id: u.id,\n data: this.transformUpdateToNested(u.data),\n }));\n\n const response = await this.execute(() =>\n this.trpc.clients.updateMany.mutate({ items: nestedUpdates, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((c) => this.instantiate(c)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Transforms JYS input to nested API format.\n * JYS has no additional fields, but we add the JYS activity marker.\n */\n protected override transformToNested(\n data: CreateJYSClientInput\n ): CreateClientInput {\n // Use parent transform for base + MX fields (cast needed for discriminated union)\n const nested = super.transformToNested(\n data as unknown as CreateMexClientInput\n );\n\n // Add JYS activity marker (parent always provides jurisdictions.MX)\n const mexData = nested.jurisdictions?.MX;\n\n return {\n ...nested,\n jurisdictions: {\n MX: {\n ...mexData,\n actividadVulnerable: {\n [CodigoActividad.JYS]: {},\n },\n },\n },\n } as CreateClientInput;\n }\n\n protected override transformUpdateToNested(\n data: UpdateJYSClientInput\n ): UpdateClientInput {\n return super.transformUpdateToNested(\n data as unknown as UpdateMexClientInput\n );\n }\n\n protected override instantiate(data: ClientData): MexJYSClient {\n return new MexJYSClient(data);\n }\n}\n","/**\n * JYS (Juegos y Sorteos) Transactions Resource\n *\n * Extends MexTransactionsResource with JYS-specific behavior:\n * - Accepts flattened CreateJYSTransactionInput (JYS fields at root level)\n * - Returns MexJYSTransaction models\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateTransactionInput,\n UpdateTransactionInput,\n TransactionFilter,\n ListOptions,\n PaginatedResponse,\n CreateJYSTransactionInput,\n UpdateJYSTransactionInput,\n AtomicBatchResult,\n PartialBatchResult,\n} from \"@artu-ai/shared\";\nimport {\n Jurisdiction,\n CodigoActividad,\n createJYSTransactionInputSchema,\n updateJYSTransactionInputSchema,\n} from \"@artu-ai/shared\";\nimport { MexTransactionsResource } from \"../../transactions\";\nimport { type BatchOptions } from \"../../../clients\";\nimport { MexJYSTransaction, type TransactionData } from \"../../../../models\";\n\n// ===========================\n// JYSTransactionsResource\n// ===========================\n\n/**\n * JYS (Juegos y Sorteos) scoped transactions resource.\n *\n * @example\n * ```typescript\n * const jysSdk = new ComplianceSDK({\n * apiKey,\n * jurisdiction: Jurisdiction.Mexico,\n * actividadVulnerable: CodigoActividad.JYS,\n * });\n *\n * // Create with fully flattened input\n * const txn = await jysSdk.transactions.create({\n * amount: 100000,\n * currency: \"MXN\",\n * timestamp: new Date(),\n * branchInformation: { type: \"own\", postalCode: \"06600\" },\n * operationType: \"bet\",\n * businessLine: \"casino\",\n * operationMethod: \"inPerson\",\n * settlementType: \"cash\",\n * monetaryInstrument: \"cash\",\n * });\n *\n * // Returns MexJYSTransaction\n * console.log(txn.settlementType);\n * ```\n */\nexport class JYSTransactionsResource extends MexTransactionsResource {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations\n // ─────────────────────────────────────────────────────────────────\n\n async create(data: CreateJYSTransactionInput): Promise<MexJYSTransaction> {\n const validated = this.validate(createJYSTransactionInputSchema, data);\n const nestedData = this.transformToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.transactions.create.mutate(nestedData)\n );\n\n return this.instantiate(response);\n }\n\n async retrieve(id: string): Promise<MexJYSTransaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n async retrieveByMetadata(\n key: string,\n value: string\n ): Promise<MexJYSTransaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n async update(\n id: string,\n data: UpdateJYSTransactionInput\n ): Promise<MexJYSTransaction> {\n const validated = this.validate(updateJYSTransactionInputSchema, data);\n const nestedData = this.transformUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.transactions.update.mutate({ id, data: nestedData })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination\n // ─────────────────────────────────────────────────────────────────\n\n async list(\n options?: ListOptions<TransactionFilter>\n ): Promise<PaginatedResponse<MexJYSTransaction>> {\n const scopedFilter = this.applyScopeToFilter(options?.filter);\n\n const response = await this.execute(() =>\n this.trpc.transactions.list.query({\n ...options,\n filter: scopedFilter,\n })\n );\n\n return {\n data: response.data.map((t) => this.instantiate(t)),\n pagination: response.pagination,\n };\n }\n\n iterate(\n filter?: TransactionFilter\n ): AsyncGenerator<MexJYSTransaction, void, undefined> {\n const scopedFilter = this.applyScopeToFilter(filter);\n return this.createIterator<MexJYSTransaction>({ filter: scopedFilter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n async createMany(\n transactions: CreateJYSTransactionInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexJYSTransaction>>;\n async createMany(\n transactions: CreateJYSTransactionInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexJYSTransaction>>;\n async createMany(\n transactions: CreateJYSTransactionInput[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexJYSTransaction> | PartialBatchResult<MexJYSTransaction>\n > {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createJYSTransactionInputSchema),\n transactions\n );\n const nestedItems = validated.map((t) => this.transformToNested(t));\n\n const response = await this.execute(() =>\n this.trpc.transactions.createMany.mutate({ items: nestedItems, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((t) => this.instantiate(t)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n async updateMany(\n updates: { id: string; data: UpdateJYSTransactionInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexJYSTransaction>>;\n async updateMany(\n updates: { id: string; data: UpdateJYSTransactionInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexJYSTransaction>>;\n async updateMany(\n updates: { id: string; data: UpdateJYSTransactionInput }[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexJYSTransaction> | PartialBatchResult<MexJYSTransaction>\n > {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateJYSTransactionInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n const nestedUpdates = validated.map((u) => ({\n id: u.id,\n data: this.transformUpdateToNested(u.data),\n }));\n\n const response = await this.execute(() =>\n this.trpc.transactions.updateMany.mutate({ items: nestedUpdates, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((t) => this.instantiate(t)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Helpers\n // ─────────────────────────────────────────────────────────────────\n\n protected override transformToNested(\n data: CreateJYSTransactionInput\n ): CreateTransactionInput {\n const {\n amount,\n currency,\n timestamp,\n relatedClientIds,\n description,\n externalId,\n metadata,\n ...jysFields\n } = data as Record<string, unknown>;\n\n // Build base fields (relatedClientIds is required)\n const baseFields: Record<string, unknown> = {\n amount,\n currency,\n timestamp,\n relatedClientIds,\n };\n if (description !== undefined) baseFields.description = description;\n if (externalId !== undefined) baseFields.externalId = externalId;\n if (metadata !== undefined) baseFields.metadata = metadata;\n\n return {\n ...baseFields,\n primaryJurisdiction: Jurisdiction.Mexico,\n jurisdictions: {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.JYS]: jysFields,\n },\n },\n },\n } as CreateTransactionInput;\n }\n\n protected override transformUpdateToNested(\n data: UpdateJYSTransactionInput\n ): UpdateTransactionInput {\n return data as UpdateTransactionInput;\n }\n\n protected override instantiate(data: TransactionData): MexJYSTransaction {\n return new MexJYSTransaction(data);\n }\n}\n","/**\n * JYS (Juegos y Sorteos) Reports Resource\n *\n * Extends MexReportsResource with JYS-specific behavior:\n * - Accepts flattened CreateJYSReportInput (JYS fields at root level)\n * - Returns MexJYSReport models\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateReportInput,\n UpdateReportInput,\n CreateReportItemInput,\n UpdateReportItemInput,\n CreateJYSReportInput,\n UpdateJYSReportInput,\n CreateJYSReportItemInput,\n UpdateJYSReportItemInput,\n ListOptions,\n PaginatedResponse,\n AtomicBatchResult,\n PartialBatchResult,\n MexJYSValidateInput,\n ValidationResult,\n GenerateResult,\n SubmissionResult,\n SubmitJYSSubmissionInput,\n} from \"@artu-ai/shared\";\nimport {\n CodigoActividad,\n createJYSReportInputSchema,\n updateJYSReportInputSchema,\n createJYSReportItemInputSchema,\n updateJYSReportItemInputSchema,\n mexJysValidateInputSchema,\n submitJYSSubmissionInputSchema,\n} from \"@artu-ai/shared\";\nimport { MexReportsResource } from \"../../reports\";\nimport { type ReportFilter, type ReportItemFilter } from \"../../../reports\";\nimport { type BatchOptions } from \"../../../clients\";\nimport {\n MexJYSReport,\n MexJYSReportItem,\n type ReportData,\n type ReportItemData,\n} from \"../../../../models\";\n\n// ===========================\n// JYSReportsResource\n// ===========================\n\n/**\n * JYS (Juegos y Sorteos) scoped reports resource.\n *\n * @example\n * ```typescript\n * const jysSdk = new ComplianceSDK({\n * apiKey,\n * jurisdiction: Jurisdiction.Mexico,\n * actividadVulnerable: CodigoActividad.JYS,\n * });\n *\n * // Create with fully flattened input\n * const report = await jysSdk.reports.create({\n * mesReportado: \"202401\",\n * });\n *\n * // Returns MexJYSReport\n * console.log(report.mesReportado);\n * ```\n */\nexport class JYSReportsResource extends MexReportsResource {\n // ─────────────────────────────────────────────────────────────────\n // Report CRUD\n // ─────────────────────────────────────────────────────────────────\n\n async create(data: CreateJYSReportInput): Promise<MexJYSReport> {\n const validated = this.validate(createJYSReportInputSchema, data);\n const nestedData = this.transformToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.create.mutate(nestedData)\n );\n\n return this.instantiate(response);\n }\n\n async retrieve(id: string): Promise<MexJYSReport> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n async retrieveByMetadata(key: string, value: string): Promise<MexJYSReport> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n async retrieveByExternalId(externalId: string): Promise<MexJYSReport> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n async update(id: string, data: UpdateJYSReportInput): Promise<MexJYSReport> {\n const validated = this.validate(updateJYSReportInputSchema, data);\n const nestedData = this.transformUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.update.mutate({ id, data: nestedData })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination\n // ─────────────────────────────────────────────────────────────────\n\n async list(\n options?: ListOptions<ReportFilter>\n ): Promise<PaginatedResponse<MexJYSReport>> {\n const response = await this.execute(() =>\n this.trpc.reports.list.query(options)\n );\n\n return {\n data: response.data.map((r) => this.instantiate(r)),\n pagination: response.pagination,\n };\n }\n\n iterate(\n filter?: ReportFilter\n ): AsyncGenerator<MexJYSReport, void, undefined> {\n return this.createIterator<MexJYSReport>({ filter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n async createMany(\n reports: CreateJYSReportInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexJYSReport>>;\n async createMany(\n reports: CreateJYSReportInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexJYSReport>>;\n async createMany(\n reports: CreateJYSReportInput[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexJYSReport> | PartialBatchResult<MexJYSReport>\n > {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createJYSReportInputSchema),\n reports\n );\n const nestedItems = validated.map((r) => this.transformToNested(r));\n\n const response = await this.execute(() =>\n this.trpc.reports.createMany.mutate({ items: nestedItems, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((r) => this.instantiate(r)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n async updateMany(\n updates: { id: string; data: UpdateJYSReportInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexJYSReport>>;\n async updateMany(\n updates: { id: string; data: UpdateJYSReportInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexJYSReport>>;\n async updateMany(\n updates: { id: string; data: UpdateJYSReportInput }[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexJYSReport> | PartialBatchResult<MexJYSReport>\n > {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateJYSReportInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n const nestedUpdates = validated.map((u) => ({\n id: u.id,\n data: this.transformUpdateToNested(u.data),\n }));\n\n const response = await this.execute(() =>\n this.trpc.reports.updateMany.mutate({ items: nestedUpdates, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((r) => this.instantiate(r)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Report Items\n // ─────────────────────────────────────────────────────────────────\n\n async addItem(\n reportId: string,\n data: CreateJYSReportItemInput\n ): Promise<MexJYSReportItem> {\n const validated = this.validate(createJYSReportItemInputSchema, data);\n const nestedData = this.transformItemToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.addItem.mutate({ reportId, data: nestedData })\n );\n\n return this.instantiateItem(response);\n }\n\n async getItem(reportId: string, itemId: string): Promise<MexJYSReportItem> {\n const response = await this.execute(() =>\n this.trpc.reports.getItem.query({ reportId, itemId })\n );\n return this.instantiateItem(response);\n }\n\n async updateItem(\n reportId: string,\n itemId: string,\n data: UpdateJYSReportItemInput\n ): Promise<MexJYSReportItem> {\n const validated = this.validate(updateJYSReportItemInputSchema, data);\n const nestedData = this.transformItemUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.updateItem.mutate({\n reportId,\n itemId,\n data: nestedData,\n })\n );\n return this.instantiateItem(response);\n }\n\n async listItems(\n reportId: string,\n options?: ListOptions<ReportItemFilter>\n ): Promise<PaginatedResponse<MexJYSReportItem>> {\n const response = await this.execute(() =>\n this.trpc.reports.listItems.query({\n reportId,\n ...options,\n })\n );\n\n return {\n data: response.data.map((i) => this.instantiateItem(i)),\n pagination: response.pagination,\n };\n }\n\n async addItems(\n reportId: string,\n items: CreateJYSReportItemInput[]\n ): Promise<{ added: number; items: MexJYSReportItem[] }> {\n const validated = this.validate(\n z.array(createJYSReportItemInputSchema),\n items\n );\n const nestedItems = validated.map((i) => this.transformItemToNested(i));\n\n const response = await this.execute(() =>\n this.trpc.reports.addItems.mutate({ reportId, items: nestedItems })\n );\n\n return {\n added: response.added,\n items: response.items.map((i) => this.instantiateItem(i)),\n };\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Validation\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Validates a JYS report.\n *\n * Uses JYS-scoped validation input (jurisdiction and activity are implicit).\n *\n * @example\n * ```typescript\n * const result = await jysSdk.reports.validateReport({\n * reportId: report.id,\n * defaults: { rfc: \"ABC200101XXX\" },\n * });\n * ```\n */\n override async validateReport(\n input: MexJYSValidateInput\n ): Promise<ValidationResult> {\n const validated = this.validate(mexJysValidateInputSchema, input);\n return this.execute(() => this.trpc.reports.validate.mutate(validated));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Generation\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Generates XML for a JYS report.\n *\n * Uses the same input as validateReport.\n */\n override async generateReport(\n input: MexJYSValidateInput\n ): Promise<GenerateResult> {\n const validated = this.validate(mexJysValidateInputSchema, input);\n return this.execute(() => this.trpc.reports.generate.mutate(validated));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Submission\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Submits a validated JYS report.\n *\n * Uses JYS-scoped submission input (activity is implicit).\n */\n override async submit(\n input: SubmitJYSSubmissionInput\n ): Promise<SubmissionResult> {\n const validated = this.validate(submitJYSSubmissionInputSchema, input);\n\n const jurisdictions = {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.JYS]: {\n acuseRecibo: validated.acuseRecibo,\n notes: validated.notes,\n },\n },\n },\n };\n\n return this.execute(() =>\n this.trpc.reports.submit.mutate({\n reportId: validated.reportId,\n jurisdictions,\n })\n );\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Helpers\n // ─────────────────────────────────────────────────────────────────\n\n protected override transformToNested(\n data: CreateJYSReportInput\n ): CreateReportInput {\n const { mesReportado, ...baseFields } = data;\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.JYS]: { mesReportado },\n },\n },\n },\n } as CreateReportInput;\n }\n\n protected override transformUpdateToNested(\n data: UpdateJYSReportInput\n ): UpdateReportInput {\n return data as UpdateReportInput;\n }\n\n protected override instantiate(data: ReportData): MexJYSReport {\n return new MexJYSReport(data);\n }\n\n protected override instantiateItem(data: ReportItemData): MexJYSReportItem {\n return new MexJYSReportItem(data);\n }\n\n protected transformItemToNested(\n data: CreateJYSReportItemInput\n ): CreateReportItemInput {\n const { alertType, alertDescription, amendment, ...baseFields } = data;\n\n const jysData: Record<string, unknown> = {};\n if (alertType !== undefined) jysData.alertType = alertType;\n if (alertDescription !== undefined)\n jysData.alertDescription = alertDescription;\n if (amendment !== undefined) jysData.amendment = amendment;\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.JYS]: jysData,\n },\n },\n },\n } as CreateReportItemInput;\n }\n\n protected transformItemUpdateToNested(\n data: UpdateJYSReportItemInput\n ): UpdateReportItemInput {\n const { alertType, alertDescription, amendment, ...baseFields } = data;\n\n const jysData: Record<string, unknown> = {};\n if (alertType !== undefined) jysData.alertType = alertType;\n if (alertDescription !== undefined)\n jysData.alertDescription = alertDescription;\n if (amendment !== undefined) jysData.amendment = amendment;\n\n if (Object.keys(jysData).length === 0) {\n return baseFields as UpdateReportItemInput;\n }\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.JYS]: jysData,\n },\n },\n },\n } as UpdateReportItemInput;\n }\n}\n","/**\n * TSC (Tarjetas de Servicio y Crédito) Clients Resource\n *\n * Extends MexClientsResource with TSC-specific behavior.\n * TSC clients have the same fields as Mexico clients (no additional activity fields).\n * Returns MexTSCClient models.\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateClientInput,\n UpdateClientInput,\n ClientFilter,\n ListOptions,\n PaginatedResponse,\n CreateTSCClientInput,\n UpdateTSCClientInput,\n CreateMexClientInput,\n UpdateMexClientInput,\n AtomicBatchResult,\n PartialBatchResult,\n} from \"@artu-ai/shared\";\nimport {\n CodigoActividad,\n createTSCClientInputSchema,\n updateTSCClientInputSchema,\n} from \"@artu-ai/shared\";\nimport { MexClientsResource } from \"../../clients\";\nimport { type BatchOptions } from \"../../../clients\";\nimport { MexTSCClient, type ClientData } from \"../../../../models\";\n\n// ===========================\n// TSCClientsResource\n// ===========================\n\n/**\n * TSC (Tarjetas de Servicio y Crédito) scoped clients resource.\n *\n * @example\n * ```typescript\n * const tscSdk = new ComplianceSDK({\n * apiKey,\n * environment: \"test\",\n * jurisdiction: Jurisdiction.Mexico,\n * actividadVulnerable: CodigoActividad.TSC,\n * });\n *\n * const client = await tscSdk.clients.create({\n * type: ClientType.Person,\n * name: \"Juan García\",\n * rfc: \"GAJL850101ABC\",\n * });\n *\n * // Returns MexTSCClient\n * ```\n */\nexport class TSCClientsResource extends MexClientsResource {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations\n // ─────────────────────────────────────────────────────────────────\n\n async create(data: CreateTSCClientInput): Promise<MexTSCClient> {\n const validated = this.validate(createTSCClientInputSchema, data);\n const nestedData = this.transformToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.clients.create.mutate(nestedData)\n );\n\n return this.instantiate(response);\n }\n\n async retrieve(id: string): Promise<MexTSCClient> {\n const response = await this.execute(() =>\n this.trpc.clients.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n async retrieveByExternalId(externalId: string): Promise<MexTSCClient> {\n const response = await this.execute(() =>\n this.trpc.clients.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n async update(id: string, data: UpdateTSCClientInput): Promise<MexTSCClient> {\n const validated = this.validate(updateTSCClientInputSchema, data);\n const nestedData = this.transformUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.clients.update.mutate({ id, data: nestedData })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination\n // ─────────────────────────────────────────────────────────────────\n\n async list(\n options?: ListOptions<ClientFilter>\n ): Promise<PaginatedResponse<MexTSCClient>> {\n const scopedFilter = this.applyScopeToFilter(options?.filter);\n\n const response = await this.execute(() =>\n this.trpc.clients.list.query({\n ...options,\n filter: scopedFilter,\n })\n );\n\n return {\n data: response.data.map((c) => this.instantiate(c)),\n pagination: response.pagination,\n };\n }\n\n iterate(\n filter?: ClientFilter\n ): AsyncGenerator<MexTSCClient, void, undefined> {\n const scopedFilter = this.applyScopeToFilter(filter);\n return this.createIterator<MexTSCClient>({ filter: scopedFilter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n async createMany(\n clients: CreateTSCClientInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexTSCClient>>;\n async createMany(\n clients: CreateTSCClientInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexTSCClient>>;\n async createMany(\n clients: CreateTSCClientInput[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexTSCClient> | PartialBatchResult<MexTSCClient>\n > {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createTSCClientInputSchema),\n clients\n );\n const nestedClients = validated.map((c) => this.transformToNested(c));\n\n const response = await this.execute(() =>\n this.trpc.clients.createMany.mutate({ items: nestedClients, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((c) => this.instantiate(c)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n async updateMany(\n updates: { id: string; data: UpdateTSCClientInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexTSCClient>>;\n async updateMany(\n updates: { id: string; data: UpdateTSCClientInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexTSCClient>>;\n async updateMany(\n updates: { id: string; data: UpdateTSCClientInput }[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexTSCClient> | PartialBatchResult<MexTSCClient>\n > {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateTSCClientInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n const nestedUpdates = validated.map((u) => ({\n id: u.id,\n data: this.transformUpdateToNested(u.data),\n }));\n\n const response = await this.execute(() =>\n this.trpc.clients.updateMany.mutate({ items: nestedUpdates, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((c) => this.instantiate(c)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Transforms TSC input to nested API format.\n * TSC has no additional fields, but we add the TSC activity marker.\n */\n protected override transformToNested(\n data: CreateTSCClientInput\n ): CreateClientInput {\n // Use parent transform for base + MX fields (cast needed for discriminated union)\n const nested = super.transformToNested(\n data as unknown as CreateMexClientInput\n );\n\n // Add TSC activity marker\n const mexData = nested.jurisdictions?.MX;\n\n return {\n ...nested,\n jurisdictions: {\n MX: {\n ...mexData,\n actividadVulnerable: {\n [CodigoActividad.TSC]: {},\n },\n },\n },\n } as CreateClientInput;\n }\n\n protected override transformUpdateToNested(\n data: UpdateTSCClientInput\n ): UpdateClientInput {\n return super.transformUpdateToNested(\n data as unknown as UpdateMexClientInput\n );\n }\n\n protected override instantiate(data: ClientData): MexTSCClient {\n return new MexTSCClient(data);\n }\n}\n","/**\n * TSC (Tarjetas de Servicio y Crédito) Transactions Resource\n *\n * Extends MexTransactionsResource with TSC-specific behavior:\n * - Accepts flattened CreateTSCTransactionInput (TSC fields at root level)\n * - Returns MexTSCTransaction models\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateTransactionInput,\n UpdateTransactionInput,\n TransactionFilter,\n ListOptions,\n PaginatedResponse,\n CreateTSCTransactionInput,\n UpdateTSCTransactionInput,\n AtomicBatchResult,\n PartialBatchResult,\n} from \"@artu-ai/shared\";\nimport {\n Jurisdiction,\n CodigoActividad,\n createTSCTransactionInputSchema,\n updateTSCTransactionInputSchema,\n} from \"@artu-ai/shared\";\nimport { MexTransactionsResource } from \"../../transactions\";\nimport { type BatchOptions } from \"../../../clients\";\nimport { MexTSCTransaction, type TransactionData } from \"../../../../models\";\n\n// ===========================\n// TSCTransactionsResource\n// ===========================\n\n/**\n * TSC (Tarjetas de Servicio y Crédito) scoped transactions resource.\n *\n * @example\n * ```typescript\n * const tscSdk = new ComplianceSDK({\n * apiKey,\n * jurisdiction: Jurisdiction.Mexico,\n * actividadVulnerable: CodigoActividad.TSC,\n * });\n *\n * // Create with fully flattened input\n * const txn = await tscSdk.transactions.create({\n * amount: 10000,\n * currency: \"MXN\",\n * timestamp: new Date(),\n * cardType: \"credit\",\n * idNumber: \"4111111111111111\",\n * operationType: \"cardConsumption\",\n * });\n *\n * // Returns MexTSCTransaction\n * console.log(txn.cardType);\n * ```\n */\nexport class TSCTransactionsResource extends MexTransactionsResource {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations\n // ─────────────────────────────────────────────────────────────────\n\n async create(data: CreateTSCTransactionInput): Promise<MexTSCTransaction> {\n const validated = this.validate(createTSCTransactionInputSchema, data);\n const nestedData = this.transformToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.transactions.create.mutate(nestedData)\n );\n\n return this.instantiate(response);\n }\n\n async retrieve(id: string): Promise<MexTSCTransaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n async retrieveByMetadata(\n key: string,\n value: string\n ): Promise<MexTSCTransaction> {\n const response = await this.execute(() =>\n this.trpc.transactions.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n async update(\n id: string,\n data: UpdateTSCTransactionInput\n ): Promise<MexTSCTransaction> {\n const validated = this.validate(updateTSCTransactionInputSchema, data);\n const nestedData = this.transformUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.transactions.update.mutate({ id, data: nestedData })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination\n // ─────────────────────────────────────────────────────────────────\n\n async list(\n options?: ListOptions<TransactionFilter>\n ): Promise<PaginatedResponse<MexTSCTransaction>> {\n const scopedFilter = this.applyScopeToFilter(options?.filter);\n\n const response = await this.execute(() =>\n this.trpc.transactions.list.query({\n ...options,\n filter: scopedFilter,\n })\n );\n\n return {\n data: response.data.map((t) => this.instantiate(t)),\n pagination: response.pagination,\n };\n }\n\n iterate(\n filter?: TransactionFilter\n ): AsyncGenerator<MexTSCTransaction, void, undefined> {\n const scopedFilter = this.applyScopeToFilter(filter);\n return this.createIterator<MexTSCTransaction>({ filter: scopedFilter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n async createMany(\n transactions: CreateTSCTransactionInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexTSCTransaction>>;\n async createMany(\n transactions: CreateTSCTransactionInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexTSCTransaction>>;\n async createMany(\n transactions: CreateTSCTransactionInput[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexTSCTransaction> | PartialBatchResult<MexTSCTransaction>\n > {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createTSCTransactionInputSchema),\n transactions\n );\n const nestedItems = validated.map((t) => this.transformToNested(t));\n\n const response = await this.execute(() =>\n this.trpc.transactions.createMany.mutate({ items: nestedItems, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((t) => this.instantiate(t)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n async updateMany(\n updates: { id: string; data: UpdateTSCTransactionInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexTSCTransaction>>;\n async updateMany(\n updates: { id: string; data: UpdateTSCTransactionInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexTSCTransaction>>;\n async updateMany(\n updates: { id: string; data: UpdateTSCTransactionInput }[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexTSCTransaction> | PartialBatchResult<MexTSCTransaction>\n > {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateTSCTransactionInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n const nestedUpdates = validated.map((u) => ({\n id: u.id,\n data: this.transformUpdateToNested(u.data),\n }));\n\n const response = await this.execute(() =>\n this.trpc.transactions.updateMany.mutate({ items: nestedUpdates, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((t) => this.instantiate(t)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Helpers\n // ─────────────────────────────────────────────────────────────────\n\n protected override transformToNested(\n data: CreateTSCTransactionInput\n ): CreateTransactionInput {\n const {\n amount,\n currency,\n timestamp,\n relatedClientIds,\n description,\n externalId,\n metadata,\n cardType,\n idNumber,\n operationType,\n } = data;\n\n // Build base fields (relatedClientIds is required)\n const baseFields: Record<string, unknown> = {\n amount,\n currency,\n timestamp,\n relatedClientIds,\n };\n if (description !== undefined) baseFields.description = description;\n if (externalId !== undefined) baseFields.externalId = externalId;\n if (metadata !== undefined) baseFields.metadata = metadata;\n\n // TSC-specific fields (operationType has a default from schema)\n const tscFields: Record<string, unknown> = {\n cardType,\n idNumber,\n operationType,\n };\n\n return {\n ...baseFields,\n primaryJurisdiction: Jurisdiction.Mexico,\n jurisdictions: {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.TSC]: tscFields,\n },\n },\n },\n } as CreateTransactionInput;\n }\n\n protected override transformUpdateToNested(\n data: UpdateTSCTransactionInput\n ): UpdateTransactionInput {\n return data as UpdateTransactionInput;\n }\n\n protected override instantiate(data: TransactionData): MexTSCTransaction {\n return new MexTSCTransaction(data);\n }\n}\n","/**\n * TSC (Tarjetas de Servicio y Crédito) Reports Resource\n *\n * Extends MexReportsResource with TSC-specific behavior:\n * - Accepts flattened CreateTSCReportInput (TSC fields at root level)\n * - Returns MexTSCReport models\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateReportInput,\n UpdateReportInput,\n CreateReportItemInput,\n UpdateReportItemInput,\n CreateTSCReportInput,\n UpdateTSCReportInput,\n CreateTSCReportItemInput,\n UpdateTSCReportItemInput,\n ListOptions,\n PaginatedResponse,\n AtomicBatchResult,\n PartialBatchResult,\n MexTSCValidateInput,\n ValidationResult,\n GenerateResult,\n SubmissionResult,\n SubmitTSCSubmissionInput,\n} from \"@artu-ai/shared\";\nimport {\n CodigoActividad,\n createTSCReportInputSchema,\n updateTSCReportInputSchema,\n createTSCReportItemInputSchema,\n updateTSCReportItemInputSchema,\n mexTscValidateInputSchema,\n submitTSCSubmissionInputSchema,\n} from \"@artu-ai/shared\";\nimport { MexReportsResource } from \"../../reports\";\nimport { type ReportFilter, type ReportItemFilter } from \"../../../reports\";\nimport { type BatchOptions } from \"../../../clients\";\nimport {\n MexTSCReport,\n MexTSCReportItem,\n type ReportData,\n type ReportItemData,\n} from \"../../../../models\";\n\n// ===========================\n// TSCReportsResource\n// ===========================\n\n/**\n * TSC (Tarjetas de Servicio y Crédito) scoped reports resource.\n *\n * @example\n * ```typescript\n * const tscSdk = new ComplianceSDK({\n * apiKey,\n * jurisdiction: Jurisdiction.Mexico,\n * actividadVulnerable: CodigoActividad.TSC,\n * });\n *\n * // Create with fully flattened input\n * const report = await tscSdk.reports.create({\n * mesReportado: \"202401\",\n * });\n *\n * // Returns MexTSCReport\n * console.log(report.mesReportado);\n * ```\n */\nexport class TSCReportsResource extends MexReportsResource {\n // ─────────────────────────────────────────────────────────────────\n // Report CRUD\n // ─────────────────────────────────────────────────────────────────\n\n async create(data: CreateTSCReportInput): Promise<MexTSCReport> {\n const validated = this.validate(createTSCReportInputSchema, data);\n const nestedData = this.transformToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.create.mutate(nestedData)\n );\n\n return this.instantiate(response);\n }\n\n async retrieve(id: string): Promise<MexTSCReport> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n async retrieveByMetadata(key: string, value: string): Promise<MexTSCReport> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n async retrieveByExternalId(externalId: string): Promise<MexTSCReport> {\n const response = await this.execute(() =>\n this.trpc.reports.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n async update(id: string, data: UpdateTSCReportInput): Promise<MexTSCReport> {\n const validated = this.validate(updateTSCReportInputSchema, data);\n const nestedData = this.transformUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.update.mutate({ id, data: nestedData })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination\n // ─────────────────────────────────────────────────────────────────\n\n async list(\n options?: ListOptions<ReportFilter>\n ): Promise<PaginatedResponse<MexTSCReport>> {\n const response = await this.execute(() =>\n this.trpc.reports.list.query(options)\n );\n\n return {\n data: response.data.map((r) => this.instantiate(r)),\n pagination: response.pagination,\n };\n }\n\n iterate(\n filter?: ReportFilter\n ): AsyncGenerator<MexTSCReport, void, undefined> {\n return this.createIterator<MexTSCReport>({ filter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n async createMany(\n reports: CreateTSCReportInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexTSCReport>>;\n async createMany(\n reports: CreateTSCReportInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexTSCReport>>;\n async createMany(\n reports: CreateTSCReportInput[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexTSCReport> | PartialBatchResult<MexTSCReport>\n > {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createTSCReportInputSchema),\n reports\n );\n const nestedItems = validated.map((r) => this.transformToNested(r));\n\n const response = await this.execute(() =>\n this.trpc.reports.createMany.mutate({ items: nestedItems, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((r) => this.instantiate(r)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n async updateMany(\n updates: { id: string; data: UpdateTSCReportInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexTSCReport>>;\n async updateMany(\n updates: { id: string; data: UpdateTSCReportInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexTSCReport>>;\n async updateMany(\n updates: { id: string; data: UpdateTSCReportInput }[],\n options: BatchOptions = {}\n ): Promise<\n AtomicBatchResult<MexTSCReport> | PartialBatchResult<MexTSCReport>\n > {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateTSCReportInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n const nestedUpdates = validated.map((u) => ({\n id: u.id,\n data: this.transformUpdateToNested(u.data),\n }));\n\n const response = await this.execute(() =>\n this.trpc.reports.updateMany.mutate({ items: nestedUpdates, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((r) => this.instantiate(r)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Report Items\n // ─────────────────────────────────────────────────────────────────\n\n async addItem(\n reportId: string,\n data: CreateTSCReportItemInput\n ): Promise<MexTSCReportItem> {\n const validated = this.validate(createTSCReportItemInputSchema, data);\n const nestedData = this.transformItemToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.addItem.mutate({ reportId, data: nestedData })\n );\n\n return this.instantiateItem(response);\n }\n\n async getItem(reportId: string, itemId: string): Promise<MexTSCReportItem> {\n const response = await this.execute(() =>\n this.trpc.reports.getItem.query({ reportId, itemId })\n );\n return this.instantiateItem(response);\n }\n\n async updateItem(\n reportId: string,\n itemId: string,\n data: UpdateTSCReportItemInput\n ): Promise<MexTSCReportItem> {\n const validated = this.validate(updateTSCReportItemInputSchema, data);\n const nestedData = this.transformItemUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.reports.updateItem.mutate({\n reportId,\n itemId,\n data: nestedData,\n })\n );\n return this.instantiateItem(response);\n }\n\n async listItems(\n reportId: string,\n options?: ListOptions<ReportItemFilter>\n ): Promise<PaginatedResponse<MexTSCReportItem>> {\n const response = await this.execute(() =>\n this.trpc.reports.listItems.query({\n reportId,\n ...options,\n })\n );\n\n return {\n data: response.data.map((i) => this.instantiateItem(i)),\n pagination: response.pagination,\n };\n }\n\n async addItems(\n reportId: string,\n items: CreateTSCReportItemInput[]\n ): Promise<{ added: number; items: MexTSCReportItem[] }> {\n const validated = this.validate(\n z.array(createTSCReportItemInputSchema),\n items\n );\n const nestedItems = validated.map((i) => this.transformItemToNested(i));\n\n const response = await this.execute(() =>\n this.trpc.reports.addItems.mutate({ reportId, items: nestedItems })\n );\n\n return {\n added: response.added,\n items: response.items.map((i) => this.instantiateItem(i)),\n };\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Validation\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Validates a TSC report.\n *\n * Uses TSC-scoped validation input (jurisdiction and activity are implicit).\n *\n * @example\n * ```typescript\n * const result = await tscSdk.reports.validateReport({\n * reportId: report.id,\n * defaults: { rfc: \"ABC200101XXX\" },\n * });\n * ```\n */\n override async validateReport(\n input: MexTSCValidateInput\n ): Promise<ValidationResult> {\n const validated = this.validate(mexTscValidateInputSchema, input);\n return this.execute(() => this.trpc.reports.validate.mutate(validated));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Generation\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Generates XML for a TSC report.\n *\n * Uses the same input as validateReport.\n */\n override async generateReport(\n input: MexTSCValidateInput\n ): Promise<GenerateResult> {\n const validated = this.validate(mexTscValidateInputSchema, input);\n return this.execute(() => this.trpc.reports.generate.mutate(validated));\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Submission\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Submits a validated TSC report.\n *\n * Uses TSC-scoped submission input (activity is implicit).\n */\n override async submit(\n input: SubmitTSCSubmissionInput\n ): Promise<SubmissionResult> {\n const validated = this.validate(submitTSCSubmissionInputSchema, input);\n\n const jurisdictions = {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.TSC]: {\n acuseRecibo: validated.acuseRecibo,\n notes: validated.notes,\n },\n },\n },\n };\n\n return this.execute(() =>\n this.trpc.reports.submit.mutate({\n reportId: validated.reportId,\n jurisdictions,\n })\n );\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Helpers\n // ─────────────────────────────────────────────────────────────────\n\n protected override transformToNested(\n data: CreateTSCReportInput\n ): CreateReportInput {\n const { mesReportado, ...baseFields } = data;\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.TSC]: { mesReportado },\n },\n },\n },\n } as CreateReportInput;\n }\n\n protected override transformUpdateToNested(\n data: UpdateTSCReportInput\n ): UpdateReportInput {\n return data as UpdateReportInput;\n }\n\n protected override instantiate(data: ReportData): MexTSCReport {\n return new MexTSCReport(data);\n }\n\n protected override instantiateItem(data: ReportItemData): MexTSCReportItem {\n return new MexTSCReportItem(data);\n }\n\n protected transformItemToNested(\n data: CreateTSCReportItemInput\n ): CreateReportItemInput {\n const { alertType, alertDescription, amendment, ...baseFields } = data;\n\n const tscData: Record<string, unknown> = {};\n if (alertType !== undefined) tscData.alertType = alertType;\n if (alertDescription !== undefined)\n tscData.alertDescription = alertDescription;\n if (amendment !== undefined) tscData.amendment = amendment;\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.TSC]: tscData,\n },\n },\n },\n } as CreateReportItemInput;\n }\n\n protected transformItemUpdateToNested(\n data: UpdateTSCReportItemInput\n ): UpdateReportItemInput {\n const { alertType, alertDescription, amendment, ...baseFields } = data;\n\n const tscData: Record<string, unknown> = {};\n if (alertType !== undefined) tscData.alertType = alertType;\n if (alertDescription !== undefined)\n tscData.alertDescription = alertDescription;\n if (amendment !== undefined) tscData.amendment = amendment;\n\n if (Object.keys(tscData).length === 0) {\n return baseFields as UpdateReportItemInput;\n }\n\n return {\n ...baseFields,\n jurisdictions: {\n MX: {\n actividadVulnerable: {\n [CodigoActividad.TSC]: tscData,\n },\n },\n },\n } as UpdateReportItemInput;\n }\n}\n","/**\n * Mexico Addresses Resource\n *\n * Extends AddressesResource with Mexico-specific behavior:\n * - Accepts flattened CreateMexAddressInput (MX fields at root level)\n * - Returns MexAddress models with Mexico-specific accessors\n *\n * Note: Mexican address format can be used for addresses in any country.\n */\n\nimport { z } from \"zod\";\nimport type {\n CreateAddressInput,\n UpdateAddressInput,\n AddressFilter,\n AddressType,\n ListOptions,\n PaginatedResponse,\n CreateMexAddressInput,\n UpdateMexAddressInput,\n AtomicBatchResult,\n PartialBatchResult,\n} from \"@artu-ai/shared\";\nimport {\n createMexAddressInputSchema,\n updateMexAddressInputSchema,\n} from \"@artu-ai/shared\";\nimport { AddressesResource } from \"../addresses\";\nimport { type BatchOptions } from \"../clients\";\nimport { MexAddress, type AddressData } from \"../../models\";\n\n// ===========================\n// MexAddressesResource\n// ===========================\n\n/**\n * Mexico-scoped addresses resource.\n *\n * Provides the same operations as AddressesResource but with:\n * - Flattened input types (MX fields like exteriorNumber, neighborhood at root level)\n * - MexAddress model return type with Mexico-specific accessors\n *\n * @example\n * ```typescript\n * const mexSdk = new ComplianceSDK({\n * apiKey,\n * environment: \"test\",\n * jurisdiction: Jurisdiction.Mexico,\n * });\n *\n * // Create with flattened input\n * const address = await mexSdk.addresses.create({\n * clientId: \"client_123\",\n * street: \"Paseo de la Reforma\",\n * exteriorNumber: \"222\",\n * interiorNumber: \"Piso 5\",\n * neighborhood: \"Juárez\",\n * city: \"Ciudad de México\",\n * state: \"CDMX\",\n * postalCode: \"06600\",\n * country: \"MX\",\n * type: \"home\",\n * });\n *\n * // Returns MexAddress\n * console.log(address.exteriorNumber);\n * console.log(address.formattedMexican);\n * ```\n */\nexport class MexAddressesResource extends AddressesResource {\n // ─────────────────────────────────────────────────────────────────\n // CRUD Operations (override with flattened input types)\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Creates a new address with Mexico-format fields.\n */\n async create(data: CreateMexAddressInput): Promise<MexAddress> {\n const validated = this.validate(createMexAddressInputSchema, data);\n const nestedData = this.transformToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.addresses.create.mutate(nestedData)\n );\n\n return this.instantiate(response);\n }\n\n /**\n * Retrieves an address by ID.\n */\n async retrieve(id: string): Promise<MexAddress> {\n const response = await this.execute(() =>\n this.trpc.addresses.retrieve.query({ id })\n );\n return this.instantiate(response);\n }\n\n async retrieveByMetadata(key: string, value: string): Promise<MexAddress> {\n const response = await this.execute(() =>\n this.trpc.addresses.retrieveByMetadata.query({ key, value })\n );\n return this.instantiate(response);\n }\n\n async retrieveByExternalId(externalId: string): Promise<MexAddress> {\n const response = await this.execute(() =>\n this.trpc.addresses.retrieveByExternalId.query({ externalId })\n );\n return this.instantiate(response);\n }\n\n /**\n * Updates an address with Mexico-format fields.\n */\n async update(id: string, data: UpdateMexAddressInput): Promise<MexAddress> {\n const validated = this.validate(updateMexAddressInputSchema, data);\n const nestedData = this.transformUpdateToNested(validated);\n\n const response = await this.execute(() =>\n this.trpc.addresses.update.mutate({ id, data: nestedData })\n );\n return this.instantiate(response);\n }\n\n // ─────────────────────────────────────────────────────────────────\n // List & Pagination\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Lists addresses with optional filtering.\n */\n async list(\n options?: ListOptions<AddressFilter>\n ): Promise<PaginatedResponse<MexAddress>> {\n const response = await this.execute(() =>\n this.trpc.addresses.list.query(options)\n );\n\n return {\n data: response.data.map((a) => this.instantiate(a)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Lists all addresses for a specific client.\n */\n async listByClient(\n clientId: string,\n options?: { cursor?: string; limit?: number }\n ): Promise<PaginatedResponse<MexAddress>> {\n const response = await this.execute(() =>\n this.trpc.addresses.listByClient.query({ clientId, ...options })\n );\n\n return {\n data: response.data.map((a) => this.instantiate(a)),\n pagination: response.pagination,\n };\n }\n\n /**\n * Gets the primary address for a client.\n */\n async getPrimary(\n clientId: string,\n type?: AddressType\n ): Promise<MexAddress | null> {\n const response = await this.execute(() =>\n this.trpc.addresses.getPrimary.query({ clientId, type })\n );\n return response ? this.instantiate(response) : null;\n }\n\n /**\n * Iterates over addresses.\n */\n iterate(filter?: AddressFilter): AsyncGenerator<MexAddress, void, undefined> {\n return this.createIterator<MexAddress>({ filter });\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Batch Operations\n // ─────────────────────────────────────────────────────────────────\n\n async createMany(\n addresses: CreateMexAddressInput[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexAddress>>;\n async createMany(\n addresses: CreateMexAddressInput[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexAddress>>;\n async createMany(\n addresses: CreateMexAddressInput[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<MexAddress> | PartialBatchResult<MexAddress>> {\n const atomic = options.atomic ?? true;\n const validated = this.validate(\n z.array(createMexAddressInputSchema),\n addresses\n );\n const nestedItems = validated.map((a) => this.transformToNested(a));\n\n const response = await this.execute(() =>\n this.trpc.addresses.createMany.mutate({ items: nestedItems, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((a) => this.instantiate(a)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n async updateMany(\n updates: { id: string; data: UpdateMexAddressInput }[],\n options?: { atomic?: true }\n ): Promise<AtomicBatchResult<MexAddress>>;\n async updateMany(\n updates: { id: string; data: UpdateMexAddressInput }[],\n options: { atomic: false }\n ): Promise<PartialBatchResult<MexAddress>>;\n async updateMany(\n updates: { id: string; data: UpdateMexAddressInput }[],\n options: BatchOptions = {}\n ): Promise<AtomicBatchResult<MexAddress> | PartialBatchResult<MexAddress>> {\n const atomic = options.atomic ?? true;\n const updateItemSchema = z.object({\n id: z.uuid(),\n data: updateMexAddressInputSchema,\n });\n\n const validated = this.validate(z.array(updateItemSchema), updates);\n const nestedUpdates = validated.map((u) => ({\n id: u.id,\n data: this.transformUpdateToNested(u.data),\n }));\n\n const response = await this.execute(() =>\n this.trpc.addresses.updateMany.mutate({ items: nestedUpdates, atomic })\n );\n\n if (response.atomic) {\n return {\n atomic: true,\n data: response.data.map((a) => this.instantiate(a)),\n };\n } else {\n return {\n atomic: false,\n succeeded: response.succeeded.map((item) => ({\n index: item.index,\n data: this.instantiate(item.data),\n })),\n failed: response.failed,\n };\n }\n }\n\n // ─────────────────────────────────────────────────────────────────\n // Protected Helpers\n // ─────────────────────────────────────────────────────────────────\n\n /**\n * Transforms flattened MX input to nested API format.\n *\n * Mexico-specific fields (exteriorNumber, interiorNumber, neighborhood, etc.)\n * are stored in `jurisdictions.MX`. The base `street` field is passed through.\n */\n protected transformToNested(data: CreateMexAddressInput): CreateAddressInput {\n const {\n // Mexico-specific fields go into `jurisdictions.MX`\n exteriorNumber,\n interiorNumber,\n neighborhood,\n municipality,\n betweenStreets,\n reference,\n // Base fields pass through\n ...baseFields\n } = data;\n\n // Build Mexico-specific data for the `jurisdictions.MX` column\n // exteriorNumber and neighborhood are required by schema validation\n const mexData: Record<string, unknown> = {\n exteriorNumber,\n neighborhood,\n };\n if (interiorNumber !== undefined) mexData.interiorNumber = interiorNumber;\n if (municipality !== undefined) mexData.municipality = municipality;\n if (betweenStreets !== undefined) mexData.betweenStreets = betweenStreets;\n if (reference !== undefined) mexData.reference = reference;\n\n return {\n ...baseFields,\n jurisdictions: { MX: mexData },\n } as CreateAddressInput;\n }\n\n /**\n * Transforms flattened MX update input to nested API format.\n */\n protected transformUpdateToNested(\n data: UpdateMexAddressInput\n ): UpdateAddressInput {\n const {\n // Mexico-specific fields go into `jurisdictions.MX`\n exteriorNumber,\n interiorNumber,\n neighborhood,\n municipality,\n betweenStreets,\n reference,\n // Base fields pass through\n ...baseFields\n } = data;\n\n const hasMexFields =\n exteriorNumber !== undefined ||\n interiorNumber !== undefined ||\n neighborhood !== undefined ||\n municipality !== undefined ||\n betweenStreets !== undefined ||\n reference !== undefined;\n\n if (!hasMexFields) {\n return baseFields as UpdateAddressInput;\n }\n\n const mexData: Record<string, unknown> = {};\n if (exteriorNumber !== undefined) mexData.exteriorNumber = exteriorNumber;\n if (interiorNumber !== undefined) mexData.interiorNumber = interiorNumber;\n if (neighborhood !== undefined) mexData.neighborhood = neighborhood;\n if (municipality !== undefined) mexData.municipality = municipality;\n if (betweenStreets !== undefined) mexData.betweenStreets = betweenStreets;\n if (reference !== undefined) mexData.reference = reference;\n\n return {\n ...baseFields,\n jurisdictions: { MX: mexData },\n } as UpdateAddressInput;\n }\n\n /**\n * Instantiates a MexAddress model.\n */\n protected override instantiate(data: AddressData): MexAddress {\n return new MexAddress(data);\n }\n}\n","/**\n * EBR Resource\n *\n * Provides the SDK interface for managing EBR (Evaluación Basada en Riesgos)\n * configurations. Supports both global EBR (no AV) and activity-specific EBR.\n *\n * @module resources/mex/ebr\n */\n\nimport type { ZodError } from \"zod\";\nimport { TRPCClientError } from \"@trpc/client\";\nimport { ValidationError } from \"../../errors/validation\";\nimport { mapTRPCError } from \"../../errors\";\nimport type { SDKScope, Environment } from \"../../sdk/types\";\nimport { isMexicoScope } from \"../../sdk/types\";\nimport type { TRPCClient } from \"../../utils/trpc-client\";\n\n// Import from @artu-ai/shared\nimport {\n // Constants\n WEIGHT_RANGE,\n DEFAULT_THRESHOLDS,\n // Schemas\n CreateEBRConfigInputSchema,\n type CreateEBRConfigInput,\n type EBRConfiguration,\n type EBRConfigListItem,\n type ScoreThresholds,\n // Enums\n RiskLevels,\n InternalRiskLevel,\n RegulatoryRiskLevel,\n} from \"@artu-ai/shared\";\n\n// ===========================\n// Weight Presets (SDK-only)\n// ===========================\n\n/**\n * Confidence level for weight presets.\n */\nexport type PresetConfidence = \"high\" | \"medium\";\n\n/**\n * A weight preset for a specific Actividad Vulnerable.\n */\nexport interface WeightPreset {\n client: number;\n geographic: number;\n product: number;\n transactional: number;\n confidence: PresetConfidence;\n}\n\n/**\n * Weight presets for all 15 Actividades Vulnerables.\n *\n * These presets are validated according to:\n * - ENR 2020/2023 (Evaluación Nacional de Riesgos)\n * - GAFI/FATF RBA Guidance\n * - LFPIORPI regulatory requirements\n */\nexport const WEIGHT_PRESETS: Record<string, WeightPreset> = {\n // Inmobiliarias (Real Estate)\n INM: {\n client: 0.25,\n geographic: 0.35,\n product: 0.2,\n transactional: 0.2,\n confidence: \"high\",\n },\n\n // Metales Preciosos y Joyería (Precious Metals & Jewelry - DPMS)\n MPJ: {\n client: 0.25,\n geographic: 0.2,\n product: 0.2,\n transactional: 0.35,\n confidence: \"high\",\n },\n\n // Notarios y Corredores (Notaries & Brokers)\n NOT: {\n client: 0.4,\n geographic: 0.2,\n product: 0.25,\n transactional: 0.15,\n confidence: \"high\",\n },\n\n // Casas de Empeño (Pawn Shops)\n EMP: {\n client: 0.25,\n geographic: 0.2,\n product: 0.2,\n transactional: 0.35,\n confidence: \"medium\",\n },\n\n // Blindaje de Vehículos (Vehicle Armoring)\n BLI: {\n client: 0.35,\n geographic: 0.25,\n product: 0.3,\n transactional: 0.1,\n confidence: \"medium\",\n },\n\n // Venta de Vehículos (Vehicle Sales)\n VEH: {\n client: 0.25,\n geographic: 0.2,\n product: 0.25,\n transactional: 0.3,\n confidence: \"high\",\n },\n\n // Activos Virtuales (Virtual Assets - PSAV)\n AVI: {\n client: 0.35,\n geographic: 0.15,\n product: 0.3,\n transactional: 0.2,\n confidence: \"high\",\n },\n\n // Juegos y Sorteos (Gaming & Lotteries)\n JYS: {\n client: 0.25,\n geographic: 0.25,\n product: 0.2,\n transactional: 0.3,\n confidence: \"high\",\n },\n\n // Obras de Arte (Art Trade)\n ODA: {\n client: 0.3,\n geographic: 0.25,\n product: 0.3,\n transactional: 0.15,\n confidence: \"high\",\n },\n\n // Servicios Profesionales (Professional Services)\n SPR: {\n client: 0.4,\n geographic: 0.15,\n product: 0.3,\n transactional: 0.15,\n confidence: \"high\",\n },\n\n // Arrendamiento de Inmuebles (Real Estate Leasing)\n ARR: {\n client: 0.3,\n geographic: 0.25,\n product: 0.2,\n transactional: 0.25,\n confidence: \"medium\",\n },\n\n // Fideicomisos (Trusts)\n FID: {\n client: 0.4,\n geographic: 0.15,\n product: 0.3,\n transactional: 0.15,\n confidence: \"high\",\n },\n\n // Tarjetas de Servicios y Crédito (Prepaid Cards & Credit Services)\n TSC: {\n client: 0.25,\n geographic: 0.15,\n product: 0.3,\n transactional: 0.3,\n confidence: \"medium\",\n },\n\n // Donatarias / ONG (Charities & NGOs)\n DON: {\n client: 0.35,\n geographic: 0.25,\n product: 0.25,\n transactional: 0.15,\n confidence: \"high\",\n },\n\n // Comercio Exterior (Foreign Trade)\n CEX: {\n client: 0.25,\n geographic: 0.35,\n product: 0.25,\n transactional: 0.15,\n confidence: \"medium\",\n },\n} as const;\n\n/**\n * List of all Actividades Vulnerables with available presets.\n */\nconst AVAILABLE_PRESET_ACTIVITIES = Object.keys(\n WEIGHT_PRESETS\n) as readonly string[];\n\n/**\n * All 15 Actividades Vulnerables defined in LFPIORPI.\n */\nexport const ACTIVIDADES_VULNERABLES = [\n \"INM\",\n \"MPJ\",\n \"NOT\",\n \"EMP\",\n \"BLI\",\n \"VEH\",\n \"AVI\",\n \"JYS\",\n \"ODA\",\n \"SPR\",\n \"ARR\",\n \"FID\",\n \"TSC\",\n \"DON\",\n \"CEX\",\n] as const;\n\nexport type ActividadVulnerable = (typeof ACTIVIDADES_VULNERABLES)[number];\n\n/** @deprecated Use WeightPreset instead */\nexport type MERWeightPreset = WeightPreset;\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Context for EBR resource operations.\n * Passed from the main SDK.\n */\nexport interface EBRResourceContext {\n /** tRPC client for API communication (optional for backward compatibility) */\n trpc?: TRPCClient;\n /** SDK scope (jurisdiction and optional actividadVulnerable) */\n scope: SDKScope;\n /** Environment (test or live) */\n environment: Environment;\n}\n\n/**\n * Weights sub-resource for accessing weight configuration.\n */\nexport interface EBRWeightsResource {\n /** Valid weight range (min: 0.10, max: 0.70) */\n readonly range: typeof WEIGHT_RANGE;\n}\n\n/**\n * Thresholds sub-resource for accessing threshold configuration.\n */\nexport interface EBRThresholdsResource {\n /** Default/suggested thresholds */\n readonly defaults: ScoreThresholds;\n}\n\n/**\n * Presets sub-resource for accessing weight presets.\n */\nexport interface EBRPresetsResource {\n /**\n * Lists all available preset activity codes.\n * @returns Array of activity codes with presets\n */\n list(): readonly string[];\n\n /**\n * Gets the preset for a specific activity.\n * @param activity - Activity code (e.g., \"AVI\", \"INM\")\n * @returns The weight preset or null if not found\n */\n get(activity: string): WeightPreset | null;\n\n /**\n * Gets the suggested preset for the current SDK scope.\n * Returns null if SDK is not scoped to an activity or no preset exists.\n * @returns The suggested weight preset or null\n */\n suggested(): WeightPreset | null;\n}\n\n/**\n * Risk level sub-resource for risk level utilities.\n */\nexport interface EBRRiskLevelResource {\n /**\n * Maps an internal risk level (5) to regulatory level (3).\n * @param internal - Internal risk level\n * @returns Regulatory risk level\n */\n mapToRegulatory(internal: InternalRiskLevel): RegulatoryRiskLevel;\n\n /**\n * Gets the recommended KYC update frequency for a risk level.\n * @param level - Internal risk level\n * @returns Update frequency in months\n */\n getUpdateFrequency(level: InternalRiskLevel): number;\n}\n\n// ===========================\n// EBR Resource Class\n// ===========================\n\n/**\n * EBR Resource\n *\n * Manages EBR (Evaluación Basada en Riesgos) configurations for Mexican\n * AML/KYC compliance under LFPIORPI.\n *\n * Key features:\n * - **Immutable configurations**: No updates - each change creates a new version\n * - **Scope-aware**: Works with global EBR or activity-specific EBR\n * - **Validation**: Full client-side validation before API calls\n * - **Audit trail**: All versions preserved with justifications\n *\n * @example\n * ```typescript\n * // Create EBR configuration\n * const config = await sdk.ebr.create({\n * weights: { client: 0.25, geographic: 0.35, product: 0.20, transactional: 0.20 },\n * thresholds: sdk.ebr.thresholds.defaults,\n * justification: \"Initial configuration for Q4 2024\",\n * });\n *\n * // Get suggested preset for current activity\n * const suggested = sdk.ebr.presets.suggested();\n *\n * // Map risk level for regulatory reporting\n * const regulatory = sdk.ebr.riskLevel.mapToRegulatory(\"muy_alto\"); // \"alto\"\n * ```\n */\nexport class EBRResource {\n protected readonly ctx: EBRResourceContext;\n\n constructor(context: EBRResourceContext) {\n this.ctx = context;\n }\n\n /**\n * Gets the tRPC client, throwing if not available.\n */\n private get trpc(): TRPCClient {\n if (!this.ctx.trpc) {\n throw new Error(\n \"EBRResource requires tRPC client for API operations. \" +\n \"Make sure the SDK was initialized with API connection.\"\n );\n }\n return this.ctx.trpc;\n }\n\n // ===========================\n // Main Methods\n // ===========================\n\n /**\n * Creates a new EBR configuration.\n *\n * If a configuration already exists, the existing one is marked as \"superseded\"\n * and a new version is created. This maintains a complete audit trail.\n *\n * @param input - Configuration input (weights, thresholds, justification)\n * @returns The created EBR configuration\n * @throws {ValidationError} If input validation fails\n */\n async create(input: CreateEBRConfigInput): Promise<EBRConfiguration> {\n // 1. Validate input using Zod schema\n const parseResult = CreateEBRConfigInputSchema.safeParse(input);\n\n if (!parseResult.success) {\n throw ValidationError.fromZodError(parseResult.error as ZodError);\n }\n\n const validated = parseResult.data;\n\n // 2. Validate activity mismatch if explicitly provided\n if (validated.actividadVulnerable) {\n const scopeActivity = this.getCurrentActivity();\n if (scopeActivity && validated.actividadVulnerable !== scopeActivity) {\n throw new ValidationError([\n {\n path: [\"actividadVulnerable\"],\n message: `Activity mismatch - SDK scope is ${scopeActivity} but input specifies ${validated.actividadVulnerable}`,\n code: \"ACTIVITY_MISMATCH\",\n },\n ]);\n }\n }\n\n // 3. Determine the effective activity (from input or scope)\n const effectiveActivity =\n validated.actividadVulnerable ?? this.getCurrentActivity();\n\n // 4. Call the API\n const response = await this.execute(() =>\n this.trpc.ebr.create.mutate({\n ...validated,\n actividadVulnerable: effectiveActivity ?? undefined,\n })\n );\n\n return this.transformResponse(response);\n }\n\n /**\n * Gets the currently active EBR configuration.\n *\n * @returns The active configuration or null if none exists\n */\n async get(): Promise<EBRConfiguration | null> {\n const activity = this.getCurrentActivity();\n\n const response = await this.execute(() =>\n this.trpc.ebr.get.query({\n actividadVulnerable: activity ?? undefined,\n })\n );\n\n if (!response) {\n return null;\n }\n\n return this.transformResponse(response);\n }\n\n /**\n * Gets an EBR configuration by ID.\n *\n * @param id - Configuration ID\n * @returns The configuration or null if not found\n */\n async getById(id: string): Promise<EBRConfiguration | null> {\n const response = await this.execute(() =>\n this.trpc.ebr.getById.query({ id })\n );\n\n if (!response) {\n return null;\n }\n\n return this.transformResponse(response);\n }\n\n /**\n * Gets the complete history of EBR configurations.\n *\n * @param options - Optional options including limit\n * @returns Array of all EBR configuration versions, newest first\n */\n async getHistory(options?: { limit?: number }): Promise<EBRConfigListItem[]> {\n const activity = this.getCurrentActivity();\n\n const response = await this.execute(() =>\n this.trpc.ebr.getHistory.query({\n actividadVulnerable: activity ?? undefined,\n limit: options?.limit,\n })\n );\n\n return response;\n }\n\n /**\n * Promotes an EBR configuration from test to live environment.\n *\n * Must be called from the test environment.\n *\n * @returns The promoted configuration (now in live)\n */\n async promote(): Promise<EBRConfiguration> {\n const activity = this.getCurrentActivity();\n\n const response = await this.execute(() =>\n this.trpc.ebr.promote.mutate({\n actividadVulnerable: activity ?? undefined,\n })\n );\n\n return this.transformResponse(response);\n }\n\n // ===========================\n // Sub-Resources\n // ===========================\n\n /**\n * Weights configuration sub-resource.\n */\n get weights(): EBRWeightsResource {\n return {\n range: WEIGHT_RANGE,\n };\n }\n\n /**\n * Thresholds configuration sub-resource.\n */\n get thresholds(): EBRThresholdsResource {\n return {\n defaults: DEFAULT_THRESHOLDS as unknown as ScoreThresholds,\n };\n }\n\n /**\n * Presets sub-resource for weight presets.\n */\n get presets(): EBRPresetsResource {\n return {\n list: () => AVAILABLE_PRESET_ACTIVITIES,\n\n get: (activity: string): WeightPreset | null => {\n return WEIGHT_PRESETS[activity] ?? null;\n },\n\n suggested: (): WeightPreset | null => {\n const activity = this.getCurrentActivity();\n if (!activity) {\n return null;\n }\n return WEIGHT_PRESETS[activity] ?? null;\n },\n };\n }\n\n /**\n * Risk level utilities sub-resource.\n */\n get riskLevel(): EBRRiskLevelResource {\n return {\n mapToRegulatory: RiskLevels.mapToRegulatory,\n getUpdateFrequency: RiskLevels.getUpdateFrequency,\n };\n }\n\n // ===========================\n // Private Helpers\n // ===========================\n\n /**\n * Gets the current activity from the SDK scope.\n */\n private getCurrentActivity(): string | null {\n if (isMexicoScope(this.ctx.scope) && this.ctx.scope.actividadVulnerable) {\n return this.ctx.scope.actividadVulnerable;\n }\n return null;\n }\n\n /**\n * Wraps a tRPC operation with error mapping.\n */\n private async execute<T>(operation: () => Promise<T>): Promise<T> {\n try {\n return await operation();\n } catch (error) {\n if (error instanceof TRPCClientError) {\n throw mapTRPCError(error);\n }\n throw error;\n }\n }\n\n /**\n * Transforms API response to EBRConfiguration type.\n * Converts ISO date strings from API to Date objects.\n */\n private transformResponse(response: {\n id: string;\n organizationId: string;\n actividadVulnerable: string | null;\n environment: \"test\" | \"live\";\n version: number;\n weights: {\n client: number;\n geographic: number;\n product: number;\n transactional: number;\n };\n thresholds: ScoreThresholds;\n justification: string;\n reviewPeriodMonths: number;\n validUntil: string; // ISO string from API\n status: \"active\" | \"superseded\";\n createdAt: string; // ISO string from API\n createdBy: string;\n supersededAt?: string; // ISO string from API\n supersededBy?: string;\n promotedFromId?: string;\n }): EBRConfiguration {\n return {\n id: response.id,\n organizationId: response.organizationId,\n actividadVulnerable: response.actividadVulnerable,\n environment: response.environment,\n version: response.version,\n weights: response.weights,\n thresholds: response.thresholds,\n justification: response.justification,\n reviewPeriodMonths: response.reviewPeriodMonths,\n validUntil: new Date(response.validUntil),\n status: response.status,\n createdAt: new Date(response.createdAt),\n createdBy: response.createdBy,\n supersededAt: response.supersededAt\n ? new Date(response.supersededAt)\n : undefined,\n supersededBy: response.supersededBy,\n promotedFromId: response.promotedFromId,\n };\n }\n}\n","/**\n * tRPC Client Factory\n *\n * Creates a type-safe tRPC client for communicating with the Compliance API.\n * Uses httpBatchLink for efficient request batching.\n */\n\nimport { createTRPCClient, httpBatchLink, TRPCClientError } from \"@trpc/client\";\n\n// Type-only import from API (no runtime dependency)\nimport type { AppRouter } from \"api\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * Supported API versions\n */\nexport type APIVersion = \"v1\";\n\n/**\n * SDK Environment - determines data isolation\n */\nexport type SDKEnvironment = \"test\" | \"live\";\n\n/**\n * Configuration for creating a tRPC client\n */\nexport interface TRPCClientConfig {\n /**\n * API key for authentication (WorkOS API key)\n */\n apiKey: string;\n\n /**\n * Base URL for the API\n * @example \"https://api.compliance.artu.com\"\n */\n baseUrl: string;\n\n /**\n * Target environment for data isolation\n */\n environment: SDKEnvironment;\n\n /**\n * API version to use. Defaults to latest stable version.\n * @default \"v1\"\n */\n apiVersion?: APIVersion;\n\n /**\n * Request timeout in milliseconds\n * @default 30000\n */\n timeout?: number;\n}\n\n/**\n * tRPC client type - inferred from AppRouter\n */\nexport type TRPCClient = ReturnType<typeof createTRPCClient<AppRouter>>;\n\n// ===========================\n// Constants\n// ===========================\n\n/**\n * Current stable API version\n */\nexport const LATEST_API_VERSION: APIVersion = \"v1\";\n\n/**\n * Default request timeout in milliseconds\n */\nexport const DEFAULT_TIMEOUT = 30000;\n\n// ===========================\n// Client Factory\n// ===========================\n\n/**\n * Creates a tRPC client configured for the Compliance API\n *\n * @param config - Client configuration\n * @returns Configured tRPC client\n *\n * @example\n * ```typescript\n * const client = createAPIClient({\n * apiKey: \"sk_test_org123_abc123...\",\n * baseUrl: \"https://api.compliance.artu.com\",\n * environment: \"test\",\n * });\n *\n * // Make type-safe API calls\n * const health = await client.health.check.query();\n * ```\n */\nexport function createAPIClient(config: TRPCClientConfig) {\n const {\n apiKey,\n baseUrl,\n environment,\n apiVersion = LATEST_API_VERSION,\n timeout = DEFAULT_TIMEOUT,\n } = config;\n\n // Normalize baseUrl (remove trailing slash)\n const normalizedBaseUrl = baseUrl.replace(/\\/$/, \"\");\n\n return createTRPCClient<AppRouter>({\n links: [\n httpBatchLink({\n url: `${normalizedBaseUrl}/${apiVersion}/trpc`,\n headers: () => ({\n Authorization: `Bearer ${apiKey}`,\n \"X-Environment\": environment,\n \"X-Request-ID\": generateRequestId(),\n }),\n fetch: (url, options) => {\n return fetch(url, {\n ...options,\n signal: AbortSignal.timeout(timeout),\n });\n },\n }),\n ],\n });\n}\n\n// ===========================\n// Helpers\n// ===========================\n\n/**\n * Generates a unique request ID for tracing and debugging\n *\n * Format: req_{timestamp}_{random}\n * @example \"req_m1abc23_xk9z4w2\"\n */\nexport function generateRequestId(): string {\n const timestamp = Date.now().toString(36);\n const random = Math.random().toString(36).slice(2, 9);\n return `req_${timestamp}_${random}`;\n}\n\n/**\n * Type guard for tRPC client errors\n *\n * @param error - Unknown error value\n * @returns True if error is a TRPCClientError\n *\n * @example\n * ```typescript\n * try {\n * await client.clients.create.mutate({ name: \"Test\" });\n * } catch (error) {\n * if (isTRPCError(error)) {\n * console.log(\"tRPC error code:\", error.data?.code);\n * }\n * }\n * ```\n */\nexport function isTRPCError(\n error: unknown\n): error is TRPCClientError<AppRouter> {\n return error instanceof TRPCClientError;\n}\n\n/**\n * Extracts the request ID from a tRPC error if available\n *\n * @param error - tRPC client error\n * @returns Request ID or undefined\n */\nexport function getRequestIdFromError(\n error: TRPCClientError<AppRouter>\n): string | undefined {\n // The request ID may be in the error meta or headers\n // This will be populated when the API returns it\n return error.meta?.requestId as string | undefined;\n}\n","/**\n * Environment utilities\n *\n * Handles environment validation and base URL resolution.\n * API keys are generated via WorkOS and do not encode the environment.\n * The environment is user-specified and validated by the API.\n */\n\nimport { z } from \"zod\";\n\n// ===========================\n// Types\n// ===========================\n\n/**\n * SDK environment schema\n */\nexport const environmentSchema = z.enum([\"test\", \"live\"]);\n\n/**\n * SDK environment type\n */\nexport type Environment = z.infer<typeof environmentSchema>;\n\n/**\n * SDK environment configuration\n */\nexport interface SDKEnvironmentConfig {\n /**\n * The environment to operate in.\n * - \"test\": Uses test data, no real regulatory submissions\n * - \"live\": Uses production data, real regulatory submissions\n */\n environment: Environment;\n\n /**\n * Optional custom base URL (overrides default).\n * Useful for local development or custom deployments.\n */\n baseUrl?: string;\n}\n\n// ===========================\n// Constants\n// ===========================\n\n/**\n * Default production API base URL.\n * Both test and live environments use the same server.\n * Environment isolation is handled via the X-Environment header.\n */\nexport const DEFAULT_BASE_URL = \"https://api.artu.ai\";\n\n// ===========================\n// Functions\n// ===========================\n\n/**\n * Validates that the environment is valid\n *\n * @param env - Environment string to validate\n * @returns Validated environment\n * @throws Error if environment is invalid\n *\n * @example\n * ```typescript\n * const env = validateEnvironment(\"test\"); // \"test\"\n * validateEnvironment(\"staging\"); // throws: Invalid environment\n * ```\n */\nexport function validateEnvironment(env: string): Environment {\n const result = environmentSchema.safeParse(env);\n if (!result.success) {\n throw new Error(`Invalid environment: \"${env}\". Must be \"test\" or \"live\".`);\n }\n return result.data;\n}\n\n/**\n * Checks if a string is a valid environment\n *\n * @param env - Environment string to check\n * @returns True if valid environment\n *\n * @example\n * ```typescript\n * isValidEnvironment(\"test\"); // true\n * isValidEnvironment(\"staging\"); // false\n * ```\n */\nexport function isValidEnvironment(env: string): env is Environment {\n return environmentSchema.safeParse(env).success;\n}\n\n/**\n * Gets the default base URL.\n * Both test and live environments use the same server.\n *\n * @returns Default production base URL\n *\n * @example\n * ```typescript\n * getDefaultBaseUrl(); // \"https://api.artu.ai\"\n * ```\n */\nexport function getDefaultBaseUrl(): string {\n return DEFAULT_BASE_URL;\n}\n\n/**\n * Resolves the base URL - uses custom if provided, falls back to env var, then default\n *\n * Priority order:\n * 1. Explicit baseUrl option\n * 2. ARTU_BASE_URL environment variable\n * 3. Default production URL\n *\n * @param config - SDK environment configuration\n * @returns Resolved base URL\n *\n * @example\n * ```typescript\n * resolveBaseUrl({ environment: \"test\" });\n * // \"https://api.artu.ai\" (or ARTU_BASE_URL if set)\n *\n * resolveBaseUrl({ environment: \"test\", baseUrl: \"http://localhost:3001\" });\n * // \"http://localhost:3001\"\n * ```\n */\nexport function resolveBaseUrl(config: SDKEnvironmentConfig): string {\n // 1. Explicit baseUrl takes priority\n if (config.baseUrl) {\n // Normalize: remove trailing slash\n return config.baseUrl.replace(/\\/$/, \"\");\n }\n\n // 2. Fall back to ARTU_BASE_URL environment variable\n const envBaseUrl = process.env.ARTU_BASE_URL;\n if (envBaseUrl) {\n return envBaseUrl.replace(/\\/$/, \"\");\n }\n\n // 3. Default to production URL\n return getDefaultBaseUrl();\n}\n","/**\n * SDK Resource Registry\n *\n * Provides a registry pattern for jurisdiction/activity-specific resource factories.\n * Each jurisdiction module registers its own factories, eliminating switch statements\n * in the main SDK class.\n *\n * @example\n * ```typescript\n * // In resources/mex/registry.ts\n * import { registerScope } from '../../sdk/registry';\n * import { MexClientsResource } from './clients';\n *\n * registerScope('MX', {\n * clients: (config) => new MexClientsResource(config),\n * // ...\n * });\n *\n * // In ComplianceSDK.ts\n * const factories = getResourceFactories(scope);\n * this.clients = factories.clients(config);\n * ```\n */\n\nimport type { SDKScope } from \"./types\";\nimport type { ResourceConfig } from \"../resources/base\";\nimport type { ClientsResource } from \"../resources/clients\";\nimport type { TransactionsResource } from \"../resources/transactions\";\nimport type { ReportsResource } from \"../resources/reports\";\nimport type { BankAccountsResource } from \"../resources/bank-accounts\";\nimport type { AddressesResource } from \"../resources/addresses\";\n\n// ===========================\n// Factory Types\n// ===========================\n\n/**\n * Factory function that creates a resource instance\n */\nexport type ResourceFactory<T> = (config: ResourceConfig) => T;\n\n/**\n * Resource factories for a specific scope (jurisdiction/activity)\n *\n * Each jurisdiction/activity registers factories that create the appropriate\n * resource class instances.\n */\nexport interface ScopeResourceFactories {\n /** Factory for creating clients resource */\n clients: ResourceFactory<ClientsResource>;\n /** Factory for creating transactions resource */\n transactions: ResourceFactory<TransactionsResource>;\n /** Factory for creating reports resource */\n reports: ResourceFactory<ReportsResource>;\n /** Factory for creating bank accounts resource (optional - falls back to base) */\n bankAccounts?: ResourceFactory<BankAccountsResource>;\n /** Factory for creating addresses resource (optional for backwards compat) */\n addresses?: ResourceFactory<AddressesResource>;\n}\n\n// ===========================\n// Registry\n// ===========================\n\n/**\n * Registry of scope-specific resource factories.\n * Keys are scope identifiers:\n * - \"base\" - unscoped/default\n * - \"MX\" - Mexico jurisdiction\n * - \"MX:AVI\" - Mexico AVI activity\n * - \"MX:JYS\" - Mexico JYS activity\n * - etc.\n */\nconst scopeRegistry = new Map<string, ScopeResourceFactories>();\n\n/**\n * Generates a scope key from SDKScope\n *\n * @param scope - SDK scope configuration\n * @returns Scope key string (e.g., \"base\", \"MX\", \"MX:AVI\")\n */\nexport function getScopeKey(scope: SDKScope): string {\n if (!scope.jurisdiction) {\n return \"base\";\n }\n\n // Check for Mexico with activity\n if (\n scope.jurisdiction === \"MX\" &&\n \"actividadVulnerable\" in scope &&\n scope.actividadVulnerable\n ) {\n return `MX:${scope.actividadVulnerable}`;\n }\n\n return scope.jurisdiction;\n}\n\n/**\n * Registers resource factories for a specific scope.\n *\n * Called by jurisdiction modules during initialization.\n * Each jurisdiction/activity registers its own factories.\n *\n * @param scopeKey - Scope identifier (e.g., \"base\", \"MX\", \"MX:AVI\")\n * @param factories - Resource factory functions\n *\n * @example\n * ```typescript\n * // Register Mexico AVI factories\n * registerScope('MX:AVI', {\n * clients: (config) => new AVIClientsResource(config),\n * transactions: (config) => new AVITransactionsResource(config),\n * reports: (config) => new AVIReportsResource(config) as unknown as ReportsResource,\n * bankAccounts: (config) => new MexBankAccountsResource(config),\n * });\n * ```\n */\nexport function registerScope(\n scopeKey: string,\n factories: ScopeResourceFactories\n): void {\n if (scopeRegistry.has(scopeKey)) {\n // eslint-disable-next-line no-console\n console.warn(\n `[SDK Registry] Overwriting existing factories for scope: ${scopeKey}`\n );\n }\n scopeRegistry.set(scopeKey, factories);\n}\n\n/**\n * Gets resource factories for a specific scope.\n *\n * Looks up factories with fallback:\n * 1. Exact scope match (e.g., \"MX:AVI\")\n * 2. Jurisdiction-only match (e.g., \"MX\")\n * 3. Base/default factories\n *\n * @param scope - SDK scope configuration\n * @returns Resource factories for the scope\n * @throws Error if no factories are registered (not even base)\n *\n * @example\n * ```typescript\n * const factories = getResourceFactories({ jurisdiction: \"MX\", actividadVulnerable: \"AVI\" });\n * const clientsResource = factories.clients(config);\n * ```\n */\nexport function getResourceFactories(scope: SDKScope): ScopeResourceFactories {\n const scopeKey = getScopeKey(scope);\n\n // Try exact match first\n let factories = scopeRegistry.get(scopeKey);\n if (factories) {\n return factories;\n }\n\n // If scope has activity, try jurisdiction-only\n if (scope.jurisdiction && scopeKey.includes(\":\")) {\n factories = scopeRegistry.get(scope.jurisdiction);\n if (factories) {\n return factories;\n }\n }\n\n // Fall back to base\n factories = scopeRegistry.get(\"base\");\n if (factories) {\n return factories;\n }\n\n throw new Error(\n `[SDK Registry] No factories registered for scope: ${scopeKey}. ` +\n `Ensure registry modules are imported before creating SDK instance.`\n );\n}\n\n/**\n * Checks if factories are registered for a scope\n *\n * @param scopeKey - Scope identifier to check\n * @returns true if factories are registered\n */\nexport function hasScope(scopeKey: string): boolean {\n return scopeRegistry.has(scopeKey);\n}\n\n/**\n * Gets all registered scope keys (for debugging/testing)\n *\n * @returns Array of registered scope keys\n */\nexport function getRegisteredScopes(): string[] {\n return Array.from(scopeRegistry.keys());\n}\n\n/**\n * Clears all registered scopes (for testing only)\n * @internal\n */\nexport function clearRegistry(): void {\n scopeRegistry.clear();\n}\n","/**\n * SDK Class Registry\n *\n * Provides a registry pattern for jurisdiction-specific SDK classes.\n * Each jurisdiction can register its own SDK class that extends ComplianceSDKImpl\n * and adds jurisdiction-specific resources.\n *\n * @example\n * ```typescript\n * // In sdk/mex/index.ts\n * import { registerSDKClass } from '../sdk-registry';\n * import { MexicoComplianceSDKImpl } from './ComplianceSDK';\n *\n * registerSDKClass('MX', MexicoComplianceSDKImpl);\n *\n * // Now `new ComplianceSDK({ jurisdiction: \"MX\" })` returns MexicoComplianceSDKImpl\n * ```\n */\n\nimport type { SDKScope } from \"./types\";\nimport { getScopeKey } from \"./resource-registry\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SDKClassConstructor = new (options: any) => any;\n\nconst sdkClassRegistry = new Map<string, SDKClassConstructor>();\n\n/**\n * Registers an SDK class for a specific scope.\n *\n * @param scopeKey - Scope identifier (e.g., \"MX\", \"MX:AVI\", \"US\")\n * @param SDKClass - SDK class constructor\n */\nexport function registerSDKClass(\n scopeKey: string,\n SDKClass: SDKClassConstructor\n): void {\n if (sdkClassRegistry.has(scopeKey)) {\n // eslint-disable-next-line no-console\n console.warn(\n `[SDK Registry] Overwriting existing SDK class for scope: ${scopeKey}`\n );\n }\n sdkClassRegistry.set(scopeKey, SDKClass);\n}\n\n/**\n * Gets the SDK class for a specific scope.\n *\n * Looks up with fallback:\n * 1. Exact scope match (e.g., \"MX:AVI\")\n * 2. Jurisdiction-only match (e.g., \"MX\")\n * 3. Returns undefined (use base ComplianceSDKImpl)\n *\n * @param scope - SDK scope configuration\n * @returns SDK class constructor or undefined if no specific class registered\n */\nexport function getSDKClass(scope: SDKScope): SDKClassConstructor | undefined {\n const scopeKey = getScopeKey(scope);\n\n // Try exact match first (e.g., \"MX:AVI\")\n let cls = sdkClassRegistry.get(scopeKey);\n if (cls) return cls;\n\n // Try jurisdiction only (e.g., \"MX\") if scope has activity\n if (scope.jurisdiction && scopeKey.includes(\":\")) {\n cls = sdkClassRegistry.get(scope.jurisdiction);\n if (cls) return cls;\n }\n\n return undefined;\n}\n\n/**\n * Checks if an SDK class is registered for a scope\n *\n * @param scopeKey - Scope identifier to check\n * @returns true if an SDK class is registered\n */\nexport function hasSDKClass(scopeKey: string): boolean {\n return sdkClassRegistry.has(scopeKey);\n}\n\n/**\n * Gets all registered SDK class scope keys (for debugging/testing)\n *\n * @returns Array of registered scope keys\n */\nexport function getRegisteredSDKClasses(): string[] {\n return Array.from(sdkClassRegistry.keys());\n}\n\n/**\n * Clears all registered SDK classes (for testing only)\n * @internal\n */\nexport function clearSDKRegistry(): void {\n sdkClassRegistry.clear();\n}\n","/**\n * ComplianceSDK - Main SDK entry point\n *\n * This class provides access to all compliance API resources.\n * It initializes the tRPC client and all resource managers.\n *\n * The SDK can be scoped to a specific jurisdiction and/or actividadVulnerable,\n * which automatically applies to all resource operations.\n *\n * @example\n * ```typescript\n * // Unscoped SDK - works with any jurisdiction\n * const sdk = new ComplianceSDK({\n * apiKey: process.env.COMPLIANCE_API_KEY!,\n * environment: \"test\",\n * });\n *\n * // Mexico-scoped SDK\n * const mexSDK = new ComplianceSDK({\n * apiKey: process.env.COMPLIANCE_API_KEY!,\n * environment: \"test\",\n * jurisdiction: \"MX\",\n * });\n *\n * // Mexico AVI-scoped SDK\n * const aviSDK = new ComplianceSDK({\n * apiKey: process.env.COMPLIANCE_API_KEY!,\n * environment: \"test\",\n * jurisdiction: \"MX\",\n * actividadVulnerable: CodigoActividad.AVI,\n * });\n *\n * // When scoped, resources automatically use the jurisdiction/actividadVulnerable\n * const client = await aviSDK.clients.create({\n * type: ClientType.Person,\n * name: \"Juan García\",\n * // primaryJurisdiction defaults to \"MX\"\n * // jurisdictions.MX.actividadVulnerable.AVI is auto-initialized\n * });\n * ```\n */\n\nimport { Jurisdiction, CodigoActividad } from \"@artu-ai/shared\";\nimport {\n createAPIClient,\n type TRPCClient,\n type APIVersion,\n type SDKEnvironment,\n LATEST_API_VERSION,\n DEFAULT_TIMEOUT,\n} from \"../utils/trpc-client\";\nimport { validateEnvironment, resolveBaseUrl } from \"../utils/environment\";\nimport {\n type SDKScope,\n type Environment,\n type BaseComplianceSDK,\n type OtherJurisdictionSDKOptions,\n isMexicoScope,\n buildScope,\n} from \"./types\";\nimport { getResourceFactories } from \"./resource-registry\";\nimport { getSDKClass } from \"./sdk-registry\";\nimport { type UnscopedSDKOptions } from \"./base\";\n// Import Mexico types from type files directly to avoid circular dependency through barrel\nimport {\n type ComplianceSDKOptionsMexico,\n type MexicoSDKOptions,\n type MexicoComplianceSDK,\n} from \"./mex/types\";\nimport {\n type AVISDKOptions,\n type AVIComplianceSDK,\n} from \"./mex/actividad-vulnerable/avi/types\";\nimport {\n type JYSSDKOptions,\n type JYSComplianceSDK,\n} from \"./mex/actividad-vulnerable/jys/types\";\nimport {\n type TSCSDKOptions,\n type TSCComplianceSDK,\n} from \"./mex/actividad-vulnerable/tsc/types\";\n\n// Re-export base options type for sub-exports\nexport type { ComplianceSDKOptionsBase } from \"./types\";\n\n// Resources\nimport {\n type ClientsResource,\n type TransactionsResource,\n type ReportsResource,\n BankAccountsResource,\n AddressesResource,\n ContactMethodsResource,\n DocumentsResource,\n} from \"../resources\";\n\n// ===========================\n// Re-exports\n// ===========================\n\n// Re-export SDKScope for external use\nexport type { SDKScope };\n\n// Re-export Mexico SDK types for convenience\nexport type {\n ComplianceSDKOptionsMexico,\n MexicoSDKOptions,\n AVISDKOptions,\n JYSSDKOptions,\n TSCSDKOptions,\n MexicoComplianceSDK,\n AVIComplianceSDK,\n JYSComplianceSDK,\n TSCComplianceSDK,\n};\n\n// ===========================\n// SDK Options Types\n// ===========================\n\n/**\n * SDK configuration options.\n *\n * Use `actividadVulnerable` only when `jurisdiction` is `Jurisdiction.Mexico`.\n */\nexport type ComplianceSDKOptions =\n | UnscopedSDKOptions\n | ComplianceSDKOptionsMexico;\n\n// ===========================\n// Typed SDK Interfaces\n// ===========================\n\n/**\n * Unscoped SDK - uses base resource types\n */\nexport interface UnscopedComplianceSDK extends BaseComplianceSDK {\n // Core resources (base types)\n readonly clients: ClientsResource;\n readonly transactions: TransactionsResource;\n readonly reports: ReportsResource;\n readonly bankAccounts: BankAccountsResource;\n\n // Supporting resources (base types)\n readonly addresses: AddressesResource;\n readonly contactMethods: ContactMethodsResource;\n readonly documents: DocumentsResource;\n}\n\n// ===========================\n// ComplianceSDK Class\n// ===========================\n\n/**\n * Main entry point for the Compliance SDK.\n *\n * Provides access to all API resources:\n * - `clients` - Client management (individuals, companies, trusts)\n * - `transactions` - Transaction management\n * - `addresses` - Address management\n * - `contactMethods` - Contact method management\n * - `bankAccounts` - Bank account management\n * - `documents` - Document upload and management\n * - `reports` - Regulatory report generation and submission\n *\n * ## Scoping\n *\n * The SDK can be scoped to a specific jurisdiction and/or actividadVulnerable:\n *\n * ```typescript\n * // Unscoped - generic SDK\n * const sdk = new ComplianceSDK({ apiKey, environment: \"test\" });\n *\n * // Scoped to Mexico\n * const mexSDK = new ComplianceSDK({\n * apiKey,\n * environment: \"test\",\n * jurisdiction: Jurisdiction.Mexico,\n * });\n *\n * // Scoped to Mexico AVI actividadVulnerable\n * const aviSDK = new ComplianceSDK({\n * apiKey,\n * environment: \"test\",\n * jurisdiction: Jurisdiction.Mexico,\n * actividadVulnerable: CodigoActividad.AVI,\n * });\n * ```\n *\n * When scoped:\n * - Create operations default to the specified jurisdiction/actividadVulnerable\n * - List operations filter by the specified jurisdiction/actividadVulnerable\n * - Models returned are the appropriate type for the scope\n *\n * @example\n * ```typescript\n * import { ComplianceSDK, ClientType, Jurisdiction, CodigoActividad } from \"@artu/compliance-sdk\";\n *\n * const sdk = new ComplianceSDK({\n * apiKey: process.env.COMPLIANCE_API_KEY!,\n * environment: \"test\",\n * jurisdiction: Jurisdiction.Mexico,\n * actividadVulnerable: CodigoActividad.AVI,\n * });\n *\n * // Check scope\n * console.log(sdk.jurisdiction); // \"MX\"\n * console.log(sdk.actividadVulnerable); // \"AVI\"\n * console.log(sdk.isMexico); // true\n *\n * // Create a client - jurisdiction/actividadVulnerable are auto-applied\n * const client = await sdk.clients.create({\n * type: ClientType.Person,\n * name: \"Juan García\",\n * });\n * ```\n */\nexport class ComplianceSDKImpl {\n // ===========================\n // Protected Properties (accessible by subclasses)\n // ===========================\n\n /** tRPC client for API communication */\n protected readonly trpc!: TRPCClient;\n\n /** Current environment */\n protected readonly _environment!: Environment;\n\n /** Current API version */\n protected readonly _apiVersion!: APIVersion;\n\n /** SDK scope (jurisdiction and actividadVulnerable) */\n protected readonly _scope!: SDKScope;\n\n // ===========================\n // Resource Managers\n // ===========================\n\n /**\n * Clients resource manager.\n *\n * Provides CRUD operations for clients (individuals, companies, trusts).\n * When SDK is scoped, creates and lists are automatically scoped.\n *\n * @example\n * ```typescript\n * // Create a client (uses SDK scope for jurisdiction/activity)\n * const client = await sdk.clients.create({\n * type: ClientType.Person,\n * name: \"Juan García\",\n * });\n *\n * // List clients (filtered by SDK scope)\n * const clients = await sdk.clients.list();\n *\n * // Iterate through all clients in scope\n * for await (const client of sdk.clients.iterate()) {\n * console.log(client.name);\n * }\n * ```\n */\n public readonly clients!: ClientsResource;\n\n /**\n * Transactions resource manager.\n *\n * Provides CRUD operations for transactions and client linking.\n * When SDK is scoped, creates and lists are automatically scoped.\n *\n * @example\n * ```typescript\n * // Create a transaction (uses SDK scope)\n * const txn = await sdk.transactions.create({\n * amount: 50000,\n * currency: Currency.MXN,\n * });\n *\n * // Link a client to transaction\n * await sdk.transactions.linkClient(txn.id, clientId, \"originator\");\n * ```\n */\n public readonly transactions!: TransactionsResource;\n\n /**\n * Addresses resource manager.\n *\n * Provides CRUD operations for client addresses.\n *\n * @example\n * ```typescript\n * const address = await sdk.addresses.create({\n * clientId,\n * type: AddressType.Home,\n * street: \"Av. Reforma 222\",\n * city: \"México\",\n * country: Country.Mexico,\n * });\n * ```\n */\n public readonly addresses!: AddressesResource;\n\n /**\n * Contact methods resource manager.\n *\n * Provides CRUD operations for client contact methods (email, phone).\n *\n * @example\n * ```typescript\n * const contact = await sdk.contactMethods.create({\n * clientId,\n * type: ContactMethodType.Email,\n * value: \"juan@example.com\",\n * });\n * ```\n */\n public readonly contactMethods!: ContactMethodsResource;\n\n /**\n * Bank accounts resource manager.\n *\n * Provides CRUD operations for client bank accounts.\n *\n * @example\n * ```typescript\n * const account = await sdk.bankAccounts.create({\n * clientId,\n * type: BankAccountType.Checking,\n * bankName: \"BBVA\",\n * });\n * ```\n */\n public readonly bankAccounts!: BankAccountsResource;\n\n /**\n * Documents resource manager.\n *\n * Provides upload, download, and management for client documents.\n *\n * @example\n * ```typescript\n * const doc = await sdk.documents.upload({\n * clientId,\n * category: DocumentCategory.Identification,\n * type: MexDocumentType.INE,\n * file: buffer,\n * filename: \"ine.pdf\",\n * });\n * ```\n */\n public readonly documents!: DocumentsResource;\n\n /**\n * Reports resource manager.\n *\n * Provides CRUD operations for regulatory reports.\n * When SDK is scoped, creates and lists are automatically scoped.\n *\n * @example\n * ```typescript\n * // Create a report (uses SDK scope for jurisdiction/activity)\n * const report = await sdk.reports.create({\n * // mesReportado is required for AVI scope\n * jurisdictions: {\n * MX: {\n * actividadVulnerable: {\n * AVI: { mesReportado: \"202403\" },\n * },\n * },\n * },\n * });\n *\n * // Validate and generate\n * const validation = await sdk.reports.validateReport(report.id);\n * if (validation.valid) {\n * const result = await sdk.reports.generate(report.id);\n * }\n * ```\n */\n public readonly reports!: ReportsResource;\n\n // ===========================\n // Constructor\n // ===========================\n\n constructor(options: ComplianceSDKOptions) {\n const {\n apiKey,\n environment,\n baseUrl,\n apiVersion = LATEST_API_VERSION,\n timeout = DEFAULT_TIMEOUT,\n jurisdiction,\n } = options;\n\n // Extract actividadVulnerable only for Mexico options\n const actividadVulnerable =\n \"actividadVulnerable\" in options\n ? options.actividadVulnerable\n : undefined;\n\n // Build scope early for SDK class dispatch\n const scope = buildScope(jurisdiction, actividadVulnerable);\n\n // === SDK Class Dispatch ===\n // If we're directly constructing ComplianceSDKImpl (not via super() from subclass),\n // check if a jurisdiction-specific SDK class is registered and return that instead.\n if (new.target === ComplianceSDKImpl) {\n const SDKClass = getSDKClass(scope);\n if (SDKClass) {\n // Return instance of jurisdiction-specific SDK\n return new SDKClass(options) as this;\n }\n }\n\n // === Normal base SDK initialization ===\n\n // Resolve API key: prefer explicit option, fallback to environment variable\n const resolvedApiKey = apiKey || process.env.ARTU_API_KEY;\n\n // Validate API key is provided\n if (!resolvedApiKey || typeof resolvedApiKey !== \"string\") {\n throw new Error(\n \"API key is required. Provide it via options.apiKey or set the ARTU_API_KEY environment variable.\"\n );\n }\n\n // Validate environment\n const validatedEnvironment = validateEnvironment(environment);\n this._environment = validatedEnvironment;\n this._apiVersion = apiVersion;\n\n // Validate actividadVulnerable requires Mexico jurisdiction\n if (actividadVulnerable && jurisdiction !== Jurisdiction.Mexico) {\n throw new Error(\n `actividadVulnerable can only be specified when jurisdiction is Mexico. ` +\n `Got jurisdiction: ${jurisdiction}`\n );\n }\n\n // Store scope\n this._scope = scope;\n\n // Resolve base URL\n const resolvedBaseUrl = resolveBaseUrl({\n environment: validatedEnvironment,\n baseUrl,\n });\n\n // Create tRPC client\n this.trpc = createAPIClient({\n apiKey: resolvedApiKey,\n baseUrl: resolvedBaseUrl,\n environment: validatedEnvironment as SDKEnvironment,\n apiVersion,\n timeout,\n });\n\n // Initialize resource managers using registry\n const resourceConfig = {\n trpc: this.trpc,\n scope: this._scope,\n environment: validatedEnvironment,\n };\n const factories = getResourceFactories(this._scope);\n\n // Create scoped resources from registry\n this.clients = factories.clients(resourceConfig);\n this.transactions = factories.transactions(resourceConfig);\n this.reports = factories.reports(resourceConfig);\n\n // Bank accounts and addresses can be scoped or use base\n this.bankAccounts = factories.bankAccounts\n ? factories.bankAccounts(resourceConfig)\n : new BankAccountsResource(resourceConfig);\n this.addresses = factories.addresses\n ? factories.addresses(resourceConfig)\n : new AddressesResource(resourceConfig);\n\n // Supporting resources (not scoped by jurisdiction)\n this.contactMethods = new ContactMethodsResource(resourceConfig);\n this.documents = new DocumentsResource(resourceConfig);\n }\n\n // ===========================\n // Public Getters - Environment\n // ===========================\n\n /**\n * Current environment (\"test\" or \"live\").\n *\n * @example\n * ```typescript\n * console.log(`Running in ${sdk.environment} mode`);\n * ```\n */\n get environment(): Environment {\n return this._environment;\n }\n\n /**\n * Current API version.\n *\n * @example\n * ```typescript\n * console.log(`Using API version ${sdk.apiVersion}`);\n * ```\n */\n get apiVersion(): APIVersion {\n return this._apiVersion;\n }\n\n /**\n * Whether SDK is running in test environment.\n *\n * @example\n * ```typescript\n * if (sdk.isTest) {\n * console.log(\"Running in test mode - no real data affected\");\n * }\n * ```\n */\n get isTest(): boolean {\n return this._environment === \"test\";\n }\n\n /**\n * Whether SDK is running in live environment.\n *\n * @example\n * ```typescript\n * if (sdk.isLive) {\n * console.log(\"CAUTION: Live environment - real data will be affected\");\n * }\n * ```\n */\n get isLive(): boolean {\n return this._environment === \"live\";\n }\n\n // ===========================\n // Public Getters - Scope\n // ===========================\n\n /**\n * Current jurisdiction scope, or undefined if unscoped.\n *\n * @example\n * ```typescript\n * if (sdk.jurisdiction === Jurisdiction.Mexico) {\n * console.log(\"SDK is scoped to Mexico\");\n * }\n * ```\n */\n get jurisdiction(): Jurisdiction | undefined {\n return this._scope.jurisdiction;\n }\n\n /**\n * Current actividadVulnerable scope, or undefined if unscoped.\n * Only available when jurisdiction is Mexico.\n *\n * @example\n * ```typescript\n * if (sdk.actividadVulnerable === CodigoActividad.AVI) {\n * console.log(\"SDK is scoped to Activos Virtuales\");\n * }\n * ```\n */\n get actividadVulnerable(): CodigoActividad | undefined {\n return isMexicoScope(this._scope)\n ? this._scope.actividadVulnerable\n : undefined;\n }\n\n /**\n * The complete scope configuration.\n *\n * @example\n * ```typescript\n * console.log(sdk.scope); // { jurisdiction: \"MX\", actividadVulnerable: \"AVI\" }\n * ```\n */\n get scope(): Readonly<SDKScope> {\n return { ...this._scope };\n }\n\n /**\n * Whether SDK is scoped to any jurisdiction.\n */\n get isScoped(): boolean {\n return this._scope.jurisdiction !== undefined;\n }\n\n /**\n * Whether SDK is scoped to Mexico jurisdiction.\n */\n get isMexico(): boolean {\n return this._scope.jurisdiction === Jurisdiction.Mexico;\n }\n\n /**\n * Whether SDK is scoped to United States jurisdiction.\n */\n get isUnitedStates(): boolean {\n return this._scope.jurisdiction === Jurisdiction.UnitedStates;\n }\n\n /**\n * Whether SDK is scoped to an Actividad Vulnerable activity.\n */\n get isActividadVulnerable(): boolean {\n return (\n isMexicoScope(this._scope) &&\n this._scope.actividadVulnerable !== undefined\n );\n }\n}\n\n// ===========================\n// Constructor Interface\n// ===========================\n\n/**\n * ComplianceSDK constructor with overloaded signatures.\n *\n * This interface enables `new ComplianceSDK(options)` to return the correct\n * typed SDK interface based on the jurisdiction and actividadVulnerable options.\n *\n * @example\n * ```typescript\n * // Unscoped SDK - base types\n * const sdk = new ComplianceSDK({\n * apiKey: \"...\",\n * environment: \"test\",\n * });\n * // sdk.clients is ClientsResource\n *\n * // Mexico-scoped SDK\n * const mexSdk = new ComplianceSDK({\n * apiKey: \"...\",\n * environment: \"test\",\n * jurisdiction: \"MX\",\n * });\n * // mexSdk.clients is MexClientsResource\n *\n * // AVI-scoped SDK\n * const aviSdk = new ComplianceSDK({\n * apiKey: \"...\",\n * environment: \"test\",\n * jurisdiction: \"MX\",\n * actividadVulnerable: \"AVI\",\n * });\n * // aviSdk.clients is AVIClientsResource\n * // aviSdk.clients.create() accepts CreateAVIClientInput\n * ```\n */\nexport interface ComplianceSDKConstructor {\n new (options: AVISDKOptions): AVIComplianceSDK;\n new (options: JYSSDKOptions): JYSComplianceSDK;\n new (options: TSCSDKOptions): TSCComplianceSDK;\n new (options: MexicoSDKOptions): MexicoComplianceSDK;\n new (\n options: OtherJurisdictionSDKOptions | UnscopedSDKOptions\n ): UnscopedComplianceSDK;\n new (options: ComplianceSDKOptions): ComplianceSDK;\n}\n\n// Cast the class to use the overloaded constructor interface\n// This enables proper type inference when using `new ComplianceSDK(options)`\nexport const ComplianceSDK: ComplianceSDKConstructor =\n ComplianceSDKImpl as ComplianceSDKConstructor;\n\n// Also export as a type for those who need it\nexport type ComplianceSDK = InstanceType<typeof ComplianceSDKImpl>;\n","/**\n * Mexico-scoped ComplianceSDK\n *\n * Provides Mexico-specific resources like EBR (Expediente de Beneficiario Real).\n */\n\nimport { ComplianceSDKImpl } from \"../ComplianceSDK\";\nimport type {\n MexicoScopedSDKOptions,\n ComplianceSDKOptionsMexico,\n} from \"./types\";\nimport { EBRResource } from \"../../resources/mex/ebr\";\n\n\n/**\n * Mexico ComplianceSDK Implementation.\n *\n * Extends the base SDK with Mexico-specific resources.\n * This class is used when you create a ComplianceSDK with `jurisdiction: \"MX\"`.\n *\n * Registration is handled by `registerMexicoScopes()` in `./index.ts`.\n *\n * @example\n * ```typescript\n * const sdk = new ComplianceSDK({\n * apiKey: process.env.API_KEY!,\n * environment: \"test\",\n * jurisdiction: \"MX\",\n * });\n *\n * // Mexico-specific EBR resource is available\n * console.log(sdk.ebr); // EbrResource instance\n * ```\n */\nexport class MexicoComplianceSDKImpl extends ComplianceSDKImpl {\n /**\n * EBR (Expediente de Beneficiario Real) resource.\n *\n * Mexico-only resource for managing beneficial owner records.\n */\n public readonly ebr: EBRResource;\n\n constructor(options: ComplianceSDKOptionsMexico) {\n super(options);\n\n // Add Mexico-specific resources\n this.ebr = new EBRResource({\n trpc: this.trpc,\n scope: this._scope,\n environment: this.environment,\n });\n }\n}\n\n/**\n * Mexico-scoped ComplianceSDK (convenience class).\n * Pre-configured for Mexico jurisdiction - no need to specify jurisdiction in options.\n *\n * Includes Mexico-specific resources:\n * - `ebr` - EBR (Evaluación Basada en Riesgos) for AML/KYC risk evaluation\n *\n * @example\n * ```typescript\n * import { ComplianceSDK } from \"@artu/compliance-sdk/mexico\";\n *\n * const sdk = new ComplianceSDK({\n * apiKey: process.env.API_KEY!,\n * environment: \"test\",\n * });\n *\n * // Already scoped to Mexico - no need to specify jurisdiction\n * const client = await sdk.clients.create({\n * type: ClientType.Person,\n * name: \"Juan García\",\n * });\n *\n * // Access Mexico-specific EBR resource\n * const weights = sdk.ebr.presets.suggested();\n * ```\n */\nexport class MexicoComplianceSDKScoped extends MexicoComplianceSDKImpl {\n /**\n * EBR (Evaluación Basada en Riesgos) resource manager.\n *\n * Provides risk-based evaluation methodology for AML/KYC compliance\n * as required by Mexican LFPIORPI regulations.\n *\n * Key features:\n * - Immutable configurations (append-only for audit trail)\n * - Scope-aware (global or activity-specific)\n * - Weight presets for all 15 Actividades Vulnerables\n * - Risk level mapping (5 internal → 3 regulatory)\n *\n * @example\n * ```typescript\n * // Create EBR configuration\n * const config = await sdk.ebr.create({\n * weights: { client: 0.25, geographic: 0.35, product: 0.20, transactional: 0.20 },\n * thresholds: sdk.ebr.thresholds.defaults,\n * justification: \"Initial configuration Q4 2024\",\n * });\n *\n * // Get suggested preset for current activity\n * const suggested = sdk.ebr.presets.suggested();\n *\n * // Map risk level for regulatory reporting\n * const regulatory = sdk.ebr.riskLevel.mapToRegulatory(\"muy_alto\"); // \"alto\"\n * ```\n */\n public readonly ebr: EBRResource;\n\n constructor(options: MexicoScopedSDKOptions) {\n const { actividadVulnerable, ...baseOptions } = options;\n super({ ...baseOptions, jurisdiction: \"MX\", actividadVulnerable });\n\n // Initialize Mexico-specific resources\n this.ebr = new EBRResource({\n trpc: this.trpc,\n scope: this.scope,\n environment: this.environment,\n });\n }\n}\n","/**\n * Filter utilities\n *\n * Helpers for building type-safe filter objects for list operations.\n * These functions create filter objects that match the API's filter schemas.\n */\n\nimport type {\n ClientFilter,\n TransactionFilter,\n DocumentFilter,\n BankAccountFilter,\n} from \"@artu-ai/shared\";\n\n// ===========================\n// Filter Builders\n// ===========================\n\n/**\n * Helper to build a type-safe client filter object.\n * Provides autocomplete for valid filter properties.\n *\n * @param filter - Client filter object\n * @returns The same filter object (type-safe passthrough)\n *\n * @example\n * ```typescript\n * const filter = buildClientFilter({\n * name: { contains: \"García\" },\n * type: { in: [\"individual\", \"company\"] },\n * });\n * ```\n */\nexport function buildClientFilter(filter: ClientFilter): ClientFilter {\n return filter;\n}\n\n/**\n * Helper to build a type-safe transaction filter object.\n *\n * @param filter - Transaction filter object\n * @returns The same filter object (type-safe passthrough)\n */\nexport function buildTransactionFilter(\n filter: TransactionFilter\n): TransactionFilter {\n return filter;\n}\n\n/**\n * Helper to build a type-safe document filter object.\n *\n * @param filter - Document filter object\n * @returns The same filter object (type-safe passthrough)\n */\nexport function buildDocumentFilter(filter: DocumentFilter): DocumentFilter {\n return filter;\n}\n\n/**\n * Helper to build a type-safe bank account filter object.\n *\n * @param filter - Bank account filter object\n * @returns The same filter object (type-safe passthrough)\n */\nexport function buildBankAccountFilter(\n filter: BankAccountFilter\n): BankAccountFilter {\n return filter;\n}\n\n// ===========================\n// String Filter Helpers\n// ===========================\n\n/**\n * Creates a \"contains\" filter for a string field.\n * Matches if the field contains the substring (case-insensitive).\n *\n * @param value - Substring to search for\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { name: contains(\"García\") }\n * // Matches: \"Juan García\", \"García López\", etc.\n * ```\n */\nexport function contains(value: string) {\n return { contains: value };\n}\n\n/**\n * Creates a \"starts with\" filter for a string field.\n * Matches if the field starts with the prefix (case-insensitive).\n *\n * @param value - Prefix to match\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { name: startsWith(\"Juan\") }\n * // Matches: \"Juan García\", \"Juan López\", etc.\n * ```\n */\nexport function startsWith(value: string) {\n return { startsWith: value };\n}\n\n/**\n * Creates an \"ends with\" filter for a string field.\n * Matches if the field ends with the suffix (case-insensitive).\n *\n * @param value - Suffix to match\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { email: endsWith(\"@company.com\") }\n * ```\n */\nexport function endsWith(value: string) {\n return { endsWith: value };\n}\n\n/**\n * Creates an \"equals\" filter for exact string matching.\n * Matches if the field equals the value exactly (case-sensitive).\n *\n * @param value - Exact value to match\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { rfc: equals(\"XAXX010101000\") }\n * ```\n */\nexport function equals<T extends string | number | boolean>(value: T) {\n return { eq: value };\n}\n\n/**\n * Creates a \"not equals\" filter.\n * Matches if the field does not equal the value.\n *\n * @param value - Value to exclude\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { status: notEquals(\"deleted\") }\n * ```\n */\nexport function notEquals<T extends string | number | boolean>(value: T) {\n return { neq: value };\n}\n\n// ===========================\n// Array Filter Helpers\n// ===========================\n\n/**\n * Creates an \"in\" filter for matching one of multiple values.\n * Matches if the field equals any of the provided values.\n *\n * @param values - Values to match against\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { type: oneOf(\"individual\", \"company\") }\n * // Matches if type is \"individual\" OR \"company\"\n * ```\n */\nexport function oneOf<T extends string | number>(...values: T[]) {\n return { in: values };\n}\n\n/**\n * Creates a \"not in\" filter for excluding values.\n * Matches if the field does NOT equal any of the provided values.\n *\n * @param values - Values to exclude\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { status: notOneOf(\"deleted\", \"archived\") }\n * // Matches if status is NOT \"deleted\" AND NOT \"archived\"\n * ```\n */\nexport function notOneOf<T extends string | number>(...values: T[]) {\n return { nin: values };\n}\n\n// ===========================\n// Date Filter Helpers\n// ===========================\n\n/**\n * Creates a date range filter (inclusive on both ends).\n *\n * @param start - Start of range (optional)\n * @param end - End of range (optional)\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { createdAt: dateRange(new Date(\"2024-01-01\"), new Date(\"2024-12-31\")) }\n * // Matches dates from Jan 1 to Dec 31, 2024 (inclusive)\n * ```\n */\nexport function dateRange(start?: Date, end?: Date) {\n const filter: { gte?: string; lte?: string } = {};\n if (start) filter.gte = start.toISOString();\n if (end) filter.lte = end.toISOString();\n return filter;\n}\n\n/**\n * Creates an \"after\" date filter (exclusive).\n * Matches if the field is strictly after the date.\n *\n * @param date - Date to compare against\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { createdAt: after(new Date(\"2024-01-01\")) }\n * // Matches dates after Jan 1, 2024 (not including Jan 1)\n * ```\n */\nexport function after(date: Date) {\n return { gt: date.toISOString() };\n}\n\n/**\n * Creates a \"before\" date filter (exclusive).\n * Matches if the field is strictly before the date.\n *\n * @param date - Date to compare against\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { createdAt: before(new Date(\"2024-12-31\")) }\n * // Matches dates before Dec 31, 2024 (not including Dec 31)\n * ```\n */\nexport function before(date: Date) {\n return { lt: date.toISOString() };\n}\n\n/**\n * Creates an \"on or after\" date filter (inclusive).\n *\n * @param date - Date to compare against\n * @returns Filter object\n */\nexport function onOrAfter(date: Date) {\n return { gte: date.toISOString() };\n}\n\n/**\n * Creates an \"on or before\" date filter (inclusive).\n *\n * @param date - Date to compare against\n * @returns Filter object\n */\nexport function onOrBefore(date: Date) {\n return { lte: date.toISOString() };\n}\n\n// ===========================\n// Number Filter Helpers\n// ===========================\n\n/**\n * Creates a number range filter (inclusive on both ends).\n *\n * @param min - Minimum value (optional)\n * @param max - Maximum value (optional)\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { amount: numberRange(1000, 10000) }\n * // Matches amounts from 1000 to 10000 (inclusive)\n * ```\n */\nexport function numberRange(min?: number, max?: number) {\n const filter: { gte?: number; lte?: number } = {};\n if (min !== undefined) filter.gte = min;\n if (max !== undefined) filter.lte = max;\n return filter;\n}\n\n/**\n * Creates a \"greater than\" number filter (exclusive).\n *\n * @param value - Value to compare against\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { amount: greaterThan(1000) }\n * // Matches amounts > 1000\n * ```\n */\nexport function greaterThan(value: number) {\n return { gt: value };\n}\n\n/**\n * Creates a \"less than\" number filter (exclusive).\n *\n * @param value - Value to compare against\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { amount: lessThan(10000) }\n * // Matches amounts < 10000\n * ```\n */\nexport function lessThan(value: number) {\n return { lt: value };\n}\n\n/**\n * Creates a \"greater than or equal\" number filter (inclusive).\n *\n * @param value - Value to compare against\n * @returns Filter object\n */\nexport function atLeast(value: number) {\n return { gte: value };\n}\n\n/**\n * Creates a \"less than or equal\" number filter (inclusive).\n *\n * @param value - Value to compare against\n * @returns Filter object\n */\nexport function atMost(value: number) {\n return { lte: value };\n}\n\n// ===========================\n// Boolean Filter Helpers\n// ===========================\n\n/**\n * Creates a filter for true boolean values.\n *\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { isActive: isTrue() }\n * ```\n */\nexport function isTrue() {\n return { eq: true };\n}\n\n/**\n * Creates a filter for false boolean values.\n *\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { isDeleted: isFalse() }\n * ```\n */\nexport function isFalse() {\n return { eq: false };\n}\n\n// ===========================\n// Null Filter Helpers\n// ===========================\n\n/**\n * Creates a filter for null/undefined values.\n *\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { deletedAt: isNull() }\n * ```\n */\nexport function isNull() {\n return { eq: null };\n}\n\n/**\n * Creates a filter for non-null values.\n *\n * @returns Filter object\n *\n * @example\n * ```typescript\n * { rfc: isNotNull() }\n * ```\n */\nexport function isNotNull() {\n return { neq: null };\n}\n"]}
|