hysteria-orm 10.1.3 → 10.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.cts CHANGED
@@ -3335,6 +3335,7 @@ declare class SqlDataSource extends DataSource {
3335
3335
  */
3336
3336
  getModelOpenApiSchema(): (OpenApiModelType & {
3337
3337
  modelName: string;
3338
+ $id?: string;
3338
3339
  })[];
3339
3340
  /**
3340
3341
  * @description Introspects table columns metadata
@@ -3960,7 +3961,7 @@ type WhereType<T> = {
3960
3961
  [K in keyof T]?: T[K];
3961
3962
  };
3962
3963
  type ModelKey<T extends Model> = {
3963
- [K in keyof T]: T[K] extends (Model[] | HasMany) | (Model | HasMany) | (Model | BelongsTo) | (Model[] | BelongsTo) | (Model | HasOne) | (Model[] | HasOne) ? never : K extends "*" ? never : K;
3964
+ [K in keyof T]: T[K] extends (Model[] | HasMany) | (Model | HasMany) | (Model | BelongsTo) | (Model[] | BelongsTo) | (Model | HasOne) | (Model[] | HasOne) ? never : K extends "*" ? never : T[K] extends (...args: any[]) => any ? never : K;
3964
3965
  }[keyof T];
3965
3966
  type ModelRelation<T extends Model> = OnlyRelations<T>;
3966
3967
  type OrderByChoices = "asc" | "desc";
@@ -5347,6 +5348,7 @@ declare const generateOpenApiModelSchema: <T extends new () => Model>(model: T)
5347
5348
  */
5348
5349
  declare const generateOpenApiModelWithMetadata: <T extends new () => Model>(models: T[]) => Array<OpenApiModelType & {
5349
5350
  modelName: string;
5351
+ $id?: string;
5350
5352
  }>;
5351
5353
 
5352
5354
  export { type AnnotatedModel, type AsymmetricEncryptionOptions, type AugmentedSqlDataSource, AutogeneratedModel, type BaseModelMethodOptions, type BaseModelRelationType, ClientMigrator, Collection, type ColumnDataTypeOption, type ColumnDataTypeOptionSimple, type ColumnDataTypeOptionWithBinary, type ColumnDataTypeOptionWithDatePrecision, type ColumnDataTypeOptionWithEnum, type ColumnDataTypeOptionWithLength, type ColumnDataTypeOptionWithPrecision, type ColumnDataTypeOptionWithScaleAndPrecision, type ColumnDataTypeOptionWithText, type ColumnOptions, type ColumnType, type CommonDataSourceInput, type CommonSqlMethodReturnType, type ConnectionPolicies, type DataSourceInput, type DataSourceType, type DateColumnOptions, DryModelQueryBuilder, DryQueryBuilder, type FetchHooks, type GetConnectionReturnType, HysteriaError, type IndexType, type LazyRelationType, type ManyOptions, type ManyToManyOptions, Migration, Model, type ModelInstanceType, ModelQueryBuilder, type ModelWithoutRelations, MongoDataSource, type MongoDataSourceInput, type MysqlConnectionInstance, type MysqlSqlDataSourceInput, type NotNullableMysqlSqlDataSourceInput, type NotNullablePostgresSqlDataSourceInput, type NotNullableSqliteDataSourceInput, type NumberModelKey, type OneOptions, type PgPoolClientInstance, type PostgresSqlDataSourceInput, QueryBuilder, type RawModelOptions, type RedisFetchable, type RedisStorable, type RelatedInstance, type RelationQueryBuilderType, type SqlCloneOptions, type SqlDataSourceInput, type SqlDataSourceModel, type SqlDataSourceType, type SqlDataSourceWithoutTransaction, type SqlDriverSpecificOptions, type SqlPoolType, type SqliteConnectionInstance, type SqliteDataSourceInput, type StartTransactionOptions, type SymmetricEncryptionOptions, type TableFormat, type ThroughModel, TimestampedModel, Transaction, type TransactionExecutionOptions, type UniqueType, type UseConnectionInput, UserMixin, UuidModel, belongsTo, column, createModelFactory, defineMigrator, generateOpenApiModel, generateOpenApiModelSchema, generateOpenApiModelWithMetadata, getCollectionProperties, getIndexes, getModelColumns, type getPoolReturnType, getPrimaryKey, getRelations, getRelationsMetadata, getUniques, hasMany, hasOne, index, HysteriaLogger as logger, manyToMany, MongoDataSource as mongo, property, RedisDataSource as redis, SqlDataSource as sql, unique, view, withPerformance };
package/lib/index.d.ts CHANGED
@@ -3335,6 +3335,7 @@ declare class SqlDataSource extends DataSource {
3335
3335
  */
3336
3336
  getModelOpenApiSchema(): (OpenApiModelType & {
3337
3337
  modelName: string;
3338
+ $id?: string;
3338
3339
  })[];
3339
3340
  /**
3340
3341
  * @description Introspects table columns metadata
@@ -3960,7 +3961,7 @@ type WhereType<T> = {
3960
3961
  [K in keyof T]?: T[K];
3961
3962
  };
3962
3963
  type ModelKey<T extends Model> = {
3963
- [K in keyof T]: T[K] extends (Model[] | HasMany) | (Model | HasMany) | (Model | BelongsTo) | (Model[] | BelongsTo) | (Model | HasOne) | (Model[] | HasOne) ? never : K extends "*" ? never : K;
3964
+ [K in keyof T]: T[K] extends (Model[] | HasMany) | (Model | HasMany) | (Model | BelongsTo) | (Model[] | BelongsTo) | (Model | HasOne) | (Model[] | HasOne) ? never : K extends "*" ? never : T[K] extends (...args: any[]) => any ? never : K;
3964
3965
  }[keyof T];
3965
3966
  type ModelRelation<T extends Model> = OnlyRelations<T>;
3966
3967
  type OrderByChoices = "asc" | "desc";
@@ -5347,6 +5348,7 @@ declare const generateOpenApiModelSchema: <T extends new () => Model>(model: T)
5347
5348
  */
5348
5349
  declare const generateOpenApiModelWithMetadata: <T extends new () => Model>(models: T[]) => Array<OpenApiModelType & {
5349
5350
  modelName: string;
5351
+ $id?: string;
5350
5352
  }>;
5351
5353
 
5352
5354
  export { type AnnotatedModel, type AsymmetricEncryptionOptions, type AugmentedSqlDataSource, AutogeneratedModel, type BaseModelMethodOptions, type BaseModelRelationType, ClientMigrator, Collection, type ColumnDataTypeOption, type ColumnDataTypeOptionSimple, type ColumnDataTypeOptionWithBinary, type ColumnDataTypeOptionWithDatePrecision, type ColumnDataTypeOptionWithEnum, type ColumnDataTypeOptionWithLength, type ColumnDataTypeOptionWithPrecision, type ColumnDataTypeOptionWithScaleAndPrecision, type ColumnDataTypeOptionWithText, type ColumnOptions, type ColumnType, type CommonDataSourceInput, type CommonSqlMethodReturnType, type ConnectionPolicies, type DataSourceInput, type DataSourceType, type DateColumnOptions, DryModelQueryBuilder, DryQueryBuilder, type FetchHooks, type GetConnectionReturnType, HysteriaError, type IndexType, type LazyRelationType, type ManyOptions, type ManyToManyOptions, Migration, Model, type ModelInstanceType, ModelQueryBuilder, type ModelWithoutRelations, MongoDataSource, type MongoDataSourceInput, type MysqlConnectionInstance, type MysqlSqlDataSourceInput, type NotNullableMysqlSqlDataSourceInput, type NotNullablePostgresSqlDataSourceInput, type NotNullableSqliteDataSourceInput, type NumberModelKey, type OneOptions, type PgPoolClientInstance, type PostgresSqlDataSourceInput, QueryBuilder, type RawModelOptions, type RedisFetchable, type RedisStorable, type RelatedInstance, type RelationQueryBuilderType, type SqlCloneOptions, type SqlDataSourceInput, type SqlDataSourceModel, type SqlDataSourceType, type SqlDataSourceWithoutTransaction, type SqlDriverSpecificOptions, type SqlPoolType, type SqliteConnectionInstance, type SqliteDataSourceInput, type StartTransactionOptions, type SymmetricEncryptionOptions, type TableFormat, type ThroughModel, TimestampedModel, Transaction, type TransactionExecutionOptions, type UniqueType, type UseConnectionInput, UserMixin, UuidModel, belongsTo, column, createModelFactory, defineMigrator, generateOpenApiModel, generateOpenApiModelSchema, generateOpenApiModelWithMetadata, getCollectionProperties, getIndexes, getModelColumns, type getPoolReturnType, getPrimaryKey, getRelations, getRelationsMetadata, getUniques, hasMany, hasOne, index, HysteriaLogger as logger, manyToMany, MongoDataSource as mongo, property, RedisDataSource as redis, SqlDataSource as sql, unique, view, withPerformance };
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import ge,{publicEncrypt,privateDecrypt,randomBytes}from'crypto';import Oe from'dayjs';import kl from'dayjs/plugin/customParseFormat.js';import Fl from'dayjs/plugin/timezone.js';import Ll from'dayjs/plugin/utc.js';import ml from'fs';import {highlight}from'sql-highlight';import {format}from'sql-formatter';import ut,{join}from'path';import dd from'pluralize';import {PassThrough,Readable}from'stream';import {fileURLToPath,pathToFileURL}from'url';import {createRequire}from'module';import {bundleRequire}from'bundle-require';var $l=Object.defineProperty;var V=(i=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(i,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):i)(function(i){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')});var U=(i,t,e,r)=>{for(var o=void 0,n=i.length-1,s;n>=0;n--)(s=i[n])&&(o=(s(t,e,o))||o);return o&&$l(t,e,o),o};var P=class{static defineMetadata(t,e,r,o){if((typeof r!="object"||r===null)&&typeof r!="function")throw new TypeError("target must be an object or function");let n=this.store.get(r);n||(n=new Map,this.store.set(r,n));let s=n.get(o);s||(s=new Map,n.set(o,s)),s.set(t,e);}static getMetadata(t,e,r){if((typeof e!="object"||e===null)&&typeof e!="function")throw new TypeError("target must be an object or function");let o=e;for(;o;){let n=this.store.get(o);if(n){let s=n.get(r);if(s&&s.has(t))return s.get(t)}o=Object.getPrototypeOf(o);}}};P.store=new WeakMap;var hr=Symbol("mongoProperties");function gr(){return (i,t)=>{let e=P.getMetadata(hr,i)||[];e.push(t),P.defineMetadata(hr,e,i);}}function Ts(i){return P.getMetadata(hr,i.prototype)||[]}var u=class extends Error{constructor(t,e,r){super(t+" - "+e),this.code=e,this.caller=t,this.error=r;}};function Kl(i){return typeof i!="string"||!i?i:i.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/([A-Z])([A-Z][a-z])/g,"$1_$2").toLowerCase()}function Ql(i){return typeof i!="string"||!i?i:i.replace(/([-_][a-z])/g,t=>t.toUpperCase().replace("-","").replace("_",""))}function I(i,t){return t==="preserve"?i:t==="snake"?Kl(i):t==="camel"?Ql(i):t instanceof RegExp?i.replace(t,e=>e[1].toUpperCase()):t(i)}Oe.extend(Ll);Oe.extend(Fl);Oe.extend(kl);var mt=(i,t="ISO",e="UTC")=>{if(!(i instanceof Date)||isNaN(i.getTime()))throw new Error("Invalid date provided");let r=Oe(i);if(e==="LOCAL"){let n=r.local();switch(t){case "ISO":return n.format("YYYY-MM-DD HH:mm:ss");case "DATE_ONLY":return n.format("YYYY-MM-DD");case "TIME_ONLY":return n.format("HH:mm:ss");default:return n.unix().toString()}}let o=r.utc();switch(t){case "ISO":return o.format("YYYY-MM-DD HH:mm:ss");case "DATE_ONLY":return o.format("YYYY-MM-DD");case "TIME_ONLY":return o.format("HH:mm:ss");default:return o.unix().toString()}},bs=(i,t,e="UTC")=>{if(i===null)return null;if(i instanceof Date){if(isNaN(i.getTime()))throw new u("DateUtils::parseDate","INVALID_DATE_OBJECT");return i}try{let r=t?Oe(i,t):Oe(i);if(!r.isValid())throw new u("DateUtils::parseDate","INVALID_DATE_STRING");return e==="UTC"?r.utc().toDate():r.local().toDate()}catch{throw new u("DateUtils::parseDate","FAILED_TO_PARSE_DATE")}},ae=(i=new Date)=>Oe(i).utc().format("YYYY-MM-DD HH:mm:ss");var ws=(i,t)=>{try{let e=ge.createHash("sha256").update(i).digest(),r=ge.randomBytes(16),o=ge.createCipheriv("aes-256-cbc",e,r),n=o.update(t,"utf8","hex");return n+=o.final("hex"),`${r.toString("hex")}:${n}`}catch(e){throw new u("Encryption::encryptSymmetric","FAILED_TO_ENCRYPT_SYMMETRICALLY",e instanceof Error?e:void 0)}},Ss=(i,t)=>{try{let e=ge.createHash("sha256").update(i).digest(),[r,o]=t.split(":"),n=ge.createDecipheriv("aes-256-cbc",e,Buffer.from(r,"hex")),s=n.update(o,"hex","utf8");return s+=n.final("utf8"),s}catch(e){throw new u("Encryption::decryptSymmetric","FAILED_TO_DECRYPT_SYMMETRICALLY",e instanceof Error?e:void 0)}},Ns=(i,t)=>{try{let e=ge.randomBytes(32),r=ge.randomBytes(16),o=ge.createCipheriv("aes-256-cbc",e,r),n=o.update(t,"utf8","hex");n+=o.final("hex");let s=publicEncrypt(i,e);return `${r.toString("hex")}:${s.toString("hex")}:${n}`}catch(e){throw new u("Encryption::encryptAsymmetric","FAILED_TO_ENCRYPT_ASYMMETRICALLY",e instanceof Error?e:void 0)}},Ms=(i,t)=>{try{let[e,r,o]=t.split(":"),n=privateDecrypt(i,Buffer.from(r,"hex")),s=ge.createDecipheriv("aes-256-cbc",n,Buffer.from(e,"hex")),a=s.update(o,"hex","utf8");return a+=s.final("utf8"),a}catch(e){throw new u("Encryption::decryptAsymmetric","FAILED_TO_DECRYPT_ASYMMETRICALLY",e instanceof Error?e:void 0)}};var br="0123456789ABCDEFGHJKMNPQRSTVWXYZ",Tr=br.length,Vl=10,Hl=16,Yl=(i,t)=>{let e="";for(let r=0;r<t;r++){let o=i%Tr;e=br.charAt(o)+e,i=(i-o)/Tr;}return e},zl=i=>{let t=randomBytes(i),e="";for(let r=0;r<i;r++){let o=t[r];e+=br.charAt(o%Tr);}return e},qs=()=>{let i=Math.floor(Date.now()/1e3),t=Yl(i,Vl),e=zl(Hl);return t+e};function wr(i){return i.replace(/^[`"]|[`"]$/g,"")}function Sr(i,t,e){if(!i.includes(".")){let n=wr(i);return `${t}.${n}`}let[r,o]=i.split(".");return r=wr(r),o=wr(o),r!==e?i:o==="*"?`${t}.*`:`${t}.${o}`}function w(i){return typeof i=="function"?i():i}var v=(i,t=new WeakMap)=>{if(i===null||typeof i!="object")return i;if(t.has(i))return t.get(i);if(Array.isArray(i)){let r=[];t.set(i,r);for(let o=0;o<i.length;o++)r[o]=v(i[o],t);return r}let e=Object.create(Object.getPrototypeOf(i)||{});t.set(i,e);for(let r of Object.getOwnPropertyNames(i)){let o=i[r];if(typeof o=="function"){e[r]=o;continue}e[r]=v(o,t);}return e};var Se=class{};Se.modelCaseConvention="camel",Se.databaseCaseConvention="snake";var Jl=async(i,t,e,r,o=[],n=[],s=false)=>{let a=new t,l=new Set(e.filter(p=>p.hidden).map(p=>p.columnName)),d=new Map(e.map(p=>[p.databaseName,p])),m=o.length?new Set(o):null;if(await Promise.all(Object.keys(i).map(async p=>{let c=i[p],y=d.get(p)?.columnName??I(p,t.modelCaseConvention);if(y==="$annotations"&&!s){Gl(i,p,a,t,n);return}if(!r.has(y)||l.has(y)||m&&!m.has(y))return;if(c===null){a[y]=null;return}let h=r.get(y);if(h&&h.serialize){a[y]=await h.serialize(c);return}a[y]=c;})),m)for(let p of m)p in a||(a[p]=null);return a},Gl=(i,t,e,r,o=[])=>{let n=i[t];if(!n||!Object.keys(n).length)return;let s=o.length>0?new Set(o):null;if(!s)return;let a={};for(let l of Object.keys(n))s.has(l)&&(a[I(l,r.modelCaseConvention)]=n[l]);Object.keys(a).length>0&&(e[t]=a);},le=async(i,t,e=[],r=[],o=false)=>{if(!i.length)return null;let n=t.getColumns(),s=new Map(n.map(d=>[d.columnName,d])),a=[];for(let d of e){if(d.toLowerCase().includes("as"))continue;let m=d;if(m.includes(".")&&(m=m.split(".").pop()),m==="*")continue;let p=s.get(m)?.columnName??I(m,t.modelCaseConvention);a.push(p);}e=a;let l=await Promise.all(i.map(async d=>await Jl(d,t,n,s,e,r,o)));return l.length===1?l[0]:l};var q={DB_TYPE:process.env.DB_TYPE,DB_HOST:process.env.DB_HOST,DB_PORT:process.env.DB_PORT,DB_USER:process.env.DB_USER,DB_PASSWORD:process.env.DB_PASSWORD,DB_DATABASE:process.env.DB_DATABASE,DB_LOGS:process.env.DB_LOGS==="true",MIGRATION_PATH:process.env.MIGRATION_PATH||"database/migrations",REDIS_HOST:process.env.REDIS_HOST,REDIS_PORT:process.env.REDIS_PORT,REDIS_USERNAME:process.env.REDIS_USERNAME,REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_DATABASE:process.env.REDIS_DATABASE,MONGO_URL:process.env.MONGO_URL,MONGO_LOGS:process.env.MONGO_LOGS==="true"},Xl=()=>{try{ml.readFileSync(".env","utf8").split(`
2
2
  `).forEach(e=>{let[r,o]=e.split("="),n=r.trim(),s=o.trim();switch(n){case "DB_TYPE":q.DB_TYPE||(q.DB_TYPE=s);break;case "DB_HOST":q.DB_HOST||(q.DB_HOST=s);break;case "DB_PORT":q.DB_PORT||(q.DB_PORT=s);break;case "DB_USER":q.DB_USER||(q.DB_USER=s);break;case "DB_PASSWORD":q.DB_PASSWORD||(q.DB_PASSWORD=s);break;case "DB_DATABASE":q.DB_DATABASE||(q.DB_DATABASE=s);break;case "MIGRATION_PATH":q.MIGRATION_PATH||(q.MIGRATION_PATH=s||"database/migrations");break;case "REDIS_HOST":q.REDIS_HOST||(q.REDIS_HOST=s);break;case "REDIS_PORT":q.REDIS_PORT||(q.REDIS_PORT=s);break;case "REDIS_USERNAME":q.REDIS_USERNAME||(q.REDIS_USERNAME=s);break;case "REDIS_PASSWORD":q.REDIS_PASSWORD||(q.REDIS_PASSWORD=s);break;case "REDIS_DATABASE":q.REDIS_DATABASE||(q.REDIS_DATABASE=s);break;case "MONGO_URL":q.MONGO_URL||(q.MONGO_URL=s);break}});}catch{}finally{return q}},M=Xl();var ve=class{constructor(t){switch(this.type=t?.type||M.DB_TYPE,this.type){case "mongo":this.handleMongoSource(t);break;case "cockroachdb":this.handleCockroachdbSource(t);break;case "postgres":this.handlePostgresSource(t);break;case "mariadb":case "mysql":this.handleMysqlSource(t);break;case "sqlite":this.handleSqliteSource(t);break;default:throw new u(`Invalid database type: ${this.type}, please provide a valid database type in your input or in the .env file with the key DB_TYPE
3
- Valid database types are: [mongo, postgres, cockroachdb, mysql, mariadb, sqlite]`,`UNSUPPORTED_DATABASE_TYPE_${this.type}`)}}handleCockroachdbSource(t){this.host=t?.host||M.DB_HOST,this.port=+t?.port||+M.DB_PORT,this.username=t?.username||M.DB_USER,this.password=t?.password||M.DB_PASSWORD,this.database=t?.database||M.DB_DATABASE,this.logs=t?.logs||M.DB_LOGS||false,this.port||(this.port=26257);}handlePostgresSource(t){this.host=t?.host||M.DB_HOST,this.port=+t?.port||+M.DB_PORT,this.username=t?.username||M.DB_USER,this.password=t?.password||M.DB_PASSWORD,this.database=t?.database||M.DB_DATABASE,this.logs=t?.logs||M.DB_LOGS||false,this.port||(this.port=5432);}handleMysqlSource(t){this.host=t?.host||M.DB_HOST,this.port=+t?.port||+M.DB_PORT,this.username=t?.username||M.DB_USER,this.password=t?.password||M.DB_PASSWORD,this.database=t?.database||M.DB_DATABASE,this.logs=t?.logs||M.DB_LOGS||false,this.port||(this.port=3306);}handleSqliteSource(t){this.database=t?.database||M.DB_DATABASE,this.logs=t?.logs||M.DB_LOGS||false;}handleMongoSource(t){this.url=t?.url||M.MONGO_URL,this.logs=t?.logs||M.MONGO_LOGS||false;}};var ed=i=>{let{required:t,...e}=i.openApi||{},r={...e,type:i.openApi?.type||"string",description:i.openApi?.description??`Property: ${i.columnName}`};return i.openApi?.type?{...r,type:i.openApi.type}:Array.isArray(i.type)?{...r,type:"string",enum:i.type}:i.type==="date"||i.type==="datetime"||i.type==="timestamp"||i.type==="time"?{...r,type:"string",format:"date-time"}:i.type==="boolean"?{...r,type:"boolean"}:i.type==="integer"||i.type==="tinyint"||i.type==="smallint"||i.type==="mediumint"||i.type==="increment"?{...r,type:"integer",format:"int32"}:i.type==="biginteger"||i.type==="bigIncrement"?{...r,type:"integer",format:"int64"}:i.type==="float"||i.type==="real"?{...r,type:"number",format:"float"}:i.type==="double"?{...r,type:"number",format:"double"}:i.type==="decimal"||i.type==="numeric"?{...r,type:"number"}:i.type==="json"||i.type==="jsonb"?{...r,type:"object"}:i.type==="uuid"?{...r,type:"string",format:"uuid"}:i.type==="ulid"?{...r,type:"string",format:"ulid"}:i.type==="string"||i.type==="char"||i.type==="varchar"||i.type==="text"||i.type==="longtext"||i.type==="mediumtext"||i.type==="tinytext"?{...r,type:"string"}:i.type==="blob"||i.type==="binary"||i.type==="varbinary"||i.type==="tinyblob"||i.type==="mediumblob"||i.type==="longblob"?{...r,type:"string",format:"binary"}:i.type==="year"?{...r,type:"integer",format:"int32"}:r},td=i=>i.openApi?.required??false,rd=i=>{let t=i.getColumns(),e={};for(let r of t)r.hidden||(e[r.columnName]=ed(r));return e},od=i=>{let t=i.getColumns(),e=[];for(let r of t)td(r)&&e.push(r.columnName);return e||[]},Nr=i=>{let t=rd(i),e=od(i);return {type:"object",properties:t,required:e.length?e:[]}},hu=i=>i.map(t=>Nr(t)),gu=i=>Nr(i),Cs=i=>i.map(t=>({...Nr(t),modelName:t.name}));var Ke={info:"\x1B[32m",warn:"\x1B[33m",error:"\x1B[31m",reset:"\x1B[0m"};function sd(){let i=new Date,t=e=>e.toString().padStart(2,"0");return `${i.getFullYear()}-${t(i.getMonth()+1)}-${t(i.getDate())} ${t(i.getHours())}:${t(i.getMinutes())}:${t(i.getSeconds())}`}function Mr(i,t){let e=sd(),r=i.toUpperCase();return i==="error"?`${Ke.error}[${r}] ${e}
3
+ Valid database types are: [mongo, postgres, cockroachdb, mysql, mariadb, sqlite]`,`UNSUPPORTED_DATABASE_TYPE_${this.type}`)}}handleCockroachdbSource(t){this.host=t?.host||M.DB_HOST,this.port=+t?.port||+M.DB_PORT,this.username=t?.username||M.DB_USER,this.password=t?.password||M.DB_PASSWORD,this.database=t?.database||M.DB_DATABASE,this.logs=t?.logs||M.DB_LOGS||false,this.port||(this.port=26257);}handlePostgresSource(t){this.host=t?.host||M.DB_HOST,this.port=+t?.port||+M.DB_PORT,this.username=t?.username||M.DB_USER,this.password=t?.password||M.DB_PASSWORD,this.database=t?.database||M.DB_DATABASE,this.logs=t?.logs||M.DB_LOGS||false,this.port||(this.port=5432);}handleMysqlSource(t){this.host=t?.host||M.DB_HOST,this.port=+t?.port||+M.DB_PORT,this.username=t?.username||M.DB_USER,this.password=t?.password||M.DB_PASSWORD,this.database=t?.database||M.DB_DATABASE,this.logs=t?.logs||M.DB_LOGS||false,this.port||(this.port=3306);}handleSqliteSource(t){this.database=t?.database||M.DB_DATABASE,this.logs=t?.logs||M.DB_LOGS||false;}handleMongoSource(t){this.url=t?.url||M.MONGO_URL,this.logs=t?.logs||M.MONGO_LOGS||false;}};var ed=i=>{let{required:t,...e}=i.openApi||{},r={...e,type:i.openApi?.type||"string",description:i.openApi?.description??`Property: ${i.columnName}`};return i.openApi?.type?{...r,type:i.openApi.type}:Array.isArray(i.type)?{...r,type:"string",enum:i.type}:i.type==="date"||i.type==="datetime"||i.type==="timestamp"||i.type==="time"?{...r,type:"string",format:"date-time"}:i.type==="boolean"?{...r,type:"boolean"}:i.type==="integer"||i.type==="tinyint"||i.type==="smallint"||i.type==="mediumint"||i.type==="increment"?{...r,type:"integer",format:"int32"}:i.type==="biginteger"||i.type==="bigIncrement"?{...r,type:"integer",format:"int64"}:i.type==="float"||i.type==="real"?{...r,type:"number",format:"float"}:i.type==="double"?{...r,type:"number",format:"double"}:i.type==="decimal"||i.type==="numeric"?{...r,type:"number"}:i.type==="json"||i.type==="jsonb"?{...r,type:"object"}:i.type==="uuid"?{...r,type:"string",format:"uuid"}:i.type==="ulid"?{...r,type:"string",format:"ulid"}:i.type==="string"||i.type==="char"||i.type==="varchar"||i.type==="text"||i.type==="longtext"||i.type==="mediumtext"||i.type==="tinytext"?{...r,type:"string"}:i.type==="blob"||i.type==="binary"||i.type==="varbinary"||i.type==="tinyblob"||i.type==="mediumblob"||i.type==="longblob"?{...r,type:"string",format:"binary"}:i.type==="year"?{...r,type:"integer",format:"int32"}:r},td=i=>i.openApi?.required??false,rd=i=>{let t=i.getColumns(),e={};for(let r of t)r.hidden||(e[r.columnName]=ed(r));return e},od=i=>{let t=i.getColumns(),e=[];for(let r of t)td(r)&&e.push(r.columnName);return e||[]},Nr=i=>{let t=rd(i),e=od(i);return {type:"object",properties:t,required:e.length?e:[]}},hu=i=>i.map(t=>Nr(t)),gu=i=>Nr(i),Cs=i=>i.map(t=>({...Nr(t),modelName:t.name,$id:t.name}));var Ke={info:"\x1B[32m",warn:"\x1B[33m",error:"\x1B[31m",reset:"\x1B[0m"};function sd(){let i=new Date,t=e=>e.toString().padStart(2,"0");return `${i.getFullYear()}-${t(i.getMonth()+1)}-${t(i.getDate())} ${t(i.getHours())}:${t(i.getMinutes())}:${t(i.getSeconds())}`}function Mr(i,t){let e=sd(),r=i.toUpperCase();return i==="error"?`${Ke.error}[${r}] ${e}
4
4
  ${t}${Ke.reset}
5
5
  `:i==="warn"?`${Ke.warn}[${r}] ${e}
6
6
  ${t}${Ke.reset}