zcb 0.2.9 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import{isBoolean as a,isUndefined as e,isPlainObject as i,castArray as r,merge as n,cloneDeep as o,get as t,isString as c}from"lodash-es";import{v4 as s}from"uuid";import{zodToJsonSchema as u}from"zod-to-json-schema";import"core-js/modules/es.set.difference.v2.js";import"core-js/modules/es.set.intersection.v2.js";import"core-js/modules/es.set.is-disjoint-from.v2.js";import"core-js/modules/es.set.is-subset-of.v2.js";import"core-js/modules/es.set.is-superset-of.v2.js";import"core-js/modules/es.set.symmetric-difference.v2.js";import"core-js/modules/es.set.union.v2.js";import{ZodType as A}from"zod";import"core-js/modules/es.array.push.js";var l=function(a){return a.CALLBACKS="__callbacks",a.DISABLED="__disabled",a.EXPERIMENT="__experiment",a.ID="__id",a.TYPE="__type",a.ZCB="__zcb",a}({}),m=function(a){return a.DELETE_NODE="deleteNode",a.SKIP_NODE="skipNode",a}({});const d=new Set(Object.values(l)),f=(a,e)=>{for(const i of d)i in e&&Object.defineProperty(a,i,{configurable:!1,enumerable:!1,value:e[i]});return{value:a}},p=a=>{const{items:e}=a;return e&&"object"==typeof e&&"default"in e},h=i=>{const{properties:r}=i;if(r&&(a=>a.properties&&Object.values(a.properties).some((a=>"object"==typeof a&&"default"in a)))(i))return Object.keys(r).reduce(((i,n)=>{const o=r[n];return!o||a(o)||"default"in o&&!e(o.default)&&(i[n]=o.default),i}),{})},g=new Set(["$disable","$errors","$experiment","$extend","$flush","$fork","$toJson","$validate","$values"]),b=a=>g.has(a),y=a=>"object"==typeof a,E=a=>a.additionalProperties&&"object"==typeof a.additionalProperties&&"default"in a.additionalProperties,P=a=>"function"==typeof a,S=(a,e=!1)=>!e&&void 0!==a,M=(a,e=0)=>{if(i(a)){const i=a;return!0===i.__zcb||!!(e<1&&Object.values(i).every((a=>M(a,e+1))))}return!Array.isArray(a)||!!a.every((a=>M(a,e+1)))},k=(a,e)=>e instanceof A?u(e,{errorMessages:!0}):e,v=(a,e)=>Promise.all(a.map((a=>i(a)?B(a,e):Array.isArray(a)?v(a,e):a))),B=async(a,e=[])=>{let n={};const o=r(e);for(const e of o){const i=await Promise.resolve(e(n,a));if(i.action===m.DELETE_NODE)return{};if(i.value&&(n=i.value),i.action===m.SKIP_NODE)return n}for(const r in a){const o=a[r];i(o)?n[r]=await B(o,e):Array.isArray(o)?n[r]=await v(o,e):n[r]=o}return n},C=(a,e)=>a.map((a=>i(a)?_(a,e):Array.isArray(a)?C(a,e):a)),_=(a,e=[])=>{let n={};const o=r(e);for(const e of o){const i=e(n,a);if(i.action===m.DELETE_NODE)return{};if(i.value&&(n=i.value),i.action===m.SKIP_NODE)return n}for(const r in a){const o=a[r];i(o)?n[r]=_(o,e):Array.isArray(o)?n[r]=C(o,e):n[r]=o}return n},T=(a,e={},i={},r={})=>{const t=u(a);if("object"!==t.type)throw new Error(`The root type of a config schema must be "object", but received "${String(t.type)}"`);const c=e.overrides?.uuid??s,A=()=>{const a=n(o(r),(a=>{const e={};for(const i in a.properties){if(b(i))throw new Error(`"${i}" is a reserved keyword within the config builder. Please use a different property name. The full list of reserved keywords is: ${[...g].join(", ")}`);const r=i,n=a.properties[i];if(y(n)){if(n.default&&(e[r]=n.default),"array"===n.type&&p(n))throw new Error(`When setting schema array defaults for the array assigned to "${String(r)}", set them on the array and not the item.`);if("object"===n.type){if(E(n))throw new Error(`When setting schema property defaults for the value of the record assigned to "${String(r)}", set them on the record and not the value.`);const a=h(n);a&&(e[r]=a)}}}return e})(t));var i;return i=a,Object.defineProperty(i,l.ZCB,{configurable:!1,enumerable:!1,value:!0}),Object.defineProperty(i,l.ID,{configurable:!1,enumerable:!1,value:c()}),e.type&&Object.defineProperty(i,l.TYPE,{configurable:!1,enumerable:!1,value:e.type}),a};let m=A(),d={...i};const v={$disable:()=>(Object.defineProperty(m,l.DISABLED,{configurable:!1,enumerable:!1,value:!0}),v),$errors:()=>{try{return a.parse(v.$values()),[]}catch(a){return a.errors}},$experiment:a=>(Object.defineProperty(m,l.EXPERIMENT,{configurable:!1,enumerable:!1,value:a}),v),$extend:a=>{m=_(a.$values(),[f]),d={...a.__callbacks}},$flush:()=>{const a=v.$values();return m=A(),a},$fork:()=>T(a,e,i,r),$toJson:()=>JSON.stringify(v.$values(),k,2),$validate:()=>{try{return a.parse(v.$values()),!0}catch(a){return console.error(a),!1}},$values:()=>{for(const a in d){const e=d[a];e&&(m[a]=e(m))}return m}};Object.defineProperty(v,l.CALLBACKS,{configurable:!1,enumerable:!1,value:d});for(const a in t.properties){if(b(a))throw new Error(`"${a}" is a reserved keyword within the config builder. Please use a different property name. The full list of reserved keywords is: ${[...g].join(", ")}`);const e=a;v[e]=(a,i)=>{if(S(m[e],i))throw new Error(`A value already exists for "${String(e)}". You may be trying to add a new values before flushing the old one. If you intended to override the existing value, pass in true as the second argument.`);let r;if(!M(a))throw new Error(`"${String(e)}" value has a depth greater than ${String(1)}. To pass in objects with a depth greater than ${String(1)}, create a builder for that config slice.`);return P(a)?(d[e]=a,r=a(m)):r=a,m[e]=r,v}}return v},I=async(a,{experimentsCallback:e}={})=>{const i=[];var r;return e&&i.push((r=e,async(a,e)=>{if(l.EXPERIMENT in e&&"object"==typeof e.__experiment){const{buckets:a,id:i}=e.__experiment,n=await r(i);if(n&&n in a&&a[n])return a[n]}return{value:a}})),i.length>0?await B(a,i):a},N=a=>({read:(e,{vars:i}={})=>{if(!i)return t(a,e);const r=t(a,e);if(!c(r))throw new Error("config reader received variables to use in string template, but the path did not resolve to a string.");return Object.keys(i).reduce(((a,e)=>a.replace(new RegExp(`{{${e}}}`),String(i[e]))),r)},scope:e=>N(t(a,e))}),w=["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"],G=["Afghanistan","Albania","Algeria","Andorra","Angola","Anguilla","Antigua and Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Brazil","British Virgin Islands","Brunei","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Cape Verde","Cayman Islands","Chad","Chile","China","Colombia","Congo","Cook Islands","Costa Rica","Cote D Ivoire","Croatia","Cruise Ship","Cuba","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Estonia","Ethiopia","Falkland Islands","Faroe Islands","Fiji","Finland","France","French Polynesia","French West Indies","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guam","Guatemala","Guernsey","Guinea","Guinea Bissau","Guyana","Haiti","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Isle of Man","Israel","Italy","Jamaica","Japan","Jersey","Jordan","Kazakhstan","Kenya","Kuwait","Kyrgyz Republic","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Macau","Macedonia","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Mauritania","Mauritius","Mexico","Moldova","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Namibia","Nepal","Netherlands","Netherlands Antilles","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","Norway","Oman","Pakistan","Palestine","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Poland","Portugal","Puerto Rico","Qatar","Reunion","Romania","Russia","Rwanda","Saint Pierre and Miquelon","Samoa","San Marino","Satellite","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","South Africa","South Korea","Spain","Sri Lanka","St Kitts and Nevis","St Lucia","St Vincent","St. Lucia","Sudan","Suriname","Swaziland","Sweden","Switzerland","Syria","Taiwan","Tajikistan","Tanzania","Thailand","Timor L'Este","Togo","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Turks and Caicos","Uganda","Ukraine","United Arab Emirates","United Kingdom","Uruguay","Uzbekistan","Venezuela","Vietnam","Virgin Islands (US)","Yemen","Zambia","Zimbabwe"],j=["km","mi"],L=["aa","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bi","bm","bn","bo","br","bs","ca","ce","ch","co","cr","cs","cu","cv","cy","da","de","dv","dz","ee","el","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hu","hy","hz","ia","id","ie","ig","ii","ik","io","is","it","iu","ja","jv","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mr","ms","mt","my","na","nb","nd","ne","ng","nl","nn","no","nr","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","si","sk","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu"],D=["Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmara","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fort_Nelson","America/Fortaleza","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montserrat","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santa_Isabel","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qyzylorda","Asia/Rangoon","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kiev","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Uzhgorod","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zaporozhye","Europe/Zurich","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Johnston","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis"];export{l as NonEmumeralProperties,m as TransformConfigHandlerAction,f as cloneNonEnumerableValues,w as countryCodes,G as countryNames,T as createConfigBuilder,I as createConfigParser,N as createConfigReader,j as distanceUnits,L as languageCodes,D as timezones};
1
+ import{isBoolean as a,isUndefined as e,isPlainObject as i,castArray as r,merge as n,cloneDeep as o,get as t,isString as c}from"lodash-es";import{v4 as s}from"uuid";import{zodToJsonSchema as u}from"zod-to-json-schema";import"core-js/modules/es.set.difference.v2.js";import"core-js/modules/es.set.intersection.v2.js";import"core-js/modules/es.set.is-disjoint-from.v2.js";import"core-js/modules/es.set.is-subset-of.v2.js";import"core-js/modules/es.set.is-superset-of.v2.js";import"core-js/modules/es.set.symmetric-difference.v2.js";import"core-js/modules/es.set.union.v2.js";import{ZodType as A}from"zod";import"core-js/modules/es.array.push.js";var l=function(a){return a.CALLBACKS="__callbacks",a.DISABLED="__disabled",a.EXPERIMENT="__experiment",a.ID="__id",a.TYPE="__type",a.ZCB="__zcb",a}({}),m=function(a){return a.DELETE_NODE="deleteNode",a.SKIP_NODE="skipNode",a}({});const d=new Set(Object.values(l)),f=(a,e)=>{for(const i of d)i in e&&Object.defineProperty(a,i,{configurable:!1,enumerable:!1,value:e[i]});return{value:a}},p=a=>{const{items:e}=a;return e&&"object"==typeof e&&"default"in e},h=i=>{const{properties:r}=i;if(r&&(a=>a.properties&&Object.values(a.properties).some((a=>"object"==typeof a&&"default"in a)))(i))return Object.keys(r).reduce(((i,n)=>{const o=r[n];return!o||a(o)||"default"in o&&!e(o.default)&&(i[n]=o.default),i}),{})},g=new Set(["$disable","$errors","$experiment","$extend","$flush","$fork","$toJson","$validate","$values"]),b=a=>g.has(a),y=a=>"object"==typeof a,E=a=>a.additionalProperties&&"object"==typeof a.additionalProperties&&"default"in a.additionalProperties,P=a=>"function"==typeof a,S=(a,e=!1)=>!e&&void 0!==a,M=(a,e=0)=>{if(i(a)){const i=a;return!0===i.__zcb||!!(e<1&&Object.values(i).every((a=>M(a,e+1))))}return!Array.isArray(a)||!!a.every((a=>M(a,e+1)))},k=(a,e)=>e instanceof A?u(e,{errorMessages:!0}):e,v=(a,e)=>Promise.all(a.map((a=>i(a)?B(a,e):Array.isArray(a)?v(a,e):a))),B=async(a,e=[])=>{let n={};const o=r(e);for(const e of o){const i=await Promise.resolve(e(n,a));if(i.action===m.DELETE_NODE)return{};if(i.value&&(n=i.value),i.action===m.SKIP_NODE)return n}for(const r in a){const o=a[r];i(o)?n[r]=await B(o,e):Array.isArray(o)?n[r]=await v(o,e):n[r]=o}return n},C=(a,e)=>a.map((a=>i(a)?_(a,e):Array.isArray(a)?C(a,e):a)),_=(a,e=[])=>{let n={};const o=r(e);for(const e of o){const i=e(n,a);if(i.action===m.DELETE_NODE)return{};if(i.value&&(n=i.value),i.action===m.SKIP_NODE)return n}for(const r in a){const o=a[r];i(o)?n[r]=_(o,e):Array.isArray(o)?n[r]=C(o,e):n[r]=o}return n},T=(a,e={},i={},r={})=>{const t=u(a);if("object"!==t.type)throw new Error(`The root type of a config schema must be "object", but received "${String(t.type)}"`);const c=e.overrides?.uuid??s,A=()=>{const a=n(o(r),(a=>{const e={};for(const i in a.properties){if(b(i))throw new Error(`"${i}" is a reserved keyword within the config builder. Please use a different property name. The full list of reserved keywords is: ${[...g].join(", ")}`);const r=i,n=a.properties[i];if(y(n)){if(n.default&&(e[r]=n.default),"array"===n.type&&p(n))throw new Error(`When setting schema array defaults for the array assigned to "${String(r)}", set them on the array and not the item.`);if("object"===n.type){if(E(n))throw new Error(`When setting schema property defaults for the value of the record assigned to "${String(r)}", set them on the record and not the value.`);const a=h(n);a&&(e[r]=a)}}}return e})(t));var i;return i=a,Object.defineProperty(i,l.ZCB,{configurable:!1,enumerable:!1,value:!0}),Object.defineProperty(i,l.ID,{configurable:!1,enumerable:!1,value:c()}),e.type&&Object.defineProperty(i,l.TYPE,{configurable:!1,enumerable:!1,value:e.type}),a};let m=A(),d={...i};const v={$disable:()=>(Object.defineProperty(m,l.DISABLED,{configurable:!1,enumerable:!1,value:!0}),v),$errors:()=>{try{return a.parse(v.$values()),[]}catch(a){return a.errors}},$experiment:a=>(Object.defineProperty(m,l.EXPERIMENT,{configurable:!1,enumerable:!1,value:a}),v),$extend:a=>{m=_(a.$values(),[f]),d={...a.__callbacks}},$flush:()=>{const a=v.$values();return m=A(),a},$fork:()=>T(a,e,i,r),$toJson:()=>JSON.stringify(v.$values(),k,2),$validate:()=>{try{return a.parse(v.$values()),!0}catch(a){return console.error(a),!1}},$values:()=>{for(const a in d){const e=d[a];e&&(m[a]=e(m))}return m}};Object.defineProperty(v,l.CALLBACKS,{configurable:!1,enumerable:!1,value:d});for(const a in t.properties){if(b(a))throw new Error(`"${a}" is a reserved keyword within the config builder. Please use a different property name. The full list of reserved keywords is: ${[...g].join(", ")}`);const e=a;v[e]=(a,i)=>{if(S(m[e],i))throw new Error(`A value already exists for "${String(e)}". You may be trying to add a new values before flushing the old one. If you intended to override the existing value, pass in true as the second argument.`);let r;if(!M(a))throw new Error(`"${String(e)}" value has a depth greater than ${String(1)}. To pass in objects with a depth greater than ${String(1)}, create a builder for that config slice.`);return P(a)?(d[e]=a,r=a(m)):r=a,m[e]=r,v}}return v},I=async(a,{experimentsCallback:e}={})=>{const i=[];var r;return e&&i.push((r=e,async(a,e)=>{if(l.EXPERIMENT in e&&"object"==typeof e.__experiment){const{buckets:a,id:i}=e.__experiment,n=await r(i);if(n&&n in a&&a[n])return a[n]}return{value:a}})),i.length>0?await B(a,i):a},N=a=>({read:(e,i)=>{if(!i)return t(a,e);const r=t(a,e);if(!c(r))throw new Error("config reader received variables to use in string template, but the path did not resolve to a string.");return Object.keys(i).reduce(((a,e)=>a.replace(new RegExp(`{{${e}}}`),String(i[e]))),r)},scope:e=>N(t(a,e))}),w=["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"],G=["Afghanistan","Albania","Algeria","Andorra","Angola","Anguilla","Antigua and Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Brazil","British Virgin Islands","Brunei","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Cape Verde","Cayman Islands","Chad","Chile","China","Colombia","Congo","Cook Islands","Costa Rica","Cote D Ivoire","Croatia","Cruise Ship","Cuba","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Estonia","Ethiopia","Falkland Islands","Faroe Islands","Fiji","Finland","France","French Polynesia","French West Indies","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guam","Guatemala","Guernsey","Guinea","Guinea Bissau","Guyana","Haiti","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Isle of Man","Israel","Italy","Jamaica","Japan","Jersey","Jordan","Kazakhstan","Kenya","Kuwait","Kyrgyz Republic","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Macau","Macedonia","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Mauritania","Mauritius","Mexico","Moldova","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Namibia","Nepal","Netherlands","Netherlands Antilles","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","Norway","Oman","Pakistan","Palestine","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Poland","Portugal","Puerto Rico","Qatar","Reunion","Romania","Russia","Rwanda","Saint Pierre and Miquelon","Samoa","San Marino","Satellite","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","South Africa","South Korea","Spain","Sri Lanka","St Kitts and Nevis","St Lucia","St Vincent","St. Lucia","Sudan","Suriname","Swaziland","Sweden","Switzerland","Syria","Taiwan","Tajikistan","Tanzania","Thailand","Timor L'Este","Togo","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Turks and Caicos","Uganda","Ukraine","United Arab Emirates","United Kingdom","Uruguay","Uzbekistan","Venezuela","Vietnam","Virgin Islands (US)","Yemen","Zambia","Zimbabwe"],j=["km","mi"],L=["aa","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bi","bm","bn","bo","br","bs","ca","ce","ch","co","cr","cs","cu","cv","cy","da","de","dv","dz","ee","el","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hu","hy","hz","ia","id","ie","ig","ii","ik","io","is","it","iu","ja","jv","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mr","ms","mt","my","na","nb","nd","ne","ng","nl","nn","no","nr","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","si","sk","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu"],D=["Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmara","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fort_Nelson","America/Fortaleza","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montserrat","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santa_Isabel","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qyzylorda","Asia/Rangoon","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kiev","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Uzhgorod","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zaporozhye","Europe/Zurich","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Johnston","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis"];export{l as NonEmumeralProperties,m as TransformConfigHandlerAction,f as cloneNonEnumerableValues,w as countryCodes,G as countryNames,T as createConfigBuilder,I as createConfigParser,N as createConfigReader,j as distanceUnits,L as languageCodes,D as timezones};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../zod-config-builder/src//types.ts","../zod-config-builder/src//transformers/cloneNonEnumerableValues.ts","../zod-config-builder/src//utils/arrayHasInvalidDefaults.ts","../zod-config-builder/src//utils/collateObjectPropertyDefaults.ts","../zod-config-builder/src//utils/objectPropertyHasDefaults.ts","../zod-config-builder/src//utils/isPropertyReservedWord.ts","../zod-config-builder/src//utils/isValidPropertyDefinition.ts","../zod-config-builder/src//utils/recordHasInvalidDefaults.ts","../zod-config-builder/src//utils/isDerivedValueCallback.ts","../zod-config-builder/src//utils/isInvalidPropertyOverride.ts","../zod-config-builder/src//utils/isValidValue.ts","../zod-config-builder/src//utils/jsonStringifyReplacer.ts","../zod-config-builder/src//utils/transformConfig.ts","../zod-config-builder/src//createConfigBuilder.ts","../zod-config-builder/src//utils/isSchemaValid.ts","../zod-config-builder/src//utils/collateDefaultValues.ts","../zod-config-builder/src//createConfigParser.ts","../zod-config-builder/src//transformers/runExperiments.ts","../zod-config-builder/src//createConfigReader.ts","../zod-config-builder/src//data/countryCodes.ts","../zod-config-builder/src//data/countryNames.ts","../zod-config-builder/src//data/distanceUnits.ts","../zod-config-builder/src//data/languageCodes.ts","../zod-config-builder/src//data/timezones.ts"],"sourcesContent":["import { type List } from 'ts-toolbelt';\nimport { type Includes, type Join } from 'type-fest';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyRecord = Record<string, any>;\n\nexport type Buckets<Config extends AnyRecord> = Record<string, Experiment<Config>>;\n\nexport interface ConfigParserOptions {\n experimentsCallback?: RunExperimentsCallback;\n}\n\nexport interface Experiment<Config extends AnyRecord> {\n action?: TransformConfigHandlerAction;\n value?: Config;\n}\n\nexport enum NonEmumeralProperties {\n CALLBACKS = '__callbacks',\n DISABLED = '__disabled',\n EXPERIMENT = '__experiment',\n ID = '__id',\n TYPE = '__type',\n ZCB = '__zcb',\n}\n\nexport type Path<Config extends object> = Join<Leaves<Config>, '.'>;\n\nexport type RunExperimentsCallback = (id: string) => Promise<string>;\n\nexport type Scope<Config extends object> = Join<Paths<Config>, '.'>;\n\nexport type SetupExperimentsCallback = <Config extends AnyRecord>(\n id: string,\n clone: Config,\n config: Config,\n) => Promise<Buckets<Config>>;\n\nexport type TransformConfigHandler = <Config extends AnyRecord>(\n clone: Config,\n config: Config,\n) => TransformConfigHandlerReturnType<Config> | Promise<TransformConfigHandlerReturnType<Config>>;\n\nexport type TransformConfigHandlerSync = <Config extends AnyRecord>(\n clone: Config,\n config: Config,\n) => TransformConfigHandlerReturnType<Config>;\n\nexport enum TransformConfigHandlerAction {\n DELETE_NODE = 'deleteNode',\n SKIP_NODE = 'skipNode',\n}\n\nexport interface TransformConfigHandlerReturnType<Config extends AnyRecord> {\n action?: TransformConfigHandlerAction;\n value?: Config;\n}\n\nexport interface WriteConfigOptions {\n experimentsCallback?: SetupExperimentsCallback;\n outputFile: string;\n}\n\nexport type Leaves<T, LeafPath extends string[] = [], Depth extends number = 0> = T extends string\n ? LeafPath\n : Depth extends 15\n ? LeafPath\n : {\n [K in keyof T & string]: Leaves<T[K], [...LeafPath, K], LeafPath['length']>;\n }[keyof T & string];\n\nexport type Paths<T, LeafPath extends string[] = [], Depth extends number = 0> = T extends string\n ? LeafPath\n : Depth extends 15\n ? LeafPath\n : {\n [K in keyof T & string]: T[K] extends object ? Paths<T[K], [...LeafPath, K], LeafPath['length']> : LeafPath;\n }[keyof T & string];\n\nexport type LeavesScopeDiffs<T1 extends readonly string[][], T2 extends string[]> = {\n [K1 in keyof T1]: List.Length<List.Intersect<T1[K1], T2, '<-contains'>> extends 1\n ? List.Length<T1[K1]> extends 1\n ? Includes<T2, T1[K1][0]> extends false\n ? T1[K1]\n : never\n : List.Diff<T1[K1], T2>\n : never;\n}[number];\n","import { type AnyRecord, NonEmumeralProperties, type TransformConfigHandlerSync } from '../types.ts';\n\nconst NON_ENUMERABLE_KEYS = new Set(Object.values(NonEmumeralProperties));\n\nexport const cloneNonEnumerableValues: TransformConfigHandlerSync = <\n Config1 extends AnyRecord,\n Config2 extends AnyRecord,\n>(\n clone: Config1,\n config: Config2,\n) => {\n for (const nonEnumerableKey of NON_ENUMERABLE_KEYS) {\n if (nonEnumerableKey in config) {\n Object.defineProperty(clone, nonEnumerableKey, {\n configurable: false,\n enumerable: false,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n value: config[nonEnumerableKey],\n });\n }\n }\n\n return {\n value: clone,\n };\n};\n","import { type JSONSchema7 } from 'json-schema';\n\nexport const arrayHasInvalidDefaults = (propertyDefinition: JSONSchema7) => {\n const { items } = propertyDefinition;\n return items && typeof items === 'object' && 'default' in items;\n};\n","import { type JSONSchema7 } from 'json-schema';\nimport { isBoolean, isUndefined } from 'lodash-es';\nimport { type Jsonifiable } from 'type-fest';\nimport { objectPropertyHasDefaults } from './objectPropertyHasDefaults.ts';\n\nexport const collateObjectPropertyDefaults = (propertyDefinition: JSONSchema7) => {\n const { properties } = propertyDefinition;\n\n if (!properties || !objectPropertyHasDefaults(propertyDefinition)) {\n return;\n }\n\n return Object.keys(properties).reduce<Record<string, Jsonifiable>>((acc, key) => {\n const propertyDef = properties[key];\n\n if (!propertyDef || isBoolean(propertyDef)) {\n return acc;\n }\n\n if ('default' in propertyDef && !isUndefined(propertyDef.default)) {\n acc[key] = propertyDef.default;\n }\n\n return acc;\n }, {});\n};\n","import { type JSONSchema7 } from 'json-schema';\n\nexport const objectPropertyHasDefaults = (propertyDefinition: JSONSchema7) =>\n propertyDefinition.properties &&\n Object.values(propertyDefinition.properties).some(value => typeof value === 'object' && 'default' in value);\n","export const RESERVED_KEYWORDS = new Set([\n '$disable',\n '$errors',\n '$experiment',\n '$extend',\n '$flush',\n '$fork',\n '$toJson',\n '$validate',\n '$values',\n]);\n\nexport const isPropertyReservedWord = (propertyName: string) => RESERVED_KEYWORDS.has(propertyName);\n","import { type JSONSchema7, type JSONSchema7Definition } from 'json-schema';\n\nexport const isValidPropertyDefinition = (\n propertyDefinition: JSONSchema7Definition | undefined,\n): propertyDefinition is JSONSchema7 => typeof propertyDefinition === 'object';\n","import { type JSONSchema7 } from 'json-schema';\n\nexport const recordHasInvalidDefaults = (propertyDefinition: JSONSchema7) =>\n propertyDefinition.additionalProperties &&\n typeof propertyDefinition.additionalProperties === 'object' &&\n 'default' in propertyDefinition.additionalProperties;\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isDerivedValueCallback = <T extends (c: any) => any>(value: any): value is T =>\n typeof value === 'function';\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isInvalidPropertyOverride = (propertyValue: any, override = false) =>\n !override && propertyValue !== undefined;\n","import { isPlainObject } from 'lodash-es';\n\nexport const isValidValue = (value: unknown, depth = 0): boolean => {\n if (isPlainObject(value)) {\n // isPlainObject not a type guard.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const object = value as Record<string, unknown>;\n\n if (object.__zcb === true) {\n return true;\n }\n\n if (depth < 1 && Object.values(object).every(v => isValidValue(v, depth + 1))) {\n return true;\n }\n\n return false;\n }\n\n if (Array.isArray(value)) {\n if (value.every(v => isValidValue(v, depth + 1))) {\n return true;\n }\n\n return false;\n }\n\n return true;\n};\n","import { type Jsonifiable } from 'type-fest';\nimport { ZodType } from 'zod';\nimport { zodToJsonSchema } from 'zod-to-json-schema';\n\nexport const jsonStringifyReplacer = (_key: string, value: Jsonifiable) =>\n value instanceof ZodType ? zodToJsonSchema(value, { errorMessages: true }) : value;\n","import { castArray, isPlainObject } from 'lodash-es';\nimport {\n type AnyRecord,\n type TransformConfigHandler,\n TransformConfigHandlerAction,\n type TransformConfigHandlerSync,\n} from '../types.ts';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst transformArray = (list: any[], handler: TransformConfigHandler | TransformConfigHandler[]): Promise<any[]> =>\n Promise.all(\n list.map(entry => {\n if (isPlainObject(entry)) {\n return transformConfig(entry, handler);\n }\n\n if (Array.isArray(entry)) {\n return transformArray(entry, handler);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return entry;\n }),\n );\n\nexport const transformConfig = async <Config extends AnyRecord>(\n config: Config,\n handler: TransformConfigHandler | TransformConfigHandler[] = [],\n): Promise<Config> => {\n // Typing gets too complicated without casting.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n let transform = {} as Config;\n const handlers = castArray(handler);\n\n for (const callback of handlers) {\n const result = await Promise.resolve(callback(transform, config));\n\n if (result.action === TransformConfigHandlerAction.DELETE_NODE) {\n // Typing gets too complicated without casting.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return {} as Config;\n }\n\n if (result.value) {\n transform = result.value;\n }\n\n if (result.action === TransformConfigHandlerAction.SKIP_NODE) {\n return transform;\n }\n }\n\n for (const key in config) {\n const value = config[key];\n\n if (isPlainObject(value)) {\n transform[key] = await transformConfig(value, handler);\n } else if (Array.isArray(value)) {\n // transformArraySync returns an any type.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n transform[key] = (await transformArray(value, handler)) as Config[Extract<keyof Config, string>];\n } else {\n transform[key] = value;\n }\n }\n\n return transform;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst transformArraySync = (list: any[], handler: TransformConfigHandlerSync | TransformConfigHandlerSync[]): any[] =>\n list.map(entry => {\n if (isPlainObject(entry)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return transformConfigSync(entry, handler);\n }\n\n if (Array.isArray(entry)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return transformArraySync(entry, handler);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return entry;\n });\n\nexport const transformConfigSync = <Config extends AnyRecord>(\n config: Config,\n handler: TransformConfigHandlerSync | TransformConfigHandlerSync[] = [],\n): Config => {\n // Typing gets too complicated without casting.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n let transform = {} as Config;\n const handlers = castArray(handler);\n\n for (const callback of handlers) {\n const result = callback(transform, config);\n\n if (result.action === TransformConfigHandlerAction.DELETE_NODE) {\n // Typing gets too complicated without casting.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return {} as Config;\n }\n\n if (result.value) {\n transform = result.value;\n }\n\n if (result.action === TransformConfigHandlerAction.SKIP_NODE) {\n return transform;\n }\n }\n\n for (const key in config) {\n const value = config[key];\n\n if (isPlainObject(value)) {\n transform[key] = transformConfigSync(value, handler);\n } else if (Array.isArray(value)) {\n // transformArraySync returns an any type.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n transform[key] = transformArraySync(value, handler) as Config[Extract<keyof Config, string>];\n } else {\n transform[key] = value;\n }\n }\n\n return transform;\n};\n","import { type JSONSchema7 } from 'json-schema';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { v4 as uuidV4 } from 'uuid';\nimport { type ZodError, type z } from 'zod';\nimport { zodToJsonSchema } from 'zod-to-json-schema';\nimport { cloneNonEnumerableValues } from './transformers/cloneNonEnumerableValues.ts';\nimport { NonEmumeralProperties } from './types.ts';\nimport { collateDefaultValues } from './utils/collateDefaultValues.ts';\nimport { isDerivedValueCallback } from './utils/isDerivedValueCallback.ts';\nimport { isInvalidPropertyOverride } from './utils/isInvalidPropertyOverride.ts';\nimport { RESERVED_KEYWORDS, isPropertyReservedWord } from './utils/isPropertyReservedWord.ts';\nimport { isSchemaValid } from './utils/isSchemaValid.ts';\nimport { isValidValue } from './utils/isValidValue.ts';\nimport { jsonStringifyReplacer } from './utils/jsonStringifyReplacer.ts';\nimport { transformConfigSync } from './utils/transformConfig.ts';\n\nexport type ConfigBuilder<ZodTypes> = {\n [Key in keyof Required<ZodTypes>]: (\n value: ZodTypes[Key] | ((c: ZodTypes) => ZodTypes[Key]),\n override?: boolean,\n ) => ConfigBuilder<ZodTypes>;\n} & {\n $disable: () => ConfigBuilder<ZodTypes>;\n $errors: () => ZodError['errors'];\n $experiment: (key: string) => ConfigBuilder<ZodTypes>;\n $extend: (configBuilder: ConfigBuilder<ZodTypes>) => ConfigBuilder<ZodTypes>;\n $flush: () => ZodTypes;\n $fork: () => ConfigBuilder<ZodTypes>;\n $toJson: () => string;\n $validate: () => boolean;\n $values: () => ZodTypes;\n};\n\nexport type CreateConfigBuilderOptions = {\n overrides?: {\n uuid?: () => string;\n };\n type?: string;\n};\n\nexport const createConfigBuilder = <ZodTypes>(\n zodSchema: z.ZodSchema,\n options: CreateConfigBuilderOptions = {},\n derivedValueCallbacks: Partial<\n Record<\n keyof ZodTypes,\n (c: {\n [Key in keyof ZodTypes]: ZodTypes[Key];\n }) => ZodTypes[keyof ZodTypes]\n >\n > = {},\n initialValues: Partial<{\n [Key in keyof ZodTypes]: ZodTypes[Key];\n }> = {},\n): ConfigBuilder<ZodTypes> => {\n type Config = {\n [Key in keyof ZodTypes]: ZodTypes[Key];\n };\n\n type DerivedValueCallback<K extends keyof Config = keyof Config> = (c: Config) => Config[K];\n\n // Added to simplify type returned from zodToJsonSchema.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const jsonSchema = zodToJsonSchema(zodSchema) as JSONSchema7;\n\n if (isSchemaValid(jsonSchema)) {\n throw new Error(`The root type of a config schema must be \"object\", but received \"${String(jsonSchema.type)}\"`);\n }\n\n const uuid = options.overrides?.uuid ?? uuidV4;\n\n const addNonEnumeralBaseProperties = (conf: Config) => {\n Object.defineProperty(conf, NonEmumeralProperties.ZCB, {\n configurable: false,\n enumerable: false,\n value: true,\n });\n\n Object.defineProperty(conf, NonEmumeralProperties.ID, {\n configurable: false,\n enumerable: false,\n value: uuid(),\n });\n\n if (options.type) {\n Object.defineProperty(conf, NonEmumeralProperties.TYPE, {\n configurable: false,\n enumerable: false,\n value: options.type,\n });\n }\n };\n\n const createInitialConfig = () => {\n // Not casting here as loads of downstream impacts that make\n // subsequent typing really difficult.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const config = merge(cloneDeep(initialValues), collateDefaultValues(jsonSchema)) as Config;\n addNonEnumeralBaseProperties(config);\n return config;\n };\n\n let config = createInitialConfig();\n let callbacks: Partial<Record<keyof Config, DerivedValueCallback>> = { ...derivedValueCallbacks };\n\n // Aimed at making it easier for Typescript to derive type.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const configBuilder = {\n $disable: () => {\n Object.defineProperty(config, NonEmumeralProperties.DISABLED, {\n configurable: false,\n enumerable: false,\n value: true,\n });\n\n return configBuilder;\n },\n $errors: () => {\n try {\n zodSchema.parse(configBuilder.$values());\n return [];\n } catch (error: unknown) {\n // This will always be an instance of ZodError.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return (error as ZodError).errors;\n }\n },\n $experiment: (key: string) => {\n Object.defineProperty(config, NonEmumeralProperties.EXPERIMENT, {\n configurable: false,\n enumerable: false,\n value: key,\n });\n\n return configBuilder;\n },\n $extend: (builder: ConfigBuilder<Config>) => {\n config = transformConfigSync<Config>(builder.$values(), [cloneNonEnumerableValues]);\n // @ts-expect-error private property\n // As __callbacks is private property, Typescript doesn't know what type is.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n callbacks = { ...builder.__callbacks } as Partial<Record<keyof Config, DerivedValueCallback>>;\n },\n $flush: () => {\n const values = configBuilder.$values();\n config = createInitialConfig();\n return values;\n },\n $fork: () => createConfigBuilder<Config>(zodSchema, options, derivedValueCallbacks, initialValues),\n $toJson: () => JSON.stringify(configBuilder.$values(), jsonStringifyReplacer, 2),\n $validate: () => {\n try {\n zodSchema.parse(configBuilder.$values());\n return true;\n } catch (error: unknown) {\n console.error(error);\n return false;\n }\n },\n $values: () => {\n for (const property in callbacks) {\n const callback = callbacks[property];\n\n if (callback) {\n // Typescript not inferring property is key of Config.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n config[property as keyof Config] = callback(config);\n }\n }\n\n return config;\n },\n } as unknown as ConfigBuilder<ZodTypes>;\n\n Object.defineProperty(configBuilder, NonEmumeralProperties.CALLBACKS, {\n configurable: false,\n enumerable: false,\n value: callbacks,\n });\n\n for (const propertyName in jsonSchema.properties) {\n if (isPropertyReservedWord(propertyName)) {\n throw new Error(\n `\"${propertyName}\" is a reserved keyword within the config builder. Please use a different property name. The full list of reserved keywords is: ${[\n ...RESERVED_KEYWORDS,\n ].join(', ')}`,\n );\n }\n\n // Hard to derive jsonSchema.properties are all keys of Config.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const castPropertyName = propertyName as keyof Config;\n\n // Aimed at making it easier for Typescript to derive type.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n configBuilder[castPropertyName] = ((value: Config[keyof Config] | DerivedValueCallback, override?: boolean) => {\n if (isInvalidPropertyOverride(config[castPropertyName], override)) {\n throw new Error(\n `A value already exists for \"${String(\n castPropertyName,\n )}\". You may be trying to add a new values before flushing the old one. If you intended to override the existing value, pass in true as the second argument.`,\n );\n }\n\n let propertyValue: Config[keyof Config];\n const MAX_DEPTH = 1;\n\n if (!isValidValue(value)) {\n throw new Error(\n `\"${String(\n castPropertyName,\n )}\" value has a depth greater than ${String(MAX_DEPTH)}. To pass in objects with a depth greater than ${String(MAX_DEPTH)}, create a builder for that config slice.`,\n );\n }\n\n if (isDerivedValueCallback<DerivedValueCallback>(value)) {\n callbacks[castPropertyName] = value;\n propertyValue = value(config);\n } else {\n propertyValue = value;\n }\n\n config[castPropertyName] = propertyValue;\n return configBuilder;\n }) as ConfigBuilder<Config>[keyof Config];\n }\n\n return configBuilder;\n};\n","import { type JSONSchema7 } from 'json-schema';\n\nexport const isSchemaValid = (schema: JSONSchema7) => schema.type !== 'object';\n","import { type JSONSchema7 } from 'json-schema';\nimport { arrayHasInvalidDefaults } from './arrayHasInvalidDefaults.ts';\nimport { collateObjectPropertyDefaults } from './collateObjectPropertyDefaults.ts';\nimport { RESERVED_KEYWORDS, isPropertyReservedWord } from './isPropertyReservedWord.ts';\nimport { isValidPropertyDefinition } from './isValidPropertyDefinition.ts';\nimport { recordHasInvalidDefaults } from './recordHasInvalidDefaults.ts';\n\nexport const collateDefaultValues = <Config>(jsonSchema: JSONSchema7) => {\n const defaultValues: Partial<Config> = {};\n\n for (const propertyName in jsonSchema.properties) {\n if (isPropertyReservedWord(propertyName)) {\n throw new Error(\n `\"${propertyName}\" is a reserved keyword within the config builder. Please use a different property name. The full list of reserved keywords is: ${[\n ...RESERVED_KEYWORDS,\n ].join(', ')}`,\n );\n }\n\n // Typescript not inferring property is key of Config.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const castPropertyName = propertyName as keyof Config;\n const propertyDefinition = jsonSchema.properties[propertyName];\n\n if (isValidPropertyDefinition(propertyDefinition)) {\n if (propertyDefinition.default) {\n // Typescript not inferring propertyDefinition.default is Config value.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n defaultValues[castPropertyName] = propertyDefinition.default as Config[keyof Config];\n }\n\n if (propertyDefinition.type === 'array' && arrayHasInvalidDefaults(propertyDefinition)) {\n throw new Error(\n `When setting schema array defaults for the array assigned to \"${String(\n castPropertyName,\n )}\", set them on the array and not the item.`,\n );\n }\n\n if (propertyDefinition.type === 'object') {\n if (recordHasInvalidDefaults(propertyDefinition)) {\n throw new Error(\n `When setting schema property defaults for the value of the record assigned to \"${String(\n castPropertyName,\n )}\", set them on the record and not the value.`,\n );\n }\n\n const propertyDefaults = collateObjectPropertyDefaults(propertyDefinition);\n\n if (propertyDefaults) {\n // Typescript not inferring propertyDefaults is Config value.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n defaultValues[castPropertyName] = propertyDefaults as Config[keyof Config];\n }\n }\n }\n }\n\n return defaultValues;\n};\n","import { runExperiments } from './transformers/runExperiments.ts';\nimport { type ConfigParserOptions, type TransformConfigHandler } from './types.ts';\nimport { transformConfig } from './utils/transformConfig.ts';\n\nexport const createConfigParser = async <Config extends object>(\n config: Config,\n { experimentsCallback }: ConfigParserOptions = {},\n) => {\n const handlers: TransformConfigHandler[] = [];\n\n if (experimentsCallback) {\n handlers.push(runExperiments(experimentsCallback));\n }\n\n return handlers.length > 0 ? await transformConfig(config, handlers) : config;\n};\n","import {\n type AnyRecord,\n type Buckets,\n NonEmumeralProperties,\n type RunExperimentsCallback,\n type TransformConfigHandler,\n} from '../types.ts';\n\nexport const runExperiments =\n (callback: RunExperimentsCallback): TransformConfigHandler =>\n async <Config extends AnyRecord>(clone: Config, config: Config) => {\n if (NonEmumeralProperties.EXPERIMENT in config && typeof config.__experiment === 'object') {\n // As __experiment is private property, Typescript doesn't know what type is.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const { buckets, id } = config.__experiment as { buckets: Buckets<Config>; id: string };\n const bucket = await callback(id);\n\n if (bucket && bucket in buckets && buckets[bucket]) {\n return buckets[bucket];\n }\n }\n\n return {\n value: clone,\n };\n };\n","import { get, isString } from 'lodash-es';\nimport { type Get } from 'type-fest';\nimport { type Path, type Scope } from './types.ts';\n\nexport type ReadOptions = {\n vars?: Record<string, string | number>;\n};\n\nexport interface ConfigReader<Config extends object> {\n read: <P extends Path<Config>>(path: P, options?: ReadOptions) => Get<Config, P>;\n scope: <S extends Scope<Config>>(scope: S) => ConfigReader<Get<Config, S>>;\n}\n\nexport const createConfigReader = <Config extends object>(config: Config): ConfigReader<Config> => {\n // Aimed at reducing the amount of work for typescript to resolve type.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const configReader = {\n read: <P extends Path<Config>>(path: P, { vars }: ReadOptions = {}) => {\n if (!vars) {\n return get(config, path);\n }\n\n const output = get(config, path);\n\n if (!isString(output)) {\n throw new Error(\n 'config reader received variables to use in string template, but the path did not resolve to a string.',\n );\n }\n\n return Object.keys(vars).reduce<string>((acc, key) => {\n return acc.replace(new RegExp(`{{${key}}}`), String(vars[key]));\n }, output);\n },\n // Aimed at reducing the amount of work for typescript to resolve type.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n scope: <S extends Scope<Config>>(scope: S) => createConfigReader(get(config, scope) as Get<Config, S>),\n } as ConfigReader<Config>;\n\n return configReader;\n};\n","export const countryCodes = [\n 'AF',\n 'AX',\n 'AL',\n 'DZ',\n 'AS',\n 'AD',\n 'AO',\n 'AI',\n 'AQ',\n 'AG',\n 'AR',\n 'AM',\n 'AW',\n 'AU',\n 'AT',\n 'AZ',\n 'BS',\n 'BH',\n 'BD',\n 'BB',\n 'BY',\n 'BE',\n 'BZ',\n 'BJ',\n 'BM',\n 'BT',\n 'BO',\n 'BA',\n 'BW',\n 'BV',\n 'BR',\n 'IO',\n 'BN',\n 'BG',\n 'BF',\n 'BI',\n 'KH',\n 'CM',\n 'CA',\n 'CV',\n 'KY',\n 'CF',\n 'TD',\n 'CL',\n 'CN',\n 'CX',\n 'CC',\n 'CO',\n 'KM',\n 'CG',\n 'CD',\n 'CK',\n 'CR',\n 'CI',\n 'HR',\n 'CU',\n 'CY',\n 'CZ',\n 'DK',\n 'DJ',\n 'DM',\n 'DO',\n 'EC',\n 'EG',\n 'SV',\n 'GQ',\n 'ER',\n 'EE',\n 'ET',\n 'FK',\n 'FO',\n 'FJ',\n 'FI',\n 'FR',\n 'GF',\n 'PF',\n 'TF',\n 'GA',\n 'GM',\n 'GE',\n 'DE',\n 'GH',\n 'GI',\n 'GR',\n 'GL',\n 'GD',\n 'GP',\n 'GU',\n 'GT',\n 'GG',\n 'GN',\n 'GW',\n 'GY',\n 'HT',\n 'HM',\n 'VA',\n 'HN',\n 'HK',\n 'HU',\n 'IS',\n 'IN',\n 'ID',\n 'IR',\n 'IQ',\n 'IE',\n 'IM',\n 'IL',\n 'IT',\n 'JM',\n 'JP',\n 'JE',\n 'JO',\n 'KZ',\n 'KE',\n 'KI',\n 'KR',\n 'KW',\n 'KG',\n 'LA',\n 'LV',\n 'LB',\n 'LS',\n 'LR',\n 'LY',\n 'LI',\n 'LT',\n 'LU',\n 'MO',\n 'MK',\n 'MG',\n 'MW',\n 'MY',\n 'MV',\n 'ML',\n 'MT',\n 'MH',\n 'MQ',\n 'MR',\n 'MU',\n 'YT',\n 'MX',\n 'FM',\n 'MD',\n 'MC',\n 'MN',\n 'ME',\n 'MS',\n 'MA',\n 'MZ',\n 'MM',\n 'NA',\n 'NR',\n 'NP',\n 'NL',\n 'AN',\n 'NC',\n 'NZ',\n 'NI',\n 'NE',\n 'NG',\n 'NU',\n 'NF',\n 'MP',\n 'NO',\n 'OM',\n 'PK',\n 'PW',\n 'PS',\n 'PA',\n 'PG',\n 'PY',\n 'PE',\n 'PH',\n 'PN',\n 'PL',\n 'PT',\n 'PR',\n 'QA',\n 'RE',\n 'RO',\n 'RU',\n 'RW',\n 'BL',\n 'SH',\n 'KN',\n 'LC',\n 'MF',\n 'PM',\n 'VC',\n 'WS',\n 'SM',\n 'ST',\n 'SA',\n 'SN',\n 'RS',\n 'SC',\n 'SL',\n 'SG',\n 'SK',\n 'SI',\n 'SB',\n 'SO',\n 'ZA',\n 'GS',\n 'ES',\n 'LK',\n 'SD',\n 'SR',\n 'SJ',\n 'SZ',\n 'SE',\n 'CH',\n 'SY',\n 'TW',\n 'TJ',\n 'TZ',\n 'TH',\n 'TL',\n 'TG',\n 'TK',\n 'TO',\n 'TT',\n 'TN',\n 'TR',\n 'TM',\n 'TC',\n 'TV',\n 'UG',\n 'UA',\n 'AE',\n 'GB',\n 'US',\n 'UM',\n 'UY',\n 'UZ',\n 'VU',\n 'VE',\n 'VN',\n 'VG',\n 'VI',\n 'WF',\n 'EH',\n 'YE',\n 'ZM',\n 'ZW',\n] as const;\n","export const countryNames = [\n 'Afghanistan',\n 'Albania',\n 'Algeria',\n 'Andorra',\n 'Angola',\n 'Anguilla',\n 'Antigua and Barbuda',\n 'Argentina',\n 'Armenia',\n 'Aruba',\n 'Australia',\n 'Austria',\n 'Azerbaijan',\n 'Bahamas',\n 'Bahrain',\n 'Bangladesh',\n 'Barbados',\n 'Belarus',\n 'Belgium',\n 'Belize',\n 'Benin',\n 'Bermuda',\n 'Bhutan',\n 'Bolivia',\n 'Bosnia and Herzegovina',\n 'Botswana',\n 'Brazil',\n 'British Virgin Islands',\n 'Brunei',\n 'Bulgaria',\n 'Burkina Faso',\n 'Burundi',\n 'Cambodia',\n 'Cameroon',\n 'Cape Verde',\n 'Cayman Islands',\n 'Chad',\n 'Chile',\n 'China',\n 'Colombia',\n 'Congo',\n 'Cook Islands',\n 'Costa Rica',\n 'Cote D Ivoire',\n 'Croatia',\n 'Cruise Ship',\n 'Cuba',\n 'Cyprus',\n 'Czech Republic',\n 'Denmark',\n 'Djibouti',\n 'Dominica',\n 'Dominican Republic',\n 'Ecuador',\n 'Egypt',\n 'El Salvador',\n 'Equatorial Guinea',\n 'Estonia',\n 'Ethiopia',\n 'Falkland Islands',\n 'Faroe Islands',\n 'Fiji',\n 'Finland',\n 'France',\n 'French Polynesia',\n 'French West Indies',\n 'Gabon',\n 'Gambia',\n 'Georgia',\n 'Germany',\n 'Ghana',\n 'Gibraltar',\n 'Greece',\n 'Greenland',\n 'Grenada',\n 'Guam',\n 'Guatemala',\n 'Guernsey',\n 'Guinea',\n 'Guinea Bissau',\n 'Guyana',\n 'Haiti',\n 'Honduras',\n 'Hong Kong',\n 'Hungary',\n 'Iceland',\n 'India',\n 'Indonesia',\n 'Iran',\n 'Iraq',\n 'Ireland',\n 'Isle of Man',\n 'Israel',\n 'Italy',\n 'Jamaica',\n 'Japan',\n 'Jersey',\n 'Jordan',\n 'Kazakhstan',\n 'Kenya',\n 'Kuwait',\n 'Kyrgyz Republic',\n 'Laos',\n 'Latvia',\n 'Lebanon',\n 'Lesotho',\n 'Liberia',\n 'Libya',\n 'Liechtenstein',\n 'Lithuania',\n 'Luxembourg',\n 'Macau',\n 'Macedonia',\n 'Madagascar',\n 'Malawi',\n 'Malaysia',\n 'Maldives',\n 'Mali',\n 'Malta',\n 'Mauritania',\n 'Mauritius',\n 'Mexico',\n 'Moldova',\n 'Monaco',\n 'Mongolia',\n 'Montenegro',\n 'Montserrat',\n 'Morocco',\n 'Mozambique',\n 'Namibia',\n 'Nepal',\n 'Netherlands',\n 'Netherlands Antilles',\n 'New Caledonia',\n 'New Zealand',\n 'Nicaragua',\n 'Niger',\n 'Nigeria',\n 'Norway',\n 'Oman',\n 'Pakistan',\n 'Palestine',\n 'Panama',\n 'Papua New Guinea',\n 'Paraguay',\n 'Peru',\n 'Philippines',\n 'Poland',\n 'Portugal',\n 'Puerto Rico',\n 'Qatar',\n 'Reunion',\n 'Romania',\n 'Russia',\n 'Rwanda',\n 'Saint Pierre and Miquelon',\n 'Samoa',\n 'San Marino',\n 'Satellite',\n 'Saudi Arabia',\n 'Senegal',\n 'Serbia',\n 'Seychelles',\n 'Sierra Leone',\n 'Singapore',\n 'Slovakia',\n 'Slovenia',\n 'South Africa',\n 'South Korea',\n 'Spain',\n 'Sri Lanka',\n 'St Kitts and Nevis',\n 'St Lucia',\n 'St Vincent',\n 'St. Lucia',\n 'Sudan',\n 'Suriname',\n 'Swaziland',\n 'Sweden',\n 'Switzerland',\n 'Syria',\n 'Taiwan',\n 'Tajikistan',\n 'Tanzania',\n 'Thailand',\n \"Timor L'Este\",\n 'Togo',\n 'Tonga',\n 'Trinidad and Tobago',\n 'Tunisia',\n 'Turkey',\n 'Turkmenistan',\n 'Turks and Caicos',\n 'Uganda',\n 'Ukraine',\n 'United Arab Emirates',\n 'United Kingdom',\n 'Uruguay',\n 'Uzbekistan',\n 'Venezuela',\n 'Vietnam',\n 'Virgin Islands (US)',\n 'Yemen',\n 'Zambia',\n 'Zimbabwe',\n] as const;\n","export const distanceUnits = ['km', 'mi'] as const;\n","export const languageCodes = [\n 'aa',\n 'ab',\n 'ae',\n 'af',\n 'ak',\n 'am',\n 'an',\n 'ar',\n 'as',\n 'av',\n 'ay',\n 'az',\n 'ba',\n 'be',\n 'bg',\n 'bi',\n 'bm',\n 'bn',\n 'bo',\n 'br',\n 'bs',\n 'ca',\n 'ce',\n 'ch',\n 'co',\n 'cr',\n 'cs',\n 'cu',\n 'cv',\n 'cy',\n 'da',\n 'de',\n 'dv',\n 'dz',\n 'ee',\n 'el',\n 'en',\n 'eo',\n 'es',\n 'et',\n 'eu',\n 'fa',\n 'ff',\n 'fi',\n 'fj',\n 'fo',\n 'fr',\n 'fy',\n 'ga',\n 'gd',\n 'gl',\n 'gn',\n 'gu',\n 'gv',\n 'ha',\n 'he',\n 'hi',\n 'ho',\n 'hr',\n 'ht',\n 'hu',\n 'hy',\n 'hz',\n 'ia',\n 'id',\n 'ie',\n 'ig',\n 'ii',\n 'ik',\n 'io',\n 'is',\n 'it',\n 'iu',\n 'ja',\n 'jv',\n 'ka',\n 'kg',\n 'ki',\n 'kj',\n 'kk',\n 'kl',\n 'km',\n 'kn',\n 'ko',\n 'kr',\n 'ks',\n 'ku',\n 'kv',\n 'kw',\n 'ky',\n 'la',\n 'lb',\n 'lg',\n 'li',\n 'ln',\n 'lo',\n 'lt',\n 'lu',\n 'lv',\n 'mg',\n 'mh',\n 'mi',\n 'mk',\n 'ml',\n 'mn',\n 'mr',\n 'ms',\n 'mt',\n 'my',\n 'na',\n 'nb',\n 'nd',\n 'ne',\n 'ng',\n 'nl',\n 'nn',\n 'no',\n 'nr',\n 'nv',\n 'ny',\n 'oc',\n 'oj',\n 'om',\n 'or',\n 'os',\n 'pa',\n 'pi',\n 'pl',\n 'ps',\n 'pt',\n 'qu',\n 'rm',\n 'rn',\n 'ro',\n 'ru',\n 'rw',\n 'sa',\n 'sc',\n 'sd',\n 'se',\n 'sg',\n 'si',\n 'sk',\n 'sl',\n 'sm',\n 'sn',\n 'so',\n 'sq',\n 'sr',\n 'ss',\n 'st',\n 'su',\n 'sv',\n 'sw',\n 'ta',\n 'te',\n 'tg',\n 'th',\n 'ti',\n 'tk',\n 'tl',\n 'tn',\n 'to',\n 'tr',\n 'ts',\n 'tt',\n 'tw',\n 'ty',\n 'ug',\n 'uk',\n 'ur',\n 'uz',\n 've',\n 'vi',\n 'vo',\n 'wa',\n 'wo',\n 'xh',\n 'yi',\n 'yo',\n 'za',\n 'zh',\n 'zu',\n] as const;\n","export const timezones = [\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Addis_Ababa',\n 'Africa/Algiers',\n 'Africa/Asmara',\n 'Africa/Bamako',\n 'Africa/Bangui',\n 'Africa/Banjul',\n 'Africa/Bissau',\n 'Africa/Blantyre',\n 'Africa/Brazzaville',\n 'Africa/Bujumbura',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/Conakry',\n 'Africa/Dakar',\n 'Africa/Dar_es_Salaam',\n 'Africa/Djibouti',\n 'Africa/Douala',\n 'Africa/El_Aaiun',\n 'Africa/Freetown',\n 'Africa/Gaborone',\n 'Africa/Harare',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Kampala',\n 'Africa/Khartoum',\n 'Africa/Kigali',\n 'Africa/Kinshasa',\n 'Africa/Lagos',\n 'Africa/Libreville',\n 'Africa/Lome',\n 'Africa/Luanda',\n 'Africa/Lubumbashi',\n 'Africa/Lusaka',\n 'Africa/Malabo',\n 'Africa/Maputo',\n 'Africa/Maseru',\n 'Africa/Mbabane',\n 'Africa/Mogadishu',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Niamey',\n 'Africa/Nouakchott',\n 'Africa/Ouagadougou',\n 'Africa/Porto-Novo',\n 'Africa/Sao_Tome',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Anguilla',\n 'America/Antigua',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Aruba',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Cayenne',\n 'America/Cayman',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Dominica',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Fort_Nelson',\n 'America/Fortaleza',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Grenada',\n 'America/Guadeloupe',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/Kralendijk',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Lower_Princes',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Marigot',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Montserrat',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port-au-Prince',\n 'America/Port_of_Spain',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Santa_Isabel',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Sitka',\n 'America/St_Barthelemy',\n 'America/St_Johns',\n 'America/St_Kitts',\n 'America/St_Lucia',\n 'America/St_Thomas',\n 'America/St_Vincent',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Tortola',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/McMurdo',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Arctic/Longyearbyen',\n 'Asia/Aden',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Baghdad',\n 'Asia/Bahrain',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Colombo',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kathmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Kuwait',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Muscat',\n 'Asia/Nicosia',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Phnom_Penh',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qyzylorda',\n 'Asia/Rangoon',\n 'Asia/Riyadh',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Ulaanbaatar',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vientiane',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faroe',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/St_Helena',\n 'Atlantic/Stanley',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Bratislava',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Busingen',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Guernsey',\n 'Europe/Helsinki',\n 'Europe/Isle_of_Man',\n 'Europe/Istanbul',\n 'Europe/Jersey',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Lisbon',\n 'Europe/Ljubljana',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Mariehamn',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Podgorica',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/San_Marino',\n 'Europe/Sarajevo',\n 'Europe/Simferopol',\n 'Europe/Skopje',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Uzhgorod',\n 'Europe/Vaduz',\n 'Europe/Vatican',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zagreb',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'Indian/Antananarivo',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Comoro',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Mayotte',\n 'Indian/Reunion',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Johnston',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Midway',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Saipan',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n] as const;\n"],"names":["NonEmumeralProperties","TransformConfigHandlerAction","NON_ENUMERABLE_KEYS","Set","Object","values","cloneNonEnumerableValues","clone","config","nonEnumerableKey","defineProperty","configurable","enumerable","value","arrayHasInvalidDefaults","propertyDefinition","items","collateObjectPropertyDefaults","properties","some","objectPropertyHasDefaults","keys","reduce","acc","key","propertyDef","isBoolean","isUndefined","default","RESERVED_KEYWORDS","isPropertyReservedWord","propertyName","has","isValidPropertyDefinition","recordHasInvalidDefaults","additionalProperties","isDerivedValueCallback","isInvalidPropertyOverride","propertyValue","override","undefined","isValidValue","depth","isPlainObject","object","__zcb","every","v","Array","isArray","jsonStringifyReplacer","_key","ZodType","zodToJsonSchema","errorMessages","transformArray","list","handler","Promise","all","map","entry","transformConfig","async","transform","handlers","castArray","callback","result","resolve","action","DELETE_NODE","SKIP_NODE","transformArraySync","transformConfigSync","createConfigBuilder","zodSchema","options","derivedValueCallbacks","initialValues","jsonSchema","type","Error","String","uuid","overrides","uuidV4","createInitialConfig","merge","cloneDeep","defaultValues","join","castPropertyName","propertyDefaults","collateDefaultValues","conf","ZCB","ID","TYPE","callbacks","configBuilder","$disable","DISABLED","$errors","parse","$values","error","errors","$experiment","EXPERIMENT","$extend","builder","__callbacks","$flush","$fork","$toJson","JSON","stringify","$validate","console","property","CALLBACKS","createConfigParser","experimentsCallback","push","__experiment","buckets","id","bucket","length","createConfigReader","read","path","vars","get","output","isString","replace","RegExp","scope","countryCodes","countryNames","distanceUnits","languageCodes","timezones"],"mappings":"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ACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MCrPWC,EAAe,CAC1B,cACA,UACA,UACA,UACA,SACA,WACA,sBACA,YACA,UACA,QACA,YACA,UACA,aACA,UACA,UACA,aACA,WACA,UACA,UACA,SACA,QACA,UACA,SACA,UACA,yBACA,WACA,SACA,yBACA,SACA,WACA,eACA,UACA,WACA,WACA,aACA,iBACA,OACA,QACA,QACA,WACA,QACA,eACA,aACA,gBACA,UACA,cACA,OACA,SACA,iBACA,UACA,WACA,WACA,qBACA,UACA,QACA,cACA,oBACA,UACA,WACA,mBACA,gBACA,OACA,UACA,SACA,mBACA,qBACA,QACA,SACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,OACA,YACA,WACA,SACA,gBACA,SACA,QACA,WACA,YACA,UACA,UACA,QACA,YACA,OACA,OACA,UACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aACA,QACA,SACA,kBACA,OACA,SACA,UACA,UACA,UACA,QACA,gBACA,YACA,aACA,QACA,YACA,aACA,SACA,WACA,WACA,OACA,QACA,aACA,YACA,SACA,UACA,SACA,WACA,aACA,aACA,UACA,aACA,UACA,QACA,cACA,uBACA,gBACA,cACA,YACA,QACA,UACA,SACA,OACA,WACA,YACA,SACA,mBACA,WACA,OACA,cACA,SACA,WACA,cACA,QACA,UACA,UACA,SACA,SACA,4BACA,QACA,aACA,YACA,eACA,UACA,SACA,aACA,eACA,YACA,WACA,WACA,eACA,cACA,QACA,YACA,qBACA,WACA,aACA,YACA,QACA,WACA,YACA,SACA,cACA,QACA,SACA,aACA,WACA,WACA,eACA,OACA,QACA,sBACA,UACA,SACA,eACA,mBACA,SACA,UACA,uBACA,iBACA,UACA,aACA,YACA,UACA,sBACA,QACA,SACA,YC7MWC,EAAgB,CAAC,KAAM,MCAvBC,EAAgB,CAC3B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MCvLWC,EAAY,CACvB,iBACA,eACA,qBACA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,kBACA,qBACA,mBACA,eACA,oBACA,eACA,iBACA,eACA,uBACA,kBACA,gBACA,kBACA,kBACA,kBACA,gBACA,sBACA,cACA,iBACA,kBACA,gBACA,kBACA,eACA,oBACA,cACA,gBACA,oBACA,gBACA,gBACA,gBACA,gBACA,iBACA,mBACA,kBACA,iBACA,kBACA,gBACA,oBACA,qBACA,oBACA,kBACA,iBACA,eACA,kBACA,eACA,oBACA,mBACA,kBACA,oBACA,iCACA,8BACA,4BACA,0BACA,6BACA,4BACA,iCACA,0BACA,6BACA,6BACA,4BACA,4BACA,gBACA,mBACA,mBACA,gBACA,yBACA,mBACA,gBACA,iBACA,uBACA,oBACA,iBACA,gBACA,wBACA,uBACA,iBACA,kBACA,kBACA,iBACA,kBACA,oBACA,qBACA,kBACA,iBACA,kBACA,uBACA,iBACA,uBACA,iBACA,kBACA,mBACA,mBACA,mBACA,sBACA,sBACA,oBACA,oBACA,kBACA,oBACA,qBACA,kBACA,qBACA,oBACA,oBACA,iBACA,kBACA,iBACA,qBACA,+BACA,uBACA,0BACA,6BACA,4BACA,wBACA,4BACA,0BACA,iBACA,kBACA,kBACA,iBACA,8BACA,8BACA,qBACA,iBACA,eACA,sBACA,wBACA,iBACA,kBACA,iBACA,kBACA,qBACA,oBACA,mBACA,oBACA,iBACA,qBACA,sBACA,mBACA,kBACA,oBACA,qBACA,qBACA,iBACA,mBACA,kBACA,eACA,kBACA,8BACA,8BACA,iCACA,kBACA,iBACA,sBACA,qBACA,kBACA,yBACA,wBACA,sBACA,sBACA,sBACA,uBACA,iBACA,iBACA,mBACA,qBACA,uBACA,mBACA,mBACA,wBACA,oBACA,uBACA,gBACA,wBACA,mBACA,mBACA,mBACA,oBACA,qBACA,wBACA,sBACA,gBACA,sBACA,kBACA,kBACA,kBACA,oBACA,qBACA,mBACA,kBACA,sBACA,mBACA,mBACA,4BACA,uBACA,oBACA,qBACA,oBACA,qBACA,mBACA,mBACA,oBACA,sBACA,YACA,cACA,aACA,cACA,aACA,cACA,gBACA,eACA,eACA,YACA,eACA,cACA,eACA,cACA,aACA,kBACA,eACA,gBACA,aACA,YACA,aACA,gBACA,YACA,cACA,mBACA,iBACA,YACA,eACA,eACA,gBACA,iBACA,aACA,iBACA,eACA,iBACA,gBACA,eACA,mBACA,oBACA,eACA,cACA,aACA,eACA,gBACA,cACA,cACA,eACA,oBACA,mBACA,YACA,YACA,kBACA,iBACA,iBACA,aACA,iBACA,eACA,cACA,gBACA,iBACA,aACA,gBACA,iBACA,qBACA,cACA,gBACA,eACA,cACA,eACA,aACA,mBACA,cACA,gBACA,iBACA,mBACA,eACA,qBACA,eACA,kBACA,mBACA,kBACA,sBACA,iBACA,mBACA,qBACA,yBACA,qBACA,mBACA,qBACA,qBACA,wBACA,mBACA,mBACA,kBACA,mBACA,qBACA,sBACA,sBACA,kBACA,mBACA,mBACA,iBACA,gBACA,kBACA,gBACA,oBACA,kBACA,mBACA,kBACA,kBACA,kBACA,oBACA,gBACA,mBACA,kBACA,kBACA,qBACA,kBACA,gBACA,qBACA,cACA,gBACA,mBACA,gBACA,oBACA,gBACA,eACA,mBACA,eACA,gBACA,gBACA,cACA,eACA,mBACA,gBACA,cACA,cACA,gBACA,oBACA,kBACA,oBACA,gBACA,eACA,mBACA,iBACA,gBACA,kBACA,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,gBACA,oBACA,gBACA,sBACA,gBACA,mBACA,eACA,gBACA,mBACA,cACA,kBACA,mBACA,iBACA,iBACA,eACA,mBACA,uBACA,kBACA,gBACA,iBACA,gBACA,oBACA,kBACA,eACA,mBACA,oBACA,kBACA,sBACA,eACA,mBACA,mBACA,qBACA,iBACA,oBACA,iBACA,oBACA,iBACA,gBACA,eACA,kBACA,iBACA,oBACA,gBACA,mBACA,kBACA,uBACA,oBACA,iBACA,iBACA,iBACA,oBACA,eACA"}
1
+ {"version":3,"file":"index.mjs","sources":["../zod-config-builder/src//types.ts","../zod-config-builder/src//transformers/cloneNonEnumerableValues.ts","../zod-config-builder/src//utils/arrayHasInvalidDefaults.ts","../zod-config-builder/src//utils/collateObjectPropertyDefaults.ts","../zod-config-builder/src//utils/objectPropertyHasDefaults.ts","../zod-config-builder/src//utils/isPropertyReservedWord.ts","../zod-config-builder/src//utils/isValidPropertyDefinition.ts","../zod-config-builder/src//utils/recordHasInvalidDefaults.ts","../zod-config-builder/src//utils/isDerivedValueCallback.ts","../zod-config-builder/src//utils/isInvalidPropertyOverride.ts","../zod-config-builder/src//utils/isValidValue.ts","../zod-config-builder/src//utils/jsonStringifyReplacer.ts","../zod-config-builder/src//utils/transformConfig.ts","../zod-config-builder/src//createConfigBuilder.ts","../zod-config-builder/src//utils/isSchemaValid.ts","../zod-config-builder/src//utils/collateDefaultValues.ts","../zod-config-builder/src//createConfigParser.ts","../zod-config-builder/src//transformers/runExperiments.ts","../zod-config-builder/src//createConfigReader.ts","../zod-config-builder/src//data/countryCodes.ts","../zod-config-builder/src//data/countryNames.ts","../zod-config-builder/src//data/distanceUnits.ts","../zod-config-builder/src//data/languageCodes.ts","../zod-config-builder/src//data/timezones.ts"],"sourcesContent":["import { type List } from 'ts-toolbelt';\nimport { type Includes, type Join } from 'type-fest';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyRecord = Record<string, any>;\n\nexport type Buckets<Config extends AnyRecord> = Record<string, Experiment<Config>>;\n\nexport interface ConfigParserOptions {\n experimentsCallback?: RunExperimentsCallback;\n}\n\nexport interface Experiment<Config extends AnyRecord> {\n action?: TransformConfigHandlerAction;\n value?: Config;\n}\n\nexport enum NonEmumeralProperties {\n CALLBACKS = '__callbacks',\n DISABLED = '__disabled',\n EXPERIMENT = '__experiment',\n ID = '__id',\n TYPE = '__type',\n ZCB = '__zcb',\n}\n\nexport type Path<Config extends object> = Join<Leaves<Config>, '.'>;\n\nexport type RunExperimentsCallback = (id: string) => Promise<string>;\n\nexport type Scope<Config extends object> = Join<Paths<Config>, '.'>;\n\nexport type SetupExperimentsCallback = <Config extends AnyRecord>(\n id: string,\n clone: Config,\n config: Config,\n) => Promise<Buckets<Config>>;\n\nexport type TransformConfigHandler = <Config extends AnyRecord>(\n clone: Config,\n config: Config,\n) => TransformConfigHandlerReturnType<Config> | Promise<TransformConfigHandlerReturnType<Config>>;\n\nexport type TransformConfigHandlerSync = <Config extends AnyRecord>(\n clone: Config,\n config: Config,\n) => TransformConfigHandlerReturnType<Config>;\n\nexport enum TransformConfigHandlerAction {\n DELETE_NODE = 'deleteNode',\n SKIP_NODE = 'skipNode',\n}\n\nexport interface TransformConfigHandlerReturnType<Config extends AnyRecord> {\n action?: TransformConfigHandlerAction;\n value?: Config;\n}\n\nexport interface WriteConfigOptions {\n experimentsCallback?: SetupExperimentsCallback;\n outputFile: string;\n}\n\nexport type Leaves<T, LeafPath extends string[] = [], Depth extends number = 0> = T extends string\n ? LeafPath\n : Depth extends 15\n ? LeafPath\n : {\n [K in keyof T & string]: Leaves<T[K], [...LeafPath, K], LeafPath['length']>;\n }[keyof T & string];\n\nexport type Paths<T, LeafPath extends string[] = [], Depth extends number = 0> = T extends string\n ? LeafPath\n : Depth extends 15\n ? LeafPath\n : {\n [K in keyof T & string]: T[K] extends object ? Paths<T[K], [...LeafPath, K], LeafPath['length']> : LeafPath;\n }[keyof T & string];\n\nexport type LeavesScopeDiffs<T1 extends readonly string[][], T2 extends string[]> = {\n [K1 in keyof T1]: List.Length<List.Intersect<T1[K1], T2, '<-contains'>> extends 1\n ? List.Length<T1[K1]> extends 1\n ? Includes<T2, T1[K1][0]> extends false\n ? T1[K1]\n : never\n : List.Diff<T1[K1], T2>\n : never;\n}[number];\n","import { type AnyRecord, NonEmumeralProperties, type TransformConfigHandlerSync } from '../types.ts';\n\nconst NON_ENUMERABLE_KEYS = new Set(Object.values(NonEmumeralProperties));\n\nexport const cloneNonEnumerableValues: TransformConfigHandlerSync = <\n Config1 extends AnyRecord,\n Config2 extends AnyRecord,\n>(\n clone: Config1,\n config: Config2,\n) => {\n for (const nonEnumerableKey of NON_ENUMERABLE_KEYS) {\n if (nonEnumerableKey in config) {\n Object.defineProperty(clone, nonEnumerableKey, {\n configurable: false,\n enumerable: false,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n value: config[nonEnumerableKey],\n });\n }\n }\n\n return {\n value: clone,\n };\n};\n","import { type JSONSchema7 } from 'json-schema';\n\nexport const arrayHasInvalidDefaults = (propertyDefinition: JSONSchema7) => {\n const { items } = propertyDefinition;\n return items && typeof items === 'object' && 'default' in items;\n};\n","import { type JSONSchema7 } from 'json-schema';\nimport { isBoolean, isUndefined } from 'lodash-es';\nimport { type Jsonifiable } from 'type-fest';\nimport { objectPropertyHasDefaults } from './objectPropertyHasDefaults.ts';\n\nexport const collateObjectPropertyDefaults = (propertyDefinition: JSONSchema7) => {\n const { properties } = propertyDefinition;\n\n if (!properties || !objectPropertyHasDefaults(propertyDefinition)) {\n return;\n }\n\n return Object.keys(properties).reduce<Record<string, Jsonifiable>>((acc, key) => {\n const propertyDef = properties[key];\n\n if (!propertyDef || isBoolean(propertyDef)) {\n return acc;\n }\n\n if ('default' in propertyDef && !isUndefined(propertyDef.default)) {\n acc[key] = propertyDef.default;\n }\n\n return acc;\n }, {});\n};\n","import { type JSONSchema7 } from 'json-schema';\n\nexport const objectPropertyHasDefaults = (propertyDefinition: JSONSchema7) =>\n propertyDefinition.properties &&\n Object.values(propertyDefinition.properties).some(value => typeof value === 'object' && 'default' in value);\n","export const RESERVED_KEYWORDS = new Set([\n '$disable',\n '$errors',\n '$experiment',\n '$extend',\n '$flush',\n '$fork',\n '$toJson',\n '$validate',\n '$values',\n]);\n\nexport const isPropertyReservedWord = (propertyName: string) => RESERVED_KEYWORDS.has(propertyName);\n","import { type JSONSchema7, type JSONSchema7Definition } from 'json-schema';\n\nexport const isValidPropertyDefinition = (\n propertyDefinition: JSONSchema7Definition | undefined,\n): propertyDefinition is JSONSchema7 => typeof propertyDefinition === 'object';\n","import { type JSONSchema7 } from 'json-schema';\n\nexport const recordHasInvalidDefaults = (propertyDefinition: JSONSchema7) =>\n propertyDefinition.additionalProperties &&\n typeof propertyDefinition.additionalProperties === 'object' &&\n 'default' in propertyDefinition.additionalProperties;\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isDerivedValueCallback = <T extends (c: any) => any>(value: any): value is T =>\n typeof value === 'function';\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isInvalidPropertyOverride = (propertyValue: any, override = false) =>\n !override && propertyValue !== undefined;\n","import { isPlainObject } from 'lodash-es';\n\nexport const isValidValue = (value: unknown, depth = 0): boolean => {\n if (isPlainObject(value)) {\n // isPlainObject not a type guard.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const object = value as Record<string, unknown>;\n\n if (object.__zcb === true) {\n return true;\n }\n\n if (depth < 1 && Object.values(object).every(v => isValidValue(v, depth + 1))) {\n return true;\n }\n\n return false;\n }\n\n if (Array.isArray(value)) {\n if (value.every(v => isValidValue(v, depth + 1))) {\n return true;\n }\n\n return false;\n }\n\n return true;\n};\n","import { type Jsonifiable } from 'type-fest';\nimport { ZodType } from 'zod';\nimport { zodToJsonSchema } from 'zod-to-json-schema';\n\nexport const jsonStringifyReplacer = (_key: string, value: Jsonifiable) =>\n value instanceof ZodType ? zodToJsonSchema(value, { errorMessages: true }) : value;\n","import { castArray, isPlainObject } from 'lodash-es';\nimport {\n type AnyRecord,\n type TransformConfigHandler,\n TransformConfigHandlerAction,\n type TransformConfigHandlerSync,\n} from '../types.ts';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst transformArray = (list: any[], handler: TransformConfigHandler | TransformConfigHandler[]): Promise<any[]> =>\n Promise.all(\n list.map(entry => {\n if (isPlainObject(entry)) {\n return transformConfig(entry, handler);\n }\n\n if (Array.isArray(entry)) {\n return transformArray(entry, handler);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return entry;\n }),\n );\n\nexport const transformConfig = async <Config extends AnyRecord>(\n config: Config,\n handler: TransformConfigHandler | TransformConfigHandler[] = [],\n): Promise<Config> => {\n // Typing gets too complicated without casting.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n let transform = {} as Config;\n const handlers = castArray(handler);\n\n for (const callback of handlers) {\n const result = await Promise.resolve(callback(transform, config));\n\n if (result.action === TransformConfigHandlerAction.DELETE_NODE) {\n // Typing gets too complicated without casting.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return {} as Config;\n }\n\n if (result.value) {\n transform = result.value;\n }\n\n if (result.action === TransformConfigHandlerAction.SKIP_NODE) {\n return transform;\n }\n }\n\n for (const key in config) {\n const value = config[key];\n\n if (isPlainObject(value)) {\n transform[key] = await transformConfig(value, handler);\n } else if (Array.isArray(value)) {\n // transformArraySync returns an any type.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n transform[key] = (await transformArray(value, handler)) as Config[Extract<keyof Config, string>];\n } else {\n transform[key] = value;\n }\n }\n\n return transform;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst transformArraySync = (list: any[], handler: TransformConfigHandlerSync | TransformConfigHandlerSync[]): any[] =>\n list.map(entry => {\n if (isPlainObject(entry)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return transformConfigSync(entry, handler);\n }\n\n if (Array.isArray(entry)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return transformArraySync(entry, handler);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return entry;\n });\n\nexport const transformConfigSync = <Config extends AnyRecord>(\n config: Config,\n handler: TransformConfigHandlerSync | TransformConfigHandlerSync[] = [],\n): Config => {\n // Typing gets too complicated without casting.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n let transform = {} as Config;\n const handlers = castArray(handler);\n\n for (const callback of handlers) {\n const result = callback(transform, config);\n\n if (result.action === TransformConfigHandlerAction.DELETE_NODE) {\n // Typing gets too complicated without casting.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return {} as Config;\n }\n\n if (result.value) {\n transform = result.value;\n }\n\n if (result.action === TransformConfigHandlerAction.SKIP_NODE) {\n return transform;\n }\n }\n\n for (const key in config) {\n const value = config[key];\n\n if (isPlainObject(value)) {\n transform[key] = transformConfigSync(value, handler);\n } else if (Array.isArray(value)) {\n // transformArraySync returns an any type.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n transform[key] = transformArraySync(value, handler) as Config[Extract<keyof Config, string>];\n } else {\n transform[key] = value;\n }\n }\n\n return transform;\n};\n","import { type JSONSchema7 } from 'json-schema';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { v4 as uuidV4 } from 'uuid';\nimport { type ZodError, type z } from 'zod';\nimport { zodToJsonSchema } from 'zod-to-json-schema';\nimport { cloneNonEnumerableValues } from './transformers/cloneNonEnumerableValues.ts';\nimport { NonEmumeralProperties } from './types.ts';\nimport { collateDefaultValues } from './utils/collateDefaultValues.ts';\nimport { isDerivedValueCallback } from './utils/isDerivedValueCallback.ts';\nimport { isInvalidPropertyOverride } from './utils/isInvalidPropertyOverride.ts';\nimport { RESERVED_KEYWORDS, isPropertyReservedWord } from './utils/isPropertyReservedWord.ts';\nimport { isSchemaValid } from './utils/isSchemaValid.ts';\nimport { isValidValue } from './utils/isValidValue.ts';\nimport { jsonStringifyReplacer } from './utils/jsonStringifyReplacer.ts';\nimport { transformConfigSync } from './utils/transformConfig.ts';\n\nexport type ConfigBuilder<ZodTypes> = {\n [Key in keyof Required<ZodTypes>]: (\n value: ZodTypes[Key] | ((c: ZodTypes) => ZodTypes[Key]),\n override?: boolean,\n ) => ConfigBuilder<ZodTypes>;\n} & {\n $disable: () => ConfigBuilder<ZodTypes>;\n $errors: () => ZodError['errors'];\n $experiment: (key: string) => ConfigBuilder<ZodTypes>;\n $extend: (configBuilder: ConfigBuilder<ZodTypes>) => ConfigBuilder<ZodTypes>;\n $flush: () => ZodTypes;\n $fork: () => ConfigBuilder<ZodTypes>;\n $toJson: () => string;\n $validate: () => boolean;\n $values: () => ZodTypes;\n};\n\nexport type CreateConfigBuilderOptions = {\n overrides?: {\n uuid?: () => string;\n };\n type?: string;\n};\n\nexport const createConfigBuilder = <ZodTypes>(\n zodSchema: z.ZodSchema,\n options: CreateConfigBuilderOptions = {},\n derivedValueCallbacks: Partial<\n Record<\n keyof ZodTypes,\n (c: {\n [Key in keyof ZodTypes]: ZodTypes[Key];\n }) => ZodTypes[keyof ZodTypes]\n >\n > = {},\n initialValues: Partial<{\n [Key in keyof ZodTypes]: ZodTypes[Key];\n }> = {},\n): ConfigBuilder<ZodTypes> => {\n type Config = {\n [Key in keyof ZodTypes]: ZodTypes[Key];\n };\n\n type DerivedValueCallback<K extends keyof Config = keyof Config> = (c: Config) => Config[K];\n\n // Added to simplify type returned from zodToJsonSchema.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const jsonSchema = zodToJsonSchema(zodSchema) as JSONSchema7;\n\n if (isSchemaValid(jsonSchema)) {\n throw new Error(`The root type of a config schema must be \"object\", but received \"${String(jsonSchema.type)}\"`);\n }\n\n const uuid = options.overrides?.uuid ?? uuidV4;\n\n const addNonEnumeralBaseProperties = (conf: Config) => {\n Object.defineProperty(conf, NonEmumeralProperties.ZCB, {\n configurable: false,\n enumerable: false,\n value: true,\n });\n\n Object.defineProperty(conf, NonEmumeralProperties.ID, {\n configurable: false,\n enumerable: false,\n value: uuid(),\n });\n\n if (options.type) {\n Object.defineProperty(conf, NonEmumeralProperties.TYPE, {\n configurable: false,\n enumerable: false,\n value: options.type,\n });\n }\n };\n\n const createInitialConfig = () => {\n // Not casting here as loads of downstream impacts that make\n // subsequent typing really difficult.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const config = merge(cloneDeep(initialValues), collateDefaultValues(jsonSchema)) as Config;\n addNonEnumeralBaseProperties(config);\n return config;\n };\n\n let config = createInitialConfig();\n let callbacks: Partial<Record<keyof Config, DerivedValueCallback>> = { ...derivedValueCallbacks };\n\n // Aimed at making it easier for Typescript to derive type.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const configBuilder = {\n $disable: () => {\n Object.defineProperty(config, NonEmumeralProperties.DISABLED, {\n configurable: false,\n enumerable: false,\n value: true,\n });\n\n return configBuilder;\n },\n $errors: () => {\n try {\n zodSchema.parse(configBuilder.$values());\n return [];\n } catch (error: unknown) {\n // This will always be an instance of ZodError.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return (error as ZodError).errors;\n }\n },\n $experiment: (key: string) => {\n Object.defineProperty(config, NonEmumeralProperties.EXPERIMENT, {\n configurable: false,\n enumerable: false,\n value: key,\n });\n\n return configBuilder;\n },\n $extend: (builder: ConfigBuilder<Config>) => {\n config = transformConfigSync<Config>(builder.$values(), [cloneNonEnumerableValues]);\n // @ts-expect-error private property\n // As __callbacks is private property, Typescript doesn't know what type is.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n callbacks = { ...builder.__callbacks } as Partial<Record<keyof Config, DerivedValueCallback>>;\n },\n $flush: () => {\n const values = configBuilder.$values();\n config = createInitialConfig();\n return values;\n },\n $fork: () => createConfigBuilder<Config>(zodSchema, options, derivedValueCallbacks, initialValues),\n $toJson: () => JSON.stringify(configBuilder.$values(), jsonStringifyReplacer, 2),\n $validate: () => {\n try {\n zodSchema.parse(configBuilder.$values());\n return true;\n } catch (error: unknown) {\n console.error(error);\n return false;\n }\n },\n $values: () => {\n for (const property in callbacks) {\n const callback = callbacks[property];\n\n if (callback) {\n // Typescript not inferring property is key of Config.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n config[property as keyof Config] = callback(config);\n }\n }\n\n return config;\n },\n } as unknown as ConfigBuilder<ZodTypes>;\n\n Object.defineProperty(configBuilder, NonEmumeralProperties.CALLBACKS, {\n configurable: false,\n enumerable: false,\n value: callbacks,\n });\n\n for (const propertyName in jsonSchema.properties) {\n if (isPropertyReservedWord(propertyName)) {\n throw new Error(\n `\"${propertyName}\" is a reserved keyword within the config builder. Please use a different property name. The full list of reserved keywords is: ${[\n ...RESERVED_KEYWORDS,\n ].join(', ')}`,\n );\n }\n\n // Hard to derive jsonSchema.properties are all keys of Config.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const castPropertyName = propertyName as keyof Config;\n\n // Aimed at making it easier for Typescript to derive type.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n configBuilder[castPropertyName] = ((value: Config[keyof Config] | DerivedValueCallback, override?: boolean) => {\n if (isInvalidPropertyOverride(config[castPropertyName], override)) {\n throw new Error(\n `A value already exists for \"${String(\n castPropertyName,\n )}\". You may be trying to add a new values before flushing the old one. If you intended to override the existing value, pass in true as the second argument.`,\n );\n }\n\n let propertyValue: Config[keyof Config];\n const MAX_DEPTH = 1;\n\n if (!isValidValue(value)) {\n throw new Error(\n `\"${String(\n castPropertyName,\n )}\" value has a depth greater than ${String(MAX_DEPTH)}. To pass in objects with a depth greater than ${String(MAX_DEPTH)}, create a builder for that config slice.`,\n );\n }\n\n if (isDerivedValueCallback<DerivedValueCallback>(value)) {\n callbacks[castPropertyName] = value;\n propertyValue = value(config);\n } else {\n propertyValue = value;\n }\n\n config[castPropertyName] = propertyValue;\n return configBuilder;\n }) as ConfigBuilder<Config>[keyof Config];\n }\n\n return configBuilder;\n};\n","import { type JSONSchema7 } from 'json-schema';\n\nexport const isSchemaValid = (schema: JSONSchema7) => schema.type !== 'object';\n","import { type JSONSchema7 } from 'json-schema';\nimport { arrayHasInvalidDefaults } from './arrayHasInvalidDefaults.ts';\nimport { collateObjectPropertyDefaults } from './collateObjectPropertyDefaults.ts';\nimport { RESERVED_KEYWORDS, isPropertyReservedWord } from './isPropertyReservedWord.ts';\nimport { isValidPropertyDefinition } from './isValidPropertyDefinition.ts';\nimport { recordHasInvalidDefaults } from './recordHasInvalidDefaults.ts';\n\nexport const collateDefaultValues = <Config>(jsonSchema: JSONSchema7) => {\n const defaultValues: Partial<Config> = {};\n\n for (const propertyName in jsonSchema.properties) {\n if (isPropertyReservedWord(propertyName)) {\n throw new Error(\n `\"${propertyName}\" is a reserved keyword within the config builder. Please use a different property name. The full list of reserved keywords is: ${[\n ...RESERVED_KEYWORDS,\n ].join(', ')}`,\n );\n }\n\n // Typescript not inferring property is key of Config.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const castPropertyName = propertyName as keyof Config;\n const propertyDefinition = jsonSchema.properties[propertyName];\n\n if (isValidPropertyDefinition(propertyDefinition)) {\n if (propertyDefinition.default) {\n // Typescript not inferring propertyDefinition.default is Config value.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n defaultValues[castPropertyName] = propertyDefinition.default as Config[keyof Config];\n }\n\n if (propertyDefinition.type === 'array' && arrayHasInvalidDefaults(propertyDefinition)) {\n throw new Error(\n `When setting schema array defaults for the array assigned to \"${String(\n castPropertyName,\n )}\", set them on the array and not the item.`,\n );\n }\n\n if (propertyDefinition.type === 'object') {\n if (recordHasInvalidDefaults(propertyDefinition)) {\n throw new Error(\n `When setting schema property defaults for the value of the record assigned to \"${String(\n castPropertyName,\n )}\", set them on the record and not the value.`,\n );\n }\n\n const propertyDefaults = collateObjectPropertyDefaults(propertyDefinition);\n\n if (propertyDefaults) {\n // Typescript not inferring propertyDefaults is Config value.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n defaultValues[castPropertyName] = propertyDefaults as Config[keyof Config];\n }\n }\n }\n }\n\n return defaultValues;\n};\n","import { runExperiments } from './transformers/runExperiments.ts';\nimport { type ConfigParserOptions, type TransformConfigHandler } from './types.ts';\nimport { transformConfig } from './utils/transformConfig.ts';\n\nexport const createConfigParser = async <Config extends object>(\n config: Config,\n { experimentsCallback }: ConfigParserOptions = {},\n) => {\n const handlers: TransformConfigHandler[] = [];\n\n if (experimentsCallback) {\n handlers.push(runExperiments(experimentsCallback));\n }\n\n return handlers.length > 0 ? await transformConfig(config, handlers) : config;\n};\n","import {\n type AnyRecord,\n type Buckets,\n NonEmumeralProperties,\n type RunExperimentsCallback,\n type TransformConfigHandler,\n} from '../types.ts';\n\nexport const runExperiments =\n (callback: RunExperimentsCallback): TransformConfigHandler =>\n async <Config extends AnyRecord>(clone: Config, config: Config) => {\n if (NonEmumeralProperties.EXPERIMENT in config && typeof config.__experiment === 'object') {\n // As __experiment is private property, Typescript doesn't know what type is.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const { buckets, id } = config.__experiment as { buckets: Buckets<Config>; id: string };\n const bucket = await callback(id);\n\n if (bucket && bucket in buckets && buckets[bucket]) {\n return buckets[bucket];\n }\n }\n\n return {\n value: clone,\n };\n };\n","import { get, isString } from 'lodash-es';\nimport { type Get } from 'type-fest';\nimport { type Path, type Scope } from './types.ts';\n\nexport interface ConfigReader<Config extends object> {\n read: <P extends Path<Config>>(path: P, variables?: Record<string, string | number>) => Get<Config, P>;\n scope: <S extends Scope<Config>>(scope: S) => ConfigReader<Get<Config, S>>;\n}\n\nexport const createConfigReader = <Config extends object>(config: Config): ConfigReader<Config> => {\n // Aimed at reducing the amount of work for typescript to resolve type.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const configReader = {\n read: <P extends Path<Config>>(path: P, variables?: Record<string, string | number>) => {\n if (!variables) {\n return get(config, path);\n }\n\n const output = get(config, path);\n\n if (!isString(output)) {\n throw new Error(\n 'config reader received variables to use in string template, but the path did not resolve to a string.',\n );\n }\n\n return Object.keys(variables).reduce<string>((acc, key) => {\n return acc.replace(new RegExp(`{{${key}}}`), String(variables[key]));\n }, output);\n },\n // Aimed at reducing the amount of work for typescript to resolve type.\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n scope: <S extends Scope<Config>>(scope: S) => createConfigReader(get(config, scope) as Get<Config, S>),\n } as ConfigReader<Config>;\n\n return configReader;\n};\n","export const countryCodes = [\n 'AF',\n 'AX',\n 'AL',\n 'DZ',\n 'AS',\n 'AD',\n 'AO',\n 'AI',\n 'AQ',\n 'AG',\n 'AR',\n 'AM',\n 'AW',\n 'AU',\n 'AT',\n 'AZ',\n 'BS',\n 'BH',\n 'BD',\n 'BB',\n 'BY',\n 'BE',\n 'BZ',\n 'BJ',\n 'BM',\n 'BT',\n 'BO',\n 'BA',\n 'BW',\n 'BV',\n 'BR',\n 'IO',\n 'BN',\n 'BG',\n 'BF',\n 'BI',\n 'KH',\n 'CM',\n 'CA',\n 'CV',\n 'KY',\n 'CF',\n 'TD',\n 'CL',\n 'CN',\n 'CX',\n 'CC',\n 'CO',\n 'KM',\n 'CG',\n 'CD',\n 'CK',\n 'CR',\n 'CI',\n 'HR',\n 'CU',\n 'CY',\n 'CZ',\n 'DK',\n 'DJ',\n 'DM',\n 'DO',\n 'EC',\n 'EG',\n 'SV',\n 'GQ',\n 'ER',\n 'EE',\n 'ET',\n 'FK',\n 'FO',\n 'FJ',\n 'FI',\n 'FR',\n 'GF',\n 'PF',\n 'TF',\n 'GA',\n 'GM',\n 'GE',\n 'DE',\n 'GH',\n 'GI',\n 'GR',\n 'GL',\n 'GD',\n 'GP',\n 'GU',\n 'GT',\n 'GG',\n 'GN',\n 'GW',\n 'GY',\n 'HT',\n 'HM',\n 'VA',\n 'HN',\n 'HK',\n 'HU',\n 'IS',\n 'IN',\n 'ID',\n 'IR',\n 'IQ',\n 'IE',\n 'IM',\n 'IL',\n 'IT',\n 'JM',\n 'JP',\n 'JE',\n 'JO',\n 'KZ',\n 'KE',\n 'KI',\n 'KR',\n 'KW',\n 'KG',\n 'LA',\n 'LV',\n 'LB',\n 'LS',\n 'LR',\n 'LY',\n 'LI',\n 'LT',\n 'LU',\n 'MO',\n 'MK',\n 'MG',\n 'MW',\n 'MY',\n 'MV',\n 'ML',\n 'MT',\n 'MH',\n 'MQ',\n 'MR',\n 'MU',\n 'YT',\n 'MX',\n 'FM',\n 'MD',\n 'MC',\n 'MN',\n 'ME',\n 'MS',\n 'MA',\n 'MZ',\n 'MM',\n 'NA',\n 'NR',\n 'NP',\n 'NL',\n 'AN',\n 'NC',\n 'NZ',\n 'NI',\n 'NE',\n 'NG',\n 'NU',\n 'NF',\n 'MP',\n 'NO',\n 'OM',\n 'PK',\n 'PW',\n 'PS',\n 'PA',\n 'PG',\n 'PY',\n 'PE',\n 'PH',\n 'PN',\n 'PL',\n 'PT',\n 'PR',\n 'QA',\n 'RE',\n 'RO',\n 'RU',\n 'RW',\n 'BL',\n 'SH',\n 'KN',\n 'LC',\n 'MF',\n 'PM',\n 'VC',\n 'WS',\n 'SM',\n 'ST',\n 'SA',\n 'SN',\n 'RS',\n 'SC',\n 'SL',\n 'SG',\n 'SK',\n 'SI',\n 'SB',\n 'SO',\n 'ZA',\n 'GS',\n 'ES',\n 'LK',\n 'SD',\n 'SR',\n 'SJ',\n 'SZ',\n 'SE',\n 'CH',\n 'SY',\n 'TW',\n 'TJ',\n 'TZ',\n 'TH',\n 'TL',\n 'TG',\n 'TK',\n 'TO',\n 'TT',\n 'TN',\n 'TR',\n 'TM',\n 'TC',\n 'TV',\n 'UG',\n 'UA',\n 'AE',\n 'GB',\n 'US',\n 'UM',\n 'UY',\n 'UZ',\n 'VU',\n 'VE',\n 'VN',\n 'VG',\n 'VI',\n 'WF',\n 'EH',\n 'YE',\n 'ZM',\n 'ZW',\n] as const;\n","export const countryNames = [\n 'Afghanistan',\n 'Albania',\n 'Algeria',\n 'Andorra',\n 'Angola',\n 'Anguilla',\n 'Antigua and Barbuda',\n 'Argentina',\n 'Armenia',\n 'Aruba',\n 'Australia',\n 'Austria',\n 'Azerbaijan',\n 'Bahamas',\n 'Bahrain',\n 'Bangladesh',\n 'Barbados',\n 'Belarus',\n 'Belgium',\n 'Belize',\n 'Benin',\n 'Bermuda',\n 'Bhutan',\n 'Bolivia',\n 'Bosnia and Herzegovina',\n 'Botswana',\n 'Brazil',\n 'British Virgin Islands',\n 'Brunei',\n 'Bulgaria',\n 'Burkina Faso',\n 'Burundi',\n 'Cambodia',\n 'Cameroon',\n 'Cape Verde',\n 'Cayman Islands',\n 'Chad',\n 'Chile',\n 'China',\n 'Colombia',\n 'Congo',\n 'Cook Islands',\n 'Costa Rica',\n 'Cote D Ivoire',\n 'Croatia',\n 'Cruise Ship',\n 'Cuba',\n 'Cyprus',\n 'Czech Republic',\n 'Denmark',\n 'Djibouti',\n 'Dominica',\n 'Dominican Republic',\n 'Ecuador',\n 'Egypt',\n 'El Salvador',\n 'Equatorial Guinea',\n 'Estonia',\n 'Ethiopia',\n 'Falkland Islands',\n 'Faroe Islands',\n 'Fiji',\n 'Finland',\n 'France',\n 'French Polynesia',\n 'French West Indies',\n 'Gabon',\n 'Gambia',\n 'Georgia',\n 'Germany',\n 'Ghana',\n 'Gibraltar',\n 'Greece',\n 'Greenland',\n 'Grenada',\n 'Guam',\n 'Guatemala',\n 'Guernsey',\n 'Guinea',\n 'Guinea Bissau',\n 'Guyana',\n 'Haiti',\n 'Honduras',\n 'Hong Kong',\n 'Hungary',\n 'Iceland',\n 'India',\n 'Indonesia',\n 'Iran',\n 'Iraq',\n 'Ireland',\n 'Isle of Man',\n 'Israel',\n 'Italy',\n 'Jamaica',\n 'Japan',\n 'Jersey',\n 'Jordan',\n 'Kazakhstan',\n 'Kenya',\n 'Kuwait',\n 'Kyrgyz Republic',\n 'Laos',\n 'Latvia',\n 'Lebanon',\n 'Lesotho',\n 'Liberia',\n 'Libya',\n 'Liechtenstein',\n 'Lithuania',\n 'Luxembourg',\n 'Macau',\n 'Macedonia',\n 'Madagascar',\n 'Malawi',\n 'Malaysia',\n 'Maldives',\n 'Mali',\n 'Malta',\n 'Mauritania',\n 'Mauritius',\n 'Mexico',\n 'Moldova',\n 'Monaco',\n 'Mongolia',\n 'Montenegro',\n 'Montserrat',\n 'Morocco',\n 'Mozambique',\n 'Namibia',\n 'Nepal',\n 'Netherlands',\n 'Netherlands Antilles',\n 'New Caledonia',\n 'New Zealand',\n 'Nicaragua',\n 'Niger',\n 'Nigeria',\n 'Norway',\n 'Oman',\n 'Pakistan',\n 'Palestine',\n 'Panama',\n 'Papua New Guinea',\n 'Paraguay',\n 'Peru',\n 'Philippines',\n 'Poland',\n 'Portugal',\n 'Puerto Rico',\n 'Qatar',\n 'Reunion',\n 'Romania',\n 'Russia',\n 'Rwanda',\n 'Saint Pierre and Miquelon',\n 'Samoa',\n 'San Marino',\n 'Satellite',\n 'Saudi Arabia',\n 'Senegal',\n 'Serbia',\n 'Seychelles',\n 'Sierra Leone',\n 'Singapore',\n 'Slovakia',\n 'Slovenia',\n 'South Africa',\n 'South Korea',\n 'Spain',\n 'Sri Lanka',\n 'St Kitts and Nevis',\n 'St Lucia',\n 'St Vincent',\n 'St. Lucia',\n 'Sudan',\n 'Suriname',\n 'Swaziland',\n 'Sweden',\n 'Switzerland',\n 'Syria',\n 'Taiwan',\n 'Tajikistan',\n 'Tanzania',\n 'Thailand',\n \"Timor L'Este\",\n 'Togo',\n 'Tonga',\n 'Trinidad and Tobago',\n 'Tunisia',\n 'Turkey',\n 'Turkmenistan',\n 'Turks and Caicos',\n 'Uganda',\n 'Ukraine',\n 'United Arab Emirates',\n 'United Kingdom',\n 'Uruguay',\n 'Uzbekistan',\n 'Venezuela',\n 'Vietnam',\n 'Virgin Islands (US)',\n 'Yemen',\n 'Zambia',\n 'Zimbabwe',\n] as const;\n","export const distanceUnits = ['km', 'mi'] as const;\n","export const languageCodes = [\n 'aa',\n 'ab',\n 'ae',\n 'af',\n 'ak',\n 'am',\n 'an',\n 'ar',\n 'as',\n 'av',\n 'ay',\n 'az',\n 'ba',\n 'be',\n 'bg',\n 'bi',\n 'bm',\n 'bn',\n 'bo',\n 'br',\n 'bs',\n 'ca',\n 'ce',\n 'ch',\n 'co',\n 'cr',\n 'cs',\n 'cu',\n 'cv',\n 'cy',\n 'da',\n 'de',\n 'dv',\n 'dz',\n 'ee',\n 'el',\n 'en',\n 'eo',\n 'es',\n 'et',\n 'eu',\n 'fa',\n 'ff',\n 'fi',\n 'fj',\n 'fo',\n 'fr',\n 'fy',\n 'ga',\n 'gd',\n 'gl',\n 'gn',\n 'gu',\n 'gv',\n 'ha',\n 'he',\n 'hi',\n 'ho',\n 'hr',\n 'ht',\n 'hu',\n 'hy',\n 'hz',\n 'ia',\n 'id',\n 'ie',\n 'ig',\n 'ii',\n 'ik',\n 'io',\n 'is',\n 'it',\n 'iu',\n 'ja',\n 'jv',\n 'ka',\n 'kg',\n 'ki',\n 'kj',\n 'kk',\n 'kl',\n 'km',\n 'kn',\n 'ko',\n 'kr',\n 'ks',\n 'ku',\n 'kv',\n 'kw',\n 'ky',\n 'la',\n 'lb',\n 'lg',\n 'li',\n 'ln',\n 'lo',\n 'lt',\n 'lu',\n 'lv',\n 'mg',\n 'mh',\n 'mi',\n 'mk',\n 'ml',\n 'mn',\n 'mr',\n 'ms',\n 'mt',\n 'my',\n 'na',\n 'nb',\n 'nd',\n 'ne',\n 'ng',\n 'nl',\n 'nn',\n 'no',\n 'nr',\n 'nv',\n 'ny',\n 'oc',\n 'oj',\n 'om',\n 'or',\n 'os',\n 'pa',\n 'pi',\n 'pl',\n 'ps',\n 'pt',\n 'qu',\n 'rm',\n 'rn',\n 'ro',\n 'ru',\n 'rw',\n 'sa',\n 'sc',\n 'sd',\n 'se',\n 'sg',\n 'si',\n 'sk',\n 'sl',\n 'sm',\n 'sn',\n 'so',\n 'sq',\n 'sr',\n 'ss',\n 'st',\n 'su',\n 'sv',\n 'sw',\n 'ta',\n 'te',\n 'tg',\n 'th',\n 'ti',\n 'tk',\n 'tl',\n 'tn',\n 'to',\n 'tr',\n 'ts',\n 'tt',\n 'tw',\n 'ty',\n 'ug',\n 'uk',\n 'ur',\n 'uz',\n 've',\n 'vi',\n 'vo',\n 'wa',\n 'wo',\n 'xh',\n 'yi',\n 'yo',\n 'za',\n 'zh',\n 'zu',\n] as const;\n","export const timezones = [\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Addis_Ababa',\n 'Africa/Algiers',\n 'Africa/Asmara',\n 'Africa/Bamako',\n 'Africa/Bangui',\n 'Africa/Banjul',\n 'Africa/Bissau',\n 'Africa/Blantyre',\n 'Africa/Brazzaville',\n 'Africa/Bujumbura',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/Conakry',\n 'Africa/Dakar',\n 'Africa/Dar_es_Salaam',\n 'Africa/Djibouti',\n 'Africa/Douala',\n 'Africa/El_Aaiun',\n 'Africa/Freetown',\n 'Africa/Gaborone',\n 'Africa/Harare',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Kampala',\n 'Africa/Khartoum',\n 'Africa/Kigali',\n 'Africa/Kinshasa',\n 'Africa/Lagos',\n 'Africa/Libreville',\n 'Africa/Lome',\n 'Africa/Luanda',\n 'Africa/Lubumbashi',\n 'Africa/Lusaka',\n 'Africa/Malabo',\n 'Africa/Maputo',\n 'Africa/Maseru',\n 'Africa/Mbabane',\n 'Africa/Mogadishu',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Niamey',\n 'Africa/Nouakchott',\n 'Africa/Ouagadougou',\n 'Africa/Porto-Novo',\n 'Africa/Sao_Tome',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Anguilla',\n 'America/Antigua',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Aruba',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Cayenne',\n 'America/Cayman',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Dominica',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Fort_Nelson',\n 'America/Fortaleza',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Grenada',\n 'America/Guadeloupe',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/Kralendijk',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Lower_Princes',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Marigot',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Montserrat',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port-au-Prince',\n 'America/Port_of_Spain',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Santa_Isabel',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Sitka',\n 'America/St_Barthelemy',\n 'America/St_Johns',\n 'America/St_Kitts',\n 'America/St_Lucia',\n 'America/St_Thomas',\n 'America/St_Vincent',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Tortola',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/McMurdo',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Arctic/Longyearbyen',\n 'Asia/Aden',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Baghdad',\n 'Asia/Bahrain',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Colombo',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kathmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Kuwait',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Muscat',\n 'Asia/Nicosia',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Phnom_Penh',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qyzylorda',\n 'Asia/Rangoon',\n 'Asia/Riyadh',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Ulaanbaatar',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vientiane',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faroe',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/St_Helena',\n 'Atlantic/Stanley',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Bratislava',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Busingen',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Guernsey',\n 'Europe/Helsinki',\n 'Europe/Isle_of_Man',\n 'Europe/Istanbul',\n 'Europe/Jersey',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Lisbon',\n 'Europe/Ljubljana',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Mariehamn',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Podgorica',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/San_Marino',\n 'Europe/Sarajevo',\n 'Europe/Simferopol',\n 'Europe/Skopje',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Uzhgorod',\n 'Europe/Vaduz',\n 'Europe/Vatican',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zagreb',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'Indian/Antananarivo',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Comoro',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Mayotte',\n 'Indian/Reunion',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Johnston',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Midway',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Saipan',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n] as const;\n"],"names":["NonEmumeralProperties","TransformConfigHandlerAction","NON_ENUMERABLE_KEYS","Set","Object","values","cloneNonEnumerableValues","clone","config","nonEnumerableKey","defineProperty","configurable","enumerable","value","arrayHasInvalidDefaults","propertyDefinition","items","collateObjectPropertyDefaults","properties","some","objectPropertyHasDefaults","keys","reduce","acc","key","propertyDef","isBoolean","isUndefined","default","RESERVED_KEYWORDS","isPropertyReservedWord","propertyName","has","isValidPropertyDefinition","recordHasInvalidDefaults","additionalProperties","isDerivedValueCallback","isInvalidPropertyOverride","propertyValue","override","undefined","isValidValue","depth","isPlainObject","object","__zcb","every","v","Array","isArray","jsonStringifyReplacer","_key","ZodType","zodToJsonSchema","errorMessages","transformArray","list","handler","Promise","all","map","entry","transformConfig","async","transform","handlers","castArray","callback","result","resolve","action","DELETE_NODE","SKIP_NODE","transformArraySync","transformConfigSync","createConfigBuilder","zodSchema","options","derivedValueCallbacks","initialValues","jsonSchema","type","Error","String","uuid","overrides","uuidV4","createInitialConfig","merge","cloneDeep","defaultValues","join","castPropertyName","propertyDefaults","collateDefaultValues","conf","ZCB","ID","TYPE","callbacks","configBuilder","$disable","DISABLED","$errors","parse","$values","error","errors","$experiment","EXPERIMENT","$extend","builder","__callbacks","$flush","$fork","$toJson","JSON","stringify","$validate","console","property","CALLBACKS","createConfigParser","experimentsCallback","push","__experiment","buckets","id","bucket","length","createConfigReader","read","path","variables","get","output","isString","replace","RegExp","scope","countryCodes","countryNames","distanceUnits","languageCodes","timezones"],"mappings":"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CA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MCrPWC,EAAe,CAC1B,cACA,UACA,UACA,UACA,SACA,WACA,sBACA,YACA,UACA,QACA,YACA,UACA,aACA,UACA,UACA,aACA,WACA,UACA,UACA,SACA,QACA,UACA,SACA,UACA,yBACA,WACA,SACA,yBACA,SACA,WACA,eACA,UACA,WACA,WACA,aACA,iBACA,OACA,QACA,QACA,WACA,QACA,eACA,aACA,gBACA,UACA,cACA,OACA,SACA,iBACA,UACA,WACA,WACA,qBACA,UACA,QACA,cACA,oBACA,UACA,WACA,mBACA,gBACA,OACA,UACA,SACA,mBACA,qBACA,QACA,SACA,UACA,UACA,QACA,YACA,SACA,YACA,UACA,OACA,YACA,WACA,SACA,gBACA,SACA,QACA,WACA,YACA,UACA,UACA,QACA,YACA,OACA,OACA,UACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aACA,QACA,SACA,kBACA,OACA,SACA,UACA,UACA,UACA,QACA,gBACA,YACA,aACA,QACA,YACA,aACA,SACA,WACA,WACA,OACA,QACA,aACA,YACA,SACA,UACA,SACA,WACA,aACA,aACA,UACA,aACA,UACA,QACA,cACA,uBACA,gBACA,cACA,YACA,QACA,UACA,SACA,OACA,WACA,YACA,SACA,mBACA,WACA,OACA,cACA,SACA,WACA,cACA,QACA,UACA,UACA,SACA,SACA,4BACA,QACA,aACA,YACA,eACA,UACA,SACA,aACA,eACA,YACA,WACA,WACA,eACA,cACA,QACA,YACA,qBACA,WACA,aACA,YACA,QACA,WACA,YACA,SACA,cACA,QACA,SACA,aACA,WACA,WACA,eACA,OACA,QACA,sBACA,UACA,SACA,eACA,mBACA,SACA,UACA,uBACA,iBACA,UACA,aACA,YACA,UACA,sBACA,QACA,SACA,YC7MWC,EAAgB,CAAC,KAAM,MCAvBC,EAAgB,CAC3B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MCvLWC,EAAY,CACvB,iBACA,eACA,qBACA,iBACA,gBACA,gBACA,gBACA,gBACA,gBACA,kBACA,qBACA,mBACA,eACA,oBACA,eACA,iBACA,eACA,uBACA,kBACA,gBACA,kBACA,kBACA,kBACA,gBACA,sBACA,cACA,iBACA,kBACA,gBACA,kBACA,eACA,oBACA,cACA,gBACA,oBACA,gBACA,gBACA,gBACA,gBACA,iBACA,mBACA,kBACA,iBACA,kBACA,gBACA,oBACA,qBACA,oBACA,kBACA,iBACA,eACA,kBACA,eACA,oBACA,mBACA,kBACA,oBACA,iCACA,8BACA,4BACA,0BACA,6BACA,4BACA,iCACA,0BACA,6BACA,6BACA,4BACA,4BACA,gBACA,mBACA,mBACA,gBACA,yBACA,mBACA,gBACA,iBACA,uBACA,oBACA,iBACA,gBACA,wBACA,uBACA,iBACA,kBACA,kBACA,iBACA,kBACA,oBACA,qBACA,kBACA,iBACA,kBACA,uBACA,iBACA,uBACA,iBACA,kBACA,mBACA,mBACA,mBACA,sBACA,sBACA,oBACA,oBACA,kBACA,oBACA,qBACA,kBACA,qBACA,oBACA,oBACA,iBACA,kBACA,iBACA,qBACA,+BACA,uBACA,0BACA,6BACA,4BACA,wBACA,4BACA,0BACA,iBACA,kBACA,kBACA,iBACA,8BACA,8BACA,qBACA,iBACA,eACA,sBACA,wBACA,iBACA,kBACA,iBACA,kBACA,qBACA,oBACA,mBACA,oBACA,iBACA,qBACA,sBACA,mBACA,kBACA,oBACA,qBACA,qBACA,iBACA,mBACA,kBACA,eACA,kBACA,8BACA,8BACA,iCACA,kBACA,iBACA,sBACA,qBACA,kBACA,yBACA,wBACA,sBACA,sBACA,sBACA,uBACA,iBACA,iBACA,mBACA,qBACA,uBACA,mBACA,mBACA,wBACA,oBACA,uBACA,gBACA,wBACA,mBACA,mBACA,mBACA,oBACA,qBACA,wBACA,sBACA,gBACA,sBACA,kBACA,kBACA,kBACA,oBACA,qBACA,mBACA,kBACA,sBACA,mBACA,mBACA,4BACA,uBACA,oBACA,qBACA,oBACA,qBACA,mBACA,mBACA,oBACA,sBACA,YACA,cACA,aACA,cACA,aACA,cACA,gBACA,eACA,eACA,YACA,eACA,cACA,eACA,cACA,aACA,kBACA,eACA,gBACA,aACA,YACA,aACA,gBACA,YACA,cACA,mBACA,iBACA,YACA,eACA,eACA,gBACA,iBACA,aACA,iBACA,eACA,iBACA,gBACA,eACA,mBACA,oBACA,eACA,cACA,aACA,eACA,gBACA,cACA,cACA,eACA,oBACA,mBACA,YACA,YACA,kBACA,iBACA,iBACA,aACA,iBACA,eACA,cACA,gBACA,iBACA,aACA,gBACA,iBACA,qBACA,cACA,gBACA,eACA,cACA,eACA,aACA,mBACA,cACA,gBACA,iBACA,mBACA,eACA,qBACA,eACA,kBACA,mBACA,kBACA,sBACA,iBACA,mBACA,qBACA,yBACA,qBACA,mBACA,qBACA,qBACA,wBACA,mBACA,mBACA,kBACA,mBACA,qBACA,sBACA,sBACA,kBACA,mBACA,mBACA,iBACA,gBACA,kBACA,gBACA,oBACA,kBACA,mBACA,kBACA,kBACA,kBACA,oBACA,gBACA,mBACA,kBACA,kBACA,qBACA,kBACA,gBACA,qBACA,cACA,gBACA,mBACA,gBACA,oBACA,gBACA,eACA,mBACA,eACA,gBACA,gBACA,cACA,eACA,mBACA,gBACA,cACA,cACA,gBACA,oBACA,kBACA,oBACA,gBACA,eACA,mBACA,iBACA,gBACA,kBACA,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,gBACA,oBACA,gBACA,sBACA,gBACA,mBACA,eACA,gBACA,mBACA,cACA,kBACA,mBACA,iBACA,iBACA,eACA,mBACA,uBACA,kBACA,gBACA,iBACA,gBACA,oBACA,kBACA,eACA,mBACA,oBACA,kBACA,sBACA,eACA,mBACA,mBACA,qBACA,iBACA,oBACA,iBACA,oBACA,iBACA,gBACA,eACA,kBACA,iBACA,oBACA,gBACA,mBACA,kBACA,uBACA,oBACA,iBACA,iBACA,iBACA,oBACA,eACA"}
@@ -1,49 +1,49 @@
1
1
  -----------------------------
