openfigi-sdk 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -8
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -99,7 +99,7 @@ const IdTypeSchema = zod.z.enum([
|
|
|
99
99
|
"ID_PORTUGAL",
|
|
100
100
|
"ID_SWEDEN",
|
|
101
101
|
"ID_SHORT_CODE"
|
|
102
|
-
]);
|
|
102
|
+
]).or(zod.z.string());
|
|
103
103
|
const ExchCodeSchema = zod.z.enum([
|
|
104
104
|
"24X National",
|
|
105
105
|
"A0",
|
|
@@ -2812,7 +2812,7 @@ const MappingRequestSchema = zod.z.object({
|
|
|
2812
2812
|
securityType: SecurityTypeSchema.optional(),
|
|
2813
2813
|
securityType2: SecurityType2Schema.optional(),
|
|
2814
2814
|
includeUnlistedEquities: zod.z.boolean().optional(),
|
|
2815
|
-
optionType: zod.z.enum(["Put", "Call"]).optional(),
|
|
2815
|
+
optionType: zod.z.enum(["Put", "Call"]).or(zod.z.string()).optional(),
|
|
2816
2816
|
strike: zod.z.array(zod.z.number()).optional(),
|
|
2817
2817
|
contractSize: zod.z.number().optional(),
|
|
2818
2818
|
coupon: zod.z.array(zod.z.number()).optional(),
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["message: string","statusCode?: number","response?: unknown","retryAfter?: number","errors?: unknown","ms: number","headers: Headers","attempt: number","baseDelay: number","maxDelay: number","DEFAULT_CONFIG: Required<ClientConfig>","currentRateLimitInfo: RateLimitInfo | undefined","enabled: boolean","level: 'info' | 'warn' | 'error'","message: string","config: Required<ClientConfig>","config: ClientConfig","requests: MappingRequest[]","request: MappingRequest","isin: string","options?: Partial<MappingRequest>","cusip: string","sedol: string","ticker: string","exchCode?: string","bbgId: string","isin: string","cusip: string","sedol: string","bbgId: string","array: T[]","batchSize: number","batches: T[][]"],"sources":["../src/utils/errors.ts","../src/utils/helpers.ts","../src/validators/index.ts","../src/client/client.ts","../src/utils/validators.ts"],"sourcesContent":["export class OpenFigiError extends Error {\n constructor(\n message: string,\n public statusCode?: number,\n public response?: unknown\n ) {\n super(message)\n this.name = 'OpenFigiError'\n }\n}\n\nexport class RateLimitError extends OpenFigiError {\n constructor(\n message: string,\n public retryAfter?: number,\n statusCode?: number\n ) {\n super(message, statusCode)\n this.name = 'RateLimitError'\n }\n}\n\nexport class ValidationError extends OpenFigiError {\n constructor(\n message: string,\n public errors?: unknown\n ) {\n super(message)\n this.name = 'ValidationError'\n }\n}\n","export function sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nexport function parseRateLimitHeaders(headers: Headers): {\n limit?: number\n remaining?: number\n reset?: Date\n} {\n const limit = headers.get('x-ratelimit-limit')\n const remaining = headers.get('x-ratelimit-remaining')\n const reset = headers.get('x-ratelimit-reset')\n\n return {\n limit: limit ? parseInt(limit, 10) : undefined,\n remaining: remaining ? parseInt(remaining, 10) : undefined,\n reset: reset ? new Date(parseInt(reset, 10) * 1000) : undefined,\n }\n}\n\nexport function exponentialBackoff(\n attempt: number,\n baseDelay: number = 1000,\n maxDelay: number = 30000\n): number {\n const delay = Math.min(baseDelay * 2 ** attempt, maxDelay)\n const jitter = Math.random() * 0.1 * delay\n return Math.floor(delay + jitter)\n}\n\n","import { z } from 'zod'\n\nexport const IdTypeSchema = z.enum([\n 'ID_ISIN',\n 'ID_BB_UNIQUE',\n 'ID_SEDOL',\n 'ID_COMMON',\n 'ID_WERTPAPIER',\n 'ID_CUSIP',\n 'ID_BB',\n 'ID_ITALY',\n 'ID_EXCH_SYMBOL',\n 'ID_FULL_EXCHANGE_SYMBOL',\n 'COMPOSITE_ID_BB_GLOBAL',\n 'ID_BB_GLOBAL_SHARE_CLASS_LEVEL',\n 'ID_BB_GLOBAL',\n 'ID_BB_SEC_NUM_DES',\n 'ID_BB_SEC_NUM',\n 'ID_CINS',\n 'ID_BELGIUM',\n 'ID_DENMARK',\n 'ID_FRANCE',\n 'ID_JAPAN',\n 'ID_LUXEMBOURG',\n 'ID_NETHERLANDS',\n 'ID_POLAND',\n 'ID_PORTUGAL',\n 'ID_SWEDEN',\n 'ID_SHORT_CODE',\n])\n\nexport const ExchCodeSchema = z.enum([\n '24X National', 'A0', 'AA', 'AB', 'ABIDJAN', 'ABTS', 'ABU DHABI', 'AC', 'ACE', 'ACXI',\n 'AD', 'ADE', 'ADX', 'AEQUITAS NEO LIT', 'AERB', 'AERC', 'AF', 'AFE', 'AG', 'AH',\n 'AI', 'AIAF', 'AJ', 'AL', 'ALCN', 'ALGIERS', 'ALL GERMAN SE', 'AM', 'AME', 'AMMAN FIN MKT',\n 'ANTWERP', 'AO', 'AP', 'APX', 'AQ', 'Aquis', 'AR', 'ARKM', 'ARMENIA', 'AS',\n 'ASP', 'ASUNCION', 'ASX', 'AT', 'ATA', 'ATHENS', 'AU', 'AUSTRALIA', 'AV', 'AW',\n 'AX', 'AY', 'AZ', 'B1', 'B2', 'B3', 'B4', 'BA', 'BAHAMAS', 'BAHRAIN',\n 'BAKU', 'BANGALORE', 'BANJA LUKA', 'BARBADOS', 'BARCELONA', 'BATS', 'BB', 'BBOX', 'BBSP', 'bbsp',\n 'BBX', 'BC', 'BCEX', 'BCF', 'BD', 'BDP', 'BEIJING', 'BEIRUT', 'BELARUS', 'BELGRADE',\n 'BEQU', 'bequ', 'BERLIN', 'BERMUDA', 'BERN', 'BEVSA', 'BF', 'BFLY', 'bfly', 'BFNX',\n 'bfnx', 'BFO', 'BFRX', 'bfrx', 'BFX', 'BG', 'BGC', 'BGON', 'bgon', 'BGSP',\n 'BH', 'BI', 'BIDS', 'BILBAO', 'BINC', 'binc', 'BITZ', 'BIVA', 'BJEX', 'BK',\n 'BL3P', 'BLC2', 'blc2', 'BLCR', 'blcr', 'Blue Ocean ATS', 'BM', 'BMF', 'BN', 'BNCE',\n 'bnce', 'BNDX', 'BNF', 'BNUS', 'bnus', 'BO', 'Bodiva', 'BOLSA CENTROAMER', 'BOLSA NACL VALOR', 'Bondvision',\n 'BORSA ISTANBUL', 'BOTSWANA', 'BOV', 'BP', 'Bpm', 'bpnd', 'BPVB', 'BQ', 'BR', 'BRATISLAVA',\n 'BRJ', 'BS', 'BSE', 'BT', 'BT38', 'BTBA', 'btba', 'BTBU', 'BTBY', 'BTCA',\n 'btcb', 'BTHB', 'bthb', 'BTMX', 'btmx', 'BTRK', 'btrk', 'BTRX', 'btrx', 'BTS',\n 'BTSH', 'BTSO', 'btso', 'BU', 'BUCHAREST', 'BUDAPEST', 'BUENOS AIRES', 'BULGARIA', 'BULL', 'BURGUNDY',\n 'BURSA MALAYSIA', 'BV', 'BVAV', 'BVL', 'BW', 'BX', 'BX - SWISS', 'BXTH', 'BY', 'BYBT',\n 'BZ', 'C1', 'C2', 'C3', 'CA', 'CARACAS', 'CASABLANCA', 'CAYMAN ISLANDS', 'CB', 'CBD',\n 'CBF', 'CBO', 'CBOE', 'CBSE', 'cbse', 'CBT', 'CC', 'ccck', 'CCO', 'CCT',\n 'CCX', 'CD', 'CDE', 'CE', 'CEG', 'CENT ANOTACIONE', 'CEXI', 'cexi', 'CF', 'CFF',\n 'CFLR', 'CG', 'CH', 'CHANNEL ISLANDS', 'CHI-X', 'Chi-X Australia', 'CHICAGO', 'CHINA INTERBANK', 'CHONGWA ASSET EX', 'CI',\n 'CJ', 'CK', 'CL', 'CM', 'CME', 'CMF', 'CML3', 'CMX', 'CN', 'CNEX',\n 'cnex', 'CNGG', 'CNHD', 'CNMT', 'CNSX', 'CO', 'COLOMBIA', 'COLOMBO', 'CONE', 'cone',\n 'COP', 'CP', 'CQ', 'CR', 'CRCO', 'crco', 'CRV2', 'crv2', 'CS', 'CSE',\n 'CT', 'CU', 'CUCY', 'cucy', 'CURV', 'curv', 'CV', 'CW', 'CX', 'CY',\n 'CYPRUS', 'CZ', 'DAR-ES-SALAAM', 'DB', 'DBS Digital', 'DC', 'DCE', 'DD', 'DE', 'DEB',\n 'delt', 'DF', 'DFX', 'DG', 'DGC', 'DH', 'DHAKA', 'DJ', 'DK', 'DL',\n 'DM', 'DME', 'DN', 'DOUALA', 'drbt', 'DS', 'DT', 'DU', 'DUBAI FINL MKT', 'DUBLIN',\n 'DUSSELDORF', 'DV', 'DVX', 'DX', 'E1', 'E2', 'EA', 'EAST CARIBBEAN', 'EB', 'EC',\n 'ED', 'EDX', 'EDXM', 'EEE', 'EG', 'EGX', 'EI', 'EK', 'EL', 'EL SALVADOR',\n 'ELECTRONIC CHILE', 'ELX', 'EM', 'EN', 'EO', 'EOC', 'EOE', 'EOP', 'EP', 'EQ',\n 'ERI', 'ERIS', 'eris', 'ES', 'ESWATINI', 'ET', 'ETHX', 'EU', 'EUROMTF', 'EUROMTS',\n 'EURONEXT-AMSTER', 'EURONEXT-BRUSS', 'EURONEXT-DUBLIN', 'EURONEXT-GRW-MIL', 'EURONEXT-LISBON', 'EURONEXT-MILAN', 'EURONEXT-PARIS', 'EUROTLX', 'EUS', 'EUWAX STUTTGART',\n 'EUX', 'EX', 'Extra MOT', 'Extra MOT Pro', 'EXXA', 'EY', 'EZ', 'FA', 'FEX', 'FF',\n 'FF ZERTIFIKATE', 'FFE', 'FH', 'FMX', 'FNX', 'FP', 'FPL', 'FRANKFURT', 'FRX', 'FS',\n 'FTX', 'FTXX', 'FUKUOKA', 'G1', 'G4', 'GA', 'GACN', 'GATE', 'GB', 'GBT',\n 'GC', 'GD', 'GE', 'GEMMA', 'GEORGIA', 'Gettex', 'GF', 'GG', 'GH', 'GHANA',\n 'GI', 'Gibraltar', 'GK', 'GL', 'GM', 'GME', 'GMNI', 'gmni', 'GN', 'GQ',\n 'GR', 'GS', 'GT', 'GU', 'GUATEMALA', 'GUAYAQUIL', 'GW', 'GY', 'GZ', 'H1',\n 'H2', 'HAMBURG', 'HANNOVER', 'HANOI', 'HB', 'HCM CITY EXCH', 'HD', 'HE', 'HEX', 'HI-MTF',\n 'HITB', 'hitb', 'HK', 'HKG', 'HKM', 'HM', 'HNX', 'HO', 'HONG KONG', 'HUOB',\n 'huob', 'HX', 'I2', 'IA', 'IAD', 'IB', 'IC', 'ICD', 'ICE', 'ICE ECX',\n 'ICF', 'ID', 'IDEM', 'IDR', 'IDX', 'IE', 'IEA', 'IF', 'IFE', 'IG',\n 'IH', 'IJ', 'IM', 'IN', 'INCH', 'INDIA INX', 'INDONESIA EXCH', 'INDR', 'indr', 'INE',\n 'INTERCONTINENTAL', 'INX', 'IO', 'IQ', 'IR', 'IS', 'ISE', 'ISF', 'ISG', 'ISLAND ECN LTD',\n 'IST', 'IT', 'ITBI', 'itbi', 'IX', 'IY', 'JA', 'JAMAICA', 'JASDAQ', 'JB',\n 'JC', 'JD', 'JE', 'JF', 'JFX', 'JG', 'JI', 'JJ', 'JL', 'JM',\n 'JN', 'JO', 'JOHANNESBURG', 'JP', 'JQ', 'JR', 'JS', 'JSE Cent Ord Bk', 'JSE Contrib Prx', 'JT',\n 'JU', 'JV', 'JW', 'JX', 'JY', 'KA', 'KAS', 'KAZAKHSTAN', 'KB', 'KCB',\n 'KCON', 'kcon', 'KE', 'KF', 'KFE', 'KH', 'KIEV', 'KK', 'KL', 'KN',\n 'KORB', 'korb', 'KOREA', 'KOSDAQ', 'KP', 'KQ', 'KRKN', 'krkn', 'KS', 'KT',\n 'KUWAIT', 'KX', 'KY', 'KYRGZSTAN', 'KZ', 'L1', 'L3', 'LA', 'LA PAZ', 'LABUAN INTL FIN',\n 'LB', 'LC', 'LCLB', 'LD', 'LDX', 'LE', 'LF', 'LG', 'LH', 'LI',\n 'LISBON', 'LJUBLJANA', 'LMAX', 'lmax', 'LME', 'LMP', 'LN', 'LO', 'LONDON', 'LONDON INTL',\n 'LR', 'LS', 'LSE', 'LSE-RETAIL', 'LT', 'LU', 'LUSAKA', 'LUXEMBOURG', 'LV', 'LX',\n 'LY', 'LYON', 'M0', 'MA', 'MACEDONIA', 'MADRAS', 'MADRID', 'MAE', 'MALAWI', 'MALTA',\n 'MANAGUA', 'MARF', 'MARSEILLE', 'MAURITIUS', 'MB', 'MBA', 'MC', 'MCE', 'MCI', 'MCT',\n 'MCX', 'MD', 'MDE', 'MDX', 'ME', 'MELBOURNE', 'MENDOZA', 'MERC', 'MERJ', 'MERVAL',\n 'MET', 'META', 'METD', 'MEXC', 'mexc', 'MEXICO', 'MF', 'MFA', 'MFM', 'MFP',\n 'MGE', 'MI', 'MICEX', 'MICEX A1', 'MICEX A2', 'MICEX B', 'MICEX D', 'MICEX Unlisted', 'MICEX V', 'MIF',\n 'MIL', 'MILAN', 'MK', 'MM', 'MN', 'MO', 'MOEX Level 1', 'MOEX Level 2', 'MOEX Level 3', 'MONGOLIA',\n 'MONTENEGRO', 'MONTEVIDEO', 'MOSCOW', 'MOT', 'MOZAMBIQUE', 'MP', 'MS', 'MSE', 'MSX', 'MT',\n 'MTS AMSTERDAM', 'MTS Austria', 'MTS BELGIUM', 'MTS Finland', 'MTS FRANCE', 'MTS Germany', 'MTS GREECE', 'MTS IRELAND', 'MTS Israel', 'MTS PORTUGAL',\n 'MTS S.p.A', 'MTS Spain', 'MU', 'MUMBAI', 'MUNICH', 'MUSCAT SECS MKT', 'MV', 'MW', 'MX', 'MY',\n 'MZ', 'N2X', 'NA', 'NAGOYA', 'NAIROBI', 'NAMIBIA', 'NANTES', 'NASDAQ', 'NASDAQ DUBAI', 'NASDAQ OMX PHLX',\n 'NASDAQ/NCM', 'NASDAQ/NGM', 'NASDAQ/NGS', 'NB', 'NC', 'ND', 'NDM', 'NDX', 'NE', 'NEW YORK',\n 'NEW ZEALAND', 'NF', 'NFE', 'NFX', 'NG', 'NGC', 'NGCS', 'NGM', 'NI', 'NIGERIA',\n 'NJ', 'NK', 'NL', 'NLX', 'NM', 'NN', 'NO', 'NOMX 1stNorth C', 'NOMX 1stNorth F', 'NOMX 1stNorth S',\n 'NOMX COPENHAGEN', 'NOMX HELSINKI', 'NOMX ICELAND', 'NOMX RIGA', 'NOMX STOCKHOLM', 'NOMX TALLINN', 'NOMX VILNIUS', 'NORDIC ABM', 'NOT LISTED', 'NOUVEAU MARCHE',\n 'NOVA', 'NP', 'NPE', 'NQ', 'NQL', 'NR', 'NS', 'NSE', 'NSE Australia', 'NSE IFSC',\n 'NSE INDIA', 'NSEL', 'NT', 'NV', 'NVDX', 'nvdx', 'NW', 'NX', 'NY', 'NYB',\n 'NYF', 'NYM', 'NYSE AMERICAN', 'NYSE ARCA', 'NYSE BONDMATCH', 'NZ', 'NZX', 'OBX', 'OC', 'OC_NA',\n 'OCG', 'OD', 'ODE', 'OF', 'OKCN', 'okcn', 'OKEX', 'okex', 'OM', 'OMEGA CANADA ATS',\n 'OMP', 'ORCA', 'OS', 'OSAKA', 'OSAKA 2', 'OSE', 'OSLO', 'oslx', 'OTC BB', 'OTC US',\n 'OU', 'P2', 'PA', 'PAKISTAN', 'PALESTINE', 'PANAMA', 'PB', 'PBT', 'PC', 'PD',\n 'PDEx', 'PE', 'PEX', 'PF', 'PFTS', 'PG', 'PHILIPPINES', 'PHL', 'PINK SHEETS', 'PK',\n 'PKSP', 'pksp', 'PL', 'PLX', 'PM', 'PMI', 'PMX', 'PN', 'PNX', 'PO',\n 'POLO', 'polo', 'PORT MORESBY', 'PORTAL', 'PP', 'PQ', 'PRAGUE', 'PRG', 'PRO SEC MKT(PSM)', 'PS',\n 'PURE TRADING', 'PW', 'PX', 'PZ', 'QATAR', 'QD', 'QE', 'QF', 'QG', 'QH',\n 'QM', 'QN', 'QSP3', 'qsp3', 'QT', 'QU', 'QUITO', 'QUON', 'Quotrix', 'QX',\n 'RASDAQ', 'RAYA', 'RAYC', 'RB', 'RC', 'RE', 'RF', 'RFX', 'RG', 'RIO DE JANEIRO',\n 'RM', 'RN', 'RO', 'ROFEX', 'RP', 'RQ', 'RR', 'RS', 'RT', 'RTS',\n 'RU', 'RUSSIAN TRADING', 'RW', 'RWANDA', 'RX', 'RZ', 'S1', 'S2', 'S3', 'S4',\n 'SA', 'SAF', 'SANTIAGO', 'SANTO DOMINGO', 'SAO PAULO', 'SARAJEVO', 'SAUDI ARABIA', 'SB', 'SBA', 'SC',\n 'SCE', 'SCIEX', 'SCOACH-FRANKFURT', 'SD', 'SE', 'SEDEX-Milan', 'SEND', 'SF', 'SFE', 'SG',\n 'SGX', 'SGX-ST', 'SH', 'SHANGHAI', 'SHENZHEN', 'SHF', 'SI', 'SIB', 'SIBE', 'SICEX',\n 'SINGAPORE', 'SINGAPORE MAINBD', 'SISBEX', 'SIX', 'SIX Digital', 'SIX Europe LTD', 'SIX STRUCTURED', 'SIX Swiss (SP)', 'SJ', 'SK',\n 'SL', 'SLOVAK', 'SM', 'SME', 'SN', 'SO', 'SOP', 'SP', 'SPCEX', 'SPX',\n 'SQ', 'SR', 'SS', 'SSE', 'ST', 'St. Petersburg', 'STMP', 'stmp', 'STRASBOURG', 'STUTTGART',\n 'SU', 'SUSH', 'sush', 'SV', 'SW', 'SX', 'SXHA', 'sxha', 'SY', 'SZ',\n 'T1', 'T2', 'T3', 'TA', 'TAD', 'Taipei', 'TAIWAN', 'TASHKENT', 'TAV', 'TB',\n 'TBIT', 'TBMA', 'TBS POLAND', 'TC', 'TCC', 'TCM', 'TD', 'TE', 'TEF', 'TEHERAN',\n 'TEL AVIV', 'TF', 'TFE', 'TFX', 'TG', 'TGE', 'TH', 'THAILAND', 'THIRD MKT CORP', 'TI',\n 'TIDX', 'TISE', 'TJ', 'TJ21', 'TJV1', 'TK', 'TL', 'TLX', 'TN', 'TO',\n 'TOKYO', 'TOKYO 2', 'TOM', 'TORONTO', 'TP', 'TQ', 'TR', 'TRACE', 'TRADEGATE', 'TRCK',\n 'TRINIDAD&TOBAGO', 'TS', 'TSE', 'TSX VENTURE', 'TT', 'TTC', 'TU', 'TUNIS', 'TV', 'TW',\n 'TX', 'TY', 'TZ', 'UA', 'UB', 'UC', 'UD', 'UE', 'UF', 'UG',\n 'UGANDA', 'UH', 'UI', 'UJ', 'UK', 'UKR', 'UKRAINIAN EXCH', 'UL', 'UM', 'UN',\n 'UNKNOWN', 'UO', 'UP', 'UPBT', 'upbt', 'UQ', 'UR', 'URCEX', 'US', 'USE',\n 'USP2', 'usp2', 'USP3', 'usp3', 'UT', 'UU', 'UV', 'UW', 'UX', 'UY',\n 'UZ', 'VA', 'VALENCIA', 'VARAZDIN', 'VB', 'VC', 'VE', 'VF', 'VG', 'VH',\n 'VI', 'VIENNA', 'VJ', 'VK', 'VL', 'VM', 'VN', 'Vorvel', 'VP', 'VR',\n 'VS', 'VU', 'VX', 'VY', 'WARSAW', 'WBA', 'WCE', 'WEXN', 'WHBT', 'WSE',\n 'WT', 'WTB', 'WX', 'X1', 'X2', 'X9', 'XA', 'XB', 'XBTR', 'XC',\n 'XD', 'XE', 'XETRA', 'XF', 'XG', 'XH', 'XI', 'XJ', 'XK', 'XL',\n 'XM', 'XN', 'XO', 'XP', 'XQ', 'XR', 'XS', 'XT', 'XU', 'XV',\n 'XW', 'XX', 'XY', 'XZ', 'YC', 'YELLOW SHEETS', 'YLX', 'YOBT', 'yobt', 'YSE',\n 'ZA', 'ZAGREB', 'ZAIF', 'zaif', 'ZB', 'ZBCN', 'zbcn', 'ZC', 'ZCE', 'ZG',\n 'ZH', 'ZIMBABWE', 'ZL', 'ZS', 'ZU',\n]).or(z.string())\n\nexport const CurrencySchema = z.enum([\n '***', 'ADP', 'AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'ATS',\n 'AUD', 'AUd', 'AWG', 'AZM', 'AZN', 'BAM', 'BBD', 'BDT', 'BEF', 'BGN',\n 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BRL', 'BRl', 'BSD', 'BTN', 'BWP',\n 'BWp', 'BYN', 'BYR', 'BYS', 'BZD', 'CAD', 'CAd', 'CDF', 'CER', 'CHF',\n 'CHf', 'CLF', 'CLP', 'CNH', 'CNT', 'CNY', 'COP', 'COU', 'CRC', 'CRS',\n 'CUP', 'CVE', 'CYP', 'CZK', 'DEM', 'DJF', 'DKK', 'DOP', 'DZD', 'ECS',\n 'EEK', 'EES', 'EGD', 'EGP', 'ERN', 'ESP', 'ETB', 'EUA', 'EUR', 'EUr',\n 'FIM', 'FJD', 'FKP', 'FRF', 'GBP', 'GBp', 'GEL', 'GHC', 'GHS', 'GIP',\n 'GLD', 'GMD', 'GNF', 'GRD', 'GTQ', 'GWP', 'GYD', 'HKD', 'HNL', 'HRK',\n 'HTG', 'HUF', 'IDR', 'IEP', 'ILS', 'ILs', 'INR', 'IQD', 'IRR', 'ISK',\n 'ITL', 'JEP', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW',\n 'KRW', 'KWD', 'KWd', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL',\n 'LTL', 'LUF', 'LVL', 'LYD', 'MAD', 'MDL', 'MGA', 'MGF', 'MKD', 'MLF',\n 'MMK', 'MNT', 'MOP', 'MRO', 'MRU', 'MTL', 'MULTI', 'MUR', 'MVR', 'MWK',\n 'MWk', 'MXN', 'MYR', 'MYr', 'MZM', 'MZN', 'NAD', 'NAd', 'NGN', 'NIC',\n 'NID', 'NIO', 'NLG', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK',\n 'PHP', 'PKR', 'PLD', 'PLN', 'PLT', 'PTE', 'PYG', 'QAR', 'ROL', 'RON',\n 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDD', 'SDG', 'SDP', 'SDR',\n 'SEK', 'SGD', 'SGd', 'SHP', 'SIT', 'SKK', 'SLE', 'SLL', 'SLV', 'SOS',\n 'SPL', 'SRD', 'SRG', 'SSP', 'STD', 'STN', 'SVC', 'SYP', 'SZL', 'SZl',\n 'THB', 'THO', 'TJS', 'TMM', 'TMT', 'TND', 'TOP', 'TPE', 'TRL', 'TRY',\n 'TTD', 'TVD', 'TWD', 'TZS', 'UAH', 'UDI', 'UGX', 'US', 'USD', 'USd',\n 'UVR', 'UYI', 'UYU', 'UYW', 'UZS', 'VEB', 'VEE', 'VEF', 'VES', 'VND',\n 'VUV', 'WST', 'X0S', 'X1S', 'X2S', 'X3S', 'X4S', 'X5S', 'X6S', 'X7S',\n 'X8S', 'X9S', 'XAD', 'XAF', 'XAG', 'XAL', 'XAO', 'XAS', 'XAU', 'XAV',\n 'XBA', 'XBI', 'XBN', 'XBS', 'XBT', 'XBW', 'XCD', 'XCG', 'XCR', 'XCS',\n 'XCU', 'XDG', 'XDH', 'XDI', 'XDO', 'XDR', 'XDT', 'XEG', 'XEN', 'XEO',\n 'XET', 'XEU', 'XFI', 'XFL', 'XFM', 'XFT', 'XGZ', 'XHB', 'XIC', 'XIN',\n 'XIO', 'XLC', 'XLI', 'XLM', 'XLU', 'XMA', 'XMK', 'XMN', 'XMR', 'XNI',\n 'XOF', 'XPB', 'XPD', 'XPF', 'XPT', 'XRA', 'XRH', 'XRI', 'XRP', 'XRU',\n 'XSA', 'XSN', 'XSO', 'XST', 'XSU', 'XSZ', 'XTH', 'XTK', 'XTR', 'XUC',\n 'XUN', 'XUT', 'XVC', 'XVV', 'XXT', 'XZC', 'XZI', 'YER', 'ZAR', 'ZAr',\n 'ZMK', 'ZMW', 'ZWD', 'ZWd', 'ZWF', 'ZWG', 'ZWg', 'ZWL', 'ZWN', 'ZWR',\n]).or(z.string())\n\nexport const MicCodeSchema = z.enum([\n '24EQ', 'A2XX', 'ACEX', 'ADRK', 'AFET', 'AIXK', 'AMTS', 'AMXO', 'APEX', 'APXL',\n 'AQEU', 'AQSE', 'AQXE', 'ARCO', 'ARCX', 'ARTX', 'ASXP', 'BATE', 'BATO', 'BATS',\n 'BATY', 'BCSE', 'BEUE', 'BFEX', 'BIVA', 'BJSE', 'BLOX', 'BMFM', 'BMTF', 'BMTS',\n 'BOAT', 'BOTC', 'BSEX', 'BTFE', 'BURM', 'BVCA', 'BVMF', 'C2OX', 'CAPA', 'CCFX',\n 'CEDX', 'CEUX', 'CHIA', 'CHIC', 'CHIJ', 'CHIX', 'CMED', 'CSE2', 'DGCX', 'DIFX',\n 'DKED', 'DKTC', 'DSMD', 'DUMX', 'EBMX', 'ECEU', 'EDGA', 'EDGO', 'EDGX', 'EMLD',\n 'EMTF', 'EMTS', 'ENAX', 'EPRL', 'ERIS', 'ETLX', 'EUCH', 'EUWX', 'EXGM', 'FISH',\n 'FMTS', 'FNDK', 'FNFI', 'FNFT', 'FNIS', 'FNSE', 'FRAB', 'FREX', 'GBOT', 'GEMX',\n 'GMEG', 'GMNI', 'GSXL', 'HKME', 'HMTF', 'HOTC', 'HSTC', 'ICDX', 'ICEL', 'ICXL',\n 'IEPA', 'IEXG', 'IFAD', 'IFCA', 'IFED', 'IFEU', 'IFLL', 'IFLO', 'IFLX', 'IFSG',\n 'IFUS', 'IINX', 'IMTS', 'INSE', 'LEUE', 'LICA', 'LIQU', 'LNEQ', 'LSSI', 'LTSE',\n 'LYNX', 'MALX', 'MARF', 'MATN', 'MCAD', 'MCRY', 'MCXX', 'MEMX', 'MFOX', 'MISX',\n 'MOTX', 'MPRL', 'MSAX', 'MTAA', 'MTAH', 'MTCH', 'MTSC', 'MTSD', 'MTSF', 'MUND',\n 'MXOP', 'N2EX', 'NASX', 'NCEL', 'NDEX', 'NEOE', 'NEXX', 'NILX', 'NORX', 'NOTC',\n 'NXTE', 'NZFX', 'OCEA', 'ODXE', 'OMGA', 'OMIP', 'OOTC', 'OPEX', 'OTCM', 'OTXB',\n 'PDEX', 'PFTQ', 'PFTS', 'PLPD', 'PLUS', 'PURE', 'ROCO', 'ROFX', 'ROTC', 'RTSX',\n 'RUSX', 'SBIJ', 'SBIU', 'SBMF', 'SEDX', 'SEND', 'SGMU', 'SGMX', 'SHSC', 'SIMV',\n 'SMEX', 'SPHR', 'SPIM', 'SZSC', 'TBSP', 'TFEX', 'TOMX', 'TQEX', 'TREA', 'TREU',\n 'TRNL', 'TRPX', 'TRQX', 'TWEA', 'TWEM', 'UKEX', 'WDER', 'WMTF', 'XADE', 'XADF',\n 'XADS', 'XAIM', 'XALG', 'XAMM', 'XAMS', 'XAPA', 'XARM', 'XASE', 'XASX', 'XATH',\n 'XATS', 'XATX', 'XBAA', 'XBAB', 'XBAH', 'XBAN', 'XBAR', 'XBBJ', 'XBCL', 'XBCM',\n 'XBCV', 'XBCX', 'XBDA', 'XBDV', 'XBEL', 'XBER', 'XBES', 'XBEY', 'XBIL', 'XBKK',\n 'XBLB', 'XBLN', 'XBNV', 'XBOG', 'XBOL', 'XBOM', 'XBOS', 'XBOT', 'XBOX', 'XBRA',\n 'XBRD', 'XBRN', 'XBRU', 'XBRV', 'XBSD', 'XBSE', 'XBTR', 'XBUD', 'XBUE', 'XBUL',\n 'XBVC', 'XBVM', 'XBVR', 'XBXO', 'XCAI', 'XCAS', 'XCAY', 'XCBF', 'XCBO', 'XCBT',\n 'XCCX', 'XCEC', 'XCEG', 'XCFE', 'XCHG', 'XCHI', 'XCIE', 'XCIS', 'XCME', 'XCNQ',\n 'XCOL', 'XCSE', 'XCSX', 'XCUE', 'XCX2', 'XCXD', 'XCYS', 'XDAR', 'XDCE', 'XDES',\n 'XDFM', 'XDHA', 'XDMI', 'XDPA', 'XDRF', 'XDSE', 'XDSX', 'XDUB', 'XDUS', 'XECM',\n 'XECS', 'XEEE', 'XELX', 'XEMD', 'XEQT', 'XETR', 'XEUE', 'XEUR', 'XFEX', 'XFKA',\n 'XFM', 'XFRA', 'XGAT', 'XGHA', 'XGME', 'XGSE', 'XGTG', 'XGUA', 'XHAM', 'XHAN',\n 'XHEL', 'XHFT', 'XHKF', 'XHKG', 'XHNF', 'XHNX', 'XICE', 'XICX', 'XIDX', 'XIMC',\n 'XINE', 'XIQS', 'XISA', 'XIST', 'XISX', 'XJAM', 'XJAS', 'XJAX', 'XJSE', 'XKAC',\n 'XKAR', 'XKAZ', 'XKBT', 'XKEM', 'XKFB', 'XKFE', 'XKHA', 'XKIS', 'XKLS', 'XKON',\n 'XKOS', 'XKRX', 'XKSE', 'XKUW', 'XLAO', 'XLDN', 'XLFX', 'XLIM', 'XLIS', 'XLIT',\n 'XLJU', 'XLME', 'XLOD', 'XLON', 'XLUS', 'XLUX', 'XMAB', 'XMAD', 'XMAE', 'XMAL',\n 'XMAN', 'XMAT', 'XMAU', 'XMCE', 'XMDS', 'XMEV', 'XMEX', 'XMGE', 'XMIO', 'XMNT',\n 'XMNX', 'XMOC', 'XMOD', 'XMOL', 'XMON', 'XMOS', 'XMOT', 'XMPW', 'XMRV', 'XMSW',\n 'XMTB', 'XMUN', 'XMUS', 'XNAI', 'XNAM', 'XNAS', 'XNCD', 'XNCM', 'XNDQ', 'XNDX',\n 'XNEC', 'XNEP', 'XNGM', 'XNGO', 'XNGS', 'XNIM', 'XNKS', 'XNLX', 'XNMS', 'XNSA',\n 'XNSE', 'XNYM', 'XNYS', 'XNZE', 'XOAM', 'XOCH', 'XOPV', 'XOSE', 'XOSL', 'XOTC',\n 'XPAE', 'XPAR', 'XPBT', 'XPHL', 'XPHS', 'XPIC', 'XPOM', 'XPOR', 'XPOS', 'XPOW',\n 'XPRA', 'XPSX', 'XPTY', 'XQMH', 'XQTX', 'XQUI', 'XRAS', 'XRBM', 'XRIS', 'XRMZ',\n 'XROS', 'XSAF', 'XSAM', 'XSAP', 'XSAT', 'XSAU', 'XSBI', 'XSCE', 'XSDX', 'XSEC',\n 'XSES', 'XSFE', 'XSGE', 'XSGO', 'XSHE', 'XSHG', 'XSIM', 'XSMP', 'XSPS', 'XSRM',\n 'XSSC', 'XSSE', 'XSTC', 'XSTE', 'XSTO', 'XSTU', 'XSVA', 'XSWA', 'XSWX', 'XTAE',\n 'XTAF', 'XTAI', 'XTAL', 'XTEH', 'XTFF', 'XTKO', 'XTKS', 'XTKT', 'XTRN', 'XTSE',\n 'XTSX', 'XTUN', 'XUBS', 'XUGA', 'XULA', 'XUSE', 'XVAL', 'XVPA', 'XVTX', 'XWAR',\n 'XWBO', 'XZAG', 'XZCE', 'XZIM', 'YLDX', 'YYYY', 'ZFXM',\n]).or(z.string())\n\nexport const SecurityTypeSchema = z.enum([\n 'ABS Auto',\n 'ABS Card',\n 'ABS Home',\n 'ABS Other',\n 'ACCEPT BANCARIA',\n 'ADJ CONV. TO FIXED',\n 'ADJ CONV. TO FIXED, OID',\n 'ADJUSTABLE',\n 'ADJUSTABLE, OID',\n 'ADR',\n 'Agncy ABS Home',\n 'Agncy ABS Other',\n 'Agncy CMBS',\n 'Agncy CMO FLT',\n 'Agncy CMO INV',\n 'Agncy CMO IO',\n 'Agncy CMO Other',\n 'Agncy CMO PO',\n 'Agncy CMO Z',\n 'Asset-Based',\n 'ASSET-BASED BRIDGE',\n 'ASSET-BASED BRIDGE REV',\n 'ASSET-BASED BRIDGE TERM',\n 'ASSET-BASED DELAY-DRAW TERM',\n 'ASSET-BASED DIP',\n 'ASSET-BASED DIP DELAY-DRAW',\n 'ASSET-BASED DIP REV',\n 'ASSET-BASED DIP TERM',\n 'ASSET-BASED LOC',\n 'ASSET-BASED PIK REV',\n 'ASSET-BASED PIK TERM',\n 'ASSET-BASED REV',\n 'ASSET-BASED TERM',\n 'AUSTRALIAN',\n 'AUSTRALIAN CD',\n 'AUSTRALIAN CP',\n 'Austrian Crt',\n 'BANK ACCEPT BILL',\n 'BANK BILL',\n 'BANK NOTE',\n 'BANKERS ACCEPT',\n 'BANKERS ACCEPTANCE',\n 'BASIS SWAP',\n 'BASIS TRADE ON CLOSE',\n 'Basket WRT',\n 'BDR',\n 'BEARER DEP NOTE',\n 'Belgium Cert',\n 'BELGIUM CP',\n 'BILL OF EXCHANGE',\n 'BILLET A ORDRE',\n 'Bond',\n 'BRAZIL GENERIC',\n 'BRAZILIAN CDI',\n 'BRIDGE',\n 'BRIDGE DELAY-DRAW',\n 'BRIDGE DELAY-DRAW TERM',\n 'BRIDGE DIP TERM',\n 'BRIDGE GUARANTEE FAC',\n 'BRIDGE ISLAMIC',\n 'BRIDGE ISLAMIC TERM',\n 'BRIDGE PIK',\n 'BRIDGE PIK REV',\n 'BRIDGE PIK TERM',\n 'BRIDGE REV',\n 'BRIDGE REV GUARANTEE FAC',\n 'BRIDGE STANDBY TERM',\n 'BRIDGE TERM',\n 'BRIDGE TERM GUARANTEE FAC',\n 'BRIDGE TERM VAT-TRNCH',\n 'BRIDGE VAT-TRNCH',\n 'BULLDOG',\n 'BUTTERFLY SWAP',\n 'CAD INT BEAR CP',\n 'CALC_INSTRUMENT',\n 'Calendar Spread Option',\n 'CALL LOANS',\n 'CALLABLE CP',\n 'CANADIAN',\n 'Canadian',\n 'CANADIAN CD',\n 'CANADIAN CP',\n 'Canadian DR',\n 'CAPS & FLOORS',\n 'Car Forward',\n 'CASH',\n 'CASH FLOW',\n 'CASH FLOW, OID',\n 'CASH RATE',\n 'CBLO',\n 'CD',\n 'CDI',\n 'CDR',\n 'CEDEAR',\n 'CF',\n 'CHILEAN CD',\n 'CHILEAN DN',\n 'Closed-End Fund',\n 'CMBS',\n 'Cmdt Fut WRT',\n 'Cmdt Idx WRT',\n 'COLLAT CALL NOTE',\n 'COLOMBIAN CD',\n 'COMMERCIAL NOTE',\n 'COMMERCIAL PAPER',\n 'Commodity Index',\n 'Common Stock',\n 'CONTRACT FOR DIFFERENCE',\n 'CONTRACT FRA',\n 'Conv Bond',\n 'Conv Prfd',\n 'Corp Bnd WRT',\n 'Cover Pool',\n 'CP-LIKE EXT NOTE',\n 'CPI LINKED',\n 'CROSS',\n 'Crypto',\n 'Currency future.',\n 'Currency option.',\n 'Currency spot.',\n 'Currency WRT',\n 'CURVE_ROLL',\n 'DELAY-DRAW',\n 'DELAY-DRAW ISLAMIC',\n 'DELAY-DRAW ISLAMIC LOC',\n 'DELAY-DRAW ISLAMIC TERM',\n 'DELAY-DRAW LOC',\n 'DELAY-DRAW PIK TERM',\n 'DELAY-DRAW STANDBY TERM',\n 'DELAY-DRAW TERM',\n 'DELAY-DRAW TERM GUARANTEE F',\n 'DELAY-DRAW TERM VAT-TRNCH',\n 'DEPOSIT',\n 'DEPOSIT NOTE',\n 'DIM SUM BRIDGE TERM',\n 'DIM SUM DELAY-DRAW TERM',\n 'DIM SUM REV',\n 'DIM SUM TERM',\n 'DIP',\n 'DIP DELAY-DRAW ISLAMIC TERM',\n 'DIP DELAY-DRAW PIK TERM',\n 'DIP DELAY-DRAW TERM',\n 'DIP LOC',\n 'DIP PIK TERM',\n 'DIP REV',\n 'DIP STANDBY LOC',\n 'DIP SYNTH LOC',\n 'DIP TERM',\n 'DISCOUNT FIXBIS',\n 'DISCOUNT NOTES',\n 'DIVIDEND NEUTRAL STOCK FUTURE',\n 'DOMESTC TIME DEP',\n 'DOMESTIC',\n 'DOMESTIC MTN',\n 'Dutch Cert',\n 'DUTCH CP',\n 'EDR',\n 'Equity Index',\n 'Equity Option',\n 'Equity WRT',\n 'ETP',\n 'EURO CD',\n 'EURO CP',\n 'EURO MTN',\n 'EURO NON-DOLLAR',\n 'EURO STRUCTRD LN',\n 'EURO TIME DEPST',\n 'EURO-DOLLAR',\n 'EURO-ZONE',\n 'EXTEND COMM NOTE',\n 'EXTEND. NOTE MTN',\n 'FDIC',\n 'FED FUNDS',\n 'FIDC',\n 'Financial commodity future.',\n 'Financial commodity generic.',\n 'Financial commodity option.',\n 'Financial commodity spot.',\n 'Financial index future.',\n 'Financial index generic.',\n 'Financial index option.',\n 'FINNISH CD',\n 'FINNISH CP',\n 'FIXED',\n 'Fixed Income Index',\n 'FIXED, OID',\n 'FIXING RATE',\n 'FLOATING',\n 'FLOATING CP',\n 'FLOATING, OID',\n 'FNMA FHAVA',\n 'Foreign Sh.',\n 'FORWARD',\n 'FORWARD CROSS',\n 'FORWARD CURVE',\n 'FRA',\n 'FRENCH CD',\n 'French Cert',\n 'FRENCH CP',\n 'Fund of Funds',\n 'Futures Monthly Ticker',\n 'FWD SWAP',\n 'FX Curve',\n 'FX DISCOUNT NOTE',\n 'GDR',\n 'Generic currency future.',\n 'Generic index future.',\n 'German Cert',\n 'GERMAN CP',\n 'GLOBAL',\n 'GUARANTEE FAC',\n 'HB',\n 'HDR',\n 'HONG KONG CD',\n 'I.R. Fut WRT',\n 'I.R. Swp WRT',\n 'IDR',\n 'IMM FORWARD',\n 'IMM SWAP',\n 'Index',\n 'Index Option',\n 'Index WRT',\n 'INDIAN CD',\n 'INDIAN CP',\n 'INDONESIAN CP',\n 'Indx Fut WRT',\n 'INFLATION SWAP',\n 'INT BEAR FIXBIS',\n 'Int. Rt. WRT',\n 'INTER. APPRECIATION',\n 'INTER. APPRECIATION, OID',\n 'ISLAMIC',\n 'ISLAMIC BA',\n 'ISLAMIC CP',\n 'ISLAMIC GUARANTEE FAC',\n 'ISLAMIC LOC',\n 'ISLAMIC REV',\n 'ISLAMIC STANDBY',\n 'ISLAMIC STANDBY REV',\n 'ISLAMIC STANDBY TERM',\n 'ISLAMIC TERM',\n 'ISLAMIC TERM GUARANTEE FAC',\n 'ISLAMIC TERM VAT-TRNCH',\n 'JUMBO CD',\n 'KOREAN CD',\n 'KOREAN CP',\n 'LEBANESE CP',\n 'LIQUIDITY NOTE',\n 'LOC',\n 'LOC GUARANTEE FAC',\n 'LOC TERM',\n 'Ltd Part',\n 'MALAYSIAN CP',\n 'Managed Account',\n 'MARGIN TERM DEP',\n 'MASTER NOTES',\n 'MBS 10yr',\n 'MBS 15yr',\n 'MBS 20yr',\n 'MBS 30yr',\n 'MBS 35yr',\n 'MBS 40yr',\n 'MBS 50yr',\n 'MBS 5yr',\n 'MBS 7yr',\n 'MBS ARM',\n 'MBS balloon',\n 'MBS Other',\n 'MED TERM NOTE',\n 'MEDIUM TERM CD',\n 'MEDIUM TERM ECD',\n 'MEXICAN CP',\n 'MEXICAN PAGARE',\n 'Misc.',\n 'MLP',\n 'MONETARY BILLS',\n 'MONEY MARKET CALL',\n 'MUNI CP',\n 'MUNI INT BEAR CP',\n 'MUNI SWAP',\n 'MURABAHA',\n 'Mutual Fund',\n 'MV',\n 'MX CERT BURSATIL',\n 'NDF SWAP',\n 'NEG EURO CP',\n 'NEG INST DEPOSIT',\n 'NEGOTIABLE CD',\n 'NEW ZEALAND CD',\n 'NEW ZEALAND CP',\n 'NON-DELIVERABLE FORWARD',\n 'NON-DELIVERABLE IRS SWAP',\n 'NVDR',\n 'NY Reg Shrs',\n 'OID',\n 'ONSHORE FORWARD',\n 'ONSHORE SWAP',\n 'Open-End Fund',\n 'OPTION',\n 'Option on Equity Future',\n 'OPTION VOLATILITY',\n 'OTHER',\n 'OVER/NIGHT',\n 'OVERDRAFT',\n 'OVERNIGHT INDEXED SWAP',\n 'PANAMANIAN CP',\n 'Participate Cert',\n 'PHILIPPINE CP',\n 'Physical commodity forward.',\n 'Physical commodity future.',\n 'Physical commodity generic.',\n 'Physical commodity option.',\n 'Physical commodity spot.',\n 'Physical index future.',\n 'Physical index option.',\n 'PIK',\n 'PIK LOC',\n 'PIK REV',\n 'PIK SYNTH LOC',\n 'PIK TERM',\n 'PLAZOS FIJOS',\n 'PORTUGUESE CP',\n 'Preference',\n 'Preferred',\n 'PRES',\n 'Prfd WRT',\n 'PRIV PLACEMENT',\n 'PRIVATE',\n 'Private Comp',\n 'Private-equity backed',\n 'PROMISSORY NOTE',\n 'PROV T-BILL',\n 'Prvt CMBS',\n 'Prvt CMO FLT',\n 'Prvt CMO INV',\n 'Prvt CMO IO',\n 'Prvt CMO Other',\n 'Prvt CMO PO',\n 'Prvt CMO Z',\n 'PUBLIC',\n 'Pvt Eqty Fund',\n 'RDC',\n 'Receipt',\n 'REIT',\n 'REPO',\n 'RESERVE-BASED DIP REV',\n 'RESERVE-BASED LOC',\n 'RESERVE-BASED REV',\n 'RESERVE-BASED TERM',\n 'RESTRUCTURD DEBT',\n 'RETAIL CD',\n 'RETURN IDX',\n 'REV',\n 'REV GUARANTEE FAC',\n 'REV VAT-TRNCH',\n 'Revolver',\n 'Right',\n 'Royalty Trst',\n 'S.TERM LOAN NOTE',\n 'SAMURAI',\n 'Savings Plan',\n 'Savings Share',\n 'SBA Pool',\n 'SDR',\n 'Sec Lending',\n 'SHOGUN',\n 'SHORT TERM BN',\n 'SHORT TERM DN',\n 'SINGAPORE CP',\n 'Singapore DR',\n 'SINGLE STOCK DIVIDEND FUTURE',\n 'SINGLE STOCK FORWARD',\n 'SINGLE STOCK FUTURE',\n 'SINGLE STOCK FUTURE SPREAD',\n 'SN',\n 'SPANISH CP',\n 'SPECIAL LMMK PGM',\n 'SPOT',\n 'Spot index.',\n 'STANDBY',\n 'STANDBY LOC',\n 'STANDBY LOC GUARANTEE FAC',\n 'STANDBY REV',\n 'STANDBY TERM',\n 'Stapled Security',\n 'STERLING CD',\n 'STERLING CP',\n 'Strategy Trade.',\n 'SWAP',\n 'SWAP SPREAD',\n 'SWAPTION VOLATILITY',\n 'SWEDISH CP',\n 'SWINGLINE',\n 'Swiss Cert',\n 'SYNTH LOC',\n 'SYNTH REV',\n 'SYNTH TERM',\n 'Synthetic Term',\n 'TAIWAN CP',\n 'TAIWAN CP GUAR',\n 'TAIWAN NEGO CD',\n 'TAIWAN TIME DEPO',\n 'TAX CREDIT',\n 'TAX CREDIT, OID',\n 'TDR',\n 'TERM',\n 'TERM DEPOSITS',\n 'TERM GUARANTEE FAC',\n 'TERM REV',\n 'TERM VAT-TRNCH',\n 'THAILAND CP',\n 'TLTRO TERM',\n 'Tracking Stk',\n 'TREASURY BILL',\n 'U.S. CD',\n 'U.S. CP',\n 'U.S. INT BEAR CP',\n 'UIT',\n 'UK GILT STOCK',\n 'UMBS MBS Other',\n 'Unit',\n 'Unit Inv Tst',\n 'UNITRANCHE',\n 'UNITRANCHE ASSET-BASED REV',\n 'UNITRANCHE DELAY-DRAW PIK T',\n 'UNITRANCHE DELAY-DRAW TERM',\n 'UNITRANCHE PIK REV',\n 'UNITRANCHE PIK TERM',\n 'UNITRANCHE REV',\n 'UNITRANCHE TERM',\n 'US DOMESTIC',\n 'US GOVERNMENT',\n 'US NON-DOLLAR',\n 'VAR RATE DEM OBL',\n 'VAT-TRNCH',\n 'VENEZUELAN CP',\n 'VIETNAMESE CD',\n 'VOLATILITY DERIVATIVE',\n 'Warrant',\n 'YANKEE',\n 'YANKEE CD',\n 'YEN CD',\n 'YEN CP',\n 'Yield Curve',\n 'ZERO COUPON',\n 'ZERO COUPON, OID',\n]).or(z.string())\n\nexport const SecurityType2Schema = z.enum([\n '2ND LIEN',\n 'ABS',\n 'ABS Other',\n 'ABS/HG',\n 'ABS/MEZZ',\n 'BA',\n 'Bagged Briquettes',\n 'Bagged Pellets',\n 'BANK BILL',\n 'BANKERS ACCEPTANCE',\n 'BASIS',\n 'BASIS SWAP',\n 'BASIS_IMM',\n 'Bill',\n 'Billet 20MN',\n 'Billet 3803p',\n 'Billet 3803s',\n 'Billet 3803sp',\n 'Billet 3805p',\n 'Billet 3805s',\n 'Billet 3805sp',\n 'Billet A61560',\n 'Billet BS4449',\n 'Billet LME Grade 1',\n 'Billet LME Grade 2',\n 'Billet LME Grade 3',\n 'Billet LME Grade 4',\n 'Billet LME Grade 5',\n 'Billet LME Grade 6',\n 'Billet LME Grade 7',\n 'Billet LME Grade 8',\n 'Billet LME Grade 9',\n 'Billet Q235',\n 'BN',\n 'Bond',\n 'Bond/Note',\n 'Briquettes',\n 'BUTTERFLY SWAP',\n 'CAPFLOOR',\n 'CAPFLOOR_RFR',\n 'CAPS & FLOORS',\n 'CASH RATE',\n 'Cathodes',\n 'Cathodes 100x100mm',\n 'Cathodes 25x25mm',\n 'Cathodes 50x50mm',\n 'CD',\n 'CDO2',\n 'CDS',\n 'CDS(CRP)',\n 'Certificate',\n 'CMBS',\n 'CMO',\n 'Coarse Grain Powder',\n 'Comdty',\n 'COMMERCIAL PAPER',\n 'Common Stock',\n 'CONTRACT FRA',\n 'Corp',\n 'CP',\n 'CRE',\n 'CROSS',\n 'CROSS_CURRENCY_BASIS',\n 'CROSS_CURRENCY_FIXED_FLOAT',\n 'CRYPTO',\n 'Curncy',\n 'Daily Future',\n 'DEPOSIT',\n 'Depositary Receipt',\n 'Derived',\n 'DN',\n 'Equity',\n 'FDIC',\n 'FIXED_FLOAT',\n 'FIXED_FLOAT_FORWARD_STARTING',\n 'FIXED_FLOAT_OIS',\n 'FIXING RATE',\n 'FORWARD',\n 'FORWARD CROSS',\n 'FORWARD CURVE',\n 'FORWARD_START_SWAP',\n 'FRA',\n 'Full Plate Cathodes',\n 'Future',\n 'FWD SWAP',\n 'FX Curve',\n 'Generic',\n 'Govt',\n 'Granules',\n 'Hedged',\n 'HF',\n 'HY',\n 'IG',\n 'IMM FORWARD',\n 'IMM SWAP',\n 'Index',\n 'INFL_FIXING_ZERO_COUPON',\n 'INFL_FXFL_ZERO_COUPON',\n 'INFLATION SWAP',\n 'INFLATION_SWAP',\n 'Ingots',\n 'Ingots 226/DIN',\n 'Ingots A380.1',\n 'Ingots AD12.1',\n 'Ingots D12S/J1S',\n 'Jumbo',\n 'Large Sows',\n 'Large sows 226',\n 'Large sows A380.1',\n 'Large sows AD12.1',\n 'Large sows D12S',\n 'LL',\n 'LL08',\n 'M-Mkt',\n 'MAC SWAP',\n 'MAC_RFR',\n 'MEZZ',\n 'MML',\n 'Molybdenum Cntd n RMC(Roasted',\n 'MONEY MARKET CALL',\n 'Mtge',\n 'MTN',\n 'Muni',\n 'MUNI SWAP',\n 'Mutual Fund',\n 'NDF SWAP',\n 'NDOIS',\n 'Nickel Rounds',\n 'Nickel Rounds Bag',\n 'NON-DELIVERABLE FORWARD',\n 'NON-DELIVERABLE IRS SWAP',\n 'NON-DELIVERABLE OIS SWAP',\n 'Note',\n 'ONSHORE FORWARD',\n 'ONSHORE SWAP',\n 'Option',\n 'OPTION VOLATILITY',\n 'OTHER',\n 'OVERNIGHT INDEXED SWAP',\n 'PAIR',\n 'PAR_RATE',\n 'Partnership Shares',\n 'Pellets',\n 'Pool',\n 'PP12',\n 'PP20',\n 'PP25',\n 'PP3.5',\n 'Preference',\n 'Preferred Stock',\n 'PROMISSORY NOTE',\n 'Prompt Forward',\n 'PROPERTY SWAP',\n 'QUARTERLY SWAP',\n 'REIT',\n 'REPO',\n 'RETURN IDX',\n 'Right',\n 'RMBS',\n 'Rounds',\n 'Small Sows',\n 'Small sows 226',\n 'Small sows A380.1',\n 'Small sows AD12.1',\n 'Small sows D12S',\n 'SME',\n 'Sows',\n 'SPOT',\n 'SWAP',\n 'SWAP SPREAD',\n 'SWAPTION',\n 'SWAPTION VOLATILITY',\n 'T-Bar',\n 'T-Bars 226',\n 'T-Bars A380.1',\n 'T-Bars AD12.1',\n 'T-Bars D12S',\n 'TBA',\n 'TD',\n 'TREASURY BILL',\n 'TRP',\n 'Unit',\n 'Unit Investment Trust',\n 'VOLATILITY DERIVATIVE',\n 'Warrant',\n 'Whole Loan',\n 'Yield Curve',\n 'ZERO_COUPON_OIS_SWAP',\n]).or(z.string())\n\nexport const MarketSectorSchema = z.enum([\n 'Comdty',\n 'Corp',\n 'Curncy',\n 'Equity',\n 'Govt',\n 'Index',\n 'M-Mkt',\n 'Mtge',\n 'Muni',\n 'Pfd',\n]).or(z.string())\n\nexport const StateCodeSchema = z.enum([\n 'AB', 'AC', 'AH', 'AK', 'AL', 'AM', 'AR', 'AS', 'AT', 'AZ',\n 'BC', 'BJ', 'CA', 'CB', 'CO', 'CQ', 'CT', 'CZ', 'DC', 'DE',\n 'EH', 'FH', 'FI', 'FJ', 'FL', 'FO', 'FS', 'GA', 'GD', 'GF',\n 'GM', 'GS', 'GU', 'GX', 'GZ', 'HA', 'HB', 'HE', 'HG', 'HI',\n 'HL', 'HN', 'HO', 'HS', 'IA', 'ID', 'IG', 'IK', 'IL', 'IN',\n 'IT', 'JL', 'JS', 'JX', 'KA', 'KC', 'KN', 'KO', 'KS', 'KT',\n 'KU', 'KY', 'LA', 'LN', 'MA', 'MB', 'MD', 'ME', 'MG', 'MI',\n 'MN', 'MO', 'MS', 'MT', 'MZ', 'NB', 'NC', 'ND', 'NE', 'NG',\n 'NH', 'NJ', 'NL', 'NM', 'NN', 'NR', 'NS', 'NT', 'NU', 'NV',\n 'NW', 'NX', 'NY', 'OH', 'OK', 'ON', 'OR', 'OS', 'OT', 'OY',\n 'PA', 'PE', 'PR', 'QC', 'QH', 'QL', 'RI', 'SA', 'SC', 'SD',\n 'SH', 'SI', 'SK', 'SN', 'ST', 'SX', 'SZ', 'TA', 'TG', 'TJ',\n 'TK', 'TN', 'TS', 'TT', 'TX', 'TY', 'UT', 'VA', 'VI', 'VT',\n 'WA', 'WI', 'WK', 'WV', 'WY', 'XJ', 'XZ', 'YA', 'YN', 'YT',\n 'YU', 'ZJ',\n]).or(z.string())\n\nexport const MappingRequestSchema = z.object({\n idType: IdTypeSchema,\n idValue: z.string().min(1),\n exchCode: ExchCodeSchema.optional(),\n micCode: MicCodeSchema.optional(),\n currency: CurrencySchema.optional(),\n marketSecDes: MarketSectorSchema.optional(),\n securityType: SecurityTypeSchema.optional(),\n securityType2: SecurityType2Schema.optional(),\n includeUnlistedEquities: z.boolean().optional(),\n optionType: z.enum(['Put', 'Call']).optional(),\n strike: z.array(z.number()).optional(),\n contractSize: z.number().optional(),\n coupon: z.array(z.number()).optional(),\n expiration: z.array(z.number()).optional(),\n maturity: z.array(z.number()).optional(),\n stateCode: StateCodeSchema.optional(),\n})\n\nexport const FigiResultSchema = z.object({\n figi: z.string(),\n securityType: SecurityTypeSchema.optional(),\n marketSector: MarketSectorSchema.optional(),\n ticker: z.string().optional(),\n name: z.string().optional(),\n exchCode: ExchCodeSchema.optional(),\n shareClassFIGI: z.string().optional(),\n compositeFIGI: z.string().optional(),\n securityType2: SecurityType2Schema.optional(),\n securityDescription: z.string().optional(),\n metadata: z.string().optional(),\n})\n\nexport const MappingResponseSchema = z.object({\n data: z.array(FigiResultSchema).optional(),\n warning: z.string().optional(),\n error: z.string().optional(),\n})\n\nexport const ApiErrorSchema = z.object({\n error: z.string(),\n message: z.string().optional(),\n statusCode: z.number().optional(),\n})\n\nexport const ClientConfigSchema = z.object({\n apiKey: z.string().optional(),\n baseUrl: z.string().url().optional(),\n timeout: z.number().positive().optional(),\n retryLimit: z.number().min(0).max(10).optional(),\n retryDelay: z.number().positive().optional(),\n userAgent: z.string().optional(),\n})\n","import ky, { type HTTPError, type KyInstance } from 'ky'\nimport type { ClientConfig, MappingRequest, MappingResponse, RateLimitInfo } from '../types'\nimport { OpenFigiError, RateLimitError, ValidationError } from '../utils/errors'\nimport { exponentialBackoff, parseRateLimitHeaders, sleep } from '../utils/helpers'\nimport { ClientConfigSchema, MappingRequestSchema, MappingResponseSchema } from '../validators'\n\nconst DEFAULT_CONFIG: Required<ClientConfig> = {\n apiKey: '',\n baseUrl: 'https://api.openfigi.com',\n timeout: 30000,\n retryLimit: 3,\n retryDelay: 1000,\n userAgent: 'openfigi-sdk/1.0.3 (+https://github.com/viktorlarsson/openfigi)',\n}\n\nlet currentRateLimitInfo: RateLimitInfo | undefined\nlet debugMode = false\n\n/**\n * Enable or disable debug logging\n * @param enabled - Whether to enable debug mode\n */\nexport const setDebugMode = (enabled: boolean) => {\n debugMode = enabled\n}\n\nconst log = (level: 'info' | 'warn' | 'error', message: string, ...args: unknown[]) => {\n if (!debugMode) return\n const prefix = `[@openfigi/sdk] [${level.toUpperCase()}]`\n console[level](prefix, message, ...args)\n}\n\nconst createHttpClient = (config: Required<ClientConfig>): KyInstance => {\n return ky.create({\n prefixUrl: config.baseUrl,\n timeout: config.timeout,\n headers: {\n 'Content-Type': 'application/json',\n 'User-Agent': config.userAgent,\n ...(config.apiKey && { 'X-OPENFIGI-APIKEY': config.apiKey }),\n },\n retry: {\n limit: config.retryLimit,\n methods: ['get', 'post'],\n statusCodes: [408, 413, 429, 500, 502, 503, 504],\n },\n hooks: {\n beforeRequest: [\n (request) => {\n log('info', `Request: ${request.method} ${request.url}`)\n },\n ],\n beforeRetry: [\n async ({ error, retryCount }) => {\n const delay = exponentialBackoff(retryCount, config.retryDelay)\n log('warn', `Retry attempt ${retryCount} after ${delay}ms`, error.message)\n await sleep(delay)\n },\n ],\n afterResponse: [\n (_request, _options, response) => {\n const { limit, remaining, reset } = parseRateLimitHeaders(response.headers)\n if (limit !== undefined && remaining !== undefined && reset) {\n currentRateLimitInfo = { limit, remaining, reset }\n log('info', `Rate limit: ${remaining}/${limit} (resets: ${reset.toISOString()})`)\n }\n log('info', `Response: ${response.status} ${response.statusText}`)\n return response\n },\n ],\n },\n })\n}\n\n/**\n * Creates an OpenFIGI client with custom configuration\n *\n * @param config - Client configuration options\n * @returns An OpenFIGI client instance with all available methods\n *\n * @example\n * ```typescript\n * const client = createClient({\n * apiKey: 'your-api-key',\n * timeout: 60000\n * })\n * ```\n */\nexport const createClient = (config: ClientConfig = {}) => {\n const validation = ClientConfigSchema.safeParse(config)\n if (!validation.success) {\n const errors = validation.error.issues\n .map((e) => `${e.path.join('.')}: ${e.message}`)\n .join(', ')\n throw new ValidationError(`Invalid client configuration: ${errors}`, validation.error)\n }\n\n const finalConfig = { ...DEFAULT_CONFIG, ...config }\n const httpClient = createHttpClient(finalConfig)\n\n /**\n * Map multiple identifiers to FIGIs in a single request\n *\n * @param requests - Array of mapping requests (max 100)\n * @returns Array of mapping responses in the same order as requests\n * @throws {ValidationError} If requests are invalid\n * @throws {RateLimitError} If rate limit is exceeded\n * @throws {OpenFigiError} If API returns an error\n *\n * @example\n * ```typescript\n * const responses = await mapping([\n * { idType: 'ID_ISIN', idValue: 'US0378331005' },\n * { idType: 'ID_CUSIP', idValue: '037833100' }\n * ])\n * ```\n */\n const mapping = async (requests: MappingRequest[]): Promise<MappingResponse[]> => {\n if (!Array.isArray(requests) || requests.length === 0) {\n throw new ValidationError(\n 'Requests must be a non-empty array. Provide at least one mapping request.'\n )\n }\n\n if (requests.length > 100) {\n throw new ValidationError(\n `Too many requests: ${requests.length}. Maximum 100 requests allowed per call. Split into multiple batches.`\n )\n }\n\n const validatedRequests = requests.map((req, index) => {\n const validation = MappingRequestSchema.safeParse(req)\n if (!validation.success) {\n const errors = validation.error.issues\n .map((e) => `${e.path.join('.')}: ${e.message}`)\n .join(', ')\n throw new ValidationError(\n `Invalid mapping request at index ${index}: ${errors}`,\n validation.error\n )\n }\n return validation.data\n })\n\n try {\n log('info', `Mapping ${validatedRequests.length} identifier(s)`)\n const response = await httpClient.post('v3/mapping', {\n json: validatedRequests,\n })\n\n const data = (await response.json()) as unknown\n\n if (!Array.isArray(data)) {\n throw new OpenFigiError(\n `Invalid API response: expected array but got ${typeof data}`,\n response.status,\n data\n )\n }\n\n const validatedResponses = data.map((item, index) => {\n const validation = MappingResponseSchema.safeParse(item)\n if (!validation.success) {\n log('warn', `Invalid response at index ${index}:`, item, validation.error)\n return item as MappingResponse\n }\n return validation.data\n })\n\n log('info', `Mapped ${validatedResponses.length} identifier(s) successfully`)\n return validatedResponses\n } catch (error) {\n if (error instanceof OpenFigiError) {\n throw error\n }\n\n if (error instanceof Error && 'response' in error) {\n const httpError = error as HTTPError\n const status = httpError.response?.status\n\n if (status === 429) {\n const retryAfter = httpError.response?.headers?.get('retry-after')\n throw new RateLimitError(\n 'Rate limit exceeded. Please wait before making more requests.',\n retryAfter ? parseInt(retryAfter, 10) : undefined,\n status\n )\n }\n\n if (status === 400) {\n const body = await httpError.response?.text()\n throw new ValidationError(\n `Bad request: ${body || 'Invalid request format'}. Please check your request parameters and ensure all required fields are properly formatted.`,\n body\n )\n }\n\n if (status === 401) {\n throw new OpenFigiError(\n 'Authentication failed. Please check your API key. You can get an API key at https://www.openfigi.com/api',\n status\n )\n }\n\n if (status === 403) {\n throw new OpenFigiError(\n 'Access forbidden. Your API key may not have the required permissions for this operation.',\n status\n )\n }\n\n if (status === 404) {\n throw new OpenFigiError(\n 'Endpoint not found. Please check the API version or ensure you are using the correct base URL.',\n status\n )\n }\n\n throw new OpenFigiError(\n `Request failed with status ${status}: ${httpError.message}`,\n status,\n await httpError.response?.text()\n )\n }\n\n throw new OpenFigiError('Unexpected error occurred', undefined, error)\n }\n }\n\n /**\n * Map a single identifier to FIGI\n *\n * @param request - Single mapping request\n * @returns Mapping response\n *\n * @example\n * ```typescript\n * const response = await mappingSingle({\n * idType: 'ID_ISIN',\n * idValue: 'US0378331005'\n * })\n * ```\n */\n const mappingSingle = async (request: MappingRequest): Promise<MappingResponse> => {\n const responses = await mapping([request])\n return responses[0]\n }\n\n /**\n * Search for FIGI by ISIN\n *\n * @param isin - ISIN identifier (e.g., 'US0378331005')\n * @param options - Additional search options\n * @returns Mapping response with FIGI data\n *\n * @example\n * ```typescript\n * const result = await searchByISIN('US0378331005')\n * if (result.data) {\n * console.log('FIGI:', result.data[0].figi)\n * }\n * ```\n */\n const searchByISIN = async (\n isin: string,\n options?: Partial<MappingRequest>\n ): Promise<MappingResponse> => {\n if (!isin || typeof isin !== 'string') {\n throw new ValidationError('ISIN must be a non-empty string. Example: \"US0378331005\"')\n }\n return mappingSingle({\n idType: 'ID_ISIN',\n idValue: isin.trim(),\n ...options,\n })\n }\n\n /**\n * Search for FIGI by CUSIP\n *\n * @param cusip - CUSIP identifier (e.g., '037833100')\n * @param options - Additional search options\n * @returns Mapping response with FIGI data\n */\n const searchByCUSIP = async (\n cusip: string,\n options?: Partial<MappingRequest>\n ): Promise<MappingResponse> => {\n if (!cusip || typeof cusip !== 'string') {\n throw new ValidationError('CUSIP must be a non-empty string. Example: \"037833100\"')\n }\n return mappingSingle({\n idType: 'ID_CUSIP',\n idValue: cusip.trim(),\n ...options,\n })\n }\n\n /**\n * Search for FIGI by SEDOL\n *\n * @param sedol - SEDOL identifier (e.g., '2046251')\n * @param options - Additional search options\n * @returns Mapping response with FIGI data\n */\n const searchBySEDOL = async (\n sedol: string,\n options?: Partial<MappingRequest>\n ): Promise<MappingResponse> => {\n if (!sedol || typeof sedol !== 'string') {\n throw new ValidationError('SEDOL must be a non-empty string. Example: \"2046251\"')\n }\n return mappingSingle({\n idType: 'ID_SEDOL',\n idValue: sedol.trim(),\n ...options,\n })\n }\n\n /**\n * Search for FIGI by ticker symbol\n *\n * @param ticker - Ticker symbol (e.g., 'AAPL')\n * @param exchCode - Optional exchange code (e.g., 'US')\n * @param options - Additional search options\n * @returns Mapping response with FIGI data\n *\n * @example\n * ```typescript\n * const result = await searchByTicker('AAPL', 'US')\n * ```\n */\n const searchByTicker = async (\n ticker: string,\n exchCode?: string,\n options?: Partial<MappingRequest>\n ): Promise<MappingResponse> => {\n if (!ticker || typeof ticker !== 'string') {\n throw new ValidationError('Ticker must be a non-empty string. Example: \"AAPL\"')\n }\n return mappingSingle({\n idType: 'ID_EXCH_SYMBOL',\n idValue: ticker.trim().toUpperCase(),\n exchCode: exchCode?.trim(),\n ...options,\n })\n }\n\n /**\n * Search for FIGI by Bloomberg ID\n *\n * @param bbgId - Bloomberg Global ID (e.g., 'BBG000B9XRY4')\n * @param options - Additional search options\n * @returns Mapping response with FIGI data\n */\n const searchByBloombergId = async (\n bbgId: string,\n options?: Partial<MappingRequest>\n ): Promise<MappingResponse> => {\n if (!bbgId || typeof bbgId !== 'string') {\n throw new ValidationError('Bloomberg ID must be a non-empty string. Example: \"BBG000B9XRY4\"')\n }\n return mappingSingle({\n idType: 'ID_BB_GLOBAL',\n idValue: bbgId.trim(),\n ...options,\n })\n }\n\n /**\n * Get current rate limit information\n *\n * @returns Rate limit info if available, undefined if no requests made yet\n *\n * @example\n * ```typescript\n * const rateLimit = getRateLimitInfo()\n * if (rateLimit) {\n * console.log(`${rateLimit.remaining} requests remaining`)\n * }\n * ```\n */\n const getRateLimitInfo = (): RateLimitInfo | undefined => {\n return currentRateLimitInfo\n }\n\n return {\n mapping,\n mappingSingle,\n searchByISIN,\n searchByCUSIP,\n searchBySEDOL,\n searchByTicker,\n searchByBloombergId,\n getRateLimitInfo,\n }\n}\n\n// Export standalone functions with default client\nconst defaultClient = createClient()\n\nexport const mapping = defaultClient.mapping\nexport const mappingSingle = defaultClient.mappingSingle\nexport const searchByISIN = defaultClient.searchByISIN\nexport const searchByCUSIP = defaultClient.searchByCUSIP\nexport const searchBySEDOL = defaultClient.searchBySEDOL\nexport const searchByTicker = defaultClient.searchByTicker\nexport const searchByBloombergId = defaultClient.searchByBloombergId\nexport const getRateLimitInfo = defaultClient.getRateLimitInfo\n","/**\n * Validate ISIN format (12 characters, alphanumeric)\n */\nexport const isValidISIN = (isin: string): boolean => {\n return /^[A-Z]{2}[A-Z0-9]{9}[0-9]$/.test(isin)\n}\n\n/**\n * Validate CUSIP format (9 characters, alphanumeric)\n */\nexport const isValidCUSIP = (cusip: string): boolean => {\n return /^[A-Z0-9]{9}$/.test(cusip)\n}\n\n/**\n * Validate SEDOL format (7 characters, alphanumeric)\n */\nexport const isValidSEDOL = (sedol: string): boolean => {\n return /^[A-Z0-9]{7}$/.test(sedol)\n}\n\n/**\n * Validate Bloomberg ID format (starts with BBG)\n */\nexport const isValidBloombergId = (bbgId: string): boolean => {\n return /^BBG[A-Z0-9]{9}$/.test(bbgId)\n}\n\n/**\n * Split array into batches of specified size\n * Useful for splitting large arrays for batch processing\n */\nexport const batchArray = <T>(array: T[], batchSize: number): T[][] => {\n const batches: T[][] = []\n for (let i = 0; i < array.length; i += batchSize) {\n batches.push(array.slice(i, i + batchSize))\n }\n return batches\n}\n"],"mappings":"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;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAS;CAAO;CAAO;CACjE;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAM;CAAO;CAC9D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;AAChE,EAAC,CAAC,GAAG,MAAE,QAAQ,CAAC;AAEjB,MAAa,gBAAgB,MAAE,KAAK;CAClC;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAO;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACvE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;AACjD,EAAC,CAAC,GAAG,MAAE,QAAQ,CAAC;AAEjB,MAAa,qBAAqB,MAAE,KAAK;CACvC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD,EAAC,CAAC,GAAG,MAAE,QAAQ,CAAC;AAEjB,MAAa,sBAAsB,MAAE,KAAK;CACxC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD,EAAC,CAAC,GAAG,MAAE,QAAQ,CAAC;AAEjB,MAAa,qBAAqB,MAAE,KAAK;CACvC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD,EAAC,CAAC,GAAG,MAAE,QAAQ,CAAC;AAEjB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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["message: string","statusCode?: number","response?: unknown","retryAfter?: number","errors?: unknown","ms: number","headers: Headers","attempt: number","baseDelay: number","maxDelay: number","DEFAULT_CONFIG: Required<ClientConfig>","currentRateLimitInfo: RateLimitInfo | undefined","enabled: boolean","level: 'info' | 'warn' | 'error'","message: string","config: Required<ClientConfig>","config: ClientConfig","requests: MappingRequest[]","request: MappingRequest","isin: string","options?: Partial<MappingRequest>","cusip: string","sedol: string","ticker: string","exchCode?: string","bbgId: string","isin: string","cusip: string","sedol: string","bbgId: string","array: T[]","batchSize: number","batches: T[][]"],"sources":["../src/utils/errors.ts","../src/utils/helpers.ts","../src/validators/index.ts","../src/client/client.ts","../src/utils/validators.ts"],"sourcesContent":["export class OpenFigiError extends Error {\n constructor(\n message: string,\n public statusCode?: number,\n public response?: unknown\n ) {\n super(message)\n this.name = 'OpenFigiError'\n }\n}\n\nexport class RateLimitError extends OpenFigiError {\n constructor(\n message: string,\n public retryAfter?: number,\n statusCode?: number\n ) {\n super(message, statusCode)\n this.name = 'RateLimitError'\n }\n}\n\nexport class ValidationError extends OpenFigiError {\n constructor(\n message: string,\n public errors?: unknown\n ) {\n super(message)\n this.name = 'ValidationError'\n }\n}\n","export function sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nexport function parseRateLimitHeaders(headers: Headers): {\n limit?: number\n remaining?: number\n reset?: Date\n} {\n const limit = headers.get('x-ratelimit-limit')\n const remaining = headers.get('x-ratelimit-remaining')\n const reset = headers.get('x-ratelimit-reset')\n\n return {\n limit: limit ? parseInt(limit, 10) : undefined,\n remaining: remaining ? parseInt(remaining, 10) : undefined,\n reset: reset ? new Date(parseInt(reset, 10) * 1000) : undefined,\n }\n}\n\nexport function exponentialBackoff(\n attempt: number,\n baseDelay: number = 1000,\n maxDelay: number = 30000\n): number {\n const delay = Math.min(baseDelay * 2 ** attempt, maxDelay)\n const jitter = Math.random() * 0.1 * delay\n return Math.floor(delay + jitter)\n}\n\n","import { z } from 'zod'\n\nexport const IdTypeSchema = z.enum([\n 'ID_ISIN',\n 'ID_BB_UNIQUE',\n 'ID_SEDOL',\n 'ID_COMMON',\n 'ID_WERTPAPIER',\n 'ID_CUSIP',\n 'ID_BB',\n 'ID_ITALY',\n 'ID_EXCH_SYMBOL',\n 'ID_FULL_EXCHANGE_SYMBOL',\n 'COMPOSITE_ID_BB_GLOBAL',\n 'ID_BB_GLOBAL_SHARE_CLASS_LEVEL',\n 'ID_BB_GLOBAL',\n 'ID_BB_SEC_NUM_DES',\n 'ID_BB_SEC_NUM',\n 'ID_CINS',\n 'ID_BELGIUM',\n 'ID_DENMARK',\n 'ID_FRANCE',\n 'ID_JAPAN',\n 'ID_LUXEMBOURG',\n 'ID_NETHERLANDS',\n 'ID_POLAND',\n 'ID_PORTUGAL',\n 'ID_SWEDEN',\n 'ID_SHORT_CODE',\n]).or(z.string())\n\nexport const ExchCodeSchema = z.enum([\n '24X National', 'A0', 'AA', 'AB', 'ABIDJAN', 'ABTS', 'ABU DHABI', 'AC', 'ACE', 'ACXI',\n 'AD', 'ADE', 'ADX', 'AEQUITAS NEO LIT', 'AERB', 'AERC', 'AF', 'AFE', 'AG', 'AH',\n 'AI', 'AIAF', 'AJ', 'AL', 'ALCN', 'ALGIERS', 'ALL GERMAN SE', 'AM', 'AME', 'AMMAN FIN MKT',\n 'ANTWERP', 'AO', 'AP', 'APX', 'AQ', 'Aquis', 'AR', 'ARKM', 'ARMENIA', 'AS',\n 'ASP', 'ASUNCION', 'ASX', 'AT', 'ATA', 'ATHENS', 'AU', 'AUSTRALIA', 'AV', 'AW',\n 'AX', 'AY', 'AZ', 'B1', 'B2', 'B3', 'B4', 'BA', 'BAHAMAS', 'BAHRAIN',\n 'BAKU', 'BANGALORE', 'BANJA LUKA', 'BARBADOS', 'BARCELONA', 'BATS', 'BB', 'BBOX', 'BBSP', 'bbsp',\n 'BBX', 'BC', 'BCEX', 'BCF', 'BD', 'BDP', 'BEIJING', 'BEIRUT', 'BELARUS', 'BELGRADE',\n 'BEQU', 'bequ', 'BERLIN', 'BERMUDA', 'BERN', 'BEVSA', 'BF', 'BFLY', 'bfly', 'BFNX',\n 'bfnx', 'BFO', 'BFRX', 'bfrx', 'BFX', 'BG', 'BGC', 'BGON', 'bgon', 'BGSP',\n 'BH', 'BI', 'BIDS', 'BILBAO', 'BINC', 'binc', 'BITZ', 'BIVA', 'BJEX', 'BK',\n 'BL3P', 'BLC2', 'blc2', 'BLCR', 'blcr', 'Blue Ocean ATS', 'BM', 'BMF', 'BN', 'BNCE',\n 'bnce', 'BNDX', 'BNF', 'BNUS', 'bnus', 'BO', 'Bodiva', 'BOLSA CENTROAMER', 'BOLSA NACL VALOR', 'Bondvision',\n 'BORSA ISTANBUL', 'BOTSWANA', 'BOV', 'BP', 'Bpm', 'bpnd', 'BPVB', 'BQ', 'BR', 'BRATISLAVA',\n 'BRJ', 'BS', 'BSE', 'BT', 'BT38', 'BTBA', 'btba', 'BTBU', 'BTBY', 'BTCA',\n 'btcb', 'BTHB', 'bthb', 'BTMX', 'btmx', 'BTRK', 'btrk', 'BTRX', 'btrx', 'BTS',\n 'BTSH', 'BTSO', 'btso', 'BU', 'BUCHAREST', 'BUDAPEST', 'BUENOS AIRES', 'BULGARIA', 'BULL', 'BURGUNDY',\n 'BURSA MALAYSIA', 'BV', 'BVAV', 'BVL', 'BW', 'BX', 'BX - SWISS', 'BXTH', 'BY', 'BYBT',\n 'BZ', 'C1', 'C2', 'C3', 'CA', 'CARACAS', 'CASABLANCA', 'CAYMAN ISLANDS', 'CB', 'CBD',\n 'CBF', 'CBO', 'CBOE', 'CBSE', 'cbse', 'CBT', 'CC', 'ccck', 'CCO', 'CCT',\n 'CCX', 'CD', 'CDE', 'CE', 'CEG', 'CENT ANOTACIONE', 'CEXI', 'cexi', 'CF', 'CFF',\n 'CFLR', 'CG', 'CH', 'CHANNEL ISLANDS', 'CHI-X', 'Chi-X Australia', 'CHICAGO', 'CHINA INTERBANK', 'CHONGWA ASSET EX', 'CI',\n 'CJ', 'CK', 'CL', 'CM', 'CME', 'CMF', 'CML3', 'CMX', 'CN', 'CNEX',\n 'cnex', 'CNGG', 'CNHD', 'CNMT', 'CNSX', 'CO', 'COLOMBIA', 'COLOMBO', 'CONE', 'cone',\n 'COP', 'CP', 'CQ', 'CR', 'CRCO', 'crco', 'CRV2', 'crv2', 'CS', 'CSE',\n 'CT', 'CU', 'CUCY', 'cucy', 'CURV', 'curv', 'CV', 'CW', 'CX', 'CY',\n 'CYPRUS', 'CZ', 'DAR-ES-SALAAM', 'DB', 'DBS Digital', 'DC', 'DCE', 'DD', 'DE', 'DEB',\n 'delt', 'DF', 'DFX', 'DG', 'DGC', 'DH', 'DHAKA', 'DJ', 'DK', 'DL',\n 'DM', 'DME', 'DN', 'DOUALA', 'drbt', 'DS', 'DT', 'DU', 'DUBAI FINL MKT', 'DUBLIN',\n 'DUSSELDORF', 'DV', 'DVX', 'DX', 'E1', 'E2', 'EA', 'EAST CARIBBEAN', 'EB', 'EC',\n 'ED', 'EDX', 'EDXM', 'EEE', 'EG', 'EGX', 'EI', 'EK', 'EL', 'EL SALVADOR',\n 'ELECTRONIC CHILE', 'ELX', 'EM', 'EN', 'EO', 'EOC', 'EOE', 'EOP', 'EP', 'EQ',\n 'ERI', 'ERIS', 'eris', 'ES', 'ESWATINI', 'ET', 'ETHX', 'EU', 'EUROMTF', 'EUROMTS',\n 'EURONEXT-AMSTER', 'EURONEXT-BRUSS', 'EURONEXT-DUBLIN', 'EURONEXT-GRW-MIL', 'EURONEXT-LISBON', 'EURONEXT-MILAN', 'EURONEXT-PARIS', 'EUROTLX', 'EUS', 'EUWAX STUTTGART',\n 'EUX', 'EX', 'Extra MOT', 'Extra MOT Pro', 'EXXA', 'EY', 'EZ', 'FA', 'FEX', 'FF',\n 'FF ZERTIFIKATE', 'FFE', 'FH', 'FMX', 'FNX', 'FP', 'FPL', 'FRANKFURT', 'FRX', 'FS',\n 'FTX', 'FTXX', 'FUKUOKA', 'G1', 'G4', 'GA', 'GACN', 'GATE', 'GB', 'GBT',\n 'GC', 'GD', 'GE', 'GEMMA', 'GEORGIA', 'Gettex', 'GF', 'GG', 'GH', 'GHANA',\n 'GI', 'Gibraltar', 'GK', 'GL', 'GM', 'GME', 'GMNI', 'gmni', 'GN', 'GQ',\n 'GR', 'GS', 'GT', 'GU', 'GUATEMALA', 'GUAYAQUIL', 'GW', 'GY', 'GZ', 'H1',\n 'H2', 'HAMBURG', 'HANNOVER', 'HANOI', 'HB', 'HCM CITY EXCH', 'HD', 'HE', 'HEX', 'HI-MTF',\n 'HITB', 'hitb', 'HK', 'HKG', 'HKM', 'HM', 'HNX', 'HO', 'HONG KONG', 'HUOB',\n 'huob', 'HX', 'I2', 'IA', 'IAD', 'IB', 'IC', 'ICD', 'ICE', 'ICE ECX',\n 'ICF', 'ID', 'IDEM', 'IDR', 'IDX', 'IE', 'IEA', 'IF', 'IFE', 'IG',\n 'IH', 'IJ', 'IM', 'IN', 'INCH', 'INDIA INX', 'INDONESIA EXCH', 'INDR', 'indr', 'INE',\n 'INTERCONTINENTAL', 'INX', 'IO', 'IQ', 'IR', 'IS', 'ISE', 'ISF', 'ISG', 'ISLAND ECN LTD',\n 'IST', 'IT', 'ITBI', 'itbi', 'IX', 'IY', 'JA', 'JAMAICA', 'JASDAQ', 'JB',\n 'JC', 'JD', 'JE', 'JF', 'JFX', 'JG', 'JI', 'JJ', 'JL', 'JM',\n 'JN', 'JO', 'JOHANNESBURG', 'JP', 'JQ', 'JR', 'JS', 'JSE Cent Ord Bk', 'JSE Contrib Prx', 'JT',\n 'JU', 'JV', 'JW', 'JX', 'JY', 'KA', 'KAS', 'KAZAKHSTAN', 'KB', 'KCB',\n 'KCON', 'kcon', 'KE', 'KF', 'KFE', 'KH', 'KIEV', 'KK', 'KL', 'KN',\n 'KORB', 'korb', 'KOREA', 'KOSDAQ', 'KP', 'KQ', 'KRKN', 'krkn', 'KS', 'KT',\n 'KUWAIT', 'KX', 'KY', 'KYRGZSTAN', 'KZ', 'L1', 'L3', 'LA', 'LA PAZ', 'LABUAN INTL FIN',\n 'LB', 'LC', 'LCLB', 'LD', 'LDX', 'LE', 'LF', 'LG', 'LH', 'LI',\n 'LISBON', 'LJUBLJANA', 'LMAX', 'lmax', 'LME', 'LMP', 'LN', 'LO', 'LONDON', 'LONDON INTL',\n 'LR', 'LS', 'LSE', 'LSE-RETAIL', 'LT', 'LU', 'LUSAKA', 'LUXEMBOURG', 'LV', 'LX',\n 'LY', 'LYON', 'M0', 'MA', 'MACEDONIA', 'MADRAS', 'MADRID', 'MAE', 'MALAWI', 'MALTA',\n 'MANAGUA', 'MARF', 'MARSEILLE', 'MAURITIUS', 'MB', 'MBA', 'MC', 'MCE', 'MCI', 'MCT',\n 'MCX', 'MD', 'MDE', 'MDX', 'ME', 'MELBOURNE', 'MENDOZA', 'MERC', 'MERJ', 'MERVAL',\n 'MET', 'META', 'METD', 'MEXC', 'mexc', 'MEXICO', 'MF', 'MFA', 'MFM', 'MFP',\n 'MGE', 'MI', 'MICEX', 'MICEX A1', 'MICEX A2', 'MICEX B', 'MICEX D', 'MICEX Unlisted', 'MICEX V', 'MIF',\n 'MIL', 'MILAN', 'MK', 'MM', 'MN', 'MO', 'MOEX Level 1', 'MOEX Level 2', 'MOEX Level 3', 'MONGOLIA',\n 'MONTENEGRO', 'MONTEVIDEO', 'MOSCOW', 'MOT', 'MOZAMBIQUE', 'MP', 'MS', 'MSE', 'MSX', 'MT',\n 'MTS AMSTERDAM', 'MTS Austria', 'MTS BELGIUM', 'MTS Finland', 'MTS FRANCE', 'MTS Germany', 'MTS GREECE', 'MTS IRELAND', 'MTS Israel', 'MTS PORTUGAL',\n 'MTS S.p.A', 'MTS Spain', 'MU', 'MUMBAI', 'MUNICH', 'MUSCAT SECS MKT', 'MV', 'MW', 'MX', 'MY',\n 'MZ', 'N2X', 'NA', 'NAGOYA', 'NAIROBI', 'NAMIBIA', 'NANTES', 'NASDAQ', 'NASDAQ DUBAI', 'NASDAQ OMX PHLX',\n 'NASDAQ/NCM', 'NASDAQ/NGM', 'NASDAQ/NGS', 'NB', 'NC', 'ND', 'NDM', 'NDX', 'NE', 'NEW YORK',\n 'NEW ZEALAND', 'NF', 'NFE', 'NFX', 'NG', 'NGC', 'NGCS', 'NGM', 'NI', 'NIGERIA',\n 'NJ', 'NK', 'NL', 'NLX', 'NM', 'NN', 'NO', 'NOMX 1stNorth C', 'NOMX 1stNorth F', 'NOMX 1stNorth S',\n 'NOMX COPENHAGEN', 'NOMX HELSINKI', 'NOMX ICELAND', 'NOMX RIGA', 'NOMX STOCKHOLM', 'NOMX TALLINN', 'NOMX VILNIUS', 'NORDIC ABM', 'NOT LISTED', 'NOUVEAU MARCHE',\n 'NOVA', 'NP', 'NPE', 'NQ', 'NQL', 'NR', 'NS', 'NSE', 'NSE Australia', 'NSE IFSC',\n 'NSE INDIA', 'NSEL', 'NT', 'NV', 'NVDX', 'nvdx', 'NW', 'NX', 'NY', 'NYB',\n 'NYF', 'NYM', 'NYSE AMERICAN', 'NYSE ARCA', 'NYSE BONDMATCH', 'NZ', 'NZX', 'OBX', 'OC', 'OC_NA',\n 'OCG', 'OD', 'ODE', 'OF', 'OKCN', 'okcn', 'OKEX', 'okex', 'OM', 'OMEGA CANADA ATS',\n 'OMP', 'ORCA', 'OS', 'OSAKA', 'OSAKA 2', 'OSE', 'OSLO', 'oslx', 'OTC BB', 'OTC US',\n 'OU', 'P2', 'PA', 'PAKISTAN', 'PALESTINE', 'PANAMA', 'PB', 'PBT', 'PC', 'PD',\n 'PDEx', 'PE', 'PEX', 'PF', 'PFTS', 'PG', 'PHILIPPINES', 'PHL', 'PINK SHEETS', 'PK',\n 'PKSP', 'pksp', 'PL', 'PLX', 'PM', 'PMI', 'PMX', 'PN', 'PNX', 'PO',\n 'POLO', 'polo', 'PORT MORESBY', 'PORTAL', 'PP', 'PQ', 'PRAGUE', 'PRG', 'PRO SEC MKT(PSM)', 'PS',\n 'PURE TRADING', 'PW', 'PX', 'PZ', 'QATAR', 'QD', 'QE', 'QF', 'QG', 'QH',\n 'QM', 'QN', 'QSP3', 'qsp3', 'QT', 'QU', 'QUITO', 'QUON', 'Quotrix', 'QX',\n 'RASDAQ', 'RAYA', 'RAYC', 'RB', 'RC', 'RE', 'RF', 'RFX', 'RG', 'RIO DE JANEIRO',\n 'RM', 'RN', 'RO', 'ROFEX', 'RP', 'RQ', 'RR', 'RS', 'RT', 'RTS',\n 'RU', 'RUSSIAN TRADING', 'RW', 'RWANDA', 'RX', 'RZ', 'S1', 'S2', 'S3', 'S4',\n 'SA', 'SAF', 'SANTIAGO', 'SANTO DOMINGO', 'SAO PAULO', 'SARAJEVO', 'SAUDI ARABIA', 'SB', 'SBA', 'SC',\n 'SCE', 'SCIEX', 'SCOACH-FRANKFURT', 'SD', 'SE', 'SEDEX-Milan', 'SEND', 'SF', 'SFE', 'SG',\n 'SGX', 'SGX-ST', 'SH', 'SHANGHAI', 'SHENZHEN', 'SHF', 'SI', 'SIB', 'SIBE', 'SICEX',\n 'SINGAPORE', 'SINGAPORE MAINBD', 'SISBEX', 'SIX', 'SIX Digital', 'SIX Europe LTD', 'SIX STRUCTURED', 'SIX Swiss (SP)', 'SJ', 'SK',\n 'SL', 'SLOVAK', 'SM', 'SME', 'SN', 'SO', 'SOP', 'SP', 'SPCEX', 'SPX',\n 'SQ', 'SR', 'SS', 'SSE', 'ST', 'St. Petersburg', 'STMP', 'stmp', 'STRASBOURG', 'STUTTGART',\n 'SU', 'SUSH', 'sush', 'SV', 'SW', 'SX', 'SXHA', 'sxha', 'SY', 'SZ',\n 'T1', 'T2', 'T3', 'TA', 'TAD', 'Taipei', 'TAIWAN', 'TASHKENT', 'TAV', 'TB',\n 'TBIT', 'TBMA', 'TBS POLAND', 'TC', 'TCC', 'TCM', 'TD', 'TE', 'TEF', 'TEHERAN',\n 'TEL AVIV', 'TF', 'TFE', 'TFX', 'TG', 'TGE', 'TH', 'THAILAND', 'THIRD MKT CORP', 'TI',\n 'TIDX', 'TISE', 'TJ', 'TJ21', 'TJV1', 'TK', 'TL', 'TLX', 'TN', 'TO',\n 'TOKYO', 'TOKYO 2', 'TOM', 'TORONTO', 'TP', 'TQ', 'TR', 'TRACE', 'TRADEGATE', 'TRCK',\n 'TRINIDAD&TOBAGO', 'TS', 'TSE', 'TSX VENTURE', 'TT', 'TTC', 'TU', 'TUNIS', 'TV', 'TW',\n 'TX', 'TY', 'TZ', 'UA', 'UB', 'UC', 'UD', 'UE', 'UF', 'UG',\n 'UGANDA', 'UH', 'UI', 'UJ', 'UK', 'UKR', 'UKRAINIAN EXCH', 'UL', 'UM', 'UN',\n 'UNKNOWN', 'UO', 'UP', 'UPBT', 'upbt', 'UQ', 'UR', 'URCEX', 'US', 'USE',\n 'USP2', 'usp2', 'USP3', 'usp3', 'UT', 'UU', 'UV', 'UW', 'UX', 'UY',\n 'UZ', 'VA', 'VALENCIA', 'VARAZDIN', 'VB', 'VC', 'VE', 'VF', 'VG', 'VH',\n 'VI', 'VIENNA', 'VJ', 'VK', 'VL', 'VM', 'VN', 'Vorvel', 'VP', 'VR',\n 'VS', 'VU', 'VX', 'VY', 'WARSAW', 'WBA', 'WCE', 'WEXN', 'WHBT', 'WSE',\n 'WT', 'WTB', 'WX', 'X1', 'X2', 'X9', 'XA', 'XB', 'XBTR', 'XC',\n 'XD', 'XE', 'XETRA', 'XF', 'XG', 'XH', 'XI', 'XJ', 'XK', 'XL',\n 'XM', 'XN', 'XO', 'XP', 'XQ', 'XR', 'XS', 'XT', 'XU', 'XV',\n 'XW', 'XX', 'XY', 'XZ', 'YC', 'YELLOW SHEETS', 'YLX', 'YOBT', 'yobt', 'YSE',\n 'ZA', 'ZAGREB', 'ZAIF', 'zaif', 'ZB', 'ZBCN', 'zbcn', 'ZC', 'ZCE', 'ZG',\n 'ZH', 'ZIMBABWE', 'ZL', 'ZS', 'ZU',\n]).or(z.string())\n\nexport const CurrencySchema = z.enum([\n '***', 'ADP', 'AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'ATS',\n 'AUD', 'AUd', 'AWG', 'AZM', 'AZN', 'BAM', 'BBD', 'BDT', 'BEF', 'BGN',\n 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BRL', 'BRl', 'BSD', 'BTN', 'BWP',\n 'BWp', 'BYN', 'BYR', 'BYS', 'BZD', 'CAD', 'CAd', 'CDF', 'CER', 'CHF',\n 'CHf', 'CLF', 'CLP', 'CNH', 'CNT', 'CNY', 'COP', 'COU', 'CRC', 'CRS',\n 'CUP', 'CVE', 'CYP', 'CZK', 'DEM', 'DJF', 'DKK', 'DOP', 'DZD', 'ECS',\n 'EEK', 'EES', 'EGD', 'EGP', 'ERN', 'ESP', 'ETB', 'EUA', 'EUR', 'EUr',\n 'FIM', 'FJD', 'FKP', 'FRF', 'GBP', 'GBp', 'GEL', 'GHC', 'GHS', 'GIP',\n 'GLD', 'GMD', 'GNF', 'GRD', 'GTQ', 'GWP', 'GYD', 'HKD', 'HNL', 'HRK',\n 'HTG', 'HUF', 'IDR', 'IEP', 'ILS', 'ILs', 'INR', 'IQD', 'IRR', 'ISK',\n 'ITL', 'JEP', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW',\n 'KRW', 'KWD', 'KWd', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL',\n 'LTL', 'LUF', 'LVL', 'LYD', 'MAD', 'MDL', 'MGA', 'MGF', 'MKD', 'MLF',\n 'MMK', 'MNT', 'MOP', 'MRO', 'MRU', 'MTL', 'MULTI', 'MUR', 'MVR', 'MWK',\n 'MWk', 'MXN', 'MYR', 'MYr', 'MZM', 'MZN', 'NAD', 'NAd', 'NGN', 'NIC',\n 'NID', 'NIO', 'NLG', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK',\n 'PHP', 'PKR', 'PLD', 'PLN', 'PLT', 'PTE', 'PYG', 'QAR', 'ROL', 'RON',\n 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDD', 'SDG', 'SDP', 'SDR',\n 'SEK', 'SGD', 'SGd', 'SHP', 'SIT', 'SKK', 'SLE', 'SLL', 'SLV', 'SOS',\n 'SPL', 'SRD', 'SRG', 'SSP', 'STD', 'STN', 'SVC', 'SYP', 'SZL', 'SZl',\n 'THB', 'THO', 'TJS', 'TMM', 'TMT', 'TND', 'TOP', 'TPE', 'TRL', 'TRY',\n 'TTD', 'TVD', 'TWD', 'TZS', 'UAH', 'UDI', 'UGX', 'US', 'USD', 'USd',\n 'UVR', 'UYI', 'UYU', 'UYW', 'UZS', 'VEB', 'VEE', 'VEF', 'VES', 'VND',\n 'VUV', 'WST', 'X0S', 'X1S', 'X2S', 'X3S', 'X4S', 'X5S', 'X6S', 'X7S',\n 'X8S', 'X9S', 'XAD', 'XAF', 'XAG', 'XAL', 'XAO', 'XAS', 'XAU', 'XAV',\n 'XBA', 'XBI', 'XBN', 'XBS', 'XBT', 'XBW', 'XCD', 'XCG', 'XCR', 'XCS',\n 'XCU', 'XDG', 'XDH', 'XDI', 'XDO', 'XDR', 'XDT', 'XEG', 'XEN', 'XEO',\n 'XET', 'XEU', 'XFI', 'XFL', 'XFM', 'XFT', 'XGZ', 'XHB', 'XIC', 'XIN',\n 'XIO', 'XLC', 'XLI', 'XLM', 'XLU', 'XMA', 'XMK', 'XMN', 'XMR', 'XNI',\n 'XOF', 'XPB', 'XPD', 'XPF', 'XPT', 'XRA', 'XRH', 'XRI', 'XRP', 'XRU',\n 'XSA', 'XSN', 'XSO', 'XST', 'XSU', 'XSZ', 'XTH', 'XTK', 'XTR', 'XUC',\n 'XUN', 'XUT', 'XVC', 'XVV', 'XXT', 'XZC', 'XZI', 'YER', 'ZAR', 'ZAr',\n 'ZMK', 'ZMW', 'ZWD', 'ZWd', 'ZWF', 'ZWG', 'ZWg', 'ZWL', 'ZWN', 'ZWR',\n]).or(z.string())\n\nexport const MicCodeSchema = z.enum([\n '24EQ', 'A2XX', 'ACEX', 'ADRK', 'AFET', 'AIXK', 'AMTS', 'AMXO', 'APEX', 'APXL',\n 'AQEU', 'AQSE', 'AQXE', 'ARCO', 'ARCX', 'ARTX', 'ASXP', 'BATE', 'BATO', 'BATS',\n 'BATY', 'BCSE', 'BEUE', 'BFEX', 'BIVA', 'BJSE', 'BLOX', 'BMFM', 'BMTF', 'BMTS',\n 'BOAT', 'BOTC', 'BSEX', 'BTFE', 'BURM', 'BVCA', 'BVMF', 'C2OX', 'CAPA', 'CCFX',\n 'CEDX', 'CEUX', 'CHIA', 'CHIC', 'CHIJ', 'CHIX', 'CMED', 'CSE2', 'DGCX', 'DIFX',\n 'DKED', 'DKTC', 'DSMD', 'DUMX', 'EBMX', 'ECEU', 'EDGA', 'EDGO', 'EDGX', 'EMLD',\n 'EMTF', 'EMTS', 'ENAX', 'EPRL', 'ERIS', 'ETLX', 'EUCH', 'EUWX', 'EXGM', 'FISH',\n 'FMTS', 'FNDK', 'FNFI', 'FNFT', 'FNIS', 'FNSE', 'FRAB', 'FREX', 'GBOT', 'GEMX',\n 'GMEG', 'GMNI', 'GSXL', 'HKME', 'HMTF', 'HOTC', 'HSTC', 'ICDX', 'ICEL', 'ICXL',\n 'IEPA', 'IEXG', 'IFAD', 'IFCA', 'IFED', 'IFEU', 'IFLL', 'IFLO', 'IFLX', 'IFSG',\n 'IFUS', 'IINX', 'IMTS', 'INSE', 'LEUE', 'LICA', 'LIQU', 'LNEQ', 'LSSI', 'LTSE',\n 'LYNX', 'MALX', 'MARF', 'MATN', 'MCAD', 'MCRY', 'MCXX', 'MEMX', 'MFOX', 'MISX',\n 'MOTX', 'MPRL', 'MSAX', 'MTAA', 'MTAH', 'MTCH', 'MTSC', 'MTSD', 'MTSF', 'MUND',\n 'MXOP', 'N2EX', 'NASX', 'NCEL', 'NDEX', 'NEOE', 'NEXX', 'NILX', 'NORX', 'NOTC',\n 'NXTE', 'NZFX', 'OCEA', 'ODXE', 'OMGA', 'OMIP', 'OOTC', 'OPEX', 'OTCM', 'OTXB',\n 'PDEX', 'PFTQ', 'PFTS', 'PLPD', 'PLUS', 'PURE', 'ROCO', 'ROFX', 'ROTC', 'RTSX',\n 'RUSX', 'SBIJ', 'SBIU', 'SBMF', 'SEDX', 'SEND', 'SGMU', 'SGMX', 'SHSC', 'SIMV',\n 'SMEX', 'SPHR', 'SPIM', 'SZSC', 'TBSP', 'TFEX', 'TOMX', 'TQEX', 'TREA', 'TREU',\n 'TRNL', 'TRPX', 'TRQX', 'TWEA', 'TWEM', 'UKEX', 'WDER', 'WMTF', 'XADE', 'XADF',\n 'XADS', 'XAIM', 'XALG', 'XAMM', 'XAMS', 'XAPA', 'XARM', 'XASE', 'XASX', 'XATH',\n 'XATS', 'XATX', 'XBAA', 'XBAB', 'XBAH', 'XBAN', 'XBAR', 'XBBJ', 'XBCL', 'XBCM',\n 'XBCV', 'XBCX', 'XBDA', 'XBDV', 'XBEL', 'XBER', 'XBES', 'XBEY', 'XBIL', 'XBKK',\n 'XBLB', 'XBLN', 'XBNV', 'XBOG', 'XBOL', 'XBOM', 'XBOS', 'XBOT', 'XBOX', 'XBRA',\n 'XBRD', 'XBRN', 'XBRU', 'XBRV', 'XBSD', 'XBSE', 'XBTR', 'XBUD', 'XBUE', 'XBUL',\n 'XBVC', 'XBVM', 'XBVR', 'XBXO', 'XCAI', 'XCAS', 'XCAY', 'XCBF', 'XCBO', 'XCBT',\n 'XCCX', 'XCEC', 'XCEG', 'XCFE', 'XCHG', 'XCHI', 'XCIE', 'XCIS', 'XCME', 'XCNQ',\n 'XCOL', 'XCSE', 'XCSX', 'XCUE', 'XCX2', 'XCXD', 'XCYS', 'XDAR', 'XDCE', 'XDES',\n 'XDFM', 'XDHA', 'XDMI', 'XDPA', 'XDRF', 'XDSE', 'XDSX', 'XDUB', 'XDUS', 'XECM',\n 'XECS', 'XEEE', 'XELX', 'XEMD', 'XEQT', 'XETR', 'XEUE', 'XEUR', 'XFEX', 'XFKA',\n 'XFM', 'XFRA', 'XGAT', 'XGHA', 'XGME', 'XGSE', 'XGTG', 'XGUA', 'XHAM', 'XHAN',\n 'XHEL', 'XHFT', 'XHKF', 'XHKG', 'XHNF', 'XHNX', 'XICE', 'XICX', 'XIDX', 'XIMC',\n 'XINE', 'XIQS', 'XISA', 'XIST', 'XISX', 'XJAM', 'XJAS', 'XJAX', 'XJSE', 'XKAC',\n 'XKAR', 'XKAZ', 'XKBT', 'XKEM', 'XKFB', 'XKFE', 'XKHA', 'XKIS', 'XKLS', 'XKON',\n 'XKOS', 'XKRX', 'XKSE', 'XKUW', 'XLAO', 'XLDN', 'XLFX', 'XLIM', 'XLIS', 'XLIT',\n 'XLJU', 'XLME', 'XLOD', 'XLON', 'XLUS', 'XLUX', 'XMAB', 'XMAD', 'XMAE', 'XMAL',\n 'XMAN', 'XMAT', 'XMAU', 'XMCE', 'XMDS', 'XMEV', 'XMEX', 'XMGE', 'XMIO', 'XMNT',\n 'XMNX', 'XMOC', 'XMOD', 'XMOL', 'XMON', 'XMOS', 'XMOT', 'XMPW', 'XMRV', 'XMSW',\n 'XMTB', 'XMUN', 'XMUS', 'XNAI', 'XNAM', 'XNAS', 'XNCD', 'XNCM', 'XNDQ', 'XNDX',\n 'XNEC', 'XNEP', 'XNGM', 'XNGO', 'XNGS', 'XNIM', 'XNKS', 'XNLX', 'XNMS', 'XNSA',\n 'XNSE', 'XNYM', 'XNYS', 'XNZE', 'XOAM', 'XOCH', 'XOPV', 'XOSE', 'XOSL', 'XOTC',\n 'XPAE', 'XPAR', 'XPBT', 'XPHL', 'XPHS', 'XPIC', 'XPOM', 'XPOR', 'XPOS', 'XPOW',\n 'XPRA', 'XPSX', 'XPTY', 'XQMH', 'XQTX', 'XQUI', 'XRAS', 'XRBM', 'XRIS', 'XRMZ',\n 'XROS', 'XSAF', 'XSAM', 'XSAP', 'XSAT', 'XSAU', 'XSBI', 'XSCE', 'XSDX', 'XSEC',\n 'XSES', 'XSFE', 'XSGE', 'XSGO', 'XSHE', 'XSHG', 'XSIM', 'XSMP', 'XSPS', 'XSRM',\n 'XSSC', 'XSSE', 'XSTC', 'XSTE', 'XSTO', 'XSTU', 'XSVA', 'XSWA', 'XSWX', 'XTAE',\n 'XTAF', 'XTAI', 'XTAL', 'XTEH', 'XTFF', 'XTKO', 'XTKS', 'XTKT', 'XTRN', 'XTSE',\n 'XTSX', 'XTUN', 'XUBS', 'XUGA', 'XULA', 'XUSE', 'XVAL', 'XVPA', 'XVTX', 'XWAR',\n 'XWBO', 'XZAG', 'XZCE', 'XZIM', 'YLDX', 'YYYY', 'ZFXM',\n]).or(z.string())\n\nexport const SecurityTypeSchema = z.enum([\n 'ABS Auto',\n 'ABS Card',\n 'ABS Home',\n 'ABS Other',\n 'ACCEPT BANCARIA',\n 'ADJ CONV. TO FIXED',\n 'ADJ CONV. TO FIXED, OID',\n 'ADJUSTABLE',\n 'ADJUSTABLE, OID',\n 'ADR',\n 'Agncy ABS Home',\n 'Agncy ABS Other',\n 'Agncy CMBS',\n 'Agncy CMO FLT',\n 'Agncy CMO INV',\n 'Agncy CMO IO',\n 'Agncy CMO Other',\n 'Agncy CMO PO',\n 'Agncy CMO Z',\n 'Asset-Based',\n 'ASSET-BASED BRIDGE',\n 'ASSET-BASED BRIDGE REV',\n 'ASSET-BASED BRIDGE TERM',\n 'ASSET-BASED DELAY-DRAW TERM',\n 'ASSET-BASED DIP',\n 'ASSET-BASED DIP DELAY-DRAW',\n 'ASSET-BASED DIP REV',\n 'ASSET-BASED DIP TERM',\n 'ASSET-BASED LOC',\n 'ASSET-BASED PIK REV',\n 'ASSET-BASED PIK TERM',\n 'ASSET-BASED REV',\n 'ASSET-BASED TERM',\n 'AUSTRALIAN',\n 'AUSTRALIAN CD',\n 'AUSTRALIAN CP',\n 'Austrian Crt',\n 'BANK ACCEPT BILL',\n 'BANK BILL',\n 'BANK NOTE',\n 'BANKERS ACCEPT',\n 'BANKERS ACCEPTANCE',\n 'BASIS SWAP',\n 'BASIS TRADE ON CLOSE',\n 'Basket WRT',\n 'BDR',\n 'BEARER DEP NOTE',\n 'Belgium Cert',\n 'BELGIUM CP',\n 'BILL OF EXCHANGE',\n 'BILLET A ORDRE',\n 'Bond',\n 'BRAZIL GENERIC',\n 'BRAZILIAN CDI',\n 'BRIDGE',\n 'BRIDGE DELAY-DRAW',\n 'BRIDGE DELAY-DRAW TERM',\n 'BRIDGE DIP TERM',\n 'BRIDGE GUARANTEE FAC',\n 'BRIDGE ISLAMIC',\n 'BRIDGE ISLAMIC TERM',\n 'BRIDGE PIK',\n 'BRIDGE PIK REV',\n 'BRIDGE PIK TERM',\n 'BRIDGE REV',\n 'BRIDGE REV GUARANTEE FAC',\n 'BRIDGE STANDBY TERM',\n 'BRIDGE TERM',\n 'BRIDGE TERM GUARANTEE FAC',\n 'BRIDGE TERM VAT-TRNCH',\n 'BRIDGE VAT-TRNCH',\n 'BULLDOG',\n 'BUTTERFLY SWAP',\n 'CAD INT BEAR CP',\n 'CALC_INSTRUMENT',\n 'Calendar Spread Option',\n 'CALL LOANS',\n 'CALLABLE CP',\n 'CANADIAN',\n 'Canadian',\n 'CANADIAN CD',\n 'CANADIAN CP',\n 'Canadian DR',\n 'CAPS & FLOORS',\n 'Car Forward',\n 'CASH',\n 'CASH FLOW',\n 'CASH FLOW, OID',\n 'CASH RATE',\n 'CBLO',\n 'CD',\n 'CDI',\n 'CDR',\n 'CEDEAR',\n 'CF',\n 'CHILEAN CD',\n 'CHILEAN DN',\n 'Closed-End Fund',\n 'CMBS',\n 'Cmdt Fut WRT',\n 'Cmdt Idx WRT',\n 'COLLAT CALL NOTE',\n 'COLOMBIAN CD',\n 'COMMERCIAL NOTE',\n 'COMMERCIAL PAPER',\n 'Commodity Index',\n 'Common Stock',\n 'CONTRACT FOR DIFFERENCE',\n 'CONTRACT FRA',\n 'Conv Bond',\n 'Conv Prfd',\n 'Corp Bnd WRT',\n 'Cover Pool',\n 'CP-LIKE EXT NOTE',\n 'CPI LINKED',\n 'CROSS',\n 'Crypto',\n 'Currency future.',\n 'Currency option.',\n 'Currency spot.',\n 'Currency WRT',\n 'CURVE_ROLL',\n 'DELAY-DRAW',\n 'DELAY-DRAW ISLAMIC',\n 'DELAY-DRAW ISLAMIC LOC',\n 'DELAY-DRAW ISLAMIC TERM',\n 'DELAY-DRAW LOC',\n 'DELAY-DRAW PIK TERM',\n 'DELAY-DRAW STANDBY TERM',\n 'DELAY-DRAW TERM',\n 'DELAY-DRAW TERM GUARANTEE F',\n 'DELAY-DRAW TERM VAT-TRNCH',\n 'DEPOSIT',\n 'DEPOSIT NOTE',\n 'DIM SUM BRIDGE TERM',\n 'DIM SUM DELAY-DRAW TERM',\n 'DIM SUM REV',\n 'DIM SUM TERM',\n 'DIP',\n 'DIP DELAY-DRAW ISLAMIC TERM',\n 'DIP DELAY-DRAW PIK TERM',\n 'DIP DELAY-DRAW TERM',\n 'DIP LOC',\n 'DIP PIK TERM',\n 'DIP REV',\n 'DIP STANDBY LOC',\n 'DIP SYNTH LOC',\n 'DIP TERM',\n 'DISCOUNT FIXBIS',\n 'DISCOUNT NOTES',\n 'DIVIDEND NEUTRAL STOCK FUTURE',\n 'DOMESTC TIME DEP',\n 'DOMESTIC',\n 'DOMESTIC MTN',\n 'Dutch Cert',\n 'DUTCH CP',\n 'EDR',\n 'Equity Index',\n 'Equity Option',\n 'Equity WRT',\n 'ETP',\n 'EURO CD',\n 'EURO CP',\n 'EURO MTN',\n 'EURO NON-DOLLAR',\n 'EURO STRUCTRD LN',\n 'EURO TIME DEPST',\n 'EURO-DOLLAR',\n 'EURO-ZONE',\n 'EXTEND COMM NOTE',\n 'EXTEND. NOTE MTN',\n 'FDIC',\n 'FED FUNDS',\n 'FIDC',\n 'Financial commodity future.',\n 'Financial commodity generic.',\n 'Financial commodity option.',\n 'Financial commodity spot.',\n 'Financial index future.',\n 'Financial index generic.',\n 'Financial index option.',\n 'FINNISH CD',\n 'FINNISH CP',\n 'FIXED',\n 'Fixed Income Index',\n 'FIXED, OID',\n 'FIXING RATE',\n 'FLOATING',\n 'FLOATING CP',\n 'FLOATING, OID',\n 'FNMA FHAVA',\n 'Foreign Sh.',\n 'FORWARD',\n 'FORWARD CROSS',\n 'FORWARD CURVE',\n 'FRA',\n 'FRENCH CD',\n 'French Cert',\n 'FRENCH CP',\n 'Fund of Funds',\n 'Futures Monthly Ticker',\n 'FWD SWAP',\n 'FX Curve',\n 'FX DISCOUNT NOTE',\n 'GDR',\n 'Generic currency future.',\n 'Generic index future.',\n 'German Cert',\n 'GERMAN CP',\n 'GLOBAL',\n 'GUARANTEE FAC',\n 'HB',\n 'HDR',\n 'HONG KONG CD',\n 'I.R. Fut WRT',\n 'I.R. Swp WRT',\n 'IDR',\n 'IMM FORWARD',\n 'IMM SWAP',\n 'Index',\n 'Index Option',\n 'Index WRT',\n 'INDIAN CD',\n 'INDIAN CP',\n 'INDONESIAN CP',\n 'Indx Fut WRT',\n 'INFLATION SWAP',\n 'INT BEAR FIXBIS',\n 'Int. Rt. WRT',\n 'INTER. APPRECIATION',\n 'INTER. APPRECIATION, OID',\n 'ISLAMIC',\n 'ISLAMIC BA',\n 'ISLAMIC CP',\n 'ISLAMIC GUARANTEE FAC',\n 'ISLAMIC LOC',\n 'ISLAMIC REV',\n 'ISLAMIC STANDBY',\n 'ISLAMIC STANDBY REV',\n 'ISLAMIC STANDBY TERM',\n 'ISLAMIC TERM',\n 'ISLAMIC TERM GUARANTEE FAC',\n 'ISLAMIC TERM VAT-TRNCH',\n 'JUMBO CD',\n 'KOREAN CD',\n 'KOREAN CP',\n 'LEBANESE CP',\n 'LIQUIDITY NOTE',\n 'LOC',\n 'LOC GUARANTEE FAC',\n 'LOC TERM',\n 'Ltd Part',\n 'MALAYSIAN CP',\n 'Managed Account',\n 'MARGIN TERM DEP',\n 'MASTER NOTES',\n 'MBS 10yr',\n 'MBS 15yr',\n 'MBS 20yr',\n 'MBS 30yr',\n 'MBS 35yr',\n 'MBS 40yr',\n 'MBS 50yr',\n 'MBS 5yr',\n 'MBS 7yr',\n 'MBS ARM',\n 'MBS balloon',\n 'MBS Other',\n 'MED TERM NOTE',\n 'MEDIUM TERM CD',\n 'MEDIUM TERM ECD',\n 'MEXICAN CP',\n 'MEXICAN PAGARE',\n 'Misc.',\n 'MLP',\n 'MONETARY BILLS',\n 'MONEY MARKET CALL',\n 'MUNI CP',\n 'MUNI INT BEAR CP',\n 'MUNI SWAP',\n 'MURABAHA',\n 'Mutual Fund',\n 'MV',\n 'MX CERT BURSATIL',\n 'NDF SWAP',\n 'NEG EURO CP',\n 'NEG INST DEPOSIT',\n 'NEGOTIABLE CD',\n 'NEW ZEALAND CD',\n 'NEW ZEALAND CP',\n 'NON-DELIVERABLE FORWARD',\n 'NON-DELIVERABLE IRS SWAP',\n 'NVDR',\n 'NY Reg Shrs',\n 'OID',\n 'ONSHORE FORWARD',\n 'ONSHORE SWAP',\n 'Open-End Fund',\n 'OPTION',\n 'Option on Equity Future',\n 'OPTION VOLATILITY',\n 'OTHER',\n 'OVER/NIGHT',\n 'OVERDRAFT',\n 'OVERNIGHT INDEXED SWAP',\n 'PANAMANIAN CP',\n 'Participate Cert',\n 'PHILIPPINE CP',\n 'Physical commodity forward.',\n 'Physical commodity future.',\n 'Physical commodity generic.',\n 'Physical commodity option.',\n 'Physical commodity spot.',\n 'Physical index future.',\n 'Physical index option.',\n 'PIK',\n 'PIK LOC',\n 'PIK REV',\n 'PIK SYNTH LOC',\n 'PIK TERM',\n 'PLAZOS FIJOS',\n 'PORTUGUESE CP',\n 'Preference',\n 'Preferred',\n 'PRES',\n 'Prfd WRT',\n 'PRIV PLACEMENT',\n 'PRIVATE',\n 'Private Comp',\n 'Private-equity backed',\n 'PROMISSORY NOTE',\n 'PROV T-BILL',\n 'Prvt CMBS',\n 'Prvt CMO FLT',\n 'Prvt CMO INV',\n 'Prvt CMO IO',\n 'Prvt CMO Other',\n 'Prvt CMO PO',\n 'Prvt CMO Z',\n 'PUBLIC',\n 'Pvt Eqty Fund',\n 'RDC',\n 'Receipt',\n 'REIT',\n 'REPO',\n 'RESERVE-BASED DIP REV',\n 'RESERVE-BASED LOC',\n 'RESERVE-BASED REV',\n 'RESERVE-BASED TERM',\n 'RESTRUCTURD DEBT',\n 'RETAIL CD',\n 'RETURN IDX',\n 'REV',\n 'REV GUARANTEE FAC',\n 'REV VAT-TRNCH',\n 'Revolver',\n 'Right',\n 'Royalty Trst',\n 'S.TERM LOAN NOTE',\n 'SAMURAI',\n 'Savings Plan',\n 'Savings Share',\n 'SBA Pool',\n 'SDR',\n 'Sec Lending',\n 'SHOGUN',\n 'SHORT TERM BN',\n 'SHORT TERM DN',\n 'SINGAPORE CP',\n 'Singapore DR',\n 'SINGLE STOCK DIVIDEND FUTURE',\n 'SINGLE STOCK FORWARD',\n 'SINGLE STOCK FUTURE',\n 'SINGLE STOCK FUTURE SPREAD',\n 'SN',\n 'SPANISH CP',\n 'SPECIAL LMMK PGM',\n 'SPOT',\n 'Spot index.',\n 'STANDBY',\n 'STANDBY LOC',\n 'STANDBY LOC GUARANTEE FAC',\n 'STANDBY REV',\n 'STANDBY TERM',\n 'Stapled Security',\n 'STERLING CD',\n 'STERLING CP',\n 'Strategy Trade.',\n 'SWAP',\n 'SWAP SPREAD',\n 'SWAPTION VOLATILITY',\n 'SWEDISH CP',\n 'SWINGLINE',\n 'Swiss Cert',\n 'SYNTH LOC',\n 'SYNTH REV',\n 'SYNTH TERM',\n 'Synthetic Term',\n 'TAIWAN CP',\n 'TAIWAN CP GUAR',\n 'TAIWAN NEGO CD',\n 'TAIWAN TIME DEPO',\n 'TAX CREDIT',\n 'TAX CREDIT, OID',\n 'TDR',\n 'TERM',\n 'TERM DEPOSITS',\n 'TERM GUARANTEE FAC',\n 'TERM REV',\n 'TERM VAT-TRNCH',\n 'THAILAND CP',\n 'TLTRO TERM',\n 'Tracking Stk',\n 'TREASURY BILL',\n 'U.S. CD',\n 'U.S. CP',\n 'U.S. INT BEAR CP',\n 'UIT',\n 'UK GILT STOCK',\n 'UMBS MBS Other',\n 'Unit',\n 'Unit Inv Tst',\n 'UNITRANCHE',\n 'UNITRANCHE ASSET-BASED REV',\n 'UNITRANCHE DELAY-DRAW PIK T',\n 'UNITRANCHE DELAY-DRAW TERM',\n 'UNITRANCHE PIK REV',\n 'UNITRANCHE PIK TERM',\n 'UNITRANCHE REV',\n 'UNITRANCHE TERM',\n 'US DOMESTIC',\n 'US GOVERNMENT',\n 'US NON-DOLLAR',\n 'VAR RATE DEM OBL',\n 'VAT-TRNCH',\n 'VENEZUELAN CP',\n 'VIETNAMESE CD',\n 'VOLATILITY DERIVATIVE',\n 'Warrant',\n 'YANKEE',\n 'YANKEE CD',\n 'YEN CD',\n 'YEN CP',\n 'Yield Curve',\n 'ZERO COUPON',\n 'ZERO COUPON, OID',\n]).or(z.string())\n\nexport const SecurityType2Schema = z.enum([\n '2ND LIEN',\n 'ABS',\n 'ABS Other',\n 'ABS/HG',\n 'ABS/MEZZ',\n 'BA',\n 'Bagged Briquettes',\n 'Bagged Pellets',\n 'BANK BILL',\n 'BANKERS ACCEPTANCE',\n 'BASIS',\n 'BASIS SWAP',\n 'BASIS_IMM',\n 'Bill',\n 'Billet 20MN',\n 'Billet 3803p',\n 'Billet 3803s',\n 'Billet 3803sp',\n 'Billet 3805p',\n 'Billet 3805s',\n 'Billet 3805sp',\n 'Billet A61560',\n 'Billet BS4449',\n 'Billet LME Grade 1',\n 'Billet LME Grade 2',\n 'Billet LME Grade 3',\n 'Billet LME Grade 4',\n 'Billet LME Grade 5',\n 'Billet LME Grade 6',\n 'Billet LME Grade 7',\n 'Billet LME Grade 8',\n 'Billet LME Grade 9',\n 'Billet Q235',\n 'BN',\n 'Bond',\n 'Bond/Note',\n 'Briquettes',\n 'BUTTERFLY SWAP',\n 'CAPFLOOR',\n 'CAPFLOOR_RFR',\n 'CAPS & FLOORS',\n 'CASH RATE',\n 'Cathodes',\n 'Cathodes 100x100mm',\n 'Cathodes 25x25mm',\n 'Cathodes 50x50mm',\n 'CD',\n 'CDO2',\n 'CDS',\n 'CDS(CRP)',\n 'Certificate',\n 'CMBS',\n 'CMO',\n 'Coarse Grain Powder',\n 'Comdty',\n 'COMMERCIAL PAPER',\n 'Common Stock',\n 'CONTRACT FRA',\n 'Corp',\n 'CP',\n 'CRE',\n 'CROSS',\n 'CROSS_CURRENCY_BASIS',\n 'CROSS_CURRENCY_FIXED_FLOAT',\n 'CRYPTO',\n 'Curncy',\n 'Daily Future',\n 'DEPOSIT',\n 'Depositary Receipt',\n 'Derived',\n 'DN',\n 'Equity',\n 'FDIC',\n 'FIXED_FLOAT',\n 'FIXED_FLOAT_FORWARD_STARTING',\n 'FIXED_FLOAT_OIS',\n 'FIXING RATE',\n 'FORWARD',\n 'FORWARD CROSS',\n 'FORWARD CURVE',\n 'FORWARD_START_SWAP',\n 'FRA',\n 'Full Plate Cathodes',\n 'Future',\n 'FWD SWAP',\n 'FX Curve',\n 'Generic',\n 'Govt',\n 'Granules',\n 'Hedged',\n 'HF',\n 'HY',\n 'IG',\n 'IMM FORWARD',\n 'IMM SWAP',\n 'Index',\n 'INFL_FIXING_ZERO_COUPON',\n 'INFL_FXFL_ZERO_COUPON',\n 'INFLATION SWAP',\n 'INFLATION_SWAP',\n 'Ingots',\n 'Ingots 226/DIN',\n 'Ingots A380.1',\n 'Ingots AD12.1',\n 'Ingots D12S/J1S',\n 'Jumbo',\n 'Large Sows',\n 'Large sows 226',\n 'Large sows A380.1',\n 'Large sows AD12.1',\n 'Large sows D12S',\n 'LL',\n 'LL08',\n 'M-Mkt',\n 'MAC SWAP',\n 'MAC_RFR',\n 'MEZZ',\n 'MML',\n 'Molybdenum Cntd n RMC(Roasted',\n 'MONEY MARKET CALL',\n 'Mtge',\n 'MTN',\n 'Muni',\n 'MUNI SWAP',\n 'Mutual Fund',\n 'NDF SWAP',\n 'NDOIS',\n 'Nickel Rounds',\n 'Nickel Rounds Bag',\n 'NON-DELIVERABLE FORWARD',\n 'NON-DELIVERABLE IRS SWAP',\n 'NON-DELIVERABLE OIS SWAP',\n 'Note',\n 'ONSHORE FORWARD',\n 'ONSHORE SWAP',\n 'Option',\n 'OPTION VOLATILITY',\n 'OTHER',\n 'OVERNIGHT INDEXED SWAP',\n 'PAIR',\n 'PAR_RATE',\n 'Partnership Shares',\n 'Pellets',\n 'Pool',\n 'PP12',\n 'PP20',\n 'PP25',\n 'PP3.5',\n 'Preference',\n 'Preferred Stock',\n 'PROMISSORY NOTE',\n 'Prompt Forward',\n 'PROPERTY SWAP',\n 'QUARTERLY SWAP',\n 'REIT',\n 'REPO',\n 'RETURN IDX',\n 'Right',\n 'RMBS',\n 'Rounds',\n 'Small Sows',\n 'Small sows 226',\n 'Small sows A380.1',\n 'Small sows AD12.1',\n 'Small sows D12S',\n 'SME',\n 'Sows',\n 'SPOT',\n 'SWAP',\n 'SWAP SPREAD',\n 'SWAPTION',\n 'SWAPTION VOLATILITY',\n 'T-Bar',\n 'T-Bars 226',\n 'T-Bars A380.1',\n 'T-Bars AD12.1',\n 'T-Bars D12S',\n 'TBA',\n 'TD',\n 'TREASURY BILL',\n 'TRP',\n 'Unit',\n 'Unit Investment Trust',\n 'VOLATILITY DERIVATIVE',\n 'Warrant',\n 'Whole Loan',\n 'Yield Curve',\n 'ZERO_COUPON_OIS_SWAP',\n]).or(z.string())\n\nexport const MarketSectorSchema = z.enum([\n 'Comdty',\n 'Corp',\n 'Curncy',\n 'Equity',\n 'Govt',\n 'Index',\n 'M-Mkt',\n 'Mtge',\n 'Muni',\n 'Pfd',\n]).or(z.string())\n\nexport const StateCodeSchema = z.enum([\n 'AB', 'AC', 'AH', 'AK', 'AL', 'AM', 'AR', 'AS', 'AT', 'AZ',\n 'BC', 'BJ', 'CA', 'CB', 'CO', 'CQ', 'CT', 'CZ', 'DC', 'DE',\n 'EH', 'FH', 'FI', 'FJ', 'FL', 'FO', 'FS', 'GA', 'GD', 'GF',\n 'GM', 'GS', 'GU', 'GX', 'GZ', 'HA', 'HB', 'HE', 'HG', 'HI',\n 'HL', 'HN', 'HO', 'HS', 'IA', 'ID', 'IG', 'IK', 'IL', 'IN',\n 'IT', 'JL', 'JS', 'JX', 'KA', 'KC', 'KN', 'KO', 'KS', 'KT',\n 'KU', 'KY', 'LA', 'LN', 'MA', 'MB', 'MD', 'ME', 'MG', 'MI',\n 'MN', 'MO', 'MS', 'MT', 'MZ', 'NB', 'NC', 'ND', 'NE', 'NG',\n 'NH', 'NJ', 'NL', 'NM', 'NN', 'NR', 'NS', 'NT', 'NU', 'NV',\n 'NW', 'NX', 'NY', 'OH', 'OK', 'ON', 'OR', 'OS', 'OT', 'OY',\n 'PA', 'PE', 'PR', 'QC', 'QH', 'QL', 'RI', 'SA', 'SC', 'SD',\n 'SH', 'SI', 'SK', 'SN', 'ST', 'SX', 'SZ', 'TA', 'TG', 'TJ',\n 'TK', 'TN', 'TS', 'TT', 'TX', 'TY', 'UT', 'VA', 'VI', 'VT',\n 'WA', 'WI', 'WK', 'WV', 'WY', 'XJ', 'XZ', 'YA', 'YN', 'YT',\n 'YU', 'ZJ',\n]).or(z.string())\n\nexport const MappingRequestSchema = z.object({\n idType: IdTypeSchema,\n idValue: z.string().min(1),\n exchCode: ExchCodeSchema.optional(),\n micCode: MicCodeSchema.optional(),\n currency: CurrencySchema.optional(),\n marketSecDes: MarketSectorSchema.optional(),\n securityType: SecurityTypeSchema.optional(),\n securityType2: SecurityType2Schema.optional(),\n includeUnlistedEquities: z.boolean().optional(),\n optionType: z.enum(['Put', 'Call']).or(z.string()).optional(),\n strike: z.array(z.number()).optional(),\n contractSize: z.number().optional(),\n coupon: z.array(z.number()).optional(),\n expiration: z.array(z.number()).optional(),\n maturity: z.array(z.number()).optional(),\n stateCode: StateCodeSchema.optional(),\n})\n\nexport const FigiResultSchema = z.object({\n figi: z.string(),\n securityType: SecurityTypeSchema.optional(),\n marketSector: MarketSectorSchema.optional(),\n ticker: z.string().optional(),\n name: z.string().optional(),\n exchCode: ExchCodeSchema.optional(),\n shareClassFIGI: z.string().optional(),\n compositeFIGI: z.string().optional(),\n securityType2: SecurityType2Schema.optional(),\n securityDescription: z.string().optional(),\n metadata: z.string().optional(),\n})\n\nexport const MappingResponseSchema = z.object({\n data: z.array(FigiResultSchema).optional(),\n warning: z.string().optional(),\n error: z.string().optional(),\n})\n\nexport const ApiErrorSchema = z.object({\n error: z.string(),\n message: z.string().optional(),\n statusCode: z.number().optional(),\n})\n\nexport const ClientConfigSchema = z.object({\n apiKey: z.string().optional(),\n baseUrl: z.string().url().optional(),\n timeout: z.number().positive().optional(),\n retryLimit: z.number().min(0).max(10).optional(),\n retryDelay: z.number().positive().optional(),\n userAgent: z.string().optional(),\n})\n","import ky, { type HTTPError, type KyInstance } from 'ky'\nimport type { ClientConfig, MappingRequest, MappingResponse, RateLimitInfo } from '../types'\nimport { OpenFigiError, RateLimitError, ValidationError } from '../utils/errors'\nimport { exponentialBackoff, parseRateLimitHeaders, sleep } from '../utils/helpers'\nimport { ClientConfigSchema, MappingRequestSchema, MappingResponseSchema } from '../validators'\n\nconst DEFAULT_CONFIG: Required<ClientConfig> = {\n apiKey: '',\n baseUrl: 'https://api.openfigi.com',\n timeout: 30000,\n retryLimit: 3,\n retryDelay: 1000,\n userAgent: 'openfigi-sdk/1.0.3 (+https://github.com/viktorlarsson/openfigi)',\n}\n\nlet currentRateLimitInfo: RateLimitInfo | undefined\nlet debugMode = false\n\n/**\n * Enable or disable debug logging\n * @param enabled - Whether to enable debug mode\n */\nexport const setDebugMode = (enabled: boolean) => {\n debugMode = enabled\n}\n\nconst log = (level: 'info' | 'warn' | 'error', message: string, ...args: unknown[]) => {\n if (!debugMode) return\n const prefix = `[@openfigi/sdk] [${level.toUpperCase()}]`\n console[level](prefix, message, ...args)\n}\n\nconst createHttpClient = (config: Required<ClientConfig>): KyInstance => {\n return ky.create({\n prefixUrl: config.baseUrl,\n timeout: config.timeout,\n headers: {\n 'Content-Type': 'application/json',\n 'User-Agent': config.userAgent,\n ...(config.apiKey && { 'X-OPENFIGI-APIKEY': config.apiKey }),\n },\n retry: {\n limit: config.retryLimit,\n methods: ['get', 'post'],\n statusCodes: [408, 413, 429, 500, 502, 503, 504],\n },\n hooks: {\n beforeRequest: [\n (request) => {\n log('info', `Request: ${request.method} ${request.url}`)\n },\n ],\n beforeRetry: [\n async ({ error, retryCount }) => {\n const delay = exponentialBackoff(retryCount, config.retryDelay)\n log('warn', `Retry attempt ${retryCount} after ${delay}ms`, error.message)\n await sleep(delay)\n },\n ],\n afterResponse: [\n (_request, _options, response) => {\n const { limit, remaining, reset } = parseRateLimitHeaders(response.headers)\n if (limit !== undefined && remaining !== undefined && reset) {\n currentRateLimitInfo = { limit, remaining, reset }\n log('info', `Rate limit: ${remaining}/${limit} (resets: ${reset.toISOString()})`)\n }\n log('info', `Response: ${response.status} ${response.statusText}`)\n return response\n },\n ],\n },\n })\n}\n\n/**\n * Creates an OpenFIGI client with custom configuration\n *\n * @param config - Client configuration options\n * @returns An OpenFIGI client instance with all available methods\n *\n * @example\n * ```typescript\n * const client = createClient({\n * apiKey: 'your-api-key',\n * timeout: 60000\n * })\n * ```\n */\nexport const createClient = (config: ClientConfig = {}) => {\n const validation = ClientConfigSchema.safeParse(config)\n if (!validation.success) {\n const errors = validation.error.issues\n .map((e) => `${e.path.join('.')}: ${e.message}`)\n .join(', ')\n throw new ValidationError(`Invalid client configuration: ${errors}`, validation.error)\n }\n\n const finalConfig = { ...DEFAULT_CONFIG, ...config }\n const httpClient = createHttpClient(finalConfig)\n\n /**\n * Map multiple identifiers to FIGIs in a single request\n *\n * @param requests - Array of mapping requests (max 100)\n * @returns Array of mapping responses in the same order as requests\n * @throws {ValidationError} If requests are invalid\n * @throws {RateLimitError} If rate limit is exceeded\n * @throws {OpenFigiError} If API returns an error\n *\n * @example\n * ```typescript\n * const responses = await mapping([\n * { idType: 'ID_ISIN', idValue: 'US0378331005' },\n * { idType: 'ID_CUSIP', idValue: '037833100' }\n * ])\n * ```\n */\n const mapping = async (requests: MappingRequest[]): Promise<MappingResponse[]> => {\n if (!Array.isArray(requests) || requests.length === 0) {\n throw new ValidationError(\n 'Requests must be a non-empty array. Provide at least one mapping request.'\n )\n }\n\n if (requests.length > 100) {\n throw new ValidationError(\n `Too many requests: ${requests.length}. Maximum 100 requests allowed per call. Split into multiple batches.`\n )\n }\n\n const validatedRequests = requests.map((req, index) => {\n const validation = MappingRequestSchema.safeParse(req)\n if (!validation.success) {\n const errors = validation.error.issues\n .map((e) => `${e.path.join('.')}: ${e.message}`)\n .join(', ')\n throw new ValidationError(\n `Invalid mapping request at index ${index}: ${errors}`,\n validation.error\n )\n }\n return validation.data\n })\n\n try {\n log('info', `Mapping ${validatedRequests.length} identifier(s)`)\n const response = await httpClient.post('v3/mapping', {\n json: validatedRequests,\n })\n\n const data = (await response.json()) as unknown\n\n if (!Array.isArray(data)) {\n throw new OpenFigiError(\n `Invalid API response: expected array but got ${typeof data}`,\n response.status,\n data\n )\n }\n\n const validatedResponses = data.map((item, index) => {\n const validation = MappingResponseSchema.safeParse(item)\n if (!validation.success) {\n log('warn', `Invalid response at index ${index}:`, item, validation.error)\n return item as MappingResponse\n }\n return validation.data\n })\n\n log('info', `Mapped ${validatedResponses.length} identifier(s) successfully`)\n return validatedResponses\n } catch (error) {\n if (error instanceof OpenFigiError) {\n throw error\n }\n\n if (error instanceof Error && 'response' in error) {\n const httpError = error as HTTPError\n const status = httpError.response?.status\n\n if (status === 429) {\n const retryAfter = httpError.response?.headers?.get('retry-after')\n throw new RateLimitError(\n 'Rate limit exceeded. Please wait before making more requests.',\n retryAfter ? parseInt(retryAfter, 10) : undefined,\n status\n )\n }\n\n if (status === 400) {\n const body = await httpError.response?.text()\n throw new ValidationError(\n `Bad request: ${body || 'Invalid request format'}. Please check your request parameters and ensure all required fields are properly formatted.`,\n body\n )\n }\n\n if (status === 401) {\n throw new OpenFigiError(\n 'Authentication failed. Please check your API key. You can get an API key at https://www.openfigi.com/api',\n status\n )\n }\n\n if (status === 403) {\n throw new OpenFigiError(\n 'Access forbidden. Your API key may not have the required permissions for this operation.',\n status\n )\n }\n\n if (status === 404) {\n throw new OpenFigiError(\n 'Endpoint not found. Please check the API version or ensure you are using the correct base URL.',\n status\n )\n }\n\n throw new OpenFigiError(\n `Request failed with status ${status}: ${httpError.message}`,\n status,\n await httpError.response?.text()\n )\n }\n\n throw new OpenFigiError('Unexpected error occurred', undefined, error)\n }\n }\n\n /**\n * Map a single identifier to FIGI\n *\n * @param request - Single mapping request\n * @returns Mapping response\n *\n * @example\n * ```typescript\n * const response = await mappingSingle({\n * idType: 'ID_ISIN',\n * idValue: 'US0378331005'\n * })\n * ```\n */\n const mappingSingle = async (request: MappingRequest): Promise<MappingResponse> => {\n const responses = await mapping([request])\n return responses[0]\n }\n\n /**\n * Search for FIGI by ISIN\n *\n * @param isin - ISIN identifier (e.g., 'US0378331005')\n * @param options - Additional search options\n * @returns Mapping response with FIGI data\n *\n * @example\n * ```typescript\n * const result = await searchByISIN('US0378331005')\n * if (result.data) {\n * console.log('FIGI:', result.data[0].figi)\n * }\n * ```\n */\n const searchByISIN = async (\n isin: string,\n options?: Partial<MappingRequest>\n ): Promise<MappingResponse> => {\n if (!isin || typeof isin !== 'string') {\n throw new ValidationError('ISIN must be a non-empty string. Example: \"US0378331005\"')\n }\n return mappingSingle({\n idType: 'ID_ISIN',\n idValue: isin.trim(),\n ...options,\n })\n }\n\n /**\n * Search for FIGI by CUSIP\n *\n * @param cusip - CUSIP identifier (e.g., '037833100')\n * @param options - Additional search options\n * @returns Mapping response with FIGI data\n */\n const searchByCUSIP = async (\n cusip: string,\n options?: Partial<MappingRequest>\n ): Promise<MappingResponse> => {\n if (!cusip || typeof cusip !== 'string') {\n throw new ValidationError('CUSIP must be a non-empty string. Example: \"037833100\"')\n }\n return mappingSingle({\n idType: 'ID_CUSIP',\n idValue: cusip.trim(),\n ...options,\n })\n }\n\n /**\n * Search for FIGI by SEDOL\n *\n * @param sedol - SEDOL identifier (e.g., '2046251')\n * @param options - Additional search options\n * @returns Mapping response with FIGI data\n */\n const searchBySEDOL = async (\n sedol: string,\n options?: Partial<MappingRequest>\n ): Promise<MappingResponse> => {\n if (!sedol || typeof sedol !== 'string') {\n throw new ValidationError('SEDOL must be a non-empty string. Example: \"2046251\"')\n }\n return mappingSingle({\n idType: 'ID_SEDOL',\n idValue: sedol.trim(),\n ...options,\n })\n }\n\n /**\n * Search for FIGI by ticker symbol\n *\n * @param ticker - Ticker symbol (e.g., 'AAPL')\n * @param exchCode - Optional exchange code (e.g., 'US')\n * @param options - Additional search options\n * @returns Mapping response with FIGI data\n *\n * @example\n * ```typescript\n * const result = await searchByTicker('AAPL', 'US')\n * ```\n */\n const searchByTicker = async (\n ticker: string,\n exchCode?: string,\n options?: Partial<MappingRequest>\n ): Promise<MappingResponse> => {\n if (!ticker || typeof ticker !== 'string') {\n throw new ValidationError('Ticker must be a non-empty string. Example: \"AAPL\"')\n }\n return mappingSingle({\n idType: 'ID_EXCH_SYMBOL',\n idValue: ticker.trim().toUpperCase(),\n exchCode: exchCode?.trim(),\n ...options,\n })\n }\n\n /**\n * Search for FIGI by Bloomberg ID\n *\n * @param bbgId - Bloomberg Global ID (e.g., 'BBG000B9XRY4')\n * @param options - Additional search options\n * @returns Mapping response with FIGI data\n */\n const searchByBloombergId = async (\n bbgId: string,\n options?: Partial<MappingRequest>\n ): Promise<MappingResponse> => {\n if (!bbgId || typeof bbgId !== 'string') {\n throw new ValidationError('Bloomberg ID must be a non-empty string. Example: \"BBG000B9XRY4\"')\n }\n return mappingSingle({\n idType: 'ID_BB_GLOBAL',\n idValue: bbgId.trim(),\n ...options,\n })\n }\n\n /**\n * Get current rate limit information\n *\n * @returns Rate limit info if available, undefined if no requests made yet\n *\n * @example\n * ```typescript\n * const rateLimit = getRateLimitInfo()\n * if (rateLimit) {\n * console.log(`${rateLimit.remaining} requests remaining`)\n * }\n * ```\n */\n const getRateLimitInfo = (): RateLimitInfo | undefined => {\n return currentRateLimitInfo\n }\n\n return {\n mapping,\n mappingSingle,\n searchByISIN,\n searchByCUSIP,\n searchBySEDOL,\n searchByTicker,\n searchByBloombergId,\n getRateLimitInfo,\n }\n}\n\n// Export standalone functions with default client\nconst defaultClient = createClient()\n\nexport const mapping = defaultClient.mapping\nexport const mappingSingle = defaultClient.mappingSingle\nexport const searchByISIN = defaultClient.searchByISIN\nexport const searchByCUSIP = defaultClient.searchByCUSIP\nexport const searchBySEDOL = defaultClient.searchBySEDOL\nexport const searchByTicker = defaultClient.searchByTicker\nexport const searchByBloombergId = defaultClient.searchByBloombergId\nexport const getRateLimitInfo = defaultClient.getRateLimitInfo\n","/**\n * Validate ISIN format (12 characters, alphanumeric)\n */\nexport const isValidISIN = (isin: string): boolean => {\n return /^[A-Z]{2}[A-Z0-9]{9}[0-9]$/.test(isin)\n}\n\n/**\n * Validate CUSIP format (9 characters, alphanumeric)\n */\nexport const isValidCUSIP = (cusip: string): boolean => {\n return /^[A-Z0-9]{9}$/.test(cusip)\n}\n\n/**\n * Validate SEDOL format (7 characters, alphanumeric)\n */\nexport const isValidSEDOL = (sedol: string): boolean => {\n return /^[A-Z0-9]{7}$/.test(sedol)\n}\n\n/**\n * Validate Bloomberg ID format (starts with BBG)\n */\nexport const isValidBloombergId = (bbgId: string): boolean => {\n return /^BBG[A-Z0-9]{9}$/.test(bbgId)\n}\n\n/**\n * Split array into batches of specified size\n * Useful for splitting large arrays for batch processing\n */\nexport const batchArray = <T>(array: T[], batchSize: number): T[][] => {\n const batches: T[][] = []\n for (let i = 0; i < array.length; i += batchSize) {\n batches.push(array.slice(i, i + batchSize))\n }\n return batches\n}\n"],"mappings":"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;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAS;CAAO;CAAO;CACjE;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAM;CAAO;CAC9D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAC/D;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;AAChE,EAAC,CAAC,GAAG,MAAE,QAAQ,CAAC;AAEjB,MAAa,gBAAgB,MAAE,KAAK;CAClC;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAO;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACvE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CACxE;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;CAAQ;AACjD,EAAC,CAAC,GAAG,MAAE,QAAQ,CAAC;AAEjB,MAAa,qBAAqB,MAAE,KAAK;CACvC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD,EAAC,CAAC,GAAG,MAAE,QAAQ,CAAC;AAEjB,MAAa,sBAAsB,MAAE,KAAK;CACxC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD,EAAC,CAAC,GAAG,MAAE,QAAQ,CAAC;AAEjB,MAAa,qBAAqB,MAAE,KAAK;CACvC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD,EAAC,CAAC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"}
|