Socket
Socket
Sign inDemoInstall

@kikko-land/boono

Package Overview
Dependencies
1
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.1 to 0.3.0

12

CHANGELOG.md
# @kikko-land/query-builder
## 0.3.0
### Minor Changes
- 72cefb8: Bump
### Patch Changes
- Updated dependencies [72cefb8]
- Updated dependencies [c542319]
- @kikko-land/boono-sql@0.4.0
## 0.2.1

@@ -4,0 +16,0 @@

2

dist/index.es.js

@@ -345,3 +345,3 @@ import { sql as r, isTable as St } from "@kikko-land/boono-sql";

(e) => r`${r.liter(e.table)}(${r.join(
e.columns.map(r.liter)
e.columns.map((i) => r.liter(i))
)}) AS (${e.select})`

@@ -348,0 +348,0 @@ )

@@ -1,2 +0,2 @@

(function(s,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("@kikko-land/boono-sql")):typeof define=="function"&&define.amd?define(["exports","@kikko-land/boono-sql"],i):(s=typeof globalThis<"u"?globalThis:s||self,i(s.core={},s.boonoSql))})(this,function(s,i){"use strict";var u=(t=>(t.Binary="Binary",t.Unary="Unary",t.Alias="Alias",t.Compound="Compound",t.Select="Select",t.Update="Update",t.Delete="Delete",t.Insert="Insert",t.Values="Values",t.OrderTerm="OrderTerm",t.OrdersBoxTerm="OrdersBoxTerm",t.LimitOffsetTerm="LimitOffsetTerm",t.RawSql="RawSql",t.CompoundOperator="CompoundOperator",t.CTE="CTE",t.Join="Join",t.Returning="Returning",t.WindowFn="WindowFn",t.WindowBody="WindowBody",t))(u||{});const h=t=>t!==null&&typeof t=="object"&&"type"in t&&"toSql"in t&&Object.values(u).includes(t.type),o=t=>({type:u.RawSql,toSql(){return i.sql`${t}`}}),l=t=>h(t)?t:(i.sql.isSql(t),o(t)),z=t=>t!==null&&typeof t=="object"&&"type"in t&&t.type===u.Binary,c=(t,e,r)=>({type:u.Binary,_left:l(e),_right:Array.isArray(r)?r.map(l):l(r),_operator:t,toSql(){return i.sql`${f(this._left)} ${i.sql.raw(this._operator)} ${Array.isArray(this._right)?i.sql`(${i.sql.join(this._right)})`:f(this._right)}`}}),Ft=t=>e=>Z(e,t),Z=(t,e)=>c("<>",t,e),At=t=>e=>R(e,t),R=(t,e)=>c("=",t,e),Wt=t=>e=>Q(e,t),Q=(t,e)=>c(">",t,e),Ct=t=>e=>S(e,t),S=(t,e)=>c(">=",t,e),Ut=t=>e=>x(e,t),x=(t,e)=>c("<",t,e),Mt=t=>e=>b(e,t),b=(t,e)=>c("<=",t,e),tt=(t,e)=>c("LIKE",t,e),Dt=t=>e=>tt(e,t),et=(t,e)=>c("NOT LIKE",t,e),Ht=t=>e=>et(e,t),it=(t,...e)=>c("IN",t,e),st=(t,...e)=>c("NOT IN",t,e),vt=(...t)=>e=>it(e,...t),Jt=(...t)=>e=>st(e,...t),m=t=>t.flatMap(e=>h(e)||i.sql.isSql(e)?l(e):Object.entries(e).map(([r,n])=>l(typeof n=="function"?n(i.sql.liter(r)):R(i.sql.liter(r),n)))).filter(e=>!e.toSql().isEmpty),rt=(t,...e)=>{const r=m(e);if(r.length<=1)throw new Error("Must at least two arguments present");let n=c(t,r[0],r[1]);for(const a of r.slice(2))n=c(t,n,a);return n},nt=(...t)=>rt("AND",...t),ut=(...t)=>rt("OR",...t),f=t=>z(t)&&t._operator==="OR"||h(t)&&(t.type===u.Select||t.type===u.Values)?i.sql`(${t})`:t,p=(t,e)=>({type:u.Alias,_left:l(t),_right:e,toSql(){return i.sql`${f(this._left)} AS ${i.sql.liter(this._right)}`}}),_=(t,e,r)=>({type:u.Join,_operator:t,_toJoin:(()=>{if(typeof e=="string")return i.sql.table(e);if(i.isTable(e))return e;if(h(e)||i.sql.isSql(e))return l(e);{const n=Object.entries(e);if(n.length===0)throw new Error("No alias select present for join");if(n.length>1)throw new Error("Only one select could be specified at join");return{toSelect:l(n[0][1]),alias:n[0][0]}}})(),_on:r,toSql(){const n=(()=>this._operator?"joinType"in this._operator?this._operator.joinType==="CROSS"?[i.sql`CROSS JOIN`]:[this._operator.isNatural?i.sql`NATURAL`:void 0,i.sql.raw(this._operator.joinType),"isOuter"in this._operator&&this._operator.isOuter?i.sql`OUTER`:void 0,i.sql`JOIN`]:[this._operator.isNatural?i.sql`NATURAL`:void 0,i.sql`JOIN`]:[i.sql`JOIN`])().flatMap(a=>a===void 0?[]:a);return i.sql.join([...n,"toSelect"in this._toJoin?p(this._toJoin.toSelect,this._toJoin.alias):f(this._toJoin),...this._on?[i.sql`ON`,...m([this._on])]:[]]," ")}});function g(t,e){return{...this,_joinValues:[...this._joinValues,_(void 0,t,e)]}}function E(t,e){return{...this,_joinValues:[...this._joinValues,_({joinType:"CROSS"},t,e)]}}function T(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0},t,e)]}}function q(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,isOuter:!1,joinType:"LEFT"},t,e)]}}function $(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,isOuter:!1,joinType:"RIGHT"},t,e)]}}function L(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,isOuter:!1,joinType:"FULL"},t,e)]}}function B(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,isOuter:!0,joinType:"LEFT"},t,e)]}}function F(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,isOuter:!0,joinType:"RIGHT"},t,e)]}}function A(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,isOuter:!0,joinType:"FULL"},t,e)]}}function W(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,joinType:"INNER"},t,e)]}}function C(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,joinType:"LEFT"},t,e)]}}function U(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,joinType:"RIGHT"},t,e)]}}function M(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,joinType:"FULL"},t,e)]}}function D(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,isOuter:!0,joinType:"LEFT"},t,e)]}}function H(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,isOuter:!0,joinType:"RIGHT"},t,e)]}}function v(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,isOuter:!0,joinType:"FULL"},t,e)]}}function J(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,joinType:"INNER"},t),e]}}function P(){return{...this,_joinValues:[]}}const lt=(t,e,r)=>({type:u.OrderTerm,__state:{orderType:t,val:typeof e=="string"?e:l(e),nullOrder:r},toSql(){return i.sql.join([typeof this.__state.val=="string"?i.sql.liter(this.__state.val):this.__state.val,i.sql.raw(this.__state.orderType),r?i.sql.raw(r):i.sql.empty]," ")}}),at=(...t)=>({__state:{values:t},type:u.OrdersBoxTerm,toSql(){return this.__state.values.length>0?i.sql.join([i.sql`ORDER BY`,i.sql.join(this.__state.values)]," "):i.sql.empty}}),Pt=(t,e)=>lt("DESC",t,e),Gt=(t,e)=>lt("ASC",t,e);function _t(...t){return{...this,__state:{...this.__state,ordersBox:{...this.__state.ordersBox,__state:{...this.__state.ordersBox.__state,values:[...this.__state.ordersBox.__state.values,...t]}}}}}function ht(){return{...this,__state:{...this.__state,ordersBox:{...this.__state.ordersBox,__state:{...this.__state.ordersBox.__state,values:[]}}}}}const kt=t=>({type:u.CTE,_recursive:t.recursive,_values:[{table:t.table,columns:t.columns,select:t.select}],toSql(){return i.sql.join([i.sql`WITH`,this._recursive?i.sql`RECURSIVE`:null,i.sql.join(this._values.map(e=>i.sql`${i.sql.liter(e.table)}(${i.sql.join(e.columns.map(i.sql.liter))}) AS (${e.select})`))].filter(e=>e)," ")}}),ct=(t,e)=>{var r,n;if(((r=t._cteValue)==null?void 0:r._recursive)===!0&&e.recursive===!1)throw new Error("WITH is already recursive");if(((n=t._cteValue)==null?void 0:n._recursive)===!1&&e.recursive===!0)throw new Error("WITH is not recursive");return{...t,_cteValue:t._cteValue?{...t._cteValue,values:[...t._cteValue._values,{}]}:kt({table:e.table,columns:e.columns,recursive:e.recursive,select:i.sql.isSql(e.select)?o(e.select):e.select})}};function O(t){return ct(this,{...t,recursive:!1})}function y(t){return ct(this,{...t,recursive:!0})}function w(){return{...this,cteValue:void 0}}const N=(...t)=>({type:u.Returning,_values:t.flatMap(e=>i.sql.isSql(e)||h(e)?{_toSelect:l(e)}:typeof e=="string"?{_toSelect:e}:Object.entries(e).map(([r,n])=>typeof n=="string"?{_toSelect:r,_alias:n}:{_toSelect:l(n),_alias:r})),toSql(){return this._values.length>0?i.sql`RETURNING ${i.sql.join(this._values.map(e=>e._toSelect==="*"?i.sql`*`:e._alias?p(e._toSelect,e._alias):e._toSelect))}`:i.sql.empty}});function G(...t){return{...this,_returningValue:{...this._returningValue,_values:[...this._returningValue._values,...N(...t)._values]}}}function k(){return{...this,_returningValue:N()}}const ft=function(t,e,r){const n=t._whereValue?[t._whereValue,...m(r)]:m(r);return n.length>1?{...t,_whereValue:e==="and"?nt(...n):ut(...n)}:{...t,_whereValue:n[0]}};function K(...t){return ft(this,"and",t)}function Y(...t){return ft(this,"or",t)}const Kt=t=>({type:u.Delete,_deleteTable:typeof t=="string"?i.sql.table(t):t,_returningValue:N(),with:O,withoutWith:w,withRecursive:y,where:K,orWhere:Y,returning:G,withoutReturning:k,toSql(){return i.sql.join([this._cteValue?this._cteValue:null,i.sql`DELETE FROM ${this._deleteTable}`,this._whereValue?i.sql`WHERE ${this._whereValue}`:null,this._returningValue].filter(e=>e)," ")}});function ot(){return{...this,_orReplaceValue:"ABORT"}}function Vt(){return{...this,_orReplaceValue:"FAIL"}}function jt(){return{...this,_orReplaceValue:"IGNORE"}}function dt(){return{...this,_orReplaceValue:"REPLACE"}}function mt(){return{...this,_orReplaceValue:"ROLLBACK"}}const pt=()=>({type:u.LimitOffsetTerm,toSql(){return this._limitValue?i.sql.join([this._limitValue?i.sql`LIMIT ${f(this._limitValue)}`:null,this._offsetValue&&this._limitValue?i.sql`OFFSET ${f(this._offsetValue)}`:null].filter(t=>t)," "):i.sql.empty}});function Ot(t){return{...this,_limitOffsetValue:{...this._limitOffsetValue,_limitValue:l(t)}}}function yt(){return{...this,_limitOffsetValue:{...this._limitOffsetValue,_limitValue:void 0}}}function wt(t){return{...this,_limitOffsetValue:{...this._limitOffsetValue,_offsetValue:l(t)}}}function Nt(){return{...this,_limitOffsetValue:{...this._limitOffsetValue,_offsetValue:void 0}}}const Yt=(...t)=>({type:u.Values,__state:{ordersBox:at(),values:t},_compoundValues:[],_limitOffsetValue:pt(),orderBy:_t,withoutOrder:ht,union:It,unionAll:Rt,intersect:gt,except:Et,withoutCompound:Tt,limit:Ot,withoutLimit:yt,offset:wt,withoutOffset:Nt,withoutWith:w,withRecursive:y,with:O,toSql(){return i.sql.join([this._cteValue?this._cteValue:null,i.sql`VALUES ${i.sql.join(this.__state.values.map(e=>i.sql`(${i.sql.join(e)})`))}`,this._compoundValues.length>0?i.sql.join(this._compoundValues," "):null,this.__state.ordersBox,this._limitOffsetValue.toSql().isEmpty?null:this._limitOffsetValue].filter(e=>e)," ")}}),V=t=>t!==null&&typeof t=="object"&&t.type===u.Values,I=(t,e,r)=>({...t,_compoundValues:[...t._compoundValues,...r.map(n=>{const a=l(n);return{type:u.OrderTerm,_compoundType:e,_value:j(a)||V(a)?a.withoutWith().withoutLimit().withoutOrder().withoutOffset():a,toSql(){return i.sql`${i.sql.raw(this._compoundType)} ${this._value}`}}})]});function It(...t){return I(this,"UNION",t)}function Rt(...t){return I(this,"UNION ALL",t)}function gt(...t){return I(this,"INTERSECT",t)}function Et(...t){return I(this,"EXCEPT",t)}function Tt(){return{...this,_compoundValues:[]}}function qt(...t){return{...this,_fromValues:[...this._fromValues,...t.map(e=>typeof e=="string"?i.sql.table(e):h(e)||i.sql.isSql(e)||i.sql.isTable(e)?l(f(e)):Object.entries(e).map(([r,n])=>({select:typeof n=="string"?i.sql.table(n):l(f(n)),alias:r}))).flat()]}}const $t=t=>t._fromValues.length>0?i.sql.join(t._fromValues.map(e=>h(e)||i.sql.isTable(e)?e:p(e.select,e.alias))):null,j=t=>t!==null&&typeof t=="object"&&t.type===u.Select,Lt=t=>t==null||t.length===0?[{toSelect:"*"}]:t.flatMap((e,r)=>e==="*"&&r===0?{toSelect:"*"}:typeof e=="string"?{toSelect:e}:h(e)||i.sql.isSql(e)?{toSelect:l(e)}:Object.entries(e).map(([n,a])=>typeof a=="string"?{toSelect:n,alias:a}:{toSelect:l(a),alias:n})),Xt=(...t)=>({type:u.Select,__state:{ordersBox:at(),definedWindowFunctions:[]},_fromValues:[],_selectValues:Lt(t),_distinctValue:!1,_groupByValues:[],_compoundValues:[],_joinValues:[],_limitOffsetValue:pt(),select(...e){return{...this,_selectValues:[...this._selectValues,...Lt(e)]}},distinct(e){return{...this,_distinctValue:e}},from:qt,where:K,orWhere:Y,limit:Ot,offset:wt,withoutLimit:yt,withoutOffset:Nt,groupBy(...e){return{...this,_groupByValues:e.map(r=>typeof r=="string"?r:l(r))}},having(e){return{...this,_havingValue:l(e)}},orderBy:_t,withoutOrder:ht,defineWindow(e,r){return{...this,__state:{...this.__state,definedWindowFunctions:[...this.__state.definedWindowFunctions,{name:e,windowBody:r}]}}},withoutDefinedWindows(){return{...this,__state:{...this.__state,definedWindowFunctions:[]}}},with:O,withoutWith:w,withRecursive:y,union:It,unionAll:Rt,intersect:gt,except:Et,withoutCompound:Tt,withoutJoin:P,join:g,joinCross:E,joinNatural:T,joinLeft:C,joinLeftOuter:D,joinLeftNatural:q,joinLeftNaturalOuter:B,joinRight:U,joinRightOuter:H,joinRightNatural:$,joinRightNaturalOuter:F,joinFull:M,joinFullOuter:v,joinFullNatural:L,joinFullNaturalOuter:A,joinInner:J,joinInnerNatural:W,toSql(){return i.sql.join([this._cteValue?this._cteValue:null,i.sql`SELECT`,this._distinctValue?i.sql`DISTINCT`:null,i.sql.join(this._selectValues.map(e=>e.toSelect==="*"?i.sql`*`:typeof e.toSelect=="string"?i.sql.liter(e.toSelect):e.alias?p(e.toSelect,e.alias):e.toSelect)),this._fromValues.length>0||this._joinValues.length>0?i.sql`FROM`:null,$t(this),this._joinValues.length>0?i.sql.join(this._joinValues.map(e=>e.toSql())," "):null,this._whereValue?i.sql`WHERE ${this._whereValue}`:null,this._groupByValues.length>0?i.sql`GROUP BY ${i.sql.join(this._groupByValues.map(e=>typeof e=="string"?i.sql.liter(e):e))}`:null,this._groupByValues.length>0&&this._havingValue?i.sql`HAVING ${this._havingValue}`:null,...this.__state.definedWindowFunctions.length>0?[i.sql`WINDOW`,i.sql.join(this.__state.definedWindowFunctions.map(({name:e,windowBody:r})=>i.sql`${i.sql.strip(e)} AS (${r})`),", ")]:[],this._compoundValues.length>0?i.sql.join(this._compoundValues," "):null,this.__state.ordersBox,this._limitOffsetValue.toSql().isEmpty?null:this._limitOffsetValue].filter(e=>e)," ")}}),X=t=>(Array.isArray(t)?t:[t]).map(e=>Object.entries(e).map(([r,n])=>({columnName:r,value:i.sql.isSql(n)&&!h(n)?o(n):n}))),zt=(t,e)=>{if(t._toInsertValue&&(j(t._toInsertValue)||V(t._toInsertValue)))throw new Error("Insert value is already state. If you want to change insert values user resetInsert() before.");return j(e)||V(e)?{...t,_toInsertValue:e}:{...t,_toInsertValue:Array.isArray(t._toInsertValue)?[...t._toInsertValue,...X(e)]:X(e)}},Zt=t=>({type:u.Insert,_returningValue:N(),_columnNames:[],_toInsertValue:j(t)||V(t)?t:X(t),with:O,withRecursive:y,withoutWith:w,orAbort:ot,orFail:Vt,orIgnore:jt,orReplace:dt,orRollback:mt,returning:G,withoutReturning:k,setColumnNames(e){return{...this,_columnNames:e}},withoutColumnNames(){return{...this,_columnNames:[]}},insert(e){return zt(this,e)},withoutInsert(){return{...this,_toInsertValue:void 0}},into(e){return{...this,_intoTable:typeof e=="string"?i.sql.table(e):e}},withoutInto(){return{...this,_intoTable:void 0}},toSql(){if(!this._toInsertValue)throw new Error("Insert values are not set");if(!this._intoTable)throw new Error("Into table is not set");const e=this._columnNames.length>0?this._columnNames:Array.isArray(this._toInsertValue)?this._toInsertValue[0].map(({columnName:r})=>r):[];return i.sql.join([this._cteValue?this._cteValue:null,i.sql`INSERT`,this._orReplaceValue?i.sql`OR ${i.sql.raw(this._orReplaceValue)}`:null,i.sql`INTO`,this._intoTable,e.length>0?i.sql`(${i.sql.join(e.map(r=>i.sql.liter(r)))})`:null,V(this._toInsertValue)||j(this._toInsertValue)?this._toInsertValue:i.sql`VALUES ${i.sql.join(this._toInsertValue.map(r=>{const n=Array(r.length);for(const{columnName:a,value:d}of r){const Bt=e.indexOf(a);if(Bt===-1)throw new Error(`Column ${a} is not present at columns set: ${e}. Make sure that you set all columns with setColumnNames() or each insert objects have the same keys present. Tried to insert: ${JSON.stringify(r)}`);n[Bt]=d}return i.sql`(${i.sql.join(n)})`}))}`,this._returningValue].filter(r=>r)," ")}}),Qt=t=>({type:u.Update,_updateTable:typeof t=="string"?i.sql.table(t):t,_setValues:[],_fromValues:[],_joinValues:[],_returningValue:N(),with:O,withoutWith:w,withRecursive:y,from:qt,where:K,orWhere:Y,returning:G,withoutReturning:k,orAbort:ot,orFail:Vt,orIgnore:jt,orReplace:dt,orRollback:mt,withoutJoin:P,join:g,joinCross:E,joinNatural:T,joinLeft:C,joinLeftOuter:D,joinLeftNatural:q,joinLeftNaturalOuter:B,joinRight:U,joinRightOuter:H,joinRightNatural:$,joinRightNaturalOuter:F,joinFull:M,joinFullOuter:v,joinFullNatural:L,joinFullNaturalOuter:A,joinInner:J,joinInnerNatural:W,set(...e){const r=e.flatMap(n=>h(n)?n:i.sql.isSql(n)?o(n):Object.entries(n).map(([a,d])=>({columnName:a,toSet:!h(d)&&i.sql.isSql(d)?o(d):d})));return{...this,_setValues:[...this._setValues,...r]}},toSql(){return i.sql.join([this._cteValue?this._cteValue:null,i.sql`UPDATE`,this._orReplaceValue?i.sql`OR ${i.sql.raw(this._orReplaceValue)}`:null,this._updateTable,i.sql`SET`,i.sql.join(this._setValues.map(e=>h(e)?e:i.sql`${i.sql.liter(e.columnName)} = ${f(e.toSet)}`)),this._fromValues.length>0||this._joinValues.length>0?i.sql`FROM`:null,$t(this),this._joinValues.length>0?i.sql.join(this._joinValues.map(e=>e.toSql())," "):null,this._whereValue?i.sql`WHERE ${this._whereValue}`:null,this._returningValue].filter(e=>e)," ")}}),St=t=>({_operator:"NOT",type:u.Unary,_expr:t,toSql(){return i.sql`NOT (${this._expr})`}});s.In=it,s.alias=p,s.and=nt,s.asc=Gt,s.buildRawSql=o,s.conditionValuesToToken=m,s.deleteFrom=Kt,s.desc=Pt,s.eq=R,s.eq$=At,s.gt=Q,s.gt$=Wt,s.gtEq=S,s.gtEq$=Ct,s.in$=vt,s.insert=Zt,s.isBinaryOperator=z,s.isSelect=j,s.isValues=V,s.join=g,s.joinCross=E,s.joinFull=M,s.joinFullNatural=L,s.joinFullNaturalOuter=A,s.joinFullOuter=v,s.joinInner=J,s.joinInnerNatural=W,s.joinLeft=C,s.joinLeftNatural=q,s.joinLeftNaturalOuter=B,s.joinLeftOuter=D,s.joinNatural=T,s.joinRight=U,s.joinRightNatural=$,s.joinRightNaturalOuter=F,s.joinRightOuter=H,s.like=tt,s.like$=Dt,s.lt=x,s.lt$=Ut,s.ltEq=b,s.ltEq$=Mt,s.not=St,s.notEq=Z,s.notEq$=Ft,s.notIn=st,s.notIn$=Jt,s.notLike=et,s.notLike$=Ht,s.or=ut,s.select=Xt,s.toToken=l,s.update=Qt,s.values=Yt,s.withoutJoin=P,s.wrapParentheses=f;for(const t in i)t!=="default"&&!s.hasOwnProperty(t)&&Object.defineProperty(s,t,{enumerable:!0,get:()=>i[t]});Object.defineProperties(s,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
(function(s,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("@kikko-land/boono-sql")):typeof define=="function"&&define.amd?define(["exports","@kikko-land/boono-sql"],i):(s=typeof globalThis<"u"?globalThis:s||self,i(s.core={},s.boonoSql))})(this,function(s,i){"use strict";var u=(t=>(t.Binary="Binary",t.Unary="Unary",t.Alias="Alias",t.Compound="Compound",t.Select="Select",t.Update="Update",t.Delete="Delete",t.Insert="Insert",t.Values="Values",t.OrderTerm="OrderTerm",t.OrdersBoxTerm="OrdersBoxTerm",t.LimitOffsetTerm="LimitOffsetTerm",t.RawSql="RawSql",t.CompoundOperator="CompoundOperator",t.CTE="CTE",t.Join="Join",t.Returning="Returning",t.WindowFn="WindowFn",t.WindowBody="WindowBody",t))(u||{});const h=t=>t!==null&&typeof t=="object"&&"type"in t&&"toSql"in t&&Object.values(u).includes(t.type),o=t=>({type:u.RawSql,toSql(){return i.sql`${t}`}}),l=t=>h(t)?t:(i.sql.isSql(t),o(t)),z=t=>t!==null&&typeof t=="object"&&"type"in t&&t.type===u.Binary,c=(t,e,r)=>({type:u.Binary,_left:l(e),_right:Array.isArray(r)?r.map(l):l(r),_operator:t,toSql(){return i.sql`${f(this._left)} ${i.sql.raw(this._operator)} ${Array.isArray(this._right)?i.sql`(${i.sql.join(this._right)})`:f(this._right)}`}}),Ft=t=>e=>Z(e,t),Z=(t,e)=>c("<>",t,e),At=t=>e=>R(e,t),R=(t,e)=>c("=",t,e),Wt=t=>e=>Q(e,t),Q=(t,e)=>c(">",t,e),Ct=t=>e=>S(e,t),S=(t,e)=>c(">=",t,e),Ut=t=>e=>x(e,t),x=(t,e)=>c("<",t,e),Mt=t=>e=>b(e,t),b=(t,e)=>c("<=",t,e),tt=(t,e)=>c("LIKE",t,e),Dt=t=>e=>tt(e,t),et=(t,e)=>c("NOT LIKE",t,e),Ht=t=>e=>et(e,t),it=(t,...e)=>c("IN",t,e),st=(t,...e)=>c("NOT IN",t,e),vt=(...t)=>e=>it(e,...t),Jt=(...t)=>e=>st(e,...t),m=t=>t.flatMap(e=>h(e)||i.sql.isSql(e)?l(e):Object.entries(e).map(([r,n])=>l(typeof n=="function"?n(i.sql.liter(r)):R(i.sql.liter(r),n)))).filter(e=>!e.toSql().isEmpty),rt=(t,...e)=>{const r=m(e);if(r.length<=1)throw new Error("Must at least two arguments present");let n=c(t,r[0],r[1]);for(const a of r.slice(2))n=c(t,n,a);return n},nt=(...t)=>rt("AND",...t),ut=(...t)=>rt("OR",...t),f=t=>z(t)&&t._operator==="OR"||h(t)&&(t.type===u.Select||t.type===u.Values)?i.sql`(${t})`:t,p=(t,e)=>({type:u.Alias,_left:l(t),_right:e,toSql(){return i.sql`${f(this._left)} AS ${i.sql.liter(this._right)}`}}),_=(t,e,r)=>({type:u.Join,_operator:t,_toJoin:(()=>{if(typeof e=="string")return i.sql.table(e);if(i.isTable(e))return e;if(h(e)||i.sql.isSql(e))return l(e);{const n=Object.entries(e);if(n.length===0)throw new Error("No alias select present for join");if(n.length>1)throw new Error("Only one select could be specified at join");return{toSelect:l(n[0][1]),alias:n[0][0]}}})(),_on:r,toSql(){const n=(()=>this._operator?"joinType"in this._operator?this._operator.joinType==="CROSS"?[i.sql`CROSS JOIN`]:[this._operator.isNatural?i.sql`NATURAL`:void 0,i.sql.raw(this._operator.joinType),"isOuter"in this._operator&&this._operator.isOuter?i.sql`OUTER`:void 0,i.sql`JOIN`]:[this._operator.isNatural?i.sql`NATURAL`:void 0,i.sql`JOIN`]:[i.sql`JOIN`])().flatMap(a=>a===void 0?[]:a);return i.sql.join([...n,"toSelect"in this._toJoin?p(this._toJoin.toSelect,this._toJoin.alias):f(this._toJoin),...this._on?[i.sql`ON`,...m([this._on])]:[]]," ")}});function g(t,e){return{...this,_joinValues:[...this._joinValues,_(void 0,t,e)]}}function E(t,e){return{...this,_joinValues:[...this._joinValues,_({joinType:"CROSS"},t,e)]}}function T(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0},t,e)]}}function q(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,isOuter:!1,joinType:"LEFT"},t,e)]}}function $(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,isOuter:!1,joinType:"RIGHT"},t,e)]}}function L(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,isOuter:!1,joinType:"FULL"},t,e)]}}function B(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,isOuter:!0,joinType:"LEFT"},t,e)]}}function F(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,isOuter:!0,joinType:"RIGHT"},t,e)]}}function A(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,isOuter:!0,joinType:"FULL"},t,e)]}}function W(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!0,joinType:"INNER"},t,e)]}}function C(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,joinType:"LEFT"},t,e)]}}function U(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,joinType:"RIGHT"},t,e)]}}function M(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,joinType:"FULL"},t,e)]}}function D(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,isOuter:!0,joinType:"LEFT"},t,e)]}}function H(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,isOuter:!0,joinType:"RIGHT"},t,e)]}}function v(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,isOuter:!0,joinType:"FULL"},t,e)]}}function J(t,e){return{...this,_joinValues:[...this._joinValues,_({isNatural:!1,joinType:"INNER"},t),e]}}function P(){return{...this,_joinValues:[]}}const lt=(t,e,r)=>({type:u.OrderTerm,__state:{orderType:t,val:typeof e=="string"?e:l(e),nullOrder:r},toSql(){return i.sql.join([typeof this.__state.val=="string"?i.sql.liter(this.__state.val):this.__state.val,i.sql.raw(this.__state.orderType),r?i.sql.raw(r):i.sql.empty]," ")}}),at=(...t)=>({__state:{values:t},type:u.OrdersBoxTerm,toSql(){return this.__state.values.length>0?i.sql.join([i.sql`ORDER BY`,i.sql.join(this.__state.values)]," "):i.sql.empty}}),Pt=(t,e)=>lt("DESC",t,e),Gt=(t,e)=>lt("ASC",t,e);function _t(...t){return{...this,__state:{...this.__state,ordersBox:{...this.__state.ordersBox,__state:{...this.__state.ordersBox.__state,values:[...this.__state.ordersBox.__state.values,...t]}}}}}function ht(){return{...this,__state:{...this.__state,ordersBox:{...this.__state.ordersBox,__state:{...this.__state.ordersBox.__state,values:[]}}}}}const kt=t=>({type:u.CTE,_recursive:t.recursive,_values:[{table:t.table,columns:t.columns,select:t.select}],toSql(){return i.sql.join([i.sql`WITH`,this._recursive?i.sql`RECURSIVE`:null,i.sql.join(this._values.map(e=>i.sql`${i.sql.liter(e.table)}(${i.sql.join(e.columns.map(r=>i.sql.liter(r)))}) AS (${e.select})`))].filter(e=>e)," ")}}),ct=(t,e)=>{var r,n;if(((r=t._cteValue)==null?void 0:r._recursive)===!0&&e.recursive===!1)throw new Error("WITH is already recursive");if(((n=t._cteValue)==null?void 0:n._recursive)===!1&&e.recursive===!0)throw new Error("WITH is not recursive");return{...t,_cteValue:t._cteValue?{...t._cteValue,values:[...t._cteValue._values,{}]}:kt({table:e.table,columns:e.columns,recursive:e.recursive,select:i.sql.isSql(e.select)?o(e.select):e.select})}};function O(t){return ct(this,{...t,recursive:!1})}function y(t){return ct(this,{...t,recursive:!0})}function w(){return{...this,cteValue:void 0}}const N=(...t)=>({type:u.Returning,_values:t.flatMap(e=>i.sql.isSql(e)||h(e)?{_toSelect:l(e)}:typeof e=="string"?{_toSelect:e}:Object.entries(e).map(([r,n])=>typeof n=="string"?{_toSelect:r,_alias:n}:{_toSelect:l(n),_alias:r})),toSql(){return this._values.length>0?i.sql`RETURNING ${i.sql.join(this._values.map(e=>e._toSelect==="*"?i.sql`*`:e._alias?p(e._toSelect,e._alias):e._toSelect))}`:i.sql.empty}});function G(...t){return{...this,_returningValue:{...this._returningValue,_values:[...this._returningValue._values,...N(...t)._values]}}}function k(){return{...this,_returningValue:N()}}const ft=function(t,e,r){const n=t._whereValue?[t._whereValue,...m(r)]:m(r);return n.length>1?{...t,_whereValue:e==="and"?nt(...n):ut(...n)}:{...t,_whereValue:n[0]}};function K(...t){return ft(this,"and",t)}function Y(...t){return ft(this,"or",t)}const Kt=t=>({type:u.Delete,_deleteTable:typeof t=="string"?i.sql.table(t):t,_returningValue:N(),with:O,withoutWith:w,withRecursive:y,where:K,orWhere:Y,returning:G,withoutReturning:k,toSql(){return i.sql.join([this._cteValue?this._cteValue:null,i.sql`DELETE FROM ${this._deleteTable}`,this._whereValue?i.sql`WHERE ${this._whereValue}`:null,this._returningValue].filter(e=>e)," ")}});function ot(){return{...this,_orReplaceValue:"ABORT"}}function Vt(){return{...this,_orReplaceValue:"FAIL"}}function jt(){return{...this,_orReplaceValue:"IGNORE"}}function dt(){return{...this,_orReplaceValue:"REPLACE"}}function mt(){return{...this,_orReplaceValue:"ROLLBACK"}}const pt=()=>({type:u.LimitOffsetTerm,toSql(){return this._limitValue?i.sql.join([this._limitValue?i.sql`LIMIT ${f(this._limitValue)}`:null,this._offsetValue&&this._limitValue?i.sql`OFFSET ${f(this._offsetValue)}`:null].filter(t=>t)," "):i.sql.empty}});function Ot(t){return{...this,_limitOffsetValue:{...this._limitOffsetValue,_limitValue:l(t)}}}function yt(){return{...this,_limitOffsetValue:{...this._limitOffsetValue,_limitValue:void 0}}}function wt(t){return{...this,_limitOffsetValue:{...this._limitOffsetValue,_offsetValue:l(t)}}}function Nt(){return{...this,_limitOffsetValue:{...this._limitOffsetValue,_offsetValue:void 0}}}const Yt=(...t)=>({type:u.Values,__state:{ordersBox:at(),values:t},_compoundValues:[],_limitOffsetValue:pt(),orderBy:_t,withoutOrder:ht,union:It,unionAll:Rt,intersect:gt,except:Et,withoutCompound:Tt,limit:Ot,withoutLimit:yt,offset:wt,withoutOffset:Nt,withoutWith:w,withRecursive:y,with:O,toSql(){return i.sql.join([this._cteValue?this._cteValue:null,i.sql`VALUES ${i.sql.join(this.__state.values.map(e=>i.sql`(${i.sql.join(e)})`))}`,this._compoundValues.length>0?i.sql.join(this._compoundValues," "):null,this.__state.ordersBox,this._limitOffsetValue.toSql().isEmpty?null:this._limitOffsetValue].filter(e=>e)," ")}}),V=t=>t!==null&&typeof t=="object"&&t.type===u.Values,I=(t,e,r)=>({...t,_compoundValues:[...t._compoundValues,...r.map(n=>{const a=l(n);return{type:u.OrderTerm,_compoundType:e,_value:j(a)||V(a)?a.withoutWith().withoutLimit().withoutOrder().withoutOffset():a,toSql(){return i.sql`${i.sql.raw(this._compoundType)} ${this._value}`}}})]});function It(...t){return I(this,"UNION",t)}function Rt(...t){return I(this,"UNION ALL",t)}function gt(...t){return I(this,"INTERSECT",t)}function Et(...t){return I(this,"EXCEPT",t)}function Tt(){return{...this,_compoundValues:[]}}function qt(...t){return{...this,_fromValues:[...this._fromValues,...t.map(e=>typeof e=="string"?i.sql.table(e):h(e)||i.sql.isSql(e)||i.sql.isTable(e)?l(f(e)):Object.entries(e).map(([r,n])=>({select:typeof n=="string"?i.sql.table(n):l(f(n)),alias:r}))).flat()]}}const $t=t=>t._fromValues.length>0?i.sql.join(t._fromValues.map(e=>h(e)||i.sql.isTable(e)?e:p(e.select,e.alias))):null,j=t=>t!==null&&typeof t=="object"&&t.type===u.Select,Lt=t=>t==null||t.length===0?[{toSelect:"*"}]:t.flatMap((e,r)=>e==="*"&&r===0?{toSelect:"*"}:typeof e=="string"?{toSelect:e}:h(e)||i.sql.isSql(e)?{toSelect:l(e)}:Object.entries(e).map(([n,a])=>typeof a=="string"?{toSelect:n,alias:a}:{toSelect:l(a),alias:n})),Xt=(...t)=>({type:u.Select,__state:{ordersBox:at(),definedWindowFunctions:[]},_fromValues:[],_selectValues:Lt(t),_distinctValue:!1,_groupByValues:[],_compoundValues:[],_joinValues:[],_limitOffsetValue:pt(),select(...e){return{...this,_selectValues:[...this._selectValues,...Lt(e)]}},distinct(e){return{...this,_distinctValue:e}},from:qt,where:K,orWhere:Y,limit:Ot,offset:wt,withoutLimit:yt,withoutOffset:Nt,groupBy(...e){return{...this,_groupByValues:e.map(r=>typeof r=="string"?r:l(r))}},having(e){return{...this,_havingValue:l(e)}},orderBy:_t,withoutOrder:ht,defineWindow(e,r){return{...this,__state:{...this.__state,definedWindowFunctions:[...this.__state.definedWindowFunctions,{name:e,windowBody:r}]}}},withoutDefinedWindows(){return{...this,__state:{...this.__state,definedWindowFunctions:[]}}},with:O,withoutWith:w,withRecursive:y,union:It,unionAll:Rt,intersect:gt,except:Et,withoutCompound:Tt,withoutJoin:P,join:g,joinCross:E,joinNatural:T,joinLeft:C,joinLeftOuter:D,joinLeftNatural:q,joinLeftNaturalOuter:B,joinRight:U,joinRightOuter:H,joinRightNatural:$,joinRightNaturalOuter:F,joinFull:M,joinFullOuter:v,joinFullNatural:L,joinFullNaturalOuter:A,joinInner:J,joinInnerNatural:W,toSql(){return i.sql.join([this._cteValue?this._cteValue:null,i.sql`SELECT`,this._distinctValue?i.sql`DISTINCT`:null,i.sql.join(this._selectValues.map(e=>e.toSelect==="*"?i.sql`*`:typeof e.toSelect=="string"?i.sql.liter(e.toSelect):e.alias?p(e.toSelect,e.alias):e.toSelect)),this._fromValues.length>0||this._joinValues.length>0?i.sql`FROM`:null,$t(this),this._joinValues.length>0?i.sql.join(this._joinValues.map(e=>e.toSql())," "):null,this._whereValue?i.sql`WHERE ${this._whereValue}`:null,this._groupByValues.length>0?i.sql`GROUP BY ${i.sql.join(this._groupByValues.map(e=>typeof e=="string"?i.sql.liter(e):e))}`:null,this._groupByValues.length>0&&this._havingValue?i.sql`HAVING ${this._havingValue}`:null,...this.__state.definedWindowFunctions.length>0?[i.sql`WINDOW`,i.sql.join(this.__state.definedWindowFunctions.map(({name:e,windowBody:r})=>i.sql`${i.sql.strip(e)} AS (${r})`),", ")]:[],this._compoundValues.length>0?i.sql.join(this._compoundValues," "):null,this.__state.ordersBox,this._limitOffsetValue.toSql().isEmpty?null:this._limitOffsetValue].filter(e=>e)," ")}}),X=t=>(Array.isArray(t)?t:[t]).map(e=>Object.entries(e).map(([r,n])=>({columnName:r,value:i.sql.isSql(n)&&!h(n)?o(n):n}))),zt=(t,e)=>{if(t._toInsertValue&&(j(t._toInsertValue)||V(t._toInsertValue)))throw new Error("Insert value is already state. If you want to change insert values user resetInsert() before.");return j(e)||V(e)?{...t,_toInsertValue:e}:{...t,_toInsertValue:Array.isArray(t._toInsertValue)?[...t._toInsertValue,...X(e)]:X(e)}},Zt=t=>({type:u.Insert,_returningValue:N(),_columnNames:[],_toInsertValue:j(t)||V(t)?t:X(t),with:O,withRecursive:y,withoutWith:w,orAbort:ot,orFail:Vt,orIgnore:jt,orReplace:dt,orRollback:mt,returning:G,withoutReturning:k,setColumnNames(e){return{...this,_columnNames:e}},withoutColumnNames(){return{...this,_columnNames:[]}},insert(e){return zt(this,e)},withoutInsert(){return{...this,_toInsertValue:void 0}},into(e){return{...this,_intoTable:typeof e=="string"?i.sql.table(e):e}},withoutInto(){return{...this,_intoTable:void 0}},toSql(){if(!this._toInsertValue)throw new Error("Insert values are not set");if(!this._intoTable)throw new Error("Into table is not set");const e=this._columnNames.length>0?this._columnNames:Array.isArray(this._toInsertValue)?this._toInsertValue[0].map(({columnName:r})=>r):[];return i.sql.join([this._cteValue?this._cteValue:null,i.sql`INSERT`,this._orReplaceValue?i.sql`OR ${i.sql.raw(this._orReplaceValue)}`:null,i.sql`INTO`,this._intoTable,e.length>0?i.sql`(${i.sql.join(e.map(r=>i.sql.liter(r)))})`:null,V(this._toInsertValue)||j(this._toInsertValue)?this._toInsertValue:i.sql`VALUES ${i.sql.join(this._toInsertValue.map(r=>{const n=Array(r.length);for(const{columnName:a,value:d}of r){const Bt=e.indexOf(a);if(Bt===-1)throw new Error(`Column ${a} is not present at columns set: ${e}. Make sure that you set all columns with setColumnNames() or each insert objects have the same keys present. Tried to insert: ${JSON.stringify(r)}`);n[Bt]=d}return i.sql`(${i.sql.join(n)})`}))}`,this._returningValue].filter(r=>r)," ")}}),Qt=t=>({type:u.Update,_updateTable:typeof t=="string"?i.sql.table(t):t,_setValues:[],_fromValues:[],_joinValues:[],_returningValue:N(),with:O,withoutWith:w,withRecursive:y,from:qt,where:K,orWhere:Y,returning:G,withoutReturning:k,orAbort:ot,orFail:Vt,orIgnore:jt,orReplace:dt,orRollback:mt,withoutJoin:P,join:g,joinCross:E,joinNatural:T,joinLeft:C,joinLeftOuter:D,joinLeftNatural:q,joinLeftNaturalOuter:B,joinRight:U,joinRightOuter:H,joinRightNatural:$,joinRightNaturalOuter:F,joinFull:M,joinFullOuter:v,joinFullNatural:L,joinFullNaturalOuter:A,joinInner:J,joinInnerNatural:W,set(...e){const r=e.flatMap(n=>h(n)?n:i.sql.isSql(n)?o(n):Object.entries(n).map(([a,d])=>({columnName:a,toSet:!h(d)&&i.sql.isSql(d)?o(d):d})));return{...this,_setValues:[...this._setValues,...r]}},toSql(){return i.sql.join([this._cteValue?this._cteValue:null,i.sql`UPDATE`,this._orReplaceValue?i.sql`OR ${i.sql.raw(this._orReplaceValue)}`:null,this._updateTable,i.sql`SET`,i.sql.join(this._setValues.map(e=>h(e)?e:i.sql`${i.sql.liter(e.columnName)} = ${f(e.toSet)}`)),this._fromValues.length>0||this._joinValues.length>0?i.sql`FROM`:null,$t(this),this._joinValues.length>0?i.sql.join(this._joinValues.map(e=>e.toSql())," "):null,this._whereValue?i.sql`WHERE ${this._whereValue}`:null,this._returningValue].filter(e=>e)," ")}}),St=t=>({_operator:"NOT",type:u.Unary,_expr:t,toSql(){return i.sql`NOT (${this._expr})`}});s.In=it,s.alias=p,s.and=nt,s.asc=Gt,s.buildRawSql=o,s.conditionValuesToToken=m,s.deleteFrom=Kt,s.desc=Pt,s.eq=R,s.eq$=At,s.gt=Q,s.gt$=Wt,s.gtEq=S,s.gtEq$=Ct,s.in$=vt,s.insert=Zt,s.isBinaryOperator=z,s.isSelect=j,s.isValues=V,s.join=g,s.joinCross=E,s.joinFull=M,s.joinFullNatural=L,s.joinFullNaturalOuter=A,s.joinFullOuter=v,s.joinInner=J,s.joinInnerNatural=W,s.joinLeft=C,s.joinLeftNatural=q,s.joinLeftNaturalOuter=B,s.joinLeftOuter=D,s.joinNatural=T,s.joinRight=U,s.joinRightNatural=$,s.joinRightNaturalOuter=F,s.joinRightOuter=H,s.like=tt,s.like$=Dt,s.lt=x,s.lt$=Ut,s.ltEq=b,s.ltEq$=Mt,s.not=St,s.notEq=Z,s.notEq$=Ft,s.notIn=st,s.notIn$=Jt,s.notLike=et,s.notLike$=Ht,s.or=ut,s.select=Xt,s.toToken=l,s.update=Qt,s.values=Yt,s.withoutJoin=P,s.wrapParentheses=f;for(const t in i)t!=="default"&&!s.hasOwnProperty(t)&&Object.defineProperty(s,t,{enumerable:!0,get:()=>i[t]});Object.defineProperties(s,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
//# sourceMappingURL=index.umd.js.map
{
"name": "@kikko-land/boono",
"version": "0.2.1",
"version": "0.3.0",
"author": "Sergey Popov",

@@ -29,3 +29,3 @@ "license": "MIT",

"dependencies": {
"@kikko-land/boono-sql": "^0.3.0"
"@kikko-land/boono-sql": "^0.4.0"
},

@@ -32,0 +32,0 @@ "devDependencies": {

@@ -50,3 +50,3 @@ import { ISql, sql } from "@kikko-land/boono-sql";

sql`${sql.liter(v.table)}(${sql.join(
v.columns.map(sql.liter)
v.columns.map((c) => sql.liter(c))
)}) AS (${v.select})`

@@ -53,0 +53,0 @@ )

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc