@ez4/pgmigration 0.42.0 → 0.43.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/library.cjs CHANGED
@@ -1,99 +1,107 @@
1
- "use strict";var D=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames;var ne=Object.prototype.hasOwnProperty;var r=(e,n)=>D(e,"name",{value:n,configurable:!0});var re=(e,n)=>{for(var d in n)D(e,d,{get:n[d],enumerable:!0})},oe=(e,n,d,x)=>{if(n&&
2
- typeof n=="object"||typeof n=="function")for(let g of te(n))!ne.call(e,g)&&g!==d&&
3
- D(e,g,{get:()=>n[g],enumerable:!(x=ee(n,g))||x.enumerable});return e};var ie=e=>oe(D({},"__esModule",{value:!0}),e);var ue={};re(ue,{ColumnQuery:()=>Q,DatabaseQueries:()=>F,IndexQueries:()=>W,RelationQuery:()=>Z,
4
- TableQuery:()=>H,getTableRepositoryChanges:()=>se});module.exports=ie(ue);var N=require("@ez4/utils"),U=require("@ez4/pgclient/library"),_=require("@ez4/schema");var se=r((e,n)=>(0,N.deepCompareObject)(e,n,{onRename:r((d,x)=>!(0,N.isAnyObject)(
5
- d)||!(0,N.isAnyObject)(x)?!1:(0,U.isTableMetadata)(d)&&(0,U.isTableMetadata)(x)?
6
- ae(d.schema,x.schema):(0,_.isAnySchema)(d)&&(0,_.isAnySchema)(x)?ce(d,x):!1,"onR\
7
- ename")}),"getTableRepositoryChanges"),ae=r((e,n)=>(0,N.deepEqual)(Object.keys(e.
8
- properties),Object.keys(n.properties)),"canRenameTable"),ce=r((e,n)=>(0,N.deepEqual)(
9
- e,n,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
10
- Column");var V=require("@ez4/pgsql");var v=r((e,n)=>{let[d]=e.select().rawColumn("1").from("pg_database").where({datname:e.
11
- rawString(n)}).build();return d},"getCheckDatabaseQuery"),P=r((e,n)=>{let[d]=e.select().
12
- rawColumn("1").from("pg_constraint").where({conname:e.rawString(n)}).build();return d},
13
- "getCheckConstraintQuery"),$=r((e,n,d)=>{let[x]=e.select().rawColumn("1").where(
1
+ "use strict";var _=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames;var ne=Object.prototype.hasOwnProperty;var r=(e,o)=>_(e,"name",{value:o,configurable:!0});var re=(e,o)=>{for(var l in o)_(e,l,{get:o[l],enumerable:!0})},oe=(e,o,l,f)=>{if(o&&
2
+ typeof o=="object"||typeof o=="function")for(let y of te(o))!ne.call(e,y)&&y!==l&&
3
+ _(e,y,{get:()=>o[y],enumerable:!(f=ee(o,y))||f.enumerable});return e};var ie=e=>oe(_({},"__esModule",{value:!0}),e);var pe={};re(pe,{ColumnQuery:()=>Q,DatabaseQueries:()=>F,IndexQueries:()=>W,RelationQuery:()=>Z,
4
+ TableQuery:()=>H,getTableRepositoryChanges:()=>se});module.exports=ie(pe);var b=require("@ez4/utils"),$=require("@ez4/pgclient/library"),E=require("@ez4/schema");var se=r((e,o)=>(0,b.deepCompareObject)(e,o,{depth:5,onSimilarName:r((l,f)=>{let y=new Set(
5
+ (0,b.toSnakeCase)(l).split("_")),x=new Set((0,b.toSnakeCase)(f).split("_"));for(let d of x)
6
+ if(d.length>1&&y.has(d))return!0;return!1},"onSimilarName"),onRename:r((l,f)=>!(0,b.isAnyObject)(
7
+ l)||!(0,b.isAnyObject)(f)?!1:(0,$.isTableMetadata)(l)&&(0,$.isTableMetadata)(f)?
8
+ ae(l.schema,f.schema):(0,E.isAnySchema)(l)&&(0,E.isAnySchema)(f)?ce(l,f):!1,"onR\
9
+ ename")}),"getTableRepositoryChanges"),ae=r((e,o)=>(0,b.deepEqual)(Object.keys(e.
10
+ properties),Object.keys(o.properties)),"canRenameTable"),ce=r((e,o)=>(0,b.deepEqual)(
11
+ e,o,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
12
+ Column");var V=require("@ez4/pgsql");var K=r((e,o)=>{let[l]=e.select().rawColumn("1").from("pg_database").where({datname:e.
13
+ rawString(o)}).build();return l},"getCheckDatabaseQuery"),N=r((e,o)=>{let[l]=e.select().
14
+ rawColumn("1").from("pg_constraint").where({conname:e.rawString(o)}).build();return l},
15
+ "getCheckConstraintQuery"),U=r((e,o,l)=>{let[f]=e.select().rawColumn("1").where(
14
16
  {NOT:{exists:e.select().from(e.rawValue("information_schema.columns")).rawColumn(
15
- "1").where({column_name:e.rawString(d),table_name:e.rawString(n)})}}).build();return x},
16
- "getCheckColumnQuery");var F;(d=>(d.prepareCreate=r(x=>{let g=new V.SqlBuilder;return{check:v(g,x),query:`\
17
- CREATE DATABASE "${x}"`}},"prepareCreate"),d.prepareDelete=r(x=>({query:`DROP DA\
18
- TABASE IF EXISTS "${x}" WITH (FORCE)`}),"prepareDelete")))(F||={});var G=require("@ez4/database");var h=require("@ez4/schema"),L=require("@ez4/utils");var B=r(e=>!!(e.nullable||e.optional),"isOptionalColumn"),O=r((e,n)=>{if((0,h.isScalarSchema)(
19
- e)||(0,h.isObjectSchema)(e)||(0,h.isArraySchema)(e)||(0,h.isTupleSchema)(e)){let{
20
- definitions:d}=e;switch(typeof d?.default){case"boolean":case"number":return`${d.
21
- default}`;case"string":return`'${d.default}'`;case"object":return`'${JSON.stringify(
22
- d.default)}'`}}if((0,h.isEnumSchema)(e)){let{definitions:d}=e;if(d?.default)return`\
23
- '${d.default}'`}if((0,h.isStringSchema)(e)&&n)switch(e.format){case"date-time":case"\
17
+ "1").where({column_name:e.rawString(l),table_name:e.rawString(o)})}}).build();return f},
18
+ "getCheckColumnQuery");var F;(l=>(l.prepareCreate=r(f=>{let y=new V.SqlBuilder;return{check:K(y,f),query:`\
19
+ CREATE DATABASE "${f}"`}},"prepareCreate"),l.prepareDelete=r(f=>({query:`DROP DA\
20
+ TABASE IF EXISTS "${f}" WITH (FORCE)`}),"prepareDelete")))(F||={});var G=require("@ez4/database");var S=require("@ez4/schema"),L=require("@ez4/utils");var B=r(e=>!!(e.nullable||e.optional),"isOptionalColumn"),P=r((e,o)=>{if((0,S.isScalarSchema)(
21
+ e)||(0,S.isObjectSchema)(e)||(0,S.isArraySchema)(e)||(0,S.isTupleSchema)(e)){let{
22
+ definitions:l}=e;switch(typeof l?.default){case"boolean":case"number":return`${l.
23
+ default}`;case"string":return`'${l.default}'`;case"object":return`'${JSON.stringify(
24
+ l.default)}'`}}if((0,S.isEnumSchema)(e)){let{definitions:l}=e;if(l?.default)return`\
25
+ '${l.default}'`}if((0,S.isStringSchema)(e)&&o)switch(e.format){case"date-time":case"\
24
26
  date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(B(e))return"\
25
- null"},"getColumnDefault"),I=r((e,n)=>{switch(e.type){case h.SchemaType.Array:case h.SchemaType.
26
- Object:case h.SchemaType.Reference:case h.SchemaType.Union:case h.SchemaType.Tuple:
27
- return"jsonb";case h.SchemaType.Boolean:return"boolean";case h.SchemaType.Enum:return"\
28
- text";case h.SchemaType.Number:return me(e,n);case h.SchemaType.String:return pe(
29
- e)}},"getColumnType"),me=r((e,n)=>e.format==="integer"?n?"bigserial":"bigint":"d\
30
- ecimal","getColumNumberType"),pe=r(e=>{switch(e.format){case"uuid":case"time":case"\
31
- date":return e.format;case"date-time":return"timestamptz";default:let n=e.definitions?.
32
- maxLength;return(0,L.isAnyNumber)(n)?`varchar(${n})`:"text"}},"getColumnTextType");var H;(x=>(x.prepareCreate=r((g,y,c,m)=>{let o=g.table(y).create().missing();for(let t in c.
33
- properties){let s=c.properties[t],p=m[t]?.type===G.Index.Primary,i=!B(s),u=I(s,p),
34
- l=O(s,p);o.column(t,u,i,l).missing()}return{query:o.build()}},"prepareCreate"),x.
35
- prepareRename=r((g,y,c)=>({query:g.table(y).rename(c).existing().build()}),"prep\
36
- areRename"),x.prepareDelete=r((g,y)=>({query:g.table(y).drop().existing().cascade().
37
- build()}),"prepareDelete")))(H||={});var z=require("@ez4/schema"),q=require("@ez4/database");var J=require("@ez4/utils");var j=r((e,n)=>`${E(e,n)}_pk`,"getPrimaryKeyName"),A=r((e,n)=>`${E(e,n)}_uk`,"ge\
38
- tUniqueKeyName"),T=r((e,n)=>`${E(e,n)}_sk`,"getSecondaryKeyName"),k=r((e,n)=>`${E(
39
- e,n)}_fk`,"getRelationName");var E=r((e,n)=>`${e}_${(0,J.toSnakeCase)(n.replaceAll(":","_"))}`,"getName");var W;(y=>{y.prepareCreate=r((c,m,o,t,s)=>{let a={constraints:[],indexes:[]};for(let p in t){
40
- let{columns:i,type:u}=t[p];switch(u){default:throw new Error("Unsupported index \
41
- type.");case q.Index.Primary:{let l=j(m,p),f=c.table(m).alter().existing().constraint(
42
- l).primary(i);a.constraints.push({check:P(c,l),query:f.build()});break}case q.Index.
43
- Unique:{let l=A(m,p),f=c.table(m).alter().existing().constraint(l).unique(i);a.constraints.
44
- push({check:P(c,l),query:f.build()});break}case q.Index.Secondary:{let l=T(m,p),
45
- f=g(i,o),S=c.index(l).create(m,i).type(f).missing();s&&S.concurrent(),a.indexes.
46
- push({query:S.build()});break}}}return a},"prepareCreate"),y.prepareUpdate=r((c,m,o,t,s,a,p)=>{
47
- let i={constraints:[],indexes:[]};for(let u in a){let{update:l,create:f,remove:S}=a[u];
48
- if(S||l){let b=(0,y.prepareDelete)(c,m,{[u]:t[u]});i.constraints.push(...b.constraints),
49
- i.indexes.push(...b.indexes)}if(f||l){let b=(0,y.prepareCreate)(c,m,o,{[u]:s[u]},
50
- p);i.constraints.push(...b.constraints),i.indexes.push(...b.indexes)}}return i},
51
- "prepareUpdate"),y.prepareRename=r((c,m,o,t)=>{let s={constraints:[],indexes:[]};
52
- for(let a in t){let{type:p}=t[a];switch(p){default:throw new Error("Unsupported \
53
- index type.");case q.Index.Primary:{let i=j(m,a),u=j(o,a),l=c.table(o).alter().existing().
54
- constraint(i).rename(u);s.constraints.push({check:P(c,u),query:l.build()});break}case q.Index.
55
- Unique:{let i=A(m,a),u=A(o,a),l=c.table(o).alter().existing().constraint(i).rename(
56
- u);s.constraints.push({check:P(c,u),query:l.build()});break}case q.Index.Secondary:{
57
- let i=T(m,a),u=T(o,a),l=c.index(i).rename(u).existing();s.indexes.push({query:l.
58
- build()});break}}}return s},"prepareRename"),y.prepareDelete=r((c,m,o)=>{let t={
59
- constraints:[],indexes:[]};for(let s in o){let{type:a}=o[s];switch(a){default:throw new Error(
60
- "Unsupported index type.");case q.Index.Primary:{let p=j(m,s),i=c.table(m).alter().
61
- existing().constraint(p).drop().existing();t.constraints.push({query:i.build()});
62
- break}case q.Index.Unique:{let p=A(m,s),i=c.table(m).alter().existing().constraint(
63
- p).drop().existing();t.constraints.push({query:i.build()});break}case q.Index.Secondary:{
64
- let p=T(m,s),i=c.index(p).drop().existing().concurrent();t.indexes.push({query:i.
65
- build()});break}}}return t},"prepareDelete");let g=r((c,m)=>{if(c.length===1){let[
66
- o]=c;switch(m.properties[o]?.type){case z.SchemaType.Object:case z.SchemaType.Union:case z.SchemaType.
27
+ null"},"getColumnDefault"),T=r((e,o)=>{switch(e.type){case S.SchemaType.Array:case S.SchemaType.
28
+ Object:case S.SchemaType.Reference:case S.SchemaType.Union:case S.SchemaType.Tuple:
29
+ return"jsonb";case S.SchemaType.Boolean:return"boolean";case S.SchemaType.Enum:return"\
30
+ text";case S.SchemaType.Number:return me(e,o);case S.SchemaType.String:return ue(
31
+ e)}},"getColumnType"),me=r((e,o)=>e.format==="integer"?o?"bigserial":"bigint":"d\
32
+ ecimal","getColumNumberType"),ue=r(e=>{switch(e.format){case"uuid":case"time":case"\
33
+ date":return e.format;case"date-time":return"timestamptz";default:let o=e.definitions?.
34
+ maxLength;return(0,L.isAnyNumber)(o)?`varchar(${o})`:"text"}},"getColumnTextType");var H;(f=>(f.prepareCreate=r((y,x,d,i)=>{let t=y.table(x).create().missing();for(let n in d.
35
+ properties){let s=d.properties[n],g=i[n]?.type===G.Index.Primary,m=!B(s),c=T(s,g),
36
+ p=P(s,g);t.column(n,c,m,p).missing()}return{query:t.build()}},"prepareCreate"),f.
37
+ prepareRename=r((y,x,d)=>({query:y.table(x).rename(d).existing().build()}),"prep\
38
+ areRename"),f.prepareDelete=r((y,x)=>({query:y.table(x).drop().existing().cascade().
39
+ build()}),"prepareDelete")))(H||={});var z=require("@ez4/schema"),C=require("@ez4/database");var J=require("@ez4/utils");var j=r((e,o)=>`${D(e,o)}_pk`,"getPrimaryKeyName"),A=r((e,o)=>`${D(e,o)}_uk`,"ge\
40
+ tUniqueKeyName"),I=r((e,o)=>`${D(e,o)}_sk`,"getSecondaryKeyName"),O=r((e,o)=>`${D(
41
+ e,o)}_fk`,"getRelationName");var D=r((e,o)=>`${e}_${(0,J.toSnakeCase)(o.replaceAll(":","_"))}`,"getName");var W;(d=>{d.prepareCreate=r((i,t,n,s)=>{let a={constraints:[],validations:[],indexes:[]};
42
+ for(let g in s){let{columns:m,type:c,name:p}=s[g];switch(c){default:throw new Error(
43
+ "Unsupported index type.");case C.Index.Primary:{let u=j(t,p);a.constraints.push(
44
+ {check:N(i,u),query:i.table(t).alter().existing().constraint(u).primary(m).build()});
45
+ break}case C.Index.Unique:{let u=A(t,p),h=x(m,n);a.indexes.push({query:i.index(u).
46
+ create(t,m).type(h).unique().concurrent().missing().build()}),a.validations.push(
47
+ {query:(0,d.getValidationQuery)(i,u),name:u});break}case C.Index.Secondary:{let u=I(
48
+ t,p),h=x(m,n);a.indexes.push({query:i.index(u).create(t,m).type(h).concurrent().
49
+ missing().build()}),a.validations.push({query:(0,d.getValidationQuery)(i,u),name:u});
50
+ break}}}return a},"prepareCreate"),d.prepareUpdate=r((i,t,n,s,a,g)=>{let m={constraints:[],
51
+ validations:[],indexes:[]};for(let c in g){let{update:p,create:u,remove:h}=g[c];
52
+ if(h||p){let q=(0,d.prepareDelete)(i,t,{[c]:s[c]});m.constraints.push(...q.constraints),
53
+ m.indexes.push(...q.indexes)}if(u||p){let q=(0,d.prepareCreate)(i,t,n,{[c]:a[c]});
54
+ m.constraints.push(...q.constraints),m.indexes.push(...q.indexes)}}return m},"pr\
55
+ epareUpdate"),d.prepareRename=r((i,t,n,s)=>{let a={validations:[],constraints:[],
56
+ indexes:[]};for(let g in s){let{type:m,name:c}=s[g];switch(m){default:throw new Error(
57
+ "Unsupported index type.");case C.Index.Primary:{let p=j(t,c),u=j(n,c);a.constraints.
58
+ push({check:N(i,u),query:i.table(n).alter().existing().constraint(p).rename(u).build()});
59
+ break}case C.Index.Unique:{let p=A(t,c),u=A(n,c);a.indexes.push({query:i.index(p).
60
+ rename(u).existing().build()});break}case C.Index.Secondary:{let p=I(t,c),u=I(n,
61
+ c);a.indexes.push({query:i.index(p).rename(u).existing().build()});break}}}return a},
62
+ "prepareRename"),d.prepareDelete=r((i,t,n)=>{let s={validations:[],constraints:[],
63
+ indexes:[]};for(let a in n){let{type:g,name:m}=n[a];switch(g){default:throw new Error(
64
+ "Unsupported index type.");case C.Index.Primary:{let c=j(t,m),p=i.table(t).alter().
65
+ existing().constraint(c).drop().existing();s.constraints.push({query:p.build()});
66
+ break}case C.Index.Unique:{let c=A(t,m),p=i.index(c).drop().existing().concurrent();
67
+ s.indexes.push({query:p.build()});break}case C.Index.Secondary:{let c=I(t,m),p=i.
68
+ index(c).drop().existing().concurrent();s.indexes.push({query:p.build()});break}}}
69
+ return s},"prepareDelete"),d.getValidationQuery=r((i,t)=>{let[n]=i.select().rawColumn(
70
+ "1").from("pg_index").where({indexrelid:i.rawValue(`${i.rawString(t).build()}::r\
71
+ egclass`),indisvalid:i.rawValue("false"),indisready:i.rawValue("true")}).build();
72
+ return n},"getValidationQuery");let x=r((i,t)=>{if(i.length===1){let[n]=i;switch(t.
73
+ properties[n]?.type){case z.SchemaType.Object:case z.SchemaType.Union:case z.SchemaType.
67
74
  Array:case z.SchemaType.Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(W||=
68
- {});var X=require("@ez4/pgclient/library"),Y=require("@ez4/schema"),M=require("@ez4/database");var Z;(m=>{m.prepareCreate=r((o,t,s,a)=>{let p=[];for(let i in a){let u=a[i];if(g(
69
- u))continue;let{[u.targetColumn]:l}=s.properties,f=k(t,i),S=!!(0,Y.isNullishSchema)(
70
- l);p.push({check:P(o,f),query:c(o,t,f,u,S).build()})}return p},"prepareCreate"),
71
- m.prepareUpdate=r((o,t,s,a)=>{let p=[];for(let i in s){let u=s[i];if(g(u))continue;
72
- let l=a[u.targetColumn]?.update,f=l?.optional??l?.nullable;if(f===void 0)continue;
73
- let S=k(t,i);p.push({query:y(o,t,S).build()},{query:c(o,t,S,u,f).build()})}return p},
74
- "prepareUpdate"),m.prepareRename=r((o,t,s,a)=>{let p=[];for(let i in a){let u=a[i];
75
- if(g(u))continue;let l=k(t,i),f=k(s,i),S=o.table(s).alter().existing().constraint(
76
- l).rename(f);p.push({check:P(o,f),query:S.build()})}return p},"prepareRename"),m.
77
- prepareDelete=r((o,t,s)=>{let a=[];for(let p in s){let i=s[p];if(g(i))continue;let u=k(
78
- t,p);a.push({query:y(o,t,u).build()})}return a},"prepareDelete");let g=r(o=>{let{
79
- sourceIndex:t,targetIndex:s}=o;return!t||t===M.Index.Secondary||s===M.Index.Primary},
80
- "isNotRealRelation"),y=r((o,t,s)=>o.table(t).alter().existing().constraint(s).drop().
81
- existing(),"getDeleteQuery"),c=r((o,t,s,a,p)=>{let{sourceTable:i,sourceColumn:u,
82
- targetColumn:l}=a,f=(0,X.getTableName)(i),S=o.table(t).alter().existing().constraint(
83
- s).foreign(l,f,[u]);return p?S.delete().null():S.delete().cascade(),S.update().cascade(),
84
- S},"getCreateQuery")})(Z||={});var K=require("@ez4/database");var Q;(g=>(g.prepareCreate=r((y,c,m,o)=>{let t=y.table(c).alter().existing();for(let s in o){
85
- let a=o[s],i=m[s]?.type===K.Index.Primary,u=!B(a),l=I(a,i),f=O(a,i);t.add(s,l,u,
86
- f).missing()}return{query:t.build()}},"prepareCreate"),g.prepareUpdate=r((y,c,m,o,t)=>{
87
- let s=[];for(let a in t){let{create:p,update:i,nested:u,remove:l}=t[a],f=m.properties[a],
88
- b=o[a]?.type===K.Index.Primary,R=y.table(c).alter().existing().column(a);if(p){let w=p.
89
- definitions?.default,C=p?.nullable;w!==void 0&&R.default(O(f,b)),C!==void 0&&R.optional(
90
- C)}if(i||u){let w=u?.definitions?.update?.default,C=i?.nullable;i?.type!==void 0&&
91
- R.type(I(f,b)),w!==void 0&&R.default(O(f,b)),C!==void 0&&R.optional(C)}if(l){let w=l.
92
- definitions?.default,C=l?.nullable;w!==void 0&&R.default(null),C!==void 0&&R.optional(
93
- C)}R.empty||s.push({check:$(y,c,a),query:R.build()})}return s},"prepareUpdate"),
94
- g.prepareRename=r((y,c,m)=>{let o=[];for(let t in m){let s=m[t],a=y.table(c).alter().
95
- existing().rename(t,s);o.push({check:$(y,c,t),query:a.build()})}return o},"prepa\
96
- reRename"),g.prepareDelete=r((y,c,m)=>{let o=y.table(c).alter().existing();for(let t in m)
97
- o.drop(t).existing();return{query:o.build()}},"prepareDelete")))(Q||={});0&&(module.exports={ColumnQuery,DatabaseQueries,IndexQueries,RelationQuery,TableQuery,
75
+ {});var X=require("@ez4/pgclient/library"),Y=require("@ez4/schema"),v=require("@ez4/database");var Z;(i=>{i.prepareCreate=r((t,n,s,a)=>{let g=[];for(let m in a){let c=a[m];if(y(
76
+ c))continue;let{[c.targetColumn]:p}=s.properties,u=O(n,m),h=!!(0,Y.isNullishSchema)(
77
+ p);g.push({check:N(t,u),query:d(t,n,u,c,h).build()})}return g},"prepareCreate"),
78
+ i.prepareUpdate=r((t,n,s,a)=>{let g=[];for(let m in s){let c=s[m];if(y(c))continue;
79
+ let p=a[c.targetColumn]?.update,u=p?.optional??p?.nullable;if(u===void 0)continue;
80
+ let h=O(n,m);g.push({query:x(t,n,h).build()},{query:d(t,n,h,c,u).build()})}return g},
81
+ "prepareUpdate"),i.prepareRename=r((t,n,s,a)=>{let g=[];for(let m in a){let c=a[m];
82
+ if(y(c))continue;let p=O(n,m),u=O(s,m),h=t.table(s).alter().existing().constraint(
83
+ p).rename(u);g.push({check:N(t,u),query:h.build()})}return g},"prepareRename"),i.
84
+ prepareDelete=r((t,n,s)=>{let a=[];for(let g in s){let m=s[g];if(y(m))continue;let c=O(
85
+ n,g);a.push({query:x(t,n,c).build()})}return a},"prepareDelete");let y=r(t=>{let{
86
+ sourceIndex:n,targetIndex:s}=t;return!n||n===v.Index.Secondary||s===v.Index.Primary},
87
+ "isNotRealRelation"),x=r((t,n,s)=>t.table(n).alter().existing().constraint(s).drop().
88
+ existing(),"getDeleteQuery"),d=r((t,n,s,a,g)=>{let{sourceTable:m,sourceColumn:c,
89
+ targetColumn:p}=a,u=(0,X.getTableName)(m),h=t.table(n).alter().existing().constraint(
90
+ s),q=h.foreign(p,u,[c]).validate(!1);return g?q.delete().null():q.delete().cascade(),
91
+ q.update().cascade(),h},"getCreateQuery")})(Z||={});var M=require("@ez4/database");var Q;(y=>(y.prepareCreate=r((x,d,i,t)=>{let n=x.table(d).alter().existing();for(let s in t){
92
+ let a=t[s],m=i[s]?.type===M.Index.Primary,c=!B(a),p=T(a,m),u=P(a,m);n.add(s,p,c,
93
+ u).missing()}return{query:n.build()}},"prepareCreate"),y.prepareUpdate=r((x,d,i,t,n)=>{
94
+ let s=[];for(let a in n){let{create:g,update:m,nested:c,remove:p}=n[a],u=i.properties[a],
95
+ q=t[a]?.type===M.Index.Primary,R=x.table(d).alter().existing().column(a);if(g){let k=g.
96
+ definitions?.default,w=g?.nullable;k!==void 0&&R.default(P(u,q)),!q&&w!==void 0&&
97
+ R.optional(w)}if(m||c){let k=c?.definitions?.update?.default,w=m?.nullable;m?.type!==
98
+ void 0&&R.type(T(u,q)),k!==void 0&&R.default(P(u,q)),!q&&w!==void 0&&R.optional(
99
+ w)}if(p){let k=p.definitions?.default,w=p?.nullable;k!==void 0&&R.default(null),
100
+ !q&&w!==void 0&&R.optional(w)}R.empty||s.push({check:U(x,d,a),query:R.build()})}
101
+ return s},"prepareUpdate"),y.prepareRename=r((x,d,i)=>{let t=[];for(let n in i){
102
+ let s=i[n],a=x.table(d).alter().existing().rename(n,s);t.push({check:U(x,d,n),query:a.
103
+ build()})}return t},"prepareRename"),y.prepareDelete=r((x,d,i)=>{let t=x.table(d).
104
+ alter().existing();for(let n in i)t.drop(n).existing();return{query:t.build()}},
105
+ "prepareDelete")))(Q||={});0&&(module.exports={ColumnQuery,DatabaseQueries,IndexQueries,RelationQuery,TableQuery,
98
106
  getTableRepositoryChanges});
99
107
  //# sourceMappingURL=library.cjs.map
package/dist/library.mjs CHANGED
@@ -1,94 +1,101 @@
1
- var V=Object.defineProperty;var n=(e,c)=>V(e,"name",{value:c,configurable:!0});import{deepEqual as $,deepCompareObject as F,isAnyObject as E}from"@ez4/utils";import{
2
- isTableMetadata as U}from"@ez4/pgclient/library";import{isAnySchema as _}from"@ez4/schema";var xe=n((e,c)=>F(e,c,{onRename:n((d,f)=>!E(d)||!E(f)?!1:U(d)&&U(f)?L(d.schema,f.
3
- schema):_(d)&&_(f)?G(d,f):!1,"onRename")}),"getTableRepositoryChanges"),L=n((e,c)=>$(
4
- Object.keys(e.properties),Object.keys(c.properties)),"canRenameTable"),G=n((e,c)=>$(
5
- e,c,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
6
- Column");import{SqlBuilder as H}from"@ez4/pgsql";var M=n((e,c)=>{let[d]=e.select().rawColumn("1").from("pg_database").where({datname:e.
7
- rawString(c)}).build();return d},"getCheckDatabaseQuery"),N=n((e,c)=>{let[d]=e.select().
8
- rawColumn("1").from("pg_constraint").where({conname:e.rawString(c)}).build();return d},
9
- "getCheckConstraintQuery"),D=n((e,c,d)=>{let[f]=e.select().rawColumn("1").where(
1
+ var F=Object.defineProperty;var r=(e,m)=>F(e,"name",{value:m,configurable:!0});import{deepEqual as v,deepCompareObject as L,isAnyObject as D,toSnakeCase as $}from"@ez4/utils";
2
+ import{isTableMetadata as E}from"@ez4/pgclient/library";import{isAnySchema as U}from"@ez4/schema";var Se=r((e,m)=>L(e,m,{depth:5,onSimilarName:r((g,f)=>{let x=new Set($(g).split(
3
+ "_")),y=new Set($(f).split("_"));for(let l of y)if(l.length>1&&x.has(l))return!0;
4
+ return!1},"onSimilarName"),onRename:r((g,f)=>!D(g)||!D(f)?!1:E(g)&&E(f)?G(g.schema,
5
+ f.schema):U(g)&&U(f)?H(g,f):!1,"onRename")}),"getTableRepositoryChanges"),G=r((e,m)=>v(
6
+ Object.keys(e.properties),Object.keys(m.properties)),"canRenameTable"),H=r((e,m)=>v(
7
+ e,m,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
8
+ Column");import{SqlBuilder as J}from"@ez4/pgsql";var M=r((e,m)=>{let[g]=e.select().rawColumn("1").from("pg_database").where({datname:e.
9
+ rawString(m)}).build();return g},"getCheckDatabaseQuery"),w=r((e,m)=>{let[g]=e.select().
10
+ rawColumn("1").from("pg_constraint").where({conname:e.rawString(m)}).build();return g},
11
+ "getCheckConstraintQuery"),_=r((e,m,g)=>{let[f]=e.select().rawColumn("1").where(
10
12
  {NOT:{exists:e.select().from(e.rawValue("information_schema.columns")).rawColumn(
11
- "1").where({column_name:e.rawString(d),table_name:e.rawString(c)})}}).build();return f},
12
- "getCheckColumnQuery");var J;(d=>(d.prepareCreate=n(f=>{let x=new H;return{check:M(x,f),query:`CREATE D\
13
- ATABASE "${f}"`}},"prepareCreate"),d.prepareDelete=n(f=>({query:`DROP DATABASE I\
14
- F EXISTS "${f}" WITH (FORCE)`}),"prepareDelete")))(J||={});import{Index as oe}from"@ez4/database";import{isArraySchema as W,isEnumSchema as X,isObjectSchema as Y,isScalarSchema as Z,
15
- isStringSchema as Q,isTupleSchema as ee,SchemaType as b}from"@ez4/schema";import{
16
- isAnyNumber as te}from"@ez4/utils";var w=n(e=>!!(e.nullable||e.optional),"isOptionalColumn"),P=n((e,c)=>{if(Z(e)||Y(
17
- e)||W(e)||ee(e)){let{definitions:d}=e;switch(typeof d?.default){case"boolean":case"\
18
- number":return`${d.default}`;case"string":return`'${d.default}'`;case"object":return`\
19
- '${JSON.stringify(d.default)}'`}}if(X(e)){let{definitions:d}=e;if(d?.default)return`\
20
- '${d.default}'`}if(Q(e)&&c)switch(e.format){case"date-time":case"date":case"time":
21
- return"now()";case"uuid":return"gen_random_uuid()"}if(w(e))return"null"},"getCol\
22
- umnDefault"),B=n((e,c)=>{switch(e.type){case b.Array:case b.Object:case b.Reference:case b.
13
+ "1").where({column_name:e.rawString(g),table_name:e.rawString(m)})}}).build();return f},
14
+ "getCheckColumnQuery");var W;(g=>(g.prepareCreate=r(f=>{let x=new J;return{check:M(x,f),query:`CREATE D\
15
+ ATABASE "${f}"`}},"prepareCreate"),g.prepareDelete=r(f=>({query:`DROP DATABASE I\
16
+ F EXISTS "${f}" WITH (FORCE)`}),"prepareDelete")))(W||={});import{Index as ie}from"@ez4/database";import{isArraySchema as X,isEnumSchema as Y,isObjectSchema as Z,isScalarSchema as Q,
17
+ isStringSchema as ee,isTupleSchema as te,SchemaType as b}from"@ez4/schema";import{
18
+ isAnyNumber as ne}from"@ez4/utils";var k=r(e=>!!(e.nullable||e.optional),"isOptionalColumn"),N=r((e,m)=>{if(Q(e)||Z(
19
+ e)||X(e)||te(e)){let{definitions:g}=e;switch(typeof g?.default){case"boolean":case"\
20
+ number":return`${g.default}`;case"string":return`'${g.default}'`;case"object":return`\
21
+ '${JSON.stringify(g.default)}'`}}if(Y(e)){let{definitions:g}=e;if(g?.default)return`\
22
+ '${g.default}'`}if(ee(e)&&m)switch(e.format){case"date-time":case"date":case"tim\
23
+ e":return"now()";case"uuid":return"gen_random_uuid()"}if(k(e))return"null"},"get\
24
+ ColumnDefault"),B=r((e,m)=>{switch(e.type){case b.Array:case b.Object:case b.Reference:case b.
23
25
  Union:case b.Tuple:return"jsonb";case b.Boolean:return"boolean";case b.Enum:return"\
24
- text";case b.Number:return ne(e,c);case b.String:return re(e)}},"getColumnType"),
25
- ne=n((e,c)=>e.format==="integer"?c?"bigserial":"bigint":"decimal","getColumNumbe\
26
- rType"),re=n(e=>{switch(e.format){case"uuid":case"time":case"date":return e.format;case"\
27
- date-time":return"timestamptz";default:let c=e.definitions?.maxLength;return te(
28
- c)?`varchar(${c})`:"text"}},"getColumnTextType");var ie;(f=>(f.prepareCreate=n((x,g,a,m)=>{let r=x.table(g).create().missing();for(let t in a.
29
- properties){let i=a.properties[t],p=m[t]?.type===oe.Primary,o=!w(i),u=B(i,p),l=P(
30
- i,p);r.column(t,u,o,l).missing()}return{query:r.build()}},"prepareCreate"),f.prepareRename=
31
- n((x,g,a)=>({query:x.table(g).rename(a).existing().build()}),"prepareRename"),f.
32
- prepareDelete=n((x,g)=>({query:x.table(g).drop().existing().cascade().build()}),
33
- "prepareDelete")))(ie||={});import{SchemaType as z}from"@ez4/schema";import{Index as R}from"@ez4/database";import{toSnakeCase as se}from"@ez4/utils";var I=n((e,c)=>`${T(e,c)}_pk`,"getPrimaryKeyName"),j=n((e,c)=>`${T(e,c)}_uk`,"ge\
34
- tUniqueKeyName"),A=n((e,c)=>`${T(e,c)}_sk`,"getSecondaryKeyName"),O=n((e,c)=>`${T(
35
- e,c)}_fk`,"getRelationName");var T=n((e,c)=>`${e}_${se(c.replaceAll(":","_"))}`,"getName");var ae;(g=>{g.prepareCreate=n((a,m,r,t,i)=>{let s={constraints:[],indexes:[]};for(let p in t){
36
- let{columns:o,type:u}=t[p];switch(u){default:throw new Error("Unsupported index \
37
- type.");case R.Primary:{let l=I(m,p),y=a.table(m).alter().existing().constraint(
38
- l).primary(o);s.constraints.push({check:N(a,l),query:y.build()});break}case R.Unique:{
39
- let l=j(m,p),y=a.table(m).alter().existing().constraint(l).unique(o);s.constraints.
40
- push({check:N(a,l),query:y.build()});break}case R.Secondary:{let l=A(m,p),y=x(o,
41
- r),h=a.index(l).create(m,o).type(y).missing();i&&h.concurrent(),s.indexes.push({
42
- query:h.build()});break}}}return s},"prepareCreate"),g.prepareUpdate=n((a,m,r,t,i,s,p)=>{
43
- let o={constraints:[],indexes:[]};for(let u in s){let{update:l,create:y,remove:h}=s[u];
44
- if(h||l){let S=(0,g.prepareDelete)(a,m,{[u]:t[u]});o.constraints.push(...S.constraints),
45
- o.indexes.push(...S.indexes)}if(y||l){let S=(0,g.prepareCreate)(a,m,r,{[u]:i[u]},
46
- p);o.constraints.push(...S.constraints),o.indexes.push(...S.indexes)}}return o},
47
- "prepareUpdate"),g.prepareRename=n((a,m,r,t)=>{let i={constraints:[],indexes:[]};
48
- for(let s in t){let{type:p}=t[s];switch(p){default:throw new Error("Unsupported \
49
- index type.");case R.Primary:{let o=I(m,s),u=I(r,s),l=a.table(r).alter().existing().
50
- constraint(o).rename(u);i.constraints.push({check:N(a,u),query:l.build()});break}case R.
51
- Unique:{let o=j(m,s),u=j(r,s),l=a.table(r).alter().existing().constraint(o).rename(
52
- u);i.constraints.push({check:N(a,u),query:l.build()});break}case R.Secondary:{let o=A(
53
- m,s),u=A(r,s),l=a.index(o).rename(u).existing();i.indexes.push({query:l.build()});
54
- break}}}return i},"prepareRename"),g.prepareDelete=n((a,m,r)=>{let t={constraints:[],
55
- indexes:[]};for(let i in r){let{type:s}=r[i];switch(s){default:throw new Error("\
56
- Unsupported index type.");case R.Primary:{let p=I(m,i),o=a.table(m).alter().existing().
57
- constraint(p).drop().existing();t.constraints.push({query:o.build()});break}case R.
58
- Unique:{let p=j(m,i),o=a.table(m).alter().existing().constraint(p).drop().existing();
59
- t.constraints.push({query:o.build()});break}case R.Secondary:{let p=A(m,i),o=a.index(
60
- p).drop().existing().concurrent();t.indexes.push({query:o.build()});break}}}return t},
61
- "prepareDelete");let x=n((a,m)=>{if(a.length===1){let[r]=a;switch(m.properties[r]?.
62
- type){case z.Object:case z.Union:case z.Array:case z.Tuple:return"GIN"}}return"B\
63
- TREE"},"getIndexType")})(ae||={});import{getTableName as ce}from"@ez4/pgclient/library";import{isNullishSchema as me}from"@ez4/schema";
64
- import{Index as K}from"@ez4/database";var pe;(m=>{m.prepareCreate=n((r,t,i,s)=>{let p=[];for(let o in s){let u=s[o];if(x(
65
- u))continue;let{[u.targetColumn]:l}=i.properties,y=O(t,o),h=!!me(l);p.push({check:N(
66
- r,y),query:a(r,t,y,u,h).build()})}return p},"prepareCreate"),m.prepareUpdate=n((r,t,i,s)=>{
67
- let p=[];for(let o in i){let u=i[o];if(x(u))continue;let l=s[u.targetColumn]?.update,
68
- y=l?.optional??l?.nullable;if(y===void 0)continue;let h=O(t,o);p.push({query:g(r,
69
- t,h).build()},{query:a(r,t,h,u,y).build()})}return p},"prepareUpdate"),m.prepareRename=
70
- n((r,t,i,s)=>{let p=[];for(let o in s){let u=s[o];if(x(u))continue;let l=O(t,o),
71
- y=O(i,o),h=r.table(i).alter().existing().constraint(l).rename(y);p.push({check:N(
72
- r,y),query:h.build()})}return p},"prepareRename"),m.prepareDelete=n((r,t,i)=>{let s=[];
73
- for(let p in i){let o=i[p];if(x(o))continue;let u=O(t,p);s.push({query:g(r,t,u).
74
- build()})}return s},"prepareDelete");let x=n(r=>{let{sourceIndex:t,targetIndex:i}=r;
75
- return!t||t===K.Secondary||i===K.Primary},"isNotRealRelation"),g=n((r,t,i)=>r.table(
76
- t).alter().existing().constraint(i).drop().existing(),"getDeleteQuery"),a=n((r,t,i,s,p)=>{
77
- let{sourceTable:o,sourceColumn:u,targetColumn:l}=s,y=ce(o),h=r.table(t).alter().
78
- existing().constraint(i).foreign(l,y,[u]);return p?h.delete().null():h.delete().
79
- cascade(),h.update().cascade(),h},"getCreateQuery")})(pe||={});import{Index as v}from"@ez4/database";var ue;(x=>(x.prepareCreate=n((g,a,m,r)=>{let t=g.table(a).alter().existing();for(let i in r){
80
- let s=r[i],o=m[i]?.type===v.Primary,u=!w(s),l=B(s,o),y=P(s,o);t.add(i,l,u,y).missing()}
81
- return{query:t.build()}},"prepareCreate"),x.prepareUpdate=n((g,a,m,r,t)=>{let i=[];
82
- for(let s in t){let{create:p,update:o,nested:u,remove:l}=t[s],y=m.properties[s],
83
- S=r[s]?.type===v.Primary,q=g.table(a).alter().existing().column(s);if(p){let k=p.
84
- definitions?.default,C=p?.nullable;k!==void 0&&q.default(P(y,S)),C!==void 0&&q.optional(
85
- C)}if(o||u){let k=u?.definitions?.update?.default,C=o?.nullable;o?.type!==void 0&&
86
- q.type(B(y,S)),k!==void 0&&q.default(P(y,S)),C!==void 0&&q.optional(C)}if(l){let k=l.
87
- definitions?.default,C=l?.nullable;k!==void 0&&q.default(null),C!==void 0&&q.optional(
88
- C)}q.empty||i.push({check:D(g,a,s),query:q.build()})}return i},"prepareUpdate"),
89
- x.prepareRename=n((g,a,m)=>{let r=[];for(let t in m){let i=m[t],s=g.table(a).alter().
90
- existing().rename(t,i);r.push({check:D(g,a,t),query:s.build()})}return r},"prepa\
91
- reRename"),x.prepareDelete=n((g,a,m)=>{let r=g.table(a).alter().existing();for(let t in m)
92
- r.drop(t).existing();return{query:r.build()}},"prepareDelete")))(ue||={});export{ue as ColumnQuery,J as DatabaseQueries,ae as IndexQueries,pe as RelationQuery,
93
- ie as TableQuery,xe as getTableRepositoryChanges};
26
+ text";case b.Number:return re(e,m);case b.String:return oe(e)}},"getColumnType"),
27
+ re=r((e,m)=>e.format==="integer"?m?"bigserial":"bigint":"decimal","getColumNumbe\
28
+ rType"),oe=r(e=>{switch(e.format){case"uuid":case"time":case"date":return e.format;case"\
29
+ date-time":return"timestamptz";default:let m=e.definitions?.maxLength;return ne(
30
+ m)?`varchar(${m})`:"text"}},"getColumnTextType");var se;(f=>(f.prepareCreate=r((x,y,l,o)=>{let t=x.table(y).create().missing();for(let n in l.
31
+ properties){let i=l.properties[n],d=o[n]?.type===ie.Primary,c=!k(i),a=B(i,d),p=N(
32
+ i,d);t.column(n,a,c,p).missing()}return{query:t.build()}},"prepareCreate"),f.prepareRename=
33
+ r((x,y,l)=>({query:x.table(y).rename(l).existing().build()}),"prepareRename"),f.
34
+ prepareDelete=r((x,y)=>({query:x.table(y).drop().existing().cascade().build()}),
35
+ "prepareDelete")))(se||={});import{SchemaType as z}from"@ez4/schema";import{Index as C}from"@ez4/database";import{toSnakeCase as ae}from"@ez4/utils";var T=r((e,m)=>`${I(e,m)}_pk`,"getPrimaryKeyName"),j=r((e,m)=>`${I(e,m)}_uk`,"ge\
36
+ tUniqueKeyName"),A=r((e,m)=>`${I(e,m)}_sk`,"getSecondaryKeyName"),P=r((e,m)=>`${I(
37
+ e,m)}_fk`,"getRelationName");var I=r((e,m)=>`${e}_${ae(m.replaceAll(":","_"))}`,"getName");var ce;(l=>{l.prepareCreate=r((o,t,n,i)=>{let s={constraints:[],validations:[],indexes:[]};
38
+ for(let d in i){let{columns:c,type:a,name:p}=i[d];switch(a){default:throw new Error(
39
+ "Unsupported index type.");case C.Primary:{let u=T(t,p);s.constraints.push({check:w(
40
+ o,u),query:o.table(t).alter().existing().constraint(u).primary(c).build()});break}case C.
41
+ Unique:{let u=j(t,p),S=y(c,n);s.indexes.push({query:o.index(u).create(t,c).type(
42
+ S).unique().concurrent().missing().build()}),s.validations.push({query:(0,l.getValidationQuery)(
43
+ o,u),name:u});break}case C.Secondary:{let u=A(t,p),S=y(c,n);s.indexes.push({query:o.
44
+ index(u).create(t,c).type(S).concurrent().missing().build()}),s.validations.push(
45
+ {query:(0,l.getValidationQuery)(o,u),name:u});break}}}return s},"prepareCreate"),
46
+ l.prepareUpdate=r((o,t,n,i,s,d)=>{let c={constraints:[],validations:[],indexes:[]};
47
+ for(let a in d){let{update:p,create:u,remove:S}=d[a];if(S||p){let h=(0,l.prepareDelete)(
48
+ o,t,{[a]:i[a]});c.constraints.push(...h.constraints),c.indexes.push(...h.indexes)}
49
+ if(u||p){let h=(0,l.prepareCreate)(o,t,n,{[a]:s[a]});c.constraints.push(...h.constraints),
50
+ c.indexes.push(...h.indexes)}}return c},"prepareUpdate"),l.prepareRename=r((o,t,n,i)=>{
51
+ let s={validations:[],constraints:[],indexes:[]};for(let d in i){let{type:c,name:a}=i[d];
52
+ switch(c){default:throw new Error("Unsupported index type.");case C.Primary:{let p=T(
53
+ t,a),u=T(n,a);s.constraints.push({check:w(o,u),query:o.table(n).alter().existing().
54
+ constraint(p).rename(u).build()});break}case C.Unique:{let p=j(t,a),u=j(n,a);s.indexes.
55
+ push({query:o.index(p).rename(u).existing().build()});break}case C.Secondary:{let p=A(
56
+ t,a),u=A(n,a);s.indexes.push({query:o.index(p).rename(u).existing().build()});break}}}
57
+ return s},"prepareRename"),l.prepareDelete=r((o,t,n)=>{let i={validations:[],constraints:[],
58
+ indexes:[]};for(let s in n){let{type:d,name:c}=n[s];switch(d){default:throw new Error(
59
+ "Unsupported index type.");case C.Primary:{let a=T(t,c),p=o.table(t).alter().existing().
60
+ constraint(a).drop().existing();i.constraints.push({query:p.build()});break}case C.
61
+ Unique:{let a=j(t,c),p=o.index(a).drop().existing().concurrent();i.indexes.push(
62
+ {query:p.build()});break}case C.Secondary:{let a=A(t,c),p=o.index(a).drop().existing().
63
+ concurrent();i.indexes.push({query:p.build()});break}}}return i},"prepareDelete"),
64
+ l.getValidationQuery=r((o,t)=>{let[n]=o.select().rawColumn("1").from("pg_index").
65
+ where({indexrelid:o.rawValue(`${o.rawString(t).build()}::regclass`),indisvalid:o.
66
+ rawValue("false"),indisready:o.rawValue("true")}).build();return n},"getValidati\
67
+ onQuery");let y=r((o,t)=>{if(o.length===1){let[n]=o;switch(t.properties[n]?.type){case z.
68
+ Object:case z.Union:case z.Array:case z.Tuple:return"GIN"}}return"BTREE"},"getIn\
69
+ dexType")})(ce||={});import{getTableName as me}from"@ez4/pgclient/library";import{isNullishSchema as ue}from"@ez4/schema";
70
+ import{Index as K}from"@ez4/database";var pe;(o=>{o.prepareCreate=r((t,n,i,s)=>{let d=[];for(let c in s){let a=s[c];if(x(
71
+ a))continue;let{[a.targetColumn]:p}=i.properties,u=P(n,c),S=!!ue(p);d.push({check:w(
72
+ t,u),query:l(t,n,u,a,S).build()})}return d},"prepareCreate"),o.prepareUpdate=r((t,n,i,s)=>{
73
+ let d=[];for(let c in i){let a=i[c];if(x(a))continue;let p=s[a.targetColumn]?.update,
74
+ u=p?.optional??p?.nullable;if(u===void 0)continue;let S=P(n,c);d.push({query:y(t,
75
+ n,S).build()},{query:l(t,n,S,a,u).build()})}return d},"prepareUpdate"),o.prepareRename=
76
+ r((t,n,i,s)=>{let d=[];for(let c in s){let a=s[c];if(x(a))continue;let p=P(n,c),
77
+ u=P(i,c),S=t.table(i).alter().existing().constraint(p).rename(u);d.push({check:w(
78
+ t,u),query:S.build()})}return d},"prepareRename"),o.prepareDelete=r((t,n,i)=>{let s=[];
79
+ for(let d in i){let c=i[d];if(x(c))continue;let a=P(n,d);s.push({query:y(t,n,a).
80
+ build()})}return s},"prepareDelete");let x=r(t=>{let{sourceIndex:n,targetIndex:i}=t;
81
+ return!n||n===K.Secondary||i===K.Primary},"isNotRealRelation"),y=r((t,n,i)=>t.table(
82
+ n).alter().existing().constraint(i).drop().existing(),"getDeleteQuery"),l=r((t,n,i,s,d)=>{
83
+ let{sourceTable:c,sourceColumn:a,targetColumn:p}=s,u=me(c),S=t.table(n).alter().
84
+ existing().constraint(i),h=S.foreign(p,u,[a]).validate(!1);return d?h.delete().null():
85
+ h.delete().cascade(),h.update().cascade(),S},"getCreateQuery")})(pe||={});import{Index as V}from"@ez4/database";var le;(x=>(x.prepareCreate=r((y,l,o,t)=>{let n=y.table(l).alter().existing();for(let i in t){
86
+ let s=t[i],c=o[i]?.type===V.Primary,a=!k(s),p=B(s,c),u=N(s,c);n.add(i,p,a,u).missing()}
87
+ return{query:n.build()}},"prepareCreate"),x.prepareUpdate=r((y,l,o,t,n)=>{let i=[];
88
+ for(let s in n){let{create:d,update:c,nested:a,remove:p}=n[s],u=o.properties[s],
89
+ h=t[s]?.type===V.Primary,q=y.table(l).alter().existing().column(s);if(d){let O=d.
90
+ definitions?.default,R=d?.nullable;O!==void 0&&q.default(N(u,h)),!h&&R!==void 0&&
91
+ q.optional(R)}if(c||a){let O=a?.definitions?.update?.default,R=c?.nullable;c?.type!==
92
+ void 0&&q.type(B(u,h)),O!==void 0&&q.default(N(u,h)),!h&&R!==void 0&&q.optional(
93
+ R)}if(p){let O=p.definitions?.default,R=p?.nullable;O!==void 0&&q.default(null),
94
+ !h&&R!==void 0&&q.optional(R)}q.empty||i.push({check:_(y,l,s),query:q.build()})}
95
+ return i},"prepareUpdate"),x.prepareRename=r((y,l,o)=>{let t=[];for(let n in o){
96
+ let i=o[n],s=y.table(l).alter().existing().rename(n,i);t.push({check:_(y,l,n),query:s.
97
+ build()})}return t},"prepareRename"),x.prepareDelete=r((y,l,o)=>{let t=y.table(l).
98
+ alter().existing();for(let n in o)t.drop(n).existing();return{query:t.build()}},
99
+ "prepareDelete")))(le||={});export{le as ColumnQuery,W as DatabaseQueries,ce as IndexQueries,pe as RelationQuery,
100
+ se as TableQuery,Se as getTableRepositoryChanges};
94
101
  //# sourceMappingURL=library.mjs.map