2
2
  Rollup File Analysis
3
3
  -----------------------------
4
- bundle size: 7.5 KB
4
+ bundle size: 7.858 KB
5
5
  original size: 13.621 KB
6
- code reduction: 44.94 %
6
+ code reduction: 42.31 %
7
7
  module count: 7
8
8
 
9
9
  ███████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
10
10
  file: /src/utils/transformConfig.ts
11
- bundle space: 23.43 %
12
- rendered size: 1.757 KB
11
+ bundle space: 22.7 %
12
+ rendered size: 1.784 KB
13
13
  original size: 4.068 KB
14
- code reduction: 56.81 %
14
+ code reduction: 56.15 %
15
15
  dependents: 1
16
16
  - /src/utils/transformWriteConfig.ts
17
17
 
18
18
  ███████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
19
19
  file: /src/cli.ts
20
- bundle space: 23.41 %
21
- rendered size: 1.756 KB
20
+ bundle space: 22.68 %
21
+ rendered size: 1.782 KB
22
22
  original size: 2.304 KB
23
- code reduction: 23.78 %
23
+ code reduction: 22.66 %
24
24
  dependents: 0
25
25
 
26
26
  ███████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
27
27
  file: /src/utils/importValidateTransformWriteConfig.ts
28
- bundle space: 23.37 %
29
- rendered size: 1.753 KB
28
+ bundle space: 22.56 %
29
+ rendered size: 1.773 KB
30
30
  original size: 2.071 KB
