zod-ir 1.3.1 → 1.4.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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 [Reza Kheradmandi]
3
+ Copyright (c) 2025 Reza Kheradmandi
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -29,13 +29,15 @@
29
29
  - ✅ **National Code:** Validates using the official checksum algorithm.
30
30
  - 🏢 **Shenase Melli:** Validates Legal Person ID (Company ID).
31
31
  - 💳 **Bank Card:** Validates 16-digit card numbers (Luhn algorithm).
32
+ - 🚗 **License Plate:** Validates Iranian car plates and **Detects City/Province**.
33
+ - 🧾 **Bill & Payment ID:** Validates Utility Bills (Water, Electricity, Gas, etc.) and **Calculates Amount**.
32
34
  - 📱 **Mobile Number:** Validates `09xx`, `+989xx`, `9xx`.
33
35
  - 🏦 **Sheba (IBAN):** Validates structure and checksum (ISO 7064).
34
36
  - ✈️ **Passport:** Validates Iranian Passport numbers.
35
37
  - 📮 **Postal Code:** Validates 10-digit Iranian postal codes.
36
38
  - ☎️ **Landline:** Validates fixed line numbers with area codes.
37
- - 🔄 **Auto-fix Digits:** Automatically converts Persian/Arabic digits and characters (ي, ك) to standard format.
38
- - 🎨 **Metadata Extraction:** Extract **Bank Name/Color** from card numbers and **Operator Name** from mobiles.
39
+ - 🔄 **Auto-fix Digits:** Automatically converts Persian/Arabic digits and characters (ي, ك) to standard English.
40
+ - 🎨 **Metadata Extraction:** Extract **Bank Name/Color/Logo**, **Operator**, **Bill Type**, and **Plate Location**.
39
41
  - 🌍 **Bilingual:** Built-in error messages in **Persian** and **English**.
40
42
 
41
43
  ---
@@ -45,6 +47,8 @@
45
47
  ```bash
46
48
  npm install zod zod-ir
47
49
  # or
50
+ pnpm add zod zod-ir
51
+ # or
48
52
  yarn add zod zod-ir
49
53
  ```
50
54
 
@@ -57,11 +61,11 @@ yarn add zod zod-ir
57
61
  import { z } from "zod";
58
62
  import {
59
63
  zMelliCode,
60
- zShenaseMelli,
61
64
  zIranianMobile,
62
65
  zCardNumber,
63
- zSheba,
64
- zPassport,
66
+ zBillId,
67
+ zPaymentId,
68
+ zPlateNumber,
65
69
  preprocessNumber,
66
70
  } from "zod-ir";
67
71
 
@@ -69,57 +73,55 @@ const UserSchema = z.object({
69
73
  // 1. National Code with Auto-Fix (Converts ۱۲۳ -> 123)
70
74
  nationalCode: preprocessNumber(zMelliCode()),
71
75
 
72
- // 2. Company ID (Shenase Melli)
73
- companyId: zShenaseMelli({ message: "شناسه ملی نامعتبر است" }),
74
-
75
- // 3. Mobile (Strict Mode: Must start with 0)
76
+ // 2. Mobile (Strict Mode: Must start with 0)
76
77
  mobile: zIranianMobile({ strictZero: true }),
77
78
 
78
- // 4. Bank Card
79
+ // 3. Bank Card
79
80
  card: zCardNumber(),
80
81
 
81
- // 5. Sheba (IBAN) - English Error
82
- iban: zSheba({ locale: "en" }),
82
+ // 4. Car Plate (e.g., 12B345-11 or ۱۲ب۳۴۵-۱۱)
83
+ plate: zPlateNumber(),
83
84
 
84
- // 6. Passport
85
- passport: zPassport(),
85
+ // 5. Bill & Payment ID
86
+ billId: zBillId(),
87
+ paymentId: zPaymentId(),
86
88
  });
87
-
88
- // Example Usage
89
- try {
90
- const result = UserSchema.parse({
91
- nationalCode: "۱۲۳۴۵۶۷۸۹۱", // User typed in Farsi
92
- companyId: "10100448712",
93
- mobile: "09121234567",
94
- card: "6362147010005732",
95
- iban: "IR330620000000202901868005",
96
- passport: "A12345678",
97
- });
98
- console.log("Valid Data:", result);
99
- } catch (err) {
100
- console.log(err);
101
- }
102
89
  ```
103
90
 
104
91
  2. Extracting Metadata (New ✨)
105
- You can extract useful information like Bank Name, Brand Color, or Mobile Operator directly from your validated data.
92
+ You can extract useful information like Bank Name, Color, Bill Type, Amount, or Plate Location.
106
93
 
107
94
  ```typescript
108
- import { getBankInfo, getMobileOperator } from "zod-ir";
95
+ import {
96
+ getBankInfo,
97
+ getMobileOperator,
98
+ getBillInfo,
99
+ getPlateInfo,
100
+ } from "zod-ir";
109
101
 
110
- // --- Bank Info ---
102
+ // 🏦 Bank Info
111
103
  const bank = getBankInfo("6037991155667788");
112
104
  if (bank) {
113
105
  console.log(bank.name); // "Melli"
114
106
  console.log(bank.label); // "ملی"
115
107
  console.log(bank.color); // "#EF3F3E" (Great for UI backgrounds!)
116
- console.log(bank.formatted); // "6037-9911-5566-7788"
108
+ console.log(bank.logo); // URL to bank logo
117
109
  }
118
110
 
