UNPKG

clickhouse-mcp-server

Version:

A Model Context Protocol (MCP) server for ClickHouse database interactions

1 lines 130 kB
exports.id=570,exports.ids=[570],exports.modules={56:e=>{"use strict";e.exports=JSON.parse('{"name":"dotenv","version":"17.2.2","description":"Loads environment variables from .env file","main":"lib/main.js","types":"lib/main.d.ts","exports":{".":{"types":"./lib/main.d.ts","require":"./lib/main.js","default":"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},"scripts":{"dts-check":"tsc --project tests/types/tsconfig.json","lint":"standard","pretest":"npm run lint && npm run dts-check","test":"tap run --allow-empty-coverage --disable-coverage --timeout=60000","test:coverage":"tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov","prerelease":"npm test","release":"standard-version"},"repository":{"type":"git","url":"git://github.com/motdotla/dotenv.git"},"homepage":"https://github.com/motdotla/dotenv#readme","funding":"https://dotenvx.com","keywords":["dotenv","env",".env","environment","variables","config","settings"],"readmeFilename":"README.md","license":"BSD-2-Clause","devDependencies":{"@types/node":"^18.11.3","decache":"^4.6.2","sinon":"^14.0.1","standard":"^17.0.0","standard-version":"^9.5.0","tap":"^19.2.0","typescript":"^4.8.4"},"engines":{"node":">=12"},"browser":{"fs":false}}')},507:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decompressResponse=function(e,t){const r=e.headers["content-encoding"];return"gzip"===r?{response:s.default.pipeline(e,a.default.createGunzip(),function(e){e&&t.error({message:"An error occurred while decompressing the response",err:e})})}:void 0!==r?{error:new Error(`Unexpected encoding: ${r}`)}:{response:e}},t.isDecompressionError=function(e){return void 0!==e.error};const s=n(r(6272)),a=n(r(3925))},576:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isProgressRow=function(e){return null!==e&&"object"==typeof e&&"progress"in e&&1===Object.keys(e).length},t.isRow=function(e){return null!==e&&"object"==typeof e&&"row"in e&&1===Object.keys(e).length},t.isException=function(e){return null!==e&&"object"==typeof e&&"exception"in e&&1===Object.keys(e).length}},600:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,s)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.formatQuerySettings=t.formatQueryParams=t.TupleParam=void 0,s(r(854),t);var a=r(3963);Object.defineProperty(t,"TupleParam",{enumerable:!0,get:function(){return a.TupleParam}}),Object.defineProperty(t,"formatQueryParams",{enumerable:!0,get:function(){return a.formatQueryParams}});var i=r(7152);Object.defineProperty(t,"formatQuerySettings",{enumerable:!0,get:function(){return i.formatQuerySettings}})},854:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StreamableFormats=t.SupportedRawFormats=t.SupportedJSONFormats=t.SingleDocumentJSONFormats=t.RecordsJSONFormats=t.StreamableJSONFormats=void 0,t.isNotStreamableJSONFamily=function(e){return t.SingleDocumentJSONFormats.includes(e)||t.RecordsJSONFormats.includes(e)},t.isStreamableJSONFamily=function(e){return t.StreamableJSONFormats.includes(e)},t.isSupportedRawFormat=function(e){return t.SupportedRawFormats.includes(e)},t.validateStreamFormat=function(e){if(!t.StreamableFormats.includes(e))throw new Error(`${e} format is not streamable. Streamable formats: ${t.StreamableFormats.join(",")}`);return!0},t.encodeJSON=function(e,r){if(t.SupportedJSONFormats.includes(r))return JSON.stringify(e)+"\n";throw new Error(`The client does not support JSON encoding in [${r}] format.`)},t.StreamableJSONFormats=["JSONEachRow","JSONStringsEachRow","JSONCompactEachRow","JSONCompactStringsEachRow","JSONCompactEachRowWithNames","JSONCompactEachRowWithNamesAndTypes","JSONCompactStringsEachRowWithNames","JSONCompactStringsEachRowWithNamesAndTypes","JSONEachRowWithProgress"],t.RecordsJSONFormats=["JSONObjectEachRow"],t.SingleDocumentJSONFormats=["JSON","JSONStrings","JSONCompact","JSONCompactStrings","JSONColumnsWithMetadata"],t.SupportedJSONFormats=[...t.RecordsJSONFormats,...t.SingleDocumentJSONFormats,...t.StreamableJSONFormats],t.SupportedRawFormats=["CSV","CSVWithNames","CSVWithNamesAndTypes","TabSeparated","TabSeparatedRaw","TabSeparatedWithNames","TabSeparatedWithNamesAndTypes","CustomSeparated","CustomSeparatedWithNames","CustomSeparatedWithNamesAndTypes","Parquet"],t.StreamableFormats=[...t.StreamableJSONFormats,...t.SupportedRawFormats]},905:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,s)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),s(r(5664),t),s(r(6811),t),s(r(3074),t),s(r(1768),t)},998:(e,t,r)=>{const n=r(4383),s=r(2003),a=r(9366),i=r(8749),o=r(56).version,u=["🔐 encrypt with Dotenvx: https://dotenvx.com","🔐 prevent committing .env to code: https://dotenvx.com/precommit","🔐 prevent building .env in docker: https://dotenvx.com/prebuild","📡 observe env with Radar: https://dotenvx.com/radar","📡 auto-backup env with Radar: https://dotenvx.com/radar","📡 version env with Radar: https://dotenvx.com/radar","🛠️ run anywhere with `dotenvx run -- yourcommand`","⚙️ specify custom .env file path with { path: '/custom/path/.env' }","⚙️ enable debug logging with { debug: true }","⚙️ override existing env vars with { override: true }","⚙️ suppress all logs with { quiet: true }","⚙️ write to custom object with { processEnv: myObject }","⚙️ load multiple .env files with { path: ['.env.local', '.env'] }"];function c(e){return"string"==typeof e?!["false","0","no","off",""].includes(e.toLowerCase()):Boolean(e)}const l=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function d(e){console.log(`[dotenv@${o}][DEBUG] ${e}`)}function p(e){console.log(`[dotenv@${o}] ${e}`)}function h(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function m(e,t){let r;try{r=new URL(t)}catch(e){if("ERR_INVALID_URL"===e.code){const e=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw e.code="INVALID_DOTENV_KEY",e}throw e}const n=r.password;if(!n){const e=new Error("INVALID_DOTENV_KEY: Missing key part");throw e.code="INVALID_DOTENV_KEY",e}const s=r.searchParams.get("environment");if(!s){const e=new Error("INVALID_DOTENV_KEY: Missing environment part");throw e.code="INVALID_DOTENV_KEY",e}const a=`DOTENV_VAULT_${s.toUpperCase()}`,i=e.parsed[a];if(!i){const e=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${a} in your .env.vault file.`);throw e.code="NOT_FOUND_DOTENV_ENVIRONMENT",e}return{ciphertext:i,key:n}}function f(e){let t=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(const r of e.path)n.existsSync(r)&&(t=r.endsWith(".vault")?r:`${r}.vault`);else t=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else t=s.resolve(process.cwd(),".env.vault");return n.existsSync(t)?t:null}function y(e){return"~"===e[0]?s.join(a.homedir(),e.slice(1)):e}const _={configDotenv:function(e){const t=s.resolve(process.cwd(),".env");let r="utf8",a=process.env;e&&null!=e.processEnv&&(a=e.processEnv);let i=c(a.DOTENV_CONFIG_DEBUG||e&&e.debug),o=c(a.DOTENV_CONFIG_QUIET||e&&e.quiet);e&&e.encoding?r=e.encoding:i&&d("No encoding is specified. UTF-8 is used by default");let l,h=[t];if(e&&e.path)if(Array.isArray(e.path)){h=[];for(const t of e.path)h.push(y(t))}else h=[y(e.path)];const m={};for(const t of h)try{const s=_.parse(n.readFileSync(t,{encoding:r}));_.populate(m,s,e)}catch(e){i&&d(`Failed to load ${t} ${e.message}`),l=e}const f=_.populate(a,m,e);if(i=c(a.DOTENV_CONFIG_DEBUG||i),o=c(a.DOTENV_CONFIG_QUIET||o),i||!o){const e=Object.keys(f).length,t=[];for(const e of h)try{const r=s.relative(process.cwd(),e);t.push(r)}catch(t){i&&d(`Failed to load ${e} ${t.message}`),l=t}p(`injecting env (${e}) from ${t.join(",")} ${g=`-- tip: ${u[Math.floor(Math.random()*u.length)]}`,process.stdout.isTTY?`${g}`:g}`)}var g;return l?{parsed:m,error:l}:{parsed:m}},_configVault:function(e){const t=c(process.env.DOTENV_CONFIG_DEBUG||e&&e.debug),r=c(process.env.DOTENV_CONFIG_QUIET||e&&e.quiet);!t&&r||p("Loading env from encrypted .env.vault");const n=_._parseVault(e);let s=process.env;return e&&null!=e.processEnv&&(s=e.processEnv),_.populate(s,n,e),{parsed:n}},_parseVault:function(e){const t=f(e=e||{});e.path=t;const r=_.configDotenv(e);if(!r.parsed){const e=new Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);throw e.code="MISSING_DATA",e}const n=h(e).split(","),s=n.length;let a;for(let e=0;e<s;e++)try{const t=m(r,n[e].trim());a=_.decrypt(t.ciphertext,t.key);break}catch(t){if(e+1>=s)throw t}return _.parse(a)},config:function(e){if(0===h(e).length)return _.configDotenv(e);const t=f(e);return t?_._configVault(e):(r=`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`,console.error(`[dotenv@${o}][WARN] ${r}`),_.configDotenv(e));var r},decrypt:function(e,t){const r=Buffer.from(t.slice(-64),"hex");let n=Buffer.from(e,"base64");const s=n.subarray(0,12),a=n.subarray(-16);n=n.subarray(12,-16);try{const e=i.createDecipheriv("aes-256-gcm",r,s);return e.setAuthTag(a),`${e.update(n)}${e.final()}`}catch(e){const t=e instanceof RangeError,r="Invalid key length"===e.message,n="Unsupported state or unable to authenticate data"===e.message;if(t||r){const e=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw e.code="INVALID_DOTENV_KEY",e}if(n){const e=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw e.code="DECRYPTION_FAILED",e}throw e}},parse:function(e){const t={};let r,n=e.toString();for(n=n.replace(/\r\n?/gm,"\n");null!=(r=l.exec(n));){const e=r[1];let n=r[2]||"";n=n.trim();const s=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/gm,"$2"),'"'===s&&(n=n.replace(/\\n/g,"\n"),n=n.replace(/\\r/g,"\r")),t[e]=n}return t},populate:function(e,t,r={}){const n=Boolean(r&&r.debug),s=Boolean(r&&r.override),a={};if("object"!=typeof t){const e=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw e.code="OBJECT_REQUIRED",e}for(const r of Object.keys(t))Object.prototype.hasOwnProperty.call(e,r)?(!0===s&&(e[r]=t[r],a[r]=t[r]),n&&d(!0===s?`"${r}" is already defined and WAS overwritten`:`"${r}" is already defined and was NOT overwritten`)):(e[r]=t[r],a[r]=t[r]);return a}};e.exports.configDotenv=_.configDotenv,e.exports._configVault=_._configVault,e.exports._parseVault=_._parseVault,e.exports.config=_.config,e.exports.decrypt=_.decrypt,e.exports.parse=_.parse,e.exports.populate=_.populate,e.exports=_},1241:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ClickHouseClient=void 0;const n=r(4848),s=r(2020);function a(e){let t=e.length;for(let r=t;r>0;r--)if(";"!==e[r-1]){t=r;break}return t!==e.length?e.slice(0,t):e}t.ClickHouseClient=class{constructor(e){Object.defineProperty(this,"clientClickHouseSettings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"connectionParams",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"connection",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"makeResultSet",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"valuesEncoder",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sessionId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"role",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"logWriter",{enumerable:!0,configurable:!0,writable:!0,value:void 0});const t=e?.log?.LoggerClass?new e.log.LoggerClass:new n.DefaultLogger,r=(0,s.prepareConfigWithURL)(e,t,e.impl.handle_specific_url_params??null);this.connectionParams=(0,s.getConnectionParams)(r,t),this.logWriter=this.connectionParams.log_writer,this.clientClickHouseSettings=this.connectionParams.clickhouse_settings,this.sessionId=e.session_id,this.role=e.role,this.connection=e.impl.make_connection(r,this.connectionParams),this.makeResultSet=e.impl.make_result_set,this.valuesEncoder=e.impl.values_encoder}async query(e){const t=e.format??"JSON",r=function(e,t){return(e=a(e=e.trim()))+" \nFORMAT "+t}(e.query,t),n=this.withClientQueryParams(e),{stream:s,query_id:i,response_headers:o}=await this.connection.query({query:r,...n});return this.makeResultSet(s,t,i,e=>{this.logWriter.error({err:e,module:"Client",message:"Error while processing the ResultSet.",args:{session_id:n.session_id,role:n.role,query:r,query_id:i}})},o)}async command(e){const t=a(e.query.trim());return await this.connection.command({query:t,...this.withClientQueryParams(e)})}async exec(e){const t=a(e.query.trim()),r="values"in e?e.values:void 0,n=e.decompress_response_stream??!0;return await this.connection.exec({query:t,values:r,decompress_response_stream:n,...this.withClientQueryParams(e)})}async insert(e){if(Array.isArray(e.values)&&0===e.values.length)return{executed:!1,query_id:"",response_headers:{}};const t=e.format||"JSONCompactEachRow";this.valuesEncoder.validateInsertValues(e.values,t);const r=function(e,t){let r="";var n;return void 0!==e.columns&&(Array.isArray(e.columns)&&e.columns.length>0?r=` (${e.columns.join(", ")})`:null!=(n=e.columns)&&"object"==typeof n&&Object.prototype.hasOwnProperty.call(n,"except")&&e.columns.except.length>0&&(r=` (* EXCEPT (${e.columns.except.join(", ")}))`)),`INSERT INTO ${e.table.trim()}${r} FORMAT ${t}`}(e,t);return{...await this.connection.insert({query:r,values:this.valuesEncoder.encodeValues(e.values,t),...this.withClientQueryParams(e)}),executed:!0}}async ping(e){return await this.connection.ping(e??{select:!1})}async close(){return await this.connection.close()}withClientQueryParams(e){return{clickhouse_settings:{...this.clientClickHouseSettings,...e.clickhouse_settings},query_params:e.query_params,abort_signal:e.abort_signal,query_id:e.query_id,session_id:e.session_id??this.sessionId,role:e.role??this.role,auth:e.auth,http_headers:e.http_headers}}}},1362:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeValuesEncoder=void 0;const s=r(4848),a=n(r(6272)),i=r(4648);function o(e){e&&console.error(e)}t.NodeValuesEncoder=class{encodeValues(e,t){if((0,i.isStream)(e))return e.readableObjectMode?a.default.pipeline(e,(0,i.mapStream)(e=>(0,s.encodeJSON)(e,t)),o):e;if(Array.isArray(e))return e.map(e=>(0,s.encodeJSON)(e,t)).join("");if("object"==typeof e)return(0,s.encodeJSON)(e,t);throw new Error(`Cannot encode values of type ${typeof e} with ${t} format`)}validateInsertValues(e,t){if(!Array.isArray(e)&&!(0,i.isStream)(e)&&"object"!=typeof e)throw new Error('Insert expected "values" to be an array, a stream of values or a JSON object, got: '+typeof e);if((0,i.isStream)(e))if((0,s.isSupportedRawFormat)(t)){if(e.readableObjectMode)throw new Error(`Insert for ${t} expected Readable Stream with disabled object mode.`)}else if(!e.readableObjectMode)throw new Error(`Insert for ${t} expected Readable Stream with enabled object mode.`)}}},1406:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleColumnTypes=t.ColumnTypeParseError=void 0,t.parseColumnType=n,t.parseDecimalType=s,t.parseEnumType=a,t.parseMapType=i,t.parseTupleType=o,t.parseArrayType=u,t.parseDateTimeType=c,t.parseDateTime64Type=l,t.parseFixedStringType=d,t.asNullableType=p,t.getElementsTypes=h;class r extends Error{constructor(e,t){super(e),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.args=t??{},Object.setPrototypeOf(this,r.prototype)}}function n(e){let n,h=e,O=!1;if(h.startsWith(f)&&(h=h.slice(f.length,-1)),h.startsWith(m)&&(h=h.slice(m.length,-1),O=!0),t.SimpleColumnTypes.includes(h))n={type:"Simple",columnType:h,sourceType:e};else if(h.startsWith(y))n=s({sourceType:e,columnType:h});else if(h.startsWith(T))n=l({sourceType:e,columnType:h});else if(h.startsWith(k))n=c({sourceType:e,columnType:h});else if(h.startsWith(S))n=d({sourceType:e,columnType:h});else if(h.startsWith(v)||h.startsWith(b))n=a({sourceType:e,columnType:h});else if(h.startsWith(_))n=u({sourceType:e,columnType:h});else if(h.startsWith(g))n=i({sourceType:e,columnType:h});else{if(!h.startsWith(w))throw new r("Unsupported column type",{columnType:h});n=o({sourceType:e,columnType:h})}return O?p(n,e):n}function s({columnType:e,sourceType:t}){if(!e.startsWith(y)||e.length<y.length+5)throw new r("Invalid Decimal type",{sourceType:t,columnType:e});const n=e.slice(y.length,-1).split(", ");if(2!==n.length)throw new r("Expected Decimal type to have both precision and scale",{sourceType:t,columnType:e,split:n});let s=32;const a=parseInt(n[0],10);if(Number.isNaN(a)||a<1||a>76)throw new r("Invalid Decimal precision",{columnType:e,sourceType:t,precision:a});const i=parseInt(n[1],10);if(Number.isNaN(i)||i<0||i>a)throw new r("Invalid Decimal scale",{columnType:e,sourceType:t,precision:a,scale:i});return a>38?s=256:a>18?s=128:a>9&&(s=64),{type:"Decimal",params:{precision:a,scale:i,intSize:s},sourceType:t}}function a({columnType:e,sourceType:t}){let n;if(e.startsWith(v))e=e.slice(v.length,-1),n=8;else{if(!e.startsWith(b))throw new r("Expected Enum to be either Enum8 or Enum16",{columnType:e,sourceType:t});e=e.slice(b.length,-1),n=16}if(e.length<6)throw new r("Invalid Enum type values",{columnType:e,sourceType:t});const s=[],a=[];let i=!0,o=!1,u=1;for(let n=1;n<e.length;n++)if(i){if(o)o=!1;else if(e.charCodeAt(n)===A)o=!0;else if(e.charCodeAt(n)===x){const o=e.slice(u,n);if(s.includes(o))throw new r("Duplicate Enum name",{columnType:e,sourceType:t,name:o,names:s,indices:a});s.push(o),n+=4,u=n,i=!1}}else(e.charCodeAt(n)<j||e.charCodeAt(n)>P)&&(l(u,n),n+=2,u=n+1,i=!0,o=!1);if(l(u,e.length),s.length!==a.length)throw new r("Expected Enum to have the same number of names and indices",{columnType:e,sourceType:t,names:s,indices:a});const c={};for(let e=0;e<s.length;e++)c[a[e]]=s[e];return{type:"Enum",values:c,intSize:n,sourceType:t};function l(n,i){const o=parseInt(e.slice(n,i),10);if(Number.isNaN(o)||o<0)throw new r("Expected Enum index to be a valid number",{columnType:e,sourceType:t,names:s,indices:a,index:o,start:n,end:i});if(a.includes(o))throw new r("Duplicate Enum index",{columnType:e,sourceType:t,index:o,names:s,indices:a});a.push(o)}}function i({columnType:e,sourceType:t}){if(!e.startsWith(g)||e.length<g.length+11)throw new r("Invalid Map type",{columnType:e,sourceType:t});e=e.slice(g.length,-1);const[s,a]=h({columnType:e,sourceType:t},2),i=n(s);if("DateTime64"===i.type||"Nullable"===i.type||"Array"===i.type||"Map"===i.type||"Decimal"===i.type||"Tuple"===i.type)throw new r("Invalid Map key type",{key:i,sourceType:t});return{type:"Map",key:i,value:n(a),sourceType:t}}function o({columnType:e,sourceType:t}){if(!e.startsWith(w)||e.length<w.length+5)throw new r("Invalid Tuple type",{columnType:e,sourceType:t});return{type:"Tuple",elements:h({columnType:e=e.slice(w.length,-1),sourceType:t},1).map(e=>n(e)),sourceType:t}}function u({columnType:e,sourceType:t}){if(!e.startsWith(_)||e.length<_.length+5)throw new r("Invalid Array type",{columnType:e,sourceType:t});let s=0;for(;e.length>0&&e.startsWith(_);)e=e.slice(_.length,-1),s++;if(0===s||s>10)throw new r("Expected Array to have between 1 and 10 dimensions",{columnType:e});const a=n(e);if("Array"===a.type)throw new r("Unexpected Array as value type",{columnType:e,sourceType:t});return{type:"Array",value:a,dimensions:s,sourceType:t}}function c({columnType:e,sourceType:t}){if(e.startsWith(O)&&e.length>O.length+4)return{type:"DateTime",timezone:e.slice(O.length+1,-2),sourceType:t};if(e.startsWith(k)&&e.length===k.length)return{type:"DateTime",timezone:null,sourceType:t};throw new r("Invalid DateTime type",{columnType:e,sourceType:t})}function l({columnType:e,sourceType:t}){if(!e.startsWith(T)||e.length<T.length+2)throw new r("Invalid DateTime64 type",{columnType:e,sourceType:t});const n=parseInt(e[T.length],10);if(Number.isNaN(n)||n<0||n>9)throw new r("Invalid DateTime64 precision",{columnType:e,sourceType:t,precision:n});let s=null;return e.length>T.length+2&&(s=e.slice(T.length+4,-2)),{type:"DateTime64",timezone:s,precision:n,sourceType:t}}function d({columnType:e,sourceType:t}){if(!e.startsWith(S)||e.length<S.length+2)throw new r("Invalid FixedString type",{columnType:e,sourceType:t});const n=parseInt(e.slice(S.length,-1),10);if(Number.isNaN(n)||n<1)throw new r("Invalid FixedString size in bytes",{columnType:e,sourceType:t,sizeBytes:n});return{type:"FixedString",sizeBytes:n,sourceType:t}}function p(e,t){if("Array"===e.type||"Map"===e.type||"Tuple"===e.type||"Nullable"===e.type)throw new r(`${e.type} cannot be Nullable`,{sourceType:t});return e.sourceType.startsWith(m)&&(e.sourceType=e.sourceType.slice(m.length,-1)),{type:"Nullable",sourceType:t,value:e}}function h({columnType:e,sourceType:t},n){const s=[];let a=0,i=!1,o=!1,u=0;for(let t=0;t<e.length;t++)o?o=!1:e.charCodeAt(t)===A?o=!0:e.charCodeAt(t)===x?i=!i:i||(e.charCodeAt(t)===C?a++:e.charCodeAt(t)===E?a--:e.charCodeAt(t)===N&&0===a&&(s.push(e.slice(u,t)),t+=2,u=t));if(!a&&u<e.length-1&&s.push(e.slice(u)),s.length<n)throw new r("Expected more elements in the type",{sourceType:t,columnType:e,elements:s,minElements:n});return s}t.ColumnTypeParseError=r,t.SimpleColumnTypes=["Bool","UInt8","Int8","UInt16","Int16","UInt32","Int32","UInt64","Int64","UInt128","Int128","UInt256","Int256","Float32","Float64","String","UUID","Date","Date32","IPv4","IPv6"];const m="Nullable(",f="LowCardinality(",y="Decimal(",_="Array(",g="Map(",v="Enum8(",b="Enum16(",w="Tuple(",k="DateTime",O="DateTime(",T="DateTime64(",S="FixedString(",x=39,C=40,E=41,N=44,j=48,P=57,A=92},1484:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default="1.12.1"},1768:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeConnectionFactory=void 0;const n=r(7088),s=r(6811),a=r(3074);t.NodeConnectionFactory=class{static create({connection_params:e,tls:t,keep_alive:r,http_agent:i,set_basic_auth_header:o,capture_enhanced_stack_trace:u}){if(void 0!==i)return new n.NodeCustomAgentConnection({...e,set_basic_auth_header:o,capture_enhanced_stack_trace:u,keep_alive:r,http_agent:i});switch(e.url.protocol){case"http:":return new s.NodeHttpConnection({...e,set_basic_auth_header:o,capture_enhanced_stack_trace:u,keep_alive:r});case"https:":return new a.NodeHttpsConnection({...e,set_basic_auth_header:o,capture_enhanced_stack_trace:u,keep_alive:r,tls:t});default:throw new Error("Only HTTP and HTTPS protocols are supported")}}}},1844:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeConfigImpl=void 0;const n=r(4848),s=r(905),a=r(9084),i=r(3026);t.NodeConfigImpl={handle_specific_url_params:(e,t)=>{const r={...e},s=new Set,a=new Set,i=[...t.searchParams.keys()];return i.length>0&&i.forEach(e=>{const i=t.searchParams.get(e);"keep_alive_idle_socket_ttl"===e?(void 0===r.keep_alive&&(r.keep_alive={}),r.keep_alive.idle_socket_ttl=(0,n.numberConfigURLValue)({key:e,value:i,min:0}),a.add(e)):s.add(e)}),{config:r,unknown_params:s,handled_params:a}},make_connection:(e,t)=>{let r;void 0!==e.tls&&(r="cert"in e.tls&&"key"in e.tls?{type:"Mutual",...e.tls}:{type:"Basic",...e.tls});const n={enabled:e?.keep_alive?.enabled??!0,idle_socket_ttl:e?.keep_alive?.idle_socket_ttl??2500};return s.NodeConnectionFactory.create({connection_params:t,set_basic_auth_header:e.set_basic_auth_header??!0,capture_enhanced_stack_trace:e.capture_enhanced_stack_trace??!1,http_agent:e.http_agent,keep_alive:n,tls:r})},values_encoder:new i.NodeValuesEncoder,make_result_set:(e,t,r,n,s)=>a.ResultSet.instance({stream:e,format:t,query_id:r,log_error:n,response_headers:s})}},2020:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prepareConfigWithURL=function(e,t,r){const n={...e};let o;void 0!==n.additional_headers&&(t.warn({module:"Config",message:'"additional_headers" is deprecated. Use "http_headers" instead.'}),n.http_headers=n.additional_headers,delete n.additional_headers),void 0!==n.host?(t.warn({module:"Config",message:'"host" is deprecated. Use "url" instead.'}),o=a(n.host),delete n.host):o=a(n.url);const[u,c]=i(o,r),l=s(n,c,t);return void 0!==l.pathname&&(u.pathname=l.pathname),l.url=u,l},t.getConnectionParams=function(e,t){let r;if(void 0!==e.access_token){if(void 0!==e.username||void 0!==e.password)throw new Error("Both access token and username/password are provided in the configuration. Please use only one authentication method.");r={access_token:e.access_token,type:"JWT"}}else r={username:e.username??"default",password:e.password??"",type:"Credentials"};return{auth:r,url:e.url,application_id:e.application,request_timeout:e.request_timeout??3e4,max_open_connections:e.max_open_connections??10,compression:{decompress_response:e.compression?.response??!1,compress_request:e.compression?.request??!1},database:e.database??"default",log_writer:new n.LogWriter(t,"Connection",e.log?.level),keep_alive:{enabled:e.keep_alive?.enabled??!0},clickhouse_settings:e.clickhouse_settings??{},http_headers:e.http_headers??{}}},t.mergeConfigs=s,t.createUrl=a,t.loadConfigOptionsFromURL=i,t.booleanConfigURLValue=o,t.numberConfigURLValue=u,t.enumConfigURLValue=c;const n=r(4286);function s(e,t,r){const n={...e};return function e(t,n,s=[]){for(const a of Object.keys(n))if("object"==typeof n[a])e(t,n[a],s.concat(a));else{let e=t;for(const t of s)void 0===e[t]&&(e[t]={}),e=e[t];if(void 0!==e[a]){const e=s.concat(a).join(".");r.warn({module:"Config",message:`"${e}" is overridden by a URL parameter.`})}e[a]=n[a]}}(n,t),n}function a(e){let t;try{if(!("string"==typeof e||e instanceof URL))return new URL("http://localhost:8123");t=new URL(e)}catch(e){throw new Error("ClickHouse URL is malformed. Expected format: http[s]://[username:password@]hostname:port[/database][?param1=value1&param2=value2]",{cause:e})}if("http:"!==t.protocol&&"https:"!==t.protocol)throw new Error(`ClickHouse URL protocol must be either http or https. Got: ${t.protocol}`);return t}function i(e,t){let r={};""!==e.username&&(r.username=decodeURIComponent(e.username)),""!==e.password&&(r.password=decodeURIComponent(e.password)),e.pathname.trim().length>1&&(r.database=e.pathname.slice(1));const s=[...e.searchParams.keys()];if(s.length>0){const a=new Set,i="clickhouse_setting_",l="ch_",d="http_header_";if(s.forEach(t=>{let s=!0;const p=e.searchParams.get(t);if(t.startsWith(i)){const e=t.slice(i.length);void 0===r.clickhouse_settings&&(r.clickhouse_settings={}),r.clickhouse_settings[e]=p}else if(t.startsWith(l)){const e=t.slice(l.length);void 0===r.clickhouse_settings&&(r.clickhouse_settings={}),r.clickhouse_settings[e]=p}else if(t.startsWith(d)){const e=t.slice(d.length);void 0===r.http_headers&&(r.http_headers={}),r.http_headers[e]=p}else switch(t){case"application":r.application=p;break;case"pathname":r.pathname=p;break;case"session_id":r.session_id=p;break;case"request_timeout":r.request_timeout=u({key:t,value:p,min:0});break;case"max_open_connections":r.max_open_connections=u({key:t,value:p,min:1});break;case"compression_request":void 0===r.compression&&(r.compression={}),r.compression.request=o({key:t,value:p});break;case"compression_response":void 0===r.compression&&(r.compression={}),r.compression.response=o({key:t,value:p});break;case"log_level":void 0===r.log&&(r.log={}),r.log.level=c({key:t,value:p,enumObject:n.ClickHouseLogLevel});break;case"keep_alive_enabled":void 0===r.keep_alive&&(r.keep_alive={}),r.keep_alive.enabled=o({key:t,value:p});break;case"access_token":r.access_token=p;break;default:s=!1,a.add(t)}s&&e.searchParams.delete(t)}),null!==t){const n=t(r,e);r=n.config,a.size>0&&n.handled_params.forEach(e=>a.delete(e)),n.unknown_params.size>0&&n.unknown_params.forEach(e=>a.add(e))}if(a.size>0)throw new Error(`Unknown URL parameters: ${Array.from(a).join(", ")}`)}return[new URL(`${e.protocol}//${e.host}`),r]}function o({key:e,value:t}){const r=t.trim();if("true"===r||"1"===r)return!0;if("false"===r||"0"===r)return!1;throw new Error(`"${e}" has invalid boolean value: ${r}. Expected one of: 0, 1, true, false.`)}function u({key:e,value:t,min:r,max:n}){const s=t.trim(),a=Number(s);if(isNaN(a))throw new Error(`"${e}" has invalid numeric value: ${s}`);if(void 0!==r&&a<r)throw new Error(`"${e}" value ${s} is less than min allowed ${r}`);if(void 0!==n&&a>n)throw new Error(`"${e}" value ${s} is greater than max allowed ${n}`);return a}function c({key:e,value:t,enumObject:r}){const n=Object.keys(r).filter(e=>isNaN(Number(e))),s=t.trim();if(!n.includes(s)){const t=n.join(", ");throw new Error(`"${e}" has invalid value: ${s}. Expected one of: ${t}.`)}return r[s]}},2687:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getProcessVersion=function(){return process.version}},2797:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.drainStream=async function(e){return new Promise((t,r)=>{function n(){}function s(){o(),t()}function a(e){o(),r(e)}function i(){o()}function o(){e.removeListener("data",n),e.removeListener("end",s),e.removeListener("error",a),e.removeListener("onClose",i)}e.on("data",n),e.on("end",s),e.on("error",a),e.on("close",i)})}},3007:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SettingsMap=void 0,t.SettingsMap=class{constructor(e){Object.defineProperty(this,"record",{enumerable:!0,configurable:!0,writable:!0,value:e})}toString(){return`{${Object.entries(this.record).map(([e,t])=>`'${e}':'${t}'`).join(",")}}`}static from(e){return new this(e)}}},3026:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,s)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),s(r(4648),t),s(r(1362),t),s(r(2687),t),s(r(7569),t)},3074:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeHttpsConnection=void 0;const s=r(4848),a=n(r(2057)),i=r(5664);class o extends i.NodeBaseConnection{constructor(e){super(e,new a.default.Agent({keepAlive:e.keep_alive.enabled,maxSockets:e.max_open_connections,ca:e.tls?.ca_cert,key:"Mutual"===e.tls?.type?e.tls.key:void 0,cert:"Mutual"===e.tls?.type?e.tls.cert:void 0}))}buildRequestHeaders(e){if(void 0!==this.params.tls){if("JWT"===this.params.auth.type)throw new Error("JWT auth is not supported with HTTPS connection using custom certificates");let t;t=(0,s.isCredentialsAuth)(e?.auth)?{...this.defaultHeadersWithOverride(e),"X-ClickHouse-User":e.auth.username,"X-ClickHouse-Key":e.auth.password}:{...this.defaultHeadersWithOverride(e),"X-ClickHouse-User":this.params.auth.username,"X-ClickHouse-Key":this.params.auth.password};const r=this.params.tls.type;switch(r){case"Basic":return t;case"Mutual":return{...t,"X-ClickHouse-SSL-Certificate-Auth":"on"};default:throw new Error(`Unknown TLS type: ${r}`)}}return super.buildRequestHeaders(e)}createClientRequest(e){const t=(0,s.withCompressionHeaders)({headers:e.headers,enable_request_compression:e.enable_request_compression,enable_response_compression:e.enable_response_compression});return a.default.request(e.url,{method:e.method,agent:this.agent,timeout:this.params.request_timeout,signal:e.abort_signal,headers:t})}}t.NodeHttpsConnection=o},3963:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TupleParam=void 0,t.formatQueryParams=n;class r{constructor(e){Object.defineProperty(this,"values",{enumerable:!0,configurable:!0,writable:!0,value:e})}}function n({value:e,wrapStringInQuotes:t,printNullAsKeyword:l}){if(null==e)return l?"NULL":"\\N";if(Number.isNaN(e))return"nan";if(e===Number.POSITIVE_INFINITY)return"+inf";if(e===Number.NEGATIVE_INFINITY)return"-inf";if("number"==typeof e)return String(e);if("boolean"==typeof e)return e?"1":"0";if("string"==typeof e){let r="";for(let t=0;t<e.length;t++)switch(e.charCodeAt(t)){case a:r+="\\t";break;case i:r+="\\n";break;case o:r+="\\r";break;case u:r+="\\'";break;case c:r+="\\\\";break;default:r+=e[t]}return t?`'${r}'`:r}if(Array.isArray(e))return`[${e.map(e=>n({value:e,wrapStringInQuotes:!0,printNullAsKeyword:!0})).join(",")}]`;if(e instanceof Date){const t=Math.floor(e.getTime()/1e3).toString().padStart(10,"0"),r=e.getUTCMilliseconds();return 0===r?t:`${t}.${r.toString().padStart(3,"0")}`}if(e instanceof r)return`(${e.values.map(e=>n({value:e,wrapStringInQuotes:!0,printNullAsKeyword:!0})).join(",")})`;if(e instanceof Map)return s(e.entries());if("object"==typeof e)return s(Object.entries(e));throw new Error(`Unsupported value in query parameters: [${e}].`)}function s(e){const t=[];for(const[r,s]of e)t.push(`${n({value:r,wrapStringInQuotes:!0,printNullAsKeyword:!0})}:${n({value:s,wrapStringInQuotes:!0,printNullAsKeyword:!0})}`);return`{${t.join(",")}}`}t.TupleParam=r;const a=9,i=10,o=13,u=39,c=92},4286:(e,t)=>{"use strict";var r;function n({level:e,module:t,message:r}){return`[${(new Date).toISOString()}][${e}][@clickhouse/client][${t}] ${r}`}Object.defineProperty(t,"__esModule",{value:!0}),t.ClickHouseLogLevel=t.LogWriter=t.DefaultLogger=void 0,t.DefaultLogger=class{trace({module:e,message:t,args:r}){const s=[n({module:e,message:t,level:"TRACE"})];r&&s.push("\nArguments:",r),console.debug(...s)}debug({module:e,message:t,args:r}){const s=[n({module:e,message:t,level:"DEBUG"})];r&&s.push("\nArguments:",r),console.debug(...s)}info({module:e,message:t,args:r}){const s=[n({module:e,message:t,level:"INFO"})];r&&s.push("\nArguments:",r),console.info(...s)}warn({module:e,message:t,args:r,err:s}){const a=[n({module:e,message:t,level:"WARN"})];r&&a.push("\nArguments:",r),s&&a.push("\nCaused by:",s),console.warn(...a)}error({module:e,message:t,args:r,err:s}){const a=[n({module:e,message:t,level:"ERROR"})];r&&a.push("\nArguments:",r),a.push("\nCaused by:",s),console.error(...a)}},t.LogWriter=class{constructor(e,t,n){Object.defineProperty(this,"logger",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"module",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"logLevel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.logLevel=n??r.OFF,this.info({message:`Log level is set to ${r[this.logLevel]}`})}trace(e){this.logLevel<=r.TRACE&&this.logger.trace({...e,module:e.module??this.module})}debug(e){this.logLevel<=r.DEBUG&&this.logger.debug({...e,module:e.module??this.module})}info(e){this.logLevel<=r.INFO&&this.logger.info({...e,module:e.module??this.module})}warn(e){this.logLevel<=r.WARN&&this.logger.warn({...e,module:e.module??this.module})}error(e){this.logLevel<=r.ERROR&&this.logger.error({...e,module:e.module??this.module})}},function(e){e[e.TRACE=0]="TRACE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.OFF=127]="OFF"}(r||(t.ClickHouseLogLevel=r={}))},4291:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ClickHouseError=void 0,t.parseError=function(e){const t=e instanceof Error,s=(t?e.message:e).match(r),a=s?.groups;return a?new n(a):t?e:new Error(e)},t.getCurrentStackTrace=function(){const e=(new Error).stack;return e?e.split("\n").slice(3).reverse().join("\n"):""},t.enhanceStackTrace=function(e,t){if(e.stack&&t){const r=e.stack.indexOf("\n"),n=e.stack.substring(0,r),s=e.stack.substring(r+1);e.stack=`${n}\n${t}\n${s}`}return e};const r=/(Code|Error): (?<code>\d+).*Exception: (?<message>.+)\((?<type>(?=.+[A-Z]{3})[A-Z0-9_]+?)\)/s;class n extends Error{constructor({message:e,code:t,type:r}){super(e),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=t,this.type=r,Object.setPrototypeOf(this,n.prototype)}}t.ClickHouseError=n},4476:(e,t,r)=>{"use strict";var n,s;r.d(t,{z:()=>Et}),function(e){e.assertEqual=e=>e,e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const r of e)t[r]=r;return t},e.getValidEnumValues=t=>{const r=e.objectKeys(t).filter(e=>"number"!=typeof t[t[e]]),n={};for(const e of r)n[e]=t[e];return e.objectValues(n)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.push(r);return t},e.find=(e,t)=>{for(const r of e)if(t(r))return r},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map(e=>"string"==typeof e?`'${e}'`:e).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(n||(n={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(s||(s={}));const a=n.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),i=e=>{switch(typeof e){case"undefined":return a.undefined;case"string":return a.string;case"number":return isNaN(e)?a.nan:a.number;case"boolean":return a.boolean;case"function":return a.function;case"bigint":return a.bigint;case"symbol":return a.symbol;case"object":return Array.isArray(e)?a.array:null===e?a.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?a.promise:"undefined"!=typeof Map&&e instanceof Map?a.map:"undefined"!=typeof Set&&e instanceof Set?a.set:"undefined"!=typeof Date&&e instanceof Date?a.date:a.object;default:return a.unknown}},o=n.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class u extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(e){return e.message},r={_errors:[]},n=e=>{for(const s of e.issues)if("invalid_union"===s.code)s.unionErrors.map(n);else if("invalid_return_type"===s.code)n(s.returnTypeError);else if("invalid_arguments"===s.code)n(s.argumentsError);else if(0===s.path.length)r._errors.push(t(s));else{let e=r,n=0;for(;n<s.path.length;){const r=s.path[n];n===s.path.length-1?(e[r]=e[r]||{_errors:[]},e[r]._errors.push(t(s))):e[r]=e[r]||{_errors:[]},e=e[r],n++}}};return n(this),r}static assert(e){if(!(e instanceof u))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,n.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(e=e=>e.message){const t={},r=[];for(const n of this.issues)n.path.length>0?(t[n.path[0]]=t[n.path[0]]||[],t[n.path[0]].push(e(n))):r.push(e(n));return{formErrors:r,fieldErrors:t}}get formErrors(){return this.flatten()}}u.create=e=>new u(e);const c=(e,t)=>{let r;switch(e.code){case o.invalid_type:r=e.received===a.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case o.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(e.expected,n.jsonStringifyReplacer)}`;break;case o.unrecognized_keys:r=`Unrecognized key(s) in object: ${n.joinValues(e.keys,", ")}`;break;case o.invalid_union:r="Invalid input";break;case o.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${n.joinValues(e.options)}`;break;case o.invalid_enum_value:r=`Invalid enum value. Expected ${n.joinValues(e.options)}, received '${e.received}'`;break;case o.invalid_arguments:r="Invalid function arguments";break;case o.invalid_return_type:r="Invalid function return type";break;case o.invalid_date:r="Invalid date";break;case o.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(r=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(r=`${r} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?r=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?r=`Invalid input: must end with "${e.validation.endsWith}"`:n.assertNever(e.validation):r="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case o.too_small:r="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case o.too_big:r="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case o.custom:r="Invalid input";break;case o.invalid_intersection_types:r="Intersection results could not be merged";break;case o.not_multiple_of:r=`Number must be a multiple of ${e.multipleOf}`;break;case o.not_finite:r="Number must be finite";break;default:r=t.defaultError,n.assertNever(e)}return{message:r}};let l=c;function d(){return l}const p=e=>{const{data:t,path:r,errorMaps:n,issueData:s}=e,a=[...r,...s.path||[]],i={...s,path:a};if(void 0!==s.message)return{...s,path:a,message:s.message};let o="";const u=n.filter(e=>!!e).slice().reverse();for(const e of u)o=e(i,{data:t,defaultError:o}).message;return{...s,path:a,message:o}};function h(e,t){const r=d(),n=p({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===c?void 0:c].filter(e=>!!e)});e.common.issues.push(n)}class m{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const r=[];for(const n of t){if("aborted"===n.status)return f;"dirty"===n.status&&e.dirty(),r.push(n.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,t){const r=[];for(const e of t){const t=await e.key,n=await e.value;r.push({key:t,value:n})}return m.mergeObjectSync(e,r)}static mergeObjectSync(e,t){const r={};for(const n of t){const{key:t,value:s}=n;if("aborted"===t.status)return f;if("aborted"===s.status)return f;"dirty"===t.status&&e.dirty(),"dirty"===s.status&&e.dirty(),"__proto__"===t.value||void 0===s.value&&!n.alwaysSet||(r[t.value]=s.value)}return{status:e.value,value:r}}}const f=Object.freeze({status:"aborted"}),y=e=>({status:"dirty",value:e}),_=e=>({status:"valid",value:e}),g=e=>"aborted"===e.status,v=e=>"dirty"===e.status,b=e=>"valid"===e.status,w=e=>"undefined"!=typeof Promise&&e instanceof Promise;function k(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)}function O(e,t,r,n,s){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!s:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?s.call(e,r):s?s.value=r:t.set(e,r),r}var T,S,x;"function"==typeof SuppressedError&&SuppressedError,function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:null==e?void 0:e.message}(T||(T={}));class C{constructor(e,t,r,n){this._cachedPath=[],this.parent=e,this.data=t,this._path=r,this._key=n}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const E=(e,t)=>{if(b(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new u(e.common.issues);return this._error=t,this._error}}};function N(e){if(!e)return{};const{errorMap:t,invalid_type_error:r,required_error:n,description:s}=e;if(t&&(r||n))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');return t?{errorMap:t,description:s}:{errorMap:(t,s)=>{var a,i;const{message:o}=e;return"invalid_enum_value"===t.code?{message:null!=o?o:s.defaultError}:void 0===s.data?{message:null!==(a=null!=o?o:n)&&void 0!==a?a:s.defaultError}:"invalid_type"!==t.code?{message:s.defaultError}:{message:null!==(i=null!=o?o:r)&&void 0!==i?i:s.defaultError}},description:s}}class j{get description(){return this._def.description}_getType(e){return i(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:i(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new m,ctx:{common:e.parent.common,data:e.data,parsedType:i(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(w(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const r=this.safeParse(e,t);if(r.success)return r.data;throw r.error}safeParse(e,t){var r;const n={common:{issues:[],async:null!==(r=null==t?void 0:t.async)&&void 0!==r&&r,contextualErrorMap:null==t?void 0:t.errorMap},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:i(e)},s=this._parseSync({data:e,path:n.path,parent:n});return E(n,s)}"~validate"(e){var t,r;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:i(e)};if(!this["~standard"].async)try{const t=this._parseSync({data:e,path:[],parent:n});return b(t)?{value:t.value}:{issues:n.common.issues}}catch(e){(null===(r=null===(t=null==e?void 0:e.message)||void 0===t?void 0:t.toLowerCase())||void 0===r?void 0:r.includes("encountered"))&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(e=>b(e)?{value:e.value}:{issues:n.common.issues})}async parseAsync(e,t){const r=await this.safeParseAsync(e,t);if(r.success)return r.data;throw r.error}async safeParseAsync(e,t){const r={common:{issues:[],contextualErrorMap:null==t?void 0:t.errorMap,async:!0},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:i(e)},n=this._parse({data:e,path:r.path,parent:r}),s=await(w(n)?n:Promise.resolve(n));return E(r,s)}refine(e,t){const r=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement((t,n)=>{const s=e(t),a=()=>n.addIssue({code:o.custom,...r(t)});return"undefined"!=typeof Promise&&s instanceof Promise?s.then(e=>!!e||(a(),!1)):!!s||(a(),!1)})}refinement(e,t){return this._refinement((r,n)=>!!e(r)||(n.addIssue("function"==typeof t?t(r,n):t),!1))}_refinement(e){return new Ae({schema:this,typeName:We.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(thi