31
- code reduction: 15.35 %
31
+ code reduction: 14.39 %
32
32
  dependents: 1
33
33
  - /src/cli.ts
34
34
 
35
- █████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
35
+ ██████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
36
36
  file: /src/utils/transformWriteConfig.ts
37
- bundle space: 10.36 %
38
- rendered size: 777 Bytes
37
+ bundle space: 13.51 %
38
+ rendered size: 1.062 KB
39
39
  original size: 1.375 KB
40
- code reduction: 43.49 %
40
+ code reduction: 22.76 %
41
41
  dependents: 1
42
42
  - /src/utils/importValidateTransformWriteConfig.ts
43
43
 
44
44
  ████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
45
45
  file: /src/types.ts
46
- bundle space: 9.04 %
46
+ bundle space: 8.63 %
47
47
  rendered size: 678 Bytes
48
48
  original size: 2.649 KB
49
49
  code reduction: 74.41 %
@@ -54,7 +54,7 @@ dependents: 3
54
54
 
55
55
  ███░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
56
56
  file: /src/transformers/setupExperiments.ts
57
- bundle space: 7.21 %
57
+ bundle space: 6.88 %
58
58
  rendered size: 541 Bytes
59
59
  original size: 710 Bytes
60
60
  code reduction: 23.8 %
@@ -63,7 +63,7 @@ dependents: 1
63
63
 
64
64
  █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
65
65
  file: /src/transformers/removeDisabledSlices.ts
66
- bundle space: 3.17 %
66
+ bundle space: 3.03 %
67
67
  rendered size: 238 Bytes
68
68
  original size: 444 Bytes
69
69
  code reduction: 46.4 %
@@ -1,10 +1,7 @@
1
1
  import { type Get } from 'type-fest';
2
2
  import { type Path, type Scope } from './types.cts';
3
- export type ReadOptions = {
4
- vars?: Record<string, string | number>;
5
- };
6
3
  export interface ConfigReader<Config extends object> {
7
- read: <P extends Path<Config>>(path: P, options?: ReadOptions) => Get<Config, P>;
4
+ read: <P extends Path<Config>>(path: P, variables?: Record<string, string | number>) => Get<Config, P>;
8
5
  scope: <S extends Scope<Config>>(scope: S) => ConfigReader<Get<Config, S>>;
9
6
  }
10
7
  export declare const createConfigReader: <Config extends object>(config: Config) => ConfigReader<Config>;
@@ -1 +1 @@
1
- {"version":3,"file":"createConfigReader.d.cts","sourceRoot":"","sources":["../../../src/createConfigReader.cts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,WAAW,YAAY,CAAC,MAAM,SAAS,MAAM;IACjD,IAAI,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjF,KAAK,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;CAC5E;AAED,eAAO,MAAM,kBAAkB,GAAI,MAAM,SAAS,MAAM,UAAU,MAAM,KAAG,YAAY,CAAC,MAAM,CA2B7F,CAAC"}
1
+ {"version":3,"file":"createConfigReader.d.cts","sourceRoot":"","sources":["../../../src/createConfigReader.cts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,YAAY,CAAC,MAAM,SAAS,MAAM;IACjD,IAAI,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvG,KAAK,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;CAC5E;AAED,eAAO,MAAM,kBAAkB,GAAI,MAAM,SAAS,MAAM,UAAU,MAAM,KAAG,YAAY,CAAC,MAAM,CA2B7F,CAAC"}