119
- // --- Mobile Operator ---
120
- const operator = getMobileOperator("09121234567");
121
- if (operator) {
122
- console.log(operator.label); // "همراه اول"
111
+ // 🚗 Plate Info
112
+ const plate = getPlateInfo("64م322-23");
113
+ if (plate) {
114
+ console.log(plate.province); // "اصفهان"
115
+ console.log(plate.city); // "نایین"
116
+ }
117
+
118
+ // 🧾 Bill Info (Water, Electricity, Gas...)
119
+ // Returns bill type, validity, and calculates amount from payment ID
120
+ const bill = getBillInfo("9006117002129", "60240335");
121
+ if (bill) {
122
+ console.log(bill.type.label); // "برق"
123
+ console.log(bill.formattedAmount); // "602,000" (Rials)
124
+ console.log(bill.isValid); // true
123
125
  }
124
126
  ```
125
127
 
@@ -171,6 +173,9 @@ export default function MyForm() {
171
173
  | `zPassport` | Validates Iranian Passport numbers. |
172
174
  | `zPostalCode` | Validates 10-digit Iranian postal codes. |
173
175
  | `zLandline` | Validates landline phone numbers with area codes. |
176
+ | `zBillId` | Validates Bill ID (Shenase Ghabz). |
177
+ | `zPaymentId` | Validates Payment ID (Shenase Pardakht). |
178
+ | `zPlateNumber` | Validates Vehicle License Plate. |
174
179
  | `preprocessNumber` | Utility: Wraps any validator to convert Persian digits to English. |
175
180
 
176
181
  #### Options Interface
@@ -185,11 +190,23 @@ All validators accept an optional configuration object to customize behavior.
185
190
 
186
191
  ## Metadata Helpers (New)
187
192
 
188
- | Function | Return Type | Description |
189
- | :-------------------------- | :---------------------------------------- | ------------------------------------------------------------------------------ |
190
- | `getBankInfo(card)` | `{ name, label, color, logo, formatted }` | Returns bank details including **Logo URL** from card number.number. |
191
- | `getMobileOperator(mobile)` | `{ name, label, logo }` | Returns operator (MCI, Irancell...) including **Logo URL** from mobile number. |
192
- | `verifyAndNormalize(str)` | `string` | Converts Persian/Arabic digits & chars (ي, ك) to standard English. |
193
+ | Function | Return Type | Description |
194
+ | :--------------------------- | :------------------------------------------- | ------------------------------------------------------------------------------ |
195
+ | `getBankInfo(card)` | `{ name, label, color, logo, formatted }` | Returns bank details including **Logo URL** from card number.number. |
196
+ | `getMobileOperator(mobile)` | `{ name, label, logo }` | Returns operator (MCI, Irancell...) including **Logo URL** from mobile number. |
197
+ | `getBillInfo(billId, payId)` | `{ type, amount, formattedAmount, isValid }` | Bill type (Water/Gas...), calculates amount. number. |
198
+ | `getPlateInfo(plate)` | `{ province, city }` | Province and City of the plate. number. |
199
+ | `verifyAndNormalize(str)` | `string` | Converts Persian/Arabic digits & chars (ي, ك) to standard English. |
200
+
201
+ ## Contributing
202
+
203
+ Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
204
+
205
+ This project uses PNPM. To get started, clone the repo and run:
206
+
207
+ ```bash
208
+ pnpm install
209
+ ```
193
210
 
194
211
  ## Credits 🙏
195
212
 
package/dist/index.d.mts CHANGED
@@ -15,6 +15,27 @@ type OperatorInfo = {
15
15
  logo: string;
16
16
  } | null;
17
17
  declare function getMobileOperator(mobile: string): OperatorInfo;
18
+ declare function isBillIdValid(billId: string): boolean;
19
+ declare function isPaymentIdValid(paymentId: string, billId: string): boolean;
20
+ type BillInfo = {
21
+ type: {
22
+ label: string;
23
+ slug: string;
24
+ color: string;
25
+ logo: string;
26
+ };
27
+ amount: number;
28
+ formattedAmount: string;
29
+ isValid: boolean;
30
+ } | null;
31
+ declare function getBillInfo(billId: string, paymentId?: string): BillInfo;
32
+ type PlateInfo = {
33
+ province: string;
34
+ city: string;
35
+ isValid: boolean;
36
+ } | null;
37
+ declare function getPlateInfo(plate: string): PlateInfo;
38
+ declare function isPlateNumber(plate: string): boolean;
18
39
  declare function isMelliCode(code: string): boolean;
19
40
  declare function isShenaseMelli(code: string): boolean;
20
41
  declare function isPassport(code: string): boolean;
@@ -37,6 +58,9 @@ declare const ERROR_MESSAGES: {
37
58
  readonly sheba: "شماره شبا نامعتبر است";
38
59
  readonly postalCode: "کد پستی نامعتبر است";
39
60
  readonly landline: "شماره تلفن ثابت نامعتبر است";
61
+ readonly billId: "شناسه قبض نامعتبر است";
62
+ readonly paymentId: "شناسه پرداخت نامعتبر است";
63
+ readonly plateNumber: "پلاک خودرو نامعتبر است";
40
64
  };
41
65
  readonly en: {
42
66
  readonly melliCode: "Invalid national code";
@@ -47,6 +71,9 @@ declare const ERROR_MESSAGES: {
47
71
  readonly sheba: "Invalid Sheba (IBAN) number";
48
72
  readonly postalCode: "Invalid postal code";
49
73
  readonly landline: "Invalid landline number";
74
+ readonly billId: "Invalid Bill ID";
75
+ readonly paymentId: "Invalid Payment ID";
76
+ readonly plateNumber: "Invalid License Plate";
50
77
  };
51
78
  };
52
79
  type Language = keyof typeof ERROR_MESSAGES;
@@ -55,17 +82,20 @@ interface BaseOptions {
55
82
  locale?: Language;
56
83
  }
57
84
 
58
- declare const zMelliCode: (options?: BaseOptions) => z.ZodString;
59
- declare const zShenaseMelli: (options?: BaseOptions) => z.ZodString;
60
- declare const zPassport: (options?: BaseOptions) => z.ZodString;
61
- declare const zCardNumber: (options?: BaseOptions) => z.ZodString;
85
+ declare const zMelliCode: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
86
+ declare const zShenaseMelli: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
87
+ declare const zPassport: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
88
+ declare const zCardNumber: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
62
89
  interface MobileOptions extends BaseOptions {
63
90
  strictZero?: boolean | "optional";
64
91
  }
65
- declare const zIranianMobile: (options?: MobileOptions) => z.ZodString;
66
- declare const zSheba: (options?: BaseOptions) => z.ZodString;
67
- declare const zPostalCode: (options?: BaseOptions) => z.ZodString;
68
- declare const zLandline: (options?: BaseOptions) => z.ZodString;
69
- declare const preprocessNumber: (schema: z.ZodTypeAny) => z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
92
+ declare const zIranianMobile: (options?: MobileOptions) => z.ZodEffects<z.ZodString, string, string>;
93
+ declare const zSheba: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
94
+ declare const zPostalCode: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
95
+ declare const zLandline: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
96
+ declare const zBillId: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
97
+ declare const zPaymentId: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
98
+ declare const zPlateNumber: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
99
+ declare const preprocessNumber: (schema: z.ZodTypeAny) => z.ZodEffects<z.ZodTypeAny, any, unknown>;
70
100
 
71
- export { getBankInfo, getMobileOperator, isCardNumber, isIranianMobile, isLandline, isMelliCode, isPassport, isPostalCode, isSheba, isShenaseMelli, preprocessNumber, verifyAndNormalize, zCardNumber, zIranianMobile, zLandline, zMelliCode, zPassport, zPostalCode, zSheba, zShenaseMelli };
101
+ export { type BankInfo, type BaseOptions, type BillInfo, type OperatorInfo, type PlateInfo, getBankInfo, getBillInfo, getMobileOperator, getPlateInfo, isBillIdValid, isCardNumber, isIranianMobile, isLandline, isMelliCode, isPassport, isPaymentIdValid, isPlateNumber, isPostalCode, isSheba, isShenaseMelli, preprocessNumber, verifyAndNormalize, zBillId, zCardNumber, zIranianMobile, zLandline, zMelliCode, zPassport, zPaymentId, zPlateNumber, zPostalCode, zSheba, zShenaseMelli };
package/dist/index.d.ts CHANGED
@@ -15,6 +15,27 @@ type OperatorInfo = {
15
15
  logo: string;
16
16
  } | null;
17
17
  declare function getMobileOperator(mobile: string): OperatorInfo;
18
+ declare function isBillIdValid(billId: string): boolean;
19
+ declare function isPaymentIdValid(paymentId: string, billId: string): boolean;
20
+ type BillInfo = {
21
+ type: {
22
+ label: string;
23
+ slug: string;
24
+ color: string;
25
+ logo: string;
26
+ };
27
+ amount: number;
28
+ formattedAmount: string;
29
+ isValid: boolean;
30
+ } | null;
31
+ declare function getBillInfo(billId: string, paymentId?: string): BillInfo;
32
+ type PlateInfo = {
33
+ province: string;
34
+ city: string;
35
+ isValid: boolean;
36
+ } | null;
37
+ declare function getPlateInfo(plate: string): PlateInfo;
38
+ declare function isPlateNumber(plate: string): boolean;
18
39
  declare function isMelliCode(code: string): boolean;
19
40
  declare function isShenaseMelli(code: string): boolean;
20
41
  declare function isPassport(code: string): boolean;
@@ -37,6 +58,9 @@ declare const ERROR_MESSAGES: {
37
58
  readonly sheba: "شماره شبا نامعتبر است";
38
59
  readonly postalCode: "کد پستی نامعتبر است";
39
60
  readonly landline: "شماره تلفن ثابت نامعتبر است";
61
+ readonly billId: "شناسه قبض نامعتبر است";
62
+ readonly paymentId: "شناسه پرداخت نامعتبر است";
63
+ readonly plateNumber: "پلاک خودرو نامعتبر است";
40
64
  };
41
65
  readonly en: {
42
66
  readonly melliCode: "Invalid national code";
@@ -47,6 +71,9 @@ declare const ERROR_MESSAGES: {
47
71
  readonly sheba: "Invalid Sheba (IBAN) number";
48
72
  readonly postalCode: "Invalid postal code";
49
73
  readonly landline: "Invalid landline number";
74
+ readonly billId: "Invalid Bill ID";
75
+ readonly paymentId: "Invalid Payment ID";
76
+ readonly plateNumber: "Invalid License Plate";
50
77
  };
51
78
  };
52
79
  type Language = keyof typeof ERROR_MESSAGES;
@@ -55,17 +82,20 @@ interface BaseOptions {
55
82
  locale?: Language;
56
83
  }
57
84
 
58
- declare const zMelliCode: (options?: BaseOptions) => z.ZodString;
59
- declare const zShenaseMelli: (options?: BaseOptions) => z.ZodString;
60
- declare const zPassport: (options?: BaseOptions) => z.ZodString;
61
- declare const zCardNumber: (options?: BaseOptions) => z.ZodString;
85
+ declare const zMelliCode: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
86
+ declare const zShenaseMelli: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
87
+ declare const zPassport: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
88
+ declare const zCardNumber: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
62
89
  interface MobileOptions extends BaseOptions {
63
90
  strictZero?: boolean | "optional";
64
91
  }
65
- declare const zIranianMobile: (options?: MobileOptions) => z.ZodString;
66
- declare const zSheba: (options?: BaseOptions) => z.ZodString;
67
- declare const zPostalCode: (options?: BaseOptions) => z.ZodString;
68
- declare const zLandline: (options?: BaseOptions) => z.ZodString;
69
- declare const preprocessNumber: (schema: z.ZodTypeAny) => z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
92
+ declare const zIranianMobile: (options?: MobileOptions) => z.ZodEffects<z.ZodString, string, string>;
93
+ declare const zSheba: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
94
+ declare const zPostalCode: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
95
+ declare const zLandline: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
96
+ declare const zBillId: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
97
+ declare const zPaymentId: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
98
+ declare const zPlateNumber: (options?: BaseOptions) => z.ZodEffects<z.ZodString, string, string>;
99
+ declare const preprocessNumber: (schema: z.ZodTypeAny) => z.ZodEffects<z.ZodTypeAny, any, unknown>;
70
100
 
71
- export { getBankInfo, getMobileOperator, isCardNumber, isIranianMobile, isLandline, isMelliCode, isPassport, isPostalCode, isSheba, isShenaseMelli, preprocessNumber, verifyAndNormalize, zCardNumber, zIranianMobile, zLandline, zMelliCode, zPassport, zPostalCode, zSheba, zShenaseMelli };
101
+ export { type BankInfo, type BaseOptions, type BillInfo, type OperatorInfo, type PlateInfo, getBankInfo, getBillInfo, getMobileOperator, getPlateInfo, isBillIdValid, isCardNumber, isIranianMobile, isLandline, isMelliCode, isPassport, isPaymentIdValid, isPlateNumber, isPostalCode, isSheba, isShenaseMelli, preprocessNumber, verifyAndNormalize, zBillId, zCardNumber, zIranianMobile, zLandline, zMelliCode, zPassport, zPaymentId, zPlateNumber, zPostalCode, zSheba, zShenaseMelli };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var u=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var P=(o,e)=>{for(var n in e)u(o,n,{get:e[n],enumerable:!0})},F=(o,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of z(e))!y.call(o,t)&&t!==n&&u(o,t,{get:()=>e[t],enumerable:!(s=N(e,t))||s.enumerable});return o};var _=o=>F(u({},"__esModule",{value:!0}),o);var V={};P(V,{getBankInfo:()=>R,getMobileOperator:()=>k,isCardNumber:()=>I,isIranianMobile:()=>C,isLandline:()=>x,isMelliCode:()=>h,isPassport:()=>$,isPostalCode:()=>B,isSheba:()=>S,isShenaseMelli:()=>v,preprocessNumber:()=>H,verifyAndNormalize:()=>b,zCardNumber:()=>Z,zIranianMobile:()=>L,zLandline:()=>w,zMelliCode:()=>T,zPassport:()=>j,zPostalCode:()=>W,zSheba:()=>G,zShenaseMelli:()=>K});module.exports=_(V);var l=require("zod");var a="https://cdn.jsdelivr.net/gh/Reza-kh80/zod-ir@main/assets/banks",m="https://cdn.jsdelivr.net/gh/Reza-kh80/zod-ir@main/assets/operators",O={603799:{name:"Melli",label:"\u0645\u0644\u06CC",color:"#EF3F3E",logo:`${a}/melli.svg`},589210:{name:"Sepah",label:"\u0633\u067E\u0647",color:"#FFC600",logo:`${a}/sepah.svg`},627648:{name:"ToseeSaderat",label:"\u062A\u0648\u0633\u0639\u0647 \u0635\u0627\u062F\u0631\u0627\u062A",color:"#EDB12C",logo:`${a}/tosee-saderat.svg`},627961:{name:"SanatMadar",label:"\u0635\u0646\u0639\u062A \u0648 \u0645\u0639\u062F\u0646",color:"#B3986D",logo:`${a}/sanat-madan.svg`},603770:{name:"Keshavarzi",label:"\u06A9\u0634\u0627\u0648\u0631\u0632\u06CC",color:"#4E7A46",logo:`${a}/keshavarzi.svg`},628023:{name:"Maskan",label:"\u0645\u0633\u06A9\u0646",color:"#F05A23",logo:`${a}/maskan.svg`},627760:{name:"PostBank",label:"\u067E\u0633\u062A \u0628\u0627\u0646\u06A9",color:"#00764D",logo:`${a}/post-bank.svg`},502908:{name:"ToseeTaavon",label:"\u062A\u0648\u0633\u0639\u0647 \u062A\u0639\u0627\u0648\u0646",color:"#0064A6",logo:`${a}/tosee-taavon.svg`},627412:{name:"EghtesadNovin",label:"\u0627\u0642\u062A\u0635\u0627\u062F \u0646\u0648\u06CC\u0646",color:"#652D86",logo:`${a}/eghtesad-novin.svg`},622106:{name:"Parsian",label:"\u067E\u0627\u0631\u0633\u06CC\u0627\u0646",color:"#B3282D",logo:`${a}/parsian.svg`},502229:{name:"Pasargad",label:"\u067E\u0627\u0633\u0627\u0631\u06AF\u0627\u062F",color:"#FFC72C",logo:`${a}/pasargad.svg`},627488:{name:"Karafarin",label:"\u06A9\u0627\u0631\u0622\u0641\u0631\u06CC\u0646",color:"#3B9C56",logo:`${a}/karafarin.svg`},621986:{name:"Saman",label:"\u0633\u0627\u0645\u0627\u0646",color:"#006DB6",logo:`${a}/saman.svg`},639346:{name:"Sina",label:"\u0633\u06CC\u0646\u0627",color:"#004E8A",logo:`${a}/sina.svg`},639607:{name:"Sarmayeh",label:"\u0633\u0631\u0645\u0627\u06CC\u0647",color:"#0077B6",logo:`${a}/sarmayeh.svg`},636214:{name:"Ayandeh",label:"\u0622\u06CC\u0646\u062F\u0647",color:"#8B5F34",logo:`${a}/ayandeh.svg`},502806:{name:"Shahr",label:"\u0634\u0647\u0631",color:"#ED3438",logo:`${a}/shahr.svg`},502938:{name:"Day",label:"\u062F\u06CC",color:"#0099CC",logo:`${a}/day.svg`},603769:{name:"Saderat",label:"\u0635\u0627\u062F\u0631\u0627\u062A",color:"#1A3266",logo:`${a}/saderat.svg`},610433:{name:"Mellat",label:"\u0645\u0644\u062A",color:"#D70005",logo:`${a}/mellat.svg`},627353:{name:"Tejarat",label:"\u062A\u062C\u0627\u0631\u062A",color:"#005696",logo:`${a}/tejarat.svg`},585983:{name:"Tejarat",label:"\u062A\u062C\u0627\u0631\u062A",color:"#005696",logo:`${a}/tejarat.svg`},589463:{name:"Refah",label:"\u0631\u0641\u0627\u0647",color:"#2B3C8E",logo:`${a}/refah.svg`},627381:{name:"Ansar",label:"\u0627\u0646\u0635\u0627\u0631",color:"#F7B500",logo:`${a}/ansar.svg`},505785:{name:"IranZamin",label:"\u0627\u06CC\u0631\u0627\u0646 \u0632\u0645\u06CC\u0646",color:"#92278F",logo:`${a}/iran-zamin.svg`},505416:{name:"Gardeshgari",label:"\u06AF\u0631\u062F\u0634\u06AF\u0631\u06CC",color:"#1D3265",logo:`${a}/gardeshgari.svg`},636949:{name:"Hekmat",label:"\u062D\u06A9\u0645\u062A",color:"#5F2C83",logo:`${a}/hekmat.svg`},505801:{name:"Kosar",label:"\u06A9\u0648\u062B\u0631",color:"#C62828",logo:`${a}/kosar.svg`},606373:{name:"MehrIran",label:"\u0645\u0647\u0631 \u0627\u06CC\u0631\u0627\u0646",color:"#359E49",logo:`${a}/mehr-iran.svg`},504172:{name:"Resalat",label:"\u0631\u0633\u0627\u0644\u062A",color:"#000000",logo:`${a}/resalat.svg`},523388:{name:"Pasargad",label:"\u067E\u0627\u0633\u0627\u0631\u06AF\u0627\u062F (\u0648\u06CC\u067E\u0627\u062F)",color:"#FFC72C",logo:`${a}/pasargad.svg`},505809:{name:"Khavarmianeh",label:"\u062E\u0627\u0648\u0631\u0645\u06CC\u0627\u0646\u0647",color:"#1F2B5B",logo:`${a}/khavarmianeh.svg`}},M={MCI:{label:"\u0647\u0645\u0631\u0627\u0647 \u0627\u0648\u0644",logo:`${m}/mci.svg`,prefixes:["0910","0911","0912","0913","0914","0915","0916","0917","0918","0919","0990","0991","0992","0993","0994"]},Irancell:{label:"\u0627\u06CC\u0631\u0627\u0646\u0633\u0644",logo:`${m}/irancell.svg`,prefixes:["0930","0933","0935","0936","0937","0938","0939","0901","0902","0903","0904","0905","0941"]},Rightel:{label:"\u0631\u0627\u06CC\u062A\u0644",logo:`${m}/rightel.svg`,prefixes:["0920","0921","0922","0923"]},Shatel:{label:"\u0634\u0627\u062A\u0644 \u0645\u0648\u0628\u0627\u06CC\u0644",logo:`${m}/shatel.svg`,prefixes:["0998"]},Taliya:{label:"\u062A\u0627\u0644\u06CC\u0627",logo:`${m}/taliya.png`,prefixes:["0932"]}};function b(o){if(!o)return"";let e=1776,n=1785,s=1632,t=1641,r=1610,A=1740,c=1603,d=1705,E="";for(let f=0;f<o.length;f++){let g=o.charCodeAt(f),p=o[f];g>=e&&g<=n?p=String(g-e):g>=s&&g<=t?p=String(g-s):g===r?p=String.fromCharCode(A):g===c&&(p=String.fromCharCode(d)),E+=p}return E}function R(o){let e=b(o).replace(/[\-\s]/g,"");if(e.length<6)return null;let n=e.substring(0,6),s=O[n];return s?{...s,formatted:e.replace(/(\d{4})(?=\d)/g,"$1-")}:null}function k(o){let e=b(o),n="";if(e.startsWith("09")?n=e.substring(0,4):e.startsWith("9")?n="0"+e.substring(0,3):e.startsWith("+98")&&(n="0"+e.substring(3,6)),n.length!==4)return null;for(let[s,t]of Object.entries(M))if(t.prefixes.includes(n))return{name:s,label:t.label,logo:t.logo};return null}function h(o){if(!/^\d{10}$/.test(o)||/^(\d)\1+$/.test(o))return!1;let e=parseInt(o[9]),n=o.substring(0,9).split("").reduce((s,t,r)=>s+parseInt(t)*(10-r),0)%11;return n<2?e===n:e===11-n}function v(o){if(o.length!==11||!/^\d{11}$/.test(o))return!1;let e=parseInt(o[9]),n=parseInt(o[10]),s=[29,27,23,19,17,29,27,23,19,17],t=0;for(let c=0;c<10;c++){let d=parseInt(o[c]);t+=(d+e+2)*s[c]}let r=t%11;return(r===10?0:r)===n}function $(o){return/^[A-Za-z][0-9]{8,9}$/.test(o)}function I(o){let e=o.replace(/[\-\s]/g,"");if(!/^\d{16}$/.test(e))return!1;let n=0,s=!1;for(let t=e.length-1;t>=0;t--){let r=parseInt(e[t]);s&&(r*=2,r>9&&(r-=9)),n+=r,s=!s}return n%10===0}function C(o,{strictZero:e="optional"}={}){let n="9\\d{9}",s="";return e===!0?s=`^0${n}$`:e===!1?s=`^${n}$`:s=`^(?:0|\\+98)?${n}$`,new RegExp(s).test(o)}function S(o){let e=o.toUpperCase().replace(/[\-\s]/g,"");if(e.length!==26||!e.startsWith("IR"))return!1;let s=(e.substring(4)+e.substring(0,4)).split("").map(t=>{let r=t.charCodeAt(0);return r>=48&&r<=57?t:(r-55).toString()}).join("");try{return BigInt(s)%BigInt(97)===BigInt(1)}catch{return!1}}function B(o){return/^[1-9]\d{9}$/.test(o)}function x(o){return/^0\d{2}\d{8}$/.test(o)}var D={fa:{melliCode:"\u06A9\u062F \u0645\u0644\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",shenaseMelli:"\u0634\u0646\u0627\u0633\u0647 \u0645\u0644\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",passport:"\u0634\u0645\u0627\u0631\u0647 \u06AF\u0630\u0631\u0646\u0627\u0645\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",cardNumber:"\u0634\u0645\u0627\u0631\u0647 \u06A9\u0627\u0631\u062A \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",mobile:"\u0634\u0645\u0627\u0631\u0647 \u0645\u0648\u0628\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",sheba:"\u0634\u0645\u0627\u0631\u0647 \u0634\u0628\u0627 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",postalCode:"\u06A9\u062F \u067E\u0633\u062A\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",landline:"\u0634\u0645\u0627\u0631\u0647 \u062A\u0644\u0641\u0646 \u062B\u0627\u0628\u062A \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"},en:{melliCode:"Invalid national code",shenaseMelli:"Invalid legal person ID (Shenase Melli)",passport:"Invalid passport number",cardNumber:"Invalid card number",mobile:"Invalid mobile number",sheba:"Invalid Sheba (IBAN) number",postalCode:"Invalid postal code",landline:"Invalid landline number"}},i=(o,e)=>{if(e?.message)return e.message;let n=e?.locale||"fa";return D[n][o]};var T=o=>l.z.string().refine(e=>h(e),{message:i("melliCode",o)}),K=o=>l.z.string().refine(e=>v(e),{message:i("shenaseMelli",o)}),j=o=>l.z.string().refine(e=>$(e),{message:i("passport",o)}),Z=o=>l.z.string().refine(e=>I(e),{message:i("cardNumber",o)}),L=o=>l.z.string().refine(e=>C(e,{strictZero:o?.strictZero}),{message:i("mobile",o)}),G=o=>l.z.string().refine(e=>S(e),{message:i("sheba",o)}),W=o=>l.z.string().refine(e=>B(e),{message:i("postalCode",o)}),w=o=>l.z.string().refine(e=>x(e),{message:i("landline",o)}),H=o=>l.z.preprocess(e=>typeof e=="string"?b(e):e,o);0&&(module.exports={getBankInfo,getMobileOperator,isCardNumber,isIranianMobile,isLandline,isMelliCode,isPassport,isPostalCode,isSheba,isShenaseMelli,preprocessNumber,verifyAndNormalize,zCardNumber,zIranianMobile,zLandline,zMelliCode,zPassport,zPostalCode,zSheba,zShenaseMelli});
1
+ "use strict";var h=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var K=(e,t)=>{for(var s in t)h(e,s,{get:t[s],enumerable:!0})},Z=(e,t,s,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of j(t))!w.call(e,i)&&i!==s&&h(e,i,{get:()=>t[i],enumerable:!(l=V(t,i))||l.enumerable});return e};var Y=e=>Z(h({},"__esModule",{value:!0}),e);var ct={};K(ct,{getBankInfo:()=>F,getBillInfo:()=>T,getMobileOperator:()=>L,getPlateInfo:()=>C,isBillIdValid:()=>I,isCardNumber:()=>O,isIranianMobile:()=>P,isLandline:()=>k,isMelliCode:()=>S,isPassport:()=>A,isPaymentIdValid:()=>$,isPlateNumber:()=>x,isPostalCode:()=>R,isSheba:()=>z,isShenaseMelli:()=>E,preprocessNumber:()=>rt,verifyAndNormalize:()=>o,zBillId:()=>st,zCardNumber:()=>J,zIranianMobile:()=>Q,zLandline:()=>et,zMelliCode:()=>H,zPassport:()=>q,zPaymentId:()=>lt,zPlateNumber:()=>it,zPostalCode:()=>tt,zSheba:()=>X,zShenaseMelli:()=>U});module.exports=Y(ct);var d=require("zod");var r="https://cdn.jsdelivr.net/gh/Reza-kh80/zod-ir@main/assets/banks",v="https://cdn.jsdelivr.net/gh/Reza-kh80/zod-ir@main/assets/operators",f="https://cdn.jsdelivr.net/gh/Reza-kh80/zod-ir@main/assets/bills",N={603799:{name:"Melli",label:"\u0645\u0644\u06CC",color:"#EF3F3E",logo:`${r}/melli.svg`},589210:{name:"Sepah",label:"\u0633\u067E\u0647",color:"#FFC600",logo:`${r}/sepah.svg`},627648:{name:"ToseeSaderat",label:"\u062A\u0648\u0633\u0639\u0647 \u0635\u0627\u062F\u0631\u0627\u062A",color:"#EDB12C",logo:`${r}/tosee-saderat.svg`},627961:{name:"SanatMadar",label:"\u0635\u0646\u0639\u062A \u0648 \u0645\u0639\u062F\u0646",color:"#B3986D",logo:`${r}/sanat-madan.svg`},603770:{name:"Keshavarzi",label:"\u06A9\u0634\u0627\u0648\u0631\u0632\u06CC",color:"#4E7A46",logo:`${r}/keshavarzi.svg`},628023:{name:"Maskan",label:"\u0645\u0633\u06A9\u0646",color:"#F05A23",logo:`${r}/maskan.svg`},627760:{name:"PostBank",label:"\u067E\u0633\u062A \u0628\u0627\u0646\u06A9",color:"#00764D",logo:`${r}/post-bank.svg`},502908:{name:"ToseeTaavon",label:"\u062A\u0648\u0633\u0639\u0647 \u062A\u0639\u0627\u0648\u0646",color:"#0064A6",logo:`${r}/tosee-taavon.svg`},627412:{name:"EghtesadNovin",label:"\u0627\u0642\u062A\u0635\u0627\u062F \u0646\u0648\u06CC\u0646",color:"#652D86",logo:`${r}/eghtesad-novin.svg`},622106:{name:"Parsian",label:"\u067E\u0627\u0631\u0633\u06CC\u0627\u0646",color:"#B3282D",logo:`${r}/parsian.svg`},502229:{name:"Pasargad",label:"\u067E\u0627\u0633\u0627\u0631\u06AF\u0627\u062F",color:"#FFC72C",logo:`${r}/pasargad.svg`},627488:{name:"Karafarin",label:"\u06A9\u0627\u0631\u0622\u0641\u0631\u06CC\u0646",color:"#3B9C56",logo:`${r}/karafarin.svg`},621986:{name:"Saman",label:"\u0633\u0627\u0645\u0627\u0646",color:"#006DB6",logo:`${r}/saman.svg`},639346:{name:"Sina",label:"\u0633\u06CC\u0646\u0627",color:"#004E8A",logo:`${r}/sina.svg`},639607:{name:"Sarmayeh",label:"\u0633\u0631\u0645\u0627\u06CC\u0647",color:"#0077B6",logo:`${r}/sarmayeh.svg`},636214:{name:"Ayandeh",label:"\u0622\u06CC\u0646\u062F\u0647",color:"#8B5F34",logo:`${r}/ayandeh.svg`},502806:{name:"Shahr",label:"\u0634\u0647\u0631",color:"#ED3438",logo:`${r}/shahr.svg`},502938:{name:"Day",label:"\u062F\u06CC",color:"#0099CC",logo:`${r}/day.svg`},603769:{name:"Saderat",label:"\u0635\u0627\u062F\u0631\u0627\u062A",color:"#1A3266",logo:`${r}/saderat.svg`},610433:{name:"Mellat",label:"\u0645\u0644\u062A",color:"#D70005",logo:`${r}/mellat.svg`},627353:{name:"Tejarat",label:"\u062A\u062C\u0627\u0631\u062A",color:"#005696",logo:`${r}/tejarat.svg`},585983:{name:"Tejarat",label:"\u062A\u062C\u0627\u0631\u062A",color:"#005696",logo:`${r}/tejarat.svg`},589463:{name:"Refah",label:"\u0631\u0641\u0627\u0647",color:"#2B3C8E",logo:`${r}/refah.svg`},627381:{name:"Ansar",label:"\u0627\u0646\u0635\u0627\u0631",color:"#F7B500",logo:`${r}/ansar.svg`},505785:{name:"IranZamin",label:"\u0627\u06CC\u0631\u0627\u0646 \u0632\u0645\u06CC\u0646",color:"#92278F",logo:`${r}/iran-zamin.svg`},505416:{name:"Gardeshgari",label:"\u06AF\u0631\u062F\u0634\u06AF\u0631\u06CC",color:"#1D3265",logo:`${r}/gardeshgari.svg`},636949:{name:"Hekmat",label:"\u062D\u06A9\u0645\u062A",color:"#5F2C83",logo:`${r}/hekmat.svg`},505801:{name:"Kosar",label:"\u06A9\u0648\u062B\u0631",color:"#C62828",logo:`${r}/kosar.svg`},606373:{name:"MehrIran",label:"\u0645\u0647\u0631 \u0627\u06CC\u0631\u0627\u0646",color:"#359E49",logo:`${r}/mehr-iran.svg`},504172:{name:"Resalat",label:"\u0631\u0633\u0627\u0644\u062A",color:"#000000",logo:`${r}/resalat.svg`},523388:{name:"Pasargad",label:"\u067E\u0627\u0633\u0627\u0631\u06AF\u0627\u062F (\u0648\u06CC\u067E\u0627\u062F)",color:"#FFC72C",logo:`${r}/pasargad.svg`},505809:{name:"Khavarmianeh",label:"\u062E\u0627\u0648\u0631\u0645\u06CC\u0627\u0646\u0647",color:"#1F2B5B",logo:`${r}/khavarmianeh.svg`}},M={MCI:{label:"\u0647\u0645\u0631\u0627\u0647 \u0627\u0648\u0644",logo:`${v}/mci.svg`,prefixes:["0910","0911","0912","0913","0914","0915","0916","0917","0918","0919","0990","0991","0992","0993","0994"]},Irancell:{label:"\u0627\u06CC\u0631\u0627\u0646\u0633\u0644",logo:`${v}/irancell.svg`,prefixes:["0930","0933","0935","0936","0937","0938","0939","0901","0902","0903","0904","0905","0941"]},Rightel:{label:"\u0631\u0627\u06CC\u062A\u0644",logo:`${v}/rightel.svg`,prefixes:["0920","0921","0922","0923"]},Shatel:{label:"\u0634\u0627\u062A\u0644 \u0645\u0648\u0628\u0627\u06CC\u0644",logo:`${v}/shatel.svg`,prefixes:["0998"]},Taliya:{label:"\u062A\u0627\u0644\u06CC\u0627",logo:`${v}/taliya.png`,prefixes:["0932"]}},D={1:{label:"\u0622\u0628",type:"water",color:"#00a8ff",logo:`${f}/water.svg`},2:{label:"\u0628\u0631\u0642",type:"electricity",color:"#fbc531",logo:`${f}/electricity.svg`},3:{label:"\u06AF\u0627\u0632",type:"gas",color:"#e84118",logo:`${f}/gas.svg`},4:{label:"\u062A\u0644\u0641\u0646 \u062B\u0627\u0628\u062A",type:"phone",color:"#273c75",logo:`${f}/phone.svg`},5:{label:"\u062A\u0644\u0641\u0646 \u0647\u0645\u0631\u0627\u0647",type:"mobile",color:"#8c7ae6",logo:`${f}/mobile.svg`},6:{label:"\u0639\u0648\u0627\u0631\u0636 \u0634\u0647\u0631\u062F\u0627\u0631\u06CC",type:"municipality",color:"#44bd32",logo:`${f}/municipality.svg`},9:{label:"\u062C\u0631\u0627\u06CC\u0645 \u0631\u0627\u0646\u0646\u062F\u06AF\u06CC",type:"traffic",color:"#c23616",logo:`${f}/traffic.svg`}};var _=[{province:"\u0622\u0630\u0631\u0628\u0627\u06CC\u062C\u0627\u0646 \u0634\u0631\u0642\u06CC",codes:[{code:"15",details:[{city:"\u062A\u0628\u0631\u06CC\u0632",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646","\u0648","\u0647","\u06CC"]}]},{code:"25",details:[{city:"\u0627\u0647\u0631",letters:["\u0633"]},{city:"\u0622\u0630\u0631\u0634\u0647\u0631",letters:["\u06CC"]},{city:"\u0628\u0633\u062A\u0627\u0646\u200C\u0622\u0628\u0627\u062F",letters:["\u0645"]},{city:"\u0628\u0646\u0627\u0628",letters:["\u0644"]},{city:"\u062C\u0644\u0641\u0627",letters:["\u0637"]},{city:"\u0633\u0631\u0627\u0628",letters:["\u0635"]},{city:"\u0634\u0628\u0633\u062A\u0631",letters:["\u0646"]},{city:"\u06A9\u0644\u06CC\u0628\u0631",letters:["\u0648"]},{city:"\u0645\u0631\u0627\u063A\u0647",letters:["\u0628"]},{city:"\u0645\u0631\u0646\u062F",letters:["\u062C"]},{city:"\u0645\u06CC\u0627\u0646\u0647",letters:["\u062F"]},{city:"\u0647\u0631\u06CC\u0633",letters:["\u0647"]},{city:"\u0647\u0634\u062A\u0631\u0648\u062F",letters:["\u0642"]}]},{code:"35",details:[{city:"\u0627\u0633\u06A9\u0648",letters:["\u0628"]},{city:"\u0645\u0631\u0646\u062F",letters:["\u0637"]},{city:"\u0645\u0631\u0627\u063A\u0647",letters:["\u0642"]},{city:"\u062A\u0628\u0631\u06CC\u0632",letters:["\u0644","\u0645"]},{city:"\u0622\u0630\u0631\u0634\u0647\u0631",letters:["\u0635"]},{city:"\u0627\u0647\u0631",letters:["\u0646"]},{city:"\u0628\u0646\u0627\u0628",letters:["\u0633"]},{city:"\u0628\u0633\u062A\u0627\u0646 \u0622\u0628\u0627\u062F",letters:["\u06CC"]},{city:"\u062C\u0644\u0641\u0627",letters:["\u0647"]},{city:"\u0633\u0631\u0627\u0628",letters:["\u0648"]},{city:"\u0634\u0628\u0633\u062A\u0631",letters:["\u062F"]},{city:"\u06A9\u0644\u06CC\u0628\u0631",letters:["\u062C"]},{city:"\u0645\u06CC\u0627\u0646\u0647",letters:["\u0632"]},{city:"\u0647\u0631\u06CC\u0633",letters:["\u0627\u0644\u0641"]},{city:"\u0647\u0634\u062A\u0631\u0648\u062F",letters:["\u062A"]},{city:"\u062A\u0628\u0631\u06CC\u0632 \u0648 \u0686\u0627\u0631\u0627\u0648\u06CC\u0645\u0627\u0642",letters:["\u0633"]}]}]},{province:"\u0622\u0630\u0631\u0628\u0627\u06CC\u062C\u0627\u0646 \u063A\u0631\u0628\u06CC",codes:[{code:"17",details:[{city:"\u0627\u0631\u0648\u0645\u06CC\u0647",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646","\u0648","\u0647"]},{city:"\u062E\u0648\u06CC",letters:["\u0645"]}]},{code:"27",details:[{city:"\u062E\u0648\u06CC",letters:["\u0628"]},{city:"\u0645\u0647\u0627\u0628\u0627\u062F",letters:["\u062C"]},{city:"\u0645\u0627\u06A9\u0648",letters:["\u062F"]},{city:"\u0633\u0644\u0645\u0627\u0633",letters:["\u0633"]},{city:"\u0646\u0642\u062F\u0647",letters:["\u0635"]},{city:"\u0645\u06CC\u0627\u0646\u062F\u0648\u0622\u0628",letters:["\u0637","\u0646"]},{city:"\u062A\u06A9\u0627\u0628",letters:["\u0642"]},{city:"\u0634\u0627\u0647\u06CC\u0646\u200C\u062F\u0698",letters:["\u0644"]},{city:"\u0633\u0631\u062F\u0634\u062A",letters:["\u0645"]},{city:"\u0628\u0648\u06A9\u0627\u0646",letters:["\u0646"]},{city:"\u0686\u0627\u0644\u062F\u0631\u0627\u0646",letters:["\u0647"]},{city:"\u067E\u06CC\u0631\u0627\u0646\u0634\u0647\u0631",letters:["\u0648"]},{city:"\u0627\u0634\u0646\u0648\u06CC\u0647",letters:["\u06CC"]}]},{code:"37",details:[{city:"\u062E\u0648\u06CC",letters:["\u0628"]},{city:"\u0645\u06CC\u0627\u0646\u062F\u0648\u0622\u0628",letters:["\u062C"]},{city:"\u0646\u0642\u062F\u0647",letters:["\u062F"]},{city:"\u0645\u0647\u0627\u0628\u0627\u062F",letters:["\u0635"]},{city:"\u0628\u0648\u06A9\u0627\u0646",letters:["\u0637"]},{city:"\u0633\u0644\u0645\u0627\u0633",letters:["\u0642"]},{city:"\u0645\u0627\u06A9\u0648",letters:["\u0644"]}]}]},{province:"\u0627\u0631\u062F\u0628\u06CC\u0644",codes:[{code:"91",details:[{city:"\u0627\u0631\u062F\u0628\u06CC\u0644",letters:["\u0628","\u062C","\u062F","\u0633","\u0645","\u0648","\u06CC"]},{city:"\u067E\u0627\u0631\u0633\u200C\u0622\u0628\u0627\u062F",letters:["\u0635","\u0645","\u0648","\u06CC"]},{city:"\u062E\u0644\u062E\u0627\u0644",letters:["\u0637"]},{city:"\u06AF\u0631\u0645\u06CC",letters:["\u0644"]},{city:"\u0628\u06CC\u0644\u0647\u200C\u0633\u0648\u0627\u0631",letters:["\u0644"]},{city:"\u0645\u0634\u06A9\u06CC\u0646\u200C\u0634\u0647\u0631",letters:["\u0644","\u0646"]},{city:"\u0646\u06CC\u0631",letters:["\u0645"]},{city:"\u06A9\u0648\u062B\u0631",letters:["\u0645","\u0648"]},{city:"\u0646\u0645\u06CC\u0646",letters:["\u0646"]}]}]},{province:"\u0627\u0635\u0641\u0647\u0627\u0646",codes:[{code:"13",details:[{city:"\u0627\u0635\u0641\u0647\u0627\u0646",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646","\u0648","\u0647","\u06CC"]},{city:"\u0641\u0644\u0627\u0648\u0631\u062C\u0627\u0646",letters:["\u0635"]}]},{code:"23",details:[{city:"\u06A9\u0627\u0634\u0627\u0646",letters:["\u0628"]},{city:"\u0646\u062C\u0641\u200C\u0622\u0628\u0627\u062F",letters:["\u062C"]},{city:"\u0634\u0647\u0631\u0636\u0627",letters:["\u062F"]},{city:"\u062E\u0645\u06CC\u0646\u06CC\u200C\u0634\u0647\u0631",letters:["\u0633"]},{city:"\u06AF\u0644\u067E\u0627\u06CC\u06AF\u0627\u0646",letters:["\u0635"]},{city:"\u0646\u0637\u0646\u0632",letters:["\u0637"]},{city:"\u0627\u0631\u062F\u0633\u062A\u0627\u0646",letters:["\u0642"]},{city:"\u062E\u0648\u0627\u0646\u0633\u0627\u0631",letters:["\u0644"]},{city:"\u0646\u0627\u06CC\u06CC\u0646",letters:["\u0645"]},{city:"\u0633\u0645\u06CC\u0631\u0645",letters:["\u0646"]},{city:"\u0641\u0644\u0627\u0648\u0631\u062C\u0627\u0646",letters:["\u0647"]},{city:"\u0641\u0631\u06CC\u062F\u0648\u0646\u200C\u0634\u0647\u0631",letters:["\u0648"]},{city:"\u0644\u0646\u062C\u0627\u0646",letters:["\u06CC"]}]},{code:"43",details:[{city:"\u0641\u0631\u06CC\u062F\u0646",letters:["\u0628"]},{city:"\u0645\u0628\u0627\u0631\u06A9\u0647",letters:["\u062C","\u0637"]},{city:"\u0634\u0627\u0647\u06CC\u0646\u200C\u0634\u0647\u0631 \u0648 \u0645\u06CC\u0645\u0647",letters:["\u062F","\u0644"]},{city:"\u0622\u0631\u0627\u0646 \u0648 \u0628\u06CC\u062F\u06AF\u0644",letters:["\u0633"]},{city:"\u062A\u06CC\u0631\u0627\u0646 \u0648 \u06A9\u0631\u0648\u0646",letters:["\u0635"]},{city:"\u062F\u0647\u0627\u0642\u0627\u0646",letters:["\u0642"]},{city:"\u0646\u062C\u0641\u200C\u0622\u0628\u0627\u062F",letters:["\u0645"]},{city:"\u062E\u0645\u06CC\u0646\u06CC\u200C\u0634\u0647\u0631",letters:["\u0646"]},{city:"\u0644\u0646\u062C\u0627\u0646",letters:["\u0647"]},{city:"\u06A9\u0627\u0634\u0627\u0646",letters:["\u0648"]},{city:"\u0641\u0644\u0627\u0648\u0631\u062C\u0627\u0646",letters:["\u06CC"]}]},{code:"53",details:[{city:"\u0627\u0635\u0641\u0647\u0627\u0646",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0642","\u0644","\u0648"]},{city:"\u0634\u0647\u0631\u0636\u0627",letters:["\u0637"]},{city:"\u0634\u0627\u0647\u06CC\u0646\u200C\u0634\u0647\u0631 \u0648 \u0645\u06CC\u0645\u0647",letters:["\u0645"]},{city:"\u0646\u062C\u0641\u200C\u0622\u0628\u0627\u062F",letters:["\u0646"]},{city:"\u06A9\u0627\u0634\u0627\u0646",letters:["\u0647"]},{city:"\u062E\u0645\u06CC\u0646\u06CC\u200C\u0634\u0647\u0631",letters:["\u06CC"]}]},{code:"67",details:[{city:"\u0627\u0635\u0641\u0647\u0627\u0646",letters:["\u0628","\u062C","\u062F","\u0633","\u0637","\u0644","\u0645","\u0646","\u0648"]},{city:"\u0634\u0627\u0647\u06CC\u0646\u200C\u0634\u0647\u0631 \u0648 \u0645\u06CC\u0645\u0647",letters:["\u0642"]},{city:"\u0644\u0646\u062C\u0627\u0646",letters:["\u0635"]}]}]},{province:"\u0627\u0644\u0628\u0631\u0632",codes:[{code:"21",details:[{city:"\u0633\u0627\u0648\u062C\u0628\u0644\u0627\u063A",letters:["\u0635"]},{city:"\u06A9\u0631\u062C",letters:["\u0644","\u0648"]}]},{code:"30",details:[{city:"\u06A9\u0631\u062C",letters:["\u062F","\u0633","\u0644","\u0645","\u0647"]}]},{code:"38",details:[{city:"\u06A9\u0631\u062C",letters:["\u0628","\u062F","\u0633","\u0645","\u0646","\u0647","\u06CC"]}]},{code:"68",details:[{city:"\u06A9\u0631\u062C",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646","\u0648","\u0647","\u06CC"]}]},{code:"78",details:[{city:"\u0633\u0627\u0648\u062C\u0628\u0644\u0627\u063A",letters:["\u0637"]}]}]},{province:"\u0627\u06CC\u0644\u0627\u0645",codes:[{code:"98",details:[{city:"\u0627\u06CC\u0644\u0627\u0645",letters:["\u0628","\u062C","\u062F"]},{city:"\u0645\u0647\u0631\u0627\u0646",letters:["\u0635"]},{city:"\u0628\u062F\u0631\u0647",letters:["\u0637"]},{city:"\u062F\u0647\u0644\u0631\u0627\u0646",letters:["\u0642"]},{city:"\u0686\u0631\u062F\u0627\u0648\u0644",letters:["\u0644"]},{city:"\u0627\u06CC\u0648\u0627\u0646",letters:["\u0645"]},{city:"\u0622\u0628\u062F\u0627\u0646\u0627\u0646",letters:["\u0646"]}]}]},{province:"\u0628\u0648\u0634\u0647\u0631",codes:[{code:"48",details:[{city:"\u0628\u0648\u0634\u0647\u0631",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646","\u0648","\u0647","\u06CC"]}]},{code:"58",details:[{city:"\u062F\u0634\u062A\u0633\u062A\u0627\u0646",letters:["\u0628","\u0645","\u0648"]},{city:"\u06AF\u0646\u0627\u0648\u0647",letters:["\u062C","\u0647"]},{city:"\u06A9\u0646\u06AF\u0627\u0646\u060C \u0639\u0633\u0644\u0648\u06CC\u0647",letters:["\u062F","\u0646"]},{city:"\u062A\u0646\u06AF\u0633\u062A\u0627\u0646",letters:["\u0633"]},{city:"\u062F\u0634\u062A\u06CC",letters:["\u0635","\u06CC"]},{city:"\u062F\u06CC\u0631",letters:["\u0637"]},{city:"\u062F\u06CC\u0644\u0645",letters:["\u0642"]},{city:"\u062C\u0645",letters:["\u0644"]}]}]},{province:"\u062A\u0647\u0631\u0627\u0646",codes:[{code:"11, 22, 33, 44, 55, 66, 77, 88, 99, 10, 20, 40, 50, 60",details:[{city:"\u062A\u0647\u0631\u0627\u0646 (\u0634\u0647\u0631)",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646","\u0648","\u0647","\u06CC"]}]},{code:"21",details:[{city:"\u0627\u0633\u0644\u0627\u0645\u0634\u0647\u0631",letters:["\u0628","\u06CC"]},{city:"\u0631\u0628\u0627\u0637\u200C\u06A9\u0631\u06CC\u0645",letters:["\u0645"]},{city:"\u067E\u0627\u06A9\u062F\u0634\u062A",letters:["\u0644"]}]},{code:"30",details:[{city:"\u0627\u0633\u0644\u0627\u0645\u0634\u0647\u0631",letters:["\u0642"]},{city:"\u067E\u0627\u06A9\u062F\u0634\u062A",letters:["\u0646"]}]},{code:"78",details:[{city:"\u0627\u0633\u0644\u0627\u0645\u0634\u0647\u0631",letters:["\u0628","\u0642"]},{city:"\u0631\u0628\u0627\u0637\u200C\u06A9\u0631\u06CC\u0645",letters:["\u062C"]},{city:"\u0631\u06CC",letters:["\u0646"]},{city:"\u0634\u0645\u06CC\u0631\u0627\u0646\u0627\u062A",letters:["\u0648"]}]},{code:"38",details:[{city:"\u0631\u0628\u0627\u0637\u200C\u06A9\u0631\u06CC\u0645",letters:["\u0644"]}]}]},{province:"\u0686\u0647\u0627\u0631\u0645\u062D\u0627\u0644 \u0648 \u0628\u062E\u062A\u06CC\u0627\u0631\u06CC",codes:[{code:"71",details:[{city:"\u0634\u0647\u0631\u06A9\u0631\u062F",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646","\u0648","\u0647","\u06CC"]}]},{code:"81",details:[{city:"\u0628\u0631\u0648\u062C\u0646",letters:["\u0628","\u0642"]},{city:"\u0644\u0631\u062F\u06AF\u0627\u0646",letters:["\u0633"]},{city:"\u0641\u0627\u0631\u0633\u0627\u0646",letters:["\u062F"]},{city:"\u0627\u0631\u062F\u0644",letters:["\u062C"]},{city:"\u06A9\u0648\u0647\u0631\u0646\u06AF",letters:["\u0635"]},{city:"\u06A9\u06CC\u0627\u0631",letters:["\u0637"]},{city:"\u0628\u0646",letters:["\u0642"]}]}]},{province:"\u062E\u0631\u0627\u0633\u0627\u0646 \u0634\u0645\u0627\u0644\u06CC",codes:[{code:"32",details:[{city:"\u0628\u062C\u0646\u0648\u0631\u062F",letters:["\u0628","\u062C","\u062F","\u0633","\u0635"]}]},{code:"26",details:[{city:"\u0634\u06CC\u0631\u0648\u0627\u0646",letters:["\u0635","\u0628"]},{city:"\u0627\u0633\u0641\u0631\u0627\u06CC\u0646",letters:["\u062C","\u0637"]},{city:"\u0645\u0627\u0646\u0647 \u0648 \u0633\u0645\u0644\u0642\u0627\u0646",letters:["\u062F","\u0644"]},{city:"\u0641\u0627\u0631\u0648\u062C",letters:["\u0645"]},{city:"\u0628\u062C\u0646\u0648\u0631\u062F",letters:["\u0628","\u062C","\u062F"]},{city:"\u062C\u0627\u062C\u0631\u0645 \u0648 \u06AF\u0631\u0645\u0647",letters:["\u0642"]}]}]},{province:"\u062E\u0631\u0627\u0633\u0627\u0646 \u0631\u0636\u0648\u06CC",codes:[{code:"12",details:[{city:"\u0645\u0634\u0647\u062F",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646","\u0648","\u0647","\u06CC"]}]},{code:"32",details:[{city:"\u0646\u06CC\u0634\u0627\u0628\u0648\u0631",letters:["\u0628","\u06CC"]},{city:"\u0633\u0628\u0632\u0648\u0627\u0631",letters:["\u062C"]},{city:"\u062A\u0631\u0628\u062A\u200C\u062C\u0627\u0645",letters:["\u0635"]},{city:"\u0642\u0648\u0686\u0627\u0646",letters:["\u0637"]},{city:"\u06AF\u0646\u0627\u0628\u0627\u062F",letters:["\u0642"]},{city:"\u062A\u0631\u0628\u062A\u200C\u062D\u06CC\u062F\u0631\u06CC\u0647",letters:["\u0644","\u0646"]},{city:"\u06A9\u0627\u0634\u0645\u0631",letters:["\u0645"]},{city:"\u062A\u0627\u06CC\u0628\u0627\u062F",letters:["\u0647"]},{city:"\u0645\u0634\u0647\u062F",letters:["\u0648"]}]},{code:"36",details:[{city:"\u0645\u0634\u0647\u062F",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0647","\u0648"]},{city:"\u06A9\u0627\u0634\u0645\u0631",letters:["\u0642"]},{city:"\u0646\u06CC\u0634\u0627\u0628\u0648\u0631",letters:["\u0644"]},{city:"\u0633\u0628\u0632\u0648\u0627\u0631",letters:["\u0645"]},{city:"\u062A\u0631\u0628\u062A \u062D\u06CC\u062F\u0631\u06CC\u0647",letters:["\u0646"]},{city:"\u062A\u0631\u0628\u062A\u200C\u062C\u0627\u0645",letters:["\u06CC"]}]},{code:"42",details:[{city:"\u0641\u0631\u06CC\u0645\u0627\u0646",letters:["\u0628"]},{city:"\u0645\u0634\u0647\u062F",letters:["\u062C","\u0642","\u0647","\u0648"]},{city:"\u0633\u0631\u062E\u0633",letters:["\u062F"]},{city:"\u062F\u0631\u06AF\u0632",letters:["\u0633"]},{city:"\u062E\u0648\u0627\u0641",letters:["\u0635"]},{city:"\u0686\u0646\u0627\u0631\u0627\u0646",letters:["\u0637"]},{city:"\u0628\u0631\u062F\u0633\u06A9\u0646",letters:["\u0644"]},{city:"\u0631\u0634\u062A\u062E\u0648\u0627\u0631",letters:["\u0645"]},{city:"\u0633\u0628\u0632\u0648\u0627\u0631",letters:["\u0646"]},{city:"\u062A\u0631\u0628\u062A \u062D\u06CC\u062F\u0631\u06CC\u0647",letters:["\u06CC"]},{city:"\u06A9\u0644\u0627\u062A",letters:["\u06CC"]}]},{code:"74",details:[{city:"\u0645\u0634\u0647\u062F",letters:["\u0628","\u062F","\u0633","\u0635","\u0642","\u0645","\u0646","\u0647","\u0648","\u06CC"]},{city:"\u0642\u0648\u0686\u0627\u0646",letters:["\u062C"]},{city:"\u0646\u06CC\u0634\u0627\u0628\u0648\u0631",letters:["\u0637"]},{city:"\u0633\u0628\u0632\u0648\u0627\u0631",letters:["\u0644"]},{city:"\u06AF\u0646\u0627\u0628\u0627\u062F",letters:["\u0646"]}]}]},{province:"\u062E\u0631\u0627\u0633\u0627\u0646 \u062C\u0646\u0648\u0628\u06CC",codes:[{code:"32",details:[{city:"\u0628\u06CC\u0631\u062C\u0646\u062F",letters:["\u062F"]}]},{code:"52",details:[{city:"\u0628\u06CC\u0631\u062C\u0646\u062F",letters:["\u0628","\u062C","\u062F"]},{city:"\u0642\u0627\u06CC\u0646\u0627\u062A",letters:["\u0635"]},{city:"\u0641\u0631\u062F\u0648\u0633",letters:["\u0637"]},{city:"\u0646\u0647\u0628\u0646\u062F\u0627\u0646",letters:["\u0642"]},{city:"\u0633\u0631\u0628\u06CC\u0634\u0647",letters:["\u0644"]}]},{code:"64",details:[{city:"\u0637\u0628\u0633",letters:["\u0642"]}]}]},{province:"\u062E\u0648\u0632\u0633\u062A\u0627\u0646",codes:[{code:"14",details:[{city:"\u0627\u0647\u0648\u0627\u0632",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646","\u0648","\u0647","\u06CC"]}]},{code:"24",details:[{city:"\u0622\u0628\u0627\u062F\u0627\u0646",letters:["\u0628","\u0642"]},{city:"\u062E\u0631\u0645\u0634\u0647\u0631",letters:["\u062C"]},{city:"\u062F\u0632\u0641\u0648\u0644",letters:["\u062F"]},{city:"\u0628\u0647\u0628\u0647\u0627\u0646",letters:["\u0633"]},{city:"\u0645\u0633\u062C\u062F \u0633\u0644\u06CC\u0645\u0627\u0646",letters:["\u0635"]},{city:"\u0645\u0627\u0647\u0634\u0647\u0631",letters:["\u0637","\u0647"]},{city:"\u062F\u0634\u062A \u0622\u0632\u0627\u062F\u06AF\u0627\u0646",letters:["\u0642"]},{city:"\u0631\u0627\u0645\u0647\u0631\u0645\u0632",letters:["\u0644"]},{city:"\u0627\u0646\u062F\u06CC\u0645\u0634\u06A9",letters:["\u0645"]},{city:"\u0634\u0648\u0634\u062A\u0631",letters:["\u0646"]},{city:"\u0634\u0627\u062F\u06AF\u0627\u0646",letters:["\u0647"]},{city:"\u0634\u0648\u0634",letters:["\u0648"]},{city:"\u0627\u06CC\u0630\u0647",letters:["\u06CC"]}]},{code:"34",details:[{city:"\u0628\u0627\u063A\u0645\u0644\u06A9",letters:["\u0628"]},{city:"\u0634\u0648\u0634",letters:["\u0628"]},{city:"\u0627\u0645\u06CC\u062F\u06CC\u0647",letters:["\u062C"]},{city:"\u062E\u0631\u0645\u0634\u0647\u0631",letters:["\u062F"]},{city:"\u0647\u0646\u062F\u06CC\u062C\u0627\u0646",letters:["\u062F"]},{city:"\u0627\u0646\u062F\u06CC\u0645\u0634\u06A9",letters:["\u0633"]},{city:"\u0644\u0627\u0644\u06CC",letters:["\u0633"]},{city:"\u062F\u0632\u0641\u0648\u0644",letters:["\u0635","\u0648"]},{city:"\u0645\u0627\u0647\u0634\u0647\u0631",letters:["\u0637"]},{city:"\u0622\u0628\u0627\u062F\u0627\u0646",letters:["\u0642"]},{city:"\u0628\u0647\u0628\u0647\u0627\u0646",letters:["\u0646"]},{city:"\u0634\u0648\u0634\u062A\u0631",letters:["\u0647"]},{city:"\u0627\u0647\u0648\u0627\u0632",letters:["\u06CC"]}]}]},{province:"\u0632\u0646\u062C\u0627\u0646",codes:[{code:"87",details:[{city:"\u0632\u0646\u062C\u0627\u0646",letters:["\u0628","\u062F","\u062C","\u0633","\u0635","\u0637"]}]},{code:"97",details:[{city:"\u0627\u0628\u0647\u0631",letters:["\u0628","\u0642"]},{city:"\u062E\u062F\u0627\u0628\u0646\u062F\u0647",letters:["\u062C"]},{city:"\u062E\u0631\u0645\u200C\u062F\u0631\u0647",letters:["\u062F"]},{city:"\u0627\u06CC\u062C\u0631\u0648\u062F",letters:["\u0633"]},{city:"\u0637\u0627\u0631\u0645",letters:["\u0635"]},{city:"\u0645\u0627\u0647\u200C\u0646\u0634\u0627\u0646",letters:["\u0637"]}]}]},{province:"\u0633\u0645\u0646\u0627\u0646",codes:[{code:"86",details:[{city:"\u0633\u0645\u0646\u0627\u0646",letters:["\u0628","\u062F","\u062C"]}]},{code:"96",details:[{city:"\u062F\u0627\u0645\u063A\u0627\u0646",letters:["\u0628"]},{city:"\u0634\u0627\u0647\u0631\u0648\u062F",letters:["\u062C","\u0637"]},{city:"\u06AF\u0631\u0645\u0633\u0627\u0631",letters:["\u062F"]},{city:"\u0645\u0647\u062F\u06CC\u200C\u0634\u0647\u0631",letters:["\u0633"]}]}]},{province:"\u0633\u06CC\u0633\u062A\u0627\u0646 \u0648 \u0628\u0644\u0648\u0686\u0633\u062A\u0627\u0646",codes:[{code:"85",details:[{city:"\u0632\u0627\u0647\u062F\u0627\u0646",letters:["\u0628","\u062F","\u062C","\u0633","\u0635","\u0637"]}]},{code:"95",details:[{city:"\u0632\u0627\u0628\u0644",letters:["\u0628","\u0644","\u0648"]},{city:"\u0627\u06CC\u0631\u0627\u0646\u0634\u0647\u0631",letters:["\u062C","\u0645"]},{city:"\u062E\u0627\u0634",letters:["\u062F"]},{city:"\u0633\u0631\u0627\u0648\u0627\u0646",letters:["\u0633","\u0646"]},{city:"\u0646\u06CC\u06A9\u0634\u0647\u0631",letters:["\u0635"]},{city:"\u0633\u0631\u0628\u0627\u0632",letters:["\u0637"]},{city:"\u0686\u0627\u0628\u0647\u0627\u0631",letters:["\u0642"]}]}]},{province:"\u0641\u0627\u0631\u0633",codes:[{code:"63",details:[{city:"\u0634\u06CC\u0631\u0627\u0632",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646","\u0648","\u0647","\u06CC"]}]},{code:"73",details:[{city:"\u062C\u0647\u0631\u0645",letters:["\u0628","\u0647"]},{city:"\u0644\u0627\u0631\u0633\u062A\u0627\u0646",letters:["\u062C"]},{city:"\u062F\u0627\u0631\u0627\u0628",letters:["\u062F"]},{city:"\u0641\u0633\u0627",letters:["\u0633"]},{city:"\u06A9\u0627\u0632\u0631\u0648\u0646",letters:["\u0635"]},{city:"\u0641\u06CC\u0631\u0648\u0632\u0622\u0628\u0627\u062F",letters:["\u0637"]},{city:"\u0622\u0628\u0627\u062F\u0647",letters:["\u0642"]},{city:"\u0645\u0631\u0648\u062F\u0634\u062A",letters:["\u0644"]},{city:"\u0644\u0627\u0645\u0631\u062F",letters:["\u0645"]},{city:"\u0646\u06CC\u200C\u0631\u06CC\u0632",letters:["\u0646"]},{city:"\u0627\u0642\u0644\u06CC\u062F",letters:["\u0647"]},{city:"\u0627\u0633\u062A\u0647\u0628\u0627\u0646",letters:["\u0648"]},{city:"\u0633\u067E\u06CC\u062F\u0627\u0646",letters:["\u06CC"]},{city:"\u0645\u0645\u0633\u0646\u06CC",letters:["\u06CC"]}]},{code:"83",details:[{city:"\u0645\u0645\u0633\u0646\u06CC",letters:["\u0628"]},{city:"\u0634\u06CC\u0631\u0627\u0632 \u0648 \u0634\u0647\u0631\u0647\u0627\u06CC \u062F\u06CC\u06AF\u0631",letters:["\u062C","\u0635","\u0637","\u0646"]},{city:"\u0642\u06CC\u0631 \u0648 \u06A9\u0627\u0631\u0632\u06CC\u0646",letters:["\u062F"]},{city:"\u062F\u0627\u0631\u0627\u0628\u060C \u0645\u0647\u0631\u060C \u0641\u06CC\u0631\u0648\u0632\u0622\u0628\u0627\u062F",letters:["\u0633"]},{city:"\u0622\u0628\u0627\u062F\u0647\u060C \u0628\u0648\u0627\u0646\u0627\u062A",letters:["\u0642"]},{city:"\u0641\u0631\u0627\u0634\u0628\u0646\u062F",letters:["\u0644"]},{city:"\u0644\u0627\u0631\u0633\u062A\u0627\u0646",letters:["\u0645"]},{city:"\u062C\u0647\u0631\u0645",letters:["\u0647"]},{city:"\u0645\u0631\u0648\u062F\u0634\u062A",letters:["\u0648"]},{city:"\u0641\u0633\u0627",letters:["\u06CC"]}]},{code:"93",details:[{city:"\u0634\u06CC\u0631\u0627\u0632",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0645","\u0646"]},{city:"\u0644\u0627\u0631\u0633\u062A\u0627\u0646",letters:["\u0644"]},{city:"\u0634\u06CC\u0631\u0627\u0632 \u0648 \u0634\u0647\u0631\u0647\u0627\u06CC \u062F\u06CC\u06AF\u0631",letters:["\u0648","\u06CC"]}]}]},{province:"\u0642\u0632\u0648\u06CC\u0646",codes:[{code:"79",details:[{city:"\u0642\u0632\u0648\u06CC\u0646",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645"]}]},{code:"89",details:[{city:"\u062A\u0627\u06A9\u0633\u062A\u0627\u0646",letters:["\u0628","\u0633"]},{city:"\u0628\u0648\u06CC\u06CC\u0646 \u0632\u0647\u0631\u0627",letters:["\u062C"]},{city:"\u0622\u0628\u06CC\u06A9",letters:["\u062F"]}]}]},{province:"\u0642\u0645",codes:[{code:"16",details:[{city:"\u0642\u0645",letters:["\u062A\u0645\u0627\u0645 \u062D\u0631\u0648\u0641"]}]}]},{province:"\u06A9\u0631\u062F\u0633\u062A\u0627\u0646",codes:[{code:"51",details:[{city:"\u0633\u0646\u0646\u062F\u062C",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646","\u0648"]}]},{code:"61",details:[{city:"\u0633\u0642\u0632",letters:["\u0628","\u0645"]},{city:"\u0628\u06CC\u062C\u0627\u0631",letters:["\u062C"]},{city:"\u0628\u0627\u0646\u0647",letters:["\u062F","\u0647"]},{city:"\u0642\u0631\u0648\u0647",letters:["\u0633","\u0646"]},{city:"\u0645\u0631\u06CC\u0648\u0627\u0646",letters:["\u0635","\u0648"]},{city:"\u062F\u06CC\u0648\u0627\u0646\u062F\u0631\u0647",letters:["\u0637"]},{city:"\u06A9\u0627\u0645\u06CC\u0627\u0631\u0627\u0646",letters:["\u0642"]},{city:"\u0633\u0631\u0648\u0622\u0628\u0627\u062F",letters:["\u0644"]}]}]},{province:"\u06A9\u0631\u0645\u0627\u0646",codes:[{code:"45",details:[{city:"\u06A9\u0631\u0645\u0627\u0646",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646"]}]},{code:"65",details:[{city:"\u0631\u0641\u0633\u0646\u062C\u0627\u0646",letters:["\u0628","\u06CC"]},{city:"\u0628\u0645",letters:["\u062C"]},{city:"\u0633\u06CC\u0631\u062C\u0627\u0646",letters:["\u062F"]},{city:"\u0628\u0627\u0641\u062A",letters:["\u0633"]},{city:"\u062C\u06CC\u0631\u0641\u062A",letters:["\u0635"]},{city:"\u0632\u0631\u0646\u062F",letters:["\u0637"]},{city:"\u06A9\u0647\u0646\u0648\u062C",letters:["\u0642"]},{city:"\u0634\u0647\u0631 \u0628\u0627\u0628\u06A9",letters:["\u0644"]},{city:"\u0628\u0631\u062F\u0633\u06CC\u0631",letters:["\u0645"]},{city:"\u0645\u0646\u0648\u062C\u0627\u0646",letters:["\u0646"]},{city:"\u0631\u0627\u0648\u0631",letters:["\u0647"]},{city:"\u0639\u0646\u0628\u0631\u0622\u0628\u0627\u062F",letters:["\u0648"]}]},{code:"75",details:[{city:"\u0633\u06CC\u0631\u062C\u0627\u0646",letters:["\u0628","\u0635","\u0645"]},{city:"\u0628\u0645",letters:["\u062C"]},{city:"\u062C\u06CC\u0631\u0641\u062A",letters:["\u062F"]},{city:"\u0631\u0641\u0633\u0646\u062C\u0627\u0646",letters:["\u0633","\u0644"]},{city:"\u0632\u0631\u0646\u062F",letters:["\u0637"]},{city:"\u06A9\u0647\u0646\u0648\u062C",letters:["\u0642"]}]}]},{province:"\u06A9\u0631\u0645\u0627\u0646\u0634\u0627\u0647",codes:[{code:"19",details:[{city:"\u06A9\u0631\u0645\u0627\u0646\u0634\u0627\u0647",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646","\u0647","\u0648"]}]},{code:"29",details:[{city:"\u0627\u0633\u0644\u0627\u0645\u200C\u0622\u0628\u0627\u062F \u063A\u0631\u0628",letters:["\u0628","\u0647"]},{city:"\u06AF\u06CC\u0644\u0627\u0646 \u063A\u0631\u0628",letters:["\u062C"]},{city:"\u0633\u0631\u067E\u0644\u200C\u0630\u0647\u0627\u0628",letters:["\u062F"]},{city:"\u067E\u0627\u0648\u0647",letters:["\u0633"]},{city:"\u06A9\u0646\u06AF\u0627\u0648\u0631",letters:["\u0635"]},{city:"\u0642\u0635\u0631\u0634\u06CC\u0631\u06CC\u0646",letters:["\u0637"]},{city:"\u0633\u0646\u0642\u0631/\u0633\u0642\u0632",letters:["\u0642"]},{city:"\u062C\u0648\u0627\u0646\u0631\u0648\u062F",letters:["\u0644"]},{city:"\u0635\u062D\u0646\u0647",letters:["\u0645"]},{city:"\u0647\u0631\u0633\u06CC\u0646",letters:["\u0646"]},{city:"\u062B\u0644\u0627\u062B \u0628\u0627\u0628\u0627\u062C\u0627\u0646\u06CC",letters:["\u0648"]}]}]},{province:"\u06A9\u0647\u06AF\u06CC\u0644\u0648\u06CC\u0647 \u0648 \u0628\u0648\u06CC\u0631\u0627\u062D\u0645\u062F",codes:[{code:"49",details:[{city:"\u06CC\u0627\u0633\u0648\u062C",letters:["\u0628","\u062C","\u062F"]},{city:"\u06AF\u0686\u0633\u0627\u0631\u0627\u0646",letters:["\u0635","\u0644"]},{city:"\u06A9\u0647\u06AF\u06CC\u0644\u0648\u06CC\u0647",letters:["\u0637"]},{city:"\u062F\u0646\u0627",letters:["\u0642"]}]}]},{province:"\u06AF\u0644\u0633\u062A\u0627\u0646",codes:[{code:"59",details:[{city:"\u06AF\u0644\u0633\u062A\u0627\u0646",letters:["\u0628","\u062C","\u062F","\u0633","\u0635"]},{city:"\u06AF\u0646\u0628\u062F \u06A9\u0627\u0648\u0648\u0633",letters:["\u0628","\u0647"]},{city:"\u0628\u0646\u062F\u0631\u062A\u0631\u06A9\u0645\u0646",letters:["\u062C"]},{city:"\u06A9\u0631\u062F\u06A9\u0648\u06CC",letters:["\u062F"]},{city:"\u0639\u0644\u06CC\u200C\u0622\u0628\u0627\u062F",letters:["\u0633"]},{city:"\u0622\u0632\u0627\u062F\u0634\u0647\u0631",letters:["\u0635"]},{city:"\u0645\u06CC\u0646\u0648\u062F\u0634\u062A",letters:["\u0637"]},{city:"\u0628\u0646\u062F\u0631\u06AF\u0632",letters:["\u0642"]},{city:"\u0631\u0627\u0645\u06CC\u0627\u0646",letters:["\u0644"]},{city:"\u0622\u0642\u200C\u0642\u0644\u0627",letters:["\u0645"]},{city:"\u06A9\u0644\u0627\u0644\u0647",letters:["\u0646"]}]}]},{province:"\u06AF\u06CC\u0644\u0627\u0646",codes:[{code:"46",details:[{city:"\u0631\u0634\u062A",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646","\u0648"]}]},{code:"56",details:[{city:"\u0627\u0646\u0632\u0644\u06CC",letters:["\u0628"]},{city:"\u0644\u0627\u0647\u06CC\u062C\u0627\u0646",letters:["\u062C"]},{city:"\u0622\u0633\u062A\u0627\u0631\u0627",letters:["\u062F"]},{city:"\u0637\u0627\u0644\u0634",letters:["\u0633"]},{city:"\u0631\u0648\u062F\u0633\u0631",letters:["\u0635"]},{city:"\u0631\u0648\u062F\u0628\u0627\u0631",letters:["\u0637"]},{city:"\u0635\u0648\u0645\u0639\u0647\u200C\u0633\u0631\u0627",letters:["\u0642"]},{city:"\u0641\u0648\u0645\u0646",letters:["\u0644"]},{city:"\u0644\u0646\u06AF\u0631\u0648\u062F",letters:["\u0645"]},{city:"\u0631\u0636\u0648\u0627\u0646\u200C\u0634\u0647\u0631",letters:["\u0646"]},{city:"\u0645\u0627\u0633\u0627\u0644",letters:["\u0647"]},{city:"\u0627\u0645\u0644\u0634",letters:["\u0648"]},{city:"\u0634\u0641\u062A",letters:["\u06CC"]}]},{code:"76",details:[{city:"\u0633\u06CC\u0627\u0647\u06A9\u0644",letters:["\u0628"]},{city:"\u0622\u0633\u062A\u0627\u0646\u0647",letters:["\u062C"]},{city:"\u0644\u0627\u0647\u06CC\u062C\u0627\u0646",letters:["\u062F"]},{city:"\u0627\u0646\u0632\u0644\u06CC",letters:["\u0633"]},{city:"\u0644\u0646\u06AF\u0631\u0648\u062F",letters:["\u0635"]},{city:"\u0637\u0627\u0644\u0634",letters:["\u0637"]},{city:"\u0631\u0648\u062F\u0633\u0631",letters:["\u0642"]}]}]},{province:"\u0644\u0631\u0633\u062A\u0627\u0646",codes:[{code:"31",details:[{city:"\u062E\u0631\u0645\u200C\u0622\u0628\u0627\u062F",letters:["\u0628","\u062C","\u062F","\u0633","\u0635"]}]},{code:"41",details:[{city:"\u0628\u0631\u0648\u062C\u0631\u062F",letters:["\u0628","\u0645","\u0646"]},{city:"\u0627\u0644\u06CC\u06AF\u0648\u062F\u0631\u0632",letters:["\u062C"]},{city:"\u062F\u0648\u0631\u0648\u062F",letters:["\u062F","\u0648"]},{city:"\u06A9\u0648\u0647\u062F\u0634\u062A",letters:["\u0633","\u0648"]},{city:"\u062F\u0644\u0641\u0627\u0646",letters:["\u0635"]},{city:"\u0627\u0632\u0646\u0627",letters:["\u0637"]},{city:"\u067E\u0644 \u062F\u062E\u062A\u0631",letters:["\u0642"]},{city:"\u0633\u0644\u0633\u0644\u0647",letters:["\u0644"]}]}]},{province:"\u0645\u0627\u0632\u0646\u062F\u0631\u0627\u0646",codes:[{code:"62",details:[{city:"\u0633\u0627\u0631\u06CC",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637"]}]},{code:"72",details:[{city:"\u0622\u0645\u0644",letters:["\u0628"]},{city:"\u0628\u0627\u0628\u0644",letters:["\u062C"]},{city:"\u062A\u0646\u06A9\u0627\u0628\u0646",letters:["\u062F"]},{city:"\u0631\u0627\u0645\u0633\u0631",letters:["\u0633"]},{city:"\u0646\u0648\u0634\u0647\u0631",letters:["\u0635"]},{city:"\u0646\u0648\u0631",letters:["\u0637","\u06CC"]},{city:"\u0628\u0647\u0634\u0647\u0631",letters:["\u0642"]},{city:"\u0642\u0627\u0626\u0645\u0634\u0647\u0631",letters:["\u0644"]},{city:"\u0628\u0627\u0628\u0644\u0633\u0631",letters:["\u0645"]},{city:"\u0686\u0627\u0644\u0648\u0633",letters:["\u0646"]},{city:"\u0646\u06A9\u0627",letters:["\u0647"]},{city:"\u0645\u062D\u0645\u0648\u062F\u0622\u0628\u0627\u062F",letters:["\u0648"]},{city:"\u062C\u0648\u06CC\u0628\u0627\u0631",letters:["\u06CC"]}]},{code:"82",details:[{city:"\u0633\u0648\u0627\u062F\u06A9\u0648\u0647",letters:["\u0628"]},{city:"\u0628\u0627\u0628\u0644",letters:["\u062C","\u0635","\u0645"]},{city:"\u0622\u0645\u0644",letters:["\u062F","\u0642"]},{city:"\u0642\u0627\u0626\u0645\u0634\u0647\u0631",letters:["\u0633","\u0646"]},{city:"\u062A\u0646\u06A9\u0627\u0628\u0646",letters:["\u0637"]},{city:"\u0628\u0627\u0628\u0644\u0633\u0631",letters:["\u0644"]},{city:"\u0628\u0647\u0634\u0647\u0631",letters:["\u0647"]},{city:"\u0686\u0627\u0644\u0648\u0633",letters:["\u0648"]},{city:"\u0646\u0648\u0634\u0647\u0631",letters:["\u06CC"]}]},{code:"92",details:[{city:"\u0622\u0645\u0644",letters:["\u0628"]},{city:"\u0628\u0627\u0628\u0644",letters:["\u062C","\u0635"]},{city:"\u062A\u0646\u06A9\u0627\u0628\u0646",letters:["\u062F"]},{city:"\u0642\u0627\u0626\u0645\u0634\u0647\u0631",letters:["\u0633"]}]}]},{province:"\u0645\u0631\u06A9\u0632\u06CC",codes:[{code:"47",details:[{city:"\u0627\u0631\u0627\u06A9",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642"]}]},{code:"57",details:[{city:"\u0633\u0627\u0648\u0647",letters:["\u0628","\u0647","\u0648"]},{city:"\u062E\u0645\u06CC\u0646",letters:["\u062C"]},{city:"\u0645\u062D\u0644\u0627\u062A",letters:["\u062F"]},{city:"\u062A\u0641\u0631\u0634",letters:["\u0633"]},{city:"\u062F\u0644\u06CC\u062C\u0627\u0646",letters:["\u0635"]},{city:"\u0622\u0634\u062A\u06CC\u0627\u0646",letters:["\u0637"]},{city:"\u0634\u0627\u0632\u0646\u062F",letters:["\u0642"]},{city:"\u0632\u0631\u0646\u062F\u06CC\u0647",letters:["\u0644"]},{city:"\u06A9\u0645\u06CC\u062C\u0627\u0646",letters:["\u0646"]}]}]},{province:"\u0647\u0631\u0645\u0632\u06AF\u0627\u0646",codes:[{code:"84",details:[{city:"\u0628\u0646\u062F\u0631\u0639\u0628\u0627\u0633",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644"]}]},{code:"94",details:[{city:"\u0645\u06CC\u0646\u0627\u0628",letters:["\u0628","\u0645"]},{city:"\u0628\u0646\u062F\u0631 \u0644\u0646\u06AF\u0647",letters:["\u062C","\u0646"]},{city:"\u0631\u0648\u062F\u0627\u0646",letters:["\u062F"]},{city:"\u0627\u0628\u0648\u0645\u0648\u0633\u06CC",letters:["\u0633"]},{city:"\u062C\u0627\u0633\u06A9",letters:["\u0635"]},{city:"\u0628\u0633\u062A\u06A9",letters:["\u0637"]},{city:"\u062D\u0627\u062C\u06CC\u200C\u0622\u0628\u0627\u062F",letters:["\u0642"]},{city:"\u0642\u0634\u0645",letters:["\u0644"]}]}]},{province:"\u0647\u0645\u062F\u0627\u0646",codes:[{code:"18",details:[{city:"\u0647\u0645\u062F\u0627\u0646",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0642","\u0644","\u0637"]}]},{code:"28",details:[{city:"\u0646\u0647\u0627\u0648\u0646\u062F",letters:["\u0628","\u0645"]},{city:"\u0645\u0644\u0627\u06CC\u0631",letters:["\u062C","\u0644","\u0646"]},{city:"\u062A\u0648\u06CC\u0633\u0631\u06A9\u0627\u0646",letters:["\u062F"]},{city:"\u06A9\u0628\u0648\u062F\u0631\u0622\u0647\u0646\u06AF",letters:["\u0633"]},{city:"\u0631\u0632\u0646",letters:["\u0635"]},{city:"\u0628\u0647\u0627\u0631",letters:["\u0637"]},{city:"\u0627\u0633\u062F\u0622\u0628\u0627\u062F",letters:["\u0642"]}]}]},{province:"\u06CC\u0632\u062F",codes:[{code:"54",details:[{city:"\u06CC\u0632\u062F",letters:["\u0628","\u062C","\u062F","\u0633","\u0635","\u0637","\u0642","\u0644","\u0645","\u0646"]}]},{code:"64",details:[{city:"\u0627\u0631\u062F\u06A9\u0627\u0646",letters:["\u0628"]},{city:"\u062A\u0641\u062A",letters:["\u062C"]},{city:"\u0645\u06CC\u0628\u062F",letters:["\u062F"]},{city:"\u0628\u0627\u0641\u0642",letters:["\u0633"]},{city:"\u0645\u0647\u0631\u06CC\u0632",letters:["\u0635"]},{city:"\u0627\u0628\u0631\u06A9\u0648\u0647",letters:["\u0637"]},{city:"\u062E\u0627\u062A\u0645",letters:["\u0644"]},{city:"\u0635\u062F\u0648\u0642 (\u0627\u0634\u06A9\u0630\u0631)",letters:["\u0645"]}]}]}];var G=_;function o(e){if(!e)return"";let t=1776,s=1785,l=1632,i=1641,c=1610,n=1740,p=1603,a=1705,y="";for(let u=0;u<e.length;u++){let m=e.charCodeAt(u),b=e[u];m>=t&&m<=s?b=String(m-t):m>=l&&m<=i?b=String(m-l):m===c?b=String.fromCharCode(n):m===p&&(b=String.fromCharCode(a)),y+=b}return y}function F(e){let t=o(e).replace(/[\-\s]/g,"");if(t.length<6)return null;let s=t.substring(0,6),l=N[s];return l?{...l,formatted:t.replace(/(\d{4})(?=\d)/g,"$1-")}:null}function L(e){let t=o(e),s="";if(t.startsWith("09")?s=t.substring(0,4):t.startsWith("9")?s="0"+t.substring(0,3):t.startsWith("+98")&&(s="0"+t.substring(3,6)),s.length!==4)return null;for(let[l,i]of Object.entries(M))if(i.prefixes.includes(s))return{name:l,label:i.label,logo:i.logo};return null}function B(e){let t=0,s=2;for(let i=e.length-1;i>=0;i--)t+=parseInt(e[i])*s,s++,s>7&&(s=2);let l=t%11;return l===0||l===1?0:11-l}function I(e){let t=o(e);if(!/^\d{6,13}$/.test(t))return!1;let s=parseInt(t.slice(-1)),l=t.slice(0,-1);return B(l)===s}function $(e,t){let s=o(e),l=o(t);if(!/^\d{6,13}$/.test(s)||!/^\d{6,13}$/.test(l))return!1;let i=parseInt(s.slice(-2,-1)),c=s.slice(0,-2);if(B(c)!==i)return!1;let n=parseInt(s.slice(-1)),p=l+s.slice(0,-1);return B(p)===n}function T(e,t){let s=o(e);if(s.length<6||s.length>13)return null;let l=parseInt(s.slice(-2,-1)),i=D[l]||{label:"\u0646\u0627\u0645\u0634\u062E\u0635",slug:"unknown",color:"#333",logo:""},c=0,n="0",p=I(s);if(t){let a=o(t);if(!$(a,s))p=!1;else{let y=a.slice(0,-5);y.length>0&&(c=parseInt(y)*1e3,n=new Intl.NumberFormat("fa-IR").format(c))}}return{type:i,amount:c,formattedAmount:n,isValid:p}}function C(e){let t=o(e).replace(/[\s-]/g,""),s=/^(\d{2})([\u0600-\u06FF]{1,3}|[A-Za-z])(\d{3})(\d{2})$/,l=t.match(s);if(!l)return null;let i=l[2],c=l[4];for(let n of G){let p=n.codes.find(a=>{let y=a.code;return y.includes(",")?y.split(",").map(u=>u.trim()).includes(c):y===c});if(p){let a=p.details.find(y=>y.letters.includes(i)||y.letters.includes("\u062A\u0645\u0627\u0645 \u062D\u0631\u0648\u0641"));if(a)return{province:n.province,city:a.city,isValid:!0}}}return null}function x(e){return C(e)!==null}function S(e){let t=o(e);if(!/^\d{10}$/.test(t)||/^(\d)\1+$/.test(t))return!1;let s=parseInt(t[9]),l=t.substring(0,9).split("").reduce((i,c,n)=>i+parseInt(c)*(10-n),0)%11;return l<2?s===l:s===11-l}function E(e){let t=o(e);if(t.length!==11||!/^\d{11}$/.test(t))return!1;let s=parseInt(t[9]),l=parseInt(t[10]),i=[29,27,23,19,17,29,27,23,19,17],c=0;for(let a=0;a<10;a++){let y=parseInt(t[a]);c+=(y+s+2)*i[a]}let n=c%11;return(n===10?0:n)===l}function A(e){let t=o(e);return/^[A-Za-z][0-9]{8,9}$/.test(t)}function O(e){let t=o(e).replace(/[\-\s]/g,"");if(!/^\d{16}$/.test(t))return!1;let s=0,l=!1;for(let i=t.length-1;i>=0;i--){let c=parseInt(t[i]);l&&(c*=2,c>9&&(c-=9)),s+=c,l=!l}return s%10===0}function P(e,{strictZero:t="optional"}={}){let s=o(e),l="9\\d{9}",i="";return t===!0?i=`^0${l}$`:t===!1?i=`^${l}$`:i=`^(?:0|\\+98)?${l}$`,new RegExp(i).test(s)}function z(e){let s=o(e).toUpperCase().replace(/[\-\s]/g,"");if(s.length!==26||!s.startsWith("IR"))return!1;let i=(s.substring(4)+s.substring(0,4)).split("").map(c=>{let n=c.charCodeAt(0);return n>=48&&n<=57?c:(n-55).toString()}).join("");try{return BigInt(i)%BigInt(97)===BigInt(1)}catch{return!1}}function R(e){let t=o(e);return/^[1-9]\d{9}$/.test(t)}function k(e){let t=o(e);return/^0\d{2}\d{8}$/.test(t)}var W={fa:{melliCode:"\u06A9\u062F \u0645\u0644\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",shenaseMelli:"\u0634\u0646\u0627\u0633\u0647 \u0645\u0644\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",passport:"\u0634\u0645\u0627\u0631\u0647 \u06AF\u0630\u0631\u0646\u0627\u0645\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",cardNumber:"\u0634\u0645\u0627\u0631\u0647 \u06A9\u0627\u0631\u062A \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",mobile:"\u0634\u0645\u0627\u0631\u0647 \u0645\u0648\u0628\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",sheba:"\u0634\u0645\u0627\u0631\u0647 \u0634\u0628\u0627 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",postalCode:"\u06A9\u062F \u067E\u0633\u062A\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",landline:"\u0634\u0645\u0627\u0631\u0647 \u062A\u0644\u0641\u0646 \u062B\u0627\u0628\u062A \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",billId:"\u0634\u0646\u0627\u0633\u0647 \u0642\u0628\u0636 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",paymentId:"\u0634\u0646\u0627\u0633\u0647 \u067E\u0631\u062F\u0627\u062E\u062A \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",plateNumber:"\u067E\u0644\u0627\u06A9 \u062E\u0648\u062F\u0631\u0648 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A"},en:{melliCode:"Invalid national code",shenaseMelli:"Invalid legal person ID (Shenase Melli)",passport:"Invalid passport number",cardNumber:"Invalid card number",mobile:"Invalid mobile number",sheba:"Invalid Sheba (IBAN) number",postalCode:"Invalid postal code",landline:"Invalid landline number",billId:"Invalid Bill ID",paymentId:"Invalid Payment ID",plateNumber:"Invalid License Plate"}},g=(e,t)=>{if(t?.message)return t.message;let s=t?.locale||"fa";return W[s][e]};var H=e=>d.z.string().refine(t=>S(t),{message:g("melliCode",e)}),U=e=>d.z.string().refine(t=>E(t),{message:g("shenaseMelli",e)}),q=e=>d.z.string().refine(t=>A(t),{message:g("passport",e)}),J=e=>d.z.string().refine(t=>O(t),{message:g("cardNumber",e)}),Q=e=>d.z.string().refine(t=>P(t,{strictZero:e?.strictZero}),{message:g("mobile",e)}),X=e=>d.z.string().refine(t=>z(t),{message:g("sheba",e)}),tt=e=>d.z.string().refine(t=>R(t),{message:g("postalCode",e)}),et=e=>d.z.string().refine(t=>k(t),{message:g("landline",e)}),st=e=>d.z.string().refine(t=>I(t),{message:g("billId",e)}),lt=e=>d.z.string().refine(t=>t.length>=6&&t.length<=13,{message:g("paymentId",e)}),it=e=>d.z.string().refine(t=>x(t),{message:g("plateNumber",e)}),rt=e=>d.z.preprocess(t=>typeof t=="string"?o(t):t,e);0&&(module.exports={getBankInfo,getBillInfo,getMobileOperator,getPlateInfo,isBillIdValid,isCardNumber,isIranianMobile,isLandline,isMelliCode,isPassport,isPaymentIdValid,isPlateNumber,isPostalCode,isSheba,isShenaseMelli,preprocessNumber,verifyAndNormalize,zBillId,zCardNumber,zIranianMobile,zLandline,zMelliCode,zPassport,zPaymentId,zPlateNumber,zPostalCode,zSheba,zShenaseMelli});
2
2
  //# sourceMappingURL=index.js.map