appos 0.1.16-0 → 0.1.18-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,6 +1,6 @@
1
1
  import * as drizzle_orm from 'drizzle-orm';
2
2
  import { RelationsBuilder } from 'drizzle-orm';
3
- export * from 'drizzle-orm';
3
+ export { AggregatedField, AnyColumn, AnyDBQueryConfig, AnyMany, AnyManyConfig, AnyOne, AnyOneConfig, AnyRelation, AnyRelations, AnyRelationsBuilderConfig, AnyRelationsFilter, AnyTable, AnyTableFilter, Assume, BinaryOperator, BuildColumn, BuildColumns, BuildExtraConfigColumns, BuildIndexColumn, BuildQueryConfig, BuildQueryResult, BuildRelationResult, BuildRelationalQueryResult, BuiltRelationFilters, Relation, TableAliasProxyHandler, defineRelations, defineRelationsPart, sql } from 'drizzle-orm';
4
4
  import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
5
5
  export { AnyForeignKeyBuilder, AnyIndexBuilder, AnyPgColumn, AnyPgDeleteBase, AnyPgInsert, AnyPgSelect, AnyPgSelectQueryBuilder, AnyPgSetOperatorInterface, AnyPgTable, AnyPgUpdate, BuildAliasTable, Check, CheckBuilder, ColumnsWithTable, CreatePgSelectFromBuilderMode, ForeignKey, ForeignKeyBuilder, GetColumnsTableName, GetPgSetOperators, Index, IndexBuilder, IndexBuilderOn, IndexColumn, IndexedColumn, IndexedExtraConfigType, PgArray, PgArrayBuilder, PgArrayColumnBuilderBaseConfig, PgBigInt53, PgBigInt53Builder, PgBigInt64, PgBigInt64Builder, PgBigIntConfig, PgBigSerial53, PgBigSerial53Builder, PgBigSerial64, PgBigSerial64Builder, PgBigSerialConfig, PgBinaryVector, PgBinaryVectorBuilder, PgBinaryVectorConfig, PgBoolean, PgBooleanBuilder, PgBytea, PgByteaBuilder, PgChar, PgCharBuilder, PgCharConfig, PgCidr, PgCidrBuilder, PgColumn, PgColumnBuilder, PgCustomColumn, PgCustomColumnBuilder, PgCustomColumnInnerConfig, PgDatabase, PgDate, PgDateBuilder, PgDateConfig, PgDateString, PgDateStringBuilder, PgDeleteBase, PgDeleteConfig, PgDeleteDynamic, PgDeleteReturning, PgDeleteReturningAll, PgDialect, PgDialectConfig, PgEnum, PgEnumObject, PgGeometry, PgGeometryBuilder, PgGeometryConfig, PgGeometryObject, PgGeometryObjectBuilder, PgHalfVector, PgHalfVectorBuilder, PgHalfVectorConfig, PgInsertBuilder, PgInsertConfig, PgInsertOnConflictDoUpdateConfig, PgInsertSelectQueryBuilder, PgInteger, PgIntegerBuilder, PgJson, PgJsonBuilder, PgJsonb, PgJsonbBuilder, PgLineABC, PgLineABCBuilder, PgLineBuilder, PgLineTypeConfig, PgMacaddr, PgMacaddr8, PgMacaddr8Builder, PgMacaddrBuilder, PgMaterializedViewConfig, PgNumeric, PgNumericBigInt, PgNumericBigIntBuilder, PgNumericBuilder, PgNumericConfig, PgNumericNumber, PgNumericNumberBuilder, PgPointConfig, PgPolicyConfig, PgQueryResultHKT, PgQueryResultKind, PgReal, PgRealBuilder, PgRoleConfig, PgSelectConfig, PgSelectCrossJoinFn, PgSelectHKT, PgSelectHKTBase, PgSelectJoin, PgSelectJoinConfig, PgSelectJoinFn, PgSelectKind, PgSelectQueryBuilder, PgSelectQueryBuilderBase, PgSelectQueryBuilderHKT, PgSetOperatorInterface, PgSparseVectorConfig, PgTable, PgTableExtraConfig, PgTableExtraConfigValue, PgTableFn, PgTableWithColumns, PgText, PgTextBuilder, PgTextConfig, PgTimestampConfig, PgTransactionConfig, PgUpdate, PgUpdateBase, PgUpdateBuilder, PgUpdateConfig, PgUpdateDynamic, PgUpdateJoin, PgUpdateJoinFn, PgUpdatePrepare, PgUpdateReturning, PgUpdateReturningAll, PgUpdateSetSource, PgUpdateWithJoins, PgUpdateWithout, PgVarcharConfig, PgVectorConfig, PgViewWithSelection, Precision, PreparedQueryConfig, PrimaryKey, QueryBuilder, SelectedFields, SelectedFieldsFlat, SelectedFieldsOrdered, TableConfig, TableLikeHasEmptySelection, TimeConfig, UniqueConstraint, UniqueConstraintBuilder, UniqueOnConstraintBuilder, UpdateDeleteAction, ViewBuilder, WithBuilder, WithSubqueryWithSelection, alias, bigint, bigserial, bit, boolean, bytea, char, check, cidr, customType, date, decimal, doublePrecision, except, exceptAll, extractUsedTable, foreignKey, geometry, getMaterializedViewConfig, getTableConfig, getViewConfig, halfvec, index, inet, integer, intersect, intersectAll, interval, isPgEnum, isPgMaterializedView, isPgSchema, isPgSequence, isPgView, json, jsonb, line, macaddr, macaddr8, makePgArray, numeric, parsePgArray, parsePgNestedArray, pgEnum, pgMaterializedView, pgPolicy, pgRole, pgSchema, pgSequence, pgTable, pgTableCreator, pgView, point, primaryKey, real, serial, smallint, smallserial, sparsevec, text, time, timestamp, union, unionAll, unique, uniqueIndex, uniqueKeyName, uuid, withReplicas } from 'drizzle-orm/pg-core';
6
6
 
@@ -1,9 +1,9 @@
1
- var Un=Object.defineProperty;var n=(i,e)=>Un(i,"name",{value:e,configurable:!0});var l=Symbol.for("drizzle:entityKind"),xo=Symbol.for("drizzle:hasOwnEntityKind");function f(i,e){if(!i||typeof i!="object")return!1;if(i instanceof e)return!0;if(!Object.prototype.hasOwnProperty.call(e,l))throw new Error(`Class "${e.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let t=Object.getPrototypeOf(i).constructor;if(t)for(;t;){if(l in t&&t[l]===e[l])return!0;t=Object.getPrototypeOf(t)}return!1}n(f,"is");var v=class{static{n(this,"Column")}static[l]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;length;isLengthExact;config;table;onInit(){}constructor(e,t){this.config=t,this.onInit(),this.table=e,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity,this.length=t.length,this.isLengthExact=t.isLengthExact}mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}};function vo(i){return i.table}n(vo,"getColumnTable");function Oo(i){let[e,t]=i.dataType.split(" ");return{type:e,constraint:t}}n(Oo,"extractExtendedColumnType");var Li=class{static{n(this,"ColumnBuilder")}static[l]="ColumnBuilder";config;constructor(e,t,r){this.config={name:e,keyAsName:e==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:r,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(e){return this.config.onUpdateFn=e,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(e){this.config.name===""&&(this.config.name=e)}};var X=Symbol.for("drizzle:Name");var Be=class{static{n(this,"ForeignKeyBuilder")}static[l]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(e,t){this.reference=()=>{let{name:r,columns:s,foreignColumns:a}=e();return{name:r,columns:s,foreignTable:a[0].table,foreignColumns:a}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e===void 0?"no action":e,this}onDelete(e){return this._onDelete=e===void 0?"no action":e,this}build(e){return new Ii(e,this)}},Ii=class{static{n(this,"ForeignKey")}constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[l]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:r}=this.reference(),s=t.map(m=>m.name),a=r.map(m=>m.name),c=[this.table[X],...s,r[0].table[X],...a];return e??`${c.join("_")}_fk`}};function Jn(i){function e(){let{name:t,columns:r,foreignColumns:s}=i;return{name:t,columns:r,foreignColumns:s}}return n(e,"mappedConfig"),new Be(e)}n(Jn,"foreignKey");function We(i,...e){return i(...e)}n(We,"iife");function It(i){return new zi(i)}n(It,"unique");function He(i,e){return`${i[X]}_${e.join("_")}_unique`}n(He,"uniqueKeyName");var Ge=class{static{n(this,"UniqueConstraintBuilder")}constructor(e,t){this.name=t,this.columns=e}static[l]="PgUniqueConstraintBuilder";columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new Fi(e,this.columns,this.nullsNotDistinctConfig,this.name)}},zi=class{static{n(this,"UniqueOnConstraintBuilder")}static[l]="PgUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new Ge(e,this.name)}},Fi=class{static{n(this,"UniqueConstraint")}constructor(e,t,r,s){this.table=e,this.columns=t,this.name=s??He(this.table,this.columns.map(a=>a.name)),this.nullsNotDistinct=r}static[l]="PgUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}};function Ki(i,e,t){for(let r=e;r<i.length;r++){let s=i[r];if(s==="\\"){r++;continue}if(s==='"')return[i.slice(e,r).replace(/\\/g,""),r+1];if(!t&&(s===","||s==="}"))return[i.slice(e,r).replace(/\\/g,""),r]}return[i.slice(e).replace(/\\/g,""),i.length]}n(Ki,"parsePgArrayValue");function zt(i,e=0){let t=[],r=e,s=!1;for(;r<i.length;){let a=i[r];if(a===","){(s||r===e)&&t.push(""),s=!0,r++;continue}if(s=!1,a==="\\"){r+=2;continue}if(a==='"'){let[g,h]=Ki(i,r+1,!0);t.push(g),r=h;continue}if(a==="}")return[t,r+1];if(a==="{"){let[g,h]=zt(i,r+1);t.push(g),r=h;continue}let[c,m]=Ki(i,r,!1);t.push(c),r=m}return[t,r]}n(zt,"parsePgNestedArray");function Ye(i){let[e]=zt(i,1);return e}n(Ye,"parsePgArray");function Ze(i){return`{${i.map(e=>Array.isArray(e)?Ze(e):typeof e=="string"?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}n(Ze,"makePgArray");var S=class extends Li{static{n(this,"PgColumnBuilder")}foreignKeyConfigs=[];static[l]="PgColumnBuilder";array(e){return new Ei(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:"always",mode:"stored"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:r,actions:s})=>We((a,c)=>{let m=new Be(()=>{let g=a();return{columns:[e],foreignColumns:[g]}});return c.onUpdate&&m.onUpdate(c.onUpdate),c.onDelete&&m.onDelete(c.onDelete),m.build(t)},r,s))}buildExtraConfigColumn(e){return new Wn(e,this.config)}},y=class extends v{static{n(this,"PgColumn")}static[l]="PgColumn";table;constructor(e,t){t.uniqueName||(t.uniqueName=He(e,[t.name])),super(e,t),this.table=e}},Wn=class extends y{static{n(this,"ExtraConfigColumn")}static[l]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(e){return this.indexConfig.opClass=e,this}},Qe=class{static{n(this,"IndexedColumn")}static[l]="IndexedColumn";constructor(e,t,r,s){this.name=e,this.keyAsName=t,this.type=r,this.indexConfig=s}name;keyAsName;type;indexConfig},Ei=class extends S{static{n(this,"PgArrayBuilder")}static[l]="PgArrayBuilder";constructor(e,t,r){super(e,"array basecolumn","PgArray"),this.config.baseBuilder=t,this.config.length=r}build(e){let t=this.config.baseBuilder.build(e);return new Xe(e,this.config,t)}},Xe=class Ri extends y{static{n(this,"PgArray")}constructor(e,t,r,s){super(e,t),this.baseColumn=r,this.range=s}static[l]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.length=="number"?this.length:""}]`}mapFromDriverValue(e){return typeof e=="string"&&(e=Ye(e)),e.map(t=>this.baseColumn.mapFromDriverValue(t))}mapFromJsonValue(e){typeof e=="string"&&(e=Ye(e));let t=this.baseColumn;return"mapFromJsonValue"in t?e.map(r=>t.mapFromJsonValue(r)):e.map(r=>t.mapFromDriverValue(r))}mapToDriverValue(e,t=!1){let r=e.map(s=>s===null?null:f(this.baseColumn,Ri)?this.baseColumn.mapToDriverValue(s,!0):this.baseColumn.mapToDriverValue(s));return t?r:Ze(r)}};var Hn=class extends S{static{n(this,"PgEnumObjectColumnBuilder")}static[l]="PgEnumObjectColumnBuilder";constructor(e,t){super(e,"string enum","PgEnumObjectColumn"),this.config.enum=t}build(e){return new Gn(e,this.config)}},Gn=class extends y{static{n(this,"PgEnumObjectColumn")}static[l]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}},et=Symbol.for("drizzle:isPgEnum");function Ft(i){return!!i&&typeof i=="function"&&et in i&&i[et]===!0}n(Ft,"isPgEnum");var Yn=class extends S{static{n(this,"PgEnumColumnBuilder")}static[l]="PgEnumColumnBuilder";constructor(e,t){super(e,"string enum","PgEnumColumn"),this.config.enum=t}build(e){return new Zn(e,this.config)}},Zn=class extends y{static{n(this,"PgEnumColumn")}static[l]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}};function Xn(i,e){return Array.isArray(e)?Kt(i,[...e],void 0):Et(i,e,void 0)}n(Xn,"pgEnum");function Kt(i,e,t){let r=Object.assign(s=>new Yn(s??"",r),{enumName:i,enumValues:e,schema:t,[et]:!0});return r}n(Kt,"pgEnumWithSchema");function Et(i,e,t){let r=Object.assign(s=>new Hn(s??"",r),{enumName:i,enumValues:Object.values(e),schema:t,[et]:!0});return r}n(Et,"pgEnumObjectWithSchema");var I=class{static{n(this,"Subquery")}static[l]="Subquery";constructor(e,t,r,s=!1,a=[]){this._={brand:"Subquery",sql:e,selectedFields:t,alias:r,isWith:s,usedTables:a}}},tt=class extends I{static{n(this,"WithSubquery")}static[l]="WithSubquery"};var ki="1.0.0-beta.1-fd8bfcc";var Rt,kt,z={startActiveSpan(i,e){return Rt?(kt||(kt=Rt.trace.getTracer("drizzle-orm",ki)),We((t,r)=>r.startActiveSpan(i,s=>{try{return e(s)}catch(a){throw s.setStatus({code:t.SpanStatusCode.ERROR,message:a instanceof Error?a.message:"Unknown error"}),a}finally{s.end()}}),Rt,kt)):e()}};var A=Symbol.for("drizzle:ViewBaseConfig");var ie=Symbol.for("drizzle:Schema"),H=Symbol.for("drizzle:Columns"),Mi=Symbol.for("drizzle:ExtraConfigColumns"),ye=Symbol.for("drizzle:OriginalName"),Mt=Symbol.for("drizzle:BaseName"),de=Symbol.for("drizzle:IsAlias"),Ui=Symbol.for("drizzle:ExtraConfigBuilder"),Ji=Symbol.for("drizzle:IsDrizzleTable"),b=class{static{n(this,"Table")}static[l]="Table";static Symbol={Name:X,Schema:ie,OriginalName:ye,Columns:H,ExtraConfigColumns:Mi,BaseName:Mt,IsAlias:de,ExtraConfigBuilder:Ui};[X];[ye];[ie];[H];[Mi];[Mt];[de]=!1;[Ji]=!0;[Ui]=void 0;constructor(e,t,r){this[X]=this[ye]=e,this[ie]=t,this[Mt]=r}getSQL=void 0};function Va(i){return typeof i=="object"&&i!==null&&Ji in i}n(Va,"isTable");function G(i){return i[X]}n(G,"getTableName");function De(i){return`${i[ie]??"public"}.${i[X]}`}n(De,"getTableUniqueName");var Ua=class{static{n(this,"FakePrimitiveParam")}static[l]="FakePrimitiveParam"};function je(i){return i!=null&&typeof i.getSQL=="function"}n(je,"isSQLWrapper");function es(i){let e={sql:"",params:[]};for(let t of i)e.sql+=t.sql,e.params.push(...t.params),t.typings?.length&&(e.typings||(e.typings=[]),e.typings.push(...t.typings));return e}n(es,"mergeQueries");var R=class{static{n(this,"StringChunk")}static[l]="StringChunk";value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new w([this])}},w=class Ve{static{n(this,"SQL")}constructor(e){this.queryChunks=e;for(let t of e)if(f(t,b)){let r=t[b.Symbol.Schema];this.usedTables.push(r===void 0?t[b.Symbol.Name]:r+"."+t[b.Symbol.Name])}}static[l]="SQL";decoder=Hi;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return z.startActiveSpan("drizzle.buildSQL",t=>{let r=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":r.sql,"drizzle.query.params":JSON.stringify(r.params)}),r})}buildQueryFromSourceParams(e,t){let r=Object.assign({},t,{inlineParams:t.inlineParams||this.shouldInlineParams,paramStartIndex:t.paramStartIndex||{value:0}}),{casing:s,escapeName:a,escapeParam:c,prepareTyping:m,inlineParams:g,paramStartIndex:h}=r;return es(e.map(d=>{if(f(d,R))return{sql:d.value.join(""),params:[]};if(f(d,it))return{sql:a(d.value),params:[]};if(d===void 0)return{sql:"",params:[]};if(Array.isArray(d)){let p=[new R("(")];for(let[P,u]of d.entries())p.push(u),P<d.length-1&&p.push(new R(", "));return p.push(new R(")")),this.buildQueryFromSourceParams(p,r)}if(f(d,Ve))return this.buildQueryFromSourceParams(d.queryChunks,{...r,inlineParams:g||d.shouldInlineParams});if(f(d,b)){let p=d[b.Symbol.Schema],P=d[b.Symbol.Name];return{sql:p===void 0||d[de]?a(P):a(p)+"."+a(P),params:[]}}if(f(d,v)){let p=s.getColumnCasing(d);if(t.invokeSource==="indexes")return{sql:a(p),params:[]};let P=d.table[b.Symbol.Schema];return{sql:d.table[de]||P===void 0?a(d.table[b.Symbol.Name])+"."+a(p):a(P)+"."+a(d.table[b.Symbol.Name])+"."+a(p),params:[]}}if(f(d,W)){let p=d[A].schema,P=d[A].name;return{sql:p===void 0||d[A].isAlias?a(P):a(p)+"."+a(P),params:[]}}if(f(d,ee)){if(f(d.value,ae))return{sql:c(h.value++,d),params:[d],typings:["none"]};let p=d.value===null?null:d.encoder.mapToDriverValue(d.value);if(f(p,Ve))return this.buildQueryFromSourceParams([p],r);if(g)return{sql:this.mapInlineParam(p,r),params:[]};let P=["none"];return m&&(P=[m(d.encoder)]),{sql:c(h.value++,p),params:[p],typings:P}}return f(d,ae)?{sql:c(h.value++,d),params:[d],typings:["none"]}:f(d,Ve.Aliased)&&d.fieldAlias!==void 0?{sql:a(d.fieldAlias),params:[]}:f(d,I)?d._.isWith?{sql:a(d._.alias),params:[]}:this.buildQueryFromSourceParams([new R("("),d._.sql,new R(") "),new it(d._.alias)],r):Ft(d)?d.schema?{sql:a(d.schema)+"."+a(d.enumName),params:[]}:{sql:a(d.enumName),params:[]}:je(d)?d.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([d.getSQL()],r):this.buildQueryFromSourceParams([new R("("),d.getSQL(),new R(")")],r):g?{sql:this.mapInlineParam(d,r),params:[]}:{sql:c(h.value++,d),params:[d],typings:["none"]}}))}mapInlineParam(e,{escapeString:t}){if(e===null)return"null";if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="string")return t(e);if(typeof e=="object"){let r=e.toString();return t(r==="[object Object]"?JSON.stringify(e):r)}throw new Error("Unexpected param value: "+e)}getSQL(){return this}as(e){return e===void 0?this:new Ve.Aliased(this,e)}mapWith(e){return this.decoder=typeof e=="function"?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}},it=class{static{n(this,"Name")}constructor(e){this.value=e}static[l]="Name";brand;getSQL(){return new w([this])}};function Ga(i){return new it(i)}n(Ga,"name");function Wi(i){return typeof i=="object"&&i!==null&&"mapToDriverValue"in i&&typeof i.mapToDriverValue=="function"}n(Wi,"isDriverValueEncoder");var Hi={mapFromDriverValue:n(i=>i,"mapFromDriverValue")},Gi={mapToDriverValue:n(i=>i,"mapToDriverValue")},Ya={...Hi,...Gi},ee=class{static{n(this,"Param")}constructor(e,t=Gi){this.value=e,this.encoder=t}static[l]="Param";brand;getSQL(){return new w([this])}};function Xa(i,e){return new ee(i,e)}n(Xa,"param");function o(i,...e){let t=[];(e.length>0||i.length>0&&i[0]!=="")&&t.push(new R(i[0]));for(let[r,s]of e.entries())t.push(s,new R(i[r+1]));return new w(t)}n(o,"sql");(i=>{function e(){return new w([])}n(e,"empty"),i.empty=e;function t(g){return new w(g)}n(t,"fromList"),i.fromList=t;function r(g){return new w([new R(g)])}n(r,"raw"),i.raw=r;function s(g,h){let d=[];for(let[p,P]of g.entries())p>0&&h!==void 0&&d.push(h),d.push(P);return new w(d)}n(s,"join"),i.join=s;function a(g){return new it(g)}n(a,"identifier"),i.identifier=a;function c(g){return new ae(g)}n(c,"placeholder2"),i.placeholder=c;function m(g,h){return new ee(g,h)}n(m,"param2"),i.param=m})(o||(o={}));(i=>{let e=class Yi{static{n(this,"Aliased")}constructor(r,s){this.sql=r,this.fieldAlias=s}static[l]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Yi(this.sql,this.fieldAlias)}};i.Aliased=e})(w||(w={}));var ae=class{static{n(this,"Placeholder")}constructor(e){this.name=e}static[l]="Placeholder";getSQL(){return new w([this])}};function tl(i){return new ae(i)}n(tl,"placeholder");function il(i,e){return i.map(t=>{if(f(t,ae)){if(!(t.name in e))throw new Error(`No value for placeholder "${t.name}" was provided`);return e[t.name]}if(f(t,ee)&&f(t.value,ae)){if(!(t.value.name in e))throw new Error(`No value for placeholder "${t.value.name}" was provided`);return t.encoder.mapToDriverValue(e[t.value.name])}return t})}n(il,"fillPlaceholders");var Zi=Symbol.for("drizzle:IsDrizzleView"),W=class{static{n(this,"View")}static[l]="View";[A];[Zi]=!0;get[X](){return this[A].name}get[ie](){return this[A].schema}get[de](){return this[A].isAlias}get[ye](){return this[A].originalName}get[H](){return this[A].selectedFields}constructor({name:e,schema:t,selectedFields:r,query:s}){this[A]={name:e,originalName:e,schema:t,selectedFields:r,query:s,isExisting:!s,isAlias:!1}}getSQL(){return new w([this])}};function nl(i){return typeof i=="object"&&i!==null&&Zi in i}n(nl,"isView");function sl(i){return i[A].name}n(sl,"getViewName");v.prototype.getSQL=function(){return new w([this])};b.prototype.getSQL=function(){return new w([this])};I.prototype.getSQL=function(){return new w([this])};var Le=class{static{n(this,"ColumnAliasProxyHandler")}constructor(e){this.table=e}static[l]="ColumnAliasProxyHandler";get(e,t){return t==="table"?this.table:e[t]}},Te=class{static{n(this,"TableAliasProxyHandler")}constructor(e,t){this.alias=e,this.replaceOriginalName=t}static[l]="TableAliasProxyHandler";get(e,t){if(t===b.Symbol.IsAlias)return!0;if(t===b.Symbol.Name)return this.alias;if(this.replaceOriginalName&&t===b.Symbol.OriginalName)return this.alias;if(t===A)return{...e[A],name:this.alias,isAlias:!0};if(t===b.Symbol.Columns){let s=e[b.Symbol.Columns];if(!s)return s;let a={};return Object.keys(s).map(c=>{a[c]=new Proxy(s[c],new Le(new Proxy(e,this)))}),a}let r=e[t];return f(r,v)?new Proxy(r,new Le(new Proxy(e,this))):r}},ts=class{static{n(this,"RelationTableAliasProxyHandler")}constructor(e){this.alias=e}static[l]="RelationTableAliasProxyHandler";get(e,t){return t==="sourceTable"?oe(e.sourceTable,this.alias):e[t]}};function oe(i,e){return new Proxy(i,new Te(e,!1))}n(oe,"aliasedTable");function pl(i,e){return new Proxy(i,new ts(e))}n(pl,"aliasedRelation");function le(i,e){return new Proxy(i,new Le(new Proxy(i.table,new Te(e,!1))))}n(le,"aliasedTableColumn");function Ut(i,e){return new w.Aliased(Ie(i.sql,e),i.fieldAlias)}n(Ut,"mapColumnsInAliasedSQLToAlias");function Ie(i,e){return o.join(i.queryChunks.map(t=>f(t,v)?le(t,e):f(t,w)?Ie(t,e):f(t,w.Aliased)?Ut(t,e):t))}n(Ie,"mapColumnsInSQLToAlias");var be=class extends Error{static{n(this,"DrizzleError")}static[l]="DrizzleError";constructor({message:e,cause:t}){super(e),this.name="DrizzleError",this.cause=t}},Sl=class Xi extends Error{static{n(this,"DrizzleQueryError")}constructor(e,t,r){super(`Failed query: ${e}
2
- params: ${t}`),this.query=e,this.params=t,this.cause=r,Error.captureStackTrace(this,Xi),r&&(this.cause=r)}static[l]="DrizzleQueryError"},Cl=class extends be{static{n(this,"TransactionRollbackError")}static[l]="TransactionRollbackError";constructor(){super({message:"Rollback"})}};var is=class{static{n(this,"ConsoleLogWriter")}static[l]="ConsoleLogWriter";write(e){console.log(e)}},vl=class{static{n(this,"DefaultLogger")}static[l]="DefaultLogger";writer;constructor(e){this.writer=e?.writer??new is}logQuery(e,t){let r=t.map(a=>{try{return JSON.stringify(a)}catch{return String(a)}}),s=r.length?` -- params: [${r.join(", ")}]`:"";this.writer.write(`Query: ${e}${s}`)}},Al=class{static{n(this,"NoopLogger")}static[l]="NoopLogger";logQuery(){}};var U=class{static{n(this,"QueryPromise")}static[l]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}};function F(i,e){return Wi(e)&&!je(i)&&!f(i,ee)&&!f(i,ae)&&!f(i,v)&&!f(i,b)&&!f(i,W)?new ee(i,e):i}n(F,"bindIfParam");var ue=n((i,e)=>o`${i} = ${F(e,i)}`,"eq"),rt=n((i,e)=>o`${i} <> ${F(e,i)}`,"ne");function J(...i){let e=i.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new w(e):new w([new R("("),o.join(e,new R(" and ")),new R(")")])}n(J,"and");function Ne(...i){let e=i.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new w(e):new w([new R("("),o.join(e,new R(" or ")),new R(")")])}n(Ne,"or");function $e(i){return o`not ${i}`}n($e,"not");var nt=n((i,e)=>o`${i} > ${F(e,i)}`,"gt"),st=n((i,e)=>o`${i} >= ${F(e,i)}`,"gte"),ot=n((i,e)=>o`${i} < ${F(e,i)}`,"lt"),at=n((i,e)=>o`${i} <= ${F(e,i)}`,"lte");function lt(i,e){return Array.isArray(e)?e.length===0?o`false`:o`${i} in ${e.map(t=>F(t,i))}`:o`${i} in ${F(e,i)}`}n(lt,"inArray");function ut(i,e){return Array.isArray(e)?e.length===0?o`true`:o`${i} not in ${e.map(t=>F(t,i))}`:o`${i} not in ${F(e,i)}`}n(ut,"notInArray");function ct(i){return o`${i} is null`}n(ct,"isNull");function mt(i){return o`${i} is not null`}n(mt,"isNotNull");function ze(i){return o`exists ${i}`}n(ze,"exists");function Fe(i){return o`not exists ${i}`}n(Fe,"notExists");function dt(i,e,t){return o`${i} between ${F(e,i)} and ${F(t,i)}`}n(dt,"between");function ft(i,e,t){return o`${i} not between ${F(e,i)} and ${F(t,i)}`}n(ft,"notBetween");function ht(i,e){return o`${i} like ${e}`}n(ht,"like");function gt(i,e){return o`${i} not like ${e}`}n(gt,"notLike");function pt(i,e){return o`${i} ilike ${e}`}n(pt,"ilike");function yt(i,e){return o`${i} not ilike ${e}`}n(yt,"notIlike");function er(i,e){if(Array.isArray(e)){if(e.length===0)throw new Error("arrayContains requires at least one value");let t=o`${F(e,i)}`;return o`${i} @> ${t}`}return o`${i} @> ${F(e,i)}`}n(er,"arrayContains");function tr(i,e){if(Array.isArray(e)){if(e.length===0)throw new Error("arrayContained requires at least one value");let t=o`${F(e,i)}`;return o`${i} <@ ${t}`}return o`${i} <@ ${F(e,i)}`}n(tr,"arrayContained");function ir(i,e){if(Array.isArray(e)){if(e.length===0)throw new Error("arrayOverlaps requires at least one value");let t=o`${F(e,i)}`;return o`${i} && ${t}`}return o`${i} && ${F(e,i)}`}n(ir,"arrayOverlaps");function Pe(i){return o`${i} asc`}n(Pe,"asc");function Ke(i){return o`${i} desc`}n(Ke,"desc");function rr(i,e){for(let t of Object.values(i))for(let[r,s]of Object.entries(t.relations))f(s,ve)&&(s.sourceTable=t.table,s.fieldName=r);for(let[t,r]of Object.entries(i))for(let[s,a]of Object.entries(r.relations)){if(!f(a,ve))continue;let c,{targetTableName:m,alias:g,sourceColumns:h,targetColumns:d,throughTable:p,sourceTable:P,through:u,targetTable:x,where:C,sourceColumnTableNames:Q,targetColumnTableNames:T}=a,N=`relations -> ${r.name}: { ${s}: r.${f(a,wt)?"one":"many"}.${m}(...) }`;if(s in r.table[H])throw new Error(`${N}: relation name collides with column "${s}" of table "${r.name}"`);if(typeof g=="string"&&!g)throw new Error(`${N}: "alias" cannot be an empty string - omit it if you don't need it`);if(h?.length===0)throw new Error(`${N}: "from" cannot be empty`);if(d?.length===0)throw new Error(`${N}: "to" cannot be empty`);if(h&&d){if(h.length!==d.length&&!p)throw new Error(`${N}: "from" and "to" fields without "through" must have the same length`);for(let B of Q)if(B!==t)throw new Error(`${N}: all "from" columns must belong to table "${t}", found column of table "${B}"`);for(let B of T)if(B!==m)throw new Error(`${N}: all "to" columns must belong to table "${x}", found column of table "${B}"`);if(u){if(u.source.length!==h.length||u.target.length!==d.length)throw new Error(`${N}: ".through(column)" must be used either on all columns in "from" and "to" or not defined on any of them`);for(let B of u.source)if(e[B._.tableName]!==p)throw new Error(`${N}: ".through(column)" must be used on the same table by all columns of the relation`);for(let B of u.target)if(e[B._.tableName]!==p)throw new Error(`${N}: ".through(column)" must be used on the same table by all columns of the relation`)}continue}if(h||d)throw new Error(`${N}: relation must have either both "from" and "to" defined, or none of them`);let D=i[m];if(!D)throw new Error(`${N}: not enough data provided to build the relation - "from"/"to" are not defined, and no reverse relations of table "${m}" were found"`);if(g){let B=Object.values(D.relations).filter(V=>f(V,ve)&&V.alias===g&&V!==a);if(B.length>1)throw new Error(`${N}: not enough data provided to build the relation - "from"/"to" are not defined, and multiple relations with alias "${g}" found in table "${m}": ${B.map(V=>`"${V.fieldName}"`).join(", ")}`);if(c=B[0],!c)throw new Error(`${N}: not enough data provided to build the relation - "from"/"to" are not defined, and there is no reverse relation of table "${m}" with alias "${g}"`)}else{let B=Object.values(D.relations).filter(V=>f(V,ve)&&V.targetTable===P&&!V.alias&&V!==a);if(B.length>1)throw new Error(`${N}: not enough data provided to build the relation - "from"/"to" are not defined, and multiple relations between "${m}" and "${t}" were found.
3
- Hint: you can specify "alias" on both sides of the relation with the same value`);if(c=B[0],!c)throw new Error(`${N}: not enough data provided to build the relation - "from"/"to" are not defined, and no reverse relation of table "${m}" with target table "${t}" was found`)}if(!c.sourceColumns||!c.targetColumns)throw new Error(`${N}: not enough data provided to build the relation - "from"/"to" are not defined, and reverse relation "${m}.${c.fieldName}" does not have "from"/"to" defined`);a.sourceColumns=c.targetColumns,a.targetColumns=c.sourceColumns,a.through=c.through?{source:c.through.target,target:c.through.source}:void 0,a.throughTable=c.throughTable,a.isReversed=!C,a.where=C??c.where}return i}n(rr,"processRelations");function rs(i,e){let t={};for(let[r,s]of Object.entries(i))t[r]={table:s,name:r,relations:e[r]??{}};return rr(t,i)}n(rs,"buildRelations");function ns(i,e){let t={};for(let[r,s]of Object.entries(e))!s||!i[r]||(t[r]={table:i[r],name:r,relations:s});return rr(t,i)}n(ns,"buildRelationsParts");var ve=class{static{n(this,"Relation")}constructor(e,t){this.targetTableName=t,this.targetTable=e}static[l]="RelationV2";fieldName;sourceColumns;targetColumns;alias;where;sourceTable;targetTable;through;throughTable;isReversed;sourceColumnTableNames=[];targetColumnTableNames=[]},wt=class extends ve{static{n(this,"One")}static[l]="OneV2";relationType="one";optional;constructor(e,t,r,s){super(t,r),this.alias=s?.alias,this.where=s?.where,s?.from&&(this.sourceColumns=(Array.isArray(s.from)?s.from:[s.from]).map(a=>(this.throughTable??=a._.through?e[a._.through._.tableName]:void 0,this.sourceColumnTableNames.push(a._.tableName),a._.column))),s?.to&&(this.targetColumns=(Array.isArray(s.to)?s.to:[s.to]).map(a=>(this.throughTable??=a._.through?e[a._.through._.tableName]:void 0,this.targetColumnTableNames.push(a._.tableName),a._.column))),this.throughTable&&(this.through={source:(Array.isArray(s?.from)?s.from:s?.from?[s.from]:[]).map(a=>a._.through),target:(Array.isArray(s?.to)?s.to:s?.to?[s.to]:[]).map(a=>a._.through)}),this.optional=s?.optional??!0}},ss=class extends ve{static{n(this,"Many")}constructor(e,t,r,s){super(t,r),this.config=s,this.alias=s?.alias,this.where=s?.where,s?.from&&(this.sourceColumns=(Array.isArray(s.from)?s.from:[s.from]).map(a=>(this.throughTable??=a._.through?e[a._.through._.tableName]:void 0,this.sourceColumnTableNames.push(a._.tableName),a._.column))),s?.to&&(this.targetColumns=(Array.isArray(s.to)?s.to:[s.to]).map(a=>(this.throughTable??=a._.through?e[a._.through._.tableName]:void 0,this.targetColumnTableNames.push(a._.tableName),a._.column))),this.throughTable&&(this.through={source:(Array.isArray(s?.from)?s.from:s?.from?[s.from]:[]).map(a=>a._.through),target:(Array.isArray(s?.to)?s.to:s?.to?[s.to]:[]).map(a=>a._.through)})}static[l]="ManyV2";relationType="many"},os=class{static{n(this,"AggregatedField")}static[l]="AggregatedField";table;onTable(e){return this.table=e,this}},as=class extends os{static{n(this,"Count")}static[l]="AggregatedFieldCount";query;getSQL(){if(!this.query){if(!this.table)throw new Error("Table must be set before building aggregate field");this.query=o`select count(*) as ${o.identifier("r")} from ${we(this.table)}`.mapWith(Number)}return this.query}},qe={and:J,between:dt,eq:ue,exists:ze,gt:nt,gte:st,ilike:pt,inArray:lt,arrayContains:er,arrayContained:tr,arrayOverlaps:ir,isNull:ct,isNotNull:mt,like:ht,lt:ot,lte:at,ne:rt,not:$e,notBetween:ft,notExists:Fe,notLike:gt,notIlike:yt,notInArray:ut,or:Ne,sql:o},nr={sql:o,asc:Pe,desc:Ke};function su(){return nr}n(su,"getOrderByOperators");function Pt(i,e,t=c=>c,r=!1,s=!1,a){for(let c of e){if(c.selection){let d=`${a?`${a}.`:""}${c.key}`;if(i[c.key]===null)continue;if(r&&(i[c.key]=JSON.parse(i[c.key])),s&&typeof i[c.key]=="string"&&(i[c.key]=JSON.parse(i[c.key])),c.isArray){for(let p of i[c.key])Pt(p,c.selection,t,!1,s,d);continue}Pt(i[c.key],c.selection,t,!1,s,d);continue}let m=c.field,g=t(i[c.key]);if(g===null)continue;let h;f(m,v)?h=m:f(m,w)?h=m.decoder:f(m,w.Aliased)?h=m.sql.decoder:h=m.getSQL().decoder,i[c.key]="mapFromJsonValue"in h?h.mapFromJsonValue(g):h.mapFromDriverValue(g)}return i}n(Pt,"mapRelationalRow");var ls=class{static{n(this,"RelationsBuilderTable")}static[l]="RelationsBuilderTable";_;constructor(e,t){this._={name:t,table:e}}},us=class{static{n(this,"RelationsBuilderColumn")}static[l]="RelationsBuilderColumn";_;constructor(e,t,r){this._={tableName:t,column:e,key:r}}through(e){return new cs(this._.column,this._.tableName,this._.key,e)}},cs=class{static{n(this,"RelationsBuilderJunctionColumn")}static[l]="RelationsBuilderColumn";_;constructor(e,t,r,s){this._={tableName:t,column:e,through:s,key:r}}},ms=class{static{n(this,"RelationsHelperStatic")}static[l]="RelationsHelperStatic";_;constructor(e){this._={tables:e};let t={},r={};for(let[s,a]of Object.entries(e))t[s]=c=>new wt(e,a,s,c),r[s]=c=>new ss(e,a,s,c);this.one=t,this.many=r}one;many;aggs={count(){return new as}}};function sr(i){let e=new ms(i),t=Object.entries(i).reduce((r,[s,a])=>{let c=new ls(a,s),m=Object.entries(a[H]).reduce((g,[h,d])=>{let p=new us(d,s,h);return g[h]=p,g},{});return r[s]=Object.assign(c,m),r},{});return Object.assign(e,t)}n(sr,"createRelationsHelper");function or(i){return Object.fromEntries(Object.entries(i).filter(([e,t])=>f(t,b)||f(t,W)))}n(or,"extractTablesFromSchema");function cu(i,e){let t=or(i),r=e?e(sr(t)):{};return rs(t,r)}n(cu,"defineRelations");function mu(i,e){let t=or(i),r=e?e(sr(t)):Object.fromEntries(Object.keys(t).map(s=>[s,{}]));return ns(t,r)}n(mu,"defineRelationsPart");function ar(i,e){let t=i[H][e];return t?f(t,v)?t:f(t,w.Aliased)?o`${i}.${o.identifier(t.fieldAlias)}`:o`${i}.${o.identifier(e)}`:o`${i}.${o.identifier(e)}`}n(ar,"fieldSelectionToSQL");function bt(i,e){if(typeof e!="object"||f(e,ae))return ue(i,e);let t=Object.entries(e);if(!t.length)return;let r=[];for(let[s,a]of t)if(a!==void 0)switch(s){case"NOT":{let c=bt(i,a);if(!c)continue;r.push($e(c));continue}case"OR":{if(!a.length)continue;r.push(Ne(...a.map(c=>bt(i,c))));continue}case"AND":{if(!a.length)continue;r.push(J(...a.map(c=>bt(i,c))));continue}case"isNotNull":case"isNull":{if(!a)continue;r.push(qe[s](i));continue}case"in":{r.push(qe.inArray(i,a));continue}case"notIn":{r.push(qe.notInArray(i,a));continue}default:{r.push(qe[s](i,a));continue}}if(r.length)return J(...r)}n(bt,"relationsFieldFilterToSQL");function ce(i,e,t={},r={},s,a=0){let c=Object.entries(e);if(!c.length)return;let m=[];for(let[g,h]of c)if(h!==void 0)switch(g){case"RAW":{let d=typeof h=="function"?h(i,qe):h.getSQL();m.push(d);continue}case"OR":{if(!h?.length)continue;m.push(Ne(...h.map(d=>ce(i,d,t,r,s,a))));continue}case"AND":{if(!h?.length)continue;m.push(J(...h.map(d=>ce(i,d,t,r,s,a))));continue}case"NOT":{if(h===void 0)continue;let d=ce(i,h,t,r,s,a);if(!d)continue;m.push($e(d));continue}default:{if(i[H][g]){let D=ar(i,g),B=bt(D,h);B&&m.push(B);continue}let d=t[g];if(!d)throw new be({message:`Unknown relational filter field: "${g}"`});let p=oe(d.targetTable,`f${a}`),P=d.throughTable?oe(d.throughTable,`ft${a}`):void 0,u=r[d.targetTableName],{filter:x,joinCondition:C}=Jt(s,d,i,p,P),Q=typeof h=="boolean"?void 0:ce(p,h,u.relations,r,s,a+1),T=J(x,Q),N=P?o`(select * from ${we(p)} inner join ${we(P)} on ${C}${o` where ${T}`.if(T)} limit 1)`:o`(select * from ${we(p)}${o` where ${T}`.if(T)} limit 1)`;T&&m.push((h?ze:Fe)(N))}}return J(...m)}n(ce,"relationsFilterToSQL");function lr(i,e){if(typeof e=="function"){let r=e(i,nr);return f(r,w)?r:Array.isArray(r)?r.length?o.join(r.map(s=>f(s,w)?s:Pe(s)),o`, `):void 0:f(r,v)?Pe(r):void 0}let t=Object.entries(e).filter(([r,s])=>s);if(t.length)return o.join(t.map(([r,s])=>(s==="asc"?Pe:Ke)(ar(i,r))),o`, `)}n(lr,"relationsOrderToSQL");function ur(i,e){let t=[],r=[];for(let[s,a]of Object.entries(e)){if(!a)continue;let c=typeof a=="function"?a(i,{sql:qe.sql}):a,m=o`(${c.getSQL()}) as ${o.identifier(s)}`;m.decoder=c.getSQL().decoder,t.push(m),r.push({key:s,field:m})}return{sql:t.length?o.join(t,o`, `):void 0,selection:r}}n(ur,"relationExtrasToSQL");function Jt(i,e,t,r,s){if(e.through){let m=e.sourceColumns.map((h,d)=>{let p=e.through.source[d];return ue(o`${t}.${o.identifier(i.getColumnCasing(h))}`,o`${s}.${o.identifier(f(p._.column,v)?i.getColumnCasing(p._.column):p._.key)}`)}),g=e.targetColumns.map((h,d)=>{let p=e.through.target[d];return ue(o`${s}.${o.identifier(f(p._.column,v)?i.getColumnCasing(p._.column):p._.key)}`,o`${r}.${o.identifier(i.getColumnCasing(h))}`)});return{filter:J(e.where?ce(e.isReversed?t:r,e.where):void 0,...m),joinCondition:J(...g)}}let a=e.sourceColumns.map((m,g)=>{let h=e.targetColumns[g];return ue(o`${t}.${o.identifier(i.getColumnCasing(m))}`,o`${r}.${o.identifier(i.getColumnCasing(h))}`)});return{filter:J(...a,e.where?ce(e.isReversed?t:r,e.where):void 0)}}n(Jt,"relationToSQL");function we(i){return o`${i[de]?o`${o`${o.identifier(i[ie]??"")}.`.if(i[ie])}${o.identifier(i[ye])} as ${i}`:i}`}n(we,"getTableAsAliasSQL");function yu(i){return o`count(${i||o.raw("*")})`.mapWith(Number)}n(yu,"count");function bu(i){return o`count(distinct ${i})`.mapWith(Number)}n(bu,"countDistinct");function Pu(i){return o`avg(${i})`.mapWith(String)}n(Pu,"avg");function wu(i){return o`avg(distinct ${i})`.mapWith(String)}n(wu,"avgDistinct");function Su(i){return o`sum(${i})`.mapWith(String)}n(Su,"sum");function Cu(i){return o`sum(distinct ${i})`.mapWith(String)}n(Cu,"sumDistinct");function xu(i){return o`max(${i})`.mapWith(f(i,v)?i:String)}n(xu,"max");function Bu(i){return o`min(${i})`.mapWith(f(i,v)?i:String)}n(Bu,"min");function Ae(i){return JSON.stringify(i)}n(Ae,"toSql");function vu(i,e){return Array.isArray(e)?o`${i} <-> ${Ae(e)}`:o`${i} <-> ${e}`}n(vu,"l2Distance");function qu(i,e){return Array.isArray(e)?o`${i} <+> ${Ae(e)}`:o`${i} <+> ${e}`}n(qu,"l1Distance");function Au(i,e){return Array.isArray(e)?o`${i} <#> ${Ae(e)}`:o`${i} <#> ${e}`}n(Au,"innerProduct");function _u(i,e){return Array.isArray(e)?o`${i} <=> ${Ae(e)}`:o`${i} <=> ${e}`}n(_u,"cosineDistance");function Ou(i,e){return Array.isArray(e)?o`${i} <~> ${Ae(e)}`:o`${i} <~> ${e}`}n(Ou,"hammingDistance");function Qu(i,e){return Array.isArray(e)?o`${i} <%> ${Ae(e)}`:o`${i} <%> ${e}`}n(Qu,"jaccardDistance");function Eu(i,e,t){let r={},s=i.reduce((a,{path:c,field:m},g)=>{let h;f(m,v)?h=m:f(m,w)?h=m.decoder:h=m.sql.decoder;let d=a;for(let[p,P]of c.entries())if(p<c.length-1)P in d||(d[P]={}),d=d[P];else{let u=e[g],x=d[P]=u===null?null:h.mapFromDriverValue(u);if(t&&f(m,v)&&c.length===2){let C=c[0];C in r?typeof r[C]=="string"&&r[C]!==G(m.table)&&(r[C]=!1):r[C]=x===null?G(m.table):!1}}return a},{});if(t&&Object.keys(r).length>0)for(let[a,c]of Object.entries(r))typeof c=="string"&&!t[c]&&(s[a]=null);return s}n(Eu,"mapResultRow");function re(i,e){return Object.entries(i).reduce((t,[r,s])=>{if(typeof r!="string")return t;let a=e?[...e,r]:[r];return f(s,v)||f(s,w)||f(s,w.Aliased)?t.push({path:a,field:s}):f(s,b)?t.push(...re(s[b.Symbol.Columns],a)):t.push(...re(s,a)),t},[])}n(re,"orderSelectedFields");function Ee(i,e){let t=Object.keys(i),r=Object.keys(e);if(t.length!==r.length)return!1;for(let[s,a]of t.entries())if(a!==r[s])return!1;return!0}n(Ee,"haveSameKeys");function St(i,e){let t=Object.entries(e).filter(([,r])=>r!==void 0).map(([r,s])=>f(s,w)||f(s,v)?[r,s]:[r,new ee(s,i[b.Symbol.Columns][r])]);if(t.length===0)throw new Error("No values to set");return Object.fromEntries(t)}n(St,"mapUpdateSet");function cr(i,e){for(let t of e)for(let r of Object.getOwnPropertyNames(t.prototype))r!=="constructor"&&Object.defineProperty(i.prototype,r,Object.getOwnPropertyDescriptor(t.prototype,r)||Object.create(null))}n(cr,"applyMixins");function Re(i){return i[b.Symbol.Columns]}n(Re,"getTableColumns");function Ru(i){return i[A].selectedFields}n(Ru,"getViewSelectedFields");function me(i){return f(i,I)?i._.alias:f(i,W)?i[A].name:f(i,w)?void 0:i[b.Symbol.IsAlias]?i[b.Symbol.Name]:i[b.Symbol.BaseName]}n(me,"getTableLikeName");function _(i,e){return{name:typeof i=="string"&&i.length>0?i:"",config:typeof i=="object"?i:e}}n(_,"getColumnNameAndConfig");function ku(i){if(typeof i!="object"||i===null||i.constructor.name!=="Object")return!1;if("logger"in i){let e=typeof i.logger;return!(e!=="boolean"&&(e!=="object"||typeof i.logger.logQuery!="function")&&e!=="undefined")}if("schema"in i){let e=typeof i.schema;return!(e!=="object"&&e!=="undefined")}if("relations"in i){let e=typeof i.relations;return!(e!=="object"&&e!=="undefined")}if("casing"in i){let e=typeof i.casing;return!(e!=="string"&&e!=="undefined")}if("mode"in i)return!(i.mode!=="default"||i.mode!=="planetscale"||i.mode!==void 0);if("connection"in i){let e=typeof i.connection;return!(e!=="string"&&e!=="object"&&e!=="undefined")}if("client"in i){let e=typeof i.client;return!(e!=="object"&&e!=="function"&&e!=="undefined")}return Object.keys(i).length===0}n(ku,"isConfig");var Mu=typeof TextDecoder>"u"?null:new TextDecoder;function ds(i,e){return new Proxy(i,new Te(e,!1))}n(ds,"alias");var Ct=class{static{n(this,"CheckBuilder")}constructor(e,t){this.name=e,this.value=t}static[l]="PgCheckBuilder";brand;build(e){return new mr(e,this)}},mr=class{static{n(this,"Check")}constructor(e,t){this.table=e,this.name=t.name,this.value=t.value}static[l]="PgCheck";name;value};function fs(i,e){return new Ct(i,e)}n(fs,"check");var Se=class extends S{static{n(this,"PgIntColumnBaseBuilder")}static[l]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(e){if(e){let{name:t,...r}=e;this.config.generatedIdentity={type:"always",sequenceName:t,sequenceOptions:r}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(e){if(e){let{name:t,...r}=e;this.config.generatedIdentity={type:"byDefault",sequenceName:t,sequenceOptions:r}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}};var dr=class extends Se{static{n(this,"PgBigInt53Builder")}static[l]="PgBigInt53Builder";constructor(e){super(e,"number int53","PgBigInt53")}build(e){return new fr(e,this.config)}},fr=class extends y{static{n(this,"PgBigInt53")}static[l]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(e){return typeof e=="number"?e:Number(e)}},hr=class extends Se{static{n(this,"PgBigInt64Builder")}static[l]="PgBigInt64Builder";constructor(e){super(e,"bigint int64","PgBigInt64")}build(e){return new gr(e,this.config)}},gr=class extends y{static{n(this,"PgBigInt64")}static[l]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(e){return BigInt(e)}};function Wt(i,e){let{name:t,config:r}=_(i,e);return r.mode==="number"?new dr(t):new hr(t)}n(Wt,"bigint");var pr=class extends S{static{n(this,"PgBigSerial53Builder")}static[l]="PgBigSerial53Builder";constructor(e){super(e,"number int53","PgBigSerial53"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new yr(e,this.config)}},yr=class extends y{static{n(this,"PgBigSerial53")}static[l]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(e){return typeof e=="number"?e:Number(e)}},br=class extends S{static{n(this,"PgBigSerial64Builder")}static[l]="PgBigSerial64Builder";constructor(e){super(e,"bigint int64","PgBigSerial64"),this.config.hasDefault=!0}build(e){return new Pr(e,this.config)}},Pr=class extends y{static{n(this,"PgBigSerial64")}static[l]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(e){return BigInt(e)}};function Ht(i,e){let{name:t,config:r}=_(i,e);return r.mode==="number"?new pr(t):new br(t)}n(Ht,"bigserial");var wr=class extends S{static{n(this,"PgBooleanBuilder")}static[l]="PgBooleanBuilder";constructor(e){super(e,"boolean","PgBoolean")}build(e){return new Sr(e,this.config)}},Sr=class extends y{static{n(this,"PgBoolean")}static[l]="PgBoolean";getSQLType(){return"boolean"}};function Gt(i){return new wr(i??"")}n(Gt,"boolean");var Cr=class extends S{static{n(this,"PgByteaBuilder")}static[l]="PgByteaBuilder";constructor(e){super(e,"object buffer","PgBytea")}build(e){return new xr(e,this.config)}},xr=class extends y{static{n(this,"PgBytea")}static[l]="PgBytea";mapFromDriverValue(e){if(Buffer.isBuffer(e))return e;if(typeof e=="string"){let t=e.slice(2,e.length);return Buffer.from(t,"hex")}return Buffer.from(e)}getSQLType(){return"bytea"}};function hs(i){return new Cr(i??"")}n(hs,"bytea");var Br=class extends S{static{n(this,"PgCharBuilder")}static[l]="PgCharBuilder";constructor(e,t){super(e,t.enum?.length?"string enum":"string","PgChar"),this.config.length=t.length??1,this.config.setLength=t.length!==void 0,this.config.enumValues=t.enum,this.config.isLengthExact=!0}build(e){return new Tr(e,this.config)}},Tr=class extends y{static{n(this,"PgChar")}static[l]="PgChar";enumValues=this.config.enumValues;getSQLType(){return this.config.setLength?`char(${this.length})`:"char"}};function Yt(i,e={}){let{name:t,config:r}=_(i,e);return new Br(t,r)}n(Yt,"char");var Nr=class extends S{static{n(this,"PgCidrBuilder")}static[l]="PgCidrBuilder";constructor(e){super(e,"string cidr","PgCidr")}build(e){return new $r(e,this.config)}},$r=class extends y{static{n(this,"PgCidr")}static[l]="PgCidr";getSQLType(){return"cidr"}};function Zt(i){return new Nr(i??"")}n(Zt,"cidr");var vr=class extends S{static{n(this,"PgCustomColumnBuilder")}static[l]="PgCustomColumnBuilder";constructor(e,t,r){super(e,"custom","PgCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=r}build(e){return new qr(e,this.config)}},qr=class extends y{static{n(this,"PgCustomColumn")}static[l]="PgCustomColumn";sqlName;mapTo;mapFrom;mapJson;forJsonSelect;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver,this.mapJson=t.customTypeParams.fromJson,this.forJsonSelect=t.customTypeParams.forJsonSelect}getSQLType(){return this.sqlName}mapFromDriverValue(e){return typeof this.mapFrom=="function"?this.mapFrom(e):e}mapFromJsonValue(e){return typeof this.mapJson=="function"?this.mapJson(e):this.mapFromDriverValue(e)}jsonSelectIdentifier(e,t,r){if(typeof this.forJsonSelect=="function")return this.forJsonSelect(e,t,r);let s=this.getSQLType().toLowerCase(),a=s.indexOf("(");switch(a+1?s.slice(0,a):s){case"bytea":case"geometry":case"timestamp":case"numeric":case"bigint":{let m="[]".repeat(r??0);return t`${e}::text${t.raw(m).if(r)}`}default:return e}}mapToDriverValue(e){return typeof this.mapTo=="function"?this.mapTo(e):e}};function Xt(i){return(e,t)=>{let{name:r,config:s}=_(e,t);return new vr(r,s,i)}}n(Xt,"customType");var fe=class extends S{static{n(this,"PgDateColumnBaseBuilder")}static[l]="PgDateColumnBaseBuilder";defaultNow(){return this.default(o`now()`)}};var Ar=class extends fe{static{n(this,"PgDateBuilder")}static[l]="PgDateBuilder";constructor(e){super(e,"object date","PgDate")}build(e){return new xt(e,this.config)}},xt=class extends y{static{n(this,"PgDate")}static[l]="PgDate";getSQLType(){return"date"}mapFromDriverValue(e){return new Date(e)}mapToDriverValue(e){return e.toISOString()}},_r=class extends fe{static{n(this,"PgDateStringBuilder")}static[l]="PgDateStringBuilder";constructor(e){super(e,"string date","PgDateString")}build(e){return new Bt(e,this.config)}},Bt=class extends y{static{n(this,"PgDateString")}static[l]="PgDateString";getSQLType(){return"date"}};function ei(i,e){let{name:t,config:r}=_(i,e);return r?.mode==="date"?new Ar(t):new _r(t)}n(ei,"date");var gs=class extends S{static{n(this,"PgDoublePrecisionBuilder")}static[l]="PgDoublePrecisionBuilder";constructor(e){super(e,"number double","PgDoublePrecision")}build(e){return new ps(e,this.config)}},ps=class extends y{static{n(this,"PgDoublePrecision")}static[l]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(e){return typeof e=="string"?Number.parseFloat(e):e}};function ti(i){return new gs(i??"")}n(ti,"doublePrecision");var ys=class extends S{static{n(this,"PgInetBuilder")}static[l]="PgInetBuilder";constructor(e){super(e,"string inet","PgInet")}build(e){return new bs(e,this.config)}},bs=class extends y{static{n(this,"PgInet")}static[l]="PgInet";getSQLType(){return"inet"}};function ii(i){return new ys(i??"")}n(ii,"inet");var Or=class extends Se{static{n(this,"PgIntegerBuilder")}static[l]="PgIntegerBuilder";constructor(e){super(e,"number int32","PgInteger")}build(e){return new Qr(e,this.config)}},Qr=class extends y{static{n(this,"PgInteger")}static[l]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(e){return typeof e=="string"?Number.parseInt(e):e}};function ri(i){return new Or(i??"")}n(ri,"integer");var Ps=class extends S{static{n(this,"PgIntervalBuilder")}static[l]="PgIntervalBuilder";constructor(e,t){super(e,"string interval","PgInterval"),this.config.intervalConfig=t}build(e){return new ws(e,this.config)}},ws=class extends y{static{n(this,"PgInterval")}static[l]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let e=this.fields?` ${this.fields}`:"",t=this.precision?`(${this.precision})`:"";return`interval${e}${t}`}};function ni(i,e={}){let{name:t,config:r}=_(i,e);return new Ps(t,r)}n(ni,"interval");var Dr=class extends S{static{n(this,"PgJsonBuilder")}static[l]="PgJsonBuilder";constructor(e){super(e,"object json","PgJson")}build(e){return new Tt(e,this.config)}},Tt=class extends y{static{n(this,"PgJson")}static[l]="PgJson";constructor(e,t){super(e,t)}getSQLType(){return"json"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return e}};function si(i){return new Dr(i??"")}n(si,"json");var Vr=class extends S{static{n(this,"PgJsonbBuilder")}static[l]="PgJsonbBuilder";constructor(e){super(e,"object json","PgJsonb")}build(e){return new Nt(e,this.config)}},Nt=class extends y{static{n(this,"PgJsonb")}static[l]="PgJsonb";constructor(e,t){super(e,t)}getSQLType(){return"jsonb"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return e}};function oi(i){return new Vr(i??"")}n(oi,"jsonb");var jr=class extends S{static{n(this,"PgLineBuilder")}static[l]="PgLineBuilder";constructor(e){super(e,"array line","PgLine")}build(e){return new Ss(e,this.config)}},Ss=class extends y{static{n(this,"PgLineTuple")}static[l]="PgLine";getSQLType(){return"line"}mapFromDriverValue(e){let[t,r,s]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(r),Number.parseFloat(s)]}mapToDriverValue(e){return`{${e[0]},${e[1]},${e[2]}}`}},Lr=class extends S{static{n(this,"PgLineABCBuilder")}static[l]="PgLineABCBuilder";constructor(e){super(e,"object line","PgLineABC")}build(e){return new Ir(e,this.config)}},Ir=class extends y{static{n(this,"PgLineABC")}static[l]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(e){let[t,r,s]=e.slice(1,-1).split(",");return{a:Number.parseFloat(t),b:Number.parseFloat(r),c:Number.parseFloat(s)}}mapToDriverValue(e){return`{${e.a},${e.b},${e.c}}`}};function ai(i,e){let{name:t,config:r}=_(i,e);return!r?.mode||r.mode==="tuple"?new jr(t):new Lr(t)}n(ai,"line");var zr=class extends S{static{n(this,"PgMacaddrBuilder")}static[l]="PgMacaddrBuilder";constructor(e){super(e,"string macaddr","PgMacaddr")}build(e){return new Fr(e,this.config)}},Fr=class extends y{static{n(this,"PgMacaddr")}static[l]="PgMacaddr";getSQLType(){return"macaddr"}};function li(i){return new zr(i??"")}n(li,"macaddr");var Kr=class extends S{static{n(this,"PgMacaddr8Builder")}static[l]="PgMacaddr8Builder";constructor(e){super(e,"string macaddr8","PgMacaddr8")}build(e){return new Er(e,this.config)}},Er=class extends y{static{n(this,"PgMacaddr8")}static[l]="PgMacaddr8";getSQLType(){return"macaddr8"}};function ui(i){return new Kr(i??"")}n(ui,"macaddr8");var Rr=class extends S{static{n(this,"PgNumericBuilder")}static[l]="PgNumericBuilder";constructor(e,t,r){super(e,"string numeric","PgNumeric"),this.config.precision=t,this.config.scale=r}build(e){return new $t(e,this.config)}},$t=class extends y{static{n(this,"PgNumeric")}static[l]="PgNumeric";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return typeof e=="string"?e:String(e)}getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?"numeric":`numeric(${this.precision})`}},kr=class extends S{static{n(this,"PgNumericNumberBuilder")}static[l]="PgNumericNumberBuilder";constructor(e,t,r){super(e,"number","PgNumericNumber"),this.config.precision=t,this.config.scale=r}build(e){return new Mr(e,this.config)}},Mr=class extends y{static{n(this,"PgNumericNumber")}static[l]="PgNumericNumber";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return typeof e=="number"?e:Number(e)}mapToDriverValue=String;getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?"numeric":`numeric(${this.precision})`}},Ur=class extends S{static{n(this,"PgNumericBigIntBuilder")}static[l]="PgNumericBigIntBuilder";constructor(e,t,r){super(e,"bigint int64","PgNumericBigInt"),this.config.precision=t,this.config.scale=r}build(e){return new Jr(e,this.config)}},Jr=class extends y{static{n(this,"PgNumericBigInt")}static[l]="PgNumericBigInt";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?"numeric":`numeric(${this.precision})`}};function vt(i,e){let{name:t,config:r}=_(i,e),s=r?.mode;return s==="number"?new kr(t,r?.precision,r?.scale):s==="bigint"?new Ur(t,r?.precision,r?.scale):new Rr(t,r?.precision,r?.scale)}n(vt,"numeric");var Cs=vt;var xs=class extends S{static{n(this,"PgPointTupleBuilder")}static[l]="PgPointTupleBuilder";constructor(e){super(e,"array point","PgPointTuple")}build(e){return new Bs(e,this.config)}},Bs=class extends y{static{n(this,"PgPointTuple")}static[l]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(e){if(typeof e=="string"){let[t,r]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(r)]}return[e.x,e.y]}mapToDriverValue(e){return`(${e[0]},${e[1]})`}},Ts=class extends S{static{n(this,"PgPointObjectBuilder")}static[l]="PgPointObjectBuilder";constructor(e){super(e,"object point","PgPointObject")}build(e){return new Ns(e,this.config)}},Ns=class extends y{static{n(this,"PgPointObject")}static[l]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(e){if(typeof e=="string"){let[t,r]=e.slice(1,-1).split(",");return{x:Number.parseFloat(t),y:Number.parseFloat(r)}}return e}mapToDriverValue(e){return`(${e.x},${e.y})`}};function ci(i,e){let{name:t,config:r}=_(i,e);return!r?.mode||r.mode==="tuple"?new xs(t):new Ts(t)}n(ci,"point");function $s(i){let e=[];for(let t=0;t<i.length;t+=2)e.push(Number.parseInt(i.slice(t,t+2),16));return new Uint8Array(e)}n($s,"hexToBytes");function Wr(i,e){let t=new ArrayBuffer(8),r=new DataView(t);for(let s=0;s<8;s++)r.setUint8(s,i[e+s]);return r.getFloat64(0,!0)}n(Wr,"bytesToFloat64");function mi(i){let e=$s(i),t=0,r=e[t];t+=1;let s=new DataView(e.buffer),a=s.getUint32(t,r===1);t+=4;let c;if(a&536870912&&(c=s.getUint32(t,r===1),t+=4),(a&65535)===1){let m=Wr(e,t);t+=8;let g=Wr(e,t);return t+=8,[m,g]}throw new Error("Unsupported geometry type")}n(mi,"parseEWKB");var Hr=class extends S{static{n(this,"PgGeometryBuilder")}static[l]="PgGeometryBuilder";constructor(e){super(e,"array geometry","PgGeometry")}build(e){return new Gr(e,this.config)}},Gr=class extends y{static{n(this,"PgGeometry")}static[l]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){return typeof e!="string"?e:mi(e)}mapToDriverValue(e){return`point(${e[0]} ${e[1]})`}},Yr=class extends S{static{n(this,"PgGeometryObjectBuilder")}static[l]="PgGeometryObjectBuilder";constructor(e){super(e,"object geometry","PgGeometryObject")}build(e){return new Zr(e,this.config)}},Zr=class extends y{static{n(this,"PgGeometryObject")}static[l]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){let t=mi(e);return{x:t[0],y:t[1]}}mapToDriverValue(e){return`point(${e.x} ${e.y})`}};function di(i,e){let{name:t,config:r}=_(i,e);return!r?.mode||r.mode==="tuple"?new Hr(t):new Yr(t)}n(di,"geometry");var Xr=class extends S{static{n(this,"PgRealBuilder")}static[l]="PgRealBuilder";constructor(e,t){super(e,"number float","PgReal"),this.config.length=t}build(e){return new en(e,this.config)}},en=class extends y{static{n(this,"PgReal")}static[l]="PgReal";constructor(e,t){super(e,t)}getSQLType(){return"real"}mapFromDriverValue=n(e=>typeof e=="string"?Number.parseFloat(e):e,"mapFromDriverValue")};function fi(i){return new Xr(i??"")}n(fi,"real");var vs=class extends S{static{n(this,"PgSerialBuilder")}static[l]="PgSerialBuilder";constructor(e){super(e,"number int32","PgSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new qs(e,this.config)}},qs=class extends y{static{n(this,"PgSerial")}static[l]="PgSerial";getSQLType(){return"serial"}};function hi(i){return new vs(i??"")}n(hi,"serial");var As=class extends Se{static{n(this,"PgSmallIntBuilder")}static[l]="PgSmallIntBuilder";constructor(e){super(e,"number int16","PgSmallInt")}build(e){return new _s(e,this.config)}},_s=class extends y{static{n(this,"PgSmallInt")}static[l]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=n(e=>typeof e=="string"?Number(e):e,"mapFromDriverValue")};function gi(i){return new As(i??"")}n(gi,"smallint");var Os=class extends S{static{n(this,"PgSmallSerialBuilder")}static[l]="PgSmallSerialBuilder";constructor(e){super(e,"number int16","PgSmallSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Qs(e,this.config)}},Qs=class extends y{static{n(this,"PgSmallSerial")}static[l]="PgSmallSerial";getSQLType(){return"smallserial"}};function pi(i){return new Os(i??"")}n(pi,"smallserial");var tn=class extends S{static{n(this,"PgTextBuilder")}static[l]="PgTextBuilder";constructor(e,t){super(e,t.enum?.length?"string enum":"string","PgText"),this.config.enumValues=t.enum}build(e){return new rn(e,this.config,this.config.enumValues)}},rn=class extends y{static{n(this,"PgText")}static[l]="PgText";enumValues;constructor(e,t,r){super(e,t),this.enumValues=r}getSQLType(){return"text"}};function yi(i,e={}){let{name:t,config:r}=_(i,e);return new tn(t,r)}n(yi,"text");var Ds=class extends fe{static{n(this,"PgTimeBuilder")}constructor(e,t,r){super(e,"string time","PgTime"),this.withTimezone=t,this.precision=r,this.config.withTimezone=t,this.config.precision=r}static[l]="PgTimeBuilder";build(e){return new bi(e,this.config)}},bi=class extends y{static{n(this,"PgTime")}static[l]="PgTime";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}};function Pi(i,e={}){let{name:t,config:r}=_(i,e);return new Ds(t,r.withTimezone??!1,r.precision)}n(Pi,"time");var Vs=class extends fe{static{n(this,"PgTimestampBuilder")}static[l]="PgTimestampBuilder";constructor(e,t,r){super(e,"object date","PgTimestamp"),this.config.withTimezone=t,this.config.precision=r}build(e){return new wi(e,this.config)}},wi=class extends y{static{n(this,"PgTimestamp")}static[l]="PgTimestamp";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=n(e=>new Date(this.withTimezone?e:e+"+0000"),"mapFromDriverValue");mapToDriverValue=n(e=>e.toISOString(),"mapToDriverValue")},js=class extends fe{static{n(this,"PgTimestampStringBuilder")}static[l]="PgTimestampStringBuilder";constructor(e,t,r){super(e,"string timestamp","PgTimestampString"),this.config.withTimezone=t,this.config.precision=r}build(e){return new Si(e,this.config)}},Si=class extends y{static{n(this,"PgTimestampString")}static[l]="PgTimestampString";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}};function Ci(i,e={}){let{name:t,config:r}=_(i,e);return r?.mode==="string"?new js(t,r.withTimezone??!1,r.precision):new Vs(t,r?.withTimezone??!1,r?.precision)}n(Ci,"timestamp");var Ls=class extends S{static{n(this,"PgUUIDBuilder")}static[l]="PgUUIDBuilder";constructor(e){super(e,"string uuid","PgUUID")}defaultRandom(){return this.default(o`gen_random_uuid()`)}build(e){return new xi(e,this.config)}},xi=class extends y{static{n(this,"PgUUID")}static[l]="PgUUID";getSQLType(){return"uuid"}};function Bi(i){return new Ls(i??"")}n(Bi,"uuid");var Is=class extends S{static{n(this,"PgVarcharBuilder")}static[l]="PgVarcharBuilder";constructor(e,t){super(e,t.enum?.length?"string enum":"string","PgVarchar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new zs(e,this.config)}},zs=class extends y{static{n(this,"PgVarchar")}static[l]="PgVarchar";enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}};function nn(i,e={}){let{name:t,config:r}=_(i,e);return new Is(t,r)}n(nn,"varchar");var sn=class extends S{static{n(this,"PgBinaryVectorBuilder")}static[l]="PgBinaryVectorBuilder";constructor(e,t){super(e,"string binary","PgBinaryVector"),this.config.length=t.dimensions,this.config.isLengthExact=!0}build(e){return new on(e,this.config)}},on=class extends y{static{n(this,"PgBinaryVector")}static[l]="PgBinaryVector";getSQLType(){return`bit(${this.length})`}};function Ti(i,e){let{name:t,config:r}=_(i,e);return new sn(t,r)}n(Ti,"bit");var an=class extends S{static{n(this,"PgHalfVectorBuilder")}static[l]="PgHalfVectorBuilder";constructor(e,t){super(e,"array halfvector","PgHalfVector"),this.config.length=t.dimensions,this.config.isLengthExact=!0}build(e){return new ln(e,this.config)}},ln=class extends y{static{n(this,"PgHalfVector")}static[l]="PgHalfVector";getSQLType(){return`halfvec(${this.length})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(t=>Number.parseFloat(t))}};function Ni(i,e){let{name:t,config:r}=_(i,e);return new an(t,r)}n(Ni,"halfvec");var Fs=class extends S{static{n(this,"PgSparseVectorBuilder")}static[l]="PgSparseVectorBuilder";constructor(e,t){super(e,"string sparsevec","PgSparseVector"),this.config.dimensions=t.dimensions}build(e){return new Ks(e,this.config)}},Ks=class extends y{static{n(this,"PgSparseVector")}static[l]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}};function $i(i,e){let{name:t,config:r}=_(i,e);return new Fs(t,r)}n($i,"sparsevec");var Es=class extends S{static{n(this,"PgVectorBuilder")}static[l]="PgVectorBuilder";constructor(e,t){super(e,"array vector","PgVector"),this.config.length=t.dimensions,this.config.isLengthExact=!0}build(e){return new Rs(e,this.config)}},Rs=class extends y{static{n(this,"PgVector")}static[l]="PgVector";getSQLType(){return`vector(${this.length})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(t=>Number.parseFloat(t))}};function un(i,e){let{name:t,config:r}=_(i,e);return new Es(t,r)}n(un,"vector");var O=class cn{static{n(this,"SelectionProxyHandler")}static[l]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,t){if(t==="_")return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(t===A)return{...e[A],selectedFields:new Proxy(e[A].selectedFields,this)};if(typeof t=="symbol")return e[t];let s=(f(e,I)?e._.selectedFields:f(e,W)?e[A].selectedFields:e)[t];if(f(s,w.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!s.isSelectionField)return s.sql;let a=s.clone();return a.isSelectionField=!0,a}if(f(s,w)){if(this.config.sqlBehavior==="sql")return s;throw new Error(`You tried to reference "${t}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return f(s,v)?this.config.alias?new Proxy(s,new Le(new Proxy(s.table,new Te(this.config.alias,this.config.replaceOriginalName??!1)))):s:typeof s!="object"||s===null?s:new Proxy(s,new cn(this.config))}};function mn(){return{bigint:Wt,bigserial:Ht,boolean:Gt,char:Yt,cidr:Zt,customType:Xt,date:ei,doublePrecision:ti,inet:ii,integer:ri,interval:ni,json:si,jsonb:oi,line:ai,macaddr:li,macaddr8:ui,numeric:vt,point:ci,geometry:di,real:fi,serial:hi,smallint:gi,smallserial:pi,text:yi,time:Pi,timestamp:Ci,uuid:Bi,varchar:nn,bit:Ti,halfvec:Ni,sparsevec:$i,vector:un}}n(mn,"getPgColumnBuilders");var vi=Symbol.for("drizzle:PgInlineForeignKeys"),dn=Symbol.for("drizzle:EnableRLS"),j=class extends b{static{n(this,"PgTable")}static[l]="PgTable";static Symbol=Object.assign({},b.Symbol,{InlineForeignKeys:vi,EnableRLS:dn});[vi]=[];[dn]=!1;[b.Symbol.ExtraConfigBuilder]=void 0;[b.Symbol.ExtraConfigColumns]={}};function qt(i,e,t,r,s=i){let a=new j(i,r,s),c=typeof e=="function"?e(mn()):e,m=Object.fromEntries(Object.entries(c).map(([d,p])=>{let P=p;P.setName(d);let u=P.build(a);return a[vi].push(...P.buildForeignKeys(u,a)),[d,u]})),g=Object.fromEntries(Object.entries(c).map(([d,p])=>{let P=p;P.setName(d);let u=P.buildExtraConfigColumn(a);return[d,u]})),h=Object.assign(a,m);return h[b.Symbol.Columns]=m,h[b.Symbol.ExtraConfigColumns]=g,t&&(h[j.Symbol.ExtraConfigBuilder]=t),Object.assign(h,{enableRLS:n(()=>(h[j.Symbol.EnableRLS]=!0,h),"enableRLS")})}n(qt,"pgTableWithSchema");var L=n((i,e,t)=>qt(i,e,t,void 0),"pgTable");function ks(i){return(e,t,r)=>qt(i(e),t,r,void 0,e)}n(ks,"pgTableCreator");var qi=class{static{n(this,"IndexBuilderOn")}constructor(e,t){this.unique=e,this.name=t}static[l]="PgIndexBuilderOn";on(...e){return new _e(e.map(t=>{if(f(t,w))return t;t=t;let r=new Qe(t.name,!!t.keyAsName,t.columnType,t.indexConfig);return t.indexConfig=JSON.parse(JSON.stringify(t.defaultConfig)),r}),this.unique,!1,this.name)}onOnly(...e){return new _e(e.map(t=>{if(f(t,w))return t;t=t;let r=new Qe(t.name,!!t.keyAsName,t.columnType,t.indexConfig);return t.indexConfig=t.defaultConfig,r}),this.unique,!0,this.name)}using(e,...t){return new _e(t.map(r=>{if(f(r,w))return r;r=r;let s=new Qe(r.name,!!r.keyAsName,r.columnType,r.indexConfig);return r.indexConfig=JSON.parse(JSON.stringify(r.defaultConfig)),s}),this.unique,!0,this.name,e)}},_e=class{static{n(this,"IndexBuilder")}static[l]="PgIndexBuilder";config;constructor(e,t,r,s,a="btree"){this.config={name:s,columns:e,unique:t,only:r,method:a}}concurrently(){return this.config.concurrently=!0,this}with(e){return this.config.with=e,this}where(e){return this.config.where=e,this}build(e){return new fn(this.config,e)}},fn=class{static{n(this,"Index")}static[l]="PgIndex";config;constructor(e,t){this.config={...e,table:t}}};function Ce(i){return new qi(!1,i)}n(Ce,"index");function Ms(i){return new qi(!0,i)}n(Ms,"uniqueIndex");var Ai=class{static{n(this,"PgPolicy")}constructor(e,t){this.name=e,t&&(this.as=t.as,this.for=t.for,this.to=t.to,this.using=t.using,this.withCheck=t.withCheck)}static[l]="PgPolicy";as;for;to;using;withCheck;_linkedTable;link(e){return this._linkedTable=e,this}};function Us(i,e){return new Ai(i,e)}n(Us,"pgPolicy");function Js(...i){return i[0].columns?new At(i[0].columns,i[0].name):new At(i)}n(Js,"primaryKey");var At=class{static{n(this,"PrimaryKeyBuilder")}static[l]="PgPrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new hn(e,this.columns,this.name)}},hn=class{static{n(this,"PrimaryKey")}constructor(e,t,r){this.table=e,this.columns=t,this.name=r}static[l]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[j.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}};var ke=Symbol.for("drizzle:PgViewConfig");var gn=class{static{n(this,"Relation")}constructor(e,t,r){this.sourceTable=e,this.referencedTable=t,this.relationName=r,this.referencedTableName=t[b.Symbol.Name]}static[l]="Relation";referencedTableName;fieldName},ap=class{static{n(this,"Relations")}constructor(e,t){this.table=e,this.config=t}static[l]="Relations"},Me=class pn extends gn{static{n(this,"One")}constructor(e,t,r,s){super(e,t,r?.relationName),this.config=r,this.isNullable=s}static[l]="One";withFieldName(e){let t=new pn(this.sourceTable,this.referencedTable,this.config,this.isNullable);return t.fieldName=e,t}},yn=class bn extends gn{static{n(this,"Many")}constructor(e,t,r){super(e,t,r?.relationName),this.config=r}static[l]="Many";withFieldName(e){let t=new bn(this.sourceTable,this.referencedTable,this.config);return t.fieldName=e,t}};function Pn(){return{and:J,between:dt,eq:ue,exists:ze,gt:nt,gte:st,ilike:pt,inArray:lt,isNull:ct,isNotNull:mt,like:ht,lt:ot,lte:at,ne:rt,not:$e,notBetween:ft,notExists:Fe,notLike:gt,notIlike:yt,notInArray:ut,or:Ne,sql:o}}n(Pn,"getOperators");function wn(){return{sql:o,asc:Pe,desc:Ke}}n(wn,"getOrderByOperators");function Sn(i,e,t){if(f(t,Me)&&t.config)return{fields:t.config.fields,references:t.config.references};let r=e[De(t.referencedTable)];if(!r)throw new Error(`Table "${t.referencedTable[b.Symbol.Name]}" not found in schema`);let s=i[r];if(!s)throw new Error(`Table "${r}" not found in schema`);let a=t.sourceTable,c=e[De(a)];if(!c)throw new Error(`Table "${a[b.Symbol.Name]}" not found in schema`);let m=[];for(let g of Object.values(s.relations))(t.relationName&&t!==g&&g.relationName===t.relationName||!t.relationName&&g.referencedTable===t.sourceTable)&&m.push(g);if(m.length>1)throw t.relationName?new Error(`There are multiple relations with name "${t.relationName}" in table "${r}"`):new Error(`There are multiple relations between "${r}" and "${t.sourceTable[b.Symbol.Name]}". Please specify relation name`);if(m[0]&&f(m[0],Me)&&m[0].config)return{fields:m[0].config.references,references:m[0].config.fields};throw new Error(`There is not enough information to infer relation "${c}.${t.fieldName}"`)}n(Sn,"normalizeRelation");function _t(i,e,t,r,s=a=>a){let a={};for(let[c,m]of r.entries())if(m.isJson){let g=e.relations[m.tsKey],h=t[c],d=typeof h=="string"?JSON.parse(h):h;a[m.tsKey]=f(g,Me)?d&&_t(i,i[m.relationTableTsKey],d,m.selection,s):d.map(p=>_t(i,i[m.relationTableTsKey],p,m.selection,s))}else{let g=s(t[c]),h=m.field,d;f(h,v)?d=h:f(h,w)?d=h.decoder:d=h.sql.decoder,a[m.tsKey]=g===null?null:d.mapFromDriverValue(g)}return a}n(_t,"mapRelationalRow");function Ws(i){return(i.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(t=>t.toLowerCase()).join("_")}n(Ws,"toSnakeCase");function Hs(i){return(i.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((t,r,s)=>{let a=s===0?r.toLowerCase():`${r[0].toUpperCase()}${r.slice(1)}`;return t+a},"")}n(Hs,"toCamelCase");function Gs(i){return i}n(Gs,"noopCase");var xn=class{static{n(this,"CasingCache")}static[l]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert=e==="snake_case"?Ws:e==="camelCase"?Hs:Gs}getColumnCasing(e){if(!e.keyAsName)return e.name;let t=e.table[b.Symbol.Schema]??"public",r=e.table[b.Symbol.OriginalName],s=`${t}.${r}.${e.name}`;return this.cache[s]||this.cacheTable(e.table),this.cache[s]}cacheTable(e){let t=e[b.Symbol.Schema]??"public",r=e[b.Symbol.OriginalName],s=`${t}.${r}`;if(!this.cachedTables[s]){for(let a of Object.values(e[b.Symbol.Columns])){if(!f(a,v))continue;let c=`${s}.${a.name}`;this.cache[c]=this.convert(a.name)}this.cachedTables[s]=!0}}clearCache(){this.cache={},this.cachedTables={}}};var xe=class extends W{static{n(this,"PgViewBase")}static[l]="PgViewBase"};var Ue=class{static{n(this,"PgDialect")}static[l]="PgDialect";casing;constructor(e){this.casing=new xn(e?.casing)}async migrate(e,t,r){let s=typeof r=="string"?"__drizzle_migrations":r.migrationsTable??"__drizzle_migrations",a=typeof r=="string"?"drizzle":r.migrationsSchema??"drizzle",c=o`
1
+ var En=Object.defineProperty;var n=(i,e)=>En(i,"name",{value:e,configurable:!0});var l=Symbol.for("drizzle:entityKind"),Co=Symbol.for("drizzle:hasOwnEntityKind");function f(i,e){if(!i||typeof i!="object")return!1;if(i instanceof e)return!0;if(!Object.prototype.hasOwnProperty.call(e,l))throw new Error(`Class "${e.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let t=Object.getPrototypeOf(i).constructor;if(t)for(;t;){if(l in t&&t[l]===e[l])return!0;t=Object.getPrototypeOf(t)}return!1}n(f,"is");var A=class{static{n(this,"Column")}static[l]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;length;isLengthExact;config;table;onInit(){}constructor(e,t){this.config=t,this.onInit(),this.table=e,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity,this.length=t.length,this.isLengthExact=t.isLengthExact}mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}};var Di=class{static{n(this,"ColumnBuilder")}static[l]="ColumnBuilder";config;constructor(e,t,r){this.config={name:e,keyAsName:e==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:r,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(e){return this.config.onUpdateFn=e,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(e){this.config.name===""&&(this.config.name=e)}};var Z=Symbol.for("drizzle:Name");var Be=class{static{n(this,"ForeignKeyBuilder")}static[l]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(e,t){this.reference=()=>{let{name:r,columns:s,foreignColumns:a}=e();return{name:r,columns:s,foreignTable:a[0].table,foreignColumns:a}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e===void 0?"no action":e,this}onDelete(e){return this._onDelete=e===void 0?"no action":e,this}build(e){return new Ii(e,this)}},Ii=class{static{n(this,"ForeignKey")}constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[l]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:r}=this.reference(),s=t.map(m=>m.name),a=r.map(m=>m.name),c=[this.table[Z],...s,r[0].table[Z],...a];return e??`${c.join("_")}_fk`}};function Rn(i){function e(){let{name:t,columns:r,foreignColumns:s}=i;return{name:t,columns:r,foreignColumns:s}}return n(e,"mappedConfig"),new Be(e)}n(Rn,"foreignKey");function Je(i,...e){return i(...e)}n(Je,"iife");function Dt(i){return new zi(i)}n(Dt,"unique");function We(i,e){return`${i[Z]}_${e.join("_")}_unique`}n(We,"uniqueKeyName");var He=class{static{n(this,"UniqueConstraintBuilder")}constructor(e,t){this.name=t,this.columns=e}static[l]="PgUniqueConstraintBuilder";columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new Li(e,this.columns,this.nullsNotDistinctConfig,this.name)}},zi=class{static{n(this,"UniqueOnConstraintBuilder")}static[l]="PgUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new He(e,this.name)}},Li=class{static{n(this,"UniqueConstraint")}constructor(e,t,r,s){this.table=e,this.columns=t,this.name=s??We(this.table,this.columns.map(a=>a.name)),this.nullsNotDistinct=r}static[l]="PgUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}};function Fi(i,e,t){for(let r=e;r<i.length;r++){let s=i[r];if(s==="\\"){r++;continue}if(s==='"')return[i.slice(e,r).replace(/\\/g,""),r+1];if(!t&&(s===","||s==="}"))return[i.slice(e,r).replace(/\\/g,""),r]}return[i.slice(e).replace(/\\/g,""),i.length]}n(Fi,"parsePgArrayValue");function It(i,e=0){let t=[],r=e,s=!1;for(;r<i.length;){let a=i[r];if(a===","){(s||r===e)&&t.push(""),s=!0,r++;continue}if(s=!1,a==="\\"){r+=2;continue}if(a==='"'){let[g,h]=Fi(i,r+1,!0);t.push(g),r=h;continue}if(a==="}")return[t,r+1];if(a==="{"){let[g,h]=It(i,r+1);t.push(g),r=h;continue}let[c,m]=Fi(i,r,!1);t.push(c),r=m}return[t,r]}n(It,"parsePgNestedArray");function Ge(i){let[e]=It(i,1);return e}n(Ge,"parsePgArray");function Ye(i){return`{${i.map(e=>Array.isArray(e)?Ye(e):typeof e=="string"?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}n(Ye,"makePgArray");var S=class extends Di{static{n(this,"PgColumnBuilder")}foreignKeyConfigs=[];static[l]="PgColumnBuilder";array(e){return new Ki(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:"always",mode:"stored"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:r,actions:s})=>Je((a,c)=>{let m=new Be(()=>{let g=a();return{columns:[e],foreignColumns:[g]}});return c.onUpdate&&m.onUpdate(c.onUpdate),c.onDelete&&m.onDelete(c.onDelete),m.build(t)},r,s))}buildExtraConfigColumn(e){return new kn(e,this.config)}},y=class extends A{static{n(this,"PgColumn")}static[l]="PgColumn";table;constructor(e,t){t.uniqueName||(t.uniqueName=We(e,[t.name])),super(e,t),this.table=e}},kn=class extends y{static{n(this,"ExtraConfigColumn")}static[l]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(e){return this.indexConfig.opClass=e,this}},Oe=class{static{n(this,"IndexedColumn")}static[l]="IndexedColumn";constructor(e,t,r,s){this.name=e,this.keyAsName=t,this.type=r,this.indexConfig=s}name;keyAsName;type;indexConfig},Ki=class extends S{static{n(this,"PgArrayBuilder")}static[l]="PgArrayBuilder";constructor(e,t,r){super(e,"array basecolumn","PgArray"),this.config.baseBuilder=t,this.config.length=r}build(e){let t=this.config.baseBuilder.build(e);return new Ze(e,this.config,t)}},Ze=class Ei extends y{static{n(this,"PgArray")}constructor(e,t,r,s){super(e,t),this.baseColumn=r,this.range=s}static[l]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.length=="number"?this.length:""}]`}mapFromDriverValue(e){return typeof e=="string"&&(e=Ge(e)),e.map(t=>this.baseColumn.mapFromDriverValue(t))}mapFromJsonValue(e){typeof e=="string"&&(e=Ge(e));let t=this.baseColumn;return"mapFromJsonValue"in t?e.map(r=>t.mapFromJsonValue(r)):e.map(r=>t.mapFromDriverValue(r))}mapToDriverValue(e,t=!1){let r=e.map(s=>s===null?null:f(this.baseColumn,Ei)?this.baseColumn.mapToDriverValue(s,!0):this.baseColumn.mapToDriverValue(s));return t?r:Ye(r)}};var Mn=class extends S{static{n(this,"PgEnumObjectColumnBuilder")}static[l]="PgEnumObjectColumnBuilder";constructor(e,t){super(e,"string enum","PgEnumObjectColumn"),this.config.enum=t}build(e){return new Un(e,this.config)}},Un=class extends y{static{n(this,"PgEnumObjectColumn")}static[l]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}},Xe=Symbol.for("drizzle:isPgEnum");function zt(i){return!!i&&typeof i=="function"&&Xe in i&&i[Xe]===!0}n(zt,"isPgEnum");var Jn=class extends S{static{n(this,"PgEnumColumnBuilder")}static[l]="PgEnumColumnBuilder";constructor(e,t){super(e,"string enum","PgEnumColumn"),this.config.enum=t}build(e){return new Wn(e,this.config)}},Wn=class extends y{static{n(this,"PgEnumColumn")}static[l]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}};function Hn(i,e){return Array.isArray(e)?Lt(i,[...e],void 0):Ft(i,e,void 0)}n(Hn,"pgEnum");function Lt(i,e,t){let r=Object.assign(s=>new Jn(s??"",r),{enumName:i,enumValues:e,schema:t,[Xe]:!0});return r}n(Lt,"pgEnumWithSchema");function Ft(i,e,t){let r=Object.assign(s=>new Mn(s??"",r),{enumName:i,enumValues:Object.values(e),schema:t,[Xe]:!0});return r}n(Ft,"pgEnumObjectWithSchema");var z=class{static{n(this,"Subquery")}static[l]="Subquery";constructor(e,t,r,s=!1,a=[]){this._={brand:"Subquery",sql:e,selectedFields:t,alias:r,isWith:s,usedTables:a}}},et=class extends z{static{n(this,"WithSubquery")}static[l]="WithSubquery"};var Ri="1.0.0-beta.1-fd8bfcc";var Kt,Et,L={startActiveSpan(i,e){return Kt?(Et||(Et=Kt.trace.getTracer("drizzle-orm",Ri)),Je((t,r)=>r.startActiveSpan(i,s=>{try{return e(s)}catch(a){throw s.setStatus({code:t.SpanStatusCode.ERROR,message:a instanceof Error?a.message:"Unknown error"}),a}finally{s.end()}}),Kt,Et)):e()}};var _=Symbol.for("drizzle:ViewBaseConfig");var ee=Symbol.for("drizzle:Schema"),H=Symbol.for("drizzle:Columns"),ki=Symbol.for("drizzle:ExtraConfigColumns"),pe=Symbol.for("drizzle:OriginalName"),Rt=Symbol.for("drizzle:BaseName"),me=Symbol.for("drizzle:IsAlias"),Mi=Symbol.for("drizzle:ExtraConfigBuilder"),Gn=Symbol.for("drizzle:IsDrizzleTable"),b=class{static{n(this,"Table")}static[l]="Table";static Symbol={Name:Z,Schema:ee,OriginalName:pe,Columns:H,ExtraConfigColumns:ki,BaseName:Rt,IsAlias:me,ExtraConfigBuilder:Mi};[Z];[pe];[ee];[H];[ki];[Rt];[me]=!1;[Gn]=!0;[Mi]=void 0;constructor(e,t,r){this[Z]=this[pe]=e,this[ee]=t,this[Rt]=r}getSQL=void 0};function te(i){return i[Z]}n(te,"getTableName");function Qe(i){return`${i[ee]??"public"}.${i[Z]}`}n(Qe,"getTableUniqueName");var Ea=class{static{n(this,"FakePrimitiveParam")}static[l]="FakePrimitiveParam"};function je(i){return i!=null&&typeof i.getSQL=="function"}n(je,"isSQLWrapper");function Yn(i){let e={sql:"",params:[]};for(let t of i)e.sql+=t.sql,e.params.push(...t.params),t.typings?.length&&(e.typings||(e.typings=[]),e.typings.push(...t.typings));return e}n(Yn,"mergeQueries");var R=class{static{n(this,"StringChunk")}static[l]="StringChunk";value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new P([this])}},P=class Ve{static{n(this,"SQL")}constructor(e){this.queryChunks=e;for(let t of e)if(f(t,b)){let r=t[b.Symbol.Schema];this.usedTables.push(r===void 0?t[b.Symbol.Name]:r+"."+t[b.Symbol.Name])}}static[l]="SQL";decoder=Ji;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return L.startActiveSpan("drizzle.buildSQL",t=>{let r=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":r.sql,"drizzle.query.params":JSON.stringify(r.params)}),r})}buildQueryFromSourceParams(e,t){let r=Object.assign({},t,{inlineParams:t.inlineParams||this.shouldInlineParams,paramStartIndex:t.paramStartIndex||{value:0}}),{casing:s,escapeName:a,escapeParam:c,prepareTyping:m,inlineParams:g,paramStartIndex:h}=r;return Yn(e.map(d=>{if(f(d,R))return{sql:d.value.join(""),params:[]};if(f(d,kt))return{sql:a(d.value),params:[]};if(d===void 0)return{sql:"",params:[]};if(Array.isArray(d)){let p=[new R("(")];for(let[w,u]of d.entries())p.push(u),w<d.length-1&&p.push(new R(", "));return p.push(new R(")")),this.buildQueryFromSourceParams(p,r)}if(f(d,Ve))return this.buildQueryFromSourceParams(d.queryChunks,{...r,inlineParams:g||d.shouldInlineParams});if(f(d,b)){let p=d[b.Symbol.Schema],w=d[b.Symbol.Name];return{sql:p===void 0||d[me]?a(w):a(p)+"."+a(w),params:[]}}if(f(d,A)){let p=s.getColumnCasing(d);if(t.invokeSource==="indexes")return{sql:a(p),params:[]};let w=d.table[b.Symbol.Schema];return{sql:d.table[me]||w===void 0?a(d.table[b.Symbol.Name])+"."+a(p):a(w)+"."+a(d.table[b.Symbol.Name])+"."+a(p),params:[]}}if(f(d,W)){let p=d[_].schema,w=d[_].name;return{sql:p===void 0||d[_].isAlias?a(w):a(p)+"."+a(w),params:[]}}if(f(d,se)){if(f(d.value,ye))return{sql:c(h.value++,d),params:[d],typings:["none"]};let p=d.value===null?null:d.encoder.mapToDriverValue(d.value);if(f(p,Ve))return this.buildQueryFromSourceParams([p],r);if(g)return{sql:this.mapInlineParam(p,r),params:[]};let w=["none"];return m&&(w=[m(d.encoder)]),{sql:c(h.value++,p),params:[p],typings:w}}return f(d,ye)?{sql:c(h.value++,d),params:[d],typings:["none"]}:f(d,Ve.Aliased)&&d.fieldAlias!==void 0?{sql:a(d.fieldAlias),params:[]}:f(d,z)?d._.isWith?{sql:a(d._.alias),params:[]}:this.buildQueryFromSourceParams([new R("("),d._.sql,new R(") "),new kt(d._.alias)],r):zt(d)?d.schema?{sql:a(d.schema)+"."+a(d.enumName),params:[]}:{sql:a(d.enumName),params:[]}:je(d)?d.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([d.getSQL()],r):this.buildQueryFromSourceParams([new R("("),d.getSQL(),new R(")")],r):g?{sql:this.mapInlineParam(d,r),params:[]}:{sql:c(h.value++,d),params:[d],typings:["none"]}}))}mapInlineParam(e,{escapeString:t}){if(e===null)return"null";if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="string")return t(e);if(typeof e=="object"){let r=e.toString();return t(r==="[object Object]"?JSON.stringify(e):r)}throw new Error("Unexpected param value: "+e)}getSQL(){return this}as(e){return e===void 0?this:new Ve.Aliased(this,e)}mapWith(e){return this.decoder=typeof e=="function"?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}},kt=class{static{n(this,"Name")}constructor(e){this.value=e}static[l]="Name";brand;getSQL(){return new P([this])}};function Ui(i){return typeof i=="object"&&i!==null&&"mapToDriverValue"in i&&typeof i.mapToDriverValue=="function"}n(Ui,"isDriverValueEncoder");var Ji={mapFromDriverValue:n(i=>i,"mapFromDriverValue")},Wi={mapToDriverValue:n(i=>i,"mapToDriverValue")},Ua={...Ji,...Wi},se=class{static{n(this,"Param")}constructor(e,t=Wi){this.value=e,this.encoder=t}static[l]="Param";brand;getSQL(){return new P([this])}};function o(i,...e){let t=[];(e.length>0||i.length>0&&i[0]!=="")&&t.push(new R(i[0]));for(let[r,s]of e.entries())t.push(s,new R(i[r+1]));return new P(t)}n(o,"sql");(i=>{function e(){return new P([])}n(e,"empty"),i.empty=e;function t(g){return new P(g)}n(t,"fromList"),i.fromList=t;function r(g){return new P([new R(g)])}n(r,"raw"),i.raw=r;function s(g,h){let d=[];for(let[p,w]of g.entries())p>0&&h!==void 0&&d.push(h),d.push(w);return new P(d)}n(s,"join"),i.join=s;function a(g){return new kt(g)}n(a,"identifier"),i.identifier=a;function c(g){return new ye(g)}n(c,"placeholder2"),i.placeholder=c;function m(g,h){return new se(g,h)}n(m,"param2"),i.param=m})(o||(o={}));(i=>{let e=class Hi{static{n(this,"Aliased")}constructor(r,s){this.sql=r,this.fieldAlias=s}static[l]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Hi(this.sql,this.fieldAlias)}};i.Aliased=e})(P||(P={}));var ye=class{static{n(this,"Placeholder")}constructor(e){this.name=e}static[l]="Placeholder";getSQL(){return new P([this])}};var Zn=Symbol.for("drizzle:IsDrizzleView"),W=class{static{n(this,"View")}static[l]="View";[_];[Zn]=!0;get[Z](){return this[_].name}get[ee](){return this[_].schema}get[me](){return this[_].isAlias}get[pe](){return this[_].originalName}get[H](){return this[_].selectedFields}constructor({name:e,schema:t,selectedFields:r,query:s}){this[_]={name:e,originalName:e,schema:t,selectedFields:r,query:s,isExisting:!s,isAlias:!1}}getSQL(){return new P([this])}};A.prototype.getSQL=function(){return new P([this])};b.prototype.getSQL=function(){return new P([this])};z.prototype.getSQL=function(){return new P([this])};var De=class{static{n(this,"ColumnAliasProxyHandler")}constructor(e){this.table=e}static[l]="ColumnAliasProxyHandler";get(e,t){return t==="table"?this.table:e[t]}},Te=class{static{n(this,"TableAliasProxyHandler")}constructor(e,t){this.alias=e,this.replaceOriginalName=t}static[l]="TableAliasProxyHandler";get(e,t){if(t===b.Symbol.IsAlias)return!0;if(t===b.Symbol.Name)return this.alias;if(this.replaceOriginalName&&t===b.Symbol.OriginalName)return this.alias;if(t===_)return{...e[_],name:this.alias,isAlias:!0};if(t===b.Symbol.Columns){let s=e[b.Symbol.Columns];if(!s)return s;let a={};return Object.keys(s).map(c=>{a[c]=new Proxy(s[c],new De(new Proxy(e,this)))}),a}let r=e[t];return f(r,A)?new Proxy(r,new De(new Proxy(e,this))):r}},sl=class{static{n(this,"RelationTableAliasProxyHandler")}constructor(e){this.alias=e}static[l]="RelationTableAliasProxyHandler";get(e,t){return t==="sourceTable"?oe(e.sourceTable,this.alias):e[t]}};function oe(i,e){return new Proxy(i,new Te(e,!1))}n(oe,"aliasedTable");function ae(i,e){return new Proxy(i,new De(new Proxy(i.table,new Te(e,!1))))}n(ae,"aliasedTableColumn");function Mt(i,e){return new P.Aliased(Ie(i.sql,e),i.fieldAlias)}n(Mt,"mapColumnsInAliasedSQLToAlias");function Ie(i,e){return o.join(i.queryChunks.map(t=>f(t,A)?ae(t,e):f(t,P)?Ie(t,e):f(t,P.Aliased)?Mt(t,e):t))}n(Ie,"mapColumnsInSQLToAlias");var be=class extends Error{static{n(this,"DrizzleError")}static[l]="DrizzleError";constructor({message:e,cause:t}){super(e),this.name="DrizzleError",this.cause=t}},ml=class Gi extends Error{static{n(this,"DrizzleQueryError")}constructor(e,t,r){super(`Failed query: ${e}
2
+ params: ${t}`),this.query=e,this.params=t,this.cause=r,Error.captureStackTrace(this,Gi),r&&(this.cause=r)}static[l]="DrizzleQueryError"},dl=class extends be{static{n(this,"TransactionRollbackError")}static[l]="TransactionRollbackError";constructor(){super({message:"Rollback"})}};var U=class{static{n(this,"QueryPromise")}static[l]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}};function F(i,e){return Ui(e)&&!je(i)&&!f(i,se)&&!f(i,ye)&&!f(i,A)&&!f(i,b)&&!f(i,W)?new se(i,e):i}n(F,"bindIfParam");var le=n((i,e)=>o`${i} = ${F(e,i)}`,"eq"),tt=n((i,e)=>o`${i} <> ${F(e,i)}`,"ne");function J(...i){let e=i.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new P(e):new P([new R("("),o.join(e,new R(" and ")),new R(")")])}n(J,"and");function Ne(...i){let e=i.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new P(e):new P([new R("("),o.join(e,new R(" or ")),new R(")")])}n(Ne,"or");function $e(i){return o`not ${i}`}n($e,"not");var it=n((i,e)=>o`${i} > ${F(e,i)}`,"gt"),rt=n((i,e)=>o`${i} >= ${F(e,i)}`,"gte"),nt=n((i,e)=>o`${i} < ${F(e,i)}`,"lt"),st=n((i,e)=>o`${i} <= ${F(e,i)}`,"lte");function ot(i,e){return Array.isArray(e)?e.length===0?o`false`:o`${i} in ${e.map(t=>F(t,i))}`:o`${i} in ${F(e,i)}`}n(ot,"inArray");function at(i,e){return Array.isArray(e)?e.length===0?o`true`:o`${i} not in ${e.map(t=>F(t,i))}`:o`${i} not in ${F(e,i)}`}n(at,"notInArray");function lt(i){return o`${i} is null`}n(lt,"isNull");function ut(i){return o`${i} is not null`}n(ut,"isNotNull");function ze(i){return o`exists ${i}`}n(ze,"exists");function Le(i){return o`not exists ${i}`}n(Le,"notExists");function ct(i,e,t){return o`${i} between ${F(e,i)} and ${F(t,i)}`}n(ct,"between");function mt(i,e,t){return o`${i} not between ${F(e,i)} and ${F(t,i)}`}n(mt,"notBetween");function dt(i,e){return o`${i} like ${e}`}n(dt,"like");function ft(i,e){return o`${i} not like ${e}`}n(ft,"notLike");function ht(i,e){return o`${i} ilike ${e}`}n(ht,"ilike");function gt(i,e){return o`${i} not ilike ${e}`}n(gt,"notIlike");function Yi(i,e){if(Array.isArray(e)){if(e.length===0)throw new Error("arrayContains requires at least one value");let t=o`${F(e,i)}`;return o`${i} @> ${t}`}return o`${i} @> ${F(e,i)}`}n(Yi,"arrayContains");function Zi(i,e){if(Array.isArray(e)){if(e.length===0)throw new Error("arrayContained requires at least one value");let t=o`${F(e,i)}`;return o`${i} <@ ${t}`}return o`${i} <@ ${F(e,i)}`}n(Zi,"arrayContained");function Xi(i,e){if(Array.isArray(e)){if(e.length===0)throw new Error("arrayOverlaps requires at least one value");let t=o`${F(e,i)}`;return o`${i} && ${t}`}return o`${i} && ${F(e,i)}`}n(Xi,"arrayOverlaps");function Pe(i){return o`${i} asc`}n(Pe,"asc");function Fe(i){return o`${i} desc`}n(Fe,"desc");function er(i,e){for(let t of Object.values(i))for(let[r,s]of Object.entries(t.relations))f(s,ve)&&(s.sourceTable=t.table,s.fieldName=r);for(let[t,r]of Object.entries(i))for(let[s,a]of Object.entries(r.relations)){if(!f(a,ve))continue;let c,{targetTableName:m,alias:g,sourceColumns:h,targetColumns:d,throughTable:p,sourceTable:w,through:u,targetTable:x,where:C,sourceColumnTableNames:Q,targetColumnTableNames:T}=a,N=`relations -> ${r.name}: { ${s}: r.${f(a,bt)?"one":"many"}.${m}(...) }`;if(s in r.table[H])throw new Error(`${N}: relation name collides with column "${s}" of table "${r.name}"`);if(typeof g=="string"&&!g)throw new Error(`${N}: "alias" cannot be an empty string - omit it if you don't need it`);if(h?.length===0)throw new Error(`${N}: "from" cannot be empty`);if(d?.length===0)throw new Error(`${N}: "to" cannot be empty`);if(h&&d){if(h.length!==d.length&&!p)throw new Error(`${N}: "from" and "to" fields without "through" must have the same length`);for(let B of Q)if(B!==t)throw new Error(`${N}: all "from" columns must belong to table "${t}", found column of table "${B}"`);for(let B of T)if(B!==m)throw new Error(`${N}: all "to" columns must belong to table "${x}", found column of table "${B}"`);if(u){if(u.source.length!==h.length||u.target.length!==d.length)throw new Error(`${N}: ".through(column)" must be used either on all columns in "from" and "to" or not defined on any of them`);for(let B of u.source)if(e[B._.tableName]!==p)throw new Error(`${N}: ".through(column)" must be used on the same table by all columns of the relation`);for(let B of u.target)if(e[B._.tableName]!==p)throw new Error(`${N}: ".through(column)" must be used on the same table by all columns of the relation`)}continue}if(h||d)throw new Error(`${N}: relation must have either both "from" and "to" defined, or none of them`);let V=i[m];if(!V)throw new Error(`${N}: not enough data provided to build the relation - "from"/"to" are not defined, and no reverse relations of table "${m}" were found"`);if(g){let B=Object.values(V.relations).filter(j=>f(j,ve)&&j.alias===g&&j!==a);if(B.length>1)throw new Error(`${N}: not enough data provided to build the relation - "from"/"to" are not defined, and multiple relations with alias "${g}" found in table "${m}": ${B.map(j=>`"${j.fieldName}"`).join(", ")}`);if(c=B[0],!c)throw new Error(`${N}: not enough data provided to build the relation - "from"/"to" are not defined, and there is no reverse relation of table "${m}" with alias "${g}"`)}else{let B=Object.values(V.relations).filter(j=>f(j,ve)&&j.targetTable===w&&!j.alias&&j!==a);if(B.length>1)throw new Error(`${N}: not enough data provided to build the relation - "from"/"to" are not defined, and multiple relations between "${m}" and "${t}" were found.
3
+ Hint: you can specify "alias" on both sides of the relation with the same value`);if(c=B[0],!c)throw new Error(`${N}: not enough data provided to build the relation - "from"/"to" are not defined, and no reverse relation of table "${m}" with target table "${t}" was found`)}if(!c.sourceColumns||!c.targetColumns)throw new Error(`${N}: not enough data provided to build the relation - "from"/"to" are not defined, and reverse relation "${m}.${c.fieldName}" does not have "from"/"to" defined`);a.sourceColumns=c.targetColumns,a.targetColumns=c.sourceColumns,a.through=c.through?{source:c.through.target,target:c.through.source}:void 0,a.throughTable=c.throughTable,a.isReversed=!C,a.where=C??c.where}return i}n(er,"processRelations");function Xn(i,e){let t={};for(let[r,s]of Object.entries(i))t[r]={table:s,name:r,relations:e[r]??{}};return er(t,i)}n(Xn,"buildRelations");function es(i,e){let t={};for(let[r,s]of Object.entries(e))!s||!i[r]||(t[r]={table:i[r],name:r,relations:s});return er(t,i)}n(es,"buildRelationsParts");var ve=class{static{n(this,"Relation")}constructor(e,t){this.targetTableName=t,this.targetTable=e}static[l]="RelationV2";fieldName;sourceColumns;targetColumns;alias;where;sourceTable;targetTable;through;throughTable;isReversed;sourceColumnTableNames=[];targetColumnTableNames=[]},bt=class extends ve{static{n(this,"One")}static[l]="OneV2";relationType="one";optional;constructor(e,t,r,s){super(t,r),this.alias=s?.alias,this.where=s?.where,s?.from&&(this.sourceColumns=(Array.isArray(s.from)?s.from:[s.from]).map(a=>(this.throughTable??=a._.through?e[a._.through._.tableName]:void 0,this.sourceColumnTableNames.push(a._.tableName),a._.column))),s?.to&&(this.targetColumns=(Array.isArray(s.to)?s.to:[s.to]).map(a=>(this.throughTable??=a._.through?e[a._.through._.tableName]:void 0,this.targetColumnTableNames.push(a._.tableName),a._.column))),this.throughTable&&(this.through={source:(Array.isArray(s?.from)?s.from:s?.from?[s.from]:[]).map(a=>a._.through),target:(Array.isArray(s?.to)?s.to:s?.to?[s.to]:[]).map(a=>a._.through)}),this.optional=s?.optional??!0}},ts=class extends ve{static{n(this,"Many")}constructor(e,t,r,s){super(t,r),this.config=s,this.alias=s?.alias,this.where=s?.where,s?.from&&(this.sourceColumns=(Array.isArray(s.from)?s.from:[s.from]).map(a=>(this.throughTable??=a._.through?e[a._.through._.tableName]:void 0,this.sourceColumnTableNames.push(a._.tableName),a._.column))),s?.to&&(this.targetColumns=(Array.isArray(s.to)?s.to:[s.to]).map(a=>(this.throughTable??=a._.through?e[a._.through._.tableName]:void 0,this.targetColumnTableNames.push(a._.tableName),a._.column))),this.throughTable&&(this.through={source:(Array.isArray(s?.from)?s.from:s?.from?[s.from]:[]).map(a=>a._.through),target:(Array.isArray(s?.to)?s.to:s?.to?[s.to]:[]).map(a=>a._.through)})}static[l]="ManyV2";relationType="many"},is=class{static{n(this,"AggregatedField")}static[l]="AggregatedField";table;onTable(e){return this.table=e,this}},rs=class extends is{static{n(this,"Count")}static[l]="AggregatedFieldCount";query;getSQL(){if(!this.query){if(!this.table)throw new Error("Table must be set before building aggregate field");this.query=o`select count(*) as ${o.identifier("r")} from ${we(this.table)}`.mapWith(Number)}return this.query}},qe={and:J,between:ct,eq:le,exists:ze,gt:it,gte:rt,ilike:ht,inArray:ot,arrayContains:Yi,arrayContained:Zi,arrayOverlaps:Xi,isNull:lt,isNotNull:ut,like:dt,lt:nt,lte:st,ne:tt,not:$e,notBetween:mt,notExists:Le,notLike:ft,notIlike:gt,notInArray:at,or:Ne,sql:o},ns={sql:o,asc:Pe,desc:Fe};function yt(i,e,t=c=>c,r=!1,s=!1,a){for(let c of e){if(c.selection){let d=`${a?`${a}.`:""}${c.key}`;if(i[c.key]===null)continue;if(r&&(i[c.key]=JSON.parse(i[c.key])),s&&typeof i[c.key]=="string"&&(i[c.key]=JSON.parse(i[c.key])),c.isArray){for(let p of i[c.key])yt(p,c.selection,t,!1,s,d);continue}yt(i[c.key],c.selection,t,!1,s,d);continue}let m=c.field,g=t(i[c.key]);if(g===null)continue;let h;f(m,A)?h=m:f(m,P)?h=m.decoder:f(m,P.Aliased)?h=m.sql.decoder:h=m.getSQL().decoder,i[c.key]="mapFromJsonValue"in h?h.mapFromJsonValue(g):h.mapFromDriverValue(g)}return i}n(yt,"mapRelationalRow");var ss=class{static{n(this,"RelationsBuilderTable")}static[l]="RelationsBuilderTable";_;constructor(e,t){this._={name:t,table:e}}},os=class{static{n(this,"RelationsBuilderColumn")}static[l]="RelationsBuilderColumn";_;constructor(e,t,r){this._={tableName:t,column:e,key:r}}through(e){return new as(this._.column,this._.tableName,this._.key,e)}},as=class{static{n(this,"RelationsBuilderJunctionColumn")}static[l]="RelationsBuilderColumn";_;constructor(e,t,r,s){this._={tableName:t,column:e,through:s,key:r}}},ls=class{static{n(this,"RelationsHelperStatic")}static[l]="RelationsHelperStatic";_;constructor(e){this._={tables:e};let t={},r={};for(let[s,a]of Object.entries(e))t[s]=c=>new bt(e,a,s,c),r[s]=c=>new ts(e,a,s,c);this.one=t,this.many=r}one;many;aggs={count(){return new rs}}};function tr(i){let e=new ls(i),t=Object.entries(i).reduce((r,[s,a])=>{let c=new ss(a,s),m=Object.entries(a[H]).reduce((g,[h,d])=>{let p=new os(d,s,h);return g[h]=p,g},{});return r[s]=Object.assign(c,m),r},{});return Object.assign(e,t)}n(tr,"createRelationsHelper");function ir(i){return Object.fromEntries(Object.entries(i).filter(([e,t])=>f(t,b)||f(t,W)))}n(ir,"extractTablesFromSchema");function us(i,e){let t=ir(i),r=e?e(tr(t)):{};return Xn(t,r)}n(us,"defineRelations");function cs(i,e){let t=ir(i),r=e?e(tr(t)):Object.fromEntries(Object.keys(t).map(s=>[s,{}]));return es(t,r)}n(cs,"defineRelationsPart");function rr(i,e){let t=i[H][e];return t?f(t,A)?t:f(t,P.Aliased)?o`${i}.${o.identifier(t.fieldAlias)}`:o`${i}.${o.identifier(e)}`:o`${i}.${o.identifier(e)}`}n(rr,"fieldSelectionToSQL");function pt(i,e){if(typeof e!="object"||f(e,ye))return le(i,e);let t=Object.entries(e);if(!t.length)return;let r=[];for(let[s,a]of t)if(a!==void 0)switch(s){case"NOT":{let c=pt(i,a);if(!c)continue;r.push($e(c));continue}case"OR":{if(!a.length)continue;r.push(Ne(...a.map(c=>pt(i,c))));continue}case"AND":{if(!a.length)continue;r.push(J(...a.map(c=>pt(i,c))));continue}case"isNotNull":case"isNull":{if(!a)continue;r.push(qe[s](i));continue}case"in":{r.push(qe.inArray(i,a));continue}case"notIn":{r.push(qe.notInArray(i,a));continue}default:{r.push(qe[s](i,a));continue}}if(r.length)return J(...r)}n(pt,"relationsFieldFilterToSQL");function ue(i,e,t={},r={},s,a=0){let c=Object.entries(e);if(!c.length)return;let m=[];for(let[g,h]of c)if(h!==void 0)switch(g){case"RAW":{let d=typeof h=="function"?h(i,qe):h.getSQL();m.push(d);continue}case"OR":{if(!h?.length)continue;m.push(Ne(...h.map(d=>ue(i,d,t,r,s,a))));continue}case"AND":{if(!h?.length)continue;m.push(J(...h.map(d=>ue(i,d,t,r,s,a))));continue}case"NOT":{if(h===void 0)continue;let d=ue(i,h,t,r,s,a);if(!d)continue;m.push($e(d));continue}default:{if(i[H][g]){let V=rr(i,g),B=pt(V,h);B&&m.push(B);continue}let d=t[g];if(!d)throw new be({message:`Unknown relational filter field: "${g}"`});let p=oe(d.targetTable,`f${a}`),w=d.throughTable?oe(d.throughTable,`ft${a}`):void 0,u=r[d.targetTableName],{filter:x,joinCondition:C}=Ut(s,d,i,p,w),Q=typeof h=="boolean"?void 0:ue(p,h,u.relations,r,s,a+1),T=J(x,Q),N=w?o`(select * from ${we(p)} inner join ${we(w)} on ${C}${o` where ${T}`.if(T)} limit 1)`:o`(select * from ${we(p)}${o` where ${T}`.if(T)} limit 1)`;T&&m.push((h?ze:Le)(N))}}return J(...m)}n(ue,"relationsFilterToSQL");function nr(i,e){if(typeof e=="function"){let r=e(i,ns);return f(r,P)?r:Array.isArray(r)?r.length?o.join(r.map(s=>f(s,P)?s:Pe(s)),o`, `):void 0:f(r,A)?Pe(r):void 0}let t=Object.entries(e).filter(([r,s])=>s);if(t.length)return o.join(t.map(([r,s])=>(s==="asc"?Pe:Fe)(rr(i,r))),o`, `)}n(nr,"relationsOrderToSQL");function sr(i,e){let t=[],r=[];for(let[s,a]of Object.entries(e)){if(!a)continue;let c=typeof a=="function"?a(i,{sql:qe.sql}):a,m=o`(${c.getSQL()}) as ${o.identifier(s)}`;m.decoder=c.getSQL().decoder,t.push(m),r.push({key:s,field:m})}return{sql:t.length?o.join(t,o`, `):void 0,selection:r}}n(sr,"relationExtrasToSQL");function Ut(i,e,t,r,s){if(e.through){let m=e.sourceColumns.map((h,d)=>{let p=e.through.source[d];return le(o`${t}.${o.identifier(i.getColumnCasing(h))}`,o`${s}.${o.identifier(f(p._.column,A)?i.getColumnCasing(p._.column):p._.key)}`)}),g=e.targetColumns.map((h,d)=>{let p=e.through.target[d];return le(o`${s}.${o.identifier(f(p._.column,A)?i.getColumnCasing(p._.column):p._.key)}`,o`${r}.${o.identifier(i.getColumnCasing(h))}`)});return{filter:J(e.where?ue(e.isReversed?t:r,e.where):void 0,...m),joinCondition:J(...g)}}let a=e.sourceColumns.map((m,g)=>{let h=e.targetColumns[g];return le(o`${t}.${o.identifier(i.getColumnCasing(m))}`,o`${r}.${o.identifier(i.getColumnCasing(h))}`)});return{filter:J(...a,e.where?ue(e.isReversed?t:r,e.where):void 0)}}n(Ut,"relationToSQL");function we(i){return o`${i[me]?o`${o`${o.identifier(i[ee]??"")}.`.if(i[ee])}${o.identifier(i[pe])} as ${i}`:i}`}n(we,"getTableAsAliasSQL");function ie(i,e){return Object.entries(i).reduce((t,[r,s])=>{if(typeof r!="string")return t;let a=e?[...e,r]:[r];return f(s,A)||f(s,P)||f(s,P.Aliased)?t.push({path:a,field:s}):f(s,b)?t.push(...ie(s[b.Symbol.Columns],a)):t.push(...ie(s,a)),t},[])}n(ie,"orderSelectedFields");function Ke(i,e){let t=Object.keys(i),r=Object.keys(e);if(t.length!==r.length)return!1;for(let[s,a]of t.entries())if(a!==r[s])return!1;return!0}n(Ke,"haveSameKeys");function Pt(i,e){let t=Object.entries(e).filter(([,r])=>r!==void 0).map(([r,s])=>f(s,P)||f(s,A)?[r,s]:[r,new se(s,i[b.Symbol.Columns][r])]);if(t.length===0)throw new Error("No values to set");return Object.fromEntries(t)}n(Pt,"mapUpdateSet");function or(i,e){for(let t of e)for(let r of Object.getOwnPropertyNames(t.prototype))r!=="constructor"&&Object.defineProperty(i.prototype,r,Object.getOwnPropertyDescriptor(t.prototype,r)||Object.create(null))}n(or,"applyMixins");function Ee(i){return i[b.Symbol.Columns]}n(Ee,"getTableColumns");function ce(i){return f(i,z)?i._.alias:f(i,W)?i[_].name:f(i,P)?void 0:i[b.Symbol.IsAlias]?i[b.Symbol.Name]:i[b.Symbol.BaseName]}n(ce,"getTableLikeName");function q(i,e){return{name:typeof i=="string"&&i.length>0?i:"",config:typeof i=="object"?i:e}}n(q,"getColumnNameAndConfig");var Xl=typeof TextDecoder>"u"?null:new TextDecoder;function ms(i,e){return new Proxy(i,new Te(e,!1))}n(ms,"alias");var wt=class{static{n(this,"CheckBuilder")}constructor(e,t){this.name=e,this.value=t}static[l]="PgCheckBuilder";brand;build(e){return new ar(e,this)}},ar=class{static{n(this,"Check")}constructor(e,t){this.table=e,this.name=t.name,this.value=t.value}static[l]="PgCheck";name;value};function ds(i,e){return new wt(i,e)}n(ds,"check");var Se=class extends S{static{n(this,"PgIntColumnBaseBuilder")}static[l]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(e){if(e){let{name:t,...r}=e;this.config.generatedIdentity={type:"always",sequenceName:t,sequenceOptions:r}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(e){if(e){let{name:t,...r}=e;this.config.generatedIdentity={type:"byDefault",sequenceName:t,sequenceOptions:r}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}};var lr=class extends Se{static{n(this,"PgBigInt53Builder")}static[l]="PgBigInt53Builder";constructor(e){super(e,"number int53","PgBigInt53")}build(e){return new ur(e,this.config)}},ur=class extends y{static{n(this,"PgBigInt53")}static[l]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(e){return typeof e=="number"?e:Number(e)}},cr=class extends Se{static{n(this,"PgBigInt64Builder")}static[l]="PgBigInt64Builder";constructor(e){super(e,"bigint int64","PgBigInt64")}build(e){return new mr(e,this.config)}},mr=class extends y{static{n(this,"PgBigInt64")}static[l]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(e){return BigInt(e)}};function Jt(i,e){let{name:t,config:r}=q(i,e);return r.mode==="number"?new lr(t):new cr(t)}n(Jt,"bigint");var dr=class extends S{static{n(this,"PgBigSerial53Builder")}static[l]="PgBigSerial53Builder";constructor(e){super(e,"number int53","PgBigSerial53"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new fr(e,this.config)}},fr=class extends y{static{n(this,"PgBigSerial53")}static[l]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(e){return typeof e=="number"?e:Number(e)}},hr=class extends S{static{n(this,"PgBigSerial64Builder")}static[l]="PgBigSerial64Builder";constructor(e){super(e,"bigint int64","PgBigSerial64"),this.config.hasDefault=!0}build(e){return new gr(e,this.config)}},gr=class extends y{static{n(this,"PgBigSerial64")}static[l]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(e){return BigInt(e)}};function Wt(i,e){let{name:t,config:r}=q(i,e);return r.mode==="number"?new dr(t):new hr(t)}n(Wt,"bigserial");var pr=class extends S{static{n(this,"PgBooleanBuilder")}static[l]="PgBooleanBuilder";constructor(e){super(e,"boolean","PgBoolean")}build(e){return new yr(e,this.config)}},yr=class extends y{static{n(this,"PgBoolean")}static[l]="PgBoolean";getSQLType(){return"boolean"}};function Ht(i){return new pr(i??"")}n(Ht,"boolean");var br=class extends S{static{n(this,"PgByteaBuilder")}static[l]="PgByteaBuilder";constructor(e){super(e,"object buffer","PgBytea")}build(e){return new Pr(e,this.config)}},Pr=class extends y{static{n(this,"PgBytea")}static[l]="PgBytea";mapFromDriverValue(e){if(Buffer.isBuffer(e))return e;if(typeof e=="string"){let t=e.slice(2,e.length);return Buffer.from(t,"hex")}return Buffer.from(e)}getSQLType(){return"bytea"}};function fs(i){return new br(i??"")}n(fs,"bytea");var wr=class extends S{static{n(this,"PgCharBuilder")}static[l]="PgCharBuilder";constructor(e,t){super(e,t.enum?.length?"string enum":"string","PgChar"),this.config.length=t.length??1,this.config.setLength=t.length!==void 0,this.config.enumValues=t.enum,this.config.isLengthExact=!0}build(e){return new Sr(e,this.config)}},Sr=class extends y{static{n(this,"PgChar")}static[l]="PgChar";enumValues=this.config.enumValues;getSQLType(){return this.config.setLength?`char(${this.length})`:"char"}};function Gt(i,e={}){let{name:t,config:r}=q(i,e);return new wr(t,r)}n(Gt,"char");var Cr=class extends S{static{n(this,"PgCidrBuilder")}static[l]="PgCidrBuilder";constructor(e){super(e,"string cidr","PgCidr")}build(e){return new xr(e,this.config)}},xr=class extends y{static{n(this,"PgCidr")}static[l]="PgCidr";getSQLType(){return"cidr"}};function Yt(i){return new Cr(i??"")}n(Yt,"cidr");var Br=class extends S{static{n(this,"PgCustomColumnBuilder")}static[l]="PgCustomColumnBuilder";constructor(e,t,r){super(e,"custom","PgCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=r}build(e){return new Tr(e,this.config)}},Tr=class extends y{static{n(this,"PgCustomColumn")}static[l]="PgCustomColumn";sqlName;mapTo;mapFrom;mapJson;forJsonSelect;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver,this.mapJson=t.customTypeParams.fromJson,this.forJsonSelect=t.customTypeParams.forJsonSelect}getSQLType(){return this.sqlName}mapFromDriverValue(e){return typeof this.mapFrom=="function"?this.mapFrom(e):e}mapFromJsonValue(e){return typeof this.mapJson=="function"?this.mapJson(e):this.mapFromDriverValue(e)}jsonSelectIdentifier(e,t,r){if(typeof this.forJsonSelect=="function")return this.forJsonSelect(e,t,r);let s=this.getSQLType().toLowerCase(),a=s.indexOf("(");switch(a+1?s.slice(0,a):s){case"bytea":case"geometry":case"timestamp":case"numeric":case"bigint":{let m="[]".repeat(r??0);return t`${e}::text${t.raw(m).if(r)}`}default:return e}}mapToDriverValue(e){return typeof this.mapTo=="function"?this.mapTo(e):e}};function Zt(i){return(e,t)=>{let{name:r,config:s}=q(e,t);return new Br(r,s,i)}}n(Zt,"customType");var de=class extends S{static{n(this,"PgDateColumnBaseBuilder")}static[l]="PgDateColumnBaseBuilder";defaultNow(){return this.default(o`now()`)}};var Nr=class extends de{static{n(this,"PgDateBuilder")}static[l]="PgDateBuilder";constructor(e){super(e,"object date","PgDate")}build(e){return new St(e,this.config)}},St=class extends y{static{n(this,"PgDate")}static[l]="PgDate";getSQLType(){return"date"}mapFromDriverValue(e){return new Date(e)}mapToDriverValue(e){return e.toISOString()}},$r=class extends de{static{n(this,"PgDateStringBuilder")}static[l]="PgDateStringBuilder";constructor(e){super(e,"string date","PgDateString")}build(e){return new Ct(e,this.config)}},Ct=class extends y{static{n(this,"PgDateString")}static[l]="PgDateString";getSQLType(){return"date"}};function Xt(i,e){let{name:t,config:r}=q(i,e);return r?.mode==="date"?new Nr(t):new $r(t)}n(Xt,"date");var hs=class extends S{static{n(this,"PgDoublePrecisionBuilder")}static[l]="PgDoublePrecisionBuilder";constructor(e){super(e,"number double","PgDoublePrecision")}build(e){return new gs(e,this.config)}},gs=class extends y{static{n(this,"PgDoublePrecision")}static[l]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(e){return typeof e=="string"?Number.parseFloat(e):e}};function ei(i){return new hs(i??"")}n(ei,"doublePrecision");var ps=class extends S{static{n(this,"PgInetBuilder")}static[l]="PgInetBuilder";constructor(e){super(e,"string inet","PgInet")}build(e){return new ys(e,this.config)}},ys=class extends y{static{n(this,"PgInet")}static[l]="PgInet";getSQLType(){return"inet"}};function ti(i){return new ps(i??"")}n(ti,"inet");var vr=class extends Se{static{n(this,"PgIntegerBuilder")}static[l]="PgIntegerBuilder";constructor(e){super(e,"number int32","PgInteger")}build(e){return new qr(e,this.config)}},qr=class extends y{static{n(this,"PgInteger")}static[l]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(e){return typeof e=="string"?Number.parseInt(e):e}};function ii(i){return new vr(i??"")}n(ii,"integer");var bs=class extends S{static{n(this,"PgIntervalBuilder")}static[l]="PgIntervalBuilder";constructor(e,t){super(e,"string interval","PgInterval"),this.config.intervalConfig=t}build(e){return new Ps(e,this.config)}},Ps=class extends y{static{n(this,"PgInterval")}static[l]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let e=this.fields?` ${this.fields}`:"",t=this.precision?`(${this.precision})`:"";return`interval${e}${t}`}};function ri(i,e={}){let{name:t,config:r}=q(i,e);return new bs(t,r)}n(ri,"interval");var _r=class extends S{static{n(this,"PgJsonBuilder")}static[l]="PgJsonBuilder";constructor(e){super(e,"object json","PgJson")}build(e){return new xt(e,this.config)}},xt=class extends y{static{n(this,"PgJson")}static[l]="PgJson";constructor(e,t){super(e,t)}getSQLType(){return"json"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return e}};function ni(i){return new _r(i??"")}n(ni,"json");var Ar=class extends S{static{n(this,"PgJsonbBuilder")}static[l]="PgJsonbBuilder";constructor(e){super(e,"object json","PgJsonb")}build(e){return new Bt(e,this.config)}},Bt=class extends y{static{n(this,"PgJsonb")}static[l]="PgJsonb";constructor(e,t){super(e,t)}getSQLType(){return"jsonb"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return e}};function si(i){return new Ar(i??"")}n(si,"jsonb");var Or=class extends S{static{n(this,"PgLineBuilder")}static[l]="PgLineBuilder";constructor(e){super(e,"array line","PgLine")}build(e){return new ws(e,this.config)}},ws=class extends y{static{n(this,"PgLineTuple")}static[l]="PgLine";getSQLType(){return"line"}mapFromDriverValue(e){let[t,r,s]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(r),Number.parseFloat(s)]}mapToDriverValue(e){return`{${e[0]},${e[1]},${e[2]}}`}},Qr=class extends S{static{n(this,"PgLineABCBuilder")}static[l]="PgLineABCBuilder";constructor(e){super(e,"object line","PgLineABC")}build(e){return new Vr(e,this.config)}},Vr=class extends y{static{n(this,"PgLineABC")}static[l]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(e){let[t,r,s]=e.slice(1,-1).split(",");return{a:Number.parseFloat(t),b:Number.parseFloat(r),c:Number.parseFloat(s)}}mapToDriverValue(e){return`{${e.a},${e.b},${e.c}}`}};function oi(i,e){let{name:t,config:r}=q(i,e);return!r?.mode||r.mode==="tuple"?new Or(t):new Qr(t)}n(oi,"line");var jr=class extends S{static{n(this,"PgMacaddrBuilder")}static[l]="PgMacaddrBuilder";constructor(e){super(e,"string macaddr","PgMacaddr")}build(e){return new Dr(e,this.config)}},Dr=class extends y{static{n(this,"PgMacaddr")}static[l]="PgMacaddr";getSQLType(){return"macaddr"}};function ai(i){return new jr(i??"")}n(ai,"macaddr");var Ir=class extends S{static{n(this,"PgMacaddr8Builder")}static[l]="PgMacaddr8Builder";constructor(e){super(e,"string macaddr8","PgMacaddr8")}build(e){return new zr(e,this.config)}},zr=class extends y{static{n(this,"PgMacaddr8")}static[l]="PgMacaddr8";getSQLType(){return"macaddr8"}};function li(i){return new Ir(i??"")}n(li,"macaddr8");var Lr=class extends S{static{n(this,"PgNumericBuilder")}static[l]="PgNumericBuilder";constructor(e,t,r){super(e,"string numeric","PgNumeric"),this.config.precision=t,this.config.scale=r}build(e){return new Tt(e,this.config)}},Tt=class extends y{static{n(this,"PgNumeric")}static[l]="PgNumeric";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return typeof e=="string"?e:String(e)}getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?"numeric":`numeric(${this.precision})`}},Fr=class extends S{static{n(this,"PgNumericNumberBuilder")}static[l]="PgNumericNumberBuilder";constructor(e,t,r){super(e,"number","PgNumericNumber"),this.config.precision=t,this.config.scale=r}build(e){return new Kr(e,this.config)}},Kr=class extends y{static{n(this,"PgNumericNumber")}static[l]="PgNumericNumber";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return typeof e=="number"?e:Number(e)}mapToDriverValue=String;getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?"numeric":`numeric(${this.precision})`}},Er=class extends S{static{n(this,"PgNumericBigIntBuilder")}static[l]="PgNumericBigIntBuilder";constructor(e,t,r){super(e,"bigint int64","PgNumericBigInt"),this.config.precision=t,this.config.scale=r}build(e){return new Rr(e,this.config)}},Rr=class extends y{static{n(this,"PgNumericBigInt")}static[l]="PgNumericBigInt";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?"numeric":`numeric(${this.precision})`}};function Nt(i,e){let{name:t,config:r}=q(i,e),s=r?.mode;return s==="number"?new Fr(t,r?.precision,r?.scale):s==="bigint"?new Er(t,r?.precision,r?.scale):new Lr(t,r?.precision,r?.scale)}n(Nt,"numeric");var Ss=Nt;var Cs=class extends S{static{n(this,"PgPointTupleBuilder")}static[l]="PgPointTupleBuilder";constructor(e){super(e,"array point","PgPointTuple")}build(e){return new xs(e,this.config)}},xs=class extends y{static{n(this,"PgPointTuple")}static[l]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(e){if(typeof e=="string"){let[t,r]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(r)]}return[e.x,e.y]}mapToDriverValue(e){return`(${e[0]},${e[1]})`}},Bs=class extends S{static{n(this,"PgPointObjectBuilder")}static[l]="PgPointObjectBuilder";constructor(e){super(e,"object point","PgPointObject")}build(e){return new Ts(e,this.config)}},Ts=class extends y{static{n(this,"PgPointObject")}static[l]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(e){if(typeof e=="string"){let[t,r]=e.slice(1,-1).split(",");return{x:Number.parseFloat(t),y:Number.parseFloat(r)}}return e}mapToDriverValue(e){return`(${e.x},${e.y})`}};function ui(i,e){let{name:t,config:r}=q(i,e);return!r?.mode||r.mode==="tuple"?new Cs(t):new Bs(t)}n(ui,"point");function Ns(i){let e=[];for(let t=0;t<i.length;t+=2)e.push(Number.parseInt(i.slice(t,t+2),16));return new Uint8Array(e)}n(Ns,"hexToBytes");function kr(i,e){let t=new ArrayBuffer(8),r=new DataView(t);for(let s=0;s<8;s++)r.setUint8(s,i[e+s]);return r.getFloat64(0,!0)}n(kr,"bytesToFloat64");function ci(i){let e=Ns(i),t=0,r=e[t];t+=1;let s=new DataView(e.buffer),a=s.getUint32(t,r===1);t+=4;let c;if(a&536870912&&(c=s.getUint32(t,r===1),t+=4),(a&65535)===1){let m=kr(e,t);t+=8;let g=kr(e,t);return t+=8,[m,g]}throw new Error("Unsupported geometry type")}n(ci,"parseEWKB");var Mr=class extends S{static{n(this,"PgGeometryBuilder")}static[l]="PgGeometryBuilder";constructor(e){super(e,"array geometry","PgGeometry")}build(e){return new Ur(e,this.config)}},Ur=class extends y{static{n(this,"PgGeometry")}static[l]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){return typeof e!="string"?e:ci(e)}mapToDriverValue(e){return`point(${e[0]} ${e[1]})`}},Jr=class extends S{static{n(this,"PgGeometryObjectBuilder")}static[l]="PgGeometryObjectBuilder";constructor(e){super(e,"object geometry","PgGeometryObject")}build(e){return new Wr(e,this.config)}},Wr=class extends y{static{n(this,"PgGeometryObject")}static[l]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){let t=ci(e);return{x:t[0],y:t[1]}}mapToDriverValue(e){return`point(${e.x} ${e.y})`}};function mi(i,e){let{name:t,config:r}=q(i,e);return!r?.mode||r.mode==="tuple"?new Mr(t):new Jr(t)}n(mi,"geometry");var Hr=class extends S{static{n(this,"PgRealBuilder")}static[l]="PgRealBuilder";constructor(e,t){super(e,"number float","PgReal"),this.config.length=t}build(e){return new Gr(e,this.config)}},Gr=class extends y{static{n(this,"PgReal")}static[l]="PgReal";constructor(e,t){super(e,t)}getSQLType(){return"real"}mapFromDriverValue=n(e=>typeof e=="string"?Number.parseFloat(e):e,"mapFromDriverValue")};function di(i){return new Hr(i??"")}n(di,"real");var $s=class extends S{static{n(this,"PgSerialBuilder")}static[l]="PgSerialBuilder";constructor(e){super(e,"number int32","PgSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new vs(e,this.config)}},vs=class extends y{static{n(this,"PgSerial")}static[l]="PgSerial";getSQLType(){return"serial"}};function fi(i){return new $s(i??"")}n(fi,"serial");var qs=class extends Se{static{n(this,"PgSmallIntBuilder")}static[l]="PgSmallIntBuilder";constructor(e){super(e,"number int16","PgSmallInt")}build(e){return new _s(e,this.config)}},_s=class extends y{static{n(this,"PgSmallInt")}static[l]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=n(e=>typeof e=="string"?Number(e):e,"mapFromDriverValue")};function hi(i){return new qs(i??"")}n(hi,"smallint");var As=class extends S{static{n(this,"PgSmallSerialBuilder")}static[l]="PgSmallSerialBuilder";constructor(e){super(e,"number int16","PgSmallSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Os(e,this.config)}},Os=class extends y{static{n(this,"PgSmallSerial")}static[l]="PgSmallSerial";getSQLType(){return"smallserial"}};function gi(i){return new As(i??"")}n(gi,"smallserial");var Yr=class extends S{static{n(this,"PgTextBuilder")}static[l]="PgTextBuilder";constructor(e,t){super(e,t.enum?.length?"string enum":"string","PgText"),this.config.enumValues=t.enum}build(e){return new Zr(e,this.config,this.config.enumValues)}},Zr=class extends y{static{n(this,"PgText")}static[l]="PgText";enumValues;constructor(e,t,r){super(e,t),this.enumValues=r}getSQLType(){return"text"}};function pi(i,e={}){let{name:t,config:r}=q(i,e);return new Yr(t,r)}n(pi,"text");var Qs=class extends de{static{n(this,"PgTimeBuilder")}constructor(e,t,r){super(e,"string time","PgTime"),this.withTimezone=t,this.precision=r,this.config.withTimezone=t,this.config.precision=r}static[l]="PgTimeBuilder";build(e){return new yi(e,this.config)}},yi=class extends y{static{n(this,"PgTime")}static[l]="PgTime";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}};function bi(i,e={}){let{name:t,config:r}=q(i,e);return new Qs(t,r.withTimezone??!1,r.precision)}n(bi,"time");var Vs=class extends de{static{n(this,"PgTimestampBuilder")}static[l]="PgTimestampBuilder";constructor(e,t,r){super(e,"object date","PgTimestamp"),this.config.withTimezone=t,this.config.precision=r}build(e){return new Pi(e,this.config)}},Pi=class extends y{static{n(this,"PgTimestamp")}static[l]="PgTimestamp";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=n(e=>new Date(this.withTimezone?e:e+"+0000"),"mapFromDriverValue");mapToDriverValue=n(e=>e.toISOString(),"mapToDriverValue")},js=class extends de{static{n(this,"PgTimestampStringBuilder")}static[l]="PgTimestampStringBuilder";constructor(e,t,r){super(e,"string timestamp","PgTimestampString"),this.config.withTimezone=t,this.config.precision=r}build(e){return new wi(e,this.config)}},wi=class extends y{static{n(this,"PgTimestampString")}static[l]="PgTimestampString";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}};function Si(i,e={}){let{name:t,config:r}=q(i,e);return r?.mode==="string"?new js(t,r.withTimezone??!1,r.precision):new Vs(t,r?.withTimezone??!1,r?.precision)}n(Si,"timestamp");var Ds=class extends S{static{n(this,"PgUUIDBuilder")}static[l]="PgUUIDBuilder";constructor(e){super(e,"string uuid","PgUUID")}defaultRandom(){return this.default(o`gen_random_uuid()`)}build(e){return new Ci(e,this.config)}},Ci=class extends y{static{n(this,"PgUUID")}static[l]="PgUUID";getSQLType(){return"uuid"}};function xi(i){return new Ds(i??"")}n(xi,"uuid");var Is=class extends S{static{n(this,"PgVarcharBuilder")}static[l]="PgVarcharBuilder";constructor(e,t){super(e,t.enum?.length?"string enum":"string","PgVarchar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new zs(e,this.config)}},zs=class extends y{static{n(this,"PgVarchar")}static[l]="PgVarchar";enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}};function Xr(i,e={}){let{name:t,config:r}=q(i,e);return new Is(t,r)}n(Xr,"varchar");var en=class extends S{static{n(this,"PgBinaryVectorBuilder")}static[l]="PgBinaryVectorBuilder";constructor(e,t){super(e,"string binary","PgBinaryVector"),this.config.length=t.dimensions,this.config.isLengthExact=!0}build(e){return new tn(e,this.config)}},tn=class extends y{static{n(this,"PgBinaryVector")}static[l]="PgBinaryVector";getSQLType(){return`bit(${this.length})`}};function Bi(i,e){let{name:t,config:r}=q(i,e);return new en(t,r)}n(Bi,"bit");var rn=class extends S{static{n(this,"PgHalfVectorBuilder")}static[l]="PgHalfVectorBuilder";constructor(e,t){super(e,"array halfvector","PgHalfVector"),this.config.length=t.dimensions,this.config.isLengthExact=!0}build(e){return new nn(e,this.config)}},nn=class extends y{static{n(this,"PgHalfVector")}static[l]="PgHalfVector";getSQLType(){return`halfvec(${this.length})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(t=>Number.parseFloat(t))}};function Ti(i,e){let{name:t,config:r}=q(i,e);return new rn(t,r)}n(Ti,"halfvec");var Ls=class extends S{static{n(this,"PgSparseVectorBuilder")}static[l]="PgSparseVectorBuilder";constructor(e,t){super(e,"string sparsevec","PgSparseVector"),this.config.dimensions=t.dimensions}build(e){return new Fs(e,this.config)}},Fs=class extends y{static{n(this,"PgSparseVector")}static[l]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}};function Ni(i,e){let{name:t,config:r}=q(i,e);return new Ls(t,r)}n(Ni,"sparsevec");var Ks=class extends S{static{n(this,"PgVectorBuilder")}static[l]="PgVectorBuilder";constructor(e,t){super(e,"array vector","PgVector"),this.config.length=t.dimensions,this.config.isLengthExact=!0}build(e){return new Es(e,this.config)}},Es=class extends y{static{n(this,"PgVector")}static[l]="PgVector";getSQLType(){return`vector(${this.length})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(t=>Number.parseFloat(t))}};function sn(i,e){let{name:t,config:r}=q(i,e);return new Ks(t,r)}n(sn,"vector");var O=class on{static{n(this,"SelectionProxyHandler")}static[l]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,t){if(t==="_")return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(t===_)return{...e[_],selectedFields:new Proxy(e[_].selectedFields,this)};if(typeof t=="symbol")return e[t];let s=(f(e,z)?e._.selectedFields:f(e,W)?e[_].selectedFields:e)[t];if(f(s,P.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!s.isSelectionField)return s.sql;let a=s.clone();return a.isSelectionField=!0,a}if(f(s,P)){if(this.config.sqlBehavior==="sql")return s;throw new Error(`You tried to reference "${t}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return f(s,A)?this.config.alias?new Proxy(s,new De(new Proxy(s.table,new Te(this.config.alias,this.config.replaceOriginalName??!1)))):s:typeof s!="object"||s===null?s:new Proxy(s,new on(this.config))}};function an(){return{bigint:Jt,bigserial:Wt,boolean:Ht,char:Gt,cidr:Yt,customType:Zt,date:Xt,doublePrecision:ei,inet:ti,integer:ii,interval:ri,json:ni,jsonb:si,line:oi,macaddr:ai,macaddr8:li,numeric:Nt,point:ui,geometry:mi,real:di,serial:fi,smallint:hi,smallserial:gi,text:pi,time:bi,timestamp:Si,uuid:xi,varchar:Xr,bit:Bi,halfvec:Ti,sparsevec:Ni,vector:sn}}n(an,"getPgColumnBuilders");var $i=Symbol.for("drizzle:PgInlineForeignKeys"),ln=Symbol.for("drizzle:EnableRLS"),D=class extends b{static{n(this,"PgTable")}static[l]="PgTable";static Symbol=Object.assign({},b.Symbol,{InlineForeignKeys:$i,EnableRLS:ln});[$i]=[];[ln]=!1;[b.Symbol.ExtraConfigBuilder]=void 0;[b.Symbol.ExtraConfigColumns]={}};function $t(i,e,t,r,s=i){let a=new D(i,r,s),c=typeof e=="function"?e(an()):e,m=Object.fromEntries(Object.entries(c).map(([d,p])=>{let w=p;w.setName(d);let u=w.build(a);return a[$i].push(...w.buildForeignKeys(u,a)),[d,u]})),g=Object.fromEntries(Object.entries(c).map(([d,p])=>{let w=p;w.setName(d);let u=w.buildExtraConfigColumn(a);return[d,u]})),h=Object.assign(a,m);return h[b.Symbol.Columns]=m,h[b.Symbol.ExtraConfigColumns]=g,t&&(h[D.Symbol.ExtraConfigBuilder]=t),Object.assign(h,{enableRLS:n(()=>(h[D.Symbol.EnableRLS]=!0,h),"enableRLS")})}n($t,"pgTableWithSchema");var I=n((i,e,t)=>$t(i,e,t,void 0),"pgTable");function Rs(i){return(e,t,r)=>$t(i(e),t,r,void 0,e)}n(Rs,"pgTableCreator");var vi=class{static{n(this,"IndexBuilderOn")}constructor(e,t){this.unique=e,this.name=t}static[l]="PgIndexBuilderOn";on(...e){return new _e(e.map(t=>{if(f(t,P))return t;t=t;let r=new Oe(t.name,!!t.keyAsName,t.columnType,t.indexConfig);return t.indexConfig=JSON.parse(JSON.stringify(t.defaultConfig)),r}),this.unique,!1,this.name)}onOnly(...e){return new _e(e.map(t=>{if(f(t,P))return t;t=t;let r=new Oe(t.name,!!t.keyAsName,t.columnType,t.indexConfig);return t.indexConfig=t.defaultConfig,r}),this.unique,!0,this.name)}using(e,...t){return new _e(t.map(r=>{if(f(r,P))return r;r=r;let s=new Oe(r.name,!!r.keyAsName,r.columnType,r.indexConfig);return r.indexConfig=JSON.parse(JSON.stringify(r.defaultConfig)),s}),this.unique,!0,this.name,e)}},_e=class{static{n(this,"IndexBuilder")}static[l]="PgIndexBuilder";config;constructor(e,t,r,s,a="btree"){this.config={name:s,columns:e,unique:t,only:r,method:a}}concurrently(){return this.config.concurrently=!0,this}with(e){return this.config.with=e,this}where(e){return this.config.where=e,this}build(e){return new un(this.config,e)}},un=class{static{n(this,"Index")}static[l]="PgIndex";config;constructor(e,t){this.config={...e,table:t}}};function Ce(i){return new vi(!1,i)}n(Ce,"index");function ks(i){return new vi(!0,i)}n(ks,"uniqueIndex");var qi=class{static{n(this,"PgPolicy")}constructor(e,t){this.name=e,t&&(this.as=t.as,this.for=t.for,this.to=t.to,this.using=t.using,this.withCheck=t.withCheck)}static[l]="PgPolicy";as;for;to;using;withCheck;_linkedTable;link(e){return this._linkedTable=e,this}};function Ms(i,e){return new qi(i,e)}n(Ms,"pgPolicy");function Us(...i){return i[0].columns?new vt(i[0].columns,i[0].name):new vt(i)}n(Us,"primaryKey");var vt=class{static{n(this,"PrimaryKeyBuilder")}static[l]="PgPrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new cn(e,this.columns,this.name)}},cn=class{static{n(this,"PrimaryKey")}constructor(e,t,r){this.table=e,this.columns=t,this.name=r}static[l]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[D.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}};var Re=Symbol.for("drizzle:PgViewConfig");var mn=class{static{n(this,"Relation")}constructor(e,t,r){this.sourceTable=e,this.referencedTable=t,this.relationName=r,this.referencedTableName=t[b.Symbol.Name]}static[l]="Relation";referencedTableName;fieldName},gg=class{static{n(this,"Relations")}constructor(e,t){this.table=e,this.config=t}static[l]="Relations"},ke=class dn extends mn{static{n(this,"One")}constructor(e,t,r,s){super(e,t,r?.relationName),this.config=r,this.isNullable=s}static[l]="One";withFieldName(e){let t=new dn(this.sourceTable,this.referencedTable,this.config,this.isNullable);return t.fieldName=e,t}},fn=class hn extends mn{static{n(this,"Many")}constructor(e,t,r){super(e,t,r?.relationName),this.config=r}static[l]="Many";withFieldName(e){let t=new hn(this.sourceTable,this.referencedTable,this.config);return t.fieldName=e,t}};function gn(){return{and:J,between:ct,eq:le,exists:ze,gt:it,gte:rt,ilike:ht,inArray:ot,isNull:lt,isNotNull:ut,like:dt,lt:nt,lte:st,ne:tt,not:$e,notBetween:mt,notExists:Le,notLike:ft,notIlike:gt,notInArray:at,or:Ne,sql:o}}n(gn,"getOperators");function pn(){return{sql:o,asc:Pe,desc:Fe}}n(pn,"getOrderByOperators");function yn(i,e,t){if(f(t,ke)&&t.config)return{fields:t.config.fields,references:t.config.references};let r=e[Qe(t.referencedTable)];if(!r)throw new Error(`Table "${t.referencedTable[b.Symbol.Name]}" not found in schema`);let s=i[r];if(!s)throw new Error(`Table "${r}" not found in schema`);let a=t.sourceTable,c=e[Qe(a)];if(!c)throw new Error(`Table "${a[b.Symbol.Name]}" not found in schema`);let m=[];for(let g of Object.values(s.relations))(t.relationName&&t!==g&&g.relationName===t.relationName||!t.relationName&&g.referencedTable===t.sourceTable)&&m.push(g);if(m.length>1)throw t.relationName?new Error(`There are multiple relations with name "${t.relationName}" in table "${r}"`):new Error(`There are multiple relations between "${r}" and "${t.sourceTable[b.Symbol.Name]}". Please specify relation name`);if(m[0]&&f(m[0],ke)&&m[0].config)return{fields:m[0].config.references,references:m[0].config.fields};throw new Error(`There is not enough information to infer relation "${c}.${t.fieldName}"`)}n(yn,"normalizeRelation");function qt(i,e,t,r,s=a=>a){let a={};for(let[c,m]of r.entries())if(m.isJson){let g=e.relations[m.tsKey],h=t[c],d=typeof h=="string"?JSON.parse(h):h;a[m.tsKey]=f(g,ke)?d&&qt(i,i[m.relationTableTsKey],d,m.selection,s):d.map(p=>qt(i,i[m.relationTableTsKey],p,m.selection,s))}else{let g=s(t[c]),h=m.field,d;f(h,A)?d=h:f(h,P)?d=h.decoder:d=h.sql.decoder,a[m.tsKey]=g===null?null:d.mapFromDriverValue(g)}return a}n(qt,"mapRelationalRow");function Js(i){return(i.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(t=>t.toLowerCase()).join("_")}n(Js,"toSnakeCase");function Ws(i){return(i.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((t,r,s)=>{let a=s===0?r.toLowerCase():`${r[0].toUpperCase()}${r.slice(1)}`;return t+a},"")}n(Ws,"toCamelCase");function Hs(i){return i}n(Hs,"noopCase");var Pn=class{static{n(this,"CasingCache")}static[l]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert=e==="snake_case"?Js:e==="camelCase"?Ws:Hs}getColumnCasing(e){if(!e.keyAsName)return e.name;let t=e.table[b.Symbol.Schema]??"public",r=e.table[b.Symbol.OriginalName],s=`${t}.${r}.${e.name}`;return this.cache[s]||this.cacheTable(e.table),this.cache[s]}cacheTable(e){let t=e[b.Symbol.Schema]??"public",r=e[b.Symbol.OriginalName],s=`${t}.${r}`;if(!this.cachedTables[s]){for(let a of Object.values(e[b.Symbol.Columns])){if(!f(a,A))continue;let c=`${s}.${a.name}`;this.cache[c]=this.convert(a.name)}this.cachedTables[s]=!0}}clearCache(){this.cache={},this.cachedTables={}}};var xe=class extends W{static{n(this,"PgViewBase")}static[l]="PgViewBase"};var Me=class{static{n(this,"PgDialect")}static[l]="PgDialect";casing;constructor(e){this.casing=new Pn(e?.casing)}async migrate(e,t,r){let s=typeof r=="string"?"__drizzle_migrations":r.migrationsTable??"__drizzle_migrations",a=typeof r=="string"?"drizzle":r.migrationsSchema??"drizzle",c=o`
4
4
  CREATE TABLE IF NOT EXISTS ${o.identifier(a)}.${o.identifier(s)} (
5
5
  id SERIAL PRIMARY KEY,
6
6
  hash text NOT NULL,
7
7
  created_at bigint
8
8
  )
9
- `;await t.execute(o`CREATE SCHEMA IF NOT EXISTS ${o.identifier(a)}`),await t.execute(c);let g=(await t.all(o`select id, hash, created_at from ${o.identifier(a)}.${o.identifier(s)} order by created_at desc limit 1`))[0];await t.transaction(async h=>{for await(let d of e)if(!g||Number(g.created_at)<d.folderMillis){for(let p of d.sql)await h.execute(o.raw(p));await h.execute(o`insert into ${o.identifier(a)}.${o.identifier(s)} ("hash", "created_at") values(${d.hash}, ${d.folderMillis})`)}})}escapeName(e){return`"${e}"`}escapeParam(e){return`$${e+1}`}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;let t=[o`with `];for(let[r,s]of e.entries())t.push(o`${o.identifier(s._.alias)} as (${s._.sql})`),r<e.length-1&&t.push(o`, `);return t.push(o` `),o.join(t)}buildDeleteQuery({table:e,where:t,returning:r,withList:s}){let a=this.buildWithCTE(s),c=r?o` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0,m=t?o` where ${t}`:void 0;return o`${a}delete from ${e}${m}${c}`}buildUpdateSet(e,t){let r=e[b.Symbol.Columns],s=Object.keys(r).filter(c=>t[c]!==void 0||r[c]?.onUpdateFn!==void 0),a=s.length;return o.join(s.flatMap((c,m)=>{let g=r[c],h=t[c]??o.param(g.onUpdateFn(),g),d=o`${o.identifier(this.casing.getColumnCasing(g))} = ${h}`;return m<a-1?[d,o.raw(", ")]:[d]}))}buildUpdateQuery({table:e,set:t,where:r,returning:s,withList:a,from:c,joins:m}){let g=this.buildWithCTE(a),h=e[j.Symbol.Name],d=e[j.Symbol.Schema],p=e[j.Symbol.OriginalName],P=h===p?void 0:h,u=o`${d?o`${o.identifier(d)}.`:void 0}${o.identifier(p)}${P&&o` ${o.identifier(P)}`}`,x=this.buildUpdateSet(e,t),C=c&&o.join([o.raw(" from "),this.buildFromTable(c)]),Q=this.buildJoins(m),T=s?o` returning ${this.buildSelection(s,{isSingleTable:!c})}`:void 0,N=r?o` where ${r}`:void 0;return o`${g}update ${u} set ${x}${C}${Q}${N}${T}`}buildSelection(e,{isSingleTable:t=!1}={}){let r=e.length,s=e.flatMap(({field:a},c)=>{let m=[];if(f(a,w.Aliased)&&a.isSelectionField)m.push(o.identifier(a.fieldAlias));else if(f(a,w.Aliased)||f(a,w)){let g=f(a,w.Aliased)?a.sql:a;t?m.push(new w(g.queryChunks.map(h=>f(h,y)?o.identifier(this.casing.getColumnCasing(h)):h))):m.push(g),f(a,w.Aliased)&&m.push(o` as ${o.identifier(a.fieldAlias)}`)}else f(a,v)&&(t?m.push(o.identifier(this.casing.getColumnCasing(a))):m.push(a));return c<r-1&&m.push(o`, `),m});return o.join(s)}buildJoins(e){if(!e||e.length===0)return;let t=[];for(let[r,s]of e.entries()){r===0&&t.push(o` `);let a=s.table,c=s.lateral?o` lateral`:void 0,m=s.on?o` on ${s.on}`:void 0;if(f(a,j)){let g=a[j.Symbol.Name],h=a[j.Symbol.Schema],d=a[j.Symbol.OriginalName],p=g===d?void 0:s.alias;t.push(o`${o.raw(s.joinType)} join${c} ${h?o`${o.identifier(h)}.`:void 0}${o.identifier(d)}${p&&o` ${o.identifier(p)}`}${m}`)}else if(f(a,W)){let g=a[A].name,h=a[A].schema,d=a[A].originalName,p=g===d?void 0:s.alias;t.push(o`${o.raw(s.joinType)} join${c} ${h?o`${o.identifier(h)}.`:void 0}${o.identifier(d)}${p&&o` ${o.identifier(p)}`}${m}`)}else t.push(o`${o.raw(s.joinType)} join${c} ${a}${m}`);r<e.length-1&&t.push(o` `)}return o.join(t)}buildFromTable(e){if(f(e,b)&&e[b.Symbol.IsAlias]){let t=o`${o.identifier(e[b.Symbol.OriginalName])}`;return e[b.Symbol.Schema]&&(t=o`${o.identifier(e[b.Symbol.Schema])}.${t}`),o`${t} ${o.identifier(e[b.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:r,where:s,having:a,table:c,joins:m,orderBy:g,groupBy:h,limit:d,offset:p,lockingClause:P,distinct:u,setOperators:x}){let C=r??re(t);for(let k of C)if(f(k.field,v)&&G(k.field.table)!==(f(c,I)?c._.alias:f(c,xe)?c[A].name:f(c,w)?void 0:G(c))&&!(Z=>m?.some(({alias:pe})=>pe===(Z[b.Symbol.IsAlias]?G(Z):Z[b.Symbol.BaseName])))(k.field.table)){let Z=G(k.field.table);throw new Error(`Your "${k.path.join("->")}" field references a column "${Z}"."${k.field.name}", but the table "${Z}" is not part of the query! Did you forget to join it?`)}let Q=!m||m.length===0,T=this.buildWithCTE(e),N;u&&(N=u===!0?o` distinct`:o` distinct on (${o.join(u.on,o`, `)})`);let D=this.buildSelection(C,{isSingleTable:Q}),B=this.buildFromTable(c),V=this.buildJoins(m),K=s?o` where ${s}`:void 0,$=a?o` having ${a}`:void 0,q;g&&g.length>0&&(q=o` order by ${o.join(g,o`, `)}`);let E;h&&h.length>0&&(E=o` group by ${o.join(h,o`, `)}`);let ge=typeof d=="object"||typeof d=="number"&&d>=0?o` limit ${d}`:void 0,se=p?o` offset ${p}`:void 0,te=o.empty();if(P){let k=o` for ${o.raw(P.strength)}`;P.config.of&&k.append(o` of ${o.join(Array.isArray(P.config.of)?P.config.of:[P.config.of],o`, `)}`),P.config.noWait?k.append(o` nowait`):P.config.skipLocked&&k.append(o` skip locked`),te.append(k)}let M=o`${T}select${N} ${D} from ${B}${V}${K}${E}${$}${q}${ge}${se}${te}`;return x.length>0?this.buildSetOperations(M,x):M}buildSetOperations(e,t){let[r,...s]=t;if(!r)throw new Error("Cannot pass undefined values to any set operator");return s.length===0?this.buildSetOperationQuery({leftSelect:e,setOperator:r}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:r}),s)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:r,rightSelect:s,limit:a,orderBy:c,offset:m}}){let g=o`(${e.getSQL()}) `,h=o`(${s.getSQL()})`,d;if(c&&c.length>0){let x=[];for(let C of c)if(f(C,y))x.push(o.identifier(C.name));else if(f(C,w)){for(let Q=0;Q<C.queryChunks.length;Q++){let T=C.queryChunks[Q];f(T,y)&&(C.queryChunks[Q]=o.identifier(T.name))}x.push(o`${C}`)}else x.push(o`${C}`);d=o` order by ${o.join(x,o`, `)} `}let p=typeof a=="object"||typeof a=="number"&&a>=0?o` limit ${a}`:void 0,P=o.raw(`${t} ${r?"all ":""}`),u=m?o` offset ${m}`:void 0;return o`${g}${P}${h}${d}${p}${u}`}buildInsertQuery({table:e,values:t,onConflict:r,returning:s,withList:a,select:c,overridingSystemValue_:m}){let g=[],h=e[b.Symbol.Columns],d=Object.entries(h).filter(([T,N])=>!N.shouldDisableInsert()),p=d.map(([,T])=>o.identifier(this.casing.getColumnCasing(T)));if(c){let T=t;f(T,w)?g.push(T):g.push(T.getSQL())}else{let T=t;g.push(o.raw("values "));for(let[N,D]of T.entries()){let B=[];for(let[V,K]of d){let $=D[V];if($===void 0||f($,ee)&&$.value===void 0)if(K.defaultFn!==void 0){let q=K.defaultFn(),E=f(q,w)?q:o.param(q,K);B.push(E)}else if(!K.default&&K.onUpdateFn!==void 0){let q=K.onUpdateFn(),E=f(q,w)?q:o.param(q,K);B.push(E)}else B.push(o`default`);else B.push($)}g.push(B),N<T.length-1&&g.push(o`, `)}}let P=this.buildWithCTE(a),u=o.join(g),x=s?o` returning ${this.buildSelection(s,{isSingleTable:!0})}`:void 0,C=r?o` on conflict ${r}`:void 0,Q=m===!0?o`overriding system value `:void 0;return o`${P}insert into ${e} ${p} ${Q}${u}${C}${x}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:r}){let s=t?o` concurrently`:void 0,a=r?o` with no data`:void 0;return o`refresh materialized view${s} ${e}${a}`}prepareTyping(e){return f(e,Nt)||f(e,Tt)?"json":f(e,$t)?"decimal":f(e,bi)?"time":f(e,wi)||f(e,Si)?"timestamp":f(e,xt)||f(e,Bt)?"date":f(e,xi)?"uuid":"none"}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:t})}_buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:r,table:s,tableConfig:a,queryConfig:c,tableAlias:m,nestedQueryRelation:g,joinOn:h}){let d=[],p,P,u=[],x,C=[];if(c===!0)d=Object.entries(a.columns).map(([N,D])=>({dbKey:D.name,tsKey:N,field:le(D,m),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let T=Object.fromEntries(Object.entries(a.columns).map(([$,q])=>[$,le(q,m)]));if(c.where){let $=typeof c.where=="function"?c.where(T,Pn()):c.where;x=$&&Ie($,m)}let N=[],D=[];if(c.columns){let $=!1;for(let[q,E]of Object.entries(c.columns))E!==void 0&&q in a.columns&&(!$&&E===!0&&($=!0),D.push(q));D.length>0&&(D=$?D.filter(q=>c.columns?.[q]===!0):Object.keys(a.columns).filter(q=>!D.includes(q)))}else D=Object.keys(a.columns);for(let $ of D){let q=a.columns[$];N.push({tsKey:$,value:q})}let B=[];c.with&&(B=Object.entries(c.with).filter($=>!!$[1]).map(([$,q])=>({tsKey:$,queryConfig:q,relation:a.relations[$]})));let V;if(c.extras){V=typeof c.extras=="function"?c.extras(T,{sql:o}):c.extras;for(let[$,q]of Object.entries(V))N.push({tsKey:$,value:Ut(q,m)})}for(let{tsKey:$,value:q}of N)d.push({dbKey:f(q,w.Aliased)?q.fieldAlias:a.columns[$].name,tsKey:$,field:f(q,v)?le(q,m):q,relationTableTsKey:void 0,isJson:!1,selection:[]});let K=typeof c.orderBy=="function"?c.orderBy(T,wn()):c.orderBy??[];Array.isArray(K)||(K=[K]),u=K.map($=>f($,v)?le($,m):Ie($,m)),p=c.limit,P=c.offset;for(let{tsKey:$,queryConfig:q,relation:E}of B){let ge=Sn(t,r,E),se=De(E.referencedTable),te=r[se],M=`${m}_${$}`,k=J(...ge.fields.map((jt,Lt)=>ue(le(ge.references[Lt],M),le(jt,m)))),Z=this._buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:r,table:e[te],tableConfig:t[te],queryConfig:f(E,Me)?q===!0?{limit:1}:{...q,limit:1}:q,tableAlias:M,joinOn:k,nestedQueryRelation:E}),pe=o`${o.identifier(M)}.${o.identifier("data")}`.as($);C.push({on:o`true`,table:new I(Z.sql,{},M),alias:M,joinType:"left",lateral:!0}),d.push({dbKey:$,tsKey:$,field:pe,relationTableTsKey:te,isJson:!0,selection:Z.selection})}}if(d.length===0)throw new be({message:`No fields selected for table "${a.tsName}" ("${m}")`});let Q;if(x=J(h,x),g){let T=o`json_build_array(${o.join(d.map(({field:B,tsKey:V,isJson:K})=>K?o`${o.identifier(`${m}_${V}`)}.${o.identifier("data")}`:f(B,w.Aliased)?B.sql:B),o`, `)})`;f(g,yn)&&(T=o`coalesce(json_agg(${T}${u.length>0?o` order by ${o.join(u,o`, `)}`:void 0}), '[]'::json)`);let N=[{dbKey:"data",tsKey:"data",field:T.as("data"),isJson:!0,relationTableTsKey:a.tsName,selection:d}];p!==void 0||P!==void 0||u.length>0?(Q=this.buildSelectQuery({table:oe(s,m),fields:{},fieldsFlat:[{path:[],field:o.raw("*")}],where:x,limit:p,offset:P,orderBy:u,setOperators:[]}),x=void 0,p=void 0,P=void 0,u=[]):Q=oe(s,m),Q=this.buildSelectQuery({table:f(Q,j)?Q:new I(Q,{},m),fields:{},fieldsFlat:N.map(({field:B})=>({path:[],field:f(B,v)?le(B,m):B})),joins:C,where:x,limit:p,offset:P,orderBy:u,setOperators:[]})}else Q=this.buildSelectQuery({table:oe(s,m),fields:{},fieldsFlat:d.map(({field:T})=>({path:[],field:f(T,v)?le(T,m):T})),joins:C,where:x,limit:p,offset:P,orderBy:u,setOperators:[]});return{tableTsKey:a.tsName,sql:Q,selection:d}}nestedSelectionerror(){throw new be({message:"Views with nested selections are not supported by the relational query builder"})}buildRqbColumn(e,t,r){if(f(t,v)){let s=o`${e}.${o.identifier(this.casing.getColumnCasing(t))}`,a=t.columnType,c=t,m=0;for(;f(c,Xe);)c=c.baseColumn,a=c.columnType,++m;switch(a){case"PgNumeric":case"PgNumericNumber":case"PgNumericBigInt":case"PgBigInt64":case"PgBigSerial64":case"PgTimestampString":case"PgGeometry":case"PgGeometryObject":case"PgBytea":{let g="[]".repeat(m);return o`${s}::text${o.raw(g).if(g)} as ${o.identifier(r)}`}case"PgCustomColumn":return o`${c.jsonSelectIdentifier(s,o,m>0?m:void 0)} as ${o.identifier(r)}`;default:return o`${s} as ${o.identifier(r)}`}}return o`${e}.${f(t,w.Aliased)?o.identifier(t.fieldAlias):je(t)?o.identifier(r):this.nestedSelectionerror()} as ${o.identifier(r)}`}unwrapAllColumns=n((e,t)=>o.join(Object.entries(e[H]).map(([r,s])=>(t.push({key:r,field:s}),this.buildRqbColumn(e,s,r))),o`, `),"unwrapAllColumns");buildColumns=n((e,t,r)=>r?.columns?(()=>{let s=Object.entries(r.columns),a=e[H],c=[],m;for(let[g,h]of s)if(h!==void 0&&(m=m||h,h)){let d=a[g];c.push(this.buildRqbColumn(e,d,g)),t.push({key:g,field:d})}if(m===!1)for(let[g,h]of Object.entries(a))r.columns[g]!==!1&&(c.push(this.buildRqbColumn(e,h,g)),t.push({key:g,field:h}));return c.length?o.join(c,o`, `):void 0})():this.unwrapAllColumns(e,t),"buildColumns");buildRelationalQuery({schema:e,table:t,tableConfig:r,queryConfig:s,relationWhere:a,mode:c,errorPath:m,depth:g,throughJoin:h}){let d=[],p=c==="first",P=s===!0?void 0:s,u=m??"",x=g??0;x||(t=oe(t,`d${x}`));let C=p?1:P?.limit,Q=P?.offset,T=P?.where&&a?J(ce(t,P.where,r.relations,e,this.casing),a):P?.where?ce(t,P.where,r.relations,e,this.casing):a,N=P?.orderBy?lr(t,P.orderBy):void 0,D=this.buildColumns(t,d,P),B=P?.extras?ur(t,P.extras):void 0;B&&d.push(...B.selection);let V=D?[D]:[],K=P?(()=>{let{with:E}=P;if(!E)return;let ge=Object.entries(E).filter(([se,te])=>te);if(ge.length)return o.join(ge.map(([se,te])=>{let M=r.relations[se],k=f(M,wt),Z=oe(M.targetTable,`d${x+1}`),pe=M.throughTable?oe(M.throughTable,`tr${x}`):void 0,{filter:jt,joinCondition:Lt}=Jt(this.casing,M,t,Z,pe);V.push(o`${o.identifier(se)}.${o.identifier("r")} as ${o.identifier(se)}`);let Mn=pe?o` inner join ${we(pe)} on ${Lt}`:void 0,ji=this.buildRelationalQuery({table:Z,mode:k?"first":"many",schema:e,queryConfig:te,tableConfig:e[M.targetTableName],relationWhere:jt,errorPath:`${u.length?`${u}.`:""}${se}`,depth:x+1,throughJoin:Mn});return d.push({field:Z,key:se,selection:ji.selection,isArray:!k,isOptional:(M.optional??!1)||te!==!0&&!!te.where}),o`left join lateral(select ${k?o`row_to_json(${o.identifier("t")}.*) ${o.identifier("r")}`:o`coalesce(json_agg(row_to_json(${o.identifier("t")}.*)), '[]') as ${o.identifier("r")}`} from (${ji.sql}) as ${o.identifier("t")}) as ${o.identifier(se)} on true`}),o` `)})():void 0;if(B?.sql&&V.push(B.sql),!V.length)throw new be({message:`No fields selected for table "${r.name}"${u?` ("${u}")`:""}`});let $=o.join(V.filter(E=>E!==void 0),o`, `);return{sql:o`select ${$} from ${we(t)}${h}${o` ${K}`.if(K)}${o` where ${T}`.if(T)}${o` order by ${N}`.if(N)}${o` limit ${C}`.if(C!==void 0)}${o` offset ${Q}`.if(Q!==void 0)}`,selection:d}}};var Bn=class{static{n(this,"TypedQueryBuilder")}static[l]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}};var Y=class{static{n(this,"PgSelectBuilder")}static[l]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}authToken;setToken(e){return this.authToken=e,this}from(e){let t=!!this.fields,r=e,s;return this.fields?s=this.fields:f(r,I)?s=Object.fromEntries(Object.keys(r._.selectedFields).map(a=>[a,r[a]])):f(r,xe)?s=r[A].selectedFields:f(r,w)?s={}:s=Re(r),new Tn({table:r,fields:s,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}},Ys=class extends Bn{static{n(this,"PgSelectQueryBuilderBase")}static[l]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:t,isPartialSelect:r,session:s,dialect:a,withList:c,distinct:m}){super(),this.config={withList:c,table:e,fields:{...t},distinct:m,setOperators:[]},this.isPartialSelect=r,this.session=s,this.dialect=a,this._={selectedFields:t,config:this.config},this.tableName=me(e),this.joinsNotNullableMap=typeof this.tableName=="string"?{[this.tableName]:!0}:{};for(let g of ne(e))this.usedTables.add(g)}getUsedTables(){return[...this.usedTables]}createJoin(e,t){return(r,s)=>{let a=this.tableName,c=me(r);for(let m of ne(r))this.usedTables.add(m);if(typeof c=="string"&&this.config.joins?.some(m=>m.alias===c))throw new Error(`Alias "${c}" is already used in this query`);if(!this.isPartialSelect&&(Object.keys(this.joinsNotNullableMap).length===1&&typeof a=="string"&&(this.config.fields={[a]:this.config.fields}),typeof c=="string"&&!f(r,w))){let m=f(r,I)?r._.selectedFields:f(r,W)?r[A].selectedFields:r[b.Symbol.Columns];this.config.fields[c]=m}if(typeof s=="function"&&(s=s(new Proxy(this.config.fields,new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:s,table:r,joinType:e,alias:c,lateral:t}),typeof c=="string")switch(e){case"left":{this.joinsNotNullableMap[c]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([m])=>[m,!1])),this.joinsNotNullableMap[c]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[c]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([m])=>[m,!1])),this.joinsNotNullableMap[c]=!1;break}}return this}}leftJoin=this.createJoin("left",!1);leftJoinLateral=this.createJoin("left",!0);rightJoin=this.createJoin("right",!1);innerJoin=this.createJoin("inner",!1);innerJoinLateral=this.createJoin("inner",!0);fullJoin=this.createJoin("full",!1);crossJoin=this.createJoin("cross",!1);crossJoinLateral=this.createJoin("cross",!0);createSetOperator(e,t){return r=>{let s=typeof r=="function"?r(Zs()):r;if(!Ee(this.getSelectedFields(),s.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:s}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return typeof e=="function"&&(e=e(new Proxy(this.config.fields,new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return typeof e=="function"&&(e=e(new Proxy(this.config.fields,new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if(typeof e[0]=="function"){let t=e[0](new Proxy(this.config.fields,new O({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if(typeof e[0]=="function"){let t=e[0](new Proxy(this.config.fields,new O({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),r=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=r:this.config.orderBy=r}else{let t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){let t=[];if(t.push(...ne(this.config.table)),this.config.joins)for(let r of this.config.joins)t.push(...ne(r.table));return new Proxy(new I(this.getSQL(),this.config.fields,e,!1,[...new Set(t)]),new O({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new O({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}$withCache(e){return this.cacheConfig=e===void 0?{config:{},enable:!0,autoInvalidate:!0}:e===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...e},this}},Tn=class extends Ys{static{n(this,"PgSelectBase")}static[l]="PgSelect";_prepare(e){let{session:t,config:r,dialect:s,joinsNotNullableMap:a,authToken:c,cacheConfig:m,usedTables:g}=this;if(!t)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");let{fields:h}=r;return z.startActiveSpan("drizzle.prepareQuery",()=>{let d=re(h),p=t.prepareQuery(s.sqlToQuery(this.getSQL()),d,e,!0,void 0,{type:"select",tables:[...g]},m);return p.joinsNotNullableMap=a,p.setToken(c)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=n(e=>z.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute")};cr(Tn,[U]);function Oe(i,e){return(t,r,...s)=>{let a=[r,...s].map(c=>({type:i,isAll:e,rightSelect:c}));for(let c of a)if(!Ee(t.getSelectedFields(),c.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return t.addSetOperators(a)}}n(Oe,"createSetOperator");var Zs=n(()=>({union:Nn,unionAll:$n,intersect:vn,intersectAll:qn,except:An,exceptAll:_n}),"getPgSetOperators"),Nn=Oe("union",!1),$n=Oe("union",!0),vn=Oe("intersect",!1),qn=Oe("intersect",!0),An=Oe("except",!1),_n=Oe("except",!0);var he=class{static{n(this,"QueryBuilder")}static[l]="PgQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=f(e,Ue)?e:void 0,this.dialectConfig=f(e,Ue)?void 0:e}$with=n((e,t)=>{let r=this;return{as:n(a=>(typeof a=="function"&&(a=a(r)),new Proxy(new tt(a.getSQL(),t??("getSelectedFields"in a?a.getSelectedFields()??{}:{}),e,!0),new O({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))),"as")}},"$with");with(...e){let t=this;function r(c){return new Y({fields:c??void 0,session:void 0,dialect:t.getDialect(),withList:e})}n(r,"select");function s(c){return new Y({fields:c??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})}n(s,"selectDistinct");function a(c,m){return new Y({fields:m??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:c}})}return n(a,"selectDistinctOn"),{select:r,selectDistinct:s,selectDistinctOn:a}}select(e){return new Y({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new Y({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new Y({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||(this.dialect=new Ue(this.dialectConfig)),this.dialect}};var On=class{static{n(this,"DefaultViewBuilderCore")}constructor(e,t){this.name=e,this.schema=t}static[l]="PgDefaultViewBuilderCore";config={};with(e){return this.config.with=e,this}},Xs=class extends On{static{n(this,"ViewBuilder")}static[l]="PgViewBuilder";as(e){typeof e=="function"&&(e=e(new he));let t=new O({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),r=new Proxy(e.getSelectedFields(),t);return new Proxy(new Ot({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:r,query:e.getSQL().inlineParams()}}),t)}},eo=class extends On{static{n(this,"ManualViewBuilder")}static[l]="PgManualViewBuilder";columns;constructor(e,t,r){super(e,r),this.columns=Re(L(e,t))}existing(){return new Proxy(new Ot({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new O({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new Ot({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new O({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}},Qn=class{static{n(this,"MaterializedViewBuilderCore")}constructor(e,t){this.name=e,this.schema=t}static[l]="PgMaterializedViewBuilderCore";config={};using(e){return this.config.using=e,this}with(e){return this.config.with=e,this}tablespace(e){return this.config.tablespace=e,this}withNoData(){return this.config.withNoData=!0,this}},to=class extends Qn{static{n(this,"MaterializedViewBuilder")}static[l]="PgMaterializedViewBuilder";as(e){typeof e=="function"&&(e=e(new he));let t=new O({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),r=new Proxy(e.getSelectedFields(),t);return new Proxy(new Qt({pgConfig:{with:this.config.with,using:this.config.using,tablespace:this.config.tablespace,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:r,query:e.getSQL().inlineParams()}}),t)}},io=class extends Qn{static{n(this,"ManualMaterializedViewBuilder")}static[l]="PgManualMaterializedViewBuilder";columns;constructor(e,t,r){super(e,r),this.columns=Re(L(e,t))}existing(){return new Proxy(new Qt({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new O({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new Qt({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new O({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}},Ot=class extends xe{static{n(this,"PgView")}static[l]="PgView";[ke];constructor({pgConfig:e,config:t}){super(t),e&&(this[ke]={with:e.with})}},Je=Symbol.for("drizzle:PgMaterializedViewConfig"),Qt=class extends xe{static{n(this,"PgMaterializedView")}static[l]="PgMaterializedView";[Je];constructor({pgConfig:e,config:t}){super(t),this[Je]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}};function _i(i,e,t){return e?new eo(i,e,t):new Xs(i,t)}n(_i,"pgViewWithSchema");function Oi(i,e,t){return e?new io(i,e,t):new to(i,t)}n(Oi,"pgMaterializedViewWithSchema");function ro(i,e){return _i(i,e,void 0)}n(ro,"pgView");function no(i,e){return Oi(i,e,void 0)}n(no,"pgMaterializedView");function so(i){return f(i,Ot)}n(so,"isPgView");function oo(i){return f(i,Qt)}n(oo,"isPgMaterializedView");function ao(i){let e=Object.values(i[b.Symbol.Columns]),t=[],r=[],s=[],a=Object.values(i[j.Symbol.InlineForeignKeys]),c=[],m=i[b.Symbol.Name],g=i[b.Symbol.Schema],h=[],d=i[j.Symbol.EnableRLS],p=i[j.Symbol.ExtraConfigBuilder];if(p!==void 0){let P=p(i[b.Symbol.ExtraConfigColumns]),u=Array.isArray(P)?P.flat(1):Object.values(P);for(let x of u)f(x,_e)?t.push(x.build(i)):f(x,Ct)?r.push(x.build(i)):f(x,Ge)?c.push(x.build(i)):f(x,At)?s.push(x.build(i)):f(x,Be)?a.push(x.build(i)):f(x,Ai)&&h.push(x)}return{columns:e,indexes:t,foreignKeys:a,checks:r,primaryKeys:s,uniqueConstraints:c,name:m,schema:g,policies:h,enableRLS:d}}n(ao,"getTableConfig");function ne(i){return f(i,j)?[i[ie]?`${i[ie]}.${i[b.Symbol.BaseName]}`:i[b.Symbol.BaseName]]:f(i,I)?i._.usedTables??[]:f(i,w)?i.usedTables??[]:[]}n(ne,"extractUsedTable");function lo(i){return{...i[A],...i[ke]}}n(lo,"getViewConfig");function uo(i){return{...i[A],...i[Je]}}n(uo,"getMaterializedViewConfig");var Dt=class extends U{static{n(this,"PgDeleteBase")}constructor(e,t,r,s){super(),this.session=t,this.dialect=r,this.config={table:e,withList:s}}static[l]="PgDelete";config;cacheConfig;where(e){return this.config.where=e,this}returning(e=this.config.table[b.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=re(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return z.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:"delete",tables:ne(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=n(e=>z.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute");getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new O({alias:G(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}};var Vt=class{static{n(this,"PgInsertBuilder")}constructor(e,t,r,s,a){this.table=e,this.session=t,this.dialect=r,this.withList=s,this.overridingSystemValue_=a}static[l]="PgInsertBuilder";authToken;setToken(e){return this.authToken=e,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(e){if(e=Array.isArray(e)?e:[e],e.length===0)throw new Error("values() must be called with at least one value");let t=e.map(r=>{let s={},a=this.table[b.Symbol.Columns];for(let c of Object.keys(r)){let m=r[c];s[c]=f(m,w)?m:new ee(m,a[c])}return s});return new Dn(this.table,t,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(e){let t=typeof e=="function"?e(new he):e;if(!f(t,w)&&!Ee(this.table[H],t._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new Dn(this.table,t,this.session,this.dialect,this.withList,!0)}},Dn=class extends U{static{n(this,"PgInsertBase")}constructor(e,t,r,s,a,c,m){super(),this.session=r,this.dialect=s,this.config={table:e,values:t,withList:a,select:c,overridingSystemValue_:m}}static[l]="PgInsert";config;cacheConfig;returning(e=this.config.table[b.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=re(e),this}onConflictDoNothing(e={}){if(e.target===void 0)this.config.onConflict=o`do nothing`;else{let t="";t=Array.isArray(e.target)?e.target.map(s=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(s))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target));let r=e.where?o` where ${e.where}`:void 0;this.config.onConflict=o`(${o.raw(t)})${r} do nothing`}return this}onConflictDoUpdate(e){if(e.where&&(e.targetWhere||e.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let t=e.where?o` where ${e.where}`:void 0,r=e.targetWhere?o` where ${e.targetWhere}`:void 0,s=e.setWhere?o` where ${e.setWhere}`:void 0,a=this.dialect.buildUpdateSet(this.config.table,St(this.config.table,e.set)),c="";return c=Array.isArray(e.target)?e.target.map(m=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(m))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target)),this.config.onConflict=o`(${o.raw(c)})${r} do update set ${a}${t}${s}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return z.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:"insert",tables:ne(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=n(e=>z.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute");getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new O({alias:G(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}};var Vn=class extends U{static{n(this,"PgRefreshMaterializedView")}constructor(e,t,r){super(),this.session=t,this.dialect=r,this.config={view:e}}static[l]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return z.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,e,!0))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=n(e=>z.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute")};var Qi=class{static{n(this,"PgUpdateBuilder")}constructor(e,t,r,s){this.table=e,this.session=t,this.dialect=r,this.withList=s}static[l]="PgUpdateBuilder";authToken;setToken(e){return this.authToken=e,this}set(e){return new co(this.table,St(this.table,e),this.session,this.dialect,this.withList).setToken(this.authToken)}},co=class extends U{static{n(this,"PgUpdateBase")}constructor(e,t,r,s,a){super(),this.session=r,this.dialect=s,this.config={set:t,table:e,withList:a,joins:[]},this.tableName=me(e),this.joinsNotNullableMap=typeof this.tableName=="string"?{[this.tableName]:!0}:{}}static[l]="PgUpdate";config;tableName;joinsNotNullableMap;cacheConfig;from(e){let t=e,r=me(t);return typeof r=="string"&&(this.joinsNotNullableMap[r]=!0),this.config.from=t,this}getTableLikeFields(e){return f(e,j)?e[b.Symbol.Columns]:f(e,I)?e._.selectedFields:e[A].selectedFields}createJoin(e){return(t,r)=>{let s=me(t);if(typeof s=="string"&&this.config.joins.some(a=>a.alias===s))throw new Error(`Alias "${s}" is already used in this query`);if(typeof r=="function"){let a=this.config.from&&!f(this.config.from,w)?this.getTableLikeFields(this.config.from):void 0;r=r(new Proxy(this.config.table[b.Symbol.Columns],new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),a&&new Proxy(a,new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:r,table:t,joinType:e,alias:s}),typeof s=="string")switch(e){case"left":{this.joinsNotNullableMap[s]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[s]=!0;break}case"inner":{this.joinsNotNullableMap[s]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[s]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(e){return this.config.where=e,this}returning(e){if(!e&&(e=Object.assign({},this.config.table[b.Symbol.Columns]),this.config.from)){let t=me(this.config.from);if(typeof t=="string"&&this.config.from&&!f(this.config.from,w)){let r=this.getTableLikeFields(this.config.from);e[t]=r}for(let r of this.config.joins){let s=me(r.table);if(typeof s=="string"&&!f(r.table,w)){let a=this.getTableLikeFields(r.table);e[s]=a}}}return this.config.returningFields=e,this.config.returning=re(e),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){let t=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:"insert",tables:ne(this.config.table)},this.cacheConfig);return t.joinsNotNullableMap=this.joinsNotNullableMap,t}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=n(e=>this._prepare().execute(e,this.authToken),"execute");getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new O({alias:G(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}};var Ln=class{static{n(this,"_RelationalQueryBuilder")}constructor(e,t,r,s,a,c,m){this.fullSchema=e,this.schema=t,this.tableNamesMap=r,this.table=s,this.tableConfig=a,this.dialect=c,this.session=m}static[l]="PgRelationalQueryBuilder";findMany(e){return new jn(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many")}findFirst(e){return new jn(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first")}},jn=class extends U{static{n(this,"_PgRelationalQuery")}constructor(e,t,r,s,a,c,m,g,h){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=r,this.table=s,this.tableConfig=a,this.dialect=c,this.session=m,this.config=g,this.mode=h}static[l]="PgRelationalQuery";_prepare(e){return z.startActiveSpan("drizzle.prepareQuery",()=>{let{query:t,builtQuery:r}=this._toSQL();return this.session.prepareQuery(r,void 0,e,!0,(s,a)=>{let c=s.map(m=>_t(this.schema,this.tableConfig,m,t.selection,a));return this.mode==="first"?c[0]:c})})}prepare(e){return this._prepare(e)}_getQuery(){return this.dialect._buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let e=this._getQuery(),t=this.dialect.sqlToQuery(e.sql);return{query:e,builtQuery:t}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(e){return this.authToken=e,this}execute(){return z.startActiveSpan("drizzle.operation",()=>this._prepare().execute(void 0,this.authToken))}};var In=class Di extends w{static{n(this,"PgCountBuilder")}constructor(e){super(Di.buildEmbeddedCount(e.source,e.filters).queryChunks),this.params=e,this.mapWith(Number),this.session=e.session,this.sql=Di.buildCount(e.source,e.filters)}sql;token;static[l]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(e,t){return o`(select count(*) from ${e}${o.raw(" where ").if(t)}${t})`}static buildCount(e,t){return o`select count(*) as count from ${e}${o.raw(" where ").if(t)}${t};`}setToken(e){return this.token=e,this}then(e,t){return Promise.resolve(this.session.count(this.sql,this.token)).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}};var Fn=class{static{n(this,"RelationalQueryBuilder")}constructor(e,t,r,s,a){this.schema=e,this.table=t,this.tableConfig=r,this.dialect=s,this.session=a}static[l]="PgRelationalQueryBuilderV2";findMany(e){return new zn(this.schema,this.table,this.tableConfig,this.dialect,this.session,e??!0,"many")}findFirst(e){return new zn(this.schema,this.table,this.tableConfig,this.dialect,this.session,e??!0,"first")}},zn=class extends U{static{n(this,"PgRelationalQuery")}constructor(e,t,r,s,a,c,m){super(),this.schema=e,this.table=t,this.tableConfig=r,this.dialect=s,this.session=a,this.config=c,this.mode=m}static[l]="PgRelationalQueryV2";_prepare(e){return z.startActiveSpan("drizzle.prepareQuery",()=>{let{query:t,builtQuery:r}=this._toSQL();return this.session.prepareRelationalQuery(r,void 0,e,(s,a)=>{let c=s.map(m=>Pt(m,t.selection,a));return this.mode==="first"?c[0]:c})})}prepare(e){return this._prepare(e)}_getQuery(){return this.dialect.buildRelationalQuery({schema:this.schema,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,mode:this.mode})}getSQL(){return this._getQuery().sql}_toSQL(){let e=this._getQuery(),t=this.dialect.sqlToQuery(e.sql);return{query:e,builtQuery:t}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(e){return this.authToken=e,this}execute(){return z.startActiveSpan("drizzle.operation",()=>this._prepare().execute(void 0,this.authToken))}};var Kn=class extends U{static{n(this,"PgRaw")}constructor(e,t,r,s){super(),this.execute=e,this.sql=t,this.query=r,this.mapBatchResult=s}static[l]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}isResponseInArrayMode(){return!1}};var mo=class{static{n(this,"PgDatabase")}constructor(e,t,r,s){if(this.dialect=e,this.session=t,this._=s?{schema:s.schema,fullSchema:s.fullSchema,tableNamesMap:s.tableNamesMap,relations:r,session:t}:{schema:void 0,fullSchema:{},tableNamesMap:{},relations:r,session:t},this._query={},this._.schema)for(let[a,c]of Object.entries(this._.schema))this._query[a]=new Ln(s.fullSchema,this._.schema,this._.tableNamesMap,s.fullSchema[a],c,e,t);this.query={};for(let[a,c]of Object.entries(r))this.query[a]=new Fn(r,r[c.name].table,c,e,t);this.$cache={invalidate:n(async a=>{},"invalidate")}}static[l]="PgDatabase";_query;query;$with=n((e,t)=>{let r=this;return{as:n(a=>(typeof a=="function"&&(a=a(new he(r.dialect))),new Proxy(new tt(a.getSQL(),t??("getSelectedFields"in a?a.getSelectedFields()??{}:{}),e,!0),new O({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))),"as")}},"$with");$count(e,t){return new In({source:e,filters:t,session:this.session})}$cache;with(...e){let t=this;function r(h){return new Y({fields:h??void 0,session:t.session,dialect:t.dialect,withList:e})}n(r,"select");function s(h){return new Y({fields:h??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}n(s,"selectDistinct");function a(h,d){return new Y({fields:d??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:{on:h}})}n(a,"selectDistinctOn");function c(h){return new Qi(h,t.session,t.dialect,e)}n(c,"update");function m(h){return new Vt(h,t.session,t.dialect,e)}n(m,"insert");function g(h){return new Dt(h,t.session,t.dialect,e)}return n(g,"delete_"),{select:r,selectDistinct:s,selectDistinctOn:a,update:c,insert:m,delete:g}}select(e){return new Y({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new Y({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(e,t){return new Y({fields:t??void 0,session:this.session,dialect:this.dialect,distinct:{on:e}})}update(e){return new Qi(e,this.session,this.dialect)}insert(e){return new Vt(e,this.session,this.dialect)}delete(e){return new Dt(e,this.session,this.dialect)}refreshMaterializedView(e){return new Vn(e,this.session,this.dialect)}authToken;execute(e){let t=typeof e=="string"?o.raw(e):e.getSQL(),r=this.dialect.sqlToQuery(t),s=this.session.prepareQuery(r,void 0,void 0,!1);return new Kn(()=>s.execute(void 0,this.authToken),t,r,a=>s.mapResult(a,!0))}transaction(e,t){return this.session.transaction(e,t)}},fo=n((i,e,t=()=>e[Math.floor(Math.random()*e.length)])=>({...i,update:n((...C)=>i.update(...C),"update"),insert:n((...C)=>i.insert(...C),"insert"),delete:n((...C)=>i.delete(...C),"$delete"),execute:n((...C)=>i.execute(...C),"execute"),transaction:n((...C)=>i.transaction(...C),"transaction"),refreshMaterializedView:n((...C)=>i.refreshMaterializedView(...C),"refreshMaterializedView"),$primary:i,select:n((...C)=>t(e).select(...C),"select"),selectDistinct:n((...C)=>t(e).selectDistinct(...C),"selectDistinct"),selectDistinctOn:n((...C)=>t(e).selectDistinctOn(...C),"selectDistinctOn"),$count:n((...C)=>t(e).$count(...C),"$count"),$with:n(C=>t(e).$with(C),"$with"),with:n((...C)=>t(e).with(...C),"_with"),get _query(){return t(e)._query},get query(){return t(e).query}}),"withReplicas");var ho=class{static{n(this,"PgRole")}constructor(e,t){this.name=e,t&&(this.createDb=t.createDb,this.createRole=t.createRole,this.inherit=t.inherit)}static[l]="PgRole";_existing;createDb;createRole;inherit;existing(){return this._existing=!0,this}};function go(i,e){return new ho(i,e)}n(go,"pgRole");var En=class{static{n(this,"PgSequence")}constructor(e,t,r){this.seqName=e,this.seqOptions=t,this.schema=r}static[l]="PgSequence"};function po(i,e){return Vi(i,e,void 0)}n(po,"pgSequence");function Vi(i,e,t){return new En(i,e,t)}n(Vi,"pgSequenceWithSchema");function yo(i){return f(i,En)}n(yo,"isPgSequence");var Rn=class{static{n(this,"PgSchema")}constructor(e){this.schemaName=e}static[l]="PgSchema";table=n((e,t,r)=>qt(e,t,r,this.schemaName),"table");view=n((e,t)=>_i(e,t,this.schemaName),"view");materializedView=n((e,t)=>Oi(e,t,this.schemaName),"materializedView");enum(e,t){return Array.isArray(t)?Kt(e,[...t],this.schemaName):Et(e,t,this.schemaName)}sequence=n((e,t)=>Vi(e,t,this.schemaName),"sequence");getSQL(){return new w([o.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}};function bo(i){return f(i,Rn)}n(bo,"isPgSchema");function Po(i){if(i==="public")throw new Error("You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use pgTable() instead of creating a schema");return new Rn(i)}n(Po,"pgSchema");function wo(){let i=L("accounts",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),accessToken:u.text("access_token"),accessTokenExpiresAt:u.timestamp("access_token_expires_at",{withTimezone:!0}),accountId:u.text("account_id").notNull(),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),idToken:u.text("id_token"),providerId:u.text("provider_id").notNull(),password:u.text("password"),userId:u.text("user_id").notNull().references(()=>m.id,{onDelete:"cascade"}),refreshToken:u.text("refresh_token"),refreshTokenExpiresAt:u.timestamp("refresh_token_expires_at",{withTimezone:!0}),scope:u.text("scope"),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),u=>[]),e=L("api_keys",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),name:u.text("name"),enabled:u.boolean("enabled").default(!0),expiresAt:u.timestamp("expires_at",{withTimezone:!0}),key:u.text("key").notNull(),lastRefillAt:u.timestamp("last_refill_at",{withTimezone:!0}),lastRequest:u.timestamp("last_request",{withTimezone:!0}),lastUsedAt:u.timestamp("last_used_at",{withTimezone:!0}),metadata:u.text("metadata"),permissions:u.text("permissions"),prefix:u.text("prefix"),rateLimitEnabled:u.boolean("rate_limit_enabled").default(!0),rateLimitTimeWindow:u.integer("rate_limit_time_window").default(864e5),rateLimitMax:u.integer("rate_limit_max").default(10),refillInterval:u.integer("refill_interval"),refillAmount:u.integer("refill_amount"),requestCount:u.integer("request_count"),remaining:u.integer("remaining"),start:u.text("start"),userId:u.text("user_id").notNull().references(()=>m.id,{onDelete:"cascade"}),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),u=>[]),t=L("invitations",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),email:u.text("email").notNull(),expiresAt:u.timestamp("expires_at",{withTimezone:!0}).notNull(),inviterId:u.text("inviter_id").notNull().references(()=>m.id,{onDelete:"cascade"}),organizationId:u.text("organization_id").notNull().references(()=>s.id,{onDelete:"cascade"}),role:u.text("role"),status:u.text("status").default("pending").notNull(),teamId:u.text("team_id"),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),u=>[]),r=L("members",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),organizationId:u.text("organization_id").notNull().references(()=>s.id,{onDelete:"cascade"}),role:u.text("role").default("member").notNull(),userId:u.text("user_id").notNull().references(()=>m.id,{onDelete:"cascade"}),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),u=>[]),s=L("organizations",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),name:u.text("name").notNull(),slug:u.text("slug").unique(),logo:u.text("logo"),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull(),metadata:u.text("metadata")}),u=>[]),a=L("sessions",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),activeOrganizationId:u.text("active_organization_id").references(()=>s.id,{onDelete:"set null"}),activeTeamId:u.text("active_team_id"),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),expiresAt:u.timestamp("expires_at",{withTimezone:!0}).notNull(),impersonatedBy:u.text("impersonated_by").references(()=>m.id,{onDelete:"set null"}),ipAddress:u.text("ip_address"),token:u.text("token").notNull().unique(),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull(),userAgent:u.text("user_agent"),userId:u.text("user_id").notNull().references(()=>m.id,{onDelete:"cascade"})}),u=>[]),c=L("sso_providers",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),domain:u.text("domain").notNull(),issuer:u.text("issuer").notNull(),oidcConfig:u.text("oidc_config"),organizationId:u.text("organization_id").references(()=>s.id,{onDelete:"cascade"}),providerId:u.text("provider_id").notNull().unique(),samlConfig:u.text("saml_config"),userId:u.text("user_id").references(()=>m.id,{onDelete:"cascade"})}),u=>[]),m=L("users",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),banExpires:u.timestamp("ban_expires",{withTimezone:!0}),banReason:u.text("ban_reason"),banned:u.boolean("banned").default(!1),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),displayUsername:u.text("display_username"),email:u.text("email").notNull().unique(),emailVerified:u.boolean("email_verified").default(!1).notNull(),image:u.text("image"),isAnonymous:u.boolean("is_anonymous"),lastLoginMethod:u.text("last_login_method"),name:u.text("name").notNull(),phoneNumber:u.text("phone_number").unique(),phoneNumberVerified:u.boolean("phone_number_verified"),role:u.text("role"),twoFactorEnabled:u.boolean("two_factor_enabled").default(!1),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull(),username:u.text("username").unique()}),u=>[]),g=L("teams",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),name:u.text("name").notNull(),organizationId:u.text("organization_id").notNull().references(()=>s.id,{onDelete:"cascade"}),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),u=>[]),h=L("team_members",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),teamId:u.text("team_id").notNull().references(()=>g.id,{onDelete:"cascade"}),userId:u.text("user_id").notNull().references(()=>m.id,{onDelete:"cascade"}),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),u=>[]),d=L("two_factors",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),secret:u.text("secret").notNull(),backupCodes:u.text("backup_codes").notNull(),userId:u.text("user_id").notNull().references(()=>m.id,{onDelete:"cascade"})}),u=>[]),p=L("verifications",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),expiresAt:u.timestamp("expires_at",{withTimezone:!0}).notNull(),identifier:u.text("identifier").notNull(),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull(),value:u.text("value").notNull()}),u=>[]);return{tables:{accounts:i,apiKeys:e,invitations:t,members:r,organizations:s,sessions:a,ssoProviders:c,teams:g,teamMembers:h,twoFactors:d,users:m,verifications:p},relations:n(u=>({users:{sessions:u.many.sessions({from:u.users.id,to:u.sessions.userId}),accounts:u.many.accounts({from:u.users.id,to:u.accounts.userId}),apiKeys:u.many.apiKeys({from:u.users.id,to:u.apiKeys.userId}),memberships:u.many.members({from:u.users.id,to:u.members.userId}),invitations:u.many.invitations({from:u.users.id,to:u.invitations.inviterId}),ssoProvider:u.one.ssoProviders({from:u.users.id,to:u.ssoProviders.userId}),twoFactor:u.one.twoFactors({from:u.users.id,to:u.twoFactors.userId})},sessions:{user:u.one.users({from:u.sessions.userId,to:u.users.id})},accounts:{user:u.one.users({from:u.accounts.userId,to:u.users.id})},apiKeys:{user:u.one.users({from:u.apiKeys.userId,to:u.users.id})},organizations:{members:u.many.members({from:u.organizations.id,to:u.members.organizationId}),invitations:u.many.invitations({from:u.organizations.id,to:u.invitations.organizationId}),teams:u.many.teams({from:u.organizations.id,to:u.teams.organizationId})},members:{organization:u.one.organizations({from:u.members.organizationId,to:u.organizations.id}),user:u.one.users({from:u.members.userId,to:u.users.id})},invitations:{organization:u.one.organizations({from:u.invitations.organizationId,to:u.organizations.id}),inviter:u.one.users({from:u.invitations.inviterId,to:u.users.id})},teams:{organization:u.one.organizations({from:u.teams.organizationId,to:u.organizations.id})},ssoProviders:{user:u.one.users({from:u.ssoProviders.userId,to:u.users.id})},verifications:{},twoFactors:{user:u.one.users({from:u.twoFactors.userId,to:u.users.id})}}),"relations")}}n(wo,"defineAuthSchema");function kn(){let i=L("storage_blobs",s=>({id:s.text("id").primaryKey().default(o`uuidv7()`),key:s.text("key").notNull().unique(),filename:s.text("filename").notNull(),contentType:s.text("content_type"),metadata:s.jsonb("metadata"),serviceName:s.text("service_name").notNull().default("private"),byteSize:s.bigint("byte_size",{mode:"number"}).notNull(),checksum:s.text("checksum"),createdAt:s.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),s=>[Ce("storage_blobs_key_idx").on(s.key),Ce("storage_blobs_service_name_idx").on(s.serviceName)]),e=L("storage_attachments",s=>({id:s.text("id").primaryKey().default(o`uuidv7()`),name:s.text("name").notNull(),recordType:s.text("record_type").notNull(),recordId:s.text("record_id").notNull(),blobId:s.text("blob_id").notNull().references(()=>i.id,{onDelete:"cascade"}),createdAt:s.timestamp("created_at",{withTimezone:!0}).notNull().default(o`NOW()`)}),s=>[Ce("storage_attachments_record_idx").on(s.recordType,s.recordId),Ce("storage_attachments_blob_id_idx").on(s.blobId)]),t=L("storage_variant_records",s=>({id:s.text("id").primaryKey().default(o`uuidv7()`),blobId:s.text("blob_id").notNull().references(()=>i.id,{onDelete:"cascade"}),variationDigest:s.text("variation_digest").notNull(),createdAt:s.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),s=>[Ce("storage_variant_records_blob_id_idx").on(s.blobId),It("storage_variant_records_unique").on(s.blobId,s.variationDigest)]);return{tables:{storageBlobs:i,storageAttachments:e,storageVariantRecords:t},relations:n(s=>({storageBlobs:{attachments:s.many.storageAttachments({from:s.storageBlobs.id,to:s.storageAttachments.blobId}),variantRecords:s.many.storageVariantRecords({from:s.storageBlobs.id,to:s.storageVariantRecords.blobId})},storageAttachments:{blob:s.one.storageBlobs({from:s.storageAttachments.blobId,to:s.storageBlobs.id})},storageVariantRecords:{blob:s.one.storageBlobs({from:s.storageVariantRecords.blobId,to:s.storageBlobs.id})}}),"relations")}}n(kn,"defineStorageSchema");var RP=kn();export{os as AggregatedField,Mt as BaseName,mr as Check,Ct as CheckBuilder,v as Column,Le as ColumnAliasProxyHandler,Li as ColumnBuilder,is as ConsoleLogWriter,as as Count,vl as DefaultLogger,be as DrizzleError,Sl as DrizzleQueryError,Ui as ExtraConfigBuilder,Mi as ExtraConfigColumns,Ua as FakePrimitiveParam,Ii as ForeignKey,Be as ForeignKeyBuilder,fn as Index,_e as IndexBuilder,qi as IndexBuilderOn,Qe as IndexedColumn,de as IsAlias,ss as Many,it as Name,Al as NoopLogger,wt as One,ye as OriginalName,ee as Param,Xe as PgArray,Ei as PgArrayBuilder,fr as PgBigInt53,dr as PgBigInt53Builder,gr as PgBigInt64,hr as PgBigInt64Builder,yr as PgBigSerial53,pr as PgBigSerial53Builder,Pr as PgBigSerial64,br as PgBigSerial64Builder,on as PgBinaryVector,sn as PgBinaryVectorBuilder,Sr as PgBoolean,wr as PgBooleanBuilder,xr as PgBytea,Cr as PgByteaBuilder,Tr as PgChar,Br as PgCharBuilder,$r as PgCidr,Nr as PgCidrBuilder,y as PgColumn,S as PgColumnBuilder,qr as PgCustomColumn,vr as PgCustomColumnBuilder,mo as PgDatabase,xt as PgDate,Ar as PgDateBuilder,Bt as PgDateString,_r as PgDateStringBuilder,Dt as PgDeleteBase,Ue as PgDialect,Gr as PgGeometry,Hr as PgGeometryBuilder,Zr as PgGeometryObject,Yr as PgGeometryObjectBuilder,ln as PgHalfVector,an as PgHalfVectorBuilder,Vt as PgInsertBuilder,Qr as PgInteger,Or as PgIntegerBuilder,Tt as PgJson,Dr as PgJsonBuilder,Nt as PgJsonb,Vr as PgJsonbBuilder,Ir as PgLineABC,Lr as PgLineABCBuilder,jr as PgLineBuilder,Fr as PgMacaddr,Er as PgMacaddr8,Kr as PgMacaddr8Builder,zr as PgMacaddrBuilder,Je as PgMaterializedViewConfig,$t as PgNumeric,Jr as PgNumericBigInt,Ur as PgNumericBigIntBuilder,Rr as PgNumericBuilder,Mr as PgNumericNumber,kr as PgNumericNumberBuilder,en as PgReal,Xr as PgRealBuilder,j as PgTable,rn as PgText,tn as PgTextBuilder,ae as Placeholder,hn as PrimaryKey,he as QueryBuilder,U as QueryPromise,ve as Relation,ts as RelationTableAliasProxyHandler,us as RelationsBuilderColumn,cs as RelationsBuilderJunctionColumn,ls as RelationsBuilderTable,ms as RelationsHelperStatic,w as SQL,R as StringChunk,I as Subquery,b as Table,Te as TableAliasProxyHandler,H as TableColumns,ie as TableSchema,Cl as TransactionRollbackError,Fi as UniqueConstraint,Ge as UniqueConstraintBuilder,zi as UniqueOnConstraintBuilder,W as View,A as ViewBaseConfig,tt as WithSubquery,ds as alias,pl as aliasedRelation,oe as aliasedTable,le as aliasedTableColumn,J as and,cr as applyMixins,tr as arrayContained,er as arrayContains,ir as arrayOverlaps,Pe as asc,Pu as avg,wu as avgDistinct,dt as between,Wt as bigint,Ht as bigserial,F as bindIfParam,Ti as bit,Gt as boolean,rs as buildRelations,ns as buildRelationsParts,hs as bytea,Yt as char,fs as check,Zt as cidr,_u as cosineDistance,yu as count,bu as countDistinct,sr as createRelationsHelper,Xt as customType,ei as date,Cs as decimal,wo as defineAuthSchema,cu as defineRelations,mu as defineRelationsPart,kn as defineStorageSchema,Ke as desc,ti as doublePrecision,l as entityKind,ue as eq,An as except,_n as exceptAll,ze as exists,Oo as extractExtendedColumnType,or as extractTablesFromSchema,ne as extractUsedTable,ar as fieldSelectionToSQL,il as fillPlaceholders,Jn as foreignKey,di as geometry,_ as getColumnNameAndConfig,vo as getColumnTable,uo as getMaterializedViewConfig,su as getOrderByOperators,we as getTableAsAliasSQL,Re as getTableColumns,ao as getTableConfig,me as getTableLikeName,G as getTableName,De as getTableUniqueName,lo as getViewConfig,sl as getViewName,Ru as getViewSelectedFields,nt as gt,st as gte,Ni as halfvec,Ou as hammingDistance,xo as hasOwnEntityKind,Ee as haveSameKeys,pt as ilike,lt as inArray,Ce as index,ii as inet,Au as innerProduct,ri as integer,vn as intersect,qn as intersectAll,ni as interval,f as is,ku as isConfig,Wi as isDriverValueEncoder,mt as isNotNull,ct as isNull,Ft as isPgEnum,oo as isPgMaterializedView,bo as isPgSchema,yo as isPgSequence,so as isPgView,je as isSQLWrapper,Va as isTable,nl as isView,Qu as jaccardDistance,si as json,oi as jsonb,qu as l1Distance,vu as l2Distance,ht as like,ai as line,ot as lt,at as lte,li as macaddr,ui as macaddr8,Ze as makePgArray,Ut as mapColumnsInAliasedSQLToAlias,Ie as mapColumnsInSQLToAlias,Pt as mapRelationalRow,Eu as mapResultRow,St as mapUpdateSet,xu as max,Bu as min,Ga as name,rt as ne,Hi as noopDecoder,Gi as noopEncoder,Ya as noopMapper,$e as not,ft as notBetween,Fe as notExists,yt as notIlike,ut as notInArray,gt as notLike,vt as numeric,qe as operators,Ne as or,nr as orderByOperators,re as orderSelectedFields,Xa as param,Ye as parsePgArray,zt as parsePgNestedArray,Xn as pgEnum,no as pgMaterializedView,Us as pgPolicy,go as pgRole,Po as pgSchema,po as pgSequence,L as pgTable,ks as pgTableCreator,ro as pgView,tl as placeholder,ci as point,Js as primaryKey,rr as processRelations,fi as real,ur as relationExtrasToSQL,Jt as relationToSQL,ce as relationsFilterToSQL,lr as relationsOrderToSQL,hi as serial,gi as smallint,pi as smallserial,$i as sparsevec,o as sql,Su as sum,Cu as sumDistinct,yi as text,Mu as textDecoder,Pi as time,Ci as timestamp,Nn as union,$n as unionAll,It as unique,Ms as uniqueIndex,He as uniqueKeyName,Bi as uuid,fo as withReplicas};
9
+ `;await t.execute(o`CREATE SCHEMA IF NOT EXISTS ${o.identifier(a)}`),await t.execute(c);let g=(await t.all(o`select id, hash, created_at from ${o.identifier(a)}.${o.identifier(s)} order by created_at desc limit 1`))[0];await t.transaction(async h=>{for await(let d of e)if(!g||Number(g.created_at)<d.folderMillis){for(let p of d.sql)await h.execute(o.raw(p));await h.execute(o`insert into ${o.identifier(a)}.${o.identifier(s)} ("hash", "created_at") values(${d.hash}, ${d.folderMillis})`)}})}escapeName(e){return`"${e}"`}escapeParam(e){return`$${e+1}`}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;let t=[o`with `];for(let[r,s]of e.entries())t.push(o`${o.identifier(s._.alias)} as (${s._.sql})`),r<e.length-1&&t.push(o`, `);return t.push(o` `),o.join(t)}buildDeleteQuery({table:e,where:t,returning:r,withList:s}){let a=this.buildWithCTE(s),c=r?o` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0,m=t?o` where ${t}`:void 0;return o`${a}delete from ${e}${m}${c}`}buildUpdateSet(e,t){let r=e[b.Symbol.Columns],s=Object.keys(r).filter(c=>t[c]!==void 0||r[c]?.onUpdateFn!==void 0),a=s.length;return o.join(s.flatMap((c,m)=>{let g=r[c],h=t[c]??o.param(g.onUpdateFn(),g),d=o`${o.identifier(this.casing.getColumnCasing(g))} = ${h}`;return m<a-1?[d,o.raw(", ")]:[d]}))}buildUpdateQuery({table:e,set:t,where:r,returning:s,withList:a,from:c,joins:m}){let g=this.buildWithCTE(a),h=e[D.Symbol.Name],d=e[D.Symbol.Schema],p=e[D.Symbol.OriginalName],w=h===p?void 0:h,u=o`${d?o`${o.identifier(d)}.`:void 0}${o.identifier(p)}${w&&o` ${o.identifier(w)}`}`,x=this.buildUpdateSet(e,t),C=c&&o.join([o.raw(" from "),this.buildFromTable(c)]),Q=this.buildJoins(m),T=s?o` returning ${this.buildSelection(s,{isSingleTable:!c})}`:void 0,N=r?o` where ${r}`:void 0;return o`${g}update ${u} set ${x}${C}${Q}${N}${T}`}buildSelection(e,{isSingleTable:t=!1}={}){let r=e.length,s=e.flatMap(({field:a},c)=>{let m=[];if(f(a,P.Aliased)&&a.isSelectionField)m.push(o.identifier(a.fieldAlias));else if(f(a,P.Aliased)||f(a,P)){let g=f(a,P.Aliased)?a.sql:a;t?m.push(new P(g.queryChunks.map(h=>f(h,y)?o.identifier(this.casing.getColumnCasing(h)):h))):m.push(g),f(a,P.Aliased)&&m.push(o` as ${o.identifier(a.fieldAlias)}`)}else f(a,A)&&(t?m.push(o.identifier(this.casing.getColumnCasing(a))):m.push(a));return c<r-1&&m.push(o`, `),m});return o.join(s)}buildJoins(e){if(!e||e.length===0)return;let t=[];for(let[r,s]of e.entries()){r===0&&t.push(o` `);let a=s.table,c=s.lateral?o` lateral`:void 0,m=s.on?o` on ${s.on}`:void 0;if(f(a,D)){let g=a[D.Symbol.Name],h=a[D.Symbol.Schema],d=a[D.Symbol.OriginalName],p=g===d?void 0:s.alias;t.push(o`${o.raw(s.joinType)} join${c} ${h?o`${o.identifier(h)}.`:void 0}${o.identifier(d)}${p&&o` ${o.identifier(p)}`}${m}`)}else if(f(a,W)){let g=a[_].name,h=a[_].schema,d=a[_].originalName,p=g===d?void 0:s.alias;t.push(o`${o.raw(s.joinType)} join${c} ${h?o`${o.identifier(h)}.`:void 0}${o.identifier(d)}${p&&o` ${o.identifier(p)}`}${m}`)}else t.push(o`${o.raw(s.joinType)} join${c} ${a}${m}`);r<e.length-1&&t.push(o` `)}return o.join(t)}buildFromTable(e){if(f(e,b)&&e[b.Symbol.IsAlias]){let t=o`${o.identifier(e[b.Symbol.OriginalName])}`;return e[b.Symbol.Schema]&&(t=o`${o.identifier(e[b.Symbol.Schema])}.${t}`),o`${t} ${o.identifier(e[b.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:r,where:s,having:a,table:c,joins:m,orderBy:g,groupBy:h,limit:d,offset:p,lockingClause:w,distinct:u,setOperators:x}){let C=r??ie(t);for(let k of C)if(f(k.field,A)&&te(k.field.table)!==(f(c,z)?c._.alias:f(c,xe)?c[_].name:f(c,P)?void 0:te(c))&&!(Y=>m?.some(({alias:ge})=>ge===(Y[b.Symbol.IsAlias]?te(Y):Y[b.Symbol.BaseName])))(k.field.table)){let Y=te(k.field.table);throw new Error(`Your "${k.path.join("->")}" field references a column "${Y}"."${k.field.name}", but the table "${Y}" is not part of the query! Did you forget to join it?`)}let Q=!m||m.length===0,T=this.buildWithCTE(e),N;u&&(N=u===!0?o` distinct`:o` distinct on (${o.join(u.on,o`, `)})`);let V=this.buildSelection(C,{isSingleTable:Q}),B=this.buildFromTable(c),j=this.buildJoins(m),K=s?o` where ${s}`:void 0,$=a?o` having ${a}`:void 0,v;g&&g.length>0&&(v=o` order by ${o.join(g,o`, `)}`);let E;h&&h.length>0&&(E=o` group by ${o.join(h,o`, `)}`);let he=typeof d=="object"||typeof d=="number"&&d>=0?o` limit ${d}`:void 0,ne=p?o` offset ${p}`:void 0,X=o.empty();if(w){let k=o` for ${o.raw(w.strength)}`;w.config.of&&k.append(o` of ${o.join(Array.isArray(w.config.of)?w.config.of:[w.config.of],o`, `)}`),w.config.noWait?k.append(o` nowait`):w.config.skipLocked&&k.append(o` skip locked`),X.append(k)}let M=o`${T}select${N} ${V} from ${B}${j}${K}${E}${$}${v}${he}${ne}${X}`;return x.length>0?this.buildSetOperations(M,x):M}buildSetOperations(e,t){let[r,...s]=t;if(!r)throw new Error("Cannot pass undefined values to any set operator");return s.length===0?this.buildSetOperationQuery({leftSelect:e,setOperator:r}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:r}),s)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:r,rightSelect:s,limit:a,orderBy:c,offset:m}}){let g=o`(${e.getSQL()}) `,h=o`(${s.getSQL()})`,d;if(c&&c.length>0){let x=[];for(let C of c)if(f(C,y))x.push(o.identifier(C.name));else if(f(C,P)){for(let Q=0;Q<C.queryChunks.length;Q++){let T=C.queryChunks[Q];f(T,y)&&(C.queryChunks[Q]=o.identifier(T.name))}x.push(o`${C}`)}else x.push(o`${C}`);d=o` order by ${o.join(x,o`, `)} `}let p=typeof a=="object"||typeof a=="number"&&a>=0?o` limit ${a}`:void 0,w=o.raw(`${t} ${r?"all ":""}`),u=m?o` offset ${m}`:void 0;return o`${g}${w}${h}${d}${p}${u}`}buildInsertQuery({table:e,values:t,onConflict:r,returning:s,withList:a,select:c,overridingSystemValue_:m}){let g=[],h=e[b.Symbol.Columns],d=Object.entries(h).filter(([T,N])=>!N.shouldDisableInsert()),p=d.map(([,T])=>o.identifier(this.casing.getColumnCasing(T)));if(c){let T=t;f(T,P)?g.push(T):g.push(T.getSQL())}else{let T=t;g.push(o.raw("values "));for(let[N,V]of T.entries()){let B=[];for(let[j,K]of d){let $=V[j];if($===void 0||f($,se)&&$.value===void 0)if(K.defaultFn!==void 0){let v=K.defaultFn(),E=f(v,P)?v:o.param(v,K);B.push(E)}else if(!K.default&&K.onUpdateFn!==void 0){let v=K.onUpdateFn(),E=f(v,P)?v:o.param(v,K);B.push(E)}else B.push(o`default`);else B.push($)}g.push(B),N<T.length-1&&g.push(o`, `)}}let w=this.buildWithCTE(a),u=o.join(g),x=s?o` returning ${this.buildSelection(s,{isSingleTable:!0})}`:void 0,C=r?o` on conflict ${r}`:void 0,Q=m===!0?o`overriding system value `:void 0;return o`${w}insert into ${e} ${p} ${Q}${u}${C}${x}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:r}){let s=t?o` concurrently`:void 0,a=r?o` with no data`:void 0;return o`refresh materialized view${s} ${e}${a}`}prepareTyping(e){return f(e,Bt)||f(e,xt)?"json":f(e,Tt)?"decimal":f(e,yi)?"time":f(e,Pi)||f(e,wi)?"timestamp":f(e,St)||f(e,Ct)?"date":f(e,Ci)?"uuid":"none"}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:t})}_buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:r,table:s,tableConfig:a,queryConfig:c,tableAlias:m,nestedQueryRelation:g,joinOn:h}){let d=[],p,w,u=[],x,C=[];if(c===!0)d=Object.entries(a.columns).map(([N,V])=>({dbKey:V.name,tsKey:N,field:ae(V,m),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let T=Object.fromEntries(Object.entries(a.columns).map(([$,v])=>[$,ae(v,m)]));if(c.where){let $=typeof c.where=="function"?c.where(T,gn()):c.where;x=$&&Ie($,m)}let N=[],V=[];if(c.columns){let $=!1;for(let[v,E]of Object.entries(c.columns))E!==void 0&&v in a.columns&&(!$&&E===!0&&($=!0),V.push(v));V.length>0&&(V=$?V.filter(v=>c.columns?.[v]===!0):Object.keys(a.columns).filter(v=>!V.includes(v)))}else V=Object.keys(a.columns);for(let $ of V){let v=a.columns[$];N.push({tsKey:$,value:v})}let B=[];c.with&&(B=Object.entries(c.with).filter($=>!!$[1]).map(([$,v])=>({tsKey:$,queryConfig:v,relation:a.relations[$]})));let j;if(c.extras){j=typeof c.extras=="function"?c.extras(T,{sql:o}):c.extras;for(let[$,v]of Object.entries(j))N.push({tsKey:$,value:Mt(v,m)})}for(let{tsKey:$,value:v}of N)d.push({dbKey:f(v,P.Aliased)?v.fieldAlias:a.columns[$].name,tsKey:$,field:f(v,A)?ae(v,m):v,relationTableTsKey:void 0,isJson:!1,selection:[]});let K=typeof c.orderBy=="function"?c.orderBy(T,pn()):c.orderBy??[];Array.isArray(K)||(K=[K]),u=K.map($=>f($,A)?ae($,m):Ie($,m)),p=c.limit,w=c.offset;for(let{tsKey:$,queryConfig:v,relation:E}of B){let he=yn(t,r,E),ne=Qe(E.referencedTable),X=r[ne],M=`${m}_${$}`,k=J(...he.fields.map((Vt,jt)=>le(ae(he.references[jt],M),ae(Vt,m)))),Y=this._buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:r,table:e[X],tableConfig:t[X],queryConfig:f(E,ke)?v===!0?{limit:1}:{...v,limit:1}:v,tableAlias:M,joinOn:k,nestedQueryRelation:E}),ge=o`${o.identifier(M)}.${o.identifier("data")}`.as($);C.push({on:o`true`,table:new z(Y.sql,{},M),alias:M,joinType:"left",lateral:!0}),d.push({dbKey:$,tsKey:$,field:ge,relationTableTsKey:X,isJson:!0,selection:Y.selection})}}if(d.length===0)throw new be({message:`No fields selected for table "${a.tsName}" ("${m}")`});let Q;if(x=J(h,x),g){let T=o`json_build_array(${o.join(d.map(({field:B,tsKey:j,isJson:K})=>K?o`${o.identifier(`${m}_${j}`)}.${o.identifier("data")}`:f(B,P.Aliased)?B.sql:B),o`, `)})`;f(g,fn)&&(T=o`coalesce(json_agg(${T}${u.length>0?o` order by ${o.join(u,o`, `)}`:void 0}), '[]'::json)`);let N=[{dbKey:"data",tsKey:"data",field:T.as("data"),isJson:!0,relationTableTsKey:a.tsName,selection:d}];p!==void 0||w!==void 0||u.length>0?(Q=this.buildSelectQuery({table:oe(s,m),fields:{},fieldsFlat:[{path:[],field:o.raw("*")}],where:x,limit:p,offset:w,orderBy:u,setOperators:[]}),x=void 0,p=void 0,w=void 0,u=[]):Q=oe(s,m),Q=this.buildSelectQuery({table:f(Q,D)?Q:new z(Q,{},m),fields:{},fieldsFlat:N.map(({field:B})=>({path:[],field:f(B,A)?ae(B,m):B})),joins:C,where:x,limit:p,offset:w,orderBy:u,setOperators:[]})}else Q=this.buildSelectQuery({table:oe(s,m),fields:{},fieldsFlat:d.map(({field:T})=>({path:[],field:f(T,A)?ae(T,m):T})),joins:C,where:x,limit:p,offset:w,orderBy:u,setOperators:[]});return{tableTsKey:a.tsName,sql:Q,selection:d}}nestedSelectionerror(){throw new be({message:"Views with nested selections are not supported by the relational query builder"})}buildRqbColumn(e,t,r){if(f(t,A)){let s=o`${e}.${o.identifier(this.casing.getColumnCasing(t))}`,a=t.columnType,c=t,m=0;for(;f(c,Ze);)c=c.baseColumn,a=c.columnType,++m;switch(a){case"PgNumeric":case"PgNumericNumber":case"PgNumericBigInt":case"PgBigInt64":case"PgBigSerial64":case"PgTimestampString":case"PgGeometry":case"PgGeometryObject":case"PgBytea":{let g="[]".repeat(m);return o`${s}::text${o.raw(g).if(g)} as ${o.identifier(r)}`}case"PgCustomColumn":return o`${c.jsonSelectIdentifier(s,o,m>0?m:void 0)} as ${o.identifier(r)}`;default:return o`${s} as ${o.identifier(r)}`}}return o`${e}.${f(t,P.Aliased)?o.identifier(t.fieldAlias):je(t)?o.identifier(r):this.nestedSelectionerror()} as ${o.identifier(r)}`}unwrapAllColumns=n((e,t)=>o.join(Object.entries(e[H]).map(([r,s])=>(t.push({key:r,field:s}),this.buildRqbColumn(e,s,r))),o`, `),"unwrapAllColumns");buildColumns=n((e,t,r)=>r?.columns?(()=>{let s=Object.entries(r.columns),a=e[H],c=[],m;for(let[g,h]of s)if(h!==void 0&&(m=m||h,h)){let d=a[g];c.push(this.buildRqbColumn(e,d,g)),t.push({key:g,field:d})}if(m===!1)for(let[g,h]of Object.entries(a))r.columns[g]!==!1&&(c.push(this.buildRqbColumn(e,h,g)),t.push({key:g,field:h}));return c.length?o.join(c,o`, `):void 0})():this.unwrapAllColumns(e,t),"buildColumns");buildRelationalQuery({schema:e,table:t,tableConfig:r,queryConfig:s,relationWhere:a,mode:c,errorPath:m,depth:g,throughJoin:h}){let d=[],p=c==="first",w=s===!0?void 0:s,u=m??"",x=g??0;x||(t=oe(t,`d${x}`));let C=p?1:w?.limit,Q=w?.offset,T=w?.where&&a?J(ue(t,w.where,r.relations,e,this.casing),a):w?.where?ue(t,w.where,r.relations,e,this.casing):a,N=w?.orderBy?nr(t,w.orderBy):void 0,V=this.buildColumns(t,d,w),B=w?.extras?sr(t,w.extras):void 0;B&&d.push(...B.selection);let j=V?[V]:[],K=w?(()=>{let{with:E}=w;if(!E)return;let he=Object.entries(E).filter(([ne,X])=>X);if(he.length)return o.join(he.map(([ne,X])=>{let M=r.relations[ne],k=f(M,bt),Y=oe(M.targetTable,`d${x+1}`),ge=M.throughTable?oe(M.throughTable,`tr${x}`):void 0,{filter:Vt,joinCondition:jt}=Ut(this.casing,M,t,Y,ge);j.push(o`${o.identifier(ne)}.${o.identifier("r")} as ${o.identifier(ne)}`);let Kn=ge?o` inner join ${we(ge)} on ${jt}`:void 0,ji=this.buildRelationalQuery({table:Y,mode:k?"first":"many",schema:e,queryConfig:X,tableConfig:e[M.targetTableName],relationWhere:Vt,errorPath:`${u.length?`${u}.`:""}${ne}`,depth:x+1,throughJoin:Kn});return d.push({field:Y,key:ne,selection:ji.selection,isArray:!k,isOptional:(M.optional??!1)||X!==!0&&!!X.where}),o`left join lateral(select ${k?o`row_to_json(${o.identifier("t")}.*) ${o.identifier("r")}`:o`coalesce(json_agg(row_to_json(${o.identifier("t")}.*)), '[]') as ${o.identifier("r")}`} from (${ji.sql}) as ${o.identifier("t")}) as ${o.identifier(ne)} on true`}),o` `)})():void 0;if(B?.sql&&j.push(B.sql),!j.length)throw new be({message:`No fields selected for table "${r.name}"${u?` ("${u}")`:""}`});let $=o.join(j.filter(E=>E!==void 0),o`, `);return{sql:o`select ${$} from ${we(t)}${h}${o` ${K}`.if(K)}${o` where ${T}`.if(T)}${o` order by ${N}`.if(N)}${o` limit ${C}`.if(C!==void 0)}${o` offset ${Q}`.if(Q!==void 0)}`,selection:d}}};var wn=class{static{n(this,"TypedQueryBuilder")}static[l]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}};var G=class{static{n(this,"PgSelectBuilder")}static[l]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}authToken;setToken(e){return this.authToken=e,this}from(e){let t=!!this.fields,r=e,s;return this.fields?s=this.fields:f(r,z)?s=Object.fromEntries(Object.keys(r._.selectedFields).map(a=>[a,r[a]])):f(r,xe)?s=r[_].selectedFields:f(r,P)?s={}:s=Ee(r),new Sn({table:r,fields:s,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}},Gs=class extends wn{static{n(this,"PgSelectQueryBuilderBase")}static[l]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:t,isPartialSelect:r,session:s,dialect:a,withList:c,distinct:m}){super(),this.config={withList:c,table:e,fields:{...t},distinct:m,setOperators:[]},this.isPartialSelect=r,this.session=s,this.dialect=a,this._={selectedFields:t,config:this.config},this.tableName=ce(e),this.joinsNotNullableMap=typeof this.tableName=="string"?{[this.tableName]:!0}:{};for(let g of re(e))this.usedTables.add(g)}getUsedTables(){return[...this.usedTables]}createJoin(e,t){return(r,s)=>{let a=this.tableName,c=ce(r);for(let m of re(r))this.usedTables.add(m);if(typeof c=="string"&&this.config.joins?.some(m=>m.alias===c))throw new Error(`Alias "${c}" is already used in this query`);if(!this.isPartialSelect&&(Object.keys(this.joinsNotNullableMap).length===1&&typeof a=="string"&&(this.config.fields={[a]:this.config.fields}),typeof c=="string"&&!f(r,P))){let m=f(r,z)?r._.selectedFields:f(r,W)?r[_].selectedFields:r[b.Symbol.Columns];this.config.fields[c]=m}if(typeof s=="function"&&(s=s(new Proxy(this.config.fields,new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:s,table:r,joinType:e,alias:c,lateral:t}),typeof c=="string")switch(e){case"left":{this.joinsNotNullableMap[c]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([m])=>[m,!1])),this.joinsNotNullableMap[c]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[c]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([m])=>[m,!1])),this.joinsNotNullableMap[c]=!1;break}}return this}}leftJoin=this.createJoin("left",!1);leftJoinLateral=this.createJoin("left",!0);rightJoin=this.createJoin("right",!1);innerJoin=this.createJoin("inner",!1);innerJoinLateral=this.createJoin("inner",!0);fullJoin=this.createJoin("full",!1);crossJoin=this.createJoin("cross",!1);crossJoinLateral=this.createJoin("cross",!0);createSetOperator(e,t){return r=>{let s=typeof r=="function"?r(Ys()):r;if(!Ke(this.getSelectedFields(),s.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:s}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return typeof e=="function"&&(e=e(new Proxy(this.config.fields,new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return typeof e=="function"&&(e=e(new Proxy(this.config.fields,new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if(typeof e[0]=="function"){let t=e[0](new Proxy(this.config.fields,new O({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if(typeof e[0]=="function"){let t=e[0](new Proxy(this.config.fields,new O({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),r=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=r:this.config.orderBy=r}else{let t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){let t=[];if(t.push(...re(this.config.table)),this.config.joins)for(let r of this.config.joins)t.push(...re(r.table));return new Proxy(new z(this.getSQL(),this.config.fields,e,!1,[...new Set(t)]),new O({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new O({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}$withCache(e){return this.cacheConfig=e===void 0?{config:{},enable:!0,autoInvalidate:!0}:e===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...e},this}},Sn=class extends Gs{static{n(this,"PgSelectBase")}static[l]="PgSelect";_prepare(e){let{session:t,config:r,dialect:s,joinsNotNullableMap:a,authToken:c,cacheConfig:m,usedTables:g}=this;if(!t)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");let{fields:h}=r;return L.startActiveSpan("drizzle.prepareQuery",()=>{let d=ie(h),p=t.prepareQuery(s.sqlToQuery(this.getSQL()),d,e,!0,void 0,{type:"select",tables:[...g]},m);return p.joinsNotNullableMap=a,p.setToken(c)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=n(e=>L.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute")};or(Sn,[U]);function Ae(i,e){return(t,r,...s)=>{let a=[r,...s].map(c=>({type:i,isAll:e,rightSelect:c}));for(let c of a)if(!Ke(t.getSelectedFields(),c.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return t.addSetOperators(a)}}n(Ae,"createSetOperator");var Ys=n(()=>({union:Cn,unionAll:xn,intersect:Bn,intersectAll:Tn,except:Nn,exceptAll:$n}),"getPgSetOperators"),Cn=Ae("union",!1),xn=Ae("union",!0),Bn=Ae("intersect",!1),Tn=Ae("intersect",!0),Nn=Ae("except",!1),$n=Ae("except",!0);var fe=class{static{n(this,"QueryBuilder")}static[l]="PgQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=f(e,Me)?e:void 0,this.dialectConfig=f(e,Me)?void 0:e}$with=n((e,t)=>{let r=this;return{as:n(a=>(typeof a=="function"&&(a=a(r)),new Proxy(new et(a.getSQL(),t??("getSelectedFields"in a?a.getSelectedFields()??{}:{}),e,!0),new O({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))),"as")}},"$with");with(...e){let t=this;function r(c){return new G({fields:c??void 0,session:void 0,dialect:t.getDialect(),withList:e})}n(r,"select");function s(c){return new G({fields:c??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})}n(s,"selectDistinct");function a(c,m){return new G({fields:m??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:c}})}return n(a,"selectDistinctOn"),{select:r,selectDistinct:s,selectDistinctOn:a}}select(e){return new G({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new G({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new G({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||(this.dialect=new Me(this.dialectConfig)),this.dialect}};var vn=class{static{n(this,"DefaultViewBuilderCore")}constructor(e,t){this.name=e,this.schema=t}static[l]="PgDefaultViewBuilderCore";config={};with(e){return this.config.with=e,this}},Zs=class extends vn{static{n(this,"ViewBuilder")}static[l]="PgViewBuilder";as(e){typeof e=="function"&&(e=e(new fe));let t=new O({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),r=new Proxy(e.getSelectedFields(),t);return new Proxy(new _t({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:r,query:e.getSQL().inlineParams()}}),t)}},Xs=class extends vn{static{n(this,"ManualViewBuilder")}static[l]="PgManualViewBuilder";columns;constructor(e,t,r){super(e,r),this.columns=Ee(I(e,t))}existing(){return new Proxy(new _t({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new O({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new _t({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new O({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}},qn=class{static{n(this,"MaterializedViewBuilderCore")}constructor(e,t){this.name=e,this.schema=t}static[l]="PgMaterializedViewBuilderCore";config={};using(e){return this.config.using=e,this}with(e){return this.config.with=e,this}tablespace(e){return this.config.tablespace=e,this}withNoData(){return this.config.withNoData=!0,this}},eo=class extends qn{static{n(this,"MaterializedViewBuilder")}static[l]="PgMaterializedViewBuilder";as(e){typeof e=="function"&&(e=e(new fe));let t=new O({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),r=new Proxy(e.getSelectedFields(),t);return new Proxy(new At({pgConfig:{with:this.config.with,using:this.config.using,tablespace:this.config.tablespace,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:r,query:e.getSQL().inlineParams()}}),t)}},to=class extends qn{static{n(this,"ManualMaterializedViewBuilder")}static[l]="PgManualMaterializedViewBuilder";columns;constructor(e,t,r){super(e,r),this.columns=Ee(I(e,t))}existing(){return new Proxy(new At({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new O({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new At({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new O({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}},_t=class extends xe{static{n(this,"PgView")}static[l]="PgView";[Re];constructor({pgConfig:e,config:t}){super(t),e&&(this[Re]={with:e.with})}},Ue=Symbol.for("drizzle:PgMaterializedViewConfig"),At=class extends xe{static{n(this,"PgMaterializedView")}static[l]="PgMaterializedView";[Ue];constructor({pgConfig:e,config:t}){super(t),this[Ue]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}};function _i(i,e,t){return e?new Xs(i,e,t):new Zs(i,t)}n(_i,"pgViewWithSchema");function Ai(i,e,t){return e?new to(i,e,t):new eo(i,t)}n(Ai,"pgMaterializedViewWithSchema");function io(i,e){return _i(i,e,void 0)}n(io,"pgView");function ro(i,e){return Ai(i,e,void 0)}n(ro,"pgMaterializedView");function no(i){return f(i,_t)}n(no,"isPgView");function so(i){return f(i,At)}n(so,"isPgMaterializedView");function oo(i){let e=Object.values(i[b.Symbol.Columns]),t=[],r=[],s=[],a=Object.values(i[D.Symbol.InlineForeignKeys]),c=[],m=i[b.Symbol.Name],g=i[b.Symbol.Schema],h=[],d=i[D.Symbol.EnableRLS],p=i[D.Symbol.ExtraConfigBuilder];if(p!==void 0){let w=p(i[b.Symbol.ExtraConfigColumns]),u=Array.isArray(w)?w.flat(1):Object.values(w);for(let x of u)f(x,_e)?t.push(x.build(i)):f(x,wt)?r.push(x.build(i)):f(x,He)?c.push(x.build(i)):f(x,vt)?s.push(x.build(i)):f(x,Be)?a.push(x.build(i)):f(x,qi)&&h.push(x)}return{columns:e,indexes:t,foreignKeys:a,checks:r,primaryKeys:s,uniqueConstraints:c,name:m,schema:g,policies:h,enableRLS:d}}n(oo,"getTableConfig");function re(i){return f(i,D)?[i[ee]?`${i[ee]}.${i[b.Symbol.BaseName]}`:i[b.Symbol.BaseName]]:f(i,z)?i._.usedTables??[]:f(i,P)?i.usedTables??[]:[]}n(re,"extractUsedTable");function ao(i){return{...i[_],...i[Re]}}n(ao,"getViewConfig");function lo(i){return{...i[_],...i[Ue]}}n(lo,"getMaterializedViewConfig");var Ot=class extends U{static{n(this,"PgDeleteBase")}constructor(e,t,r,s){super(),this.session=t,this.dialect=r,this.config={table:e,withList:s}}static[l]="PgDelete";config;cacheConfig;where(e){return this.config.where=e,this}returning(e=this.config.table[b.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=ie(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return L.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:"delete",tables:re(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=n(e=>L.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute");getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new O({alias:te(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}};var Qt=class{static{n(this,"PgInsertBuilder")}constructor(e,t,r,s,a){this.table=e,this.session=t,this.dialect=r,this.withList=s,this.overridingSystemValue_=a}static[l]="PgInsertBuilder";authToken;setToken(e){return this.authToken=e,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(e){if(e=Array.isArray(e)?e:[e],e.length===0)throw new Error("values() must be called with at least one value");let t=e.map(r=>{let s={},a=this.table[b.Symbol.Columns];for(let c of Object.keys(r)){let m=r[c];s[c]=f(m,P)?m:new se(m,a[c])}return s});return new _n(this.table,t,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(e){let t=typeof e=="function"?e(new fe):e;if(!f(t,P)&&!Ke(this.table[H],t._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new _n(this.table,t,this.session,this.dialect,this.withList,!0)}},_n=class extends U{static{n(this,"PgInsertBase")}constructor(e,t,r,s,a,c,m){super(),this.session=r,this.dialect=s,this.config={table:e,values:t,withList:a,select:c,overridingSystemValue_:m}}static[l]="PgInsert";config;cacheConfig;returning(e=this.config.table[b.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=ie(e),this}onConflictDoNothing(e={}){if(e.target===void 0)this.config.onConflict=o`do nothing`;else{let t="";t=Array.isArray(e.target)?e.target.map(s=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(s))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target));let r=e.where?o` where ${e.where}`:void 0;this.config.onConflict=o`(${o.raw(t)})${r} do nothing`}return this}onConflictDoUpdate(e){if(e.where&&(e.targetWhere||e.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let t=e.where?o` where ${e.where}`:void 0,r=e.targetWhere?o` where ${e.targetWhere}`:void 0,s=e.setWhere?o` where ${e.setWhere}`:void 0,a=this.dialect.buildUpdateSet(this.config.table,Pt(this.config.table,e.set)),c="";return c=Array.isArray(e.target)?e.target.map(m=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(m))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target)),this.config.onConflict=o`(${o.raw(c)})${r} do update set ${a}${t}${s}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return L.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:"insert",tables:re(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=n(e=>L.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute");getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new O({alias:te(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}};var An=class extends U{static{n(this,"PgRefreshMaterializedView")}constructor(e,t,r){super(),this.session=t,this.dialect=r,this.config={view:e}}static[l]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return L.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,e,!0))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=n(e=>L.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute")};var Oi=class{static{n(this,"PgUpdateBuilder")}constructor(e,t,r,s){this.table=e,this.session=t,this.dialect=r,this.withList=s}static[l]="PgUpdateBuilder";authToken;setToken(e){return this.authToken=e,this}set(e){return new uo(this.table,Pt(this.table,e),this.session,this.dialect,this.withList).setToken(this.authToken)}},uo=class extends U{static{n(this,"PgUpdateBase")}constructor(e,t,r,s,a){super(),this.session=r,this.dialect=s,this.config={set:t,table:e,withList:a,joins:[]},this.tableName=ce(e),this.joinsNotNullableMap=typeof this.tableName=="string"?{[this.tableName]:!0}:{}}static[l]="PgUpdate";config;tableName;joinsNotNullableMap;cacheConfig;from(e){let t=e,r=ce(t);return typeof r=="string"&&(this.joinsNotNullableMap[r]=!0),this.config.from=t,this}getTableLikeFields(e){return f(e,D)?e[b.Symbol.Columns]:f(e,z)?e._.selectedFields:e[_].selectedFields}createJoin(e){return(t,r)=>{let s=ce(t);if(typeof s=="string"&&this.config.joins.some(a=>a.alias===s))throw new Error(`Alias "${s}" is already used in this query`);if(typeof r=="function"){let a=this.config.from&&!f(this.config.from,P)?this.getTableLikeFields(this.config.from):void 0;r=r(new Proxy(this.config.table[b.Symbol.Columns],new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),a&&new Proxy(a,new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:r,table:t,joinType:e,alias:s}),typeof s=="string")switch(e){case"left":{this.joinsNotNullableMap[s]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[s]=!0;break}case"inner":{this.joinsNotNullableMap[s]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[s]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(e){return this.config.where=e,this}returning(e){if(!e&&(e=Object.assign({},this.config.table[b.Symbol.Columns]),this.config.from)){let t=ce(this.config.from);if(typeof t=="string"&&this.config.from&&!f(this.config.from,P)){let r=this.getTableLikeFields(this.config.from);e[t]=r}for(let r of this.config.joins){let s=ce(r.table);if(typeof s=="string"&&!f(r.table,P)){let a=this.getTableLikeFields(r.table);e[s]=a}}}return this.config.returningFields=e,this.config.returning=ie(e),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){let t=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:"insert",tables:re(this.config.table)},this.cacheConfig);return t.joinsNotNullableMap=this.joinsNotNullableMap,t}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=n(e=>this._prepare().execute(e,this.authToken),"execute");getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new O({alias:te(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}};var Qn=class{static{n(this,"_RelationalQueryBuilder")}constructor(e,t,r,s,a,c,m){this.fullSchema=e,this.schema=t,this.tableNamesMap=r,this.table=s,this.tableConfig=a,this.dialect=c,this.session=m}static[l]="PgRelationalQueryBuilder";findMany(e){return new On(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many")}findFirst(e){return new On(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first")}},On=class extends U{static{n(this,"_PgRelationalQuery")}constructor(e,t,r,s,a,c,m,g,h){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=r,this.table=s,this.tableConfig=a,this.dialect=c,this.session=m,this.config=g,this.mode=h}static[l]="PgRelationalQuery";_prepare(e){return L.startActiveSpan("drizzle.prepareQuery",()=>{let{query:t,builtQuery:r}=this._toSQL();return this.session.prepareQuery(r,void 0,e,!0,(s,a)=>{let c=s.map(m=>qt(this.schema,this.tableConfig,m,t.selection,a));return this.mode==="first"?c[0]:c})})}prepare(e){return this._prepare(e)}_getQuery(){return this.dialect._buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let e=this._getQuery(),t=this.dialect.sqlToQuery(e.sql);return{query:e,builtQuery:t}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(e){return this.authToken=e,this}execute(){return L.startActiveSpan("drizzle.operation",()=>this._prepare().execute(void 0,this.authToken))}};var Vn=class Qi extends P{static{n(this,"PgCountBuilder")}constructor(e){super(Qi.buildEmbeddedCount(e.source,e.filters).queryChunks),this.params=e,this.mapWith(Number),this.session=e.session,this.sql=Qi.buildCount(e.source,e.filters)}sql;token;static[l]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(e,t){return o`(select count(*) from ${e}${o.raw(" where ").if(t)}${t})`}static buildCount(e,t){return o`select count(*) as count from ${e}${o.raw(" where ").if(t)}${t};`}setToken(e){return this.token=e,this}then(e,t){return Promise.resolve(this.session.count(this.sql,this.token)).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}};var Dn=class{static{n(this,"RelationalQueryBuilder")}constructor(e,t,r,s,a){this.schema=e,this.table=t,this.tableConfig=r,this.dialect=s,this.session=a}static[l]="PgRelationalQueryBuilderV2";findMany(e){return new jn(this.schema,this.table,this.tableConfig,this.dialect,this.session,e??!0,"many")}findFirst(e){return new jn(this.schema,this.table,this.tableConfig,this.dialect,this.session,e??!0,"first")}},jn=class extends U{static{n(this,"PgRelationalQuery")}constructor(e,t,r,s,a,c,m){super(),this.schema=e,this.table=t,this.tableConfig=r,this.dialect=s,this.session=a,this.config=c,this.mode=m}static[l]="PgRelationalQueryV2";_prepare(e){return L.startActiveSpan("drizzle.prepareQuery",()=>{let{query:t,builtQuery:r}=this._toSQL();return this.session.prepareRelationalQuery(r,void 0,e,(s,a)=>{let c=s.map(m=>yt(m,t.selection,a));return this.mode==="first"?c[0]:c})})}prepare(e){return this._prepare(e)}_getQuery(){return this.dialect.buildRelationalQuery({schema:this.schema,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,mode:this.mode})}getSQL(){return this._getQuery().sql}_toSQL(){let e=this._getQuery(),t=this.dialect.sqlToQuery(e.sql);return{query:e,builtQuery:t}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(e){return this.authToken=e,this}execute(){return L.startActiveSpan("drizzle.operation",()=>this._prepare().execute(void 0,this.authToken))}};var In=class extends U{static{n(this,"PgRaw")}constructor(e,t,r,s){super(),this.execute=e,this.sql=t,this.query=r,this.mapBatchResult=s}static[l]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}isResponseInArrayMode(){return!1}};var co=class{static{n(this,"PgDatabase")}constructor(e,t,r,s){if(this.dialect=e,this.session=t,this._=s?{schema:s.schema,fullSchema:s.fullSchema,tableNamesMap:s.tableNamesMap,relations:r,session:t}:{schema:void 0,fullSchema:{},tableNamesMap:{},relations:r,session:t},this._query={},this._.schema)for(let[a,c]of Object.entries(this._.schema))this._query[a]=new Qn(s.fullSchema,this._.schema,this._.tableNamesMap,s.fullSchema[a],c,e,t);this.query={};for(let[a,c]of Object.entries(r))this.query[a]=new Dn(r,r[c.name].table,c,e,t);this.$cache={invalidate:n(async a=>{},"invalidate")}}static[l]="PgDatabase";_query;query;$with=n((e,t)=>{let r=this;return{as:n(a=>(typeof a=="function"&&(a=a(new fe(r.dialect))),new Proxy(new et(a.getSQL(),t??("getSelectedFields"in a?a.getSelectedFields()??{}:{}),e,!0),new O({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))),"as")}},"$with");$count(e,t){return new Vn({source:e,filters:t,session:this.session})}$cache;with(...e){let t=this;function r(h){return new G({fields:h??void 0,session:t.session,dialect:t.dialect,withList:e})}n(r,"select");function s(h){return new G({fields:h??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}n(s,"selectDistinct");function a(h,d){return new G({fields:d??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:{on:h}})}n(a,"selectDistinctOn");function c(h){return new Oi(h,t.session,t.dialect,e)}n(c,"update");function m(h){return new Qt(h,t.session,t.dialect,e)}n(m,"insert");function g(h){return new Ot(h,t.session,t.dialect,e)}return n(g,"delete_"),{select:r,selectDistinct:s,selectDistinctOn:a,update:c,insert:m,delete:g}}select(e){return new G({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new G({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(e,t){return new G({fields:t??void 0,session:this.session,dialect:this.dialect,distinct:{on:e}})}update(e){return new Oi(e,this.session,this.dialect)}insert(e){return new Qt(e,this.session,this.dialect)}delete(e){return new Ot(e,this.session,this.dialect)}refreshMaterializedView(e){return new An(e,this.session,this.dialect)}authToken;execute(e){let t=typeof e=="string"?o.raw(e):e.getSQL(),r=this.dialect.sqlToQuery(t),s=this.session.prepareQuery(r,void 0,void 0,!1);return new In(()=>s.execute(void 0,this.authToken),t,r,a=>s.mapResult(a,!0))}transaction(e,t){return this.session.transaction(e,t)}},mo=n((i,e,t=()=>e[Math.floor(Math.random()*e.length)])=>({...i,update:n((...C)=>i.update(...C),"update"),insert:n((...C)=>i.insert(...C),"insert"),delete:n((...C)=>i.delete(...C),"$delete"),execute:n((...C)=>i.execute(...C),"execute"),transaction:n((...C)=>i.transaction(...C),"transaction"),refreshMaterializedView:n((...C)=>i.refreshMaterializedView(...C),"refreshMaterializedView"),$primary:i,select:n((...C)=>t(e).select(...C),"select"),selectDistinct:n((...C)=>t(e).selectDistinct(...C),"selectDistinct"),selectDistinctOn:n((...C)=>t(e).selectDistinctOn(...C),"selectDistinctOn"),$count:n((...C)=>t(e).$count(...C),"$count"),$with:n(C=>t(e).$with(C),"$with"),with:n((...C)=>t(e).with(...C),"_with"),get _query(){return t(e)._query},get query(){return t(e).query}}),"withReplicas");var fo=class{static{n(this,"PgRole")}constructor(e,t){this.name=e,t&&(this.createDb=t.createDb,this.createRole=t.createRole,this.inherit=t.inherit)}static[l]="PgRole";_existing;createDb;createRole;inherit;existing(){return this._existing=!0,this}};function ho(i,e){return new fo(i,e)}n(ho,"pgRole");var zn=class{static{n(this,"PgSequence")}constructor(e,t,r){this.seqName=e,this.seqOptions=t,this.schema=r}static[l]="PgSequence"};function go(i,e){return Vi(i,e,void 0)}n(go,"pgSequence");function Vi(i,e,t){return new zn(i,e,t)}n(Vi,"pgSequenceWithSchema");function po(i){return f(i,zn)}n(po,"isPgSequence");var Ln=class{static{n(this,"PgSchema")}constructor(e){this.schemaName=e}static[l]="PgSchema";table=n((e,t,r)=>$t(e,t,r,this.schemaName),"table");view=n((e,t)=>_i(e,t,this.schemaName),"view");materializedView=n((e,t)=>Ai(e,t,this.schemaName),"materializedView");enum(e,t){return Array.isArray(t)?Lt(e,[...t],this.schemaName):Ft(e,t,this.schemaName)}sequence=n((e,t)=>Vi(e,t,this.schemaName),"sequence");getSQL(){return new P([o.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}};function yo(i){return f(i,Ln)}n(yo,"isPgSchema");function bo(i){if(i==="public")throw new Error("You can't specify 'public' as schema name. Postgres is using public schema by default. If you want to use 'public' schema, just use pgTable() instead of creating a schema");return new Ln(i)}n(bo,"pgSchema");function Po(){let i=I("accounts",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),accessToken:u.text("access_token"),accessTokenExpiresAt:u.timestamp("access_token_expires_at",{withTimezone:!0}),accountId:u.text("account_id").notNull(),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),idToken:u.text("id_token"),providerId:u.text("provider_id").notNull(),password:u.text("password"),userId:u.text("user_id").notNull().references(()=>m.id,{onDelete:"cascade"}),refreshToken:u.text("refresh_token"),refreshTokenExpiresAt:u.timestamp("refresh_token_expires_at",{withTimezone:!0}),scope:u.text("scope"),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),u=>[]),e=I("api_keys",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),name:u.text("name"),enabled:u.boolean("enabled").default(!0),expiresAt:u.timestamp("expires_at",{withTimezone:!0}),key:u.text("key").notNull(),lastRefillAt:u.timestamp("last_refill_at",{withTimezone:!0}),lastRequest:u.timestamp("last_request",{withTimezone:!0}),lastUsedAt:u.timestamp("last_used_at",{withTimezone:!0}),metadata:u.text("metadata"),permissions:u.text("permissions"),prefix:u.text("prefix"),rateLimitEnabled:u.boolean("rate_limit_enabled").default(!0),rateLimitTimeWindow:u.integer("rate_limit_time_window").default(864e5),rateLimitMax:u.integer("rate_limit_max").default(10),refillInterval:u.integer("refill_interval"),refillAmount:u.integer("refill_amount"),requestCount:u.integer("request_count"),remaining:u.integer("remaining"),start:u.text("start"),userId:u.text("user_id").notNull().references(()=>m.id,{onDelete:"cascade"}),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),u=>[]),t=I("invitations",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),email:u.text("email").notNull(),expiresAt:u.timestamp("expires_at",{withTimezone:!0}).notNull(),inviterId:u.text("inviter_id").notNull().references(()=>m.id,{onDelete:"cascade"}),organizationId:u.text("organization_id").notNull().references(()=>s.id,{onDelete:"cascade"}),role:u.text("role"),status:u.text("status").default("pending").notNull(),teamId:u.text("team_id"),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),u=>[]),r=I("members",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),organizationId:u.text("organization_id").notNull().references(()=>s.id,{onDelete:"cascade"}),role:u.text("role").default("member").notNull(),userId:u.text("user_id").notNull().references(()=>m.id,{onDelete:"cascade"}),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),u=>[]),s=I("organizations",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),name:u.text("name").notNull(),slug:u.text("slug").unique(),logo:u.text("logo"),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull(),metadata:u.text("metadata")}),u=>[]),a=I("sessions",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),activeOrganizationId:u.text("active_organization_id").references(()=>s.id,{onDelete:"set null"}),activeTeamId:u.text("active_team_id"),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),expiresAt:u.timestamp("expires_at",{withTimezone:!0}).notNull(),impersonatedBy:u.text("impersonated_by").references(()=>m.id,{onDelete:"set null"}),ipAddress:u.text("ip_address"),token:u.text("token").notNull().unique(),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull(),userAgent:u.text("user_agent"),userId:u.text("user_id").notNull().references(()=>m.id,{onDelete:"cascade"})}),u=>[]),c=I("sso_providers",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),domain:u.text("domain").notNull(),issuer:u.text("issuer").notNull(),oidcConfig:u.text("oidc_config"),organizationId:u.text("organization_id").references(()=>s.id,{onDelete:"cascade"}),providerId:u.text("provider_id").notNull().unique(),samlConfig:u.text("saml_config"),userId:u.text("user_id").references(()=>m.id,{onDelete:"cascade"})}),u=>[]),m=I("users",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),banExpires:u.timestamp("ban_expires",{withTimezone:!0}),banReason:u.text("ban_reason"),banned:u.boolean("banned").default(!1),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),displayUsername:u.text("display_username"),email:u.text("email").notNull().unique(),emailVerified:u.boolean("email_verified").default(!1).notNull(),image:u.text("image"),isAnonymous:u.boolean("is_anonymous"),lastLoginMethod:u.text("last_login_method"),name:u.text("name").notNull(),phoneNumber:u.text("phone_number").unique(),phoneNumberVerified:u.boolean("phone_number_verified"),role:u.text("role"),twoFactorEnabled:u.boolean("two_factor_enabled").default(!1),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull(),username:u.text("username").unique()}),u=>[]),g=I("teams",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),name:u.text("name").notNull(),organizationId:u.text("organization_id").notNull().references(()=>s.id,{onDelete:"cascade"}),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),u=>[]),h=I("team_members",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),teamId:u.text("team_id").notNull().references(()=>g.id,{onDelete:"cascade"}),userId:u.text("user_id").notNull().references(()=>m.id,{onDelete:"cascade"}),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),u=>[]),d=I("two_factors",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),secret:u.text("secret").notNull(),backupCodes:u.text("backup_codes").notNull(),userId:u.text("user_id").notNull().references(()=>m.id,{onDelete:"cascade"})}),u=>[]),p=I("verifications",u=>({id:u.text("id").primaryKey().default(o`uuidv7()`),createdAt:u.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull(),expiresAt:u.timestamp("expires_at",{withTimezone:!0}).notNull(),identifier:u.text("identifier").notNull(),updatedAt:u.timestamp("updated_at",{withTimezone:!0}).default(o`NOW()`).notNull(),value:u.text("value").notNull()}),u=>[]);return{tables:{accounts:i,apiKeys:e,invitations:t,members:r,organizations:s,sessions:a,ssoProviders:c,teams:g,teamMembers:h,twoFactors:d,users:m,verifications:p},relations:n(u=>({users:{sessions:u.many.sessions({from:u.users.id,to:u.sessions.userId}),accounts:u.many.accounts({from:u.users.id,to:u.accounts.userId}),apiKeys:u.many.apiKeys({from:u.users.id,to:u.apiKeys.userId}),memberships:u.many.members({from:u.users.id,to:u.members.userId}),invitations:u.many.invitations({from:u.users.id,to:u.invitations.inviterId}),ssoProvider:u.one.ssoProviders({from:u.users.id,to:u.ssoProviders.userId}),twoFactor:u.one.twoFactors({from:u.users.id,to:u.twoFactors.userId})},sessions:{user:u.one.users({from:u.sessions.userId,to:u.users.id})},accounts:{user:u.one.users({from:u.accounts.userId,to:u.users.id})},apiKeys:{user:u.one.users({from:u.apiKeys.userId,to:u.users.id})},organizations:{members:u.many.members({from:u.organizations.id,to:u.members.organizationId}),invitations:u.many.invitations({from:u.organizations.id,to:u.invitations.organizationId}),teams:u.many.teams({from:u.organizations.id,to:u.teams.organizationId})},members:{organization:u.one.organizations({from:u.members.organizationId,to:u.organizations.id}),user:u.one.users({from:u.members.userId,to:u.users.id})},invitations:{organization:u.one.organizations({from:u.invitations.organizationId,to:u.organizations.id}),inviter:u.one.users({from:u.invitations.inviterId,to:u.users.id})},teams:{organization:u.one.organizations({from:u.teams.organizationId,to:u.organizations.id})},ssoProviders:{user:u.one.users({from:u.ssoProviders.userId,to:u.users.id})},verifications:{},twoFactors:{user:u.one.users({from:u.twoFactors.userId,to:u.users.id})}}),"relations")}}n(Po,"defineAuthSchema");function Fn(){let i=I("storage_blobs",s=>({id:s.text("id").primaryKey().default(o`uuidv7()`),key:s.text("key").notNull().unique(),filename:s.text("filename").notNull(),contentType:s.text("content_type"),metadata:s.jsonb("metadata"),serviceName:s.text("service_name").notNull().default("private"),byteSize:s.bigint("byte_size",{mode:"number"}).notNull(),checksum:s.text("checksum"),createdAt:s.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),s=>[Ce("storage_blobs_key_idx").on(s.key),Ce("storage_blobs_service_name_idx").on(s.serviceName)]),e=I("storage_attachments",s=>({id:s.text("id").primaryKey().default(o`uuidv7()`),name:s.text("name").notNull(),recordType:s.text("record_type").notNull(),recordId:s.text("record_id").notNull(),blobId:s.text("blob_id").notNull().references(()=>i.id,{onDelete:"cascade"}),createdAt:s.timestamp("created_at",{withTimezone:!0}).notNull().default(o`NOW()`)}),s=>[Ce("storage_attachments_record_idx").on(s.recordType,s.recordId),Ce("storage_attachments_blob_id_idx").on(s.blobId)]),t=I("storage_variant_records",s=>({id:s.text("id").primaryKey().default(o`uuidv7()`),blobId:s.text("blob_id").notNull().references(()=>i.id,{onDelete:"cascade"}),variationDigest:s.text("variation_digest").notNull(),createdAt:s.timestamp("created_at",{withTimezone:!0}).default(o`NOW()`).notNull()}),s=>[Ce("storage_variant_records_blob_id_idx").on(s.blobId),Dt("storage_variant_records_unique").on(s.blobId,s.variationDigest)]);return{tables:{storageBlobs:i,storageAttachments:e,storageVariantRecords:t},relations:n(s=>({storageBlobs:{attachments:s.many.storageAttachments({from:s.storageBlobs.id,to:s.storageAttachments.blobId}),variantRecords:s.many.storageVariantRecords({from:s.storageBlobs.id,to:s.storageVariantRecords.blobId})},storageAttachments:{blob:s.one.storageBlobs({from:s.storageAttachments.blobId,to:s.storageBlobs.id})},storageVariantRecords:{blob:s.one.storageBlobs({from:s.storageVariantRecords.blobId,to:s.storageBlobs.id})}}),"relations")}}n(Fn,"defineStorageSchema");var Yb=Fn();export{ar as Check,wt as CheckBuilder,Ii as ForeignKey,Be as ForeignKeyBuilder,un as Index,_e as IndexBuilder,vi as IndexBuilderOn,Oe as IndexedColumn,Ze as PgArray,Ki as PgArrayBuilder,ur as PgBigInt53,lr as PgBigInt53Builder,mr as PgBigInt64,cr as PgBigInt64Builder,fr as PgBigSerial53,dr as PgBigSerial53Builder,gr as PgBigSerial64,hr as PgBigSerial64Builder,tn as PgBinaryVector,en as PgBinaryVectorBuilder,yr as PgBoolean,pr as PgBooleanBuilder,Pr as PgBytea,br as PgByteaBuilder,Sr as PgChar,wr as PgCharBuilder,xr as PgCidr,Cr as PgCidrBuilder,y as PgColumn,S as PgColumnBuilder,Tr as PgCustomColumn,Br as PgCustomColumnBuilder,co as PgDatabase,St as PgDate,Nr as PgDateBuilder,Ct as PgDateString,$r as PgDateStringBuilder,Ot as PgDeleteBase,Me as PgDialect,Ur as PgGeometry,Mr as PgGeometryBuilder,Wr as PgGeometryObject,Jr as PgGeometryObjectBuilder,nn as PgHalfVector,rn as PgHalfVectorBuilder,Qt as PgInsertBuilder,qr as PgInteger,vr as PgIntegerBuilder,xt as PgJson,_r as PgJsonBuilder,Bt as PgJsonb,Ar as PgJsonbBuilder,Vr as PgLineABC,Qr as PgLineABCBuilder,Or as PgLineBuilder,Dr as PgMacaddr,zr as PgMacaddr8,Ir as PgMacaddr8Builder,jr as PgMacaddrBuilder,Ue as PgMaterializedViewConfig,Tt as PgNumeric,Rr as PgNumericBigInt,Er as PgNumericBigIntBuilder,Lr as PgNumericBuilder,Kr as PgNumericNumber,Fr as PgNumericNumberBuilder,Gr as PgReal,Hr as PgRealBuilder,D as PgTable,Zr as PgText,Yr as PgTextBuilder,cn as PrimaryKey,fe as QueryBuilder,Li as UniqueConstraint,He as UniqueConstraintBuilder,zi as UniqueOnConstraintBuilder,ms as alias,Jt as bigint,Wt as bigserial,Bi as bit,Ht as boolean,fs as bytea,Gt as char,ds as check,Yt as cidr,Zt as customType,Xt as date,Ss as decimal,Po as defineAuthSchema,us as defineRelations,cs as defineRelationsPart,Fn as defineStorageSchema,ei as doublePrecision,Nn as except,$n as exceptAll,re as extractUsedTable,Rn as foreignKey,mi as geometry,lo as getMaterializedViewConfig,oo as getTableConfig,ao as getViewConfig,Ti as halfvec,Ce as index,ti as inet,ii as integer,Bn as intersect,Tn as intersectAll,ri as interval,zt as isPgEnum,so as isPgMaterializedView,yo as isPgSchema,po as isPgSequence,no as isPgView,ni as json,si as jsonb,oi as line,ai as macaddr,li as macaddr8,Ye as makePgArray,Nt as numeric,Ge as parsePgArray,It as parsePgNestedArray,Hn as pgEnum,ro as pgMaterializedView,Ms as pgPolicy,ho as pgRole,bo as pgSchema,go as pgSequence,I as pgTable,Rs as pgTableCreator,io as pgView,ui as point,Us as primaryKey,di as real,fi as serial,hi as smallint,gi as smallserial,Ni as sparsevec,o as sql,pi as text,bi as time,Si as timestamp,Cn as union,xn as unionAll,Dt as unique,ks as uniqueIndex,We as uniqueKeyName,xi as uuid,mo as withReplicas};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appos",
3
- "version": "0.1.16-0",
3
+ "version": "0.1.18-0",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "release": "release-it",