@expresscsv/schemas 0.1.18 → 0.1.20

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/README.md CHANGED
@@ -54,7 +54,7 @@ export const customerSchema = x.row({
54
54
  });
55
55
  ```
56
56
 
57
- `x.dynamicRow(...)` lets you build the row at runtime, which is useful when the schema depends on account data, user preferences, or enabled custom fields.
57
+ `x.row(...)` also works for runtime-built schemas, which is useful when the shape depends on account data, user preferences, or enabled custom fields.
58
58
 
59
59
  ```typescript
60
60
  import { x } from '@expresscsv/schemas';
@@ -64,7 +64,7 @@ export function buildCustomerSchema(options: {
64
64
  collectHealthScore: boolean;
65
65
  collectSegment: boolean;
66
66
  }) {
67
- return x.dynamicRow({
67
+ return x.row({
68
68
  email: x.string().email().label('Email'),
69
69
  companyName: x.string().label('Company Name'),
70
70
  ...(options.collectCrmId ? { crmId: x.string().label('CRM ID') } : {}),
@@ -92,6 +92,8 @@ const customerSchema = buildCustomerSchema({
92
92
  });
93
93
  ```
94
94
 
95
+ Dynamic schema assembly preserves the same runtime parsing behavior, but it can widen `Infer<typeof schema>` because the exact keys are no longer fully known to TypeScript. Use it intentionally.
96
+
95
97
  ```typescript
96
98
  import express from 'express';
97
99
  import type { InferWebhookPayload } from '@expresscsv/schemas';
package/dist/index.d.cts CHANGED
@@ -2689,16 +2689,14 @@ export declare class ExRow<T extends ExRowShape> extends ExType<{
2689
2689
  * Factory method to create an ExRow validator for a row of data
2690
2690
  *
2691
2691
  * @param shape - Object defining the structure of fields in the row
2692
+ *
2693
+ * Object literals preserve exact key inference. If callers build the shape
2694
+ * through a widened variable or conditional assembly, TypeScript may widen
2695
+ * the resulting row type as well.
2696
+ *
2692
2697
  * @returns A new ExRow instance
2693
2698
  */
2694
2699
  static create<T extends ExRowShape>(shape: T): ExRow<T>;
2695
- /**
2696
- * Factory method for runtime-built row shapes.
2697
- *
2698
- * This intentionally widens the returned type to ExRow<ExRowShape> so callers
2699
- * can assemble fields conditionally without relying on exact key inference.
2700
- */
2701
- static createDynamic(shape: ExRowShape): ExRow<ExRowShape>;
2702
2700
  /**
2703
2701
  * Specifies columns that can be null/optional with conditional logic
2704
2702
  *
@@ -3139,6 +3137,18 @@ declare interface GTINOptions {
3139
3137
  message?: string;
3140
3138
  }
3141
3139
 
3140
+ export declare const heroDemoSchema: ExRow< {
3141
+ name: ExString;
3142
+ email: ExString;
3143
+ deskExtension: ExNumber;
3144
+ isManager: ExBoolean;
3145
+ hireDate: ExDate;
3146
+ dailyCoffeeTime: ExOptionalTime;
3147
+ lastDundieAwardAt: ExOptionalDatetime;
3148
+ department: ExSelect<"management" | "sales" | "reception" | "accounting" | "support">;
3149
+ notableTraits: ExOptionalMultiselect<"worlds-best-boss-mug" | "bears-beets-battlestar" | "art-school" | "pretzel-day" | "crossword-puzzles" | "volunteer-sheriff-deputy">;
3150
+ }>;
3151
+
3142
3152
  declare interface IbanOptions {
3143
3153
  allowedCountries?: CountryTwoLetterCode[];
3144
3154
  message?: string;
@@ -3341,7 +3351,6 @@ export declare const x: {
3341
3351
  time: typeof ExTime.create;
3342
3352
  datetime: typeof ExDatetime.create;
3343
3353
  row: typeof ExRow.create;
3344
- dynamicRow: typeof ExRow.createDynamic;
3345
3354
  select: typeof ExSelect.create;
3346
3355
  multiselect: typeof ExMultiselect.create;
3347
3356
  infer: <T extends ExType<unknown, ExBaseDef, unknown>>(_schema: T) => Infer<T>;
package/dist/index.d.mts CHANGED
@@ -2689,16 +2689,14 @@ export declare class ExRow<T extends ExRowShape> extends ExType<{
2689
2689
  * Factory method to create an ExRow validator for a row of data
2690
2690
  *
2691
2691
  * @param shape - Object defining the structure of fields in the row
2692
+ *
2693
+ * Object literals preserve exact key inference. If callers build the shape
2694
+ * through a widened variable or conditional assembly, TypeScript may widen
2695
+ * the resulting row type as well.
2696
+ *
2692
2697
  * @returns A new ExRow instance
2693
2698
  */
2694
2699
  static create<T extends ExRowShape>(shape: T): ExRow<T>;
2695
- /**
2696
- * Factory method for runtime-built row shapes.
2697
- *
2698
- * This intentionally widens the returned type to ExRow<ExRowShape> so callers
2699
- * can assemble fields conditionally without relying on exact key inference.
2700
- */
2701
- static createDynamic(shape: ExRowShape): ExRow<ExRowShape>;
2702
2700
  /**
2703
2701
  * Specifies columns that can be null/optional with conditional logic
2704
2702
  *
@@ -3139,6 +3137,18 @@ declare interface GTINOptions {
3139
3137
  message?: string;
3140
3138
  }
3141
3139
 
3140
+ export declare const heroDemoSchema: ExRow< {
3141
+ name: ExString;
3142
+ email: ExString;
3143
+ deskExtension: ExNumber;
3144
+ isManager: ExBoolean;
3145
+ hireDate: ExDate;
3146
+ dailyCoffeeTime: ExOptionalTime;
3147
+ lastDundieAwardAt: ExOptionalDatetime;
3148
+ department: ExSelect<"management" | "sales" | "reception" | "accounting" | "support">;
3149
+ notableTraits: ExOptionalMultiselect<"worlds-best-boss-mug" | "bears-beets-battlestar" | "art-school" | "pretzel-day" | "crossword-puzzles" | "volunteer-sheriff-deputy">;
3150
+ }>;
3151
+
3142
3152
  declare interface IbanOptions {
3143
3153
  allowedCountries?: CountryTwoLetterCode[];
3144
3154
  message?: string;
@@ -3341,7 +3351,6 @@ export declare const x: {
3341
3351
  time: typeof ExTime.create;
3342
3352
  datetime: typeof ExDatetime.create;
3343
3353
  row: typeof ExRow.create;
3344
- dynamicRow: typeof ExRow.createDynamic;
3345
3354
  select: typeof ExSelect.create;
3346
3355
  multiselect: typeof ExMultiselect.create;
3347
3356
  infer: <T extends ExType<unknown, ExBaseDef, unknown>>(_schema: T) => Infer<T>;
package/dist/index.d.ts CHANGED
@@ -2689,16 +2689,14 @@ export declare class ExRow<T extends ExRowShape> extends ExType<{
2689
2689
  * Factory method to create an ExRow validator for a row of data
2690
2690
  *
2691
2691
  * @param shape - Object defining the structure of fields in the row
2692
+ *
2693
+ * Object literals preserve exact key inference. If callers build the shape
2694
+ * through a widened variable or conditional assembly, TypeScript may widen
2695
+ * the resulting row type as well.
2696
+ *
2692
2697
  * @returns A new ExRow instance
2693
2698
  */
2694
2699
  static create<T extends ExRowShape>(shape: T): ExRow<T>;
2695
- /**
2696
- * Factory method for runtime-built row shapes.
2697
- *
2698
- * This intentionally widens the returned type to ExRow<ExRowShape> so callers
2699
- * can assemble fields conditionally without relying on exact key inference.
2700
- */
2701
- static createDynamic(shape: ExRowShape): ExRow<ExRowShape>;
2702
2700
  /**
2703
2701
  * Specifies columns that can be null/optional with conditional logic
2704
2702
  *
@@ -3139,6 +3137,18 @@ declare interface GTINOptions {
3139
3137
  message?: string;
3140
3138
  }
3141
3139
 
3140
+ export declare const heroDemoSchema: ExRow< {
3141
+ name: ExString;
3142
+ email: ExString;
3143
+ deskExtension: ExNumber;
3144
+ isManager: ExBoolean;
3145
+ hireDate: ExDate;
3146
+ dailyCoffeeTime: ExOptionalTime;
3147
+ lastDundieAwardAt: ExOptionalDatetime;
3148
+ department: ExSelect<"management" | "sales" | "reception" | "accounting" | "support">;
3149
+ notableTraits: ExOptionalMultiselect<"worlds-best-boss-mug" | "bears-beets-battlestar" | "art-school" | "pretzel-day" | "crossword-puzzles" | "volunteer-sheriff-deputy">;
3150
+ }>;
3151
+
3142
3152
  declare interface IbanOptions {
3143
3153
  allowedCountries?: CountryTwoLetterCode[];
3144
3154
  message?: string;
@@ -3341,7 +3351,6 @@ export declare const x: {
3341
3351
  time: typeof ExTime.create;
3342
3352
  datetime: typeof ExDatetime.create;
3343
3353
  row: typeof ExRow.create;
3344
- dynamicRow: typeof ExRow.createDynamic;
3345
3354
  select: typeof ExSelect.create;
3346
3355
  multiselect: typeof ExMultiselect.create;
3347
3356
  infer: <T extends ExType<unknown, ExBaseDef, unknown>>(_schema: T) => Infer<T>;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- 'use strict';var ge=Object.defineProperty;var Y=Object.getOwnPropertySymbols;var he=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable;var q=(o,e,n)=>e in o?ge(o,e,{enumerable:true,configurable:true,writable:true,value:n}):o[e]=n,d=(o,e)=>{for(var n in e||(e={}))he.call(e,n)&&q(o,n,e[n]);if(Y)for(var n of Y(e))xe.call(e,n)&&q(o,n,e[n]);return o};var C=class{constructor(e){this._def=e;}_addCheck(e,n,t){return {type:e,params:n,message:t}}},p=class extends C{columnNameAliases(e){return this._def.columnNameAliases=e,this}description(e){return this._def.description=e,this}label(e){return this._def.label=e,this}example(e){return this._def.example=e,this}refine(e,n){let t=this._addCheck("refine",{validator:e,params:n});return this._def.checks||(this._def.checks=[]),this._def.checks.push(t),this}refineBatch(e,n){let t=this._addCheck("refineBatch",{validator:e,params:n});return this._def.checks||(this._def.checks=[]),this._def.checks.push(t),this}_findExistingCheck(e){if(!this._def.checks)return {check:void 0,index:-1,found:false};let n=this._def.checks.findIndex(i=>i.type===e),t=n!==-1;return {check:t?this._def.checks[n]:void 0,index:n,found:t}}_replaceOrAddCheck(e,n){this._def.checks||(this._def.checks=[]),n!==-1?this._def.checks[n]=e:this._def.checks.push(e);}};var H=[{name:"Afghanistan",alpha2:"AF",alpha3:"AFG",aliases:["Af\u0121\u0101nist\u0101n","\u0627\u0641\u063A\u0627\u0646\u0633\u062A\u0627\u0646"]},{name:"\xC5land Islands",alpha2:"AX",alpha3:"ALA",aliases:["Ahvenanmaa","\xC5land"]},{name:"Albania",alpha2:"AL",alpha3:"ALB",aliases:["Shqip\xEBri","Shqip\xEBria"]},{name:"Algeria",alpha2:"DZ",alpha3:"DZA",aliases:["\u0627\u0644\u062C\u0632\u0627\u0626\u0631","Alg\xE9rie"]},{name:"American Samoa",alpha2:"AS",alpha3:"ASM",aliases:["S\u0101moa Amelika","Amelika S\u0101moa"]},{name:"Andorra",alpha2:"AD",alpha3:"AND",aliases:["Principat d'Andorra"]},{name:"Angola",alpha2:"AO",alpha3:"AGO",aliases:["Rep\xFAblica de Angola"]},{name:"Anguilla",alpha2:"AI",alpha3:"AIA",aliases:[]},{name:"Antigua and Barbuda",alpha2:"AG",alpha3:"ATG",aliases:["Antigua","Barbuda"]},{name:"Argentina",alpha2:"AR",alpha3:"ARG",aliases:["Rep\xFAblica Argentina","Argentine Republic"]},{name:"Armenia",alpha2:"AM",alpha3:"ARM",aliases:["\u0540\u0561\u0575\u0561\u057D\u057F\u0561\u0576","Hayastan","Republic of Armenia"]},{name:"Aruba",alpha2:"AW",alpha3:"ABW",aliases:[]},{name:"Australia",alpha2:"AU",alpha3:"AUS",aliases:["Commonwealth of Australia","Oz"]},{name:"Austria",alpha2:"AT",alpha3:"AUT",aliases:["\xD6sterreich"]},{name:"Azerbaijan",alpha2:"AZ",alpha3:"AZE",aliases:["Az\u0259rbaycan","Republic of Azerbaijan"]},{name:"Bahamas",alpha2:"BS",alpha3:"BHS",aliases:["The Bahamas","Commonwealth of The Bahamas"]},{name:"Bahrain",alpha2:"BH",alpha3:"BHR",aliases:["\u0627\u0644\u0628\u062D\u0631\u064A\u0646","Kingdom of Bahrain"]},{name:"Bangladesh",alpha2:"BD",alpha3:"BGD",aliases:["\u09AC\u09BE\u0982\u09B2\u09BE\u09A6\u09C7\u09B6","People's Republic of Bangladesh"]},{name:"Barbados",alpha2:"BB",alpha3:"BRB",aliases:[]},{name:"Belarus",alpha2:"BY",alpha3:"BLR",aliases:["\u0411\u0435\u043B\u0430\u0440\u0443\u0441\u044C","Republic of Belarus","Belorussia"]},{name:"Belgium",alpha2:"BE",alpha3:"BEL",aliases:["Belgi\xEB","Belgique","Belgien"]},{name:"Belize",alpha2:"BZ",alpha3:"BLZ",aliases:[]},{name:"Benin",alpha2:"BJ",alpha3:"BEN",aliases:["Republic of Benin","R\xE9publique du B\xE9nin"]},{name:"Bermuda",alpha2:"BM",alpha3:"BMU",aliases:[]},{name:"Bhutan",alpha2:"BT",alpha3:"BTN",aliases:["\u0F60\u0F56\u0FB2\u0F74\u0F42\u0F0B\u0F61\u0F74\u0F63\u0F0B","Druk Yul","Kingdom of Bhutan"]},{name:"Bolivia",alpha2:"BO",alpha3:"BOL",aliases:["Bolivia","Estado Plurinacional de Bolivia"]},{name:"Bonaire, Sint Eustatius and Saba",alpha2:"BQ",alpha3:"BES",aliases:["Caribbean Netherlands"]},{name:"Bosnia and Herzegovina",alpha2:"BA",alpha3:"BIH",aliases:["Bosna i Hercegovina"]},{name:"Botswana",alpha2:"BW",alpha3:"BWA",aliases:["Republic of Botswana"]},{name:"Brazil",alpha2:"BR",alpha3:"BRA",aliases:["Brasil","Federative Republic of Brazil"]},{name:"British Indian Ocean Territory",alpha2:"IO",alpha3:"IOT",aliases:[]},{name:"Brunei Darussalam",alpha2:"BN",alpha3:"BRN",aliases:["Brunei"]},{name:"Bulgaria",alpha2:"BG",alpha3:"BGR",aliases:["\u0411\u044A\u043B\u0433\u0430\u0440\u0438\u044F","Republic of Bulgaria"]},{name:"Burkina Faso",alpha2:"BF",alpha3:"BFA",aliases:["Burkina"]},{name:"Burundi",alpha2:"BI",alpha3:"BDI",aliases:["Republic of Burundi","Republika y'Uburundi"]},{name:"Cabo Verde",alpha2:"CV",alpha3:"CPV",aliases:["Cape Verde"]},{name:"Cambodia",alpha2:"KH",alpha3:"KHM",aliases:["\u1780\u1798\u17D2\u1796\u17BB\u1787\u17B6","Kingdom of Cambodia"]},{name:"Cameroon",alpha2:"CM",alpha3:"CMR",aliases:["Cameroun","Republic of Cameroon"]},{name:"Canada",alpha2:"CA",alpha3:"CAN",aliases:["Kanada","Canada (French)"]},{name:"Cayman Islands",alpha2:"KY",alpha3:"CYM",aliases:[]},{name:"Central African Republic",alpha2:"CF",alpha3:"CAF",aliases:["R\xE9publique centrafricaine"]},{name:"Chad",alpha2:"TD",alpha3:"TCD",aliases:["Tchad","\u062C\u0645\u0647\u0648\u0631\u064A\u0629 \u062A\u0634\u0627\u062F"]},{name:"Chile",alpha2:"CL",alpha3:"CHL",aliases:["Rep\xFAblica de Chile"]},{name:"China",alpha2:"CN",alpha3:"CHN",aliases:["\u4E2D\u534E\u4EBA\u6C11\u5171\u548C\u56FD","\u4E2D\u56FD","Zh\u014Dnggu\xF3","People's Republic of China","PRC"]},{name:"Christmas Island",alpha2:"CX",alpha3:"CXR",aliases:[]},{name:"Cocos (Keeling) Islands",alpha2:"CC",alpha3:"CCK",aliases:[]},{name:"Colombia",alpha2:"CO",alpha3:"COL",aliases:["Rep\xFAblica de Colombia"]},{name:"Comoros",alpha2:"KM",alpha3:"COM",aliases:["\u062C\u0632\u0631 \u0627\u0644\u0642\u0645\u0631","Union of the Comoros"]},{name:"Congo",alpha2:"CG",alpha3:"COG",aliases:["Republic of the Congo","Congo-Brazzaville"]},{name:"Democratic Republic of the Congo",alpha2:"CD",alpha3:"COD",aliases:["Democratic Republic of the Congo","Congo-Kinshasa","DR Congo","DRC"]},{name:"Cook Islands",alpha2:"CK",alpha3:"COK",aliases:[]},{name:"Costa Rica",alpha2:"CR",alpha3:"CRI",aliases:["Rep\xFAblica de Costa Rica"]},{name:"C\xF4te d'Ivoire",alpha2:"CI",alpha3:"CIV",aliases:["Ivory Coast","R\xE9publique de C\xF4te d'Ivoire"]},{name:"Croatia",alpha2:"HR",alpha3:"HRV",aliases:["Hrvatska","Republic of Croatia"]},{name:"Cuba",alpha2:"CU",alpha3:"CUB",aliases:["Rep\xFAblica de Cuba"]},{name:"Cura\xE7ao",alpha2:"CW",alpha3:"CUW",aliases:[]},{name:"Cyprus",alpha2:"CY",alpha3:"CYP",aliases:["\u039A\u03CD\u03C0\u03C1\u03BF\u03C2","K\u0131br\u0131s"]},{name:"Czechia",alpha2:"CZ",alpha3:"CZE",aliases:["Czech Republic","\u010Cesko"]},{name:"Denmark",alpha2:"DK",alpha3:"DNK",aliases:["Danmark"]},{name:"Djibouti",alpha2:"DJ",alpha3:"DJI",aliases:["\u062C\u064A\u0628\u0648\u062A\u064A","Djibouti City-State"]},{name:"Dominica",alpha2:"DM",alpha3:"DMA",aliases:[]},{name:"Dominican Republic",alpha2:"DO",alpha3:"DOM",aliases:["Rep\xFAblica Dominicana"]},{name:"Ecuador",alpha2:"EC",alpha3:"ECU",aliases:["Rep\xFAblica del Ecuador"]},{name:"Egypt",alpha2:"EG",alpha3:"EGY",aliases:["\u0645\u0635\u0631","Arab Republic of Egypt"]},{name:"El Salvador",alpha2:"SV",alpha3:"SLV",aliases:["Rep\xFAblica de El Salvador"]},{name:"Equatorial Guinea",alpha2:"GQ",alpha3:"GNQ",aliases:["Rep\xFAblica de Guinea Ecuatorial","R\xE9publique de Guin\xE9e \xE9quatoriale","Rep\xFAblica da Guin\xE9 Equatorial"]},{name:"Eritrea",alpha2:"ER",alpha3:"ERI",aliases:["State of Eritrea","\u12A4\u122D\u1275\u122B","\u0625\u0631\u064A\u062A\u0631\u064A\u0627"]},{name:"Estonia",alpha2:"EE",alpha3:"EST",aliases:["Eesti"]},{name:"Eswatini",alpha2:"SZ",alpha3:"SWZ",aliases:["Swaziland","Kingdom of Eswatini"]},{name:"Ethiopia",alpha2:"ET",alpha3:"ETH",aliases:["\u12A2\u1275\u12EE\u1335\u12EB","Federal Democratic Republic of Ethiopia"]},{name:"Falkland Islands (Malvinas)",alpha2:"FK",alpha3:"FLK",aliases:["Islas Malvinas"]},{name:"Faroe Islands",alpha2:"FO",alpha3:"FRO",aliases:["F\xF8royar"]},{name:"Fiji",alpha2:"FJ",alpha3:"FJI",aliases:["Viti","Fiji Islands"]},{name:"Finland",alpha2:"FI",alpha3:"FIN",aliases:["Suomi"]},{name:"France",alpha2:"FR",alpha3:"FRA",aliases:["R\xE9publique fran\xE7aise"]},{name:"French Guiana",alpha2:"GF",alpha3:"GUF",aliases:["Guyane"]},{name:"French Polynesia",alpha2:"PF",alpha3:"PYF",aliases:["Polyn\xE9sie fran\xE7aise"]},{name:"Gabon",alpha2:"GA",alpha3:"GAB",aliases:["R\xE9publique gabonaise"]},{name:"Gambia",alpha2:"GM",alpha3:"GMB",aliases:["Republic of The Gambia"]},{name:"Georgia",alpha2:"GE",alpha3:"GEO",aliases:["\u10E1\u10D0\u10E5\u10D0\u10E0\u10D7\u10D5\u10D4\u10DA\u10DD","Sakartvelo"]},{name:"Germany",alpha2:"DE",alpha3:"DEU",aliases:["Deutschland","Federal Republic of Germany"]},{name:"Ghana",alpha2:"GH",alpha3:"GHA",aliases:["Republic of Ghana"]},{name:"Gibraltar",alpha2:"GI",alpha3:"GIB",aliases:[""]},{name:"Greece",alpha2:"GR",alpha3:"GRC",aliases:["\u0395\u03BB\u03BB\u03AC\u03B4\u03B1","Hellas","Hellenic Republic"]},{name:"Greenland",alpha2:"GL",alpha3:"GRL",aliases:["Kalaallit Nunaat"]},{name:"Grenada",alpha2:"GD",alpha3:"GRD",aliases:[]},{name:"Guadeloupe",alpha2:"GP",alpha3:"GLP",aliases:[]},{name:"Guam",alpha2:"GU",alpha3:"GUM",aliases:["Gu\xE5h\xE5n"]},{name:"Guatemala",alpha2:"GT",alpha3:"GTM",aliases:["Rep\xFAblica de Guatemala"]},{name:"Guernsey",alpha2:"GG",alpha3:"GGY",aliases:[]},{name:"Guinea",alpha2:"GN",alpha3:"GIN",aliases:["R\xE9publique de Guin\xE9e"]},{name:"Guinea-Bissau",alpha2:"GW",alpha3:"GNB",aliases:["Rep\xFAblica da Guin\xE9-Bissau"]},{name:"Guyana",alpha2:"GY",alpha3:"GUY",aliases:["Co-operative Republic of Guyana"]},{name:"Haiti",alpha2:"HT",alpha3:"HTI",aliases:["R\xE9publique d'Ha\xEFti","Repiblik d Ayiti"]},{name:"Holy See",alpha2:"VA",alpha3:"VAT",aliases:["Vatican City","Vatican City State","Santa Sede"]},{name:"Honduras",alpha2:"HN",alpha3:"HND",aliases:["Rep\xFAblica de Honduras"]},{name:"Hong Kong",alpha2:"HK",alpha3:"HKG",aliases:["\u9999\u6E2F","Xianggang","Hong Kong SAR"]},{name:"Hungary",alpha2:"HU",alpha3:"HUN",aliases:["Magyarorsz\xE1g"]},{name:"Iceland",alpha2:"IS",alpha3:"ISL",aliases:["\xCDsland"]},{name:"India",alpha2:"IN",alpha3:"IND",aliases:["\u092D\u093E\u0930\u0924","Republic of India","Bharat"]},{name:"Indonesia",alpha2:"ID",alpha3:"IDN",aliases:["Republik Indonesia"]},{name:"Iran, Islamic Republic of",alpha2:"IR",alpha3:"IRN",aliases:["\u0627\u06CC\u0631\u0627\u0646","Islamic Republic of Iran"]},{name:"Iraq",alpha2:"IQ",alpha3:"IRQ",aliases:["\u0627\u0644\u0639\u0631\u0627\u0642","Republic of Iraq"]},{name:"Ireland",alpha2:"IE",alpha3:"IRL",aliases:["\xC9ire","Republic of Ireland"]},{name:"Isle of Man",alpha2:"IM",alpha3:"IMN",aliases:["Mann","Ellan Vannin"]},{name:"Israel",alpha2:"IL",alpha3:"ISR",aliases:["\u05D9\u05B4\u05E9\u05B0\u05C2\u05E8\u05B8\u05D0\u05B5\u05DC","State of Israel","Med\u012Bnat Yisr\u0101'el"]},{name:"Italy",alpha2:"IT",alpha3:"ITA",aliases:["Italia","Repubblica Italiana"]},{name:"Jamaica",alpha2:"JM",alpha3:"JAM",aliases:[]},{name:"Japan",alpha2:"JP",alpha3:"JPN",aliases:["\u65E5\u672C","Nihon","Nippon"]},{name:"Jersey",alpha2:"JE",alpha3:"JEY",aliases:[]},{name:"Jordan",alpha2:"JO",alpha3:"JOR",aliases:["\u0627\u0644\u0623\u0631\u062F\u0646","Hashemite Kingdom of Jordan"]},{name:"Kazakhstan",alpha2:"KZ",alpha3:"KAZ",aliases:["\u049A\u0430\u0437\u0430\u049B\u0441\u0442\u0430\u043D","Republic of Kazakhstan"]},{name:"Kenya",alpha2:"KE",alpha3:"KEN",aliases:["Republic of Kenya"]},{name:"Kiribati",alpha2:"KI",alpha3:"KIR",aliases:[]},{name:"North Korea",alpha2:"KP",alpha3:"PRK",aliases:["North Korea","\uC870\uC120\uBBFC\uC8FC\uC8FC\uC758\uC778\uBBFC\uACF5\uD654\uAD6D","Democratic People's Republic of Korea"]},{name:"South Korea",alpha2:"KR",alpha3:"KOR",aliases:["South Korea","\uB300\uD55C\uBBFC\uAD6D","Republic of Korea"]},{name:"Kosovo",alpha2:"XK",alpha3:"XKS",aliases:["Kosova","\u041A\u043E\u0441\u043E\u0432\u043E","Republic of Kosovo","Republika e Kosov\xEBs"]},{name:"Kuwait",alpha2:"KW",alpha3:"KWT",aliases:["\u0627\u0644\u0643\u0648\u064A\u062A","State of Kuwait"]},{name:"Kyrgyzstan",alpha2:"KG",alpha3:"KGZ",aliases:["\u041A\u044B\u0440\u0433\u044B\u0437\u0441\u0442\u0430\u043D","Kyrgyz Republic"]},{name:"Lao People's Democratic Republic",alpha2:"LA",alpha3:"LAO",aliases:["Laos","\u0EAA\u0E9B\u0E9B\u0EA5\u0EB2\u0EA7"]},{name:"Latvia",alpha2:"LV",alpha3:"LVA",aliases:["Latvija"]},{name:"Lebanon",alpha2:"LB",alpha3:"LBN",aliases:["\u0644\u0628\u0646\u0627\u0646","Republic of Lebanon"]},{name:"Lesotho",alpha2:"LS",alpha3:"LSO",aliases:["Kingdom of Lesotho"]},{name:"Liberia",alpha2:"LR",alpha3:"LBR",aliases:["Republic of Liberia"]},{name:"Libya",alpha2:"LY",alpha3:"LBY",aliases:["Libyan Arab Jamahiriya"]},{name:"Liechtenstein",alpha2:"LI",alpha3:"LIE",aliases:["F\xFCrstentum Liechtenstein"]},{name:"Lithuania",alpha2:"LT",alpha3:"LTU",aliases:["Lietuva","Republic of Lithuania"]},{name:"Luxembourg",alpha2:"LU",alpha3:"LUX",aliases:["L\xEBtzebuerg","Luxembourg","Luxemburg"]},{name:"Macao",alpha2:"MO",alpha3:"MAC",aliases:["\u6FB3\u9580","Macao SAR","\xC0om\xE9n"]},{name:"Madagascar",alpha2:"MG",alpha3:"MDG",aliases:["Repoblikan'i Madagasikara","R\xE9publique de Madagascar"]},{name:"Malawi",alpha2:"MW",alpha3:"MWI",aliases:["Republic of Malawi"]},{name:"Malaysia",alpha2:"MY",alpha3:"MYS",aliases:["Malaysia","\u0645\u0627\u0644\u064A\u0632\u064A\u0627"]},{name:"Maldives",alpha2:"MV",alpha3:"MDV",aliases:["\u078B\u07A8\u0788\u07AC\u0780\u07A8\u0783\u07A7\u0787\u07B0\u0796\u07AD\u078E\u07AC","Dhivehi Raajje","Republic of Maldives"]},{name:"Mali",alpha2:"ML",alpha3:"MLI",aliases:["R\xE9publique du Mali"]},{name:"Malta",alpha2:"MT",alpha3:"MLT",aliases:["Repubblika ta' Malta","Republic of Malta"]},{name:"Marshall Islands",alpha2:"MH",alpha3:"MHL",aliases:["Aolep\u0101n Aor\u014Dkin M\u0327aje\u013C","Republic of the Marshall Islands"]},{name:"Martinique",alpha2:"MQ",alpha3:"MTQ",aliases:[]},{name:"Mauritania",alpha2:"MR",alpha3:"MRT",aliases:["\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627","Islamic Republic of Mauritania"]},{name:"Mauritius",alpha2:"MU",alpha3:"MUS",aliases:["Republic of Mauritius","R\xE9publique de Maurice"]},{name:"Mayotte",alpha2:"YT",alpha3:"MYT",aliases:[]},{name:"Mexico",alpha2:"MX",alpha3:"MEX",aliases:["M\xE9xico","Estados Unidos Mexicanos"]},{name:"Micronesia, Federated States of",alpha2:"FM",alpha3:"FSM",aliases:["Micronesia","Federated States of Micronesia"]},{name:"Moldova",alpha2:"MD",alpha3:"MDA",aliases:["Moldova","Republica Moldova"]},{name:"Monaco",alpha2:"MC",alpha3:"MCO",aliases:["Principaut\xE9 de Monaco"]},{name:"Mongolia",alpha2:"MN",alpha3:"MNG",aliases:["\u041C\u043E\u043D\u0433\u043E\u043B \u0443\u043B\u0441","Mongol Uls"]},{name:"Montenegro",alpha2:"ME",alpha3:"MNE",aliases:["\u0426\u0440\u043D\u0430 \u0413\u043E\u0440\u0430","Crna Gora"]},{name:"Montserrat",alpha2:"MS",alpha3:"MSR",aliases:[]},{name:"Morocco",alpha2:"MA",alpha3:"MAR",aliases:["\u0627\u0644\u0645\u063A\u0631\u0628","Maroc","Kingdom of Morocco"]},{name:"Mozambique",alpha2:"MZ",alpha3:"MOZ",aliases:["Mo\xE7ambique","Republic of Mozambique"]},{name:"Myanmar",alpha2:"MM",alpha3:"MMR",aliases:["Burma","\u1019\u103C\u1014\u103A\u1019\u102C","Myanma"]},{name:"Namibia",alpha2:"NA",alpha3:"NAM",aliases:["Republic of Namibia"]},{name:"Nauru",alpha2:"NR",alpha3:"NRU",aliases:["Naoero","Republic of Nauru"]},{name:"Nepal",alpha2:"NP",alpha3:"NPL",aliases:["\u0928\u0947\u092A\u093E\u0932","Federal Democratic Republic of Nepal"]},{name:"Netherlands",alpha2:"NL",alpha3:"NLD",aliases:["Nederland","Holland","Kingdom of the Netherlands"]},{name:"New Caledonia",alpha2:"NC",alpha3:"NCL",aliases:["Nouvelle-Cal\xE9donie"]},{name:"New Zealand",alpha2:"NZ",alpha3:"NZL",aliases:["Aotearoa"]},{name:"Nicaragua",alpha2:"NI",alpha3:"NIC",aliases:["Rep\xFAblica de Nicaragua"]},{name:"Niger",alpha2:"NE",alpha3:"NER",aliases:["R\xE9publique du Niger"]},{name:"Nigeria",alpha2:"NG",alpha3:"NGA",aliases:["Federal Republic of Nigeria"]},{name:"Niue",alpha2:"NU",alpha3:"NIU",aliases:[]},{name:"Norfolk Island",alpha2:"NF",alpha3:"NFK",aliases:[]},{name:"North Macedonia",alpha2:"MK",alpha3:"MKD",aliases:["Republic of North Macedonia","\u0421\u0435\u0432\u0435\u0440\u043D\u0430 \u041C\u0430\u043A\u0435\u0434\u043E\u043D\u0438\u0458\u0430"]},{name:"Northern Mariana Islands",alpha2:"MP",alpha3:"MNP",aliases:["Saipan","Commonwealth of the Northern Mariana Islands"]},{name:"Norway",alpha2:"NO",alpha3:"NOR",aliases:["Norge","Noreg","Norrige"]},{name:"Oman",alpha2:"OM",alpha3:"OMN",aliases:["\u0639\u0645\u0627\u0646","Sultanate of Oman"]},{name:"Pakistan",alpha2:"PK",alpha3:"PAK",aliases:["\u067E\u0627\u06A9\u0633\u062A\u0627\u0646","Islamic Republic of Pakistan"]},{name:"Palau",alpha2:"PW",alpha3:"PLW",aliases:["Beluu er a Belau","Republic of Palau"]},{name:"Palestine",alpha2:"PS",alpha3:"PSE",aliases:["\u0641\u0644\u0633\u0637\u064A\u0646","State of Palestine"]},{name:"Panama",alpha2:"PA",alpha3:"PAN",aliases:["Rep\xFAblica de Panam\xE1"]},{name:"Papua New Guinea",alpha2:"PG",alpha3:"PNG",aliases:["Papua Niugini"]},{name:"Paraguay",alpha2:"PY",alpha3:"PRY",aliases:["Rep\xFAblica del Paraguay"]},{name:"Peru",alpha2:"PE",alpha3:"PER",aliases:["Rep\xFAblica del Per\xFA"]},{name:"Philippines",alpha2:"PH",alpha3:"PHL",aliases:["Pilipinas","Republika ng Pilipinas"]},{name:"Poland",alpha2:"PL",alpha3:"POL",aliases:["Polska","Republic of Poland"]},{name:"Portugal",alpha2:"PT",alpha3:"PRT",aliases:["Rep\xFAblica Portuguesa"]},{name:"Puerto Rico",alpha2:"PR",alpha3:"PRI",aliases:[]},{name:"Qatar",alpha2:"QA",alpha3:"QAT",aliases:["\u0642\u0637\u0631","State of Qatar"]},{name:"R\xE9union",alpha2:"RE",alpha3:"REU",aliases:[]},{name:"Romania",alpha2:"RO",alpha3:"ROU",aliases:["Rom\xE2nia"]},{name:"Russian Federation",alpha2:"RU",alpha3:"RUS",aliases:["Russia","\u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u0430\u044F \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u044F"]},{name:"Rwanda",alpha2:"RW",alpha3:"RWA",aliases:["Repubulika y'u Rwanda","R\xE9publique du Rwanda"]},{name:"Saint Barth\xE9lemy",alpha2:"BL",alpha3:"BLM",aliases:["Saint-Barth\xE9lemy"]},{name:"Saint Helena, Ascension and Tristan da Cunha",alpha2:"SH",alpha3:"SHN",aliases:[]},{name:"Saint Kitts and Nevis",alpha2:"KN",alpha3:"KNA",aliases:[]},{name:"Saint Lucia",alpha2:"LC",alpha3:"LCA",aliases:[]},{name:"Saint Martin (French part)",alpha2:"MF",alpha3:"MAF",aliases:[]},{name:"Saint Pierre and Miquelon",alpha2:"PM",alpha3:"SPM",aliases:[]},{name:"Saint Vincent and the Grenadines",alpha2:"VC",alpha3:"VCT",aliases:[]},{name:"Samoa",alpha2:"WS",alpha3:"WSM",aliases:["S\u0101moa","Independent State of Samoa"]},{name:"San Marino",alpha2:"SM",alpha3:"SMR",aliases:["Serenissima Repubblica di San Marino"]},{name:"Sao Tome and Principe",alpha2:"ST",alpha3:"STP",aliases:["S\xE3o Tom\xE9 e Pr\xEDncipe"]},{name:"Saudi Arabia",alpha2:"SA",alpha3:"SAU",aliases:["\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0639\u0631\u0628\u064A\u0629 \u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629","Kingdom of Saudi Arabia","KSA"]},{name:"Senegal",alpha2:"SN",alpha3:"SEN",aliases:["R\xE9publique du S\xE9n\xE9gal"]},{name:"Serbia",alpha2:"RS",alpha3:"SRB",aliases:["\u0421\u0440\u0431\u0438\u0458\u0430","Srbija","Republic of Serbia"]},{name:"Seychelles",alpha2:"SC",alpha3:"SYC",aliases:["Repiblik Sesel","R\xE9publique des Seychelles"]},{name:"Sierra Leone",alpha2:"SL",alpha3:"SLE",aliases:["Republic of Sierra Leone"]},{name:"Singapore",alpha2:"SG",alpha3:"SGP",aliases:["\u65B0\u52A0\u5761","Singapura","Republic of Singapore"]},{name:"Sint Maarten (Dutch part)",alpha2:"SX",alpha3:"SXM",aliases:[]},{name:"Slovakia",alpha2:"SK",alpha3:"SVK",aliases:["Slovensko","Slovak Republic"]},{name:"Slovenia",alpha2:"SI",alpha3:"SVN",aliases:["Slovenija"]},{name:"Solomon Islands",alpha2:"SB",alpha3:"SLB",aliases:[]},{name:"Somalia",alpha2:"SO",alpha3:"SOM",aliases:["Soomaaliya","\u062C\u0645\u0647\u0648\u0631\u064A\u0629 \u0627\u0644\u0635\u0648\u0645\u0627\u0644","Federal Republic of Somalia"]},{name:"South Africa",alpha2:"ZA",alpha3:"ZAF",aliases:["RSA","Republic of South Africa"]},{name:"South Sudan",alpha2:"SS",alpha3:"SSD",aliases:["Republic of South Sudan"]},{name:"Spain",alpha2:"ES",alpha3:"ESP",aliases:["Espa\xF1a","Reino de Espa\xF1a"]},{name:"Sri Lanka",alpha2:"LK",alpha3:"LKA",aliases:["\u0DC1\u0DCA\u200D\u0DBB\u0DD3 \u0DBD\u0D82\u0D9A\u0DCF\u0DC0","\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8","Democratic Socialist Republic of Sri Lanka"]},{name:"Sudan",alpha2:"SD",alpha3:"SDN",aliases:["\u0627\u0644\u0633\u0648\u062F\u0627\u0646","Republic of the Sudan"]},{name:"Suriname",alpha2:"SR",alpha3:"SUR",aliases:["Republiek Suriname"]},{name:"Svalbard and Jan Mayen",alpha2:"SJ",alpha3:"SJM",aliases:[]},{name:"Sweden",alpha2:"SE",alpha3:"SWE",aliases:["Sverige","Kingdom of Sweden"]},{name:"Switzerland",alpha2:"CH",alpha3:"CHE",aliases:["Schweiz","Suisse","Svizzera","Svizra","Swiss Confederation"]},{name:"Syrian Arab Republic",alpha2:"SY",alpha3:"SYR",aliases:["\u0633\u0648\u0631\u064A\u0627","Syria"]},{name:"Taiwan, Province of China",alpha2:"TW",alpha3:"TWN",aliases:["\u53F0\u7063","\u81FA\u7063","Taiwan","Republic of China","ROC"]},{name:"Tajikistan",alpha2:"TJ",alpha3:"TJK",aliases:["\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D","Republic of Tajikistan"]},{name:"Tanzania, United Republic of",alpha2:"TZ",alpha3:"TZA",aliases:["Tanzania","Jamhuri ya Muungano wa Tanzania"]},{name:"Thailand",alpha2:"TH",alpha3:"THA",aliases:["\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28\u0E44\u0E17\u0E22","Prathet Thai","Kingdom of Thailand"]},{name:"Timor-Leste",alpha2:"TL",alpha3:"TLS",aliases:["East Timor","Rep\xFAblica Democr\xE1tica de Timor-Leste"]},{name:"Togo",alpha2:"TG",alpha3:"TGO",aliases:["R\xE9publique Togolaise"]},{name:"Tokelau",alpha2:"TK",alpha3:"TKL",aliases:[]},{name:"Tonga",alpha2:"TO",alpha3:"TON",aliases:["Pule\u02BBanga Fakatu\u02BBi \u02BBo Tonga","Kingdom of Tonga"]},{name:"Trinidad and Tobago",alpha2:"TT",alpha3:"TTO",aliases:[]},{name:"Tunisia",alpha2:"TN",alpha3:"TUN",aliases:["\u062A\u0648\u0646\u0633","Republic of Tunisia"]},{name:"T\xFCrkiye",alpha2:"TR",alpha3:"TUR",aliases:["Turkey","T\xFCrkiye Cumhuriyeti","Republic of T\xFCrkiye"]},{name:"Turkmenistan",alpha2:"TM",alpha3:"TKM",aliases:["T\xFCrkmenistan"]},{name:"Turks and Caicos Islands",alpha2:"TC",alpha3:"TCA",aliases:[]},{name:"Tuvalu",alpha2:"TV",alpha3:"TUV",aliases:[]},{name:"Uganda",alpha2:"UG",alpha3:"UGA",aliases:["Republic of Uganda"]},{name:"Ukraine",alpha2:"UA",alpha3:"UKR",aliases:["\u0423\u043A\u0440\u0430\u0457\u043D\u0430"]},{name:"United Arab Emirates",alpha2:"AE",alpha3:"ARE",aliases:["\u0627\u0644\u0625\u0645\u0627\u0631\u0627\u062A \u0627\u0644\u0639\u0631\u0628\u064A\u0629 \u0627\u0644\u0645\u062A\u062D\u062F\u0629","UAE"]},{name:"United Kingdom",alpha2:"GB",alpha3:"GBR",aliases:["United Kingdom","UK","Britain","Great Britain"]},{name:"United States of America",alpha2:"US",alpha3:"USA",aliases:["United States","USA","America","US"]},{name:"Uruguay",alpha2:"UY",alpha3:"URY",aliases:["Rep\xFAblica Oriental del Uruguay"]},{name:"Uzbekistan",alpha2:"UZ",alpha3:"UZB",aliases:["O\u02BBzbekiston","Republic of Uzbekistan"]},{name:"Vanuatu",alpha2:"VU",alpha3:"VUT",aliases:["Ripablik blong Vanuatu"]},{name:"Venezuela",alpha2:"VE",alpha3:"VEN",aliases:["Venezuela","Rep\xFAblica Bolivariana de Venezuela"]},{name:"Vietnam",alpha2:"VN",alpha3:"VNM",aliases:["Vi\u1EC7t Nam","Socialist Republic of Vietnam"]},{name:"Virgin Islands (British)",alpha2:"VG",alpha3:"VGB",aliases:["British Virgin Islands"]},{name:"Virgin Islands (U.S.)",alpha2:"VI",alpha3:"VIR",aliases:["U.S. Virgin Islands"]},{name:"Wallis and Futuna",alpha2:"WF",alpha3:"WLF",aliases:[]},{name:"Western Sahara",alpha2:"EH",alpha3:"ESH",aliases:["\u0627\u0644\u0635\u062D\u0631\u0627\u0621 \u0627\u0644\u063A\u0631\u0628\u064A\u0629","Sahara Occidental"]},{name:"Yemen",alpha2:"YE",alpha3:"YEM",aliases:["\u0627\u0644\u064A\u0645\u0646","Republic of Yemen"]},{name:"Zambia",alpha2:"ZM",alpha3:"ZMB",aliases:["Republic of Zambia"]},{name:"Zimbabwe",alpha2:"ZW",alpha3:"ZWE",aliases:["Republic of Zimbabwe"]}];var G={byName:new Map,byAlpha2:new Map,byAlpha3:new Map,byAlias:new Map};for(let o of H){G.byName.set(o.name.toLowerCase(),o),G.byAlpha2.set(o.alpha2.toLowerCase(),o),G.byAlpha3.set(o.alpha3.toLowerCase(),o);for(let e of o.aliases)G.byAlias.set(e.toLowerCase(),o);}var X=65,Ee=90;var be={A:"0-9A-Za-z",B:"0-9A-Z",C:"A-Za-z",F:"0-9",L:"a-z",U:"A-Z",W:"0-9a-z"};function Q(o){let e=o.toUpperCase();return (e.slice(4)+e.slice(0,4)).split("").map(t=>{let r=t.charCodeAt(0);return r>=X&&r<=Ee?String(r-X+10):t}).join("")}function ee(o){let e=o,n;for(;e.length>2;)n=e.slice(0,9),e=Number.parseInt(n,10)%97+e.slice(n.length);return Number.parseInt(e,10)%97}function we(o){var n;let e=(n=o.match(/(.{3})/g))==null?void 0:n.map(t=>{let r=t.slice(0,1),i=Number.parseInt(t.slice(1),10);return `([${be[r]||""}]{${i}})`});return new RegExp(`^${(e==null?void 0:e.join(""))||""}$`)}var a=class{constructor(e,n,t,r){this.countryCode=e,this.length=n,this.structure=t,this.example=r,this._cachedRegex=we(this.structure);}_regex(){return this._cachedRegex}isValid(e){return this.length===e.length&&this.countryCode===e.slice(0,2)&&this._regex().test(e.slice(4))&&ee(Q(e))===1}toBBAN(e,n=""){let t=this._regex().exec(e.slice(4));return t?t.slice(1).join(n):""}fromBBAN(e){if(!this.isValidBBAN(e))throw new Error("Invalid BBAN");let t=`0${98-ee(Q(`${this.countryCode}00${e}`))}`.slice(-2);return `${this.countryCode}${t}${e}`}isValidBBAN(e){return this.length-4===e.length&&this._regex().test(e)}},Ce={};function s(o){Ce[o.countryCode]=o;}s(new a("AD",24,"F04F04A12","AD1200012030200359100100"));s(new a("AE",23,"F03F16","AE070331234567890123456"));s(new a("AL",28,"F08A16","AL47212110090000000235698741"));s(new a("AT",20,"F05F11","AT611904300234573201"));s(new a("AZ",28,"U04A20","AZ21NABZ00000000137010001944"));s(new a("BA",20,"F03F03F08F02","BA391290079401028494"));s(new a("BE",16,"F03F07F02","BE68539007547034"));s(new a("BG",22,"U04F04F02A08","BG80BNBG96611020345678"));s(new a("BH",22,"U04A14","BH67BMAG00001299123456"));s(new a("BR",29,"F08F05F10U01A01","BR9700360305000010009795493P1"));s(new a("BY",28,"A04F04A16","BY13NBRB3600900000002Z00AB00"));s(new a("CH",21,"F05A12","CH9300762011623852957"));s(new a("CR",22,"F04F14","CR72012300000171549015"));s(new a("CY",28,"F03F05A16","CY17002001280000001200527600"));s(new a("CZ",24,"F04F06F10","CZ6508000000192000145399"));s(new a("DE",22,"F08F10","DE89370400440532013000"));s(new a("DK",18,"F04F09F01","DK5000400440116243"));s(new a("DO",28,"U04F20","DO28BAGR00000001212453611324"));s(new a("EE",20,"F02F02F11F01","EE382200221020145685"));s(new a("EG",29,"F04F04F17","EG800002000156789012345180002"));s(new a("ES",24,"F04F04F01F01F10","ES9121000418450200051332"));s(new a("FI",18,"F06F07F01","FI2112345600000785"));s(new a("FO",18,"F04F09F01","FO6264600001631634"));s(new a("FR",27,"F05F05A11F02","FR1420041010050500013M02606"));s(new a("GB",22,"U04F06F08","GB29NWBK60161331926819"));s(new a("GE",22,"U02F16","GE29NB0000000101904917"));s(new a("GI",23,"U04A15","GI75NWBK000000007099453"));s(new a("GL",18,"F04F09F01","GL8964710001000206"));s(new a("GR",27,"F03F04A16","GR1601101250000000012300695"));s(new a("GT",28,"A04A20","GT82TRAJ01020000001210029690"));s(new a("HR",21,"F07F10","HR1210010051863000160"));s(new a("HU",28,"F03F04F01F15F01","HU42117730161111101800000000"));s(new a("IE",22,"U04F06F08","IE29AIBK93115212345678"));s(new a("IL",23,"F03F03F13","IL620108000000099999999"));s(new a("IS",26,"F04F02F06F10","IS140159260076545510730339"));s(new a("IT",27,"U01F05F05A12","IT60X0542811101000000123456"));s(new a("IQ",23,"U04F03A12","IQ98NBIQ850123456789012"));s(new a("JO",30,"A04F22","JO15AAAA1234567890123456789012"));s(new a("KW",30,"U04A22","KW81CBKU0000000000001234560101"));s(new a("KZ",20,"F03A13","KZ86125KZT5004100100"));s(new a("LB",28,"F04A20","LB62099900000001001901229114"));s(new a("LC",32,"U04F24","LC07HEMM000100010012001200013015"));s(new a("LI",21,"F05A12","LI21088100002324013AA"));s(new a("LT",20,"F05F11","LT121000011101001000"));s(new a("LU",20,"F03A13","LU280019400644750000"));s(new a("LV",21,"U04A13","LV80BANK0000435195001"));s(new a("MC",27,"F05F05A11F02","MC5811222000010123456789030"));s(new a("MD",24,"U02A18","MD24AG000225100013104168"));s(new a("ME",22,"F03F13F02","ME25505000012345678951"));s(new a("MK",19,"F03A10F02","MK07250120000058984"));s(new a("MR",27,"F05F05F11F02","MR1300020001010000123456753"));s(new a("MT",31,"U04F05A18","MT84MALT011000012345MTLCAST001S"));s(new a("MU",30,"U04F02F02F12F03U03","MU17BOMM0101101030300200000MUR"));s(new a("NL",18,"U04F10","NL91ABNA0417164300"));s(new a("NO",15,"F04F06F01","NO9386011117947"));s(new a("PK",24,"U04A16","PK36SCBL0000001123456702"));s(new a("PL",28,"F08F16","PL61109010140000071219812874"));s(new a("PS",29,"U04A21","PS92PALS000000000400123456702"));s(new a("PT",25,"F04F04F11F02","PT50000201231234567890154"));s(new a("QA",29,"U04A21","QA30AAAA123456789012345678901"));s(new a("RO",24,"U04A16","RO49AAAA1B31007593840000"));s(new a("RS",22,"F03F13F02","RS35260005601001611379"));s(new a("SA",24,"F02A18","SA0380000000608010167519"));s(new a("SC",31,"U04F04F16U03","SC18SSCB11010000000000001497USD"));s(new a("SE",24,"F03F16F01","SE4550000000058398257466"));s(new a("SI",19,"F05F08F02","SI56263300012039086"));s(new a("SK",24,"F04F06F10","SK3112000000198742637541"));s(new a("SM",27,"U01F05F05A12","SM86U0322509800000000270100"));s(new a("ST",25,"F08F11F02","ST68000100010051845310112"));s(new a("SV",28,"U04F20","SV62CENR00000000000000700025"));s(new a("TL",23,"F03F14F02","TL380080012345678910157"));s(new a("TN",24,"F02F03F13F02","TN5910006035183598478831"));s(new a("TR",26,"F05F01A16","TR330006100519786457841326"));s(new a("UA",29,"F25","UA511234567890123456789012345"));s(new a("VA",22,"F18","VA59001123000012345678"));s(new a("VG",24,"U04F16","VG96VPVG0000012345678901"));s(new a("XK",20,"F04F10F02","XK051212012345678906"));s(new a("AO",25,"F21","AO69123456789012345678901"));s(new a("BF",27,"F23","BF2312345678901234567890123"));s(new a("BI",16,"F12","BI41123456789012"));s(new a("BJ",28,"F24","BJ39123456789012345678901234"));s(new a("CI",28,"U02F22","CI70CI1234567890123456789012"));s(new a("CM",27,"F23","CM9012345678901234567890123"));s(new a("CV",25,"F21","CV30123456789012345678901"));s(new a("DZ",24,"F20","DZ8612345678901234567890"));s(new a("IR",26,"F22","IR861234568790123456789012"));s(new a("MG",27,"F23","MG1812345678901234567890123"));s(new a("ML",28,"U01F23","ML15A12345678901234567890123"));s(new a("MZ",25,"F21","MZ25123456789012345678901"));s(new a("SN",28,"U01F23","SN52A12345678901234567890123"));s(new a("GF",27,"F05F05A11F02","GF121234512345123456789AB13"));s(new a("GP",27,"F05F05A11F02","GP791234512345123456789AB13"));s(new a("MQ",27,"F05F05A11F02","MQ221234512345123456789AB13"));s(new a("RE",27,"F05F05A11F02","RE131234512345123456789AB13"));s(new a("PF",27,"F05F05A11F02","PF281234512345123456789AB13"));s(new a("YT",27,"F05F05A11F02","YT021234512345123456789AB13"));s(new a("NC",27,"F05F05A11F02","NC551234512345123456789AB13"));s(new a("BL",27,"F05F05A11F02","BL391234512345123456789AB13"));s(new a("MF",27,"F05F05A11F02","MF551234512345123456789AB13"));s(new a("PM",27,"F05F05A11F02","PM071234512345123456789AB13"));s(new a("WF",27,"F05F05A11F02","WF621234512345123456789AB13"));var f=class o extends p{static create(e,n){if(!e||typeof e!="object")throw new Error("ExOptional.create: type must be a valid field");if(!("_def"in e)||!e._def||typeof e._def!="object")throw new Error("ExOptional.create: type is not a valid ExpressCSV field");if(!("typeName"in e._def)||typeof e._def.typeName!="string")throw new Error("ExOptional.create: type is missing a typeName");if(n!==void 0&&typeof n!="object")throw new Error("ExOptional.create: options must be an object");if((n==null?void 0:n.when)!==void 0&&typeof n.when!="function")throw new Error("ExOptional.create: options.when must be a function");return new o({typeName:"ExOptional",innerType:e,when:n==null?void 0:n.when,checks:[]})}unwrap(){return this._def.innerType}optional(){return this}default(e){let n=this._def.innerType._def;return n.defaultValue=e,this}};var T=class extends f{};var S=class extends f{output(e){return this._def.innerType.output(e),this._def.outputFormat=e,this}};var R=class extends f{output(e){return this._def.innerType.output(e),this}};var k=class extends f{min(e,n){return this._def.innerType.min(e,n),this}max(e,n){return this._def.innerType.max(e,n),this}integer(e){return this._def.innerType.integer(e),this}multipleOf(e,n){return this._def.innerType.multipleOf(e,n),this}percentage(){return this._def.innerType.percentage(),this}currency(e){return this._def.innerType.currency(e),this}};var v=class extends f{caseSensitive(e=true){return this._def.innerType.caseSensitive(e),this}},F=class extends f{caseSensitive(e=true){return this._def.innerType.caseSensitive(e),this}min(e,n){return this._def.innerType.min(e,n),this}max(e,n){return this._def.innerType.max(e,n),this}};var M=class extends f{uuid(e){return this._def.innerType.uuid(e),this}ip(e){return this._def.innerType.ip(e),this}url(e){return this._def.innerType.url(e),this}email(e){return this._def.innerType.email(e),this}phone(e){return this._def.innerType.phone(e),this}country(e){return this._def.innerType.country(e),this}max(e,n){return this._def.innerType.max(e,n),this}min(e,n){return this._def.innerType.min(e,n),this}length(e,n){return this._def.innerType.length(e,n),this}includes(e,n){return this._def.innerType.includes(e,n),this}startsWith(e,n){return this._def.innerType.startsWith(e,n),this}endsWith(e,n){return this._def.innerType.endsWith(e,n),this}regex(e,n){return this._def.innerType.regex(e,n),this}alphabetical(e){return this._def.innerType.alphabetical(e),this}alphanumerical(e){return this._def.innerType.alphanumerical(e),this}numerical(e){return this._def.innerType.numerical(e),this}iban(e){return this._def.innerType.iban(e),this}bic(e){return this._def.innerType.bic(e),this}gtin(e){return this._def.innerType.gtin(e),this}currencyCode(e){return this._def.innerType.currencyCode(e),this}};var N=class extends f{precision(e,n){return this._def.innerType.precision(e,n),this}};var I=class o extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.create: options.message must be a string");return new o({typeName:"ExString",checks:[],message:e==null?void 0:e.message})}optional(){return new M({typeName:"ExOptional",innerType:this})}uuid(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.uuid: options must be an object");if((e==null?void 0:e.version)!==void 0&&!["v1","v4","v5","all"].includes(e.version))throw new Error("ExString.uuid: options.version must be 'v1', 'v4', 'v5', or 'all'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.uuid: options.message must be a string");let n=(e==null?void 0:e.version)||"all",t=e==null?void 0:e.message;if(this._def.checks.findIndex(l=>{var u;return l.type==="uuid"&&((u=l.params)==null?void 0:u.version)===n})!==-1)return this;let i=this._addCheck("uuid",{version:n},t);return this._def.checks.push(i),this}ip(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.ip: options must be an object");if((e==null?void 0:e.version)!==void 0&&!["v4","v6","all"].includes(e.version))throw new Error("ExString.ip: options.version must be 'v4', 'v6', or 'all'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.ip: options.message must be a string");let n=(e==null?void 0:e.version)||"all",t=e==null?void 0:e.message;if(this._def.checks.findIndex(l=>{var u;return l.type==="ipAddress"&&((u=l.params)==null?void 0:u.version)===n})!==-1)return this;let i=this._addCheck("ipAddress",{version:n},t);return this._def.checks.push(i),this}url(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.url: options must be an object");if((e==null?void 0:e.allowedProtocols)!==void 0&&!Array.isArray(e.allowedProtocols))throw new Error("ExString.url: options.allowedProtocols must be an array");if((e==null?void 0:e.allowedDomains)!==void 0&&!Array.isArray(e.allowedDomains))throw new Error("ExString.url: options.allowedDomains must be an array");if((e==null?void 0:e.allowSubdomains)!==void 0&&typeof e.allowSubdomains!="boolean")throw new Error("ExString.url: options.allowSubdomains must be a boolean");if((e==null?void 0:e.allowPaths)!==void 0&&typeof e.allowPaths!="boolean")throw new Error("ExString.url: options.allowPaths must be a boolean");if((e==null?void 0:e.allowQueryParams)!==void 0&&typeof e.allowQueryParams!="boolean")throw new Error("ExString.url: options.allowQueryParams must be a boolean");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.url: options.message must be a string");let n={allowedProtocols:e==null?void 0:e.allowedProtocols,allowedDomains:e==null?void 0:e.allowedDomains,allowSubdomains:(e==null?void 0:e.allowSubdomains)!==void 0?e.allowSubdomains:true,allowPaths:(e==null?void 0:e.allowPaths)!==void 0?e.allowPaths:true,allowQueryParams:(e==null?void 0:e.allowQueryParams)!==void 0?e.allowQueryParams:true};if(this._def.checks.findIndex(i=>i.type!=="url"||!i.params?false:JSON.stringify(i.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("url",n,e==null?void 0:e.message);return this._def.checks.push(r),this}email(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.email: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.email: options.message must be a string");if(this._findExistingCheck("email").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("email",{},t);return this._def.checks.push(r),this}phone(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.phone: options must be an object");if((e==null?void 0:e.allowedCountries)!==void 0&&!Array.isArray(e.allowedCountries))throw new Error("ExString.phone: options.allowedCountries must be an array");if((e==null?void 0:e.format)!==void 0&&!["international","national","both"].includes(e.format))throw new Error("ExString.phone: options.format must be 'international', 'national', or 'both'");if((e==null?void 0:e.output)!==void 0&&!["e164","formatted","digits"].includes(e.output))throw new Error("ExString.phone: options.output must be 'e164', 'formatted', or 'digits'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.phone: options.message must be a string");let n={allowedCountries:e==null?void 0:e.allowedCountries,format:(e==null?void 0:e.format)||"international",output:(e==null?void 0:e.output)||"e164"};if(this._def.checks.findIndex(i=>i.type!=="phone"||!i.params?false:JSON.stringify(i.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("phone",n,e==null?void 0:e.message);return this._def.checks.push(r),this}country(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.country: options must be an object");if((e==null?void 0:e.output)!==void 0&&!["name","2-letter","3-letter"].includes(e.output))throw new Error("ExString.country: options.output must be 'name', '2-letter', or '3-letter'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.country: options.message must be a string");let n={output:(e==null?void 0:e.output)||"name"};if(this._def.checks.findIndex(i=>{var l;return i.type==="country"&&((l=i.params)==null?void 0:l.output)===n.output})!==-1)return this;let r=this._addCheck("country",n,e==null?void 0:e.message);return this._def.checks.push(r),this}max(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExString.max: maxLength must be a number");if(e<0||!Number.isInteger(e))throw new Error("ExString.max: maxLength must be a non-negative integer");if(n!==void 0&&typeof n!="object")throw new Error("ExString.max: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.max: options.message must be a string");let t=this._findExistingCheck("max");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e>=m)return this}let r=this._findExistingCheck("min");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&r.check.params.value>e)throw new Error("ExString.max: max cannot be less than min");let i=n==null?void 0:n.message,l=this._addCheck("max",{value:e},i);return this._replaceOrAddCheck(l,t.index),this}min(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExString.min: minLength must be a number");if(e<0||!Number.isInteger(e))throw new Error("ExString.min: minLength must be a non-negative integer");if(n!==void 0&&typeof n!="object")throw new Error("ExString.min: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.min: options.message must be a string");let t=this._findExistingCheck("min");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e<=m)return this}let r=this._findExistingCheck("max");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&e>r.check.params.value)throw new Error("ExString.min: min cannot be greater than max");let i=n==null?void 0:n.message,l=this._addCheck("min",{value:e},i);return this._replaceOrAddCheck(l,t.index),this}length(e,n){if(typeof e!="number"||Number.isNaN(e))throw new Error("ExString.length: exactLength must be a number");if(e<0||!Number.isInteger(e))throw new Error("ExString.length: exactLength must be a non-negative integer");if(n!==void 0&&typeof n!="object")throw new Error("ExString.length: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.length: options.message must be a string");let t=this._findExistingCheck("length"),r=n==null?void 0:n.message,i=this._addCheck("length",{value:e},r);return this._replaceOrAddCheck(i,t.index),this}includes(e,n){if(typeof e!="string")throw new Error("ExString.includes: substring must be a string");if(n!==void 0&&typeof n!="object")throw new Error("ExString.includes: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.includes: options.message must be a string");if(this._def.checks.findIndex(l=>{var u;return l.type==="includes"&&((u=l.params)==null?void 0:u.value)===e})!==-1)return this;let r=n==null?void 0:n.message,i=this._addCheck("includes",{value:e},r);return this._def.checks.push(i),this}startsWith(e,n){if(typeof e!="string")throw new Error("ExString.startsWith: prefix must be a string");if(n!==void 0&&typeof n!="object")throw new Error("ExString.startsWith: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.startsWith: options.message must be a string");if(this._def.checks.findIndex(l=>{var u;return l.type==="startsWith"&&((u=l.params)==null?void 0:u.value)===e})!==-1)return this;let r=n==null?void 0:n.message,i=this._addCheck("startsWith",{value:e},r);return this._def.checks.push(i),this}endsWith(e,n){if(typeof e!="string")throw new Error("ExString.endsWith: suffix must be a string");if(n!==void 0&&typeof n!="object")throw new Error("ExString.endsWith: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.endsWith: options.message must be a string");if(this._def.checks.findIndex(l=>{var u;return l.type==="endsWith"&&((u=l.params)==null?void 0:u.value)===e})!==-1)return this;let r=n==null?void 0:n.message,i=this._addCheck("endsWith",{value:e},r);return this._def.checks.push(i),this}regex(e,n){if(!(e instanceof RegExp))throw new Error("ExString.regex: pattern must be a RegExp");if(n!==void 0&&typeof n!="object")throw new Error("ExString.regex: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.regex: options.message must be a string");if(this._def.checks.findIndex(l=>{var c;if(l.type!=="regex"||!((c=l.params)!=null&&c.pattern))return false;let u=l.params.pattern;return u.source===e.source&&u.flags===e.flags})!==-1)return this;let r=n==null?void 0:n.message,i=this._addCheck("regex",{pattern:e},r);return this._def.checks.push(i),this}alphabetical(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.alphabetical: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.alphabetical: options.message must be a string");if(this._findExistingCheck("alphabetical").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("alphabetical",{},t);return this._def.checks.push(r),this}alphanumerical(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.alphanumerical: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.alphanumerical: options.message must be a string");if(this._findExistingCheck("alphanumerical").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("alphanumerical",{},t);return this._def.checks.push(r),this}numerical(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.numerical: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.numerical: options.message must be a string");if(this._findExistingCheck("numerical").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("numerical",{},t);return this._def.checks.push(r),this}iban(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.iban: options must be an object");if((e==null?void 0:e.allowedCountries)!==void 0&&!Array.isArray(e.allowedCountries))throw new Error("ExString.iban: options.allowedCountries must be an array");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.iban: options.message must be a string");let n={allowedCountries:e==null?void 0:e.allowedCountries};if(this._def.checks.findIndex(i=>i.type!=="iban"||!i.params?false:JSON.stringify(i.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("iban",n,e==null?void 0:e.message);return this._def.checks.push(r),this}bic(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.bic: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.bic: options.message must be a string");if(this._findExistingCheck("bic").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("bic",{},t);return this._def.checks.push(r),this}gtin(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.gtin: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.gtin: options.message must be a string");if(this._findExistingCheck("gtin").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("gtin",{},t);return this._def.checks.push(r),this}currencyCode(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.currencyCode: options must be an object");if((e==null?void 0:e.allowedCurrencies)!==void 0&&!Array.isArray(e.allowedCurrencies))throw new Error("ExString.currencyCode: options.allowedCurrencies must be an array");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.currencyCode: options.message must be a string");let n={allowedCurrencies:e==null?void 0:e.allowedCurrencies};if(this._def.checks.findIndex(i=>i.type!=="currencyCode"||!i.params?false:JSON.stringify(i.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("currencyCode",n,e==null?void 0:e.message);return this._def.checks.push(r),this}};new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z"));var Z=class extends p{min(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExNumber.min: value must be a number");if(n!==void 0&&typeof n!="object")throw new Error("ExNumber.min: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExNumber.min: options.message must be a string");let t=this._findExistingCheck("min");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e<=m)return this}let r=this._findExistingCheck("max");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&e>r.check.params.value)throw new Error("ExNumber.min: min cannot be greater than max");let i=n==null?void 0:n.message,l=this._addCheck("min",{value:e},i);return this._replaceOrAddCheck(l,t.index),this}max(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExNumber.max: value must be a number");if(n!==void 0&&typeof n!="object")throw new Error("ExNumber.max: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExNumber.max: options.message must be a string");let t=this._findExistingCheck("max");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e>=m)return this}let r=this._findExistingCheck("min");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&r.check.params.value>e)throw new Error("ExNumber.max: max cannot be less than min");let i=n==null?void 0:n.message,l=this._addCheck("max",{value:e},i);return this._replaceOrAddCheck(l,t.index),this}integer(e){if(e!==void 0&&typeof e!="object")throw new Error("ExNumber.integer: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExNumber.integer: options.message must be a string");let n=this._findExistingCheck("integer"),t=e==null?void 0:e.message,r=this._addCheck("integer",{},t);return this._replaceOrAddCheck(r,n.index),this}multipleOf(e,n){var l;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExNumber.multipleOf: value must be a number");if(e===0)throw new Error("ExNumber.multipleOf: value cannot be zero");if(n!==void 0&&typeof n!="object")throw new Error("ExNumber.multipleOf: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExNumber.multipleOf: options.message must be a string");let t=this._findExistingCheck("multipleOf");if(t.found&&((l=t.check)!=null&&l.params)){let u=t.check.params.value;if(typeof u=="number"&&e===u)return this}let r=n==null?void 0:n.message,i=this._addCheck("multipleOf",{value:e},r);return this._def.checks.push(i),this}},D=class o extends Z{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExNumber.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExNumber.create: options.message must be a string");return new o({typeName:"ExNumber",checks:[],message:e==null?void 0:e.message})}optional(){return new k({typeName:"ExOptional",innerType:this})}percentage(){if(this._def.currencyCode!==void 0)throw new Error("ExNumber.percentage: Cannot combine percentage with currency");return this._def.isPercentage=true,this}currency(e){if(typeof e!="string")throw new Error("ExNumber.currency: currencyCode must be a string");if(this._def.isPercentage)throw new Error("ExNumber.currency: Cannot combine currency with percentage");return this._def.currencyCode=e,this}};var P=class o extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExBoolean.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExBoolean.create: options.message must be a string");if((e==null?void 0:e.control)!==void 0&&e.control!=="toggle"&&e.control!=="checkbox"&&e.control!=="dropdown")throw new Error('ExBoolean.create: options.control must be "toggle", "checkbox", or "dropdown"');return new o({typeName:"ExBoolean",control:e==null?void 0:e.control,message:e==null?void 0:e.message,checks:[]})}optional(){return new T({typeName:"ExOptional",innerType:this})}};var O=class o extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExDate.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExDate.create: options.message must be a string");let n=new o({typeName:"ExDate"});return e!=null&&e.message&&(n._def.message=e.message),n}optional(){return new S({typeName:"ExOptional",innerType:this})}output(e){if(typeof e!="string")throw new Error("ExDate.output: template must be a string");if(e.trim()==="")throw new Error("ExDate.output: template cannot be empty");return this._def.outputFormat=e,this}};var A=class o extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExTime.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExTime.create: options.message must be a string");return new o({typeName:"ExTime",checks:[],message:e==null?void 0:e.message})}optional(){return new N({typeName:"ExOptional",innerType:this})}precision(e,n){if(typeof e!="number"||Number.isNaN(e))throw new Error("ExTime.precision: precision must be a number");if(e<0||e>9||!Number.isInteger(e))throw new Error("ExTime.precision: precision must be an integer between 0 and 9");if(n!==void 0&&typeof n!="object")throw new Error("ExTime.precision: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExTime.precision: options.message must be a string");return this._def.precision=e,n!=null&&n.message&&(this._def.message=n.message),this}};var B=class o extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExDatetime.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExDatetime.create: options.message must be a string");let n=new o({typeName:"ExDatetime",checks:[],message:e==null?void 0:e.message});if(e!=null&&e.message){let t=n._getDatetimeCheck();t&&(t.message=e.message);}return n}optional(){return new R({typeName:"ExOptional",innerType:this})}output(e){if(typeof e!="string")throw new Error("ExDatetime.output: template must be a string");if(e.trim()==="")throw new Error("ExDatetime.output: template cannot be empty");return this._def.outputFormat=e,this}allowOffset(e){if(e!==void 0&&typeof e!="object")throw new Error("ExDatetime.allowOffset: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExDatetime.allowOffset: options.message must be a string");let n=e==null?void 0:e.message,t=this._getDatetimeCheck();return t!=null&&t.params&&(t.params.offset=true,n&&(t.message=n)),this}_getDatetimeCheck(){let e=this._def.checks.find(n=>n.type==="datetime");if(!e){let n=this._addCheck("datetime",{allowOffset:false});return this._def.checks.push(n),n}return e}};var V=class o extends p{static create(e,n={}){if(!Array.isArray(e))throw new Error("ExSelect.create: options must be an array");if(e.length===0)throw new Error("ExSelect.create: options array must not be empty");for(let r=0;r<e.length;r++){let i=e[r];if(!i||typeof i!="object")throw new Error(`ExSelect.create: option at index ${r} must be an object`);if(!("label"in i)||typeof i.label!="string")throw new Error(`ExSelect.create: option at index ${r} must have a string label`);if(!("value"in i))throw new Error(`ExSelect.create: option at index ${r} must have a value`);if(typeof i.value!="string"&&typeof i.value!="number")throw new Error(`ExSelect.create: option at index ${r} must have a string or number value`)}if(n!==void 0&&typeof n!="object")throw new Error("ExSelect.create: config must be an object");if(n.enforceCaseSensitiveMatch!==void 0&&typeof n.enforceCaseSensitiveMatch!="boolean")throw new Error("ExSelect.create: config.enforceCaseSensitiveMatch must be a boolean");if(n.allowCustom!==void 0&&typeof n.allowCustom!="boolean")throw new Error("ExSelect.create: config.allowCustom must be a boolean");if(n.message!==void 0&&typeof n.message!="string")throw new Error("ExSelect.create: config.message must be a string");return new o({typeName:"ExSelect",options:[...e],config:{enforceCaseSensitiveMatch:!!n.enforceCaseSensitiveMatch,allowCustom:!!n.allowCustom},checks:[],message:n.message})}optional(){return new v({typeName:"ExOptional",innerType:this})}caseSensitive(e=true){if(typeof e!="boolean")throw new Error("ExSelect.caseSensitive: enabled must be a boolean");return this._def.config.enforceCaseSensitiveMatch=e,this}};var _=class o extends p{static create(e,n={}){if(!Array.isArray(e))throw new Error("ExMultiselect.create: options must be an array");if(e.length===0)throw new Error("ExMultiselect.create: options array must not be empty");for(let r=0;r<e.length;r++){let i=e[r];if(!i||typeof i!="object")throw new Error(`ExMultiselect.create: option at index ${r} must be an object`);if(!("label"in i)||typeof i.label!="string")throw new Error(`ExMultiselect.create: option at index ${r} must have a string label`);if(!("value"in i))throw new Error(`ExMultiselect.create: option at index ${r} must have a value`);if(typeof i.value!="string"&&typeof i.value!="number")throw new Error(`ExMultiselect.create: option at index ${r} must have a string or number value`)}if(n!==void 0&&typeof n!="object")throw new Error("ExMultiselect.create: config must be an object");if(n.enforceCaseSensitiveMatch!==void 0&&typeof n.enforceCaseSensitiveMatch!="boolean")throw new Error("ExMultiselect.create: config.enforceCaseSensitiveMatch must be a boolean");if(n.message!==void 0&&typeof n.message!="string")throw new Error("ExMultiselect.create: config.message must be a string");return new o({typeName:"ExMultiselect",options:[...e],config:{enforceCaseSensitiveMatch:!!n.enforceCaseSensitiveMatch,allowCustom:false},checks:[],message:n.message})}optional(){return new F({typeName:"ExOptional",innerType:this})}caseSensitive(e=true){if(typeof e!="boolean")throw new Error("ExMultiselect.caseSensitive: enabled must be a boolean");return this._def.config.enforceCaseSensitiveMatch=e,this}min(e,n){var l,u;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExMultiselect.min: min must be a number");if(e<1||!Number.isInteger(e))throw new Error("ExMultiselect.min: min must be a positive integer (at least 1)");let t=this._findExistingCheck("min");if(t.found&&((l=t.check)!=null&&l.params)){let c=t.check.params.value;if(typeof c=="number"&&e<=c)return this}let r=this._findExistingCheck("max");if(r.found&&((u=r.check)!=null&&u.params)&&typeof r.check.params.value=="number"&&e>r.check.params.value)throw new Error("ExMultiselect.min: min cannot be greater than max");let i=this._addCheck("min",{value:e},n);return this._replaceOrAddCheck(i,t.index),this}max(e,n){var l,u;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExMultiselect.max: max must be a number");if(e<1||!Number.isInteger(e))throw new Error("ExMultiselect.max: max must be a positive integer");let t=this._findExistingCheck("max");if(t.found&&((l=t.check)!=null&&l.params)){let c=t.check.params.value;if(typeof c=="number"&&e>=c)return this}let r=this._findExistingCheck("min");if(r.found&&((u=r.check)!=null&&u.params)&&typeof r.check.params.value=="number"&&r.check.params.value>e)throw new Error("ExMultiselect.max: max cannot be less than min");let i=this._addCheck("max",{value:e},n);return this._replaceOrAddCheck(i,t.index),this}};function cn(){return `uc_${Math.random().toString(36).substring(2,15)}${Math.random().toString(36).substring(2,15)}`}function me(o){for(let[e,n]of Object.entries(o)){if(!n||typeof n!="object")throw new Error(`ExRow.create: field "${e}" must be a valid field type`);if(!("_def"in n)||!n._def||typeof n._def!="object")throw new Error(`ExRow.create: field "${e}" is not a valid ExpressCSV field`);if(!("typeName"in n._def)||typeof n._def.typeName!="string")throw new Error(`ExRow.create: field "${e}" is missing a typeName`)}}var w=class o extends C{static create(e){if(!e||typeof e!="object")throw new Error("ExRow.create: shape must be a non-null object");return me(e),new o({typeName:"ExRow",shape:e})}static createDynamic(e){if(!e||typeof e!="object")throw new Error("ExRow.create: shape must be a non-null object");return me(e),new o({typeName:"ExRow",shape:e})}optionalColumns(e,n){if(!Array.isArray(e))throw new Error("ExRow.optionalColumns: columns must be an array");for(let u of e)if(!(u in this._def.shape))throw new Error(`ExRow.optionalColumns: column "${String(u)}" does not exist in the row shape`);if(n!==void 0&&typeof n!="object")throw new Error("ExRow.optionalColumns: options must be an object");if((n==null?void 0:n.when)!==void 0&&typeof n.when!="function")throw new Error("ExRow.optionalColumns: options.when must be a function");let t=e,r=n==null?void 0:n.when;if(!this._def.optionalColumnConfig)return this._def.optionalColumnConfig={columns:t,when:r,whenMap:r?Object.fromEntries(t.map(u=>[u,r])):void 0},this;let l=[...this._def.optionalColumnConfig.columns];for(let u of t)l.includes(u)||l.push(u);if(this._def.optionalColumnConfig.columns=l,r){this._def.optionalColumnConfig.whenMap||(this._def.optionalColumnConfig.whenMap={});for(let u of t)this._def.optionalColumnConfig.whenMap[u]=r;}return this}unique(e,n){if(e===void 0)throw new Error("ExRow.unique: columns must be provided");let t=Array.isArray(e)?e:[e];for(let m of t)if(!(m in this._def.shape))throw new Error(`ExRow.unique: column "${String(m)}" does not exist in the row shape`);if(n!==void 0&&typeof n!="object")throw new Error("ExRow.unique: options must be an object");if((n==null?void 0:n.key)!==void 0&&typeof n.key!="function")throw new Error("ExRow.unique: options.key must be a function");let r=n==null?void 0:n.key;this._def.uniqueColumnConfig||(this._def.uniqueColumnConfig={uniqueConstraints:[]});let i=r?m=>{let U=Object.fromEntries(t.map(L=>[L,m[L]]));return r(U)}:void 0,l=(m,U)=>{if(m.length!==U.length)return false;let L=[...m].sort(),pe=[...U].sort();return L.every((fe,de)=>fe===pe[de])},u=this._def.uniqueColumnConfig.uniqueConstraints.findIndex(m=>l(m.columns,t)),c={id:cn(),columns:t,key:i};return u!==-1?this._def.uniqueColumnConfig.uniqueConstraints[u]=c:this._def.uniqueColumnConfig.uniqueConstraints.push(c),this}meta(e){if(e===void 0||typeof e!="object")throw new Error("ExRow.meta: metadata must be an object");if(e.description!==void 0&&typeof e.description!="string")throw new Error("ExRow.meta: metadata.description must be a string");return this._def.meta=d(d({},this._def.meta),e),this}minRows(e){if(typeof e!="number")throw new Error("ExRow.minRows: count must be a number");if(!Number.isInteger(e))throw new Error("ExRow.minRows: count must be an integer");if(e<0)throw new Error("ExRow.minRows: count must be non-negative");return this._def.rowCountConfig||(this._def.rowCountConfig={}),this._def.rowCountConfig.minRows=e,this}maxRows(e){if(typeof e!="number")throw new Error("ExRow.maxRows: count must be a number");if(!Number.isInteger(e))throw new Error("ExRow.maxRows: count must be an integer");if(e<=0)throw new Error("ExRow.maxRows: count must be positive");return this._def.rowCountConfig||(this._def.rowCountConfig={}),this._def.rowCountConfig.maxRows=e,this}};var ce={string:I.create,number:D.create,boolean:P.create,date:O.create,time:A.create,datetime:B.create,row:w.create,dynamicRow:w.createDynamic,select:V.create,multiselect:_.create,infer:o=>{}};exports.x=ce;
1
+ 'use strict';var de=Object.defineProperty;var q=Object.getOwnPropertySymbols;var ge=Object.prototype.hasOwnProperty,he=Object.prototype.propertyIsEnumerable;var H=(i,e,n)=>e in i?de(i,e,{enumerable:true,configurable:true,writable:true,value:n}):i[e]=n,g=(i,e)=>{for(var n in e||(e={}))ge.call(e,n)&&H(i,n,e[n]);if(q)for(var n of q(e))he.call(e,n)&&H(i,n,e[n]);return i};var C=class{constructor(e){this._def=e;}_addCheck(e,n,t){return {type:e,params:n,message:t}}},p=class extends C{columnNameAliases(e){return this._def.columnNameAliases=e,this}description(e){return this._def.description=e,this}label(e){return this._def.label=e,this}example(e){return this._def.example=e,this}refine(e,n){let t=this._addCheck("refine",{validator:e,params:n});return this._def.checks||(this._def.checks=[]),this._def.checks.push(t),this}refineBatch(e,n){let t=this._addCheck("refineBatch",{validator:e,params:n});return this._def.checks||(this._def.checks=[]),this._def.checks.push(t),this}_findExistingCheck(e){if(!this._def.checks)return {check:void 0,index:-1,found:false};let n=this._def.checks.findIndex(o=>o.type===e),t=n!==-1;return {check:t?this._def.checks[n]:void 0,index:n,found:t}}_replaceOrAddCheck(e,n){this._def.checks||(this._def.checks=[]),n!==-1?this._def.checks[n]=e:this._def.checks.push(e);}};var J=[{name:"Afghanistan",alpha2:"AF",alpha3:"AFG",aliases:["Af\u0121\u0101nist\u0101n","\u0627\u0641\u063A\u0627\u0646\u0633\u062A\u0627\u0646"]},{name:"\xC5land Islands",alpha2:"AX",alpha3:"ALA",aliases:["Ahvenanmaa","\xC5land"]},{name:"Albania",alpha2:"AL",alpha3:"ALB",aliases:["Shqip\xEBri","Shqip\xEBria"]},{name:"Algeria",alpha2:"DZ",alpha3:"DZA",aliases:["\u0627\u0644\u062C\u0632\u0627\u0626\u0631","Alg\xE9rie"]},{name:"American Samoa",alpha2:"AS",alpha3:"ASM",aliases:["S\u0101moa Amelika","Amelika S\u0101moa"]},{name:"Andorra",alpha2:"AD",alpha3:"AND",aliases:["Principat d'Andorra"]},{name:"Angola",alpha2:"AO",alpha3:"AGO",aliases:["Rep\xFAblica de Angola"]},{name:"Anguilla",alpha2:"AI",alpha3:"AIA",aliases:[]},{name:"Antigua and Barbuda",alpha2:"AG",alpha3:"ATG",aliases:["Antigua","Barbuda"]},{name:"Argentina",alpha2:"AR",alpha3:"ARG",aliases:["Rep\xFAblica Argentina","Argentine Republic"]},{name:"Armenia",alpha2:"AM",alpha3:"ARM",aliases:["\u0540\u0561\u0575\u0561\u057D\u057F\u0561\u0576","Hayastan","Republic of Armenia"]},{name:"Aruba",alpha2:"AW",alpha3:"ABW",aliases:[]},{name:"Australia",alpha2:"AU",alpha3:"AUS",aliases:["Commonwealth of Australia","Oz"]},{name:"Austria",alpha2:"AT",alpha3:"AUT",aliases:["\xD6sterreich"]},{name:"Azerbaijan",alpha2:"AZ",alpha3:"AZE",aliases:["Az\u0259rbaycan","Republic of Azerbaijan"]},{name:"Bahamas",alpha2:"BS",alpha3:"BHS",aliases:["The Bahamas","Commonwealth of The Bahamas"]},{name:"Bahrain",alpha2:"BH",alpha3:"BHR",aliases:["\u0627\u0644\u0628\u062D\u0631\u064A\u0646","Kingdom of Bahrain"]},{name:"Bangladesh",alpha2:"BD",alpha3:"BGD",aliases:["\u09AC\u09BE\u0982\u09B2\u09BE\u09A6\u09C7\u09B6","People's Republic of Bangladesh"]},{name:"Barbados",alpha2:"BB",alpha3:"BRB",aliases:[]},{name:"Belarus",alpha2:"BY",alpha3:"BLR",aliases:["\u0411\u0435\u043B\u0430\u0440\u0443\u0441\u044C","Republic of Belarus","Belorussia"]},{name:"Belgium",alpha2:"BE",alpha3:"BEL",aliases:["Belgi\xEB","Belgique","Belgien"]},{name:"Belize",alpha2:"BZ",alpha3:"BLZ",aliases:[]},{name:"Benin",alpha2:"BJ",alpha3:"BEN",aliases:["Republic of Benin","R\xE9publique du B\xE9nin"]},{name:"Bermuda",alpha2:"BM",alpha3:"BMU",aliases:[]},{name:"Bhutan",alpha2:"BT",alpha3:"BTN",aliases:["\u0F60\u0F56\u0FB2\u0F74\u0F42\u0F0B\u0F61\u0F74\u0F63\u0F0B","Druk Yul","Kingdom of Bhutan"]},{name:"Bolivia",alpha2:"BO",alpha3:"BOL",aliases:["Bolivia","Estado Plurinacional de Bolivia"]},{name:"Bonaire, Sint Eustatius and Saba",alpha2:"BQ",alpha3:"BES",aliases:["Caribbean Netherlands"]},{name:"Bosnia and Herzegovina",alpha2:"BA",alpha3:"BIH",aliases:["Bosna i Hercegovina"]},{name:"Botswana",alpha2:"BW",alpha3:"BWA",aliases:["Republic of Botswana"]},{name:"Brazil",alpha2:"BR",alpha3:"BRA",aliases:["Brasil","Federative Republic of Brazil"]},{name:"British Indian Ocean Territory",alpha2:"IO",alpha3:"IOT",aliases:[]},{name:"Brunei Darussalam",alpha2:"BN",alpha3:"BRN",aliases:["Brunei"]},{name:"Bulgaria",alpha2:"BG",alpha3:"BGR",aliases:["\u0411\u044A\u043B\u0433\u0430\u0440\u0438\u044F","Republic of Bulgaria"]},{name:"Burkina Faso",alpha2:"BF",alpha3:"BFA",aliases:["Burkina"]},{name:"Burundi",alpha2:"BI",alpha3:"BDI",aliases:["Republic of Burundi","Republika y'Uburundi"]},{name:"Cabo Verde",alpha2:"CV",alpha3:"CPV",aliases:["Cape Verde"]},{name:"Cambodia",alpha2:"KH",alpha3:"KHM",aliases:["\u1780\u1798\u17D2\u1796\u17BB\u1787\u17B6","Kingdom of Cambodia"]},{name:"Cameroon",alpha2:"CM",alpha3:"CMR",aliases:["Cameroun","Republic of Cameroon"]},{name:"Canada",alpha2:"CA",alpha3:"CAN",aliases:["Kanada","Canada (French)"]},{name:"Cayman Islands",alpha2:"KY",alpha3:"CYM",aliases:[]},{name:"Central African Republic",alpha2:"CF",alpha3:"CAF",aliases:["R\xE9publique centrafricaine"]},{name:"Chad",alpha2:"TD",alpha3:"TCD",aliases:["Tchad","\u062C\u0645\u0647\u0648\u0631\u064A\u0629 \u062A\u0634\u0627\u062F"]},{name:"Chile",alpha2:"CL",alpha3:"CHL",aliases:["Rep\xFAblica de Chile"]},{name:"China",alpha2:"CN",alpha3:"CHN",aliases:["\u4E2D\u534E\u4EBA\u6C11\u5171\u548C\u56FD","\u4E2D\u56FD","Zh\u014Dnggu\xF3","People's Republic of China","PRC"]},{name:"Christmas Island",alpha2:"CX",alpha3:"CXR",aliases:[]},{name:"Cocos (Keeling) Islands",alpha2:"CC",alpha3:"CCK",aliases:[]},{name:"Colombia",alpha2:"CO",alpha3:"COL",aliases:["Rep\xFAblica de Colombia"]},{name:"Comoros",alpha2:"KM",alpha3:"COM",aliases:["\u062C\u0632\u0631 \u0627\u0644\u0642\u0645\u0631","Union of the Comoros"]},{name:"Congo",alpha2:"CG",alpha3:"COG",aliases:["Republic of the Congo","Congo-Brazzaville"]},{name:"Democratic Republic of the Congo",alpha2:"CD",alpha3:"COD",aliases:["Democratic Republic of the Congo","Congo-Kinshasa","DR Congo","DRC"]},{name:"Cook Islands",alpha2:"CK",alpha3:"COK",aliases:[]},{name:"Costa Rica",alpha2:"CR",alpha3:"CRI",aliases:["Rep\xFAblica de Costa Rica"]},{name:"C\xF4te d'Ivoire",alpha2:"CI",alpha3:"CIV",aliases:["Ivory Coast","R\xE9publique de C\xF4te d'Ivoire"]},{name:"Croatia",alpha2:"HR",alpha3:"HRV",aliases:["Hrvatska","Republic of Croatia"]},{name:"Cuba",alpha2:"CU",alpha3:"CUB",aliases:["Rep\xFAblica de Cuba"]},{name:"Cura\xE7ao",alpha2:"CW",alpha3:"CUW",aliases:[]},{name:"Cyprus",alpha2:"CY",alpha3:"CYP",aliases:["\u039A\u03CD\u03C0\u03C1\u03BF\u03C2","K\u0131br\u0131s"]},{name:"Czechia",alpha2:"CZ",alpha3:"CZE",aliases:["Czech Republic","\u010Cesko"]},{name:"Denmark",alpha2:"DK",alpha3:"DNK",aliases:["Danmark"]},{name:"Djibouti",alpha2:"DJ",alpha3:"DJI",aliases:["\u062C\u064A\u0628\u0648\u062A\u064A","Djibouti City-State"]},{name:"Dominica",alpha2:"DM",alpha3:"DMA",aliases:[]},{name:"Dominican Republic",alpha2:"DO",alpha3:"DOM",aliases:["Rep\xFAblica Dominicana"]},{name:"Ecuador",alpha2:"EC",alpha3:"ECU",aliases:["Rep\xFAblica del Ecuador"]},{name:"Egypt",alpha2:"EG",alpha3:"EGY",aliases:["\u0645\u0635\u0631","Arab Republic of Egypt"]},{name:"El Salvador",alpha2:"SV",alpha3:"SLV",aliases:["Rep\xFAblica de El Salvador"]},{name:"Equatorial Guinea",alpha2:"GQ",alpha3:"GNQ",aliases:["Rep\xFAblica de Guinea Ecuatorial","R\xE9publique de Guin\xE9e \xE9quatoriale","Rep\xFAblica da Guin\xE9 Equatorial"]},{name:"Eritrea",alpha2:"ER",alpha3:"ERI",aliases:["State of Eritrea","\u12A4\u122D\u1275\u122B","\u0625\u0631\u064A\u062A\u0631\u064A\u0627"]},{name:"Estonia",alpha2:"EE",alpha3:"EST",aliases:["Eesti"]},{name:"Eswatini",alpha2:"SZ",alpha3:"SWZ",aliases:["Swaziland","Kingdom of Eswatini"]},{name:"Ethiopia",alpha2:"ET",alpha3:"ETH",aliases:["\u12A2\u1275\u12EE\u1335\u12EB","Federal Democratic Republic of Ethiopia"]},{name:"Falkland Islands (Malvinas)",alpha2:"FK",alpha3:"FLK",aliases:["Islas Malvinas"]},{name:"Faroe Islands",alpha2:"FO",alpha3:"FRO",aliases:["F\xF8royar"]},{name:"Fiji",alpha2:"FJ",alpha3:"FJI",aliases:["Viti","Fiji Islands"]},{name:"Finland",alpha2:"FI",alpha3:"FIN",aliases:["Suomi"]},{name:"France",alpha2:"FR",alpha3:"FRA",aliases:["R\xE9publique fran\xE7aise"]},{name:"French Guiana",alpha2:"GF",alpha3:"GUF",aliases:["Guyane"]},{name:"French Polynesia",alpha2:"PF",alpha3:"PYF",aliases:["Polyn\xE9sie fran\xE7aise"]},{name:"Gabon",alpha2:"GA",alpha3:"GAB",aliases:["R\xE9publique gabonaise"]},{name:"Gambia",alpha2:"GM",alpha3:"GMB",aliases:["Republic of The Gambia"]},{name:"Georgia",alpha2:"GE",alpha3:"GEO",aliases:["\u10E1\u10D0\u10E5\u10D0\u10E0\u10D7\u10D5\u10D4\u10DA\u10DD","Sakartvelo"]},{name:"Germany",alpha2:"DE",alpha3:"DEU",aliases:["Deutschland","Federal Republic of Germany"]},{name:"Ghana",alpha2:"GH",alpha3:"GHA",aliases:["Republic of Ghana"]},{name:"Gibraltar",alpha2:"GI",alpha3:"GIB",aliases:[""]},{name:"Greece",alpha2:"GR",alpha3:"GRC",aliases:["\u0395\u03BB\u03BB\u03AC\u03B4\u03B1","Hellas","Hellenic Republic"]},{name:"Greenland",alpha2:"GL",alpha3:"GRL",aliases:["Kalaallit Nunaat"]},{name:"Grenada",alpha2:"GD",alpha3:"GRD",aliases:[]},{name:"Guadeloupe",alpha2:"GP",alpha3:"GLP",aliases:[]},{name:"Guam",alpha2:"GU",alpha3:"GUM",aliases:["Gu\xE5h\xE5n"]},{name:"Guatemala",alpha2:"GT",alpha3:"GTM",aliases:["Rep\xFAblica de Guatemala"]},{name:"Guernsey",alpha2:"GG",alpha3:"GGY",aliases:[]},{name:"Guinea",alpha2:"GN",alpha3:"GIN",aliases:["R\xE9publique de Guin\xE9e"]},{name:"Guinea-Bissau",alpha2:"GW",alpha3:"GNB",aliases:["Rep\xFAblica da Guin\xE9-Bissau"]},{name:"Guyana",alpha2:"GY",alpha3:"GUY",aliases:["Co-operative Republic of Guyana"]},{name:"Haiti",alpha2:"HT",alpha3:"HTI",aliases:["R\xE9publique d'Ha\xEFti","Repiblik d Ayiti"]},{name:"Holy See",alpha2:"VA",alpha3:"VAT",aliases:["Vatican City","Vatican City State","Santa Sede"]},{name:"Honduras",alpha2:"HN",alpha3:"HND",aliases:["Rep\xFAblica de Honduras"]},{name:"Hong Kong",alpha2:"HK",alpha3:"HKG",aliases:["\u9999\u6E2F","Xianggang","Hong Kong SAR"]},{name:"Hungary",alpha2:"HU",alpha3:"HUN",aliases:["Magyarorsz\xE1g"]},{name:"Iceland",alpha2:"IS",alpha3:"ISL",aliases:["\xCDsland"]},{name:"India",alpha2:"IN",alpha3:"IND",aliases:["\u092D\u093E\u0930\u0924","Republic of India","Bharat"]},{name:"Indonesia",alpha2:"ID",alpha3:"IDN",aliases:["Republik Indonesia"]},{name:"Iran, Islamic Republic of",alpha2:"IR",alpha3:"IRN",aliases:["\u0627\u06CC\u0631\u0627\u0646","Islamic Republic of Iran"]},{name:"Iraq",alpha2:"IQ",alpha3:"IRQ",aliases:["\u0627\u0644\u0639\u0631\u0627\u0642","Republic of Iraq"]},{name:"Ireland",alpha2:"IE",alpha3:"IRL",aliases:["\xC9ire","Republic of Ireland"]},{name:"Isle of Man",alpha2:"IM",alpha3:"IMN",aliases:["Mann","Ellan Vannin"]},{name:"Israel",alpha2:"IL",alpha3:"ISR",aliases:["\u05D9\u05B4\u05E9\u05B0\u05C2\u05E8\u05B8\u05D0\u05B5\u05DC","State of Israel","Med\u012Bnat Yisr\u0101'el"]},{name:"Italy",alpha2:"IT",alpha3:"ITA",aliases:["Italia","Repubblica Italiana"]},{name:"Jamaica",alpha2:"JM",alpha3:"JAM",aliases:[]},{name:"Japan",alpha2:"JP",alpha3:"JPN",aliases:["\u65E5\u672C","Nihon","Nippon"]},{name:"Jersey",alpha2:"JE",alpha3:"JEY",aliases:[]},{name:"Jordan",alpha2:"JO",alpha3:"JOR",aliases:["\u0627\u0644\u0623\u0631\u062F\u0646","Hashemite Kingdom of Jordan"]},{name:"Kazakhstan",alpha2:"KZ",alpha3:"KAZ",aliases:["\u049A\u0430\u0437\u0430\u049B\u0441\u0442\u0430\u043D","Republic of Kazakhstan"]},{name:"Kenya",alpha2:"KE",alpha3:"KEN",aliases:["Republic of Kenya"]},{name:"Kiribati",alpha2:"KI",alpha3:"KIR",aliases:[]},{name:"North Korea",alpha2:"KP",alpha3:"PRK",aliases:["North Korea","\uC870\uC120\uBBFC\uC8FC\uC8FC\uC758\uC778\uBBFC\uACF5\uD654\uAD6D","Democratic People's Republic of Korea"]},{name:"South Korea",alpha2:"KR",alpha3:"KOR",aliases:["South Korea","\uB300\uD55C\uBBFC\uAD6D","Republic of Korea"]},{name:"Kosovo",alpha2:"XK",alpha3:"XKS",aliases:["Kosova","\u041A\u043E\u0441\u043E\u0432\u043E","Republic of Kosovo","Republika e Kosov\xEBs"]},{name:"Kuwait",alpha2:"KW",alpha3:"KWT",aliases:["\u0627\u0644\u0643\u0648\u064A\u062A","State of Kuwait"]},{name:"Kyrgyzstan",alpha2:"KG",alpha3:"KGZ",aliases:["\u041A\u044B\u0440\u0433\u044B\u0437\u0441\u0442\u0430\u043D","Kyrgyz Republic"]},{name:"Lao People's Democratic Republic",alpha2:"LA",alpha3:"LAO",aliases:["Laos","\u0EAA\u0E9B\u0E9B\u0EA5\u0EB2\u0EA7"]},{name:"Latvia",alpha2:"LV",alpha3:"LVA",aliases:["Latvija"]},{name:"Lebanon",alpha2:"LB",alpha3:"LBN",aliases:["\u0644\u0628\u0646\u0627\u0646","Republic of Lebanon"]},{name:"Lesotho",alpha2:"LS",alpha3:"LSO",aliases:["Kingdom of Lesotho"]},{name:"Liberia",alpha2:"LR",alpha3:"LBR",aliases:["Republic of Liberia"]},{name:"Libya",alpha2:"LY",alpha3:"LBY",aliases:["Libyan Arab Jamahiriya"]},{name:"Liechtenstein",alpha2:"LI",alpha3:"LIE",aliases:["F\xFCrstentum Liechtenstein"]},{name:"Lithuania",alpha2:"LT",alpha3:"LTU",aliases:["Lietuva","Republic of Lithuania"]},{name:"Luxembourg",alpha2:"LU",alpha3:"LUX",aliases:["L\xEBtzebuerg","Luxembourg","Luxemburg"]},{name:"Macao",alpha2:"MO",alpha3:"MAC",aliases:["\u6FB3\u9580","Macao SAR","\xC0om\xE9n"]},{name:"Madagascar",alpha2:"MG",alpha3:"MDG",aliases:["Repoblikan'i Madagasikara","R\xE9publique de Madagascar"]},{name:"Malawi",alpha2:"MW",alpha3:"MWI",aliases:["Republic of Malawi"]},{name:"Malaysia",alpha2:"MY",alpha3:"MYS",aliases:["Malaysia","\u0645\u0627\u0644\u064A\u0632\u064A\u0627"]},{name:"Maldives",alpha2:"MV",alpha3:"MDV",aliases:["\u078B\u07A8\u0788\u07AC\u0780\u07A8\u0783\u07A7\u0787\u07B0\u0796\u07AD\u078E\u07AC","Dhivehi Raajje","Republic of Maldives"]},{name:"Mali",alpha2:"ML",alpha3:"MLI",aliases:["R\xE9publique du Mali"]},{name:"Malta",alpha2:"MT",alpha3:"MLT",aliases:["Repubblika ta' Malta","Republic of Malta"]},{name:"Marshall Islands",alpha2:"MH",alpha3:"MHL",aliases:["Aolep\u0101n Aor\u014Dkin M\u0327aje\u013C","Republic of the Marshall Islands"]},{name:"Martinique",alpha2:"MQ",alpha3:"MTQ",aliases:[]},{name:"Mauritania",alpha2:"MR",alpha3:"MRT",aliases:["\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627","Islamic Republic of Mauritania"]},{name:"Mauritius",alpha2:"MU",alpha3:"MUS",aliases:["Republic of Mauritius","R\xE9publique de Maurice"]},{name:"Mayotte",alpha2:"YT",alpha3:"MYT",aliases:[]},{name:"Mexico",alpha2:"MX",alpha3:"MEX",aliases:["M\xE9xico","Estados Unidos Mexicanos"]},{name:"Micronesia, Federated States of",alpha2:"FM",alpha3:"FSM",aliases:["Micronesia","Federated States of Micronesia"]},{name:"Moldova",alpha2:"MD",alpha3:"MDA",aliases:["Moldova","Republica Moldova"]},{name:"Monaco",alpha2:"MC",alpha3:"MCO",aliases:["Principaut\xE9 de Monaco"]},{name:"Mongolia",alpha2:"MN",alpha3:"MNG",aliases:["\u041C\u043E\u043D\u0433\u043E\u043B \u0443\u043B\u0441","Mongol Uls"]},{name:"Montenegro",alpha2:"ME",alpha3:"MNE",aliases:["\u0426\u0440\u043D\u0430 \u0413\u043E\u0440\u0430","Crna Gora"]},{name:"Montserrat",alpha2:"MS",alpha3:"MSR",aliases:[]},{name:"Morocco",alpha2:"MA",alpha3:"MAR",aliases:["\u0627\u0644\u0645\u063A\u0631\u0628","Maroc","Kingdom of Morocco"]},{name:"Mozambique",alpha2:"MZ",alpha3:"MOZ",aliases:["Mo\xE7ambique","Republic of Mozambique"]},{name:"Myanmar",alpha2:"MM",alpha3:"MMR",aliases:["Burma","\u1019\u103C\u1014\u103A\u1019\u102C","Myanma"]},{name:"Namibia",alpha2:"NA",alpha3:"NAM",aliases:["Republic of Namibia"]},{name:"Nauru",alpha2:"NR",alpha3:"NRU",aliases:["Naoero","Republic of Nauru"]},{name:"Nepal",alpha2:"NP",alpha3:"NPL",aliases:["\u0928\u0947\u092A\u093E\u0932","Federal Democratic Republic of Nepal"]},{name:"Netherlands",alpha2:"NL",alpha3:"NLD",aliases:["Nederland","Holland","Kingdom of the Netherlands"]},{name:"New Caledonia",alpha2:"NC",alpha3:"NCL",aliases:["Nouvelle-Cal\xE9donie"]},{name:"New Zealand",alpha2:"NZ",alpha3:"NZL",aliases:["Aotearoa"]},{name:"Nicaragua",alpha2:"NI",alpha3:"NIC",aliases:["Rep\xFAblica de Nicaragua"]},{name:"Niger",alpha2:"NE",alpha3:"NER",aliases:["R\xE9publique du Niger"]},{name:"Nigeria",alpha2:"NG",alpha3:"NGA",aliases:["Federal Republic of Nigeria"]},{name:"Niue",alpha2:"NU",alpha3:"NIU",aliases:[]},{name:"Norfolk Island",alpha2:"NF",alpha3:"NFK",aliases:[]},{name:"North Macedonia",alpha2:"MK",alpha3:"MKD",aliases:["Republic of North Macedonia","\u0421\u0435\u0432\u0435\u0440\u043D\u0430 \u041C\u0430\u043A\u0435\u0434\u043E\u043D\u0438\u0458\u0430"]},{name:"Northern Mariana Islands",alpha2:"MP",alpha3:"MNP",aliases:["Saipan","Commonwealth of the Northern Mariana Islands"]},{name:"Norway",alpha2:"NO",alpha3:"NOR",aliases:["Norge","Noreg","Norrige"]},{name:"Oman",alpha2:"OM",alpha3:"OMN",aliases:["\u0639\u0645\u0627\u0646","Sultanate of Oman"]},{name:"Pakistan",alpha2:"PK",alpha3:"PAK",aliases:["\u067E\u0627\u06A9\u0633\u062A\u0627\u0646","Islamic Republic of Pakistan"]},{name:"Palau",alpha2:"PW",alpha3:"PLW",aliases:["Beluu er a Belau","Republic of Palau"]},{name:"Palestine",alpha2:"PS",alpha3:"PSE",aliases:["\u0641\u0644\u0633\u0637\u064A\u0646","State of Palestine"]},{name:"Panama",alpha2:"PA",alpha3:"PAN",aliases:["Rep\xFAblica de Panam\xE1"]},{name:"Papua New Guinea",alpha2:"PG",alpha3:"PNG",aliases:["Papua Niugini"]},{name:"Paraguay",alpha2:"PY",alpha3:"PRY",aliases:["Rep\xFAblica del Paraguay"]},{name:"Peru",alpha2:"PE",alpha3:"PER",aliases:["Rep\xFAblica del Per\xFA"]},{name:"Philippines",alpha2:"PH",alpha3:"PHL",aliases:["Pilipinas","Republika ng Pilipinas"]},{name:"Poland",alpha2:"PL",alpha3:"POL",aliases:["Polska","Republic of Poland"]},{name:"Portugal",alpha2:"PT",alpha3:"PRT",aliases:["Rep\xFAblica Portuguesa"]},{name:"Puerto Rico",alpha2:"PR",alpha3:"PRI",aliases:[]},{name:"Qatar",alpha2:"QA",alpha3:"QAT",aliases:["\u0642\u0637\u0631","State of Qatar"]},{name:"R\xE9union",alpha2:"RE",alpha3:"REU",aliases:[]},{name:"Romania",alpha2:"RO",alpha3:"ROU",aliases:["Rom\xE2nia"]},{name:"Russian Federation",alpha2:"RU",alpha3:"RUS",aliases:["Russia","\u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u0430\u044F \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u044F"]},{name:"Rwanda",alpha2:"RW",alpha3:"RWA",aliases:["Repubulika y'u Rwanda","R\xE9publique du Rwanda"]},{name:"Saint Barth\xE9lemy",alpha2:"BL",alpha3:"BLM",aliases:["Saint-Barth\xE9lemy"]},{name:"Saint Helena, Ascension and Tristan da Cunha",alpha2:"SH",alpha3:"SHN",aliases:[]},{name:"Saint Kitts and Nevis",alpha2:"KN",alpha3:"KNA",aliases:[]},{name:"Saint Lucia",alpha2:"LC",alpha3:"LCA",aliases:[]},{name:"Saint Martin (French part)",alpha2:"MF",alpha3:"MAF",aliases:[]},{name:"Saint Pierre and Miquelon",alpha2:"PM",alpha3:"SPM",aliases:[]},{name:"Saint Vincent and the Grenadines",alpha2:"VC",alpha3:"VCT",aliases:[]},{name:"Samoa",alpha2:"WS",alpha3:"WSM",aliases:["S\u0101moa","Independent State of Samoa"]},{name:"San Marino",alpha2:"SM",alpha3:"SMR",aliases:["Serenissima Repubblica di San Marino"]},{name:"Sao Tome and Principe",alpha2:"ST",alpha3:"STP",aliases:["S\xE3o Tom\xE9 e Pr\xEDncipe"]},{name:"Saudi Arabia",alpha2:"SA",alpha3:"SAU",aliases:["\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0639\u0631\u0628\u064A\u0629 \u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629","Kingdom of Saudi Arabia","KSA"]},{name:"Senegal",alpha2:"SN",alpha3:"SEN",aliases:["R\xE9publique du S\xE9n\xE9gal"]},{name:"Serbia",alpha2:"RS",alpha3:"SRB",aliases:["\u0421\u0440\u0431\u0438\u0458\u0430","Srbija","Republic of Serbia"]},{name:"Seychelles",alpha2:"SC",alpha3:"SYC",aliases:["Repiblik Sesel","R\xE9publique des Seychelles"]},{name:"Sierra Leone",alpha2:"SL",alpha3:"SLE",aliases:["Republic of Sierra Leone"]},{name:"Singapore",alpha2:"SG",alpha3:"SGP",aliases:["\u65B0\u52A0\u5761","Singapura","Republic of Singapore"]},{name:"Sint Maarten (Dutch part)",alpha2:"SX",alpha3:"SXM",aliases:[]},{name:"Slovakia",alpha2:"SK",alpha3:"SVK",aliases:["Slovensko","Slovak Republic"]},{name:"Slovenia",alpha2:"SI",alpha3:"SVN",aliases:["Slovenija"]},{name:"Solomon Islands",alpha2:"SB",alpha3:"SLB",aliases:[]},{name:"Somalia",alpha2:"SO",alpha3:"SOM",aliases:["Soomaaliya","\u062C\u0645\u0647\u0648\u0631\u064A\u0629 \u0627\u0644\u0635\u0648\u0645\u0627\u0644","Federal Republic of Somalia"]},{name:"South Africa",alpha2:"ZA",alpha3:"ZAF",aliases:["RSA","Republic of South Africa"]},{name:"South Sudan",alpha2:"SS",alpha3:"SSD",aliases:["Republic of South Sudan"]},{name:"Spain",alpha2:"ES",alpha3:"ESP",aliases:["Espa\xF1a","Reino de Espa\xF1a"]},{name:"Sri Lanka",alpha2:"LK",alpha3:"LKA",aliases:["\u0DC1\u0DCA\u200D\u0DBB\u0DD3 \u0DBD\u0D82\u0D9A\u0DCF\u0DC0","\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8","Democratic Socialist Republic of Sri Lanka"]},{name:"Sudan",alpha2:"SD",alpha3:"SDN",aliases:["\u0627\u0644\u0633\u0648\u062F\u0627\u0646","Republic of the Sudan"]},{name:"Suriname",alpha2:"SR",alpha3:"SUR",aliases:["Republiek Suriname"]},{name:"Svalbard and Jan Mayen",alpha2:"SJ",alpha3:"SJM",aliases:[]},{name:"Sweden",alpha2:"SE",alpha3:"SWE",aliases:["Sverige","Kingdom of Sweden"]},{name:"Switzerland",alpha2:"CH",alpha3:"CHE",aliases:["Schweiz","Suisse","Svizzera","Svizra","Swiss Confederation"]},{name:"Syrian Arab Republic",alpha2:"SY",alpha3:"SYR",aliases:["\u0633\u0648\u0631\u064A\u0627","Syria"]},{name:"Taiwan, Province of China",alpha2:"TW",alpha3:"TWN",aliases:["\u53F0\u7063","\u81FA\u7063","Taiwan","Republic of China","ROC"]},{name:"Tajikistan",alpha2:"TJ",alpha3:"TJK",aliases:["\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D","Republic of Tajikistan"]},{name:"Tanzania, United Republic of",alpha2:"TZ",alpha3:"TZA",aliases:["Tanzania","Jamhuri ya Muungano wa Tanzania"]},{name:"Thailand",alpha2:"TH",alpha3:"THA",aliases:["\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28\u0E44\u0E17\u0E22","Prathet Thai","Kingdom of Thailand"]},{name:"Timor-Leste",alpha2:"TL",alpha3:"TLS",aliases:["East Timor","Rep\xFAblica Democr\xE1tica de Timor-Leste"]},{name:"Togo",alpha2:"TG",alpha3:"TGO",aliases:["R\xE9publique Togolaise"]},{name:"Tokelau",alpha2:"TK",alpha3:"TKL",aliases:[]},{name:"Tonga",alpha2:"TO",alpha3:"TON",aliases:["Pule\u02BBanga Fakatu\u02BBi \u02BBo Tonga","Kingdom of Tonga"]},{name:"Trinidad and Tobago",alpha2:"TT",alpha3:"TTO",aliases:[]},{name:"Tunisia",alpha2:"TN",alpha3:"TUN",aliases:["\u062A\u0648\u0646\u0633","Republic of Tunisia"]},{name:"T\xFCrkiye",alpha2:"TR",alpha3:"TUR",aliases:["Turkey","T\xFCrkiye Cumhuriyeti","Republic of T\xFCrkiye"]},{name:"Turkmenistan",alpha2:"TM",alpha3:"TKM",aliases:["T\xFCrkmenistan"]},{name:"Turks and Caicos Islands",alpha2:"TC",alpha3:"TCA",aliases:[]},{name:"Tuvalu",alpha2:"TV",alpha3:"TUV",aliases:[]},{name:"Uganda",alpha2:"UG",alpha3:"UGA",aliases:["Republic of Uganda"]},{name:"Ukraine",alpha2:"UA",alpha3:"UKR",aliases:["\u0423\u043A\u0440\u0430\u0457\u043D\u0430"]},{name:"United Arab Emirates",alpha2:"AE",alpha3:"ARE",aliases:["\u0627\u0644\u0625\u0645\u0627\u0631\u0627\u062A \u0627\u0644\u0639\u0631\u0628\u064A\u0629 \u0627\u0644\u0645\u062A\u062D\u062F\u0629","UAE"]},{name:"United Kingdom",alpha2:"GB",alpha3:"GBR",aliases:["United Kingdom","UK","Britain","Great Britain"]},{name:"United States of America",alpha2:"US",alpha3:"USA",aliases:["United States","USA","America","US"]},{name:"Uruguay",alpha2:"UY",alpha3:"URY",aliases:["Rep\xFAblica Oriental del Uruguay"]},{name:"Uzbekistan",alpha2:"UZ",alpha3:"UZB",aliases:["O\u02BBzbekiston","Republic of Uzbekistan"]},{name:"Vanuatu",alpha2:"VU",alpha3:"VUT",aliases:["Ripablik blong Vanuatu"]},{name:"Venezuela",alpha2:"VE",alpha3:"VEN",aliases:["Venezuela","Rep\xFAblica Bolivariana de Venezuela"]},{name:"Vietnam",alpha2:"VN",alpha3:"VNM",aliases:["Vi\u1EC7t Nam","Socialist Republic of Vietnam"]},{name:"Virgin Islands (British)",alpha2:"VG",alpha3:"VGB",aliases:["British Virgin Islands"]},{name:"Virgin Islands (U.S.)",alpha2:"VI",alpha3:"VIR",aliases:["U.S. Virgin Islands"]},{name:"Wallis and Futuna",alpha2:"WF",alpha3:"WLF",aliases:[]},{name:"Western Sahara",alpha2:"EH",alpha3:"ESH",aliases:["\u0627\u0644\u0635\u062D\u0631\u0627\u0621 \u0627\u0644\u063A\u0631\u0628\u064A\u0629","Sahara Occidental"]},{name:"Yemen",alpha2:"YE",alpha3:"YEM",aliases:["\u0627\u0644\u064A\u0645\u0646","Republic of Yemen"]},{name:"Zambia",alpha2:"ZM",alpha3:"ZMB",aliases:["Republic of Zambia"]},{name:"Zimbabwe",alpha2:"ZW",alpha3:"ZWE",aliases:["Republic of Zimbabwe"]}];var K={byName:new Map,byAlpha2:new Map,byAlpha3:new Map,byAlias:new Map};for(let i of J){K.byName.set(i.name.toLowerCase(),i),K.byAlpha2.set(i.alpha2.toLowerCase(),i),K.byAlpha3.set(i.alpha3.toLowerCase(),i);for(let e of i.aliases)K.byAlias.set(e.toLowerCase(),i);}var Q=65,ye=90;var Ee={A:"0-9A-Za-z",B:"0-9A-Z",C:"A-Za-z",F:"0-9",L:"a-z",U:"A-Z",W:"0-9a-z"};function ee(i){let e=i.toUpperCase();return (e.slice(4)+e.slice(0,4)).split("").map(t=>{let r=t.charCodeAt(0);return r>=Q&&r<=ye?String(r-Q+10):t}).join("")}function ne(i){let e=i,n;for(;e.length>2;)n=e.slice(0,9),e=Number.parseInt(n,10)%97+e.slice(n.length);return Number.parseInt(e,10)%97}function be(i){var n;let e=(n=i.match(/(.{3})/g))==null?void 0:n.map(t=>{let r=t.slice(0,1),o=Number.parseInt(t.slice(1),10);return `([${Ee[r]||""}]{${o}})`});return new RegExp(`^${(e==null?void 0:e.join(""))||""}$`)}var a=class{constructor(e,n,t,r){this.countryCode=e,this.length=n,this.structure=t,this.example=r,this._cachedRegex=be(this.structure);}_regex(){return this._cachedRegex}isValid(e){return this.length===e.length&&this.countryCode===e.slice(0,2)&&this._regex().test(e.slice(4))&&ne(ee(e))===1}toBBAN(e,n=""){let t=this._regex().exec(e.slice(4));return t?t.slice(1).join(n):""}fromBBAN(e){if(!this.isValidBBAN(e))throw new Error("Invalid BBAN");let t=`0${98-ne(ee(`${this.countryCode}00${e}`))}`.slice(-2);return `${this.countryCode}${t}${e}`}isValidBBAN(e){return this.length-4===e.length&&this._regex().test(e)}},we={};function s(i){we[i.countryCode]=i;}s(new a("AD",24,"F04F04A12","AD1200012030200359100100"));s(new a("AE",23,"F03F16","AE070331234567890123456"));s(new a("AL",28,"F08A16","AL47212110090000000235698741"));s(new a("AT",20,"F05F11","AT611904300234573201"));s(new a("AZ",28,"U04A20","AZ21NABZ00000000137010001944"));s(new a("BA",20,"F03F03F08F02","BA391290079401028494"));s(new a("BE",16,"F03F07F02","BE68539007547034"));s(new a("BG",22,"U04F04F02A08","BG80BNBG96611020345678"));s(new a("BH",22,"U04A14","BH67BMAG00001299123456"));s(new a("BR",29,"F08F05F10U01A01","BR9700360305000010009795493P1"));s(new a("BY",28,"A04F04A16","BY13NBRB3600900000002Z00AB00"));s(new a("CH",21,"F05A12","CH9300762011623852957"));s(new a("CR",22,"F04F14","CR72012300000171549015"));s(new a("CY",28,"F03F05A16","CY17002001280000001200527600"));s(new a("CZ",24,"F04F06F10","CZ6508000000192000145399"));s(new a("DE",22,"F08F10","DE89370400440532013000"));s(new a("DK",18,"F04F09F01","DK5000400440116243"));s(new a("DO",28,"U04F20","DO28BAGR00000001212453611324"));s(new a("EE",20,"F02F02F11F01","EE382200221020145685"));s(new a("EG",29,"F04F04F17","EG800002000156789012345180002"));s(new a("ES",24,"F04F04F01F01F10","ES9121000418450200051332"));s(new a("FI",18,"F06F07F01","FI2112345600000785"));s(new a("FO",18,"F04F09F01","FO6264600001631634"));s(new a("FR",27,"F05F05A11F02","FR1420041010050500013M02606"));s(new a("GB",22,"U04F06F08","GB29NWBK60161331926819"));s(new a("GE",22,"U02F16","GE29NB0000000101904917"));s(new a("GI",23,"U04A15","GI75NWBK000000007099453"));s(new a("GL",18,"F04F09F01","GL8964710001000206"));s(new a("GR",27,"F03F04A16","GR1601101250000000012300695"));s(new a("GT",28,"A04A20","GT82TRAJ01020000001210029690"));s(new a("HR",21,"F07F10","HR1210010051863000160"));s(new a("HU",28,"F03F04F01F15F01","HU42117730161111101800000000"));s(new a("IE",22,"U04F06F08","IE29AIBK93115212345678"));s(new a("IL",23,"F03F03F13","IL620108000000099999999"));s(new a("IS",26,"F04F02F06F10","IS140159260076545510730339"));s(new a("IT",27,"U01F05F05A12","IT60X0542811101000000123456"));s(new a("IQ",23,"U04F03A12","IQ98NBIQ850123456789012"));s(new a("JO",30,"A04F22","JO15AAAA1234567890123456789012"));s(new a("KW",30,"U04A22","KW81CBKU0000000000001234560101"));s(new a("KZ",20,"F03A13","KZ86125KZT5004100100"));s(new a("LB",28,"F04A20","LB62099900000001001901229114"));s(new a("LC",32,"U04F24","LC07HEMM000100010012001200013015"));s(new a("LI",21,"F05A12","LI21088100002324013AA"));s(new a("LT",20,"F05F11","LT121000011101001000"));s(new a("LU",20,"F03A13","LU280019400644750000"));s(new a("LV",21,"U04A13","LV80BANK0000435195001"));s(new a("MC",27,"F05F05A11F02","MC5811222000010123456789030"));s(new a("MD",24,"U02A18","MD24AG000225100013104168"));s(new a("ME",22,"F03F13F02","ME25505000012345678951"));s(new a("MK",19,"F03A10F02","MK07250120000058984"));s(new a("MR",27,"F05F05F11F02","MR1300020001010000123456753"));s(new a("MT",31,"U04F05A18","MT84MALT011000012345MTLCAST001S"));s(new a("MU",30,"U04F02F02F12F03U03","MU17BOMM0101101030300200000MUR"));s(new a("NL",18,"U04F10","NL91ABNA0417164300"));s(new a("NO",15,"F04F06F01","NO9386011117947"));s(new a("PK",24,"U04A16","PK36SCBL0000001123456702"));s(new a("PL",28,"F08F16","PL61109010140000071219812874"));s(new a("PS",29,"U04A21","PS92PALS000000000400123456702"));s(new a("PT",25,"F04F04F11F02","PT50000201231234567890154"));s(new a("QA",29,"U04A21","QA30AAAA123456789012345678901"));s(new a("RO",24,"U04A16","RO49AAAA1B31007593840000"));s(new a("RS",22,"F03F13F02","RS35260005601001611379"));s(new a("SA",24,"F02A18","SA0380000000608010167519"));s(new a("SC",31,"U04F04F16U03","SC18SSCB11010000000000001497USD"));s(new a("SE",24,"F03F16F01","SE4550000000058398257466"));s(new a("SI",19,"F05F08F02","SI56263300012039086"));s(new a("SK",24,"F04F06F10","SK3112000000198742637541"));s(new a("SM",27,"U01F05F05A12","SM86U0322509800000000270100"));s(new a("ST",25,"F08F11F02","ST68000100010051845310112"));s(new a("SV",28,"U04F20","SV62CENR00000000000000700025"));s(new a("TL",23,"F03F14F02","TL380080012345678910157"));s(new a("TN",24,"F02F03F13F02","TN5910006035183598478831"));s(new a("TR",26,"F05F01A16","TR330006100519786457841326"));s(new a("UA",29,"F25","UA511234567890123456789012345"));s(new a("VA",22,"F18","VA59001123000012345678"));s(new a("VG",24,"U04F16","VG96VPVG0000012345678901"));s(new a("XK",20,"F04F10F02","XK051212012345678906"));s(new a("AO",25,"F21","AO69123456789012345678901"));s(new a("BF",27,"F23","BF2312345678901234567890123"));s(new a("BI",16,"F12","BI41123456789012"));s(new a("BJ",28,"F24","BJ39123456789012345678901234"));s(new a("CI",28,"U02F22","CI70CI1234567890123456789012"));s(new a("CM",27,"F23","CM9012345678901234567890123"));s(new a("CV",25,"F21","CV30123456789012345678901"));s(new a("DZ",24,"F20","DZ8612345678901234567890"));s(new a("IR",26,"F22","IR861234568790123456789012"));s(new a("MG",27,"F23","MG1812345678901234567890123"));s(new a("ML",28,"U01F23","ML15A12345678901234567890123"));s(new a("MZ",25,"F21","MZ25123456789012345678901"));s(new a("SN",28,"U01F23","SN52A12345678901234567890123"));s(new a("GF",27,"F05F05A11F02","GF121234512345123456789AB13"));s(new a("GP",27,"F05F05A11F02","GP791234512345123456789AB13"));s(new a("MQ",27,"F05F05A11F02","MQ221234512345123456789AB13"));s(new a("RE",27,"F05F05A11F02","RE131234512345123456789AB13"));s(new a("PF",27,"F05F05A11F02","PF281234512345123456789AB13"));s(new a("YT",27,"F05F05A11F02","YT021234512345123456789AB13"));s(new a("NC",27,"F05F05A11F02","NC551234512345123456789AB13"));s(new a("BL",27,"F05F05A11F02","BL391234512345123456789AB13"));s(new a("MF",27,"F05F05A11F02","MF551234512345123456789AB13"));s(new a("PM",27,"F05F05A11F02","PM071234512345123456789AB13"));s(new a("WF",27,"F05F05A11F02","WF621234512345123456789AB13"));var f=class i extends p{static create(e,n){if(!e||typeof e!="object")throw new Error("ExOptional.create: type must be a valid field");if(!("_def"in e)||!e._def||typeof e._def!="object")throw new Error("ExOptional.create: type is not a valid ExpressCSV field");if(!("typeName"in e._def)||typeof e._def.typeName!="string")throw new Error("ExOptional.create: type is missing a typeName");if(n!==void 0&&typeof n!="object")throw new Error("ExOptional.create: options must be an object");if((n==null?void 0:n.when)!==void 0&&typeof n.when!="function")throw new Error("ExOptional.create: options.when must be a function");return new i({typeName:"ExOptional",innerType:e,when:n==null?void 0:n.when,checks:[]})}unwrap(){return this._def.innerType}optional(){return this}default(e){let n=this._def.innerType._def;return n.defaultValue=e,this}};var S=class extends f{};var R=class extends f{output(e){return this._def.innerType.output(e),this._def.outputFormat=e,this}};var k=class extends f{output(e){return this._def.innerType.output(e),this}};var v=class extends f{min(e,n){return this._def.innerType.min(e,n),this}max(e,n){return this._def.innerType.max(e,n),this}integer(e){return this._def.innerType.integer(e),this}multipleOf(e,n){return this._def.innerType.multipleOf(e,n),this}percentage(){return this._def.innerType.percentage(),this}currency(e){return this._def.innerType.currency(e),this}};var F=class extends f{caseSensitive(e=true){return this._def.innerType.caseSensitive(e),this}},M=class extends f{caseSensitive(e=true){return this._def.innerType.caseSensitive(e),this}min(e,n){return this._def.innerType.min(e,n),this}max(e,n){return this._def.innerType.max(e,n),this}};var N=class extends f{uuid(e){return this._def.innerType.uuid(e),this}ip(e){return this._def.innerType.ip(e),this}url(e){return this._def.innerType.url(e),this}email(e){return this._def.innerType.email(e),this}phone(e){return this._def.innerType.phone(e),this}country(e){return this._def.innerType.country(e),this}max(e,n){return this._def.innerType.max(e,n),this}min(e,n){return this._def.innerType.min(e,n),this}length(e,n){return this._def.innerType.length(e,n),this}includes(e,n){return this._def.innerType.includes(e,n),this}startsWith(e,n){return this._def.innerType.startsWith(e,n),this}endsWith(e,n){return this._def.innerType.endsWith(e,n),this}regex(e,n){return this._def.innerType.regex(e,n),this}alphabetical(e){return this._def.innerType.alphabetical(e),this}alphanumerical(e){return this._def.innerType.alphanumerical(e),this}numerical(e){return this._def.innerType.numerical(e),this}iban(e){return this._def.innerType.iban(e),this}bic(e){return this._def.innerType.bic(e),this}gtin(e){return this._def.innerType.gtin(e),this}currencyCode(e){return this._def.innerType.currencyCode(e),this}};var I=class extends f{precision(e,n){return this._def.innerType.precision(e,n),this}};var D=class i extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.create: options.message must be a string");return new i({typeName:"ExString",checks:[],message:e==null?void 0:e.message})}optional(){return new N({typeName:"ExOptional",innerType:this})}uuid(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.uuid: options must be an object");if((e==null?void 0:e.version)!==void 0&&!["v1","v4","v5","all"].includes(e.version))throw new Error("ExString.uuid: options.version must be 'v1', 'v4', 'v5', or 'all'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.uuid: options.message must be a string");let n=(e==null?void 0:e.version)||"all",t=e==null?void 0:e.message;if(this._def.checks.findIndex(l=>{var u;return l.type==="uuid"&&((u=l.params)==null?void 0:u.version)===n})!==-1)return this;let o=this._addCheck("uuid",{version:n},t);return this._def.checks.push(o),this}ip(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.ip: options must be an object");if((e==null?void 0:e.version)!==void 0&&!["v4","v6","all"].includes(e.version))throw new Error("ExString.ip: options.version must be 'v4', 'v6', or 'all'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.ip: options.message must be a string");let n=(e==null?void 0:e.version)||"all",t=e==null?void 0:e.message;if(this._def.checks.findIndex(l=>{var u;return l.type==="ipAddress"&&((u=l.params)==null?void 0:u.version)===n})!==-1)return this;let o=this._addCheck("ipAddress",{version:n},t);return this._def.checks.push(o),this}url(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.url: options must be an object");if((e==null?void 0:e.allowedProtocols)!==void 0&&!Array.isArray(e.allowedProtocols))throw new Error("ExString.url: options.allowedProtocols must be an array");if((e==null?void 0:e.allowedDomains)!==void 0&&!Array.isArray(e.allowedDomains))throw new Error("ExString.url: options.allowedDomains must be an array");if((e==null?void 0:e.allowSubdomains)!==void 0&&typeof e.allowSubdomains!="boolean")throw new Error("ExString.url: options.allowSubdomains must be a boolean");if((e==null?void 0:e.allowPaths)!==void 0&&typeof e.allowPaths!="boolean")throw new Error("ExString.url: options.allowPaths must be a boolean");if((e==null?void 0:e.allowQueryParams)!==void 0&&typeof e.allowQueryParams!="boolean")throw new Error("ExString.url: options.allowQueryParams must be a boolean");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.url: options.message must be a string");let n={allowedProtocols:e==null?void 0:e.allowedProtocols,allowedDomains:e==null?void 0:e.allowedDomains,allowSubdomains:(e==null?void 0:e.allowSubdomains)!==void 0?e.allowSubdomains:true,allowPaths:(e==null?void 0:e.allowPaths)!==void 0?e.allowPaths:true,allowQueryParams:(e==null?void 0:e.allowQueryParams)!==void 0?e.allowQueryParams:true};if(this._def.checks.findIndex(o=>o.type!=="url"||!o.params?false:JSON.stringify(o.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("url",n,e==null?void 0:e.message);return this._def.checks.push(r),this}email(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.email: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.email: options.message must be a string");if(this._findExistingCheck("email").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("email",{},t);return this._def.checks.push(r),this}phone(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.phone: options must be an object");if((e==null?void 0:e.allowedCountries)!==void 0&&!Array.isArray(e.allowedCountries))throw new Error("ExString.phone: options.allowedCountries must be an array");if((e==null?void 0:e.format)!==void 0&&!["international","national","both"].includes(e.format))throw new Error("ExString.phone: options.format must be 'international', 'national', or 'both'");if((e==null?void 0:e.output)!==void 0&&!["e164","formatted","digits"].includes(e.output))throw new Error("ExString.phone: options.output must be 'e164', 'formatted', or 'digits'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.phone: options.message must be a string");let n={allowedCountries:e==null?void 0:e.allowedCountries,format:(e==null?void 0:e.format)||"international",output:(e==null?void 0:e.output)||"e164"};if(this._def.checks.findIndex(o=>o.type!=="phone"||!o.params?false:JSON.stringify(o.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("phone",n,e==null?void 0:e.message);return this._def.checks.push(r),this}country(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.country: options must be an object");if((e==null?void 0:e.output)!==void 0&&!["name","2-letter","3-letter"].includes(e.output))throw new Error("ExString.country: options.output must be 'name', '2-letter', or '3-letter'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.country: options.message must be a string");let n={output:(e==null?void 0:e.output)||"name"};if(this._def.checks.findIndex(o=>{var l;return o.type==="country"&&((l=o.params)==null?void 0:l.output)===n.output})!==-1)return this;let r=this._addCheck("country",n,e==null?void 0:e.message);return this._def.checks.push(r),this}max(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExString.max: maxLength must be a number");if(e<0||!Number.isInteger(e))throw new Error("ExString.max: maxLength must be a non-negative integer");if(n!==void 0&&typeof n!="object")throw new Error("ExString.max: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.max: options.message must be a string");let t=this._findExistingCheck("max");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e>=m)return this}let r=this._findExistingCheck("min");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&r.check.params.value>e)throw new Error("ExString.max: max cannot be less than min");let o=n==null?void 0:n.message,l=this._addCheck("max",{value:e},o);return this._replaceOrAddCheck(l,t.index),this}min(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExString.min: minLength must be a number");if(e<0||!Number.isInteger(e))throw new Error("ExString.min: minLength must be a non-negative integer");if(n!==void 0&&typeof n!="object")throw new Error("ExString.min: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.min: options.message must be a string");let t=this._findExistingCheck("min");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e<=m)return this}let r=this._findExistingCheck("max");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&e>r.check.params.value)throw new Error("ExString.min: min cannot be greater than max");let o=n==null?void 0:n.message,l=this._addCheck("min",{value:e},o);return this._replaceOrAddCheck(l,t.index),this}length(e,n){if(typeof e!="number"||Number.isNaN(e))throw new Error("ExString.length: exactLength must be a number");if(e<0||!Number.isInteger(e))throw new Error("ExString.length: exactLength must be a non-negative integer");if(n!==void 0&&typeof n!="object")throw new Error("ExString.length: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.length: options.message must be a string");let t=this._findExistingCheck("length"),r=n==null?void 0:n.message,o=this._addCheck("length",{value:e},r);return this._replaceOrAddCheck(o,t.index),this}includes(e,n){if(typeof e!="string")throw new Error("ExString.includes: substring must be a string");if(n!==void 0&&typeof n!="object")throw new Error("ExString.includes: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.includes: options.message must be a string");if(this._def.checks.findIndex(l=>{var u;return l.type==="includes"&&((u=l.params)==null?void 0:u.value)===e})!==-1)return this;let r=n==null?void 0:n.message,o=this._addCheck("includes",{value:e},r);return this._def.checks.push(o),this}startsWith(e,n){if(typeof e!="string")throw new Error("ExString.startsWith: prefix must be a string");if(n!==void 0&&typeof n!="object")throw new Error("ExString.startsWith: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.startsWith: options.message must be a string");if(this._def.checks.findIndex(l=>{var u;return l.type==="startsWith"&&((u=l.params)==null?void 0:u.value)===e})!==-1)return this;let r=n==null?void 0:n.message,o=this._addCheck("startsWith",{value:e},r);return this._def.checks.push(o),this}endsWith(e,n){if(typeof e!="string")throw new Error("ExString.endsWith: suffix must be a string");if(n!==void 0&&typeof n!="object")throw new Error("ExString.endsWith: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.endsWith: options.message must be a string");if(this._def.checks.findIndex(l=>{var u;return l.type==="endsWith"&&((u=l.params)==null?void 0:u.value)===e})!==-1)return this;let r=n==null?void 0:n.message,o=this._addCheck("endsWith",{value:e},r);return this._def.checks.push(o),this}regex(e,n){if(!(e instanceof RegExp))throw new Error("ExString.regex: pattern must be a RegExp");if(n!==void 0&&typeof n!="object")throw new Error("ExString.regex: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.regex: options.message must be a string");if(this._def.checks.findIndex(l=>{var c;if(l.type!=="regex"||!((c=l.params)!=null&&c.pattern))return false;let u=l.params.pattern;return u.source===e.source&&u.flags===e.flags})!==-1)return this;let r=n==null?void 0:n.message,o=this._addCheck("regex",{pattern:e},r);return this._def.checks.push(o),this}alphabetical(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.alphabetical: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.alphabetical: options.message must be a string");if(this._findExistingCheck("alphabetical").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("alphabetical",{},t);return this._def.checks.push(r),this}alphanumerical(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.alphanumerical: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.alphanumerical: options.message must be a string");if(this._findExistingCheck("alphanumerical").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("alphanumerical",{},t);return this._def.checks.push(r),this}numerical(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.numerical: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.numerical: options.message must be a string");if(this._findExistingCheck("numerical").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("numerical",{},t);return this._def.checks.push(r),this}iban(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.iban: options must be an object");if((e==null?void 0:e.allowedCountries)!==void 0&&!Array.isArray(e.allowedCountries))throw new Error("ExString.iban: options.allowedCountries must be an array");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.iban: options.message must be a string");let n={allowedCountries:e==null?void 0:e.allowedCountries};if(this._def.checks.findIndex(o=>o.type!=="iban"||!o.params?false:JSON.stringify(o.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("iban",n,e==null?void 0:e.message);return this._def.checks.push(r),this}bic(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.bic: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.bic: options.message must be a string");if(this._findExistingCheck("bic").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("bic",{},t);return this._def.checks.push(r),this}gtin(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.gtin: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.gtin: options.message must be a string");if(this._findExistingCheck("gtin").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("gtin",{},t);return this._def.checks.push(r),this}currencyCode(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.currencyCode: options must be an object");if((e==null?void 0:e.allowedCurrencies)!==void 0&&!Array.isArray(e.allowedCurrencies))throw new Error("ExString.currencyCode: options.allowedCurrencies must be an array");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.currencyCode: options.message must be a string");let n={allowedCurrencies:e==null?void 0:e.allowedCurrencies};if(this._def.checks.findIndex(o=>o.type!=="currencyCode"||!o.params?false:JSON.stringify(o.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("currencyCode",n,e==null?void 0:e.message);return this._def.checks.push(r),this}};new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z"));var Y=class extends p{min(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExNumber.min: value must be a number");if(n!==void 0&&typeof n!="object")throw new Error("ExNumber.min: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExNumber.min: options.message must be a string");let t=this._findExistingCheck("min");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e<=m)return this}let r=this._findExistingCheck("max");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&e>r.check.params.value)throw new Error("ExNumber.min: min cannot be greater than max");let o=n==null?void 0:n.message,l=this._addCheck("min",{value:e},o);return this._replaceOrAddCheck(l,t.index),this}max(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExNumber.max: value must be a number");if(n!==void 0&&typeof n!="object")throw new Error("ExNumber.max: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExNumber.max: options.message must be a string");let t=this._findExistingCheck("max");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e>=m)return this}let r=this._findExistingCheck("min");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&r.check.params.value>e)throw new Error("ExNumber.max: max cannot be less than min");let o=n==null?void 0:n.message,l=this._addCheck("max",{value:e},o);return this._replaceOrAddCheck(l,t.index),this}integer(e){if(e!==void 0&&typeof e!="object")throw new Error("ExNumber.integer: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExNumber.integer: options.message must be a string");let n=this._findExistingCheck("integer"),t=e==null?void 0:e.message,r=this._addCheck("integer",{},t);return this._replaceOrAddCheck(r,n.index),this}multipleOf(e,n){var l;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExNumber.multipleOf: value must be a number");if(e===0)throw new Error("ExNumber.multipleOf: value cannot be zero");if(n!==void 0&&typeof n!="object")throw new Error("ExNumber.multipleOf: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExNumber.multipleOf: options.message must be a string");let t=this._findExistingCheck("multipleOf");if(t.found&&((l=t.check)!=null&&l.params)){let u=t.check.params.value;if(typeof u=="number"&&e===u)return this}let r=n==null?void 0:n.message,o=this._addCheck("multipleOf",{value:e},r);return this._def.checks.push(o),this}},P=class i extends Y{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExNumber.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExNumber.create: options.message must be a string");return new i({typeName:"ExNumber",checks:[],message:e==null?void 0:e.message})}optional(){return new v({typeName:"ExOptional",innerType:this})}percentage(){if(this._def.currencyCode!==void 0)throw new Error("ExNumber.percentage: Cannot combine percentage with currency");return this._def.isPercentage=true,this}currency(e){if(typeof e!="string")throw new Error("ExNumber.currency: currencyCode must be a string");if(this._def.isPercentage)throw new Error("ExNumber.currency: Cannot combine currency with percentage");return this._def.currencyCode=e,this}};var A=class i extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExBoolean.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExBoolean.create: options.message must be a string");if((e==null?void 0:e.control)!==void 0&&e.control!=="toggle"&&e.control!=="checkbox"&&e.control!=="dropdown")throw new Error('ExBoolean.create: options.control must be "toggle", "checkbox", or "dropdown"');return new i({typeName:"ExBoolean",control:e==null?void 0:e.control,message:e==null?void 0:e.message,checks:[]})}optional(){return new S({typeName:"ExOptional",innerType:this})}};var O=class i extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExDate.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExDate.create: options.message must be a string");let n=new i({typeName:"ExDate"});return e!=null&&e.message&&(n._def.message=e.message),n}optional(){return new R({typeName:"ExOptional",innerType:this})}output(e){if(typeof e!="string")throw new Error("ExDate.output: template must be a string");if(e.trim()==="")throw new Error("ExDate.output: template cannot be empty");return this._def.outputFormat=e,this}};var B=class i extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExTime.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExTime.create: options.message must be a string");return new i({typeName:"ExTime",checks:[],message:e==null?void 0:e.message})}optional(){return new I({typeName:"ExOptional",innerType:this})}precision(e,n){if(typeof e!="number"||Number.isNaN(e))throw new Error("ExTime.precision: precision must be a number");if(e<0||e>9||!Number.isInteger(e))throw new Error("ExTime.precision: precision must be an integer between 0 and 9");if(n!==void 0&&typeof n!="object")throw new Error("ExTime.precision: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExTime.precision: options.message must be a string");return this._def.precision=e,n!=null&&n.message&&(this._def.message=n.message),this}};var V=class i extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExDatetime.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExDatetime.create: options.message must be a string");let n=new i({typeName:"ExDatetime",checks:[],message:e==null?void 0:e.message});if(e!=null&&e.message){let t=n._getDatetimeCheck();t&&(t.message=e.message);}return n}optional(){return new k({typeName:"ExOptional",innerType:this})}output(e){if(typeof e!="string")throw new Error("ExDatetime.output: template must be a string");if(e.trim()==="")throw new Error("ExDatetime.output: template cannot be empty");return this._def.outputFormat=e,this}allowOffset(e){if(e!==void 0&&typeof e!="object")throw new Error("ExDatetime.allowOffset: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExDatetime.allowOffset: options.message must be a string");let n=e==null?void 0:e.message,t=this._getDatetimeCheck();return t!=null&&t.params&&(t.params.offset=true,n&&(t.message=n)),this}_getDatetimeCheck(){let e=this._def.checks.find(n=>n.type==="datetime");if(!e){let n=this._addCheck("datetime",{allowOffset:false});return this._def.checks.push(n),n}return e}};var _=class i extends p{static create(e,n={}){if(!Array.isArray(e))throw new Error("ExSelect.create: options must be an array");if(e.length===0)throw new Error("ExSelect.create: options array must not be empty");for(let r=0;r<e.length;r++){let o=e[r];if(!o||typeof o!="object")throw new Error(`ExSelect.create: option at index ${r} must be an object`);if(!("label"in o)||typeof o.label!="string")throw new Error(`ExSelect.create: option at index ${r} must have a string label`);if(!("value"in o))throw new Error(`ExSelect.create: option at index ${r} must have a value`);if(typeof o.value!="string"&&typeof o.value!="number")throw new Error(`ExSelect.create: option at index ${r} must have a string or number value`)}if(n!==void 0&&typeof n!="object")throw new Error("ExSelect.create: config must be an object");if(n.enforceCaseSensitiveMatch!==void 0&&typeof n.enforceCaseSensitiveMatch!="boolean")throw new Error("ExSelect.create: config.enforceCaseSensitiveMatch must be a boolean");if(n.allowCustom!==void 0&&typeof n.allowCustom!="boolean")throw new Error("ExSelect.create: config.allowCustom must be a boolean");if(n.message!==void 0&&typeof n.message!="string")throw new Error("ExSelect.create: config.message must be a string");return new i({typeName:"ExSelect",options:[...e],config:{enforceCaseSensitiveMatch:!!n.enforceCaseSensitiveMatch,allowCustom:!!n.allowCustom},checks:[],message:n.message})}optional(){return new F({typeName:"ExOptional",innerType:this})}caseSensitive(e=true){if(typeof e!="boolean")throw new Error("ExSelect.caseSensitive: enabled must be a boolean");return this._def.config.enforceCaseSensitiveMatch=e,this}};var U=class i extends p{static create(e,n={}){if(!Array.isArray(e))throw new Error("ExMultiselect.create: options must be an array");if(e.length===0)throw new Error("ExMultiselect.create: options array must not be empty");for(let r=0;r<e.length;r++){let o=e[r];if(!o||typeof o!="object")throw new Error(`ExMultiselect.create: option at index ${r} must be an object`);if(!("label"in o)||typeof o.label!="string")throw new Error(`ExMultiselect.create: option at index ${r} must have a string label`);if(!("value"in o))throw new Error(`ExMultiselect.create: option at index ${r} must have a value`);if(typeof o.value!="string"&&typeof o.value!="number")throw new Error(`ExMultiselect.create: option at index ${r} must have a string or number value`)}if(n!==void 0&&typeof n!="object")throw new Error("ExMultiselect.create: config must be an object");if(n.enforceCaseSensitiveMatch!==void 0&&typeof n.enforceCaseSensitiveMatch!="boolean")throw new Error("ExMultiselect.create: config.enforceCaseSensitiveMatch must be a boolean");if(n.message!==void 0&&typeof n.message!="string")throw new Error("ExMultiselect.create: config.message must be a string");return new i({typeName:"ExMultiselect",options:[...e],config:{enforceCaseSensitiveMatch:!!n.enforceCaseSensitiveMatch,allowCustom:false},checks:[],message:n.message})}optional(){return new M({typeName:"ExOptional",innerType:this})}caseSensitive(e=true){if(typeof e!="boolean")throw new Error("ExMultiselect.caseSensitive: enabled must be a boolean");return this._def.config.enforceCaseSensitiveMatch=e,this}min(e,n){var l,u;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExMultiselect.min: min must be a number");if(e<1||!Number.isInteger(e))throw new Error("ExMultiselect.min: min must be a positive integer (at least 1)");let t=this._findExistingCheck("min");if(t.found&&((l=t.check)!=null&&l.params)){let c=t.check.params.value;if(typeof c=="number"&&e<=c)return this}let r=this._findExistingCheck("max");if(r.found&&((u=r.check)!=null&&u.params)&&typeof r.check.params.value=="number"&&e>r.check.params.value)throw new Error("ExMultiselect.min: min cannot be greater than max");let o=this._addCheck("min",{value:e},n);return this._replaceOrAddCheck(o,t.index),this}max(e,n){var l,u;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExMultiselect.max: max must be a number");if(e<1||!Number.isInteger(e))throw new Error("ExMultiselect.max: max must be a positive integer");let t=this._findExistingCheck("max");if(t.found&&((l=t.check)!=null&&l.params)){let c=t.check.params.value;if(typeof c=="number"&&e>=c)return this}let r=this._findExistingCheck("min");if(r.found&&((u=r.check)!=null&&u.params)&&typeof r.check.params.value=="number"&&r.check.params.value>e)throw new Error("ExMultiselect.max: max cannot be less than min");let o=this._addCheck("max",{value:e},n);return this._replaceOrAddCheck(o,t.index),this}};function ln(){return `uc_${Math.random().toString(36).substring(2,15)}${Math.random().toString(36).substring(2,15)}`}function cn(i){for(let[e,n]of Object.entries(i)){if(!n||typeof n!="object")throw new Error(`ExRow.create: field "${e}" must be a valid field type`);if(!("_def"in n)||!n._def||typeof n._def!="object")throw new Error(`ExRow.create: field "${e}" is not a valid ExpressCSV field`);if(!("typeName"in n._def)||typeof n._def.typeName!="string")throw new Error(`ExRow.create: field "${e}" is missing a typeName`)}}var T=class i extends C{static create(e){if(!e||typeof e!="object")throw new Error("ExRow.create: shape must be a non-null object");return cn(e),new i({typeName:"ExRow",shape:e})}optionalColumns(e,n){if(!Array.isArray(e))throw new Error("ExRow.optionalColumns: columns must be an array");for(let u of e)if(!(u in this._def.shape))throw new Error(`ExRow.optionalColumns: column "${String(u)}" does not exist in the row shape`);if(n!==void 0&&typeof n!="object")throw new Error("ExRow.optionalColumns: options must be an object");if((n==null?void 0:n.when)!==void 0&&typeof n.when!="function")throw new Error("ExRow.optionalColumns: options.when must be a function");let t=e,r=n==null?void 0:n.when;if(!this._def.optionalColumnConfig)return this._def.optionalColumnConfig={columns:t,when:r,whenMap:r?Object.fromEntries(t.map(u=>[u,r])):void 0},this;let l=[...this._def.optionalColumnConfig.columns];for(let u of t)l.includes(u)||l.push(u);if(this._def.optionalColumnConfig.columns=l,r){this._def.optionalColumnConfig.whenMap||(this._def.optionalColumnConfig.whenMap={});for(let u of t)this._def.optionalColumnConfig.whenMap[u]=r;}return this}unique(e,n){if(e===void 0)throw new Error("ExRow.unique: columns must be provided");let t=Array.isArray(e)?e:[e];for(let m of t)if(!(m in this._def.shape))throw new Error(`ExRow.unique: column "${String(m)}" does not exist in the row shape`);if(n!==void 0&&typeof n!="object")throw new Error("ExRow.unique: options must be an object");if((n==null?void 0:n.key)!==void 0&&typeof n.key!="function")throw new Error("ExRow.unique: options.key must be a function");let r=n==null?void 0:n.key;this._def.uniqueColumnConfig||(this._def.uniqueColumnConfig={uniqueConstraints:[]});let o=r?m=>{let L=Object.fromEntries(t.map(z=>[z,m[z]]));return r(L)}:void 0,l=(m,L)=>{if(m.length!==L.length)return false;let z=[...m].sort(),me=[...L].sort();return z.every((pe,fe)=>pe===me[fe])},u=this._def.uniqueColumnConfig.uniqueConstraints.findIndex(m=>l(m.columns,t)),c={id:ln(),columns:t,key:o};return u!==-1?this._def.uniqueColumnConfig.uniqueConstraints[u]=c:this._def.uniqueColumnConfig.uniqueConstraints.push(c),this}meta(e){if(e===void 0||typeof e!="object")throw new Error("ExRow.meta: metadata must be an object");if(e.description!==void 0&&typeof e.description!="string")throw new Error("ExRow.meta: metadata.description must be a string");return this._def.meta=g(g({},this._def.meta),e),this}minRows(e){if(typeof e!="number")throw new Error("ExRow.minRows: count must be a number");if(!Number.isInteger(e))throw new Error("ExRow.minRows: count must be an integer");if(e<0)throw new Error("ExRow.minRows: count must be non-negative");return this._def.rowCountConfig||(this._def.rowCountConfig={}),this._def.rowCountConfig.minRows=e,this}maxRows(e){if(typeof e!="number")throw new Error("ExRow.maxRows: count must be a number");if(!Number.isInteger(e))throw new Error("ExRow.maxRows: count must be an integer");if(e<=0)throw new Error("ExRow.maxRows: count must be positive");return this._def.rowCountConfig||(this._def.rowCountConfig={}),this._def.rowCountConfig.maxRows=e,this}};var d={string:D.create,number:P.create,boolean:A.create,date:O.create,time:B.create,datetime:V.create,row:T.create,select:_.create,multiselect:U.create,infer:i=>{}};var Qi=d.row({name:d.string().label("Name").refine(i=>{let e=i.trim();return e===i?{valid:true}:{valid:false,message:"Remove leading or trailing spaces",suggestedFix:{id:"trim-name",value:e,description:"Trim extra spaces"}}}),email:d.string().email().label("Email").refine(i=>{let e=i.toLowerCase();return e===i?{valid:true}:{valid:false,message:"Use lowercase email addresses",suggestedFix:{id:"lowercase-email",value:e,description:"Convert to lowercase"}}}),deskExtension:d.number().integer().label("Desk Extension"),isManager:d.boolean().label("Manager"),hireDate:d.date().label("Hire Date").refine(i=>i.startsWith("19")?{valid:true}:{valid:false,message:"Use a four-digit year in the 1900s for this demo",suggestedFix:{id:"normalize-hire-date",value:`19${i.slice(2)}`,description:"Normalize the year"}}),dailyCoffeeTime:d.time().label("Daily Coffee Time").optional(),lastDundieAwardAt:d.datetime().label("Last Dundie Award At").optional(),department:d.select([{label:"Management",value:"management"},{label:"Sales",value:"sales"},{label:"Reception",value:"reception"},{label:"Accounting",value:"accounting"},{label:"Support",value:"support"}]).label("Department"),notableTraits:d.multiselect([{label:"Worlds Best Boss Mug",value:"worlds-best-boss-mug"},{label:"Bears Beets Battlestar",value:"bears-beets-battlestar"},{label:"Art School",value:"art-school"},{label:"Pretzel Day",value:"pretzel-day"},{label:"Crossword Puzzles",value:"crossword-puzzles"},{label:"Volunteer Sheriff Deputy",value:"volunteer-sheriff-deputy"}]).label("Notable Traits").optional()});exports.heroDemoSchema=Qi;exports.x=d;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var ge=Object.defineProperty;var Y=Object.getOwnPropertySymbols;var he=Object.prototype.hasOwnProperty,xe=Object.prototype.propertyIsEnumerable;var q=(o,e,n)=>e in o?ge(o,e,{enumerable:true,configurable:true,writable:true,value:n}):o[e]=n,d=(o,e)=>{for(var n in e||(e={}))he.call(e,n)&&q(o,n,e[n]);if(Y)for(var n of Y(e))xe.call(e,n)&&q(o,n,e[n]);return o};var C=class{constructor(e){this._def=e;}_addCheck(e,n,t){return {type:e,params:n,message:t}}},p=class extends C{columnNameAliases(e){return this._def.columnNameAliases=e,this}description(e){return this._def.description=e,this}label(e){return this._def.label=e,this}example(e){return this._def.example=e,this}refine(e,n){let t=this._addCheck("refine",{validator:e,params:n});return this._def.checks||(this._def.checks=[]),this._def.checks.push(t),this}refineBatch(e,n){let t=this._addCheck("refineBatch",{validator:e,params:n});return this._def.checks||(this._def.checks=[]),this._def.checks.push(t),this}_findExistingCheck(e){if(!this._def.checks)return {check:void 0,index:-1,found:false};let n=this._def.checks.findIndex(i=>i.type===e),t=n!==-1;return {check:t?this._def.checks[n]:void 0,index:n,found:t}}_replaceOrAddCheck(e,n){this._def.checks||(this._def.checks=[]),n!==-1?this._def.checks[n]=e:this._def.checks.push(e);}};var H=[{name:"Afghanistan",alpha2:"AF",alpha3:"AFG",aliases:["Af\u0121\u0101nist\u0101n","\u0627\u0641\u063A\u0627\u0646\u0633\u062A\u0627\u0646"]},{name:"\xC5land Islands",alpha2:"AX",alpha3:"ALA",aliases:["Ahvenanmaa","\xC5land"]},{name:"Albania",alpha2:"AL",alpha3:"ALB",aliases:["Shqip\xEBri","Shqip\xEBria"]},{name:"Algeria",alpha2:"DZ",alpha3:"DZA",aliases:["\u0627\u0644\u062C\u0632\u0627\u0626\u0631","Alg\xE9rie"]},{name:"American Samoa",alpha2:"AS",alpha3:"ASM",aliases:["S\u0101moa Amelika","Amelika S\u0101moa"]},{name:"Andorra",alpha2:"AD",alpha3:"AND",aliases:["Principat d'Andorra"]},{name:"Angola",alpha2:"AO",alpha3:"AGO",aliases:["Rep\xFAblica de Angola"]},{name:"Anguilla",alpha2:"AI",alpha3:"AIA",aliases:[]},{name:"Antigua and Barbuda",alpha2:"AG",alpha3:"ATG",aliases:["Antigua","Barbuda"]},{name:"Argentina",alpha2:"AR",alpha3:"ARG",aliases:["Rep\xFAblica Argentina","Argentine Republic"]},{name:"Armenia",alpha2:"AM",alpha3:"ARM",aliases:["\u0540\u0561\u0575\u0561\u057D\u057F\u0561\u0576","Hayastan","Republic of Armenia"]},{name:"Aruba",alpha2:"AW",alpha3:"ABW",aliases:[]},{name:"Australia",alpha2:"AU",alpha3:"AUS",aliases:["Commonwealth of Australia","Oz"]},{name:"Austria",alpha2:"AT",alpha3:"AUT",aliases:["\xD6sterreich"]},{name:"Azerbaijan",alpha2:"AZ",alpha3:"AZE",aliases:["Az\u0259rbaycan","Republic of Azerbaijan"]},{name:"Bahamas",alpha2:"BS",alpha3:"BHS",aliases:["The Bahamas","Commonwealth of The Bahamas"]},{name:"Bahrain",alpha2:"BH",alpha3:"BHR",aliases:["\u0627\u0644\u0628\u062D\u0631\u064A\u0646","Kingdom of Bahrain"]},{name:"Bangladesh",alpha2:"BD",alpha3:"BGD",aliases:["\u09AC\u09BE\u0982\u09B2\u09BE\u09A6\u09C7\u09B6","People's Republic of Bangladesh"]},{name:"Barbados",alpha2:"BB",alpha3:"BRB",aliases:[]},{name:"Belarus",alpha2:"BY",alpha3:"BLR",aliases:["\u0411\u0435\u043B\u0430\u0440\u0443\u0441\u044C","Republic of Belarus","Belorussia"]},{name:"Belgium",alpha2:"BE",alpha3:"BEL",aliases:["Belgi\xEB","Belgique","Belgien"]},{name:"Belize",alpha2:"BZ",alpha3:"BLZ",aliases:[]},{name:"Benin",alpha2:"BJ",alpha3:"BEN",aliases:["Republic of Benin","R\xE9publique du B\xE9nin"]},{name:"Bermuda",alpha2:"BM",alpha3:"BMU",aliases:[]},{name:"Bhutan",alpha2:"BT",alpha3:"BTN",aliases:["\u0F60\u0F56\u0FB2\u0F74\u0F42\u0F0B\u0F61\u0F74\u0F63\u0F0B","Druk Yul","Kingdom of Bhutan"]},{name:"Bolivia",alpha2:"BO",alpha3:"BOL",aliases:["Bolivia","Estado Plurinacional de Bolivia"]},{name:"Bonaire, Sint Eustatius and Saba",alpha2:"BQ",alpha3:"BES",aliases:["Caribbean Netherlands"]},{name:"Bosnia and Herzegovina",alpha2:"BA",alpha3:"BIH",aliases:["Bosna i Hercegovina"]},{name:"Botswana",alpha2:"BW",alpha3:"BWA",aliases:["Republic of Botswana"]},{name:"Brazil",alpha2:"BR",alpha3:"BRA",aliases:["Brasil","Federative Republic of Brazil"]},{name:"British Indian Ocean Territory",alpha2:"IO",alpha3:"IOT",aliases:[]},{name:"Brunei Darussalam",alpha2:"BN",alpha3:"BRN",aliases:["Brunei"]},{name:"Bulgaria",alpha2:"BG",alpha3:"BGR",aliases:["\u0411\u044A\u043B\u0433\u0430\u0440\u0438\u044F","Republic of Bulgaria"]},{name:"Burkina Faso",alpha2:"BF",alpha3:"BFA",aliases:["Burkina"]},{name:"Burundi",alpha2:"BI",alpha3:"BDI",aliases:["Republic of Burundi","Republika y'Uburundi"]},{name:"Cabo Verde",alpha2:"CV",alpha3:"CPV",aliases:["Cape Verde"]},{name:"Cambodia",alpha2:"KH",alpha3:"KHM",aliases:["\u1780\u1798\u17D2\u1796\u17BB\u1787\u17B6","Kingdom of Cambodia"]},{name:"Cameroon",alpha2:"CM",alpha3:"CMR",aliases:["Cameroun","Republic of Cameroon"]},{name:"Canada",alpha2:"CA",alpha3:"CAN",aliases:["Kanada","Canada (French)"]},{name:"Cayman Islands",alpha2:"KY",alpha3:"CYM",aliases:[]},{name:"Central African Republic",alpha2:"CF",alpha3:"CAF",aliases:["R\xE9publique centrafricaine"]},{name:"Chad",alpha2:"TD",alpha3:"TCD",aliases:["Tchad","\u062C\u0645\u0647\u0648\u0631\u064A\u0629 \u062A\u0634\u0627\u062F"]},{name:"Chile",alpha2:"CL",alpha3:"CHL",aliases:["Rep\xFAblica de Chile"]},{name:"China",alpha2:"CN",alpha3:"CHN",aliases:["\u4E2D\u534E\u4EBA\u6C11\u5171\u548C\u56FD","\u4E2D\u56FD","Zh\u014Dnggu\xF3","People's Republic of China","PRC"]},{name:"Christmas Island",alpha2:"CX",alpha3:"CXR",aliases:[]},{name:"Cocos (Keeling) Islands",alpha2:"CC",alpha3:"CCK",aliases:[]},{name:"Colombia",alpha2:"CO",alpha3:"COL",aliases:["Rep\xFAblica de Colombia"]},{name:"Comoros",alpha2:"KM",alpha3:"COM",aliases:["\u062C\u0632\u0631 \u0627\u0644\u0642\u0645\u0631","Union of the Comoros"]},{name:"Congo",alpha2:"CG",alpha3:"COG",aliases:["Republic of the Congo","Congo-Brazzaville"]},{name:"Democratic Republic of the Congo",alpha2:"CD",alpha3:"COD",aliases:["Democratic Republic of the Congo","Congo-Kinshasa","DR Congo","DRC"]},{name:"Cook Islands",alpha2:"CK",alpha3:"COK",aliases:[]},{name:"Costa Rica",alpha2:"CR",alpha3:"CRI",aliases:["Rep\xFAblica de Costa Rica"]},{name:"C\xF4te d'Ivoire",alpha2:"CI",alpha3:"CIV",aliases:["Ivory Coast","R\xE9publique de C\xF4te d'Ivoire"]},{name:"Croatia",alpha2:"HR",alpha3:"HRV",aliases:["Hrvatska","Republic of Croatia"]},{name:"Cuba",alpha2:"CU",alpha3:"CUB",aliases:["Rep\xFAblica de Cuba"]},{name:"Cura\xE7ao",alpha2:"CW",alpha3:"CUW",aliases:[]},{name:"Cyprus",alpha2:"CY",alpha3:"CYP",aliases:["\u039A\u03CD\u03C0\u03C1\u03BF\u03C2","K\u0131br\u0131s"]},{name:"Czechia",alpha2:"CZ",alpha3:"CZE",aliases:["Czech Republic","\u010Cesko"]},{name:"Denmark",alpha2:"DK",alpha3:"DNK",aliases:["Danmark"]},{name:"Djibouti",alpha2:"DJ",alpha3:"DJI",aliases:["\u062C\u064A\u0628\u0648\u062A\u064A","Djibouti City-State"]},{name:"Dominica",alpha2:"DM",alpha3:"DMA",aliases:[]},{name:"Dominican Republic",alpha2:"DO",alpha3:"DOM",aliases:["Rep\xFAblica Dominicana"]},{name:"Ecuador",alpha2:"EC",alpha3:"ECU",aliases:["Rep\xFAblica del Ecuador"]},{name:"Egypt",alpha2:"EG",alpha3:"EGY",aliases:["\u0645\u0635\u0631","Arab Republic of Egypt"]},{name:"El Salvador",alpha2:"SV",alpha3:"SLV",aliases:["Rep\xFAblica de El Salvador"]},{name:"Equatorial Guinea",alpha2:"GQ",alpha3:"GNQ",aliases:["Rep\xFAblica de Guinea Ecuatorial","R\xE9publique de Guin\xE9e \xE9quatoriale","Rep\xFAblica da Guin\xE9 Equatorial"]},{name:"Eritrea",alpha2:"ER",alpha3:"ERI",aliases:["State of Eritrea","\u12A4\u122D\u1275\u122B","\u0625\u0631\u064A\u062A\u0631\u064A\u0627"]},{name:"Estonia",alpha2:"EE",alpha3:"EST",aliases:["Eesti"]},{name:"Eswatini",alpha2:"SZ",alpha3:"SWZ",aliases:["Swaziland","Kingdom of Eswatini"]},{name:"Ethiopia",alpha2:"ET",alpha3:"ETH",aliases:["\u12A2\u1275\u12EE\u1335\u12EB","Federal Democratic Republic of Ethiopia"]},{name:"Falkland Islands (Malvinas)",alpha2:"FK",alpha3:"FLK",aliases:["Islas Malvinas"]},{name:"Faroe Islands",alpha2:"FO",alpha3:"FRO",aliases:["F\xF8royar"]},{name:"Fiji",alpha2:"FJ",alpha3:"FJI",aliases:["Viti","Fiji Islands"]},{name:"Finland",alpha2:"FI",alpha3:"FIN",aliases:["Suomi"]},{name:"France",alpha2:"FR",alpha3:"FRA",aliases:["R\xE9publique fran\xE7aise"]},{name:"French Guiana",alpha2:"GF",alpha3:"GUF",aliases:["Guyane"]},{name:"French Polynesia",alpha2:"PF",alpha3:"PYF",aliases:["Polyn\xE9sie fran\xE7aise"]},{name:"Gabon",alpha2:"GA",alpha3:"GAB",aliases:["R\xE9publique gabonaise"]},{name:"Gambia",alpha2:"GM",alpha3:"GMB",aliases:["Republic of The Gambia"]},{name:"Georgia",alpha2:"GE",alpha3:"GEO",aliases:["\u10E1\u10D0\u10E5\u10D0\u10E0\u10D7\u10D5\u10D4\u10DA\u10DD","Sakartvelo"]},{name:"Germany",alpha2:"DE",alpha3:"DEU",aliases:["Deutschland","Federal Republic of Germany"]},{name:"Ghana",alpha2:"GH",alpha3:"GHA",aliases:["Republic of Ghana"]},{name:"Gibraltar",alpha2:"GI",alpha3:"GIB",aliases:[""]},{name:"Greece",alpha2:"GR",alpha3:"GRC",aliases:["\u0395\u03BB\u03BB\u03AC\u03B4\u03B1","Hellas","Hellenic Republic"]},{name:"Greenland",alpha2:"GL",alpha3:"GRL",aliases:["Kalaallit Nunaat"]},{name:"Grenada",alpha2:"GD",alpha3:"GRD",aliases:[]},{name:"Guadeloupe",alpha2:"GP",alpha3:"GLP",aliases:[]},{name:"Guam",alpha2:"GU",alpha3:"GUM",aliases:["Gu\xE5h\xE5n"]},{name:"Guatemala",alpha2:"GT",alpha3:"GTM",aliases:["Rep\xFAblica de Guatemala"]},{name:"Guernsey",alpha2:"GG",alpha3:"GGY",aliases:[]},{name:"Guinea",alpha2:"GN",alpha3:"GIN",aliases:["R\xE9publique de Guin\xE9e"]},{name:"Guinea-Bissau",alpha2:"GW",alpha3:"GNB",aliases:["Rep\xFAblica da Guin\xE9-Bissau"]},{name:"Guyana",alpha2:"GY",alpha3:"GUY",aliases:["Co-operative Republic of Guyana"]},{name:"Haiti",alpha2:"HT",alpha3:"HTI",aliases:["R\xE9publique d'Ha\xEFti","Repiblik d Ayiti"]},{name:"Holy See",alpha2:"VA",alpha3:"VAT",aliases:["Vatican City","Vatican City State","Santa Sede"]},{name:"Honduras",alpha2:"HN",alpha3:"HND",aliases:["Rep\xFAblica de Honduras"]},{name:"Hong Kong",alpha2:"HK",alpha3:"HKG",aliases:["\u9999\u6E2F","Xianggang","Hong Kong SAR"]},{name:"Hungary",alpha2:"HU",alpha3:"HUN",aliases:["Magyarorsz\xE1g"]},{name:"Iceland",alpha2:"IS",alpha3:"ISL",aliases:["\xCDsland"]},{name:"India",alpha2:"IN",alpha3:"IND",aliases:["\u092D\u093E\u0930\u0924","Republic of India","Bharat"]},{name:"Indonesia",alpha2:"ID",alpha3:"IDN",aliases:["Republik Indonesia"]},{name:"Iran, Islamic Republic of",alpha2:"IR",alpha3:"IRN",aliases:["\u0627\u06CC\u0631\u0627\u0646","Islamic Republic of Iran"]},{name:"Iraq",alpha2:"IQ",alpha3:"IRQ",aliases:["\u0627\u0644\u0639\u0631\u0627\u0642","Republic of Iraq"]},{name:"Ireland",alpha2:"IE",alpha3:"IRL",aliases:["\xC9ire","Republic of Ireland"]},{name:"Isle of Man",alpha2:"IM",alpha3:"IMN",aliases:["Mann","Ellan Vannin"]},{name:"Israel",alpha2:"IL",alpha3:"ISR",aliases:["\u05D9\u05B4\u05E9\u05B0\u05C2\u05E8\u05B8\u05D0\u05B5\u05DC","State of Israel","Med\u012Bnat Yisr\u0101'el"]},{name:"Italy",alpha2:"IT",alpha3:"ITA",aliases:["Italia","Repubblica Italiana"]},{name:"Jamaica",alpha2:"JM",alpha3:"JAM",aliases:[]},{name:"Japan",alpha2:"JP",alpha3:"JPN",aliases:["\u65E5\u672C","Nihon","Nippon"]},{name:"Jersey",alpha2:"JE",alpha3:"JEY",aliases:[]},{name:"Jordan",alpha2:"JO",alpha3:"JOR",aliases:["\u0627\u0644\u0623\u0631\u062F\u0646","Hashemite Kingdom of Jordan"]},{name:"Kazakhstan",alpha2:"KZ",alpha3:"KAZ",aliases:["\u049A\u0430\u0437\u0430\u049B\u0441\u0442\u0430\u043D","Republic of Kazakhstan"]},{name:"Kenya",alpha2:"KE",alpha3:"KEN",aliases:["Republic of Kenya"]},{name:"Kiribati",alpha2:"KI",alpha3:"KIR",aliases:[]},{name:"North Korea",alpha2:"KP",alpha3:"PRK",aliases:["North Korea","\uC870\uC120\uBBFC\uC8FC\uC8FC\uC758\uC778\uBBFC\uACF5\uD654\uAD6D","Democratic People's Republic of Korea"]},{name:"South Korea",alpha2:"KR",alpha3:"KOR",aliases:["South Korea","\uB300\uD55C\uBBFC\uAD6D","Republic of Korea"]},{name:"Kosovo",alpha2:"XK",alpha3:"XKS",aliases:["Kosova","\u041A\u043E\u0441\u043E\u0432\u043E","Republic of Kosovo","Republika e Kosov\xEBs"]},{name:"Kuwait",alpha2:"KW",alpha3:"KWT",aliases:["\u0627\u0644\u0643\u0648\u064A\u062A","State of Kuwait"]},{name:"Kyrgyzstan",alpha2:"KG",alpha3:"KGZ",aliases:["\u041A\u044B\u0440\u0433\u044B\u0437\u0441\u0442\u0430\u043D","Kyrgyz Republic"]},{name:"Lao People's Democratic Republic",alpha2:"LA",alpha3:"LAO",aliases:["Laos","\u0EAA\u0E9B\u0E9B\u0EA5\u0EB2\u0EA7"]},{name:"Latvia",alpha2:"LV",alpha3:"LVA",aliases:["Latvija"]},{name:"Lebanon",alpha2:"LB",alpha3:"LBN",aliases:["\u0644\u0628\u0646\u0627\u0646","Republic of Lebanon"]},{name:"Lesotho",alpha2:"LS",alpha3:"LSO",aliases:["Kingdom of Lesotho"]},{name:"Liberia",alpha2:"LR",alpha3:"LBR",aliases:["Republic of Liberia"]},{name:"Libya",alpha2:"LY",alpha3:"LBY",aliases:["Libyan Arab Jamahiriya"]},{name:"Liechtenstein",alpha2:"LI",alpha3:"LIE",aliases:["F\xFCrstentum Liechtenstein"]},{name:"Lithuania",alpha2:"LT",alpha3:"LTU",aliases:["Lietuva","Republic of Lithuania"]},{name:"Luxembourg",alpha2:"LU",alpha3:"LUX",aliases:["L\xEBtzebuerg","Luxembourg","Luxemburg"]},{name:"Macao",alpha2:"MO",alpha3:"MAC",aliases:["\u6FB3\u9580","Macao SAR","\xC0om\xE9n"]},{name:"Madagascar",alpha2:"MG",alpha3:"MDG",aliases:["Repoblikan'i Madagasikara","R\xE9publique de Madagascar"]},{name:"Malawi",alpha2:"MW",alpha3:"MWI",aliases:["Republic of Malawi"]},{name:"Malaysia",alpha2:"MY",alpha3:"MYS",aliases:["Malaysia","\u0645\u0627\u0644\u064A\u0632\u064A\u0627"]},{name:"Maldives",alpha2:"MV",alpha3:"MDV",aliases:["\u078B\u07A8\u0788\u07AC\u0780\u07A8\u0783\u07A7\u0787\u07B0\u0796\u07AD\u078E\u07AC","Dhivehi Raajje","Republic of Maldives"]},{name:"Mali",alpha2:"ML",alpha3:"MLI",aliases:["R\xE9publique du Mali"]},{name:"Malta",alpha2:"MT",alpha3:"MLT",aliases:["Repubblika ta' Malta","Republic of Malta"]},{name:"Marshall Islands",alpha2:"MH",alpha3:"MHL",aliases:["Aolep\u0101n Aor\u014Dkin M\u0327aje\u013C","Republic of the Marshall Islands"]},{name:"Martinique",alpha2:"MQ",alpha3:"MTQ",aliases:[]},{name:"Mauritania",alpha2:"MR",alpha3:"MRT",aliases:["\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627","Islamic Republic of Mauritania"]},{name:"Mauritius",alpha2:"MU",alpha3:"MUS",aliases:["Republic of Mauritius","R\xE9publique de Maurice"]},{name:"Mayotte",alpha2:"YT",alpha3:"MYT",aliases:[]},{name:"Mexico",alpha2:"MX",alpha3:"MEX",aliases:["M\xE9xico","Estados Unidos Mexicanos"]},{name:"Micronesia, Federated States of",alpha2:"FM",alpha3:"FSM",aliases:["Micronesia","Federated States of Micronesia"]},{name:"Moldova",alpha2:"MD",alpha3:"MDA",aliases:["Moldova","Republica Moldova"]},{name:"Monaco",alpha2:"MC",alpha3:"MCO",aliases:["Principaut\xE9 de Monaco"]},{name:"Mongolia",alpha2:"MN",alpha3:"MNG",aliases:["\u041C\u043E\u043D\u0433\u043E\u043B \u0443\u043B\u0441","Mongol Uls"]},{name:"Montenegro",alpha2:"ME",alpha3:"MNE",aliases:["\u0426\u0440\u043D\u0430 \u0413\u043E\u0440\u0430","Crna Gora"]},{name:"Montserrat",alpha2:"MS",alpha3:"MSR",aliases:[]},{name:"Morocco",alpha2:"MA",alpha3:"MAR",aliases:["\u0627\u0644\u0645\u063A\u0631\u0628","Maroc","Kingdom of Morocco"]},{name:"Mozambique",alpha2:"MZ",alpha3:"MOZ",aliases:["Mo\xE7ambique","Republic of Mozambique"]},{name:"Myanmar",alpha2:"MM",alpha3:"MMR",aliases:["Burma","\u1019\u103C\u1014\u103A\u1019\u102C","Myanma"]},{name:"Namibia",alpha2:"NA",alpha3:"NAM",aliases:["Republic of Namibia"]},{name:"Nauru",alpha2:"NR",alpha3:"NRU",aliases:["Naoero","Republic of Nauru"]},{name:"Nepal",alpha2:"NP",alpha3:"NPL",aliases:["\u0928\u0947\u092A\u093E\u0932","Federal Democratic Republic of Nepal"]},{name:"Netherlands",alpha2:"NL",alpha3:"NLD",aliases:["Nederland","Holland","Kingdom of the Netherlands"]},{name:"New Caledonia",alpha2:"NC",alpha3:"NCL",aliases:["Nouvelle-Cal\xE9donie"]},{name:"New Zealand",alpha2:"NZ",alpha3:"NZL",aliases:["Aotearoa"]},{name:"Nicaragua",alpha2:"NI",alpha3:"NIC",aliases:["Rep\xFAblica de Nicaragua"]},{name:"Niger",alpha2:"NE",alpha3:"NER",aliases:["R\xE9publique du Niger"]},{name:"Nigeria",alpha2:"NG",alpha3:"NGA",aliases:["Federal Republic of Nigeria"]},{name:"Niue",alpha2:"NU",alpha3:"NIU",aliases:[]},{name:"Norfolk Island",alpha2:"NF",alpha3:"NFK",aliases:[]},{name:"North Macedonia",alpha2:"MK",alpha3:"MKD",aliases:["Republic of North Macedonia","\u0421\u0435\u0432\u0435\u0440\u043D\u0430 \u041C\u0430\u043A\u0435\u0434\u043E\u043D\u0438\u0458\u0430"]},{name:"Northern Mariana Islands",alpha2:"MP",alpha3:"MNP",aliases:["Saipan","Commonwealth of the Northern Mariana Islands"]},{name:"Norway",alpha2:"NO",alpha3:"NOR",aliases:["Norge","Noreg","Norrige"]},{name:"Oman",alpha2:"OM",alpha3:"OMN",aliases:["\u0639\u0645\u0627\u0646","Sultanate of Oman"]},{name:"Pakistan",alpha2:"PK",alpha3:"PAK",aliases:["\u067E\u0627\u06A9\u0633\u062A\u0627\u0646","Islamic Republic of Pakistan"]},{name:"Palau",alpha2:"PW",alpha3:"PLW",aliases:["Beluu er a Belau","Republic of Palau"]},{name:"Palestine",alpha2:"PS",alpha3:"PSE",aliases:["\u0641\u0644\u0633\u0637\u064A\u0646","State of Palestine"]},{name:"Panama",alpha2:"PA",alpha3:"PAN",aliases:["Rep\xFAblica de Panam\xE1"]},{name:"Papua New Guinea",alpha2:"PG",alpha3:"PNG",aliases:["Papua Niugini"]},{name:"Paraguay",alpha2:"PY",alpha3:"PRY",aliases:["Rep\xFAblica del Paraguay"]},{name:"Peru",alpha2:"PE",alpha3:"PER",aliases:["Rep\xFAblica del Per\xFA"]},{name:"Philippines",alpha2:"PH",alpha3:"PHL",aliases:["Pilipinas","Republika ng Pilipinas"]},{name:"Poland",alpha2:"PL",alpha3:"POL",aliases:["Polska","Republic of Poland"]},{name:"Portugal",alpha2:"PT",alpha3:"PRT",aliases:["Rep\xFAblica Portuguesa"]},{name:"Puerto Rico",alpha2:"PR",alpha3:"PRI",aliases:[]},{name:"Qatar",alpha2:"QA",alpha3:"QAT",aliases:["\u0642\u0637\u0631","State of Qatar"]},{name:"R\xE9union",alpha2:"RE",alpha3:"REU",aliases:[]},{name:"Romania",alpha2:"RO",alpha3:"ROU",aliases:["Rom\xE2nia"]},{name:"Russian Federation",alpha2:"RU",alpha3:"RUS",aliases:["Russia","\u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u0430\u044F \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u044F"]},{name:"Rwanda",alpha2:"RW",alpha3:"RWA",aliases:["Repubulika y'u Rwanda","R\xE9publique du Rwanda"]},{name:"Saint Barth\xE9lemy",alpha2:"BL",alpha3:"BLM",aliases:["Saint-Barth\xE9lemy"]},{name:"Saint Helena, Ascension and Tristan da Cunha",alpha2:"SH",alpha3:"SHN",aliases:[]},{name:"Saint Kitts and Nevis",alpha2:"KN",alpha3:"KNA",aliases:[]},{name:"Saint Lucia",alpha2:"LC",alpha3:"LCA",aliases:[]},{name:"Saint Martin (French part)",alpha2:"MF",alpha3:"MAF",aliases:[]},{name:"Saint Pierre and Miquelon",alpha2:"PM",alpha3:"SPM",aliases:[]},{name:"Saint Vincent and the Grenadines",alpha2:"VC",alpha3:"VCT",aliases:[]},{name:"Samoa",alpha2:"WS",alpha3:"WSM",aliases:["S\u0101moa","Independent State of Samoa"]},{name:"San Marino",alpha2:"SM",alpha3:"SMR",aliases:["Serenissima Repubblica di San Marino"]},{name:"Sao Tome and Principe",alpha2:"ST",alpha3:"STP",aliases:["S\xE3o Tom\xE9 e Pr\xEDncipe"]},{name:"Saudi Arabia",alpha2:"SA",alpha3:"SAU",aliases:["\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0639\u0631\u0628\u064A\u0629 \u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629","Kingdom of Saudi Arabia","KSA"]},{name:"Senegal",alpha2:"SN",alpha3:"SEN",aliases:["R\xE9publique du S\xE9n\xE9gal"]},{name:"Serbia",alpha2:"RS",alpha3:"SRB",aliases:["\u0421\u0440\u0431\u0438\u0458\u0430","Srbija","Republic of Serbia"]},{name:"Seychelles",alpha2:"SC",alpha3:"SYC",aliases:["Repiblik Sesel","R\xE9publique des Seychelles"]},{name:"Sierra Leone",alpha2:"SL",alpha3:"SLE",aliases:["Republic of Sierra Leone"]},{name:"Singapore",alpha2:"SG",alpha3:"SGP",aliases:["\u65B0\u52A0\u5761","Singapura","Republic of Singapore"]},{name:"Sint Maarten (Dutch part)",alpha2:"SX",alpha3:"SXM",aliases:[]},{name:"Slovakia",alpha2:"SK",alpha3:"SVK",aliases:["Slovensko","Slovak Republic"]},{name:"Slovenia",alpha2:"SI",alpha3:"SVN",aliases:["Slovenija"]},{name:"Solomon Islands",alpha2:"SB",alpha3:"SLB",aliases:[]},{name:"Somalia",alpha2:"SO",alpha3:"SOM",aliases:["Soomaaliya","\u062C\u0645\u0647\u0648\u0631\u064A\u0629 \u0627\u0644\u0635\u0648\u0645\u0627\u0644","Federal Republic of Somalia"]},{name:"South Africa",alpha2:"ZA",alpha3:"ZAF",aliases:["RSA","Republic of South Africa"]},{name:"South Sudan",alpha2:"SS",alpha3:"SSD",aliases:["Republic of South Sudan"]},{name:"Spain",alpha2:"ES",alpha3:"ESP",aliases:["Espa\xF1a","Reino de Espa\xF1a"]},{name:"Sri Lanka",alpha2:"LK",alpha3:"LKA",aliases:["\u0DC1\u0DCA\u200D\u0DBB\u0DD3 \u0DBD\u0D82\u0D9A\u0DCF\u0DC0","\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8","Democratic Socialist Republic of Sri Lanka"]},{name:"Sudan",alpha2:"SD",alpha3:"SDN",aliases:["\u0627\u0644\u0633\u0648\u062F\u0627\u0646","Republic of the Sudan"]},{name:"Suriname",alpha2:"SR",alpha3:"SUR",aliases:["Republiek Suriname"]},{name:"Svalbard and Jan Mayen",alpha2:"SJ",alpha3:"SJM",aliases:[]},{name:"Sweden",alpha2:"SE",alpha3:"SWE",aliases:["Sverige","Kingdom of Sweden"]},{name:"Switzerland",alpha2:"CH",alpha3:"CHE",aliases:["Schweiz","Suisse","Svizzera","Svizra","Swiss Confederation"]},{name:"Syrian Arab Republic",alpha2:"SY",alpha3:"SYR",aliases:["\u0633\u0648\u0631\u064A\u0627","Syria"]},{name:"Taiwan, Province of China",alpha2:"TW",alpha3:"TWN",aliases:["\u53F0\u7063","\u81FA\u7063","Taiwan","Republic of China","ROC"]},{name:"Tajikistan",alpha2:"TJ",alpha3:"TJK",aliases:["\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D","Republic of Tajikistan"]},{name:"Tanzania, United Republic of",alpha2:"TZ",alpha3:"TZA",aliases:["Tanzania","Jamhuri ya Muungano wa Tanzania"]},{name:"Thailand",alpha2:"TH",alpha3:"THA",aliases:["\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28\u0E44\u0E17\u0E22","Prathet Thai","Kingdom of Thailand"]},{name:"Timor-Leste",alpha2:"TL",alpha3:"TLS",aliases:["East Timor","Rep\xFAblica Democr\xE1tica de Timor-Leste"]},{name:"Togo",alpha2:"TG",alpha3:"TGO",aliases:["R\xE9publique Togolaise"]},{name:"Tokelau",alpha2:"TK",alpha3:"TKL",aliases:[]},{name:"Tonga",alpha2:"TO",alpha3:"TON",aliases:["Pule\u02BBanga Fakatu\u02BBi \u02BBo Tonga","Kingdom of Tonga"]},{name:"Trinidad and Tobago",alpha2:"TT",alpha3:"TTO",aliases:[]},{name:"Tunisia",alpha2:"TN",alpha3:"TUN",aliases:["\u062A\u0648\u0646\u0633","Republic of Tunisia"]},{name:"T\xFCrkiye",alpha2:"TR",alpha3:"TUR",aliases:["Turkey","T\xFCrkiye Cumhuriyeti","Republic of T\xFCrkiye"]},{name:"Turkmenistan",alpha2:"TM",alpha3:"TKM",aliases:["T\xFCrkmenistan"]},{name:"Turks and Caicos Islands",alpha2:"TC",alpha3:"TCA",aliases:[]},{name:"Tuvalu",alpha2:"TV",alpha3:"TUV",aliases:[]},{name:"Uganda",alpha2:"UG",alpha3:"UGA",aliases:["Republic of Uganda"]},{name:"Ukraine",alpha2:"UA",alpha3:"UKR",aliases:["\u0423\u043A\u0440\u0430\u0457\u043D\u0430"]},{name:"United Arab Emirates",alpha2:"AE",alpha3:"ARE",aliases:["\u0627\u0644\u0625\u0645\u0627\u0631\u0627\u062A \u0627\u0644\u0639\u0631\u0628\u064A\u0629 \u0627\u0644\u0645\u062A\u062D\u062F\u0629","UAE"]},{name:"United Kingdom",alpha2:"GB",alpha3:"GBR",aliases:["United Kingdom","UK","Britain","Great Britain"]},{name:"United States of America",alpha2:"US",alpha3:"USA",aliases:["United States","USA","America","US"]},{name:"Uruguay",alpha2:"UY",alpha3:"URY",aliases:["Rep\xFAblica Oriental del Uruguay"]},{name:"Uzbekistan",alpha2:"UZ",alpha3:"UZB",aliases:["O\u02BBzbekiston","Republic of Uzbekistan"]},{name:"Vanuatu",alpha2:"VU",alpha3:"VUT",aliases:["Ripablik blong Vanuatu"]},{name:"Venezuela",alpha2:"VE",alpha3:"VEN",aliases:["Venezuela","Rep\xFAblica Bolivariana de Venezuela"]},{name:"Vietnam",alpha2:"VN",alpha3:"VNM",aliases:["Vi\u1EC7t Nam","Socialist Republic of Vietnam"]},{name:"Virgin Islands (British)",alpha2:"VG",alpha3:"VGB",aliases:["British Virgin Islands"]},{name:"Virgin Islands (U.S.)",alpha2:"VI",alpha3:"VIR",aliases:["U.S. Virgin Islands"]},{name:"Wallis and Futuna",alpha2:"WF",alpha3:"WLF",aliases:[]},{name:"Western Sahara",alpha2:"EH",alpha3:"ESH",aliases:["\u0627\u0644\u0635\u062D\u0631\u0627\u0621 \u0627\u0644\u063A\u0631\u0628\u064A\u0629","Sahara Occidental"]},{name:"Yemen",alpha2:"YE",alpha3:"YEM",aliases:["\u0627\u0644\u064A\u0645\u0646","Republic of Yemen"]},{name:"Zambia",alpha2:"ZM",alpha3:"ZMB",aliases:["Republic of Zambia"]},{name:"Zimbabwe",alpha2:"ZW",alpha3:"ZWE",aliases:["Republic of Zimbabwe"]}];var G={byName:new Map,byAlpha2:new Map,byAlpha3:new Map,byAlias:new Map};for(let o of H){G.byName.set(o.name.toLowerCase(),o),G.byAlpha2.set(o.alpha2.toLowerCase(),o),G.byAlpha3.set(o.alpha3.toLowerCase(),o);for(let e of o.aliases)G.byAlias.set(e.toLowerCase(),o);}var X=65,Ee=90;var be={A:"0-9A-Za-z",B:"0-9A-Z",C:"A-Za-z",F:"0-9",L:"a-z",U:"A-Z",W:"0-9a-z"};function Q(o){let e=o.toUpperCase();return (e.slice(4)+e.slice(0,4)).split("").map(t=>{let r=t.charCodeAt(0);return r>=X&&r<=Ee?String(r-X+10):t}).join("")}function ee(o){let e=o,n;for(;e.length>2;)n=e.slice(0,9),e=Number.parseInt(n,10)%97+e.slice(n.length);return Number.parseInt(e,10)%97}function we(o){var n;let e=(n=o.match(/(.{3})/g))==null?void 0:n.map(t=>{let r=t.slice(0,1),i=Number.parseInt(t.slice(1),10);return `([${be[r]||""}]{${i}})`});return new RegExp(`^${(e==null?void 0:e.join(""))||""}$`)}var a=class{constructor(e,n,t,r){this.countryCode=e,this.length=n,this.structure=t,this.example=r,this._cachedRegex=we(this.structure);}_regex(){return this._cachedRegex}isValid(e){return this.length===e.length&&this.countryCode===e.slice(0,2)&&this._regex().test(e.slice(4))&&ee(Q(e))===1}toBBAN(e,n=""){let t=this._regex().exec(e.slice(4));return t?t.slice(1).join(n):""}fromBBAN(e){if(!this.isValidBBAN(e))throw new Error("Invalid BBAN");let t=`0${98-ee(Q(`${this.countryCode}00${e}`))}`.slice(-2);return `${this.countryCode}${t}${e}`}isValidBBAN(e){return this.length-4===e.length&&this._regex().test(e)}},Ce={};function s(o){Ce[o.countryCode]=o;}s(new a("AD",24,"F04F04A12","AD1200012030200359100100"));s(new a("AE",23,"F03F16","AE070331234567890123456"));s(new a("AL",28,"F08A16","AL47212110090000000235698741"));s(new a("AT",20,"F05F11","AT611904300234573201"));s(new a("AZ",28,"U04A20","AZ21NABZ00000000137010001944"));s(new a("BA",20,"F03F03F08F02","BA391290079401028494"));s(new a("BE",16,"F03F07F02","BE68539007547034"));s(new a("BG",22,"U04F04F02A08","BG80BNBG96611020345678"));s(new a("BH",22,"U04A14","BH67BMAG00001299123456"));s(new a("BR",29,"F08F05F10U01A01","BR9700360305000010009795493P1"));s(new a("BY",28,"A04F04A16","BY13NBRB3600900000002Z00AB00"));s(new a("CH",21,"F05A12","CH9300762011623852957"));s(new a("CR",22,"F04F14","CR72012300000171549015"));s(new a("CY",28,"F03F05A16","CY17002001280000001200527600"));s(new a("CZ",24,"F04F06F10","CZ6508000000192000145399"));s(new a("DE",22,"F08F10","DE89370400440532013000"));s(new a("DK",18,"F04F09F01","DK5000400440116243"));s(new a("DO",28,"U04F20","DO28BAGR00000001212453611324"));s(new a("EE",20,"F02F02F11F01","EE382200221020145685"));s(new a("EG",29,"F04F04F17","EG800002000156789012345180002"));s(new a("ES",24,"F04F04F01F01F10","ES9121000418450200051332"));s(new a("FI",18,"F06F07F01","FI2112345600000785"));s(new a("FO",18,"F04F09F01","FO6264600001631634"));s(new a("FR",27,"F05F05A11F02","FR1420041010050500013M02606"));s(new a("GB",22,"U04F06F08","GB29NWBK60161331926819"));s(new a("GE",22,"U02F16","GE29NB0000000101904917"));s(new a("GI",23,"U04A15","GI75NWBK000000007099453"));s(new a("GL",18,"F04F09F01","GL8964710001000206"));s(new a("GR",27,"F03F04A16","GR1601101250000000012300695"));s(new a("GT",28,"A04A20","GT82TRAJ01020000001210029690"));s(new a("HR",21,"F07F10","HR1210010051863000160"));s(new a("HU",28,"F03F04F01F15F01","HU42117730161111101800000000"));s(new a("IE",22,"U04F06F08","IE29AIBK93115212345678"));s(new a("IL",23,"F03F03F13","IL620108000000099999999"));s(new a("IS",26,"F04F02F06F10","IS140159260076545510730339"));s(new a("IT",27,"U01F05F05A12","IT60X0542811101000000123456"));s(new a("IQ",23,"U04F03A12","IQ98NBIQ850123456789012"));s(new a("JO",30,"A04F22","JO15AAAA1234567890123456789012"));s(new a("KW",30,"U04A22","KW81CBKU0000000000001234560101"));s(new a("KZ",20,"F03A13","KZ86125KZT5004100100"));s(new a("LB",28,"F04A20","LB62099900000001001901229114"));s(new a("LC",32,"U04F24","LC07HEMM000100010012001200013015"));s(new a("LI",21,"F05A12","LI21088100002324013AA"));s(new a("LT",20,"F05F11","LT121000011101001000"));s(new a("LU",20,"F03A13","LU280019400644750000"));s(new a("LV",21,"U04A13","LV80BANK0000435195001"));s(new a("MC",27,"F05F05A11F02","MC5811222000010123456789030"));s(new a("MD",24,"U02A18","MD24AG000225100013104168"));s(new a("ME",22,"F03F13F02","ME25505000012345678951"));s(new a("MK",19,"F03A10F02","MK07250120000058984"));s(new a("MR",27,"F05F05F11F02","MR1300020001010000123456753"));s(new a("MT",31,"U04F05A18","MT84MALT011000012345MTLCAST001S"));s(new a("MU",30,"U04F02F02F12F03U03","MU17BOMM0101101030300200000MUR"));s(new a("NL",18,"U04F10","NL91ABNA0417164300"));s(new a("NO",15,"F04F06F01","NO9386011117947"));s(new a("PK",24,"U04A16","PK36SCBL0000001123456702"));s(new a("PL",28,"F08F16","PL61109010140000071219812874"));s(new a("PS",29,"U04A21","PS92PALS000000000400123456702"));s(new a("PT",25,"F04F04F11F02","PT50000201231234567890154"));s(new a("QA",29,"U04A21","QA30AAAA123456789012345678901"));s(new a("RO",24,"U04A16","RO49AAAA1B31007593840000"));s(new a("RS",22,"F03F13F02","RS35260005601001611379"));s(new a("SA",24,"F02A18","SA0380000000608010167519"));s(new a("SC",31,"U04F04F16U03","SC18SSCB11010000000000001497USD"));s(new a("SE",24,"F03F16F01","SE4550000000058398257466"));s(new a("SI",19,"F05F08F02","SI56263300012039086"));s(new a("SK",24,"F04F06F10","SK3112000000198742637541"));s(new a("SM",27,"U01F05F05A12","SM86U0322509800000000270100"));s(new a("ST",25,"F08F11F02","ST68000100010051845310112"));s(new a("SV",28,"U04F20","SV62CENR00000000000000700025"));s(new a("TL",23,"F03F14F02","TL380080012345678910157"));s(new a("TN",24,"F02F03F13F02","TN5910006035183598478831"));s(new a("TR",26,"F05F01A16","TR330006100519786457841326"));s(new a("UA",29,"F25","UA511234567890123456789012345"));s(new a("VA",22,"F18","VA59001123000012345678"));s(new a("VG",24,"U04F16","VG96VPVG0000012345678901"));s(new a("XK",20,"F04F10F02","XK051212012345678906"));s(new a("AO",25,"F21","AO69123456789012345678901"));s(new a("BF",27,"F23","BF2312345678901234567890123"));s(new a("BI",16,"F12","BI41123456789012"));s(new a("BJ",28,"F24","BJ39123456789012345678901234"));s(new a("CI",28,"U02F22","CI70CI1234567890123456789012"));s(new a("CM",27,"F23","CM9012345678901234567890123"));s(new a("CV",25,"F21","CV30123456789012345678901"));s(new a("DZ",24,"F20","DZ8612345678901234567890"));s(new a("IR",26,"F22","IR861234568790123456789012"));s(new a("MG",27,"F23","MG1812345678901234567890123"));s(new a("ML",28,"U01F23","ML15A12345678901234567890123"));s(new a("MZ",25,"F21","MZ25123456789012345678901"));s(new a("SN",28,"U01F23","SN52A12345678901234567890123"));s(new a("GF",27,"F05F05A11F02","GF121234512345123456789AB13"));s(new a("GP",27,"F05F05A11F02","GP791234512345123456789AB13"));s(new a("MQ",27,"F05F05A11F02","MQ221234512345123456789AB13"));s(new a("RE",27,"F05F05A11F02","RE131234512345123456789AB13"));s(new a("PF",27,"F05F05A11F02","PF281234512345123456789AB13"));s(new a("YT",27,"F05F05A11F02","YT021234512345123456789AB13"));s(new a("NC",27,"F05F05A11F02","NC551234512345123456789AB13"));s(new a("BL",27,"F05F05A11F02","BL391234512345123456789AB13"));s(new a("MF",27,"F05F05A11F02","MF551234512345123456789AB13"));s(new a("PM",27,"F05F05A11F02","PM071234512345123456789AB13"));s(new a("WF",27,"F05F05A11F02","WF621234512345123456789AB13"));var f=class o extends p{static create(e,n){if(!e||typeof e!="object")throw new Error("ExOptional.create: type must be a valid field");if(!("_def"in e)||!e._def||typeof e._def!="object")throw new Error("ExOptional.create: type is not a valid ExpressCSV field");if(!("typeName"in e._def)||typeof e._def.typeName!="string")throw new Error("ExOptional.create: type is missing a typeName");if(n!==void 0&&typeof n!="object")throw new Error("ExOptional.create: options must be an object");if((n==null?void 0:n.when)!==void 0&&typeof n.when!="function")throw new Error("ExOptional.create: options.when must be a function");return new o({typeName:"ExOptional",innerType:e,when:n==null?void 0:n.when,checks:[]})}unwrap(){return this._def.innerType}optional(){return this}default(e){let n=this._def.innerType._def;return n.defaultValue=e,this}};var T=class extends f{};var S=class extends f{output(e){return this._def.innerType.output(e),this._def.outputFormat=e,this}};var R=class extends f{output(e){return this._def.innerType.output(e),this}};var k=class extends f{min(e,n){return this._def.innerType.min(e,n),this}max(e,n){return this._def.innerType.max(e,n),this}integer(e){return this._def.innerType.integer(e),this}multipleOf(e,n){return this._def.innerType.multipleOf(e,n),this}percentage(){return this._def.innerType.percentage(),this}currency(e){return this._def.innerType.currency(e),this}};var v=class extends f{caseSensitive(e=true){return this._def.innerType.caseSensitive(e),this}},F=class extends f{caseSensitive(e=true){return this._def.innerType.caseSensitive(e),this}min(e,n){return this._def.innerType.min(e,n),this}max(e,n){return this._def.innerType.max(e,n),this}};var M=class extends f{uuid(e){return this._def.innerType.uuid(e),this}ip(e){return this._def.innerType.ip(e),this}url(e){return this._def.innerType.url(e),this}email(e){return this._def.innerType.email(e),this}phone(e){return this._def.innerType.phone(e),this}country(e){return this._def.innerType.country(e),this}max(e,n){return this._def.innerType.max(e,n),this}min(e,n){return this._def.innerType.min(e,n),this}length(e,n){return this._def.innerType.length(e,n),this}includes(e,n){return this._def.innerType.includes(e,n),this}startsWith(e,n){return this._def.innerType.startsWith(e,n),this}endsWith(e,n){return this._def.innerType.endsWith(e,n),this}regex(e,n){return this._def.innerType.regex(e,n),this}alphabetical(e){return this._def.innerType.alphabetical(e),this}alphanumerical(e){return this._def.innerType.alphanumerical(e),this}numerical(e){return this._def.innerType.numerical(e),this}iban(e){return this._def.innerType.iban(e),this}bic(e){return this._def.innerType.bic(e),this}gtin(e){return this._def.innerType.gtin(e),this}currencyCode(e){return this._def.innerType.currencyCode(e),this}};var N=class extends f{precision(e,n){return this._def.innerType.precision(e,n),this}};var I=class o extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.create: options.message must be a string");return new o({typeName:"ExString",checks:[],message:e==null?void 0:e.message})}optional(){return new M({typeName:"ExOptional",innerType:this})}uuid(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.uuid: options must be an object");if((e==null?void 0:e.version)!==void 0&&!["v1","v4","v5","all"].includes(e.version))throw new Error("ExString.uuid: options.version must be 'v1', 'v4', 'v5', or 'all'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.uuid: options.message must be a string");let n=(e==null?void 0:e.version)||"all",t=e==null?void 0:e.message;if(this._def.checks.findIndex(l=>{var u;return l.type==="uuid"&&((u=l.params)==null?void 0:u.version)===n})!==-1)return this;let i=this._addCheck("uuid",{version:n},t);return this._def.checks.push(i),this}ip(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.ip: options must be an object");if((e==null?void 0:e.version)!==void 0&&!["v4","v6","all"].includes(e.version))throw new Error("ExString.ip: options.version must be 'v4', 'v6', or 'all'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.ip: options.message must be a string");let n=(e==null?void 0:e.version)||"all",t=e==null?void 0:e.message;if(this._def.checks.findIndex(l=>{var u;return l.type==="ipAddress"&&((u=l.params)==null?void 0:u.version)===n})!==-1)return this;let i=this._addCheck("ipAddress",{version:n},t);return this._def.checks.push(i),this}url(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.url: options must be an object");if((e==null?void 0:e.allowedProtocols)!==void 0&&!Array.isArray(e.allowedProtocols))throw new Error("ExString.url: options.allowedProtocols must be an array");if((e==null?void 0:e.allowedDomains)!==void 0&&!Array.isArray(e.allowedDomains))throw new Error("ExString.url: options.allowedDomains must be an array");if((e==null?void 0:e.allowSubdomains)!==void 0&&typeof e.allowSubdomains!="boolean")throw new Error("ExString.url: options.allowSubdomains must be a boolean");if((e==null?void 0:e.allowPaths)!==void 0&&typeof e.allowPaths!="boolean")throw new Error("ExString.url: options.allowPaths must be a boolean");if((e==null?void 0:e.allowQueryParams)!==void 0&&typeof e.allowQueryParams!="boolean")throw new Error("ExString.url: options.allowQueryParams must be a boolean");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.url: options.message must be a string");let n={allowedProtocols:e==null?void 0:e.allowedProtocols,allowedDomains:e==null?void 0:e.allowedDomains,allowSubdomains:(e==null?void 0:e.allowSubdomains)!==void 0?e.allowSubdomains:true,allowPaths:(e==null?void 0:e.allowPaths)!==void 0?e.allowPaths:true,allowQueryParams:(e==null?void 0:e.allowQueryParams)!==void 0?e.allowQueryParams:true};if(this._def.checks.findIndex(i=>i.type!=="url"||!i.params?false:JSON.stringify(i.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("url",n,e==null?void 0:e.message);return this._def.checks.push(r),this}email(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.email: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.email: options.message must be a string");if(this._findExistingCheck("email").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("email",{},t);return this._def.checks.push(r),this}phone(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.phone: options must be an object");if((e==null?void 0:e.allowedCountries)!==void 0&&!Array.isArray(e.allowedCountries))throw new Error("ExString.phone: options.allowedCountries must be an array");if((e==null?void 0:e.format)!==void 0&&!["international","national","both"].includes(e.format))throw new Error("ExString.phone: options.format must be 'international', 'national', or 'both'");if((e==null?void 0:e.output)!==void 0&&!["e164","formatted","digits"].includes(e.output))throw new Error("ExString.phone: options.output must be 'e164', 'formatted', or 'digits'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.phone: options.message must be a string");let n={allowedCountries:e==null?void 0:e.allowedCountries,format:(e==null?void 0:e.format)||"international",output:(e==null?void 0:e.output)||"e164"};if(this._def.checks.findIndex(i=>i.type!=="phone"||!i.params?false:JSON.stringify(i.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("phone",n,e==null?void 0:e.message);return this._def.checks.push(r),this}country(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.country: options must be an object");if((e==null?void 0:e.output)!==void 0&&!["name","2-letter","3-letter"].includes(e.output))throw new Error("ExString.country: options.output must be 'name', '2-letter', or '3-letter'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.country: options.message must be a string");let n={output:(e==null?void 0:e.output)||"name"};if(this._def.checks.findIndex(i=>{var l;return i.type==="country"&&((l=i.params)==null?void 0:l.output)===n.output})!==-1)return this;let r=this._addCheck("country",n,e==null?void 0:e.message);return this._def.checks.push(r),this}max(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExString.max: maxLength must be a number");if(e<0||!Number.isInteger(e))throw new Error("ExString.max: maxLength must be a non-negative integer");if(n!==void 0&&typeof n!="object")throw new Error("ExString.max: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.max: options.message must be a string");let t=this._findExistingCheck("max");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e>=m)return this}let r=this._findExistingCheck("min");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&r.check.params.value>e)throw new Error("ExString.max: max cannot be less than min");let i=n==null?void 0:n.message,l=this._addCheck("max",{value:e},i);return this._replaceOrAddCheck(l,t.index),this}min(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExString.min: minLength must be a number");if(e<0||!Number.isInteger(e))throw new Error("ExString.min: minLength must be a non-negative integer");if(n!==void 0&&typeof n!="object")throw new Error("ExString.min: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.min: options.message must be a string");let t=this._findExistingCheck("min");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e<=m)return this}let r=this._findExistingCheck("max");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&e>r.check.params.value)throw new Error("ExString.min: min cannot be greater than max");let i=n==null?void 0:n.message,l=this._addCheck("min",{value:e},i);return this._replaceOrAddCheck(l,t.index),this}length(e,n){if(typeof e!="number"||Number.isNaN(e))throw new Error("ExString.length: exactLength must be a number");if(e<0||!Number.isInteger(e))throw new Error("ExString.length: exactLength must be a non-negative integer");if(n!==void 0&&typeof n!="object")throw new Error("ExString.length: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.length: options.message must be a string");let t=this._findExistingCheck("length"),r=n==null?void 0:n.message,i=this._addCheck("length",{value:e},r);return this._replaceOrAddCheck(i,t.index),this}includes(e,n){if(typeof e!="string")throw new Error("ExString.includes: substring must be a string");if(n!==void 0&&typeof n!="object")throw new Error("ExString.includes: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.includes: options.message must be a string");if(this._def.checks.findIndex(l=>{var u;return l.type==="includes"&&((u=l.params)==null?void 0:u.value)===e})!==-1)return this;let r=n==null?void 0:n.message,i=this._addCheck("includes",{value:e},r);return this._def.checks.push(i),this}startsWith(e,n){if(typeof e!="string")throw new Error("ExString.startsWith: prefix must be a string");if(n!==void 0&&typeof n!="object")throw new Error("ExString.startsWith: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.startsWith: options.message must be a string");if(this._def.checks.findIndex(l=>{var u;return l.type==="startsWith"&&((u=l.params)==null?void 0:u.value)===e})!==-1)return this;let r=n==null?void 0:n.message,i=this._addCheck("startsWith",{value:e},r);return this._def.checks.push(i),this}endsWith(e,n){if(typeof e!="string")throw new Error("ExString.endsWith: suffix must be a string");if(n!==void 0&&typeof n!="object")throw new Error("ExString.endsWith: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.endsWith: options.message must be a string");if(this._def.checks.findIndex(l=>{var u;return l.type==="endsWith"&&((u=l.params)==null?void 0:u.value)===e})!==-1)return this;let r=n==null?void 0:n.message,i=this._addCheck("endsWith",{value:e},r);return this._def.checks.push(i),this}regex(e,n){if(!(e instanceof RegExp))throw new Error("ExString.regex: pattern must be a RegExp");if(n!==void 0&&typeof n!="object")throw new Error("ExString.regex: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.regex: options.message must be a string");if(this._def.checks.findIndex(l=>{var c;if(l.type!=="regex"||!((c=l.params)!=null&&c.pattern))return false;let u=l.params.pattern;return u.source===e.source&&u.flags===e.flags})!==-1)return this;let r=n==null?void 0:n.message,i=this._addCheck("regex",{pattern:e},r);return this._def.checks.push(i),this}alphabetical(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.alphabetical: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.alphabetical: options.message must be a string");if(this._findExistingCheck("alphabetical").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("alphabetical",{},t);return this._def.checks.push(r),this}alphanumerical(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.alphanumerical: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.alphanumerical: options.message must be a string");if(this._findExistingCheck("alphanumerical").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("alphanumerical",{},t);return this._def.checks.push(r),this}numerical(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.numerical: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.numerical: options.message must be a string");if(this._findExistingCheck("numerical").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("numerical",{},t);return this._def.checks.push(r),this}iban(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.iban: options must be an object");if((e==null?void 0:e.allowedCountries)!==void 0&&!Array.isArray(e.allowedCountries))throw new Error("ExString.iban: options.allowedCountries must be an array");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.iban: options.message must be a string");let n={allowedCountries:e==null?void 0:e.allowedCountries};if(this._def.checks.findIndex(i=>i.type!=="iban"||!i.params?false:JSON.stringify(i.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("iban",n,e==null?void 0:e.message);return this._def.checks.push(r),this}bic(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.bic: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.bic: options.message must be a string");if(this._findExistingCheck("bic").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("bic",{},t);return this._def.checks.push(r),this}gtin(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.gtin: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.gtin: options.message must be a string");if(this._findExistingCheck("gtin").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("gtin",{},t);return this._def.checks.push(r),this}currencyCode(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.currencyCode: options must be an object");if((e==null?void 0:e.allowedCurrencies)!==void 0&&!Array.isArray(e.allowedCurrencies))throw new Error("ExString.currencyCode: options.allowedCurrencies must be an array");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.currencyCode: options.message must be a string");let n={allowedCurrencies:e==null?void 0:e.allowedCurrencies};if(this._def.checks.findIndex(i=>i.type!=="currencyCode"||!i.params?false:JSON.stringify(i.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("currencyCode",n,e==null?void 0:e.message);return this._def.checks.push(r),this}};new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z"));var Z=class extends p{min(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExNumber.min: value must be a number");if(n!==void 0&&typeof n!="object")throw new Error("ExNumber.min: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExNumber.min: options.message must be a string");let t=this._findExistingCheck("min");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e<=m)return this}let r=this._findExistingCheck("max");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&e>r.check.params.value)throw new Error("ExNumber.min: min cannot be greater than max");let i=n==null?void 0:n.message,l=this._addCheck("min",{value:e},i);return this._replaceOrAddCheck(l,t.index),this}max(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExNumber.max: value must be a number");if(n!==void 0&&typeof n!="object")throw new Error("ExNumber.max: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExNumber.max: options.message must be a string");let t=this._findExistingCheck("max");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e>=m)return this}let r=this._findExistingCheck("min");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&r.check.params.value>e)throw new Error("ExNumber.max: max cannot be less than min");let i=n==null?void 0:n.message,l=this._addCheck("max",{value:e},i);return this._replaceOrAddCheck(l,t.index),this}integer(e){if(e!==void 0&&typeof e!="object")throw new Error("ExNumber.integer: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExNumber.integer: options.message must be a string");let n=this._findExistingCheck("integer"),t=e==null?void 0:e.message,r=this._addCheck("integer",{},t);return this._replaceOrAddCheck(r,n.index),this}multipleOf(e,n){var l;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExNumber.multipleOf: value must be a number");if(e===0)throw new Error("ExNumber.multipleOf: value cannot be zero");if(n!==void 0&&typeof n!="object")throw new Error("ExNumber.multipleOf: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExNumber.multipleOf: options.message must be a string");let t=this._findExistingCheck("multipleOf");if(t.found&&((l=t.check)!=null&&l.params)){let u=t.check.params.value;if(typeof u=="number"&&e===u)return this}let r=n==null?void 0:n.message,i=this._addCheck("multipleOf",{value:e},r);return this._def.checks.push(i),this}},D=class o extends Z{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExNumber.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExNumber.create: options.message must be a string");return new o({typeName:"ExNumber",checks:[],message:e==null?void 0:e.message})}optional(){return new k({typeName:"ExOptional",innerType:this})}percentage(){if(this._def.currencyCode!==void 0)throw new Error("ExNumber.percentage: Cannot combine percentage with currency");return this._def.isPercentage=true,this}currency(e){if(typeof e!="string")throw new Error("ExNumber.currency: currencyCode must be a string");if(this._def.isPercentage)throw new Error("ExNumber.currency: Cannot combine currency with percentage");return this._def.currencyCode=e,this}};var P=class o extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExBoolean.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExBoolean.create: options.message must be a string");if((e==null?void 0:e.control)!==void 0&&e.control!=="toggle"&&e.control!=="checkbox"&&e.control!=="dropdown")throw new Error('ExBoolean.create: options.control must be "toggle", "checkbox", or "dropdown"');return new o({typeName:"ExBoolean",control:e==null?void 0:e.control,message:e==null?void 0:e.message,checks:[]})}optional(){return new T({typeName:"ExOptional",innerType:this})}};var O=class o extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExDate.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExDate.create: options.message must be a string");let n=new o({typeName:"ExDate"});return e!=null&&e.message&&(n._def.message=e.message),n}optional(){return new S({typeName:"ExOptional",innerType:this})}output(e){if(typeof e!="string")throw new Error("ExDate.output: template must be a string");if(e.trim()==="")throw new Error("ExDate.output: template cannot be empty");return this._def.outputFormat=e,this}};var A=class o extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExTime.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExTime.create: options.message must be a string");return new o({typeName:"ExTime",checks:[],message:e==null?void 0:e.message})}optional(){return new N({typeName:"ExOptional",innerType:this})}precision(e,n){if(typeof e!="number"||Number.isNaN(e))throw new Error("ExTime.precision: precision must be a number");if(e<0||e>9||!Number.isInteger(e))throw new Error("ExTime.precision: precision must be an integer between 0 and 9");if(n!==void 0&&typeof n!="object")throw new Error("ExTime.precision: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExTime.precision: options.message must be a string");return this._def.precision=e,n!=null&&n.message&&(this._def.message=n.message),this}};var B=class o extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExDatetime.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExDatetime.create: options.message must be a string");let n=new o({typeName:"ExDatetime",checks:[],message:e==null?void 0:e.message});if(e!=null&&e.message){let t=n._getDatetimeCheck();t&&(t.message=e.message);}return n}optional(){return new R({typeName:"ExOptional",innerType:this})}output(e){if(typeof e!="string")throw new Error("ExDatetime.output: template must be a string");if(e.trim()==="")throw new Error("ExDatetime.output: template cannot be empty");return this._def.outputFormat=e,this}allowOffset(e){if(e!==void 0&&typeof e!="object")throw new Error("ExDatetime.allowOffset: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExDatetime.allowOffset: options.message must be a string");let n=e==null?void 0:e.message,t=this._getDatetimeCheck();return t!=null&&t.params&&(t.params.offset=true,n&&(t.message=n)),this}_getDatetimeCheck(){let e=this._def.checks.find(n=>n.type==="datetime");if(!e){let n=this._addCheck("datetime",{allowOffset:false});return this._def.checks.push(n),n}return e}};var V=class o extends p{static create(e,n={}){if(!Array.isArray(e))throw new Error("ExSelect.create: options must be an array");if(e.length===0)throw new Error("ExSelect.create: options array must not be empty");for(let r=0;r<e.length;r++){let i=e[r];if(!i||typeof i!="object")throw new Error(`ExSelect.create: option at index ${r} must be an object`);if(!("label"in i)||typeof i.label!="string")throw new Error(`ExSelect.create: option at index ${r} must have a string label`);if(!("value"in i))throw new Error(`ExSelect.create: option at index ${r} must have a value`);if(typeof i.value!="string"&&typeof i.value!="number")throw new Error(`ExSelect.create: option at index ${r} must have a string or number value`)}if(n!==void 0&&typeof n!="object")throw new Error("ExSelect.create: config must be an object");if(n.enforceCaseSensitiveMatch!==void 0&&typeof n.enforceCaseSensitiveMatch!="boolean")throw new Error("ExSelect.create: config.enforceCaseSensitiveMatch must be a boolean");if(n.allowCustom!==void 0&&typeof n.allowCustom!="boolean")throw new Error("ExSelect.create: config.allowCustom must be a boolean");if(n.message!==void 0&&typeof n.message!="string")throw new Error("ExSelect.create: config.message must be a string");return new o({typeName:"ExSelect",options:[...e],config:{enforceCaseSensitiveMatch:!!n.enforceCaseSensitiveMatch,allowCustom:!!n.allowCustom},checks:[],message:n.message})}optional(){return new v({typeName:"ExOptional",innerType:this})}caseSensitive(e=true){if(typeof e!="boolean")throw new Error("ExSelect.caseSensitive: enabled must be a boolean");return this._def.config.enforceCaseSensitiveMatch=e,this}};var _=class o extends p{static create(e,n={}){if(!Array.isArray(e))throw new Error("ExMultiselect.create: options must be an array");if(e.length===0)throw new Error("ExMultiselect.create: options array must not be empty");for(let r=0;r<e.length;r++){let i=e[r];if(!i||typeof i!="object")throw new Error(`ExMultiselect.create: option at index ${r} must be an object`);if(!("label"in i)||typeof i.label!="string")throw new Error(`ExMultiselect.create: option at index ${r} must have a string label`);if(!("value"in i))throw new Error(`ExMultiselect.create: option at index ${r} must have a value`);if(typeof i.value!="string"&&typeof i.value!="number")throw new Error(`ExMultiselect.create: option at index ${r} must have a string or number value`)}if(n!==void 0&&typeof n!="object")throw new Error("ExMultiselect.create: config must be an object");if(n.enforceCaseSensitiveMatch!==void 0&&typeof n.enforceCaseSensitiveMatch!="boolean")throw new Error("ExMultiselect.create: config.enforceCaseSensitiveMatch must be a boolean");if(n.message!==void 0&&typeof n.message!="string")throw new Error("ExMultiselect.create: config.message must be a string");return new o({typeName:"ExMultiselect",options:[...e],config:{enforceCaseSensitiveMatch:!!n.enforceCaseSensitiveMatch,allowCustom:false},checks:[],message:n.message})}optional(){return new F({typeName:"ExOptional",innerType:this})}caseSensitive(e=true){if(typeof e!="boolean")throw new Error("ExMultiselect.caseSensitive: enabled must be a boolean");return this._def.config.enforceCaseSensitiveMatch=e,this}min(e,n){var l,u;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExMultiselect.min: min must be a number");if(e<1||!Number.isInteger(e))throw new Error("ExMultiselect.min: min must be a positive integer (at least 1)");let t=this._findExistingCheck("min");if(t.found&&((l=t.check)!=null&&l.params)){let c=t.check.params.value;if(typeof c=="number"&&e<=c)return this}let r=this._findExistingCheck("max");if(r.found&&((u=r.check)!=null&&u.params)&&typeof r.check.params.value=="number"&&e>r.check.params.value)throw new Error("ExMultiselect.min: min cannot be greater than max");let i=this._addCheck("min",{value:e},n);return this._replaceOrAddCheck(i,t.index),this}max(e,n){var l,u;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExMultiselect.max: max must be a number");if(e<1||!Number.isInteger(e))throw new Error("ExMultiselect.max: max must be a positive integer");let t=this._findExistingCheck("max");if(t.found&&((l=t.check)!=null&&l.params)){let c=t.check.params.value;if(typeof c=="number"&&e>=c)return this}let r=this._findExistingCheck("min");if(r.found&&((u=r.check)!=null&&u.params)&&typeof r.check.params.value=="number"&&r.check.params.value>e)throw new Error("ExMultiselect.max: max cannot be less than min");let i=this._addCheck("max",{value:e},n);return this._replaceOrAddCheck(i,t.index),this}};function cn(){return `uc_${Math.random().toString(36).substring(2,15)}${Math.random().toString(36).substring(2,15)}`}function me(o){for(let[e,n]of Object.entries(o)){if(!n||typeof n!="object")throw new Error(`ExRow.create: field "${e}" must be a valid field type`);if(!("_def"in n)||!n._def||typeof n._def!="object")throw new Error(`ExRow.create: field "${e}" is not a valid ExpressCSV field`);if(!("typeName"in n._def)||typeof n._def.typeName!="string")throw new Error(`ExRow.create: field "${e}" is missing a typeName`)}}var w=class o extends C{static create(e){if(!e||typeof e!="object")throw new Error("ExRow.create: shape must be a non-null object");return me(e),new o({typeName:"ExRow",shape:e})}static createDynamic(e){if(!e||typeof e!="object")throw new Error("ExRow.create: shape must be a non-null object");return me(e),new o({typeName:"ExRow",shape:e})}optionalColumns(e,n){if(!Array.isArray(e))throw new Error("ExRow.optionalColumns: columns must be an array");for(let u of e)if(!(u in this._def.shape))throw new Error(`ExRow.optionalColumns: column "${String(u)}" does not exist in the row shape`);if(n!==void 0&&typeof n!="object")throw new Error("ExRow.optionalColumns: options must be an object");if((n==null?void 0:n.when)!==void 0&&typeof n.when!="function")throw new Error("ExRow.optionalColumns: options.when must be a function");let t=e,r=n==null?void 0:n.when;if(!this._def.optionalColumnConfig)return this._def.optionalColumnConfig={columns:t,when:r,whenMap:r?Object.fromEntries(t.map(u=>[u,r])):void 0},this;let l=[...this._def.optionalColumnConfig.columns];for(let u of t)l.includes(u)||l.push(u);if(this._def.optionalColumnConfig.columns=l,r){this._def.optionalColumnConfig.whenMap||(this._def.optionalColumnConfig.whenMap={});for(let u of t)this._def.optionalColumnConfig.whenMap[u]=r;}return this}unique(e,n){if(e===void 0)throw new Error("ExRow.unique: columns must be provided");let t=Array.isArray(e)?e:[e];for(let m of t)if(!(m in this._def.shape))throw new Error(`ExRow.unique: column "${String(m)}" does not exist in the row shape`);if(n!==void 0&&typeof n!="object")throw new Error("ExRow.unique: options must be an object");if((n==null?void 0:n.key)!==void 0&&typeof n.key!="function")throw new Error("ExRow.unique: options.key must be a function");let r=n==null?void 0:n.key;this._def.uniqueColumnConfig||(this._def.uniqueColumnConfig={uniqueConstraints:[]});let i=r?m=>{let U=Object.fromEntries(t.map(L=>[L,m[L]]));return r(U)}:void 0,l=(m,U)=>{if(m.length!==U.length)return false;let L=[...m].sort(),pe=[...U].sort();return L.every((fe,de)=>fe===pe[de])},u=this._def.uniqueColumnConfig.uniqueConstraints.findIndex(m=>l(m.columns,t)),c={id:cn(),columns:t,key:i};return u!==-1?this._def.uniqueColumnConfig.uniqueConstraints[u]=c:this._def.uniqueColumnConfig.uniqueConstraints.push(c),this}meta(e){if(e===void 0||typeof e!="object")throw new Error("ExRow.meta: metadata must be an object");if(e.description!==void 0&&typeof e.description!="string")throw new Error("ExRow.meta: metadata.description must be a string");return this._def.meta=d(d({},this._def.meta),e),this}minRows(e){if(typeof e!="number")throw new Error("ExRow.minRows: count must be a number");if(!Number.isInteger(e))throw new Error("ExRow.minRows: count must be an integer");if(e<0)throw new Error("ExRow.minRows: count must be non-negative");return this._def.rowCountConfig||(this._def.rowCountConfig={}),this._def.rowCountConfig.minRows=e,this}maxRows(e){if(typeof e!="number")throw new Error("ExRow.maxRows: count must be a number");if(!Number.isInteger(e))throw new Error("ExRow.maxRows: count must be an integer");if(e<=0)throw new Error("ExRow.maxRows: count must be positive");return this._def.rowCountConfig||(this._def.rowCountConfig={}),this._def.rowCountConfig.maxRows=e,this}};var ce={string:I.create,number:D.create,boolean:P.create,date:O.create,time:A.create,datetime:B.create,row:w.create,dynamicRow:w.createDynamic,select:V.create,multiselect:_.create,infer:o=>{}};export{ce as x};
1
+ var de=Object.defineProperty;var q=Object.getOwnPropertySymbols;var ge=Object.prototype.hasOwnProperty,he=Object.prototype.propertyIsEnumerable;var H=(i,e,n)=>e in i?de(i,e,{enumerable:true,configurable:true,writable:true,value:n}):i[e]=n,g=(i,e)=>{for(var n in e||(e={}))ge.call(e,n)&&H(i,n,e[n]);if(q)for(var n of q(e))he.call(e,n)&&H(i,n,e[n]);return i};var C=class{constructor(e){this._def=e;}_addCheck(e,n,t){return {type:e,params:n,message:t}}},p=class extends C{columnNameAliases(e){return this._def.columnNameAliases=e,this}description(e){return this._def.description=e,this}label(e){return this._def.label=e,this}example(e){return this._def.example=e,this}refine(e,n){let t=this._addCheck("refine",{validator:e,params:n});return this._def.checks||(this._def.checks=[]),this._def.checks.push(t),this}refineBatch(e,n){let t=this._addCheck("refineBatch",{validator:e,params:n});return this._def.checks||(this._def.checks=[]),this._def.checks.push(t),this}_findExistingCheck(e){if(!this._def.checks)return {check:void 0,index:-1,found:false};let n=this._def.checks.findIndex(o=>o.type===e),t=n!==-1;return {check:t?this._def.checks[n]:void 0,index:n,found:t}}_replaceOrAddCheck(e,n){this._def.checks||(this._def.checks=[]),n!==-1?this._def.checks[n]=e:this._def.checks.push(e);}};var J=[{name:"Afghanistan",alpha2:"AF",alpha3:"AFG",aliases:["Af\u0121\u0101nist\u0101n","\u0627\u0641\u063A\u0627\u0646\u0633\u062A\u0627\u0646"]},{name:"\xC5land Islands",alpha2:"AX",alpha3:"ALA",aliases:["Ahvenanmaa","\xC5land"]},{name:"Albania",alpha2:"AL",alpha3:"ALB",aliases:["Shqip\xEBri","Shqip\xEBria"]},{name:"Algeria",alpha2:"DZ",alpha3:"DZA",aliases:["\u0627\u0644\u062C\u0632\u0627\u0626\u0631","Alg\xE9rie"]},{name:"American Samoa",alpha2:"AS",alpha3:"ASM",aliases:["S\u0101moa Amelika","Amelika S\u0101moa"]},{name:"Andorra",alpha2:"AD",alpha3:"AND",aliases:["Principat d'Andorra"]},{name:"Angola",alpha2:"AO",alpha3:"AGO",aliases:["Rep\xFAblica de Angola"]},{name:"Anguilla",alpha2:"AI",alpha3:"AIA",aliases:[]},{name:"Antigua and Barbuda",alpha2:"AG",alpha3:"ATG",aliases:["Antigua","Barbuda"]},{name:"Argentina",alpha2:"AR",alpha3:"ARG",aliases:["Rep\xFAblica Argentina","Argentine Republic"]},{name:"Armenia",alpha2:"AM",alpha3:"ARM",aliases:["\u0540\u0561\u0575\u0561\u057D\u057F\u0561\u0576","Hayastan","Republic of Armenia"]},{name:"Aruba",alpha2:"AW",alpha3:"ABW",aliases:[]},{name:"Australia",alpha2:"AU",alpha3:"AUS",aliases:["Commonwealth of Australia","Oz"]},{name:"Austria",alpha2:"AT",alpha3:"AUT",aliases:["\xD6sterreich"]},{name:"Azerbaijan",alpha2:"AZ",alpha3:"AZE",aliases:["Az\u0259rbaycan","Republic of Azerbaijan"]},{name:"Bahamas",alpha2:"BS",alpha3:"BHS",aliases:["The Bahamas","Commonwealth of The Bahamas"]},{name:"Bahrain",alpha2:"BH",alpha3:"BHR",aliases:["\u0627\u0644\u0628\u062D\u0631\u064A\u0646","Kingdom of Bahrain"]},{name:"Bangladesh",alpha2:"BD",alpha3:"BGD",aliases:["\u09AC\u09BE\u0982\u09B2\u09BE\u09A6\u09C7\u09B6","People's Republic of Bangladesh"]},{name:"Barbados",alpha2:"BB",alpha3:"BRB",aliases:[]},{name:"Belarus",alpha2:"BY",alpha3:"BLR",aliases:["\u0411\u0435\u043B\u0430\u0440\u0443\u0441\u044C","Republic of Belarus","Belorussia"]},{name:"Belgium",alpha2:"BE",alpha3:"BEL",aliases:["Belgi\xEB","Belgique","Belgien"]},{name:"Belize",alpha2:"BZ",alpha3:"BLZ",aliases:[]},{name:"Benin",alpha2:"BJ",alpha3:"BEN",aliases:["Republic of Benin","R\xE9publique du B\xE9nin"]},{name:"Bermuda",alpha2:"BM",alpha3:"BMU",aliases:[]},{name:"Bhutan",alpha2:"BT",alpha3:"BTN",aliases:["\u0F60\u0F56\u0FB2\u0F74\u0F42\u0F0B\u0F61\u0F74\u0F63\u0F0B","Druk Yul","Kingdom of Bhutan"]},{name:"Bolivia",alpha2:"BO",alpha3:"BOL",aliases:["Bolivia","Estado Plurinacional de Bolivia"]},{name:"Bonaire, Sint Eustatius and Saba",alpha2:"BQ",alpha3:"BES",aliases:["Caribbean Netherlands"]},{name:"Bosnia and Herzegovina",alpha2:"BA",alpha3:"BIH",aliases:["Bosna i Hercegovina"]},{name:"Botswana",alpha2:"BW",alpha3:"BWA",aliases:["Republic of Botswana"]},{name:"Brazil",alpha2:"BR",alpha3:"BRA",aliases:["Brasil","Federative Republic of Brazil"]},{name:"British Indian Ocean Territory",alpha2:"IO",alpha3:"IOT",aliases:[]},{name:"Brunei Darussalam",alpha2:"BN",alpha3:"BRN",aliases:["Brunei"]},{name:"Bulgaria",alpha2:"BG",alpha3:"BGR",aliases:["\u0411\u044A\u043B\u0433\u0430\u0440\u0438\u044F","Republic of Bulgaria"]},{name:"Burkina Faso",alpha2:"BF",alpha3:"BFA",aliases:["Burkina"]},{name:"Burundi",alpha2:"BI",alpha3:"BDI",aliases:["Republic of Burundi","Republika y'Uburundi"]},{name:"Cabo Verde",alpha2:"CV",alpha3:"CPV",aliases:["Cape Verde"]},{name:"Cambodia",alpha2:"KH",alpha3:"KHM",aliases:["\u1780\u1798\u17D2\u1796\u17BB\u1787\u17B6","Kingdom of Cambodia"]},{name:"Cameroon",alpha2:"CM",alpha3:"CMR",aliases:["Cameroun","Republic of Cameroon"]},{name:"Canada",alpha2:"CA",alpha3:"CAN",aliases:["Kanada","Canada (French)"]},{name:"Cayman Islands",alpha2:"KY",alpha3:"CYM",aliases:[]},{name:"Central African Republic",alpha2:"CF",alpha3:"CAF",aliases:["R\xE9publique centrafricaine"]},{name:"Chad",alpha2:"TD",alpha3:"TCD",aliases:["Tchad","\u062C\u0645\u0647\u0648\u0631\u064A\u0629 \u062A\u0634\u0627\u062F"]},{name:"Chile",alpha2:"CL",alpha3:"CHL",aliases:["Rep\xFAblica de Chile"]},{name:"China",alpha2:"CN",alpha3:"CHN",aliases:["\u4E2D\u534E\u4EBA\u6C11\u5171\u548C\u56FD","\u4E2D\u56FD","Zh\u014Dnggu\xF3","People's Republic of China","PRC"]},{name:"Christmas Island",alpha2:"CX",alpha3:"CXR",aliases:[]},{name:"Cocos (Keeling) Islands",alpha2:"CC",alpha3:"CCK",aliases:[]},{name:"Colombia",alpha2:"CO",alpha3:"COL",aliases:["Rep\xFAblica de Colombia"]},{name:"Comoros",alpha2:"KM",alpha3:"COM",aliases:["\u062C\u0632\u0631 \u0627\u0644\u0642\u0645\u0631","Union of the Comoros"]},{name:"Congo",alpha2:"CG",alpha3:"COG",aliases:["Republic of the Congo","Congo-Brazzaville"]},{name:"Democratic Republic of the Congo",alpha2:"CD",alpha3:"COD",aliases:["Democratic Republic of the Congo","Congo-Kinshasa","DR Congo","DRC"]},{name:"Cook Islands",alpha2:"CK",alpha3:"COK",aliases:[]},{name:"Costa Rica",alpha2:"CR",alpha3:"CRI",aliases:["Rep\xFAblica de Costa Rica"]},{name:"C\xF4te d'Ivoire",alpha2:"CI",alpha3:"CIV",aliases:["Ivory Coast","R\xE9publique de C\xF4te d'Ivoire"]},{name:"Croatia",alpha2:"HR",alpha3:"HRV",aliases:["Hrvatska","Republic of Croatia"]},{name:"Cuba",alpha2:"CU",alpha3:"CUB",aliases:["Rep\xFAblica de Cuba"]},{name:"Cura\xE7ao",alpha2:"CW",alpha3:"CUW",aliases:[]},{name:"Cyprus",alpha2:"CY",alpha3:"CYP",aliases:["\u039A\u03CD\u03C0\u03C1\u03BF\u03C2","K\u0131br\u0131s"]},{name:"Czechia",alpha2:"CZ",alpha3:"CZE",aliases:["Czech Republic","\u010Cesko"]},{name:"Denmark",alpha2:"DK",alpha3:"DNK",aliases:["Danmark"]},{name:"Djibouti",alpha2:"DJ",alpha3:"DJI",aliases:["\u062C\u064A\u0628\u0648\u062A\u064A","Djibouti City-State"]},{name:"Dominica",alpha2:"DM",alpha3:"DMA",aliases:[]},{name:"Dominican Republic",alpha2:"DO",alpha3:"DOM",aliases:["Rep\xFAblica Dominicana"]},{name:"Ecuador",alpha2:"EC",alpha3:"ECU",aliases:["Rep\xFAblica del Ecuador"]},{name:"Egypt",alpha2:"EG",alpha3:"EGY",aliases:["\u0645\u0635\u0631","Arab Republic of Egypt"]},{name:"El Salvador",alpha2:"SV",alpha3:"SLV",aliases:["Rep\xFAblica de El Salvador"]},{name:"Equatorial Guinea",alpha2:"GQ",alpha3:"GNQ",aliases:["Rep\xFAblica de Guinea Ecuatorial","R\xE9publique de Guin\xE9e \xE9quatoriale","Rep\xFAblica da Guin\xE9 Equatorial"]},{name:"Eritrea",alpha2:"ER",alpha3:"ERI",aliases:["State of Eritrea","\u12A4\u122D\u1275\u122B","\u0625\u0631\u064A\u062A\u0631\u064A\u0627"]},{name:"Estonia",alpha2:"EE",alpha3:"EST",aliases:["Eesti"]},{name:"Eswatini",alpha2:"SZ",alpha3:"SWZ",aliases:["Swaziland","Kingdom of Eswatini"]},{name:"Ethiopia",alpha2:"ET",alpha3:"ETH",aliases:["\u12A2\u1275\u12EE\u1335\u12EB","Federal Democratic Republic of Ethiopia"]},{name:"Falkland Islands (Malvinas)",alpha2:"FK",alpha3:"FLK",aliases:["Islas Malvinas"]},{name:"Faroe Islands",alpha2:"FO",alpha3:"FRO",aliases:["F\xF8royar"]},{name:"Fiji",alpha2:"FJ",alpha3:"FJI",aliases:["Viti","Fiji Islands"]},{name:"Finland",alpha2:"FI",alpha3:"FIN",aliases:["Suomi"]},{name:"France",alpha2:"FR",alpha3:"FRA",aliases:["R\xE9publique fran\xE7aise"]},{name:"French Guiana",alpha2:"GF",alpha3:"GUF",aliases:["Guyane"]},{name:"French Polynesia",alpha2:"PF",alpha3:"PYF",aliases:["Polyn\xE9sie fran\xE7aise"]},{name:"Gabon",alpha2:"GA",alpha3:"GAB",aliases:["R\xE9publique gabonaise"]},{name:"Gambia",alpha2:"GM",alpha3:"GMB",aliases:["Republic of The Gambia"]},{name:"Georgia",alpha2:"GE",alpha3:"GEO",aliases:["\u10E1\u10D0\u10E5\u10D0\u10E0\u10D7\u10D5\u10D4\u10DA\u10DD","Sakartvelo"]},{name:"Germany",alpha2:"DE",alpha3:"DEU",aliases:["Deutschland","Federal Republic of Germany"]},{name:"Ghana",alpha2:"GH",alpha3:"GHA",aliases:["Republic of Ghana"]},{name:"Gibraltar",alpha2:"GI",alpha3:"GIB",aliases:[""]},{name:"Greece",alpha2:"GR",alpha3:"GRC",aliases:["\u0395\u03BB\u03BB\u03AC\u03B4\u03B1","Hellas","Hellenic Republic"]},{name:"Greenland",alpha2:"GL",alpha3:"GRL",aliases:["Kalaallit Nunaat"]},{name:"Grenada",alpha2:"GD",alpha3:"GRD",aliases:[]},{name:"Guadeloupe",alpha2:"GP",alpha3:"GLP",aliases:[]},{name:"Guam",alpha2:"GU",alpha3:"GUM",aliases:["Gu\xE5h\xE5n"]},{name:"Guatemala",alpha2:"GT",alpha3:"GTM",aliases:["Rep\xFAblica de Guatemala"]},{name:"Guernsey",alpha2:"GG",alpha3:"GGY",aliases:[]},{name:"Guinea",alpha2:"GN",alpha3:"GIN",aliases:["R\xE9publique de Guin\xE9e"]},{name:"Guinea-Bissau",alpha2:"GW",alpha3:"GNB",aliases:["Rep\xFAblica da Guin\xE9-Bissau"]},{name:"Guyana",alpha2:"GY",alpha3:"GUY",aliases:["Co-operative Republic of Guyana"]},{name:"Haiti",alpha2:"HT",alpha3:"HTI",aliases:["R\xE9publique d'Ha\xEFti","Repiblik d Ayiti"]},{name:"Holy See",alpha2:"VA",alpha3:"VAT",aliases:["Vatican City","Vatican City State","Santa Sede"]},{name:"Honduras",alpha2:"HN",alpha3:"HND",aliases:["Rep\xFAblica de Honduras"]},{name:"Hong Kong",alpha2:"HK",alpha3:"HKG",aliases:["\u9999\u6E2F","Xianggang","Hong Kong SAR"]},{name:"Hungary",alpha2:"HU",alpha3:"HUN",aliases:["Magyarorsz\xE1g"]},{name:"Iceland",alpha2:"IS",alpha3:"ISL",aliases:["\xCDsland"]},{name:"India",alpha2:"IN",alpha3:"IND",aliases:["\u092D\u093E\u0930\u0924","Republic of India","Bharat"]},{name:"Indonesia",alpha2:"ID",alpha3:"IDN",aliases:["Republik Indonesia"]},{name:"Iran, Islamic Republic of",alpha2:"IR",alpha3:"IRN",aliases:["\u0627\u06CC\u0631\u0627\u0646","Islamic Republic of Iran"]},{name:"Iraq",alpha2:"IQ",alpha3:"IRQ",aliases:["\u0627\u0644\u0639\u0631\u0627\u0642","Republic of Iraq"]},{name:"Ireland",alpha2:"IE",alpha3:"IRL",aliases:["\xC9ire","Republic of Ireland"]},{name:"Isle of Man",alpha2:"IM",alpha3:"IMN",aliases:["Mann","Ellan Vannin"]},{name:"Israel",alpha2:"IL",alpha3:"ISR",aliases:["\u05D9\u05B4\u05E9\u05B0\u05C2\u05E8\u05B8\u05D0\u05B5\u05DC","State of Israel","Med\u012Bnat Yisr\u0101'el"]},{name:"Italy",alpha2:"IT",alpha3:"ITA",aliases:["Italia","Repubblica Italiana"]},{name:"Jamaica",alpha2:"JM",alpha3:"JAM",aliases:[]},{name:"Japan",alpha2:"JP",alpha3:"JPN",aliases:["\u65E5\u672C","Nihon","Nippon"]},{name:"Jersey",alpha2:"JE",alpha3:"JEY",aliases:[]},{name:"Jordan",alpha2:"JO",alpha3:"JOR",aliases:["\u0627\u0644\u0623\u0631\u062F\u0646","Hashemite Kingdom of Jordan"]},{name:"Kazakhstan",alpha2:"KZ",alpha3:"KAZ",aliases:["\u049A\u0430\u0437\u0430\u049B\u0441\u0442\u0430\u043D","Republic of Kazakhstan"]},{name:"Kenya",alpha2:"KE",alpha3:"KEN",aliases:["Republic of Kenya"]},{name:"Kiribati",alpha2:"KI",alpha3:"KIR",aliases:[]},{name:"North Korea",alpha2:"KP",alpha3:"PRK",aliases:["North Korea","\uC870\uC120\uBBFC\uC8FC\uC8FC\uC758\uC778\uBBFC\uACF5\uD654\uAD6D","Democratic People's Republic of Korea"]},{name:"South Korea",alpha2:"KR",alpha3:"KOR",aliases:["South Korea","\uB300\uD55C\uBBFC\uAD6D","Republic of Korea"]},{name:"Kosovo",alpha2:"XK",alpha3:"XKS",aliases:["Kosova","\u041A\u043E\u0441\u043E\u0432\u043E","Republic of Kosovo","Republika e Kosov\xEBs"]},{name:"Kuwait",alpha2:"KW",alpha3:"KWT",aliases:["\u0627\u0644\u0643\u0648\u064A\u062A","State of Kuwait"]},{name:"Kyrgyzstan",alpha2:"KG",alpha3:"KGZ",aliases:["\u041A\u044B\u0440\u0433\u044B\u0437\u0441\u0442\u0430\u043D","Kyrgyz Republic"]},{name:"Lao People's Democratic Republic",alpha2:"LA",alpha3:"LAO",aliases:["Laos","\u0EAA\u0E9B\u0E9B\u0EA5\u0EB2\u0EA7"]},{name:"Latvia",alpha2:"LV",alpha3:"LVA",aliases:["Latvija"]},{name:"Lebanon",alpha2:"LB",alpha3:"LBN",aliases:["\u0644\u0628\u0646\u0627\u0646","Republic of Lebanon"]},{name:"Lesotho",alpha2:"LS",alpha3:"LSO",aliases:["Kingdom of Lesotho"]},{name:"Liberia",alpha2:"LR",alpha3:"LBR",aliases:["Republic of Liberia"]},{name:"Libya",alpha2:"LY",alpha3:"LBY",aliases:["Libyan Arab Jamahiriya"]},{name:"Liechtenstein",alpha2:"LI",alpha3:"LIE",aliases:["F\xFCrstentum Liechtenstein"]},{name:"Lithuania",alpha2:"LT",alpha3:"LTU",aliases:["Lietuva","Republic of Lithuania"]},{name:"Luxembourg",alpha2:"LU",alpha3:"LUX",aliases:["L\xEBtzebuerg","Luxembourg","Luxemburg"]},{name:"Macao",alpha2:"MO",alpha3:"MAC",aliases:["\u6FB3\u9580","Macao SAR","\xC0om\xE9n"]},{name:"Madagascar",alpha2:"MG",alpha3:"MDG",aliases:["Repoblikan'i Madagasikara","R\xE9publique de Madagascar"]},{name:"Malawi",alpha2:"MW",alpha3:"MWI",aliases:["Republic of Malawi"]},{name:"Malaysia",alpha2:"MY",alpha3:"MYS",aliases:["Malaysia","\u0645\u0627\u0644\u064A\u0632\u064A\u0627"]},{name:"Maldives",alpha2:"MV",alpha3:"MDV",aliases:["\u078B\u07A8\u0788\u07AC\u0780\u07A8\u0783\u07A7\u0787\u07B0\u0796\u07AD\u078E\u07AC","Dhivehi Raajje","Republic of Maldives"]},{name:"Mali",alpha2:"ML",alpha3:"MLI",aliases:["R\xE9publique du Mali"]},{name:"Malta",alpha2:"MT",alpha3:"MLT",aliases:["Repubblika ta' Malta","Republic of Malta"]},{name:"Marshall Islands",alpha2:"MH",alpha3:"MHL",aliases:["Aolep\u0101n Aor\u014Dkin M\u0327aje\u013C","Republic of the Marshall Islands"]},{name:"Martinique",alpha2:"MQ",alpha3:"MTQ",aliases:[]},{name:"Mauritania",alpha2:"MR",alpha3:"MRT",aliases:["\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627","Islamic Republic of Mauritania"]},{name:"Mauritius",alpha2:"MU",alpha3:"MUS",aliases:["Republic of Mauritius","R\xE9publique de Maurice"]},{name:"Mayotte",alpha2:"YT",alpha3:"MYT",aliases:[]},{name:"Mexico",alpha2:"MX",alpha3:"MEX",aliases:["M\xE9xico","Estados Unidos Mexicanos"]},{name:"Micronesia, Federated States of",alpha2:"FM",alpha3:"FSM",aliases:["Micronesia","Federated States of Micronesia"]},{name:"Moldova",alpha2:"MD",alpha3:"MDA",aliases:["Moldova","Republica Moldova"]},{name:"Monaco",alpha2:"MC",alpha3:"MCO",aliases:["Principaut\xE9 de Monaco"]},{name:"Mongolia",alpha2:"MN",alpha3:"MNG",aliases:["\u041C\u043E\u043D\u0433\u043E\u043B \u0443\u043B\u0441","Mongol Uls"]},{name:"Montenegro",alpha2:"ME",alpha3:"MNE",aliases:["\u0426\u0440\u043D\u0430 \u0413\u043E\u0440\u0430","Crna Gora"]},{name:"Montserrat",alpha2:"MS",alpha3:"MSR",aliases:[]},{name:"Morocco",alpha2:"MA",alpha3:"MAR",aliases:["\u0627\u0644\u0645\u063A\u0631\u0628","Maroc","Kingdom of Morocco"]},{name:"Mozambique",alpha2:"MZ",alpha3:"MOZ",aliases:["Mo\xE7ambique","Republic of Mozambique"]},{name:"Myanmar",alpha2:"MM",alpha3:"MMR",aliases:["Burma","\u1019\u103C\u1014\u103A\u1019\u102C","Myanma"]},{name:"Namibia",alpha2:"NA",alpha3:"NAM",aliases:["Republic of Namibia"]},{name:"Nauru",alpha2:"NR",alpha3:"NRU",aliases:["Naoero","Republic of Nauru"]},{name:"Nepal",alpha2:"NP",alpha3:"NPL",aliases:["\u0928\u0947\u092A\u093E\u0932","Federal Democratic Republic of Nepal"]},{name:"Netherlands",alpha2:"NL",alpha3:"NLD",aliases:["Nederland","Holland","Kingdom of the Netherlands"]},{name:"New Caledonia",alpha2:"NC",alpha3:"NCL",aliases:["Nouvelle-Cal\xE9donie"]},{name:"New Zealand",alpha2:"NZ",alpha3:"NZL",aliases:["Aotearoa"]},{name:"Nicaragua",alpha2:"NI",alpha3:"NIC",aliases:["Rep\xFAblica de Nicaragua"]},{name:"Niger",alpha2:"NE",alpha3:"NER",aliases:["R\xE9publique du Niger"]},{name:"Nigeria",alpha2:"NG",alpha3:"NGA",aliases:["Federal Republic of Nigeria"]},{name:"Niue",alpha2:"NU",alpha3:"NIU",aliases:[]},{name:"Norfolk Island",alpha2:"NF",alpha3:"NFK",aliases:[]},{name:"North Macedonia",alpha2:"MK",alpha3:"MKD",aliases:["Republic of North Macedonia","\u0421\u0435\u0432\u0435\u0440\u043D\u0430 \u041C\u0430\u043A\u0435\u0434\u043E\u043D\u0438\u0458\u0430"]},{name:"Northern Mariana Islands",alpha2:"MP",alpha3:"MNP",aliases:["Saipan","Commonwealth of the Northern Mariana Islands"]},{name:"Norway",alpha2:"NO",alpha3:"NOR",aliases:["Norge","Noreg","Norrige"]},{name:"Oman",alpha2:"OM",alpha3:"OMN",aliases:["\u0639\u0645\u0627\u0646","Sultanate of Oman"]},{name:"Pakistan",alpha2:"PK",alpha3:"PAK",aliases:["\u067E\u0627\u06A9\u0633\u062A\u0627\u0646","Islamic Republic of Pakistan"]},{name:"Palau",alpha2:"PW",alpha3:"PLW",aliases:["Beluu er a Belau","Republic of Palau"]},{name:"Palestine",alpha2:"PS",alpha3:"PSE",aliases:["\u0641\u0644\u0633\u0637\u064A\u0646","State of Palestine"]},{name:"Panama",alpha2:"PA",alpha3:"PAN",aliases:["Rep\xFAblica de Panam\xE1"]},{name:"Papua New Guinea",alpha2:"PG",alpha3:"PNG",aliases:["Papua Niugini"]},{name:"Paraguay",alpha2:"PY",alpha3:"PRY",aliases:["Rep\xFAblica del Paraguay"]},{name:"Peru",alpha2:"PE",alpha3:"PER",aliases:["Rep\xFAblica del Per\xFA"]},{name:"Philippines",alpha2:"PH",alpha3:"PHL",aliases:["Pilipinas","Republika ng Pilipinas"]},{name:"Poland",alpha2:"PL",alpha3:"POL",aliases:["Polska","Republic of Poland"]},{name:"Portugal",alpha2:"PT",alpha3:"PRT",aliases:["Rep\xFAblica Portuguesa"]},{name:"Puerto Rico",alpha2:"PR",alpha3:"PRI",aliases:[]},{name:"Qatar",alpha2:"QA",alpha3:"QAT",aliases:["\u0642\u0637\u0631","State of Qatar"]},{name:"R\xE9union",alpha2:"RE",alpha3:"REU",aliases:[]},{name:"Romania",alpha2:"RO",alpha3:"ROU",aliases:["Rom\xE2nia"]},{name:"Russian Federation",alpha2:"RU",alpha3:"RUS",aliases:["Russia","\u0420\u043E\u0441\u0441\u0438\u0439\u0441\u043A\u0430\u044F \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u044F"]},{name:"Rwanda",alpha2:"RW",alpha3:"RWA",aliases:["Repubulika y'u Rwanda","R\xE9publique du Rwanda"]},{name:"Saint Barth\xE9lemy",alpha2:"BL",alpha3:"BLM",aliases:["Saint-Barth\xE9lemy"]},{name:"Saint Helena, Ascension and Tristan da Cunha",alpha2:"SH",alpha3:"SHN",aliases:[]},{name:"Saint Kitts and Nevis",alpha2:"KN",alpha3:"KNA",aliases:[]},{name:"Saint Lucia",alpha2:"LC",alpha3:"LCA",aliases:[]},{name:"Saint Martin (French part)",alpha2:"MF",alpha3:"MAF",aliases:[]},{name:"Saint Pierre and Miquelon",alpha2:"PM",alpha3:"SPM",aliases:[]},{name:"Saint Vincent and the Grenadines",alpha2:"VC",alpha3:"VCT",aliases:[]},{name:"Samoa",alpha2:"WS",alpha3:"WSM",aliases:["S\u0101moa","Independent State of Samoa"]},{name:"San Marino",alpha2:"SM",alpha3:"SMR",aliases:["Serenissima Repubblica di San Marino"]},{name:"Sao Tome and Principe",alpha2:"ST",alpha3:"STP",aliases:["S\xE3o Tom\xE9 e Pr\xEDncipe"]},{name:"Saudi Arabia",alpha2:"SA",alpha3:"SAU",aliases:["\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0639\u0631\u0628\u064A\u0629 \u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629","Kingdom of Saudi Arabia","KSA"]},{name:"Senegal",alpha2:"SN",alpha3:"SEN",aliases:["R\xE9publique du S\xE9n\xE9gal"]},{name:"Serbia",alpha2:"RS",alpha3:"SRB",aliases:["\u0421\u0440\u0431\u0438\u0458\u0430","Srbija","Republic of Serbia"]},{name:"Seychelles",alpha2:"SC",alpha3:"SYC",aliases:["Repiblik Sesel","R\xE9publique des Seychelles"]},{name:"Sierra Leone",alpha2:"SL",alpha3:"SLE",aliases:["Republic of Sierra Leone"]},{name:"Singapore",alpha2:"SG",alpha3:"SGP",aliases:["\u65B0\u52A0\u5761","Singapura","Republic of Singapore"]},{name:"Sint Maarten (Dutch part)",alpha2:"SX",alpha3:"SXM",aliases:[]},{name:"Slovakia",alpha2:"SK",alpha3:"SVK",aliases:["Slovensko","Slovak Republic"]},{name:"Slovenia",alpha2:"SI",alpha3:"SVN",aliases:["Slovenija"]},{name:"Solomon Islands",alpha2:"SB",alpha3:"SLB",aliases:[]},{name:"Somalia",alpha2:"SO",alpha3:"SOM",aliases:["Soomaaliya","\u062C\u0645\u0647\u0648\u0631\u064A\u0629 \u0627\u0644\u0635\u0648\u0645\u0627\u0644","Federal Republic of Somalia"]},{name:"South Africa",alpha2:"ZA",alpha3:"ZAF",aliases:["RSA","Republic of South Africa"]},{name:"South Sudan",alpha2:"SS",alpha3:"SSD",aliases:["Republic of South Sudan"]},{name:"Spain",alpha2:"ES",alpha3:"ESP",aliases:["Espa\xF1a","Reino de Espa\xF1a"]},{name:"Sri Lanka",alpha2:"LK",alpha3:"LKA",aliases:["\u0DC1\u0DCA\u200D\u0DBB\u0DD3 \u0DBD\u0D82\u0D9A\u0DCF\u0DC0","\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8","Democratic Socialist Republic of Sri Lanka"]},{name:"Sudan",alpha2:"SD",alpha3:"SDN",aliases:["\u0627\u0644\u0633\u0648\u062F\u0627\u0646","Republic of the Sudan"]},{name:"Suriname",alpha2:"SR",alpha3:"SUR",aliases:["Republiek Suriname"]},{name:"Svalbard and Jan Mayen",alpha2:"SJ",alpha3:"SJM",aliases:[]},{name:"Sweden",alpha2:"SE",alpha3:"SWE",aliases:["Sverige","Kingdom of Sweden"]},{name:"Switzerland",alpha2:"CH",alpha3:"CHE",aliases:["Schweiz","Suisse","Svizzera","Svizra","Swiss Confederation"]},{name:"Syrian Arab Republic",alpha2:"SY",alpha3:"SYR",aliases:["\u0633\u0648\u0631\u064A\u0627","Syria"]},{name:"Taiwan, Province of China",alpha2:"TW",alpha3:"TWN",aliases:["\u53F0\u7063","\u81FA\u7063","Taiwan","Republic of China","ROC"]},{name:"Tajikistan",alpha2:"TJ",alpha3:"TJK",aliases:["\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D","Republic of Tajikistan"]},{name:"Tanzania, United Republic of",alpha2:"TZ",alpha3:"TZA",aliases:["Tanzania","Jamhuri ya Muungano wa Tanzania"]},{name:"Thailand",alpha2:"TH",alpha3:"THA",aliases:["\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28\u0E44\u0E17\u0E22","Prathet Thai","Kingdom of Thailand"]},{name:"Timor-Leste",alpha2:"TL",alpha3:"TLS",aliases:["East Timor","Rep\xFAblica Democr\xE1tica de Timor-Leste"]},{name:"Togo",alpha2:"TG",alpha3:"TGO",aliases:["R\xE9publique Togolaise"]},{name:"Tokelau",alpha2:"TK",alpha3:"TKL",aliases:[]},{name:"Tonga",alpha2:"TO",alpha3:"TON",aliases:["Pule\u02BBanga Fakatu\u02BBi \u02BBo Tonga","Kingdom of Tonga"]},{name:"Trinidad and Tobago",alpha2:"TT",alpha3:"TTO",aliases:[]},{name:"Tunisia",alpha2:"TN",alpha3:"TUN",aliases:["\u062A\u0648\u0646\u0633","Republic of Tunisia"]},{name:"T\xFCrkiye",alpha2:"TR",alpha3:"TUR",aliases:["Turkey","T\xFCrkiye Cumhuriyeti","Republic of T\xFCrkiye"]},{name:"Turkmenistan",alpha2:"TM",alpha3:"TKM",aliases:["T\xFCrkmenistan"]},{name:"Turks and Caicos Islands",alpha2:"TC",alpha3:"TCA",aliases:[]},{name:"Tuvalu",alpha2:"TV",alpha3:"TUV",aliases:[]},{name:"Uganda",alpha2:"UG",alpha3:"UGA",aliases:["Republic of Uganda"]},{name:"Ukraine",alpha2:"UA",alpha3:"UKR",aliases:["\u0423\u043A\u0440\u0430\u0457\u043D\u0430"]},{name:"United Arab Emirates",alpha2:"AE",alpha3:"ARE",aliases:["\u0627\u0644\u0625\u0645\u0627\u0631\u0627\u062A \u0627\u0644\u0639\u0631\u0628\u064A\u0629 \u0627\u0644\u0645\u062A\u062D\u062F\u0629","UAE"]},{name:"United Kingdom",alpha2:"GB",alpha3:"GBR",aliases:["United Kingdom","UK","Britain","Great Britain"]},{name:"United States of America",alpha2:"US",alpha3:"USA",aliases:["United States","USA","America","US"]},{name:"Uruguay",alpha2:"UY",alpha3:"URY",aliases:["Rep\xFAblica Oriental del Uruguay"]},{name:"Uzbekistan",alpha2:"UZ",alpha3:"UZB",aliases:["O\u02BBzbekiston","Republic of Uzbekistan"]},{name:"Vanuatu",alpha2:"VU",alpha3:"VUT",aliases:["Ripablik blong Vanuatu"]},{name:"Venezuela",alpha2:"VE",alpha3:"VEN",aliases:["Venezuela","Rep\xFAblica Bolivariana de Venezuela"]},{name:"Vietnam",alpha2:"VN",alpha3:"VNM",aliases:["Vi\u1EC7t Nam","Socialist Republic of Vietnam"]},{name:"Virgin Islands (British)",alpha2:"VG",alpha3:"VGB",aliases:["British Virgin Islands"]},{name:"Virgin Islands (U.S.)",alpha2:"VI",alpha3:"VIR",aliases:["U.S. Virgin Islands"]},{name:"Wallis and Futuna",alpha2:"WF",alpha3:"WLF",aliases:[]},{name:"Western Sahara",alpha2:"EH",alpha3:"ESH",aliases:["\u0627\u0644\u0635\u062D\u0631\u0627\u0621 \u0627\u0644\u063A\u0631\u0628\u064A\u0629","Sahara Occidental"]},{name:"Yemen",alpha2:"YE",alpha3:"YEM",aliases:["\u0627\u0644\u064A\u0645\u0646","Republic of Yemen"]},{name:"Zambia",alpha2:"ZM",alpha3:"ZMB",aliases:["Republic of Zambia"]},{name:"Zimbabwe",alpha2:"ZW",alpha3:"ZWE",aliases:["Republic of Zimbabwe"]}];var K={byName:new Map,byAlpha2:new Map,byAlpha3:new Map,byAlias:new Map};for(let i of J){K.byName.set(i.name.toLowerCase(),i),K.byAlpha2.set(i.alpha2.toLowerCase(),i),K.byAlpha3.set(i.alpha3.toLowerCase(),i);for(let e of i.aliases)K.byAlias.set(e.toLowerCase(),i);}var Q=65,ye=90;var Ee={A:"0-9A-Za-z",B:"0-9A-Z",C:"A-Za-z",F:"0-9",L:"a-z",U:"A-Z",W:"0-9a-z"};function ee(i){let e=i.toUpperCase();return (e.slice(4)+e.slice(0,4)).split("").map(t=>{let r=t.charCodeAt(0);return r>=Q&&r<=ye?String(r-Q+10):t}).join("")}function ne(i){let e=i,n;for(;e.length>2;)n=e.slice(0,9),e=Number.parseInt(n,10)%97+e.slice(n.length);return Number.parseInt(e,10)%97}function be(i){var n;let e=(n=i.match(/(.{3})/g))==null?void 0:n.map(t=>{let r=t.slice(0,1),o=Number.parseInt(t.slice(1),10);return `([${Ee[r]||""}]{${o}})`});return new RegExp(`^${(e==null?void 0:e.join(""))||""}$`)}var a=class{constructor(e,n,t,r){this.countryCode=e,this.length=n,this.structure=t,this.example=r,this._cachedRegex=be(this.structure);}_regex(){return this._cachedRegex}isValid(e){return this.length===e.length&&this.countryCode===e.slice(0,2)&&this._regex().test(e.slice(4))&&ne(ee(e))===1}toBBAN(e,n=""){let t=this._regex().exec(e.slice(4));return t?t.slice(1).join(n):""}fromBBAN(e){if(!this.isValidBBAN(e))throw new Error("Invalid BBAN");let t=`0${98-ne(ee(`${this.countryCode}00${e}`))}`.slice(-2);return `${this.countryCode}${t}${e}`}isValidBBAN(e){return this.length-4===e.length&&this._regex().test(e)}},we={};function s(i){we[i.countryCode]=i;}s(new a("AD",24,"F04F04A12","AD1200012030200359100100"));s(new a("AE",23,"F03F16","AE070331234567890123456"));s(new a("AL",28,"F08A16","AL47212110090000000235698741"));s(new a("AT",20,"F05F11","AT611904300234573201"));s(new a("AZ",28,"U04A20","AZ21NABZ00000000137010001944"));s(new a("BA",20,"F03F03F08F02","BA391290079401028494"));s(new a("BE",16,"F03F07F02","BE68539007547034"));s(new a("BG",22,"U04F04F02A08","BG80BNBG96611020345678"));s(new a("BH",22,"U04A14","BH67BMAG00001299123456"));s(new a("BR",29,"F08F05F10U01A01","BR9700360305000010009795493P1"));s(new a("BY",28,"A04F04A16","BY13NBRB3600900000002Z00AB00"));s(new a("CH",21,"F05A12","CH9300762011623852957"));s(new a("CR",22,"F04F14","CR72012300000171549015"));s(new a("CY",28,"F03F05A16","CY17002001280000001200527600"));s(new a("CZ",24,"F04F06F10","CZ6508000000192000145399"));s(new a("DE",22,"F08F10","DE89370400440532013000"));s(new a("DK",18,"F04F09F01","DK5000400440116243"));s(new a("DO",28,"U04F20","DO28BAGR00000001212453611324"));s(new a("EE",20,"F02F02F11F01","EE382200221020145685"));s(new a("EG",29,"F04F04F17","EG800002000156789012345180002"));s(new a("ES",24,"F04F04F01F01F10","ES9121000418450200051332"));s(new a("FI",18,"F06F07F01","FI2112345600000785"));s(new a("FO",18,"F04F09F01","FO6264600001631634"));s(new a("FR",27,"F05F05A11F02","FR1420041010050500013M02606"));s(new a("GB",22,"U04F06F08","GB29NWBK60161331926819"));s(new a("GE",22,"U02F16","GE29NB0000000101904917"));s(new a("GI",23,"U04A15","GI75NWBK000000007099453"));s(new a("GL",18,"F04F09F01","GL8964710001000206"));s(new a("GR",27,"F03F04A16","GR1601101250000000012300695"));s(new a("GT",28,"A04A20","GT82TRAJ01020000001210029690"));s(new a("HR",21,"F07F10","HR1210010051863000160"));s(new a("HU",28,"F03F04F01F15F01","HU42117730161111101800000000"));s(new a("IE",22,"U04F06F08","IE29AIBK93115212345678"));s(new a("IL",23,"F03F03F13","IL620108000000099999999"));s(new a("IS",26,"F04F02F06F10","IS140159260076545510730339"));s(new a("IT",27,"U01F05F05A12","IT60X0542811101000000123456"));s(new a("IQ",23,"U04F03A12","IQ98NBIQ850123456789012"));s(new a("JO",30,"A04F22","JO15AAAA1234567890123456789012"));s(new a("KW",30,"U04A22","KW81CBKU0000000000001234560101"));s(new a("KZ",20,"F03A13","KZ86125KZT5004100100"));s(new a("LB",28,"F04A20","LB62099900000001001901229114"));s(new a("LC",32,"U04F24","LC07HEMM000100010012001200013015"));s(new a("LI",21,"F05A12","LI21088100002324013AA"));s(new a("LT",20,"F05F11","LT121000011101001000"));s(new a("LU",20,"F03A13","LU280019400644750000"));s(new a("LV",21,"U04A13","LV80BANK0000435195001"));s(new a("MC",27,"F05F05A11F02","MC5811222000010123456789030"));s(new a("MD",24,"U02A18","MD24AG000225100013104168"));s(new a("ME",22,"F03F13F02","ME25505000012345678951"));s(new a("MK",19,"F03A10F02","MK07250120000058984"));s(new a("MR",27,"F05F05F11F02","MR1300020001010000123456753"));s(new a("MT",31,"U04F05A18","MT84MALT011000012345MTLCAST001S"));s(new a("MU",30,"U04F02F02F12F03U03","MU17BOMM0101101030300200000MUR"));s(new a("NL",18,"U04F10","NL91ABNA0417164300"));s(new a("NO",15,"F04F06F01","NO9386011117947"));s(new a("PK",24,"U04A16","PK36SCBL0000001123456702"));s(new a("PL",28,"F08F16","PL61109010140000071219812874"));s(new a("PS",29,"U04A21","PS92PALS000000000400123456702"));s(new a("PT",25,"F04F04F11F02","PT50000201231234567890154"));s(new a("QA",29,"U04A21","QA30AAAA123456789012345678901"));s(new a("RO",24,"U04A16","RO49AAAA1B31007593840000"));s(new a("RS",22,"F03F13F02","RS35260005601001611379"));s(new a("SA",24,"F02A18","SA0380000000608010167519"));s(new a("SC",31,"U04F04F16U03","SC18SSCB11010000000000001497USD"));s(new a("SE",24,"F03F16F01","SE4550000000058398257466"));s(new a("SI",19,"F05F08F02","SI56263300012039086"));s(new a("SK",24,"F04F06F10","SK3112000000198742637541"));s(new a("SM",27,"U01F05F05A12","SM86U0322509800000000270100"));s(new a("ST",25,"F08F11F02","ST68000100010051845310112"));s(new a("SV",28,"U04F20","SV62CENR00000000000000700025"));s(new a("TL",23,"F03F14F02","TL380080012345678910157"));s(new a("TN",24,"F02F03F13F02","TN5910006035183598478831"));s(new a("TR",26,"F05F01A16","TR330006100519786457841326"));s(new a("UA",29,"F25","UA511234567890123456789012345"));s(new a("VA",22,"F18","VA59001123000012345678"));s(new a("VG",24,"U04F16","VG96VPVG0000012345678901"));s(new a("XK",20,"F04F10F02","XK051212012345678906"));s(new a("AO",25,"F21","AO69123456789012345678901"));s(new a("BF",27,"F23","BF2312345678901234567890123"));s(new a("BI",16,"F12","BI41123456789012"));s(new a("BJ",28,"F24","BJ39123456789012345678901234"));s(new a("CI",28,"U02F22","CI70CI1234567890123456789012"));s(new a("CM",27,"F23","CM9012345678901234567890123"));s(new a("CV",25,"F21","CV30123456789012345678901"));s(new a("DZ",24,"F20","DZ8612345678901234567890"));s(new a("IR",26,"F22","IR861234568790123456789012"));s(new a("MG",27,"F23","MG1812345678901234567890123"));s(new a("ML",28,"U01F23","ML15A12345678901234567890123"));s(new a("MZ",25,"F21","MZ25123456789012345678901"));s(new a("SN",28,"U01F23","SN52A12345678901234567890123"));s(new a("GF",27,"F05F05A11F02","GF121234512345123456789AB13"));s(new a("GP",27,"F05F05A11F02","GP791234512345123456789AB13"));s(new a("MQ",27,"F05F05A11F02","MQ221234512345123456789AB13"));s(new a("RE",27,"F05F05A11F02","RE131234512345123456789AB13"));s(new a("PF",27,"F05F05A11F02","PF281234512345123456789AB13"));s(new a("YT",27,"F05F05A11F02","YT021234512345123456789AB13"));s(new a("NC",27,"F05F05A11F02","NC551234512345123456789AB13"));s(new a("BL",27,"F05F05A11F02","BL391234512345123456789AB13"));s(new a("MF",27,"F05F05A11F02","MF551234512345123456789AB13"));s(new a("PM",27,"F05F05A11F02","PM071234512345123456789AB13"));s(new a("WF",27,"F05F05A11F02","WF621234512345123456789AB13"));var f=class i extends p{static create(e,n){if(!e||typeof e!="object")throw new Error("ExOptional.create: type must be a valid field");if(!("_def"in e)||!e._def||typeof e._def!="object")throw new Error("ExOptional.create: type is not a valid ExpressCSV field");if(!("typeName"in e._def)||typeof e._def.typeName!="string")throw new Error("ExOptional.create: type is missing a typeName");if(n!==void 0&&typeof n!="object")throw new Error("ExOptional.create: options must be an object");if((n==null?void 0:n.when)!==void 0&&typeof n.when!="function")throw new Error("ExOptional.create: options.when must be a function");return new i({typeName:"ExOptional",innerType:e,when:n==null?void 0:n.when,checks:[]})}unwrap(){return this._def.innerType}optional(){return this}default(e){let n=this._def.innerType._def;return n.defaultValue=e,this}};var S=class extends f{};var R=class extends f{output(e){return this._def.innerType.output(e),this._def.outputFormat=e,this}};var k=class extends f{output(e){return this._def.innerType.output(e),this}};var v=class extends f{min(e,n){return this._def.innerType.min(e,n),this}max(e,n){return this._def.innerType.max(e,n),this}integer(e){return this._def.innerType.integer(e),this}multipleOf(e,n){return this._def.innerType.multipleOf(e,n),this}percentage(){return this._def.innerType.percentage(),this}currency(e){return this._def.innerType.currency(e),this}};var F=class extends f{caseSensitive(e=true){return this._def.innerType.caseSensitive(e),this}},M=class extends f{caseSensitive(e=true){return this._def.innerType.caseSensitive(e),this}min(e,n){return this._def.innerType.min(e,n),this}max(e,n){return this._def.innerType.max(e,n),this}};var N=class extends f{uuid(e){return this._def.innerType.uuid(e),this}ip(e){return this._def.innerType.ip(e),this}url(e){return this._def.innerType.url(e),this}email(e){return this._def.innerType.email(e),this}phone(e){return this._def.innerType.phone(e),this}country(e){return this._def.innerType.country(e),this}max(e,n){return this._def.innerType.max(e,n),this}min(e,n){return this._def.innerType.min(e,n),this}length(e,n){return this._def.innerType.length(e,n),this}includes(e,n){return this._def.innerType.includes(e,n),this}startsWith(e,n){return this._def.innerType.startsWith(e,n),this}endsWith(e,n){return this._def.innerType.endsWith(e,n),this}regex(e,n){return this._def.innerType.regex(e,n),this}alphabetical(e){return this._def.innerType.alphabetical(e),this}alphanumerical(e){return this._def.innerType.alphanumerical(e),this}numerical(e){return this._def.innerType.numerical(e),this}iban(e){return this._def.innerType.iban(e),this}bic(e){return this._def.innerType.bic(e),this}gtin(e){return this._def.innerType.gtin(e),this}currencyCode(e){return this._def.innerType.currencyCode(e),this}};var I=class extends f{precision(e,n){return this._def.innerType.precision(e,n),this}};var D=class i extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.create: options.message must be a string");return new i({typeName:"ExString",checks:[],message:e==null?void 0:e.message})}optional(){return new N({typeName:"ExOptional",innerType:this})}uuid(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.uuid: options must be an object");if((e==null?void 0:e.version)!==void 0&&!["v1","v4","v5","all"].includes(e.version))throw new Error("ExString.uuid: options.version must be 'v1', 'v4', 'v5', or 'all'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.uuid: options.message must be a string");let n=(e==null?void 0:e.version)||"all",t=e==null?void 0:e.message;if(this._def.checks.findIndex(l=>{var u;return l.type==="uuid"&&((u=l.params)==null?void 0:u.version)===n})!==-1)return this;let o=this._addCheck("uuid",{version:n},t);return this._def.checks.push(o),this}ip(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.ip: options must be an object");if((e==null?void 0:e.version)!==void 0&&!["v4","v6","all"].includes(e.version))throw new Error("ExString.ip: options.version must be 'v4', 'v6', or 'all'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.ip: options.message must be a string");let n=(e==null?void 0:e.version)||"all",t=e==null?void 0:e.message;if(this._def.checks.findIndex(l=>{var u;return l.type==="ipAddress"&&((u=l.params)==null?void 0:u.version)===n})!==-1)return this;let o=this._addCheck("ipAddress",{version:n},t);return this._def.checks.push(o),this}url(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.url: options must be an object");if((e==null?void 0:e.allowedProtocols)!==void 0&&!Array.isArray(e.allowedProtocols))throw new Error("ExString.url: options.allowedProtocols must be an array");if((e==null?void 0:e.allowedDomains)!==void 0&&!Array.isArray(e.allowedDomains))throw new Error("ExString.url: options.allowedDomains must be an array");if((e==null?void 0:e.allowSubdomains)!==void 0&&typeof e.allowSubdomains!="boolean")throw new Error("ExString.url: options.allowSubdomains must be a boolean");if((e==null?void 0:e.allowPaths)!==void 0&&typeof e.allowPaths!="boolean")throw new Error("ExString.url: options.allowPaths must be a boolean");if((e==null?void 0:e.allowQueryParams)!==void 0&&typeof e.allowQueryParams!="boolean")throw new Error("ExString.url: options.allowQueryParams must be a boolean");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.url: options.message must be a string");let n={allowedProtocols:e==null?void 0:e.allowedProtocols,allowedDomains:e==null?void 0:e.allowedDomains,allowSubdomains:(e==null?void 0:e.allowSubdomains)!==void 0?e.allowSubdomains:true,allowPaths:(e==null?void 0:e.allowPaths)!==void 0?e.allowPaths:true,allowQueryParams:(e==null?void 0:e.allowQueryParams)!==void 0?e.allowQueryParams:true};if(this._def.checks.findIndex(o=>o.type!=="url"||!o.params?false:JSON.stringify(o.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("url",n,e==null?void 0:e.message);return this._def.checks.push(r),this}email(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.email: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.email: options.message must be a string");if(this._findExistingCheck("email").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("email",{},t);return this._def.checks.push(r),this}phone(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.phone: options must be an object");if((e==null?void 0:e.allowedCountries)!==void 0&&!Array.isArray(e.allowedCountries))throw new Error("ExString.phone: options.allowedCountries must be an array");if((e==null?void 0:e.format)!==void 0&&!["international","national","both"].includes(e.format))throw new Error("ExString.phone: options.format must be 'international', 'national', or 'both'");if((e==null?void 0:e.output)!==void 0&&!["e164","formatted","digits"].includes(e.output))throw new Error("ExString.phone: options.output must be 'e164', 'formatted', or 'digits'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.phone: options.message must be a string");let n={allowedCountries:e==null?void 0:e.allowedCountries,format:(e==null?void 0:e.format)||"international",output:(e==null?void 0:e.output)||"e164"};if(this._def.checks.findIndex(o=>o.type!=="phone"||!o.params?false:JSON.stringify(o.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("phone",n,e==null?void 0:e.message);return this._def.checks.push(r),this}country(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.country: options must be an object");if((e==null?void 0:e.output)!==void 0&&!["name","2-letter","3-letter"].includes(e.output))throw new Error("ExString.country: options.output must be 'name', '2-letter', or '3-letter'");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.country: options.message must be a string");let n={output:(e==null?void 0:e.output)||"name"};if(this._def.checks.findIndex(o=>{var l;return o.type==="country"&&((l=o.params)==null?void 0:l.output)===n.output})!==-1)return this;let r=this._addCheck("country",n,e==null?void 0:e.message);return this._def.checks.push(r),this}max(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExString.max: maxLength must be a number");if(e<0||!Number.isInteger(e))throw new Error("ExString.max: maxLength must be a non-negative integer");if(n!==void 0&&typeof n!="object")throw new Error("ExString.max: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.max: options.message must be a string");let t=this._findExistingCheck("max");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e>=m)return this}let r=this._findExistingCheck("min");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&r.check.params.value>e)throw new Error("ExString.max: max cannot be less than min");let o=n==null?void 0:n.message,l=this._addCheck("max",{value:e},o);return this._replaceOrAddCheck(l,t.index),this}min(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExString.min: minLength must be a number");if(e<0||!Number.isInteger(e))throw new Error("ExString.min: minLength must be a non-negative integer");if(n!==void 0&&typeof n!="object")throw new Error("ExString.min: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.min: options.message must be a string");let t=this._findExistingCheck("min");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e<=m)return this}let r=this._findExistingCheck("max");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&e>r.check.params.value)throw new Error("ExString.min: min cannot be greater than max");let o=n==null?void 0:n.message,l=this._addCheck("min",{value:e},o);return this._replaceOrAddCheck(l,t.index),this}length(e,n){if(typeof e!="number"||Number.isNaN(e))throw new Error("ExString.length: exactLength must be a number");if(e<0||!Number.isInteger(e))throw new Error("ExString.length: exactLength must be a non-negative integer");if(n!==void 0&&typeof n!="object")throw new Error("ExString.length: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.length: options.message must be a string");let t=this._findExistingCheck("length"),r=n==null?void 0:n.message,o=this._addCheck("length",{value:e},r);return this._replaceOrAddCheck(o,t.index),this}includes(e,n){if(typeof e!="string")throw new Error("ExString.includes: substring must be a string");if(n!==void 0&&typeof n!="object")throw new Error("ExString.includes: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.includes: options.message must be a string");if(this._def.checks.findIndex(l=>{var u;return l.type==="includes"&&((u=l.params)==null?void 0:u.value)===e})!==-1)return this;let r=n==null?void 0:n.message,o=this._addCheck("includes",{value:e},r);return this._def.checks.push(o),this}startsWith(e,n){if(typeof e!="string")throw new Error("ExString.startsWith: prefix must be a string");if(n!==void 0&&typeof n!="object")throw new Error("ExString.startsWith: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.startsWith: options.message must be a string");if(this._def.checks.findIndex(l=>{var u;return l.type==="startsWith"&&((u=l.params)==null?void 0:u.value)===e})!==-1)return this;let r=n==null?void 0:n.message,o=this._addCheck("startsWith",{value:e},r);return this._def.checks.push(o),this}endsWith(e,n){if(typeof e!="string")throw new Error("ExString.endsWith: suffix must be a string");if(n!==void 0&&typeof n!="object")throw new Error("ExString.endsWith: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.endsWith: options.message must be a string");if(this._def.checks.findIndex(l=>{var u;return l.type==="endsWith"&&((u=l.params)==null?void 0:u.value)===e})!==-1)return this;let r=n==null?void 0:n.message,o=this._addCheck("endsWith",{value:e},r);return this._def.checks.push(o),this}regex(e,n){if(!(e instanceof RegExp))throw new Error("ExString.regex: pattern must be a RegExp");if(n!==void 0&&typeof n!="object")throw new Error("ExString.regex: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExString.regex: options.message must be a string");if(this._def.checks.findIndex(l=>{var c;if(l.type!=="regex"||!((c=l.params)!=null&&c.pattern))return false;let u=l.params.pattern;return u.source===e.source&&u.flags===e.flags})!==-1)return this;let r=n==null?void 0:n.message,o=this._addCheck("regex",{pattern:e},r);return this._def.checks.push(o),this}alphabetical(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.alphabetical: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.alphabetical: options.message must be a string");if(this._findExistingCheck("alphabetical").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("alphabetical",{},t);return this._def.checks.push(r),this}alphanumerical(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.alphanumerical: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.alphanumerical: options.message must be a string");if(this._findExistingCheck("alphanumerical").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("alphanumerical",{},t);return this._def.checks.push(r),this}numerical(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.numerical: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.numerical: options.message must be a string");if(this._findExistingCheck("numerical").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("numerical",{},t);return this._def.checks.push(r),this}iban(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.iban: options must be an object");if((e==null?void 0:e.allowedCountries)!==void 0&&!Array.isArray(e.allowedCountries))throw new Error("ExString.iban: options.allowedCountries must be an array");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.iban: options.message must be a string");let n={allowedCountries:e==null?void 0:e.allowedCountries};if(this._def.checks.findIndex(o=>o.type!=="iban"||!o.params?false:JSON.stringify(o.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("iban",n,e==null?void 0:e.message);return this._def.checks.push(r),this}bic(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.bic: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.bic: options.message must be a string");if(this._findExistingCheck("bic").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("bic",{},t);return this._def.checks.push(r),this}gtin(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.gtin: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.gtin: options.message must be a string");if(this._findExistingCheck("gtin").found)return this;let t=e==null?void 0:e.message,r=this._addCheck("gtin",{},t);return this._def.checks.push(r),this}currencyCode(e){if(e!==void 0&&typeof e!="object")throw new Error("ExString.currencyCode: options must be an object");if((e==null?void 0:e.allowedCurrencies)!==void 0&&!Array.isArray(e.allowedCurrencies))throw new Error("ExString.currencyCode: options.allowedCurrencies must be an array");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExString.currencyCode: options.message must be a string");let n={allowedCurrencies:e==null?void 0:e.allowedCurrencies};if(this._def.checks.findIndex(o=>o.type!=="currencyCode"||!o.params?false:JSON.stringify(o.params)===JSON.stringify(n))!==-1)return this;let r=this._addCheck("currencyCode",n,e==null?void 0:e.message);return this._def.checks.push(r),this}};new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z"));var Y=class extends p{min(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExNumber.min: value must be a number");if(n!==void 0&&typeof n!="object")throw new Error("ExNumber.min: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExNumber.min: options.message must be a string");let t=this._findExistingCheck("min");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e<=m)return this}let r=this._findExistingCheck("max");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&e>r.check.params.value)throw new Error("ExNumber.min: min cannot be greater than max");let o=n==null?void 0:n.message,l=this._addCheck("min",{value:e},o);return this._replaceOrAddCheck(l,t.index),this}max(e,n){var u,c;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExNumber.max: value must be a number");if(n!==void 0&&typeof n!="object")throw new Error("ExNumber.max: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExNumber.max: options.message must be a string");let t=this._findExistingCheck("max");if(t.found&&((u=t.check)!=null&&u.params)){let m=t.check.params.value;if(typeof m=="number"&&e>=m)return this}let r=this._findExistingCheck("min");if(r.found&&((c=r.check)!=null&&c.params)&&typeof r.check.params.value=="number"&&r.check.params.value>e)throw new Error("ExNumber.max: max cannot be less than min");let o=n==null?void 0:n.message,l=this._addCheck("max",{value:e},o);return this._replaceOrAddCheck(l,t.index),this}integer(e){if(e!==void 0&&typeof e!="object")throw new Error("ExNumber.integer: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExNumber.integer: options.message must be a string");let n=this._findExistingCheck("integer"),t=e==null?void 0:e.message,r=this._addCheck("integer",{},t);return this._replaceOrAddCheck(r,n.index),this}multipleOf(e,n){var l;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExNumber.multipleOf: value must be a number");if(e===0)throw new Error("ExNumber.multipleOf: value cannot be zero");if(n!==void 0&&typeof n!="object")throw new Error("ExNumber.multipleOf: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExNumber.multipleOf: options.message must be a string");let t=this._findExistingCheck("multipleOf");if(t.found&&((l=t.check)!=null&&l.params)){let u=t.check.params.value;if(typeof u=="number"&&e===u)return this}let r=n==null?void 0:n.message,o=this._addCheck("multipleOf",{value:e},r);return this._def.checks.push(o),this}},P=class i extends Y{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExNumber.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExNumber.create: options.message must be a string");return new i({typeName:"ExNumber",checks:[],message:e==null?void 0:e.message})}optional(){return new v({typeName:"ExOptional",innerType:this})}percentage(){if(this._def.currencyCode!==void 0)throw new Error("ExNumber.percentage: Cannot combine percentage with currency");return this._def.isPercentage=true,this}currency(e){if(typeof e!="string")throw new Error("ExNumber.currency: currencyCode must be a string");if(this._def.isPercentage)throw new Error("ExNumber.currency: Cannot combine currency with percentage");return this._def.currencyCode=e,this}};var A=class i extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExBoolean.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExBoolean.create: options.message must be a string");if((e==null?void 0:e.control)!==void 0&&e.control!=="toggle"&&e.control!=="checkbox"&&e.control!=="dropdown")throw new Error('ExBoolean.create: options.control must be "toggle", "checkbox", or "dropdown"');return new i({typeName:"ExBoolean",control:e==null?void 0:e.control,message:e==null?void 0:e.message,checks:[]})}optional(){return new S({typeName:"ExOptional",innerType:this})}};var O=class i extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExDate.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExDate.create: options.message must be a string");let n=new i({typeName:"ExDate"});return e!=null&&e.message&&(n._def.message=e.message),n}optional(){return new R({typeName:"ExOptional",innerType:this})}output(e){if(typeof e!="string")throw new Error("ExDate.output: template must be a string");if(e.trim()==="")throw new Error("ExDate.output: template cannot be empty");return this._def.outputFormat=e,this}};var B=class i extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExTime.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExTime.create: options.message must be a string");return new i({typeName:"ExTime",checks:[],message:e==null?void 0:e.message})}optional(){return new I({typeName:"ExOptional",innerType:this})}precision(e,n){if(typeof e!="number"||Number.isNaN(e))throw new Error("ExTime.precision: precision must be a number");if(e<0||e>9||!Number.isInteger(e))throw new Error("ExTime.precision: precision must be an integer between 0 and 9");if(n!==void 0&&typeof n!="object")throw new Error("ExTime.precision: options must be an object");if((n==null?void 0:n.message)!==void 0&&typeof n.message!="string")throw new Error("ExTime.precision: options.message must be a string");return this._def.precision=e,n!=null&&n.message&&(this._def.message=n.message),this}};var V=class i extends p{static create(e){if(e!==void 0&&typeof e!="object")throw new Error("ExDatetime.create: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExDatetime.create: options.message must be a string");let n=new i({typeName:"ExDatetime",checks:[],message:e==null?void 0:e.message});if(e!=null&&e.message){let t=n._getDatetimeCheck();t&&(t.message=e.message);}return n}optional(){return new k({typeName:"ExOptional",innerType:this})}output(e){if(typeof e!="string")throw new Error("ExDatetime.output: template must be a string");if(e.trim()==="")throw new Error("ExDatetime.output: template cannot be empty");return this._def.outputFormat=e,this}allowOffset(e){if(e!==void 0&&typeof e!="object")throw new Error("ExDatetime.allowOffset: options must be an object");if((e==null?void 0:e.message)!==void 0&&typeof e.message!="string")throw new Error("ExDatetime.allowOffset: options.message must be a string");let n=e==null?void 0:e.message,t=this._getDatetimeCheck();return t!=null&&t.params&&(t.params.offset=true,n&&(t.message=n)),this}_getDatetimeCheck(){let e=this._def.checks.find(n=>n.type==="datetime");if(!e){let n=this._addCheck("datetime",{allowOffset:false});return this._def.checks.push(n),n}return e}};var _=class i extends p{static create(e,n={}){if(!Array.isArray(e))throw new Error("ExSelect.create: options must be an array");if(e.length===0)throw new Error("ExSelect.create: options array must not be empty");for(let r=0;r<e.length;r++){let o=e[r];if(!o||typeof o!="object")throw new Error(`ExSelect.create: option at index ${r} must be an object`);if(!("label"in o)||typeof o.label!="string")throw new Error(`ExSelect.create: option at index ${r} must have a string label`);if(!("value"in o))throw new Error(`ExSelect.create: option at index ${r} must have a value`);if(typeof o.value!="string"&&typeof o.value!="number")throw new Error(`ExSelect.create: option at index ${r} must have a string or number value`)}if(n!==void 0&&typeof n!="object")throw new Error("ExSelect.create: config must be an object");if(n.enforceCaseSensitiveMatch!==void 0&&typeof n.enforceCaseSensitiveMatch!="boolean")throw new Error("ExSelect.create: config.enforceCaseSensitiveMatch must be a boolean");if(n.allowCustom!==void 0&&typeof n.allowCustom!="boolean")throw new Error("ExSelect.create: config.allowCustom must be a boolean");if(n.message!==void 0&&typeof n.message!="string")throw new Error("ExSelect.create: config.message must be a string");return new i({typeName:"ExSelect",options:[...e],config:{enforceCaseSensitiveMatch:!!n.enforceCaseSensitiveMatch,allowCustom:!!n.allowCustom},checks:[],message:n.message})}optional(){return new F({typeName:"ExOptional",innerType:this})}caseSensitive(e=true){if(typeof e!="boolean")throw new Error("ExSelect.caseSensitive: enabled must be a boolean");return this._def.config.enforceCaseSensitiveMatch=e,this}};var U=class i extends p{static create(e,n={}){if(!Array.isArray(e))throw new Error("ExMultiselect.create: options must be an array");if(e.length===0)throw new Error("ExMultiselect.create: options array must not be empty");for(let r=0;r<e.length;r++){let o=e[r];if(!o||typeof o!="object")throw new Error(`ExMultiselect.create: option at index ${r} must be an object`);if(!("label"in o)||typeof o.label!="string")throw new Error(`ExMultiselect.create: option at index ${r} must have a string label`);if(!("value"in o))throw new Error(`ExMultiselect.create: option at index ${r} must have a value`);if(typeof o.value!="string"&&typeof o.value!="number")throw new Error(`ExMultiselect.create: option at index ${r} must have a string or number value`)}if(n!==void 0&&typeof n!="object")throw new Error("ExMultiselect.create: config must be an object");if(n.enforceCaseSensitiveMatch!==void 0&&typeof n.enforceCaseSensitiveMatch!="boolean")throw new Error("ExMultiselect.create: config.enforceCaseSensitiveMatch must be a boolean");if(n.message!==void 0&&typeof n.message!="string")throw new Error("ExMultiselect.create: config.message must be a string");return new i({typeName:"ExMultiselect",options:[...e],config:{enforceCaseSensitiveMatch:!!n.enforceCaseSensitiveMatch,allowCustom:false},checks:[],message:n.message})}optional(){return new M({typeName:"ExOptional",innerType:this})}caseSensitive(e=true){if(typeof e!="boolean")throw new Error("ExMultiselect.caseSensitive: enabled must be a boolean");return this._def.config.enforceCaseSensitiveMatch=e,this}min(e,n){var l,u;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExMultiselect.min: min must be a number");if(e<1||!Number.isInteger(e))throw new Error("ExMultiselect.min: min must be a positive integer (at least 1)");let t=this._findExistingCheck("min");if(t.found&&((l=t.check)!=null&&l.params)){let c=t.check.params.value;if(typeof c=="number"&&e<=c)return this}let r=this._findExistingCheck("max");if(r.found&&((u=r.check)!=null&&u.params)&&typeof r.check.params.value=="number"&&e>r.check.params.value)throw new Error("ExMultiselect.min: min cannot be greater than max");let o=this._addCheck("min",{value:e},n);return this._replaceOrAddCheck(o,t.index),this}max(e,n){var l,u;if(typeof e!="number"||Number.isNaN(e))throw new Error("ExMultiselect.max: max must be a number");if(e<1||!Number.isInteger(e))throw new Error("ExMultiselect.max: max must be a positive integer");let t=this._findExistingCheck("max");if(t.found&&((l=t.check)!=null&&l.params)){let c=t.check.params.value;if(typeof c=="number"&&e>=c)return this}let r=this._findExistingCheck("min");if(r.found&&((u=r.check)!=null&&u.params)&&typeof r.check.params.value=="number"&&r.check.params.value>e)throw new Error("ExMultiselect.max: max cannot be less than min");let o=this._addCheck("max",{value:e},n);return this._replaceOrAddCheck(o,t.index),this}};function ln(){return `uc_${Math.random().toString(36).substring(2,15)}${Math.random().toString(36).substring(2,15)}`}function cn(i){for(let[e,n]of Object.entries(i)){if(!n||typeof n!="object")throw new Error(`ExRow.create: field "${e}" must be a valid field type`);if(!("_def"in n)||!n._def||typeof n._def!="object")throw new Error(`ExRow.create: field "${e}" is not a valid ExpressCSV field`);if(!("typeName"in n._def)||typeof n._def.typeName!="string")throw new Error(`ExRow.create: field "${e}" is missing a typeName`)}}var T=class i extends C{static create(e){if(!e||typeof e!="object")throw new Error("ExRow.create: shape must be a non-null object");return cn(e),new i({typeName:"ExRow",shape:e})}optionalColumns(e,n){if(!Array.isArray(e))throw new Error("ExRow.optionalColumns: columns must be an array");for(let u of e)if(!(u in this._def.shape))throw new Error(`ExRow.optionalColumns: column "${String(u)}" does not exist in the row shape`);if(n!==void 0&&typeof n!="object")throw new Error("ExRow.optionalColumns: options must be an object");if((n==null?void 0:n.when)!==void 0&&typeof n.when!="function")throw new Error("ExRow.optionalColumns: options.when must be a function");let t=e,r=n==null?void 0:n.when;if(!this._def.optionalColumnConfig)return this._def.optionalColumnConfig={columns:t,when:r,whenMap:r?Object.fromEntries(t.map(u=>[u,r])):void 0},this;let l=[...this._def.optionalColumnConfig.columns];for(let u of t)l.includes(u)||l.push(u);if(this._def.optionalColumnConfig.columns=l,r){this._def.optionalColumnConfig.whenMap||(this._def.optionalColumnConfig.whenMap={});for(let u of t)this._def.optionalColumnConfig.whenMap[u]=r;}return this}unique(e,n){if(e===void 0)throw new Error("ExRow.unique: columns must be provided");let t=Array.isArray(e)?e:[e];for(let m of t)if(!(m in this._def.shape))throw new Error(`ExRow.unique: column "${String(m)}" does not exist in the row shape`);if(n!==void 0&&typeof n!="object")throw new Error("ExRow.unique: options must be an object");if((n==null?void 0:n.key)!==void 0&&typeof n.key!="function")throw new Error("ExRow.unique: options.key must be a function");let r=n==null?void 0:n.key;this._def.uniqueColumnConfig||(this._def.uniqueColumnConfig={uniqueConstraints:[]});let o=r?m=>{let L=Object.fromEntries(t.map(z=>[z,m[z]]));return r(L)}:void 0,l=(m,L)=>{if(m.length!==L.length)return false;let z=[...m].sort(),me=[...L].sort();return z.every((pe,fe)=>pe===me[fe])},u=this._def.uniqueColumnConfig.uniqueConstraints.findIndex(m=>l(m.columns,t)),c={id:ln(),columns:t,key:o};return u!==-1?this._def.uniqueColumnConfig.uniqueConstraints[u]=c:this._def.uniqueColumnConfig.uniqueConstraints.push(c),this}meta(e){if(e===void 0||typeof e!="object")throw new Error("ExRow.meta: metadata must be an object");if(e.description!==void 0&&typeof e.description!="string")throw new Error("ExRow.meta: metadata.description must be a string");return this._def.meta=g(g({},this._def.meta),e),this}minRows(e){if(typeof e!="number")throw new Error("ExRow.minRows: count must be a number");if(!Number.isInteger(e))throw new Error("ExRow.minRows: count must be an integer");if(e<0)throw new Error("ExRow.minRows: count must be non-negative");return this._def.rowCountConfig||(this._def.rowCountConfig={}),this._def.rowCountConfig.minRows=e,this}maxRows(e){if(typeof e!="number")throw new Error("ExRow.maxRows: count must be a number");if(!Number.isInteger(e))throw new Error("ExRow.maxRows: count must be an integer");if(e<=0)throw new Error("ExRow.maxRows: count must be positive");return this._def.rowCountConfig||(this._def.rowCountConfig={}),this._def.rowCountConfig.maxRows=e,this}};var d={string:D.create,number:P.create,boolean:A.create,date:O.create,time:B.create,datetime:V.create,row:T.create,select:_.create,multiselect:U.create,infer:i=>{}};var Qi=d.row({name:d.string().label("Name").refine(i=>{let e=i.trim();return e===i?{valid:true}:{valid:false,message:"Remove leading or trailing spaces",suggestedFix:{id:"trim-name",value:e,description:"Trim extra spaces"}}}),email:d.string().email().label("Email").refine(i=>{let e=i.toLowerCase();return e===i?{valid:true}:{valid:false,message:"Use lowercase email addresses",suggestedFix:{id:"lowercase-email",value:e,description:"Convert to lowercase"}}}),deskExtension:d.number().integer().label("Desk Extension"),isManager:d.boolean().label("Manager"),hireDate:d.date().label("Hire Date").refine(i=>i.startsWith("19")?{valid:true}:{valid:false,message:"Use a four-digit year in the 1900s for this demo",suggestedFix:{id:"normalize-hire-date",value:`19${i.slice(2)}`,description:"Normalize the year"}}),dailyCoffeeTime:d.time().label("Daily Coffee Time").optional(),lastDundieAwardAt:d.datetime().label("Last Dundie Award At").optional(),department:d.select([{label:"Management",value:"management"},{label:"Sales",value:"sales"},{label:"Reception",value:"reception"},{label:"Accounting",value:"accounting"},{label:"Support",value:"support"}]).label("Department"),notableTraits:d.multiselect([{label:"Worlds Best Boss Mug",value:"worlds-best-boss-mug"},{label:"Bears Beets Battlestar",value:"bears-beets-battlestar"},{label:"Art School",value:"art-school"},{label:"Pretzel Day",value:"pretzel-day"},{label:"Crossword Puzzles",value:"crossword-puzzles"},{label:"Volunteer Sheriff Deputy",value:"volunteer-sheriff-deputy"}]).label("Notable Traits").optional()});export{Qi as heroDemoSchema,d as x};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expresscsv/schemas",
3
- "version": "0.1.18",
3
+ "version": "0.1.20",
4
4
  "description": "Schema authoring and type inference package for ExpressCSV",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",