@ez4/pgmigration 0.38.0 → 0.40.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.
package/dist/library.cjs CHANGED
@@ -1,94 +1,99 @@
1
- "use strict";var z=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames;var re=Object.prototype.hasOwnProperty;var n=(e,t)=>z(e,"name",{value:t,configurable:!0});var ne=(e,t)=>{for(var l in t)z(e,l,{get:t[l],enumerable:!0})},oe=(e,t,l,y)=>{if(t&&
2
- typeof t=="object"||typeof t=="function")for(let d of te(t))!re.call(e,d)&&d!==l&&
3
- z(e,d,{get:()=>t[d],enumerable:!(y=ee(t,d))||y.enumerable});return e};var ie=e=>oe(z({},"__esModule",{value:!0}),e);var pe={};ne(pe,{ColumnQuery:()=>Q,DatabaseQueries:()=>F,IndexQueries:()=>W,RelationQuery:()=>Z,
4
- TableQuery:()=>H,getTableRepositoryChanges:()=>se});module.exports=ie(pe);var R=require("@ez4/utils"),_=require("@ez4/pgclient/library"),$=require("@ez4/schema");var se=n((e,t)=>(0,R.deepCompareObject)(e,t,{onRename:n((l,y)=>!(0,R.isAnyObject)(
5
- l)||!(0,R.isAnyObject)(y)?!1:(0,_.isTableMetadata)(l)&&(0,_.isTableMetadata)(y)?
6
- ae(l.schema,y.schema):(0,$.isAnySchema)(l)&&(0,$.isAnySchema)(y)?ce(l,y):!1,"onR\
7
- ename")}),"getTableRepositoryChanges"),ae=n((e,t)=>(0,R.deepEqual)(Object.keys(e.
8
- properties),Object.keys(t.properties)),"canRenameTable"),ce=n((e,t)=>(0,R.deepEqual)(
9
- e,t,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
10
- Column");var v=require("@ez4/pgsql");var V=n((e,t)=>{let[l]=e.select().rawColumn("1").from("pg_database").where({datname:e.
11
- rawString(t)}).build();return l},"getCheckDatabaseQuery"),N=n((e,t)=>{let[l]=e.select().
12
- rawColumn("1").from("pg_constraint").where({conname:e.rawString(t)}).build();return l},
13
- "getCheckConstraintQuery"),U=n((e,t,l)=>{let[y]=e.select().rawColumn("1").where(
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(
14
14
  {NOT:{exists:e.select().from(e.rawValue("information_schema.columns")).rawColumn(
15
- "1").where({column_name:e.rawString(l),table_name:e.rawString(t)})}}).build();return y},
16
- "getCheckColumnQuery");var F;(l=>(l.prepareCreate=n(y=>{let d=new v.SqlBuilder;return{check:V(d,y),query:`\
17
- CREATE DATABASE "${y}"`}},"prepareCreate"),l.prepareDelete=n(y=>({query:`DROP DA\
18
- TABASE IF EXISTS "${y}" WITH (FORCE)`}),"prepareDelete")))(F||={});var G=require("@ez4/database");var x=require("@ez4/schema"),L=require("@ez4/utils");var w=n(e=>!!(e.nullable||e.optional),"isOptionalColumn"),P=n((e,t)=>{if((0,x.isScalarSchema)(
19
- e)||(0,x.isObjectSchema)(e)||(0,x.isArraySchema)(e)||(0,x.isTupleSchema)(e)){let{
20
- definitions:l}=e;switch(typeof l?.default){case"boolean":case"number":return`${l.
21
- default}`;case"string":return`'${l.default}'`;case"object":return`'${JSON.stringify(
22
- l.default)}'`}}if((0,x.isEnumSchema)(e)){let{definitions:l}=e;if(l?.default)return`\
23
- '${l.default}'`}if((0,x.isStringSchema)(e)&&t)switch(e.format){case"date-time":case"\
24
- date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(w(e))return"\
25
- null"},"getColumnDefault"),I=n((e,t)=>{switch(e.type){case x.SchemaType.Array:case x.SchemaType.
26
- Object:case x.SchemaType.Reference:case x.SchemaType.Union:case x.SchemaType.Tuple:
27
- return"jsonb";case x.SchemaType.Boolean:return"boolean";case x.SchemaType.Enum:return"\
28
- text";case x.SchemaType.Number:return me(e,t);case x.SchemaType.String:return ue(
29
- e)}},"getColumnType"),me=n((e,t)=>e.format==="integer"?t?"bigserial":"bigint":"d\
30
- ecimal","getColumNumberType"),ue=n(e=>{switch(e.format){case"uuid":case"time":case"\
31
- date":return e.format;case"date-time":return"timestamptz";default:let t=e.definitions?.
32
- maxLength;return(0,L.isAnyNumber)(t)?`varchar(${t})`:"text"}},"getColumnTextType");var H;(y=>(y.prepareCreate=n((d,c,m,g)=>{let i=d.table(c).create().missing();for(let r in m.
33
- properties){let o=m.properties[r],a=g[r]?.type===G.Index.Primary,p=!w(o),u=I(o,a),
34
- f=P(o,a);i.column(r,u,p,f).missing()}return{query:i.build()}},"prepareCreate"),y.
35
- prepareRename=n((d,c,m)=>({query:d.table(c).rename(m).existing().build()}),"prep\
36
- areRename"),y.prepareDelete=n((d,c)=>({query:d.table(c).drop().existing().cascade().
37
- build()}),"prepareDelete")))(H||={});var j=require("@ez4/schema"),q=require("@ez4/database");var J=require("@ez4/utils");var B=n((e,t)=>`${D(e,t)}_pk`,"getPrimaryKeyName"),A=n((e,t)=>`${D(e,t)}_uk`,"ge\
38
- tUniqueKeyName"),T=n((e,t)=>`${D(e,t)}_sk`,"getSecondaryKeyName"),k=n((e,t)=>`${D(
39
- e,t)}_fk`,"getRelationName");var D=n((e,t)=>`${e}_${(0,J.toSnakeCase)(t.replaceAll(":","_"))}`,"getName");var W;(d=>{d.prepareCreate=n((c,m,g,i,r)=>{let o={constraints:[],indexes:[]};for(let s in i){
40
- let{columns:a,type:p}=i[s];switch(p){default:throw new Error("Unsupported index \
41
- type.");case q.Index.Primary:{let u=B(m,s),f=c.table(m).alter().existing().constraint(
42
- u).primary(a);o.constraints.push({check:N(c,u),query:f.build()});break}case q.Index.
43
- Unique:{let u=A(m,s),f=c.table(m).alter().existing().constraint(u).unique(a);o.constraints.
44
- push({check:N(c,u),query:f.build()});break}case q.Index.Secondary:{let u=T(m,s),
45
- f=y(a,g),S=c.index(u).create(m,a).type(f).missing();r&&S.concurrent(),o.indexes.
46
- push({query:S.build()});break}}}return o},"prepareCreate"),d.prepareRename=n((c,m,g,i)=>{
47
- let r={constraints:[],indexes:[]};for(let o in i){let{type:s}=i[o];switch(s){default:
48
- throw new Error("Unsupported index type.");case q.Index.Primary:{let a=B(m,o),p=B(
49
- g,o),u=c.table(g).alter().existing().constraint(a).rename(p);r.constraints.push(
50
- {check:N(c,p),query:u.build()});break}case q.Index.Unique:{let a=A(m,o),p=A(g,o),
51
- u=c.table(g).alter().existing().constraint(a).rename(p);r.constraints.push({check:N(
52
- c,p),query:u.build()});break}case q.Index.Secondary:{let a=T(m,o),p=T(g,o),u=c.index(
53
- a).rename(p).existing();r.indexes.push({query:u.build()});break}}}return r},"pre\
54
- pareRename"),d.prepareDelete=n((c,m,g)=>{let i={constraints:[],indexes:[]};for(let r in g){
55
- let{type:o}=g[r];switch(o){default:throw new Error("Unsupported index type.");case q.Index.
56
- Primary:{let s=B(m,r),a=c.table(m).alter().existing().constraint(s).drop().existing();
57
- i.constraints.push({query:a.build()});break}case q.Index.Unique:{let s=A(m,r),a=c.
58
- table(m).alter().existing().constraint(s).drop().existing();i.constraints.push({
59
- query:a.build()});break}case q.Index.Secondary:{let s=T(m,r),a=c.index(s).drop().
60
- existing().concurrent();i.indexes.push({query:a.build()});break}}}return i},"pre\
61
- pareDelete");let y=n((c,m)=>{if(c.length===1){let[g]=c;switch(m.properties[g]?.type){case j.SchemaType.
62
- Object:case j.SchemaType.Union:case j.SchemaType.Array:case j.SchemaType.Tuple:return"\
63
- GIN"}}return"BTREE"},"getIndexType")})(W||={});var X=require("@ez4/pgclient/library"),Y=require("@ez4/schema"),M=require("@ez4/database");var Z;(g=>{g.prepareCreate=n((i,r,o,s)=>{let a=[];for(let p in s){let u=s[p];if(d(
64
- u))continue;let{[u.targetColumn]:f}=o.properties,S=k(r,p),h=!!(0,Y.isNullishSchema)(
65
- f);a.push({check:N(i,S),query:m(i,r,S,u,h).build()})}return a},"prepareCreate"),
66
- g.prepareUpdate=n((i,r,o,s)=>{let a=[];for(let p in o){let u=o[p];if(d(u))continue;
67
- let f=s[u.targetColumn]?.update,S=f?.optional??f?.nullable;if(S===void 0)continue;
68
- let h=k(r,p);a.push({query:c(i,r,h).build()},{query:m(i,r,h,u,S).build()})}return a},
69
- "prepareUpdate"),g.prepareRename=n((i,r,o,s)=>{let a=[];for(let p in s){let u=s[p];
70
- if(d(u))continue;let f=k(r,p),S=k(o,p),h=i.table(o).alter().existing().constraint(
71
- f).rename(S);a.push({check:N(i,S),query:h.build()})}return a},"prepareRename"),g.
72
- prepareDelete=n((i,r,o)=>{let s=[];for(let a in o){let p=o[a];if(d(p))continue;let u=k(
73
- r,a);s.push({query:c(i,r,u).build()})}return s},"prepareDelete");let d=n(i=>{let{
74
- sourceIndex:r,targetIndex:o}=i;return!r||r===M.Index.Secondary||o===M.Index.Primary},
75
- "isNotRealRelation"),c=n((i,r,o)=>i.table(r).alter().existing().constraint(o).drop().
76
- existing(),"getDeleteQuery"),m=n((i,r,o,s,a)=>{let{sourceTable:p,sourceColumn:u,
77
- targetColumn:f}=s,S=(0,X.getTableName)(p),h=i.table(r).alter().existing().constraint(
78
- o).foreign(f,S,[u]);return a?h.delete().null():h.delete().cascade(),h.update().cascade(),
79
- h},"getCreateQuery")})(Z||={});var K=require("@ez4/database");var Q;(d=>(d.prepareCreate=n((c,m,g,i)=>{let r=c.table(m).alter().existing();for(let o in i){
80
- let s=i[o],p=g[o]?.type===K.Index.Primary,u=!w(s),f=I(s,p),S=P(s,p);r.add(o,f,u,
81
- S).missing()}return{query:r.build()}},"prepareCreate"),d.prepareUpdate=n((c,m,g,i,r)=>{
82
- let o=[];for(let s in r){let{create:a,update:p,nested:u,remove:f}=r[s],S=g.properties[s],
83
- E=i[s]?.type===K.Index.Primary,b=c.table(m).alter().existing().column(s);if(a){let O=a.
84
- definitions?.default,C=a?.nullable;O!==void 0&&b.default(P(S,E)),C!==void 0&&b.optional(
85
- C)}if(p||u){let O=u?.definitions?.update?.default,C=p?.nullable;p?.type!==void 0&&
86
- b.type(I(S,E)),O!==void 0&&b.default(P(S,E)),C!==void 0&&b.optional(C)}if(f){let O=f.
87
- definitions?.default,C=f?.nullable;O!==void 0&&b.default(null),C!==void 0&&b.optional(
88
- C)}b.empty||o.push({check:U(c,m,s),query:b.build()})}return o},"prepareUpdate"),
89
- d.prepareRename=n((c,m,g)=>{let i=[];for(let r in g){let o=g[r],s=c.table(m).alter().
90
- existing().rename(r,o);i.push({check:U(c,m,r),query:s.build()})}return i},"prepa\
91
- reRename"),d.prepareDelete=n((c,m,g)=>{let i=c.table(m).alter().existing();for(let r in g)
92
- i.drop(r).existing();return{query:i.build()}},"prepareDelete")))(Q||={});0&&(module.exports={ColumnQuery,DatabaseQueries,IndexQueries,RelationQuery,TableQuery,
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"\
24
+ 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.
67
+ 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,
93
98
  getTableRepositoryChanges});
94
99
  //# sourceMappingURL=library.cjs.map
package/dist/library.mjs CHANGED
@@ -1,89 +1,94 @@
1
- var v=Object.defineProperty;var r=(e,a)=>v(e,"name",{value:a,configurable:!0});import{deepEqual as U,deepCompareObject as F,isAnyObject as E}from"@ez4/utils";import{
2
- isTableMetadata as _}from"@ez4/pgclient/library";import{isAnySchema as $}from"@ez4/schema";var xe=r((e,a)=>F(e,a,{onRename:r((g,f)=>!E(g)||!E(f)?!1:_(g)&&_(f)?L(g.schema,f.
3
- schema):$(g)&&$(f)?G(g,f):!1,"onRename")}),"getTableRepositoryChanges"),L=r((e,a)=>U(
4
- Object.keys(e.properties),Object.keys(a.properties)),"canRenameTable"),G=r((e,a)=>U(
5
- e,a,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
6
- Column");import{SqlBuilder as H}from"@ez4/pgsql";var M=r((e,a)=>{let[g]=e.select().rawColumn("1").from("pg_database").where({datname:e.
7
- rawString(a)}).build();return g},"getCheckDatabaseQuery"),R=r((e,a)=>{let[g]=e.select().
8
- rawColumn("1").from("pg_constraint").where({conname:e.rawString(a)}).build();return g},
9
- "getCheckConstraintQuery"),D=r((e,a,g)=>{let[f]=e.select().rawColumn("1").where(
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(
10
10
  {NOT:{exists:e.select().from(e.rawValue("information_schema.columns")).rawColumn(
11
- "1").where({column_name:e.rawString(g),table_name:e.rawString(a)})}}).build();return f},
12
- "getCheckColumnQuery");var J;(g=>(g.prepareCreate=r(f=>{let y=new H;return{check:M(y,f),query:`CREATE D\
13
- ATABASE "${f}"`}},"prepareCreate"),g.prepareDelete=r(f=>({query:`DROP DATABASE I\
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
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 q}from"@ez4/schema";import{
16
- isAnyNumber as te}from"@ez4/utils";var O=r(e=>!!(e.nullable||e.optional),"isOptionalColumn"),N=r((e,a)=>{if(Z(e)||Y(
17
- e)||W(e)||ee(e)){let{definitions:g}=e;switch(typeof g?.default){case"boolean":case"\
18
- number":return`${g.default}`;case"string":return`'${g.default}'`;case"object":return`\
19
- '${JSON.stringify(g.default)}'`}}if(X(e)){let{definitions:g}=e;if(g?.default)return`\
20
- '${g.default}'`}if(Q(e)&&a)switch(e.format){case"date-time":case"date":case"time":
21
- return"now()";case"uuid":return"gen_random_uuid()"}if(O(e))return"null"},"getCol\
22
- umnDefault"),w=r((e,a)=>{switch(e.type){case q.Array:case q.Object:case q.Reference:case q.
23
- Union:case q.Tuple:return"jsonb";case q.Boolean:return"boolean";case q.Enum:return"\
24
- text";case q.Number:return re(e,a);case q.String:return ne(e)}},"getColumnType"),
25
- re=r((e,a)=>e.format==="integer"?a?"bigserial":"bigint":"decimal","getColumNumbe\
26
- rType"),ne=r(e=>{switch(e.format){case"uuid":case"time":case"date":return e.format;case"\
27
- date-time":return"timestamptz";default:let a=e.definitions?.maxLength;return te(
28
- a)?`varchar(${a})`:"text"}},"getColumnTextType");var ie;(f=>(f.prepareCreate=r((y,c,m,l)=>{let o=y.table(c).create().missing();for(let t in m.
29
- properties){let n=m.properties[t],s=l[t]?.type===oe.Primary,p=!O(n),u=w(n,s),d=N(
30
- n,s);o.column(t,u,p,d).missing()}return{query:o.build()}},"prepareCreate"),f.prepareRename=
31
- r((y,c,m)=>({query:y.table(c).rename(m).existing().build()}),"prepareRename"),f.
32
- prepareDelete=r((y,c)=>({query:y.table(c).drop().existing().cascade().build()}),
33
- "prepareDelete")))(ie||={});import{SchemaType as j}from"@ez4/schema";import{Index as b}from"@ez4/database";import{toSnakeCase as se}from"@ez4/utils";var I=r((e,a)=>`${T(e,a)}_pk`,"getPrimaryKeyName"),B=r((e,a)=>`${T(e,a)}_uk`,"ge\
34
- tUniqueKeyName"),A=r((e,a)=>`${T(e,a)}_sk`,"getSecondaryKeyName"),P=r((e,a)=>`${T(
35
- e,a)}_fk`,"getRelationName");var T=r((e,a)=>`${e}_${se(a.replaceAll(":","_"))}`,"getName");var ae;(y=>{y.prepareCreate=r((c,m,l,o,t)=>{let n={constraints:[],indexes:[]};for(let i in o){
36
- let{columns:s,type:p}=o[i];switch(p){default:throw new Error("Unsupported index \
37
- type.");case b.Primary:{let u=I(m,i),d=c.table(m).alter().existing().constraint(
38
- u).primary(s);n.constraints.push({check:R(c,u),query:d.build()});break}case b.Unique:{
39
- let u=B(m,i),d=c.table(m).alter().existing().constraint(u).unique(s);n.constraints.
40
- push({check:R(c,u),query:d.build()});break}case b.Secondary:{let u=A(m,i),d=f(s,
41
- l),x=c.index(u).create(m,s).type(d).missing();t&&x.concurrent(),n.indexes.push({
42
- query:x.build()});break}}}return n},"prepareCreate"),y.prepareRename=r((c,m,l,o)=>{
43
- let t={constraints:[],indexes:[]};for(let n in o){let{type:i}=o[n];switch(i){default:
44
- throw new Error("Unsupported index type.");case b.Primary:{let s=I(m,n),p=I(l,n),
45
- u=c.table(l).alter().existing().constraint(s).rename(p);t.constraints.push({check:R(
46
- c,p),query:u.build()});break}case b.Unique:{let s=B(m,n),p=B(l,n),u=c.table(l).alter().
47
- existing().constraint(s).rename(p);t.constraints.push({check:R(c,p),query:u.build()});
48
- break}case b.Secondary:{let s=A(m,n),p=A(l,n),u=c.index(s).rename(p).existing();
49
- t.indexes.push({query:u.build()});break}}}return t},"prepareRename"),y.prepareDelete=
50
- r((c,m,l)=>{let o={constraints:[],indexes:[]};for(let t in l){let{type:n}=l[t];switch(n){default:
51
- throw new Error("Unsupported index type.");case b.Primary:{let i=I(m,t),s=c.table(
52
- m).alter().existing().constraint(i).drop().existing();o.constraints.push({query:s.
53
- build()});break}case b.Unique:{let i=B(m,t),s=c.table(m).alter().existing().constraint(
54
- i).drop().existing();o.constraints.push({query:s.build()});break}case b.Secondary:{
55
- let i=A(m,t),s=c.index(i).drop().existing().concurrent();o.indexes.push({query:s.
56
- build()});break}}}return o},"prepareDelete");let f=r((c,m)=>{if(c.length===1){let[
57
- l]=c;switch(m.properties[l]?.type){case j.Object:case j.Union:case j.Array:case j.
58
- Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(ae||={});import{getTableName as ce}from"@ez4/pgclient/library";import{isNullishSchema as me}from"@ez4/schema";
59
- import{Index as K}from"@ez4/database";var ue;(l=>{l.prepareCreate=r((o,t,n,i)=>{let s=[];for(let p in i){let u=i[p];if(y(
60
- u))continue;let{[u.targetColumn]:d}=n.properties,x=P(t,p),S=!!me(d);s.push({check:R(
61
- o,x),query:m(o,t,x,u,S).build()})}return s},"prepareCreate"),l.prepareUpdate=r((o,t,n,i)=>{
62
- let s=[];for(let p in n){let u=n[p];if(y(u))continue;let d=i[u.targetColumn]?.update,
63
- x=d?.optional??d?.nullable;if(x===void 0)continue;let S=P(t,p);s.push({query:c(o,
64
- t,S).build()},{query:m(o,t,S,u,x).build()})}return s},"prepareUpdate"),l.prepareRename=
65
- r((o,t,n,i)=>{let s=[];for(let p in i){let u=i[p];if(y(u))continue;let d=P(t,p),
66
- x=P(n,p),S=o.table(n).alter().existing().constraint(d).rename(x);s.push({check:R(
67
- o,x),query:S.build()})}return s},"prepareRename"),l.prepareDelete=r((o,t,n)=>{let i=[];
68
- for(let s in n){let p=n[s];if(y(p))continue;let u=P(t,s);i.push({query:c(o,t,u).
69
- build()})}return i},"prepareDelete");let y=r(o=>{let{sourceIndex:t,targetIndex:n}=o;
70
- return!t||t===K.Secondary||n===K.Primary},"isNotRealRelation"),c=r((o,t,n)=>o.table(
71
- t).alter().existing().constraint(n).drop().existing(),"getDeleteQuery"),m=r((o,t,n,i,s)=>{
72
- let{sourceTable:p,sourceColumn:u,targetColumn:d}=i,x=ce(p),S=o.table(t).alter().
73
- existing().constraint(n).foreign(d,x,[u]);return s?S.delete().null():S.delete().
74
- cascade(),S.update().cascade(),S},"getCreateQuery")})(ue||={});import{Index as V}from"@ez4/database";var pe;(y=>(y.prepareCreate=r((c,m,l,o)=>{let t=c.table(m).alter().existing();for(let n in o){
75
- let i=o[n],p=l[n]?.type===V.Primary,u=!O(i),d=w(i,p),x=N(i,p);t.add(n,d,u,x).missing()}
76
- return{query:t.build()}},"prepareCreate"),y.prepareUpdate=r((c,m,l,o,t)=>{let n=[];
77
- for(let i in t){let{create:s,update:p,nested:u,remove:d}=t[i],x=l.properties[i],
78
- z=o[i]?.type===V.Primary,h=c.table(m).alter().existing().column(i);if(s){let k=s.
79
- definitions?.default,C=s?.nullable;k!==void 0&&h.default(N(x,z)),C!==void 0&&h.optional(
80
- C)}if(p||u){let k=u?.definitions?.update?.default,C=p?.nullable;p?.type!==void 0&&
81
- h.type(w(x,z)),k!==void 0&&h.default(N(x,z)),C!==void 0&&h.optional(C)}if(d){let k=d.
82
- definitions?.default,C=d?.nullable;k!==void 0&&h.default(null),C!==void 0&&h.optional(
83
- C)}h.empty||n.push({check:D(c,m,i),query:h.build()})}return n},"prepareUpdate"),
84
- y.prepareRename=r((c,m,l)=>{let o=[];for(let t in l){let n=l[t],i=c.table(m).alter().
85
- existing().rename(t,n);o.push({check:D(c,m,t),query:i.build()})}return o},"prepa\
86
- reRename"),y.prepareDelete=r((c,m,l)=>{let o=c.table(m).alter().existing();for(let t in l)
87
- o.drop(t).existing();return{query:o.build()}},"prepareDelete")))(pe||={});export{pe as ColumnQuery,J as DatabaseQueries,ae as IndexQueries,ue as RelationQuery,
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.
23
+ 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,
88
93
  ie as TableQuery,xe as getTableRepositoryChanges};
89
94
  //# sourceMappingURL=library.mjs.map
package/dist/main.cjs CHANGED
@@ -1,134 +1,142 @@
1
- "use strict";var V=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ie=Object.getOwnPropertyNames;var ae=Object.prototype.hasOwnProperty;var p=(e,s)=>V(e,"name",{value:s,configurable:!0});var ce=(e,s)=>{for(var d in s)V(e,d,{get:s[d],enumerable:!0})},pe=(e,s,d,g)=>{if(s&&
2
- typeof s=="object"||typeof s=="function")for(let m of ie(s))!ae.call(e,m)&&m!==d&&
3
- V(e,m,{get:()=>s[m],enumerable:!(g=se(s,m))||g.enumerable});return e};var me=e=>pe(V({},"__esModule",{value:!0}),e);var ye={};ce(ye,{getCreateQueries:()=>re,getDeleteQueries:()=>oe,getUpdateQueries:()=>fe});
4
- module.exports=me(ye);var L=require("@ez4/pgsql");var Y=require("@ez4/database");var x=require("@ez4/schema"),X=require("@ez4/utils");var U=p(e=>!!(e.nullable||e.optional),"isOptionalColumn"),j=p((e,s)=>{if((0,x.isScalarSchema)(
5
- e)||(0,x.isObjectSchema)(e)||(0,x.isArraySchema)(e)||(0,x.isTupleSchema)(e)){let{
6
- definitions:d}=e;switch(typeof d?.default){case"boolean":case"number":return`${d.
7
- default}`;case"string":return`'${d.default}'`;case"object":return`'${JSON.stringify(
8
- d.default)}'`}}if((0,x.isEnumSchema)(e)){let{definitions:d}=e;if(d?.default)return`\
9
- '${d.default}'`}if((0,x.isStringSchema)(e)&&s)switch(e.format){case"date-time":case"\
10
- date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(U(e))return"\
11
- null"},"getColumnDefault"),M=p((e,s)=>{switch(e.type){case x.SchemaType.Array:case x.SchemaType.
12
- Object:case x.SchemaType.Reference:case x.SchemaType.Union:case x.SchemaType.Tuple:
13
- return"jsonb";case x.SchemaType.Boolean:return"boolean";case x.SchemaType.Enum:return"\
14
- text";case x.SchemaType.Number:return ue(e,s);case x.SchemaType.String:return le(
15
- e)}},"getColumnType"),ue=p((e,s)=>e.format==="integer"?s?"bigserial":"bigint":"d\
16
- ecimal","getColumNumberType"),le=p(e=>{switch(e.format){case"uuid":case"time":case"\
17
- date":return e.format;case"date-time":return"timestamptz";default:let s=e.definitions?.
18
- maxLength;return(0,X.isAnyNumber)(s)?`varchar(${s})`:"text"}},"getColumnTextType");var _;(g=>(g.prepareCreate=p((m,r,u,f)=>{let o=m.table(r).create().missing();for(let t in u.
19
- properties){let n=u.properties[t],c=f[t]?.type===Y.Index.Primary,l=!U(n),i=M(n,c),
20
- y=j(n,c);o.column(t,i,l,y).missing()}return{query:o.build()}},"prepareCreate"),g.
21
- prepareRename=p((m,r,u)=>({query:m.table(r).rename(u).existing().build()}),"prep\
22
- areRename"),g.prepareDelete=p((m,r)=>({query:m.table(r).drop().existing().cascade().
23
- build()}),"prepareDelete")))(_||={});var J=require("@ez4/database");var b=p((e,s)=>{let[d]=e.select().rawColumn("1").from("pg_constraint").where({conname:e.
24
- rawString(s)}).build();return d},"getCheckConstraintQuery"),G=p((e,s,d)=>{let[g]=e.
1
+ "use strict";var V=Object.defineProperty;var ie=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var ce=Object.prototype.hasOwnProperty;var p=(e,o)=>V(e,"name",{value:o,configurable:!0});var me=(e,o)=>{for(var g in o)V(e,g,{get:o[g],enumerable:!0})},pe=(e,o,g,y)=>{if(o&&
2
+ typeof o=="object"||typeof o=="function")for(let d of ae(o))!ce.call(e,d)&&d!==g&&
3
+ V(e,d,{get:()=>o[d],enumerable:!(y=ie(o,d))||y.enumerable});return e};var ue=e=>pe(V({},"__esModule",{value:!0}),e);var he={};me(he,{getCreateQueries:()=>oe,getDeleteQueries:()=>se,getUpdateQueries:()=>ye});
4
+ module.exports=ue(he);var L=require("@ez4/pgsql");var B=require("@ez4/utils"),G=require("@ez4/pgclient/library"),J=require("@ez4/schema");var Y=p((e,o)=>(0,B.deepCompareObject)(e,o,{onRename:p((g,y)=>!(0,B.isAnyObject)(
5
+ g)||!(0,B.isAnyObject)(y)?!1:(0,G.isTableMetadata)(g)&&(0,G.isTableMetadata)(y)?
6
+ le(g.schema,y.schema):(0,J.isAnySchema)(g)&&(0,J.isAnySchema)(y)?de(g,y):!1,"onR\
7
+ ename")}),"getTableRepositoryChanges"),le=p((e,o)=>(0,B.deepEqual)(Object.keys(e.
8
+ properties),Object.keys(o.properties)),"canRenameTable"),de=p((e,o)=>(0,B.deepEqual)(
9
+ e,o,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
10
+ Column");var C=require("@ez4/schema"),H=require("@ez4/utils");var R=p((e,o)=>{let[g]=e.select().rawColumn("1").from("pg_constraint").where({conname:e.
11
+ rawString(o)}).build();return g},"getCheckConstraintQuery"),F=p((e,o,g)=>{let[y]=e.
25
12
  select().rawColumn("1").where({NOT:{exists:e.select().from(e.rawValue("informati\
26
- on_schema.columns")).rawColumn("1").where({column_name:e.rawString(d),table_name:e.
27
- rawString(s)})}}).build();return g},"getCheckColumnQuery");var I;(m=>(m.prepareCreate=p((r,u,f,o)=>{let t=r.table(u).alter().existing();for(let n in o){
28
- let a=o[n],l=f[n]?.type===J.Index.Primary,i=!U(a),y=M(a,l),h=j(a,l);t.add(n,y,i,
29
- h).missing()}return{query:t.build()}},"prepareCreate"),m.prepareUpdate=p((r,u,f,o,t)=>{
30
- let n=[];for(let a in t){let{create:c,update:l,nested:i,remove:y}=t[a],h=f.properties[a],
31
- R=o[a]?.type===J.Index.Primary,q=r.table(u).alter().existing().column(a);if(c){let O=c.
32
- definitions?.default,k=c?.nullable;O!==void 0&&q.default(j(h,R)),k!==void 0&&q.optional(
33
- k)}if(l||i){let O=i?.definitions?.update?.default,k=l?.nullable;l?.type!==void 0&&
34
- q.type(M(h,R)),O!==void 0&&q.default(j(h,R)),k!==void 0&&q.optional(k)}if(y){let O=y.
35
- definitions?.default,k=y?.nullable;O!==void 0&&q.default(null),k!==void 0&&q.optional(
36
- k)}q.empty||n.push({check:G(r,u,a),query:q.build()})}return n},"prepareUpdate"),
37
- m.prepareRename=p((r,u,f)=>{let o=[];for(let t in f){let n=f[t],a=r.table(u).alter().
38
- existing().rename(t,n);o.push({check:G(r,u,t),query:a.build()})}return o},"prepa\
39
- reRename"),m.prepareDelete=p((r,u,f)=>{let o=r.table(u).alter().existing();for(let t in f)
40
- o.drop(t).existing();return{query:o.build()}},"prepareDelete")))(I||={});var P=require("@ez4/schema");var Z=require("@ez4/utils");var v=p((e,s)=>`${E(e,s)}_pk`,"getPrimaryKeyName"),Q=p((e,s)=>`${E(e,s)}_uk`,"ge\
41
- tUniqueKeyName"),$=p((e,s)=>`${E(e,s)}_sk`,"getSecondaryKeyName"),A=p((e,s)=>`${E(
42
- e,s)}_fk`,"getRelationName"),C=p((e,s)=>`${E(e,s)}_ck`,"getConstraintName"),E=p(
43
- (e,s)=>`${e}_${(0,Z.toSnakeCase)(s.replaceAll(":","_"))}`,"getName");var B;(f=>{f.prepareCreate=p((o,t,n)=>{let a=[];for(let c in n){let l=n[c];if(!(0,P.isEnumSchema)(
44
- l))continue;let i=C(t,c);a.push({check:b(o,i),query:u(o,t,i,c,l.options).build()})}
45
- return a},"prepareCreate"),f.prepareUpdate=p((o,t,n,a,c)=>{let l=[];for(let i in c){
46
- let{update:y,create:h,remove:S}=c[i];if(S){let R=a.properties[i];if((0,P.isEnumSchema)(
47
- R)){let q=C(t,i);l.push({query:r(o,t,q).build()})}}if(y){let R=a.properties[i],q=n.
48
- properties[i];if((0,P.isEnumSchema)(R)&&(0,P.isEnumSchema)(q)){let O=C(t,i);l.push(
49
- {query:r(o,t,O).build()},{query:u(o,t,O,i,q.options).build()})}}if(h){let R=n.properties[i];
50
- if((0,P.isEnumSchema)(R)){let q=C(t,i);l.push({check:b(o,q),query:u(o,t,q,i,R.options).
51
- build()})}}}return l},"prepareUpdate"),f.prepareRenameTable=p((o,t,n,a)=>{let c=[];
52
- for(let l in a){let i=a[l];if(!(0,P.isEnumSchema)(i))continue;let y=C(t,l),h=C(n,
53
- l),S=o.table(n).alter().existing().constraint(y).rename(h);c.push({check:b(o,h),
54
- query:S.build()})}return c},"prepareRenameTable"),f.prepareRenameColumns=p((o,t,n,a)=>{
55
- let c=[];for(let l in a){let i=a[l],y=n[i];if(!(0,P.isEnumSchema)(y))continue;let h=C(
56
- t,l),S=C(t,i),R=o.table(t).alter().existing().constraint(h).rename(S);c.push({check:b(
57
- o,S),query:R.build()})}return c},"prepareRenameColumns"),f.prepareDelete=p((o,t,n)=>{
58
- let a=[];for(let c in n){let l=n[c];if(!(0,P.isEnumSchema)(l))continue;let i=C(t,
59
- c);a.push({query:r(o,t,i).build()})}return a},"prepareDelete");let r=p((o,t,n)=>o.
60
- table(t).alter().existing().constraint(n).drop().existing(),"getDeleteQuery"),u=p(
61
- (o,t,n,a,c)=>{let l=c.map(({value:i})=>`${i}`);return o.table(t).alter().existing().
62
- constraint(n).check({[a]:{isIn:l}})},"getCreateQuery")})(B||={});var ee=require("@ez4/pgclient/library"),te=require("@ez4/schema"),F=require("@ez4/database");var T;(f=>{f.prepareCreate=p((o,t,n,a)=>{let c=[];for(let l in a){let i=a[l];if(m(
63
- i))continue;let{[i.targetColumn]:y}=n.properties,h=A(t,l),S=!!(0,te.isNullishSchema)(
64
- y);c.push({check:b(o,h),query:u(o,t,h,i,S).build()})}return c},"prepareCreate"),
65
- f.prepareUpdate=p((o,t,n,a)=>{let c=[];for(let l in n){let i=n[l];if(m(i))continue;
66
- let y=a[i.targetColumn]?.update,h=y?.optional??y?.nullable;if(h===void 0)continue;
67
- let S=A(t,l);c.push({query:r(o,t,S).build()},{query:u(o,t,S,i,h).build()})}return c},
68
- "prepareUpdate"),f.prepareRename=p((o,t,n,a)=>{let c=[];for(let l in a){let i=a[l];
69
- if(m(i))continue;let y=A(t,l),h=A(n,l),S=o.table(n).alter().existing().constraint(
70
- y).rename(h);c.push({check:b(o,h),query:S.build()})}return c},"prepareRename"),f.
71
- prepareDelete=p((o,t,n)=>{let a=[];for(let c in n){let l=n[c];if(m(l))continue;let i=A(
72
- t,c);a.push({query:r(o,t,i).build()})}return a},"prepareDelete");let m=p(o=>{let{
73
- sourceIndex:t,targetIndex:n}=o;return!t||t===F.Index.Secondary||n===F.Index.Primary},
74
- "isNotRealRelation"),r=p((o,t,n)=>o.table(t).alter().existing().constraint(n).drop().
75
- existing(),"getDeleteQuery"),u=p((o,t,n,a,c)=>{let{sourceTable:l,sourceColumn:i,
76
- targetColumn:y}=a,h=(0,ee.getTableName)(l),S=o.table(t).alter().existing().constraint(
77
- n).foreign(y,h,[i]);return c?S.delete().null():S.delete().cascade(),S.update().cascade(),
78
- S},"getCreateQuery")})(T||={});var K=require("@ez4/schema"),N=require("@ez4/database");var z;(m=>{m.prepareCreate=p((r,u,f,o,t)=>{let n={constraints:[],indexes:[]};for(let a in o){
79
- let{columns:c,type:l}=o[a];switch(l){default:throw new Error("Unsupported index \
80
- type.");case N.Index.Primary:{let i=v(u,a),y=r.table(u).alter().existing().constraint(
81
- i).primary(c);n.constraints.push({check:b(r,i),query:y.build()});break}case N.Index.
82
- Unique:{let i=Q(u,a),y=r.table(u).alter().existing().constraint(i).unique(c);n.constraints.
83
- push({check:b(r,i),query:y.build()});break}case N.Index.Secondary:{let i=$(u,a),
84
- y=g(c,f),h=r.index(i).create(u,c).type(y).missing();t&&h.concurrent(),n.indexes.
85
- push({query:h.build()});break}}}return n},"prepareCreate"),m.prepareRename=p((r,u,f,o)=>{
86
- let t={constraints:[],indexes:[]};for(let n in o){let{type:a}=o[n];switch(a){default:
87
- throw new Error("Unsupported index type.");case N.Index.Primary:{let c=v(u,n),l=v(
88
- f,n),i=r.table(f).alter().existing().constraint(c).rename(l);t.constraints.push(
89
- {check:b(r,l),query:i.build()});break}case N.Index.Unique:{let c=Q(u,n),l=Q(f,n),
90
- i=r.table(f).alter().existing().constraint(c).rename(l);t.constraints.push({check:b(
91
- r,l),query:i.build()});break}case N.Index.Secondary:{let c=$(u,n),l=$(f,n),i=r.index(
92
- c).rename(l).existing();t.indexes.push({query:i.build()});break}}}return t},"pre\
93
- pareRename"),m.prepareDelete=p((r,u,f)=>{let o={constraints:[],indexes:[]};for(let t in f){
94
- let{type:n}=f[t];switch(n){default:throw new Error("Unsupported index type.");case N.Index.
95
- Primary:{let a=v(u,t),c=r.table(u).alter().existing().constraint(a).drop().existing();
96
- o.constraints.push({query:c.build()});break}case N.Index.Unique:{let a=Q(u,t),c=r.
97
- table(u).alter().existing().constraint(a).drop().existing();o.constraints.push({
98
- query:c.build()});break}case N.Index.Secondary:{let a=$(u,t),c=r.index(a).drop().
99
- existing().concurrent();o.indexes.push({query:c.build()});break}}}return o},"pre\
100
- pareDelete");let g=p((r,u)=>{if(r.length===1){let[f]=r;switch(u.properties[f]?.type){case K.SchemaType.
101
- Object:case K.SchemaType.Union:case K.SchemaType.Array:case K.SchemaType.Tuple:return"\
102
- GIN"}}return"BTREE"},"getIndexType")})(z||={});var w=require("@ez4/utils"),H=require("@ez4/pgclient/library"),W=require("@ez4/schema");var ne=p((e,s)=>(0,w.deepCompareObject)(e,s,{onRename:p((d,g)=>!(0,w.isAnyObject)(
103
- d)||!(0,w.isAnyObject)(g)?!1:(0,H.isTableMetadata)(d)&&(0,H.isTableMetadata)(g)?
104
- de(d.schema,g.schema):(0,W.isAnySchema)(d)&&(0,W.isAnySchema)(g)?ge(d,g):!1,"onR\
105
- ename")}),"getTableRepositoryChanges"),de=p((e,s)=>(0,w.deepEqual)(Object.keys(e.
106
- properties),Object.keys(s.properties)),"canRenameTable"),ge=p((e,s)=>(0,w.deepEqual)(
107
- e,s,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
108
- Column");var re=p(e=>{let s=new L.SqlBuilder,d={tables:[],constraints:[],relations:[],indexes:[]};
109
- for(let g in e){let{name:m,schema:r,indexes:u,relations:f}=e[g];d.tables.push(_.
110
- prepareCreate(s,m,r,u)),d.constraints.push(...B.prepareCreate(s,m,r.properties)),
111
- d.relations.push(...T.prepareCreate(s,m,r,f)),D(d,z.prepareCreate(s,m,r,u,!1))}return d},
112
- "getCreateQueries"),fe=p((e,s)=>{let d=ne(e,s),g=new L.SqlBuilder,m={tables:[],constraints:[],
113
- relations:[],indexes:[]};if(d.create&&D(m,re(d.create)),d.rename)for(let r in d.
114
- rename){let u=d.rename[r],f=e[u].indexes,o=e[u].relations,t=e[u].schema;m.tables.
115
- push(_.prepareRename(g,r,u)),m.constraints.push(...B.prepareRenameTable(g,r,u,t.
116
- properties)),m.relations.push(...T.prepareRename(g,r,u,o)),D(m,z.prepareRename(g,
117
- r,u,f))}if(d.nested)for(let r in d.nested){let{nested:u}=d.nested[r];if(!u)continue;
118
- let{schema:f,relations:o,indexes:t}=u,n=f?.nested?.properties,a=e[r].indexes,c=e[r].
119
- relations,l=s[r].schema,i=e[r].schema;n?.create&&(m.tables.push(I.prepareCreate(
120
- g,r,a,n.create)),m.constraints.push(...B.prepareCreate(g,r,n.create))),n?.nested&&
121
- (m.tables.push(...I.prepareUpdate(g,r,i,a,n.nested)),m.constraints.push(...B.prepareUpdate(
122
- g,r,i,l,n.nested)),m.relations.push(...T.prepareUpdate(g,r,c,n.nested))),n?.rename&&
123
- (m.tables.push(...I.prepareRename(g,r,n.rename)),m.constraints.push(...B.prepareRenameColumns(
124
- g,r,i.properties,n.rename))),n?.remove&&(m.tables.push(I.prepareDelete(g,r,n.remove)),
125
- m.constraints.push(...B.prepareDelete(g,r,n.remove))),t?.create&&D(m,z.prepareCreate(
126
- g,r,i,t.create,!0)),t?.remove&&D(m,z.prepareDelete(g,r,t.remove)),o?.create&&m.relations.
127
- push(...T.prepareCreate(g,r,i,o.create)),o?.remove&&m.relations.push(...T.prepareDelete(
128
- g,r,o.remove))}return d.remove&&D(m,oe(d.remove)),m},"getUpdateQueries"),oe=p(e=>{
129
- let s=new L.SqlBuilder,d={tables:[],constraints:[],relations:[],indexes:[]};for(let g in e){
130
- let{name:m}=e[g];d.tables.push(_.prepareDelete(s,m))}return d},"getDeleteQueries"),
131
- D=p((e,s)=>{s.indexes&&e.indexes.push(...s.indexes),s.constraints&&e.constraints.
132
- push(...s.constraints),s.relations&&e.relations.push(...s.relations),s.tables&&e.
133
- tables.push(...s.tables)},"combineMigrationQueries");0&&(module.exports={getCreateQueries,getDeleteQueries,getUpdateQueries});
13
+ on_schema.columns")).rawColumn("1").where({column_name:e.rawString(g),table_name:e.
14
+ rawString(o)})}}).build();return y},"getCheckColumnQuery");var Z=require("@ez4/utils");var U=p((e,o)=>`${_(e,o)}_pk`,"getPrimaryKeyName"),v=p((e,o)=>`${_(e,o)}_uk`,"ge\
15
+ tUniqueKeyName"),M=p((e,o)=>`${_(e,o)}_sk`,"getSecondaryKeyName"),A=p((e,o)=>`${_(
16
+ e,o)}_fk`,"getRelationName"),k=p((e,o)=>`${_(e,o)}_ck`,"getConstraintName"),_=p(
17
+ (e,o)=>`${e}_${(0,Z.toSnakeCase)(o.replaceAll(":","_"))}`,"getName");var j;(m=>{m.prepareCreate=p((t,n,i)=>{let l=[];for(let r in i){let a=i[r];if((0,C.isEnumSchema)(
18
+ a)||(0,C.isScalarSchema)(a)&&(0,H.isNotNullish)(a.definitions?.value)){let c=k(n,
19
+ r);l.push({check:R(t,c),query:f(t,n,c,r,a).build()})}}return l},"prepareCreate"),
20
+ m.prepareUpdate=p((t,n,i,l,r)=>{let a=[];for(let c in r){let{update:h,create:x,remove:b}=r[c];
21
+ if(b||h){let q=l.properties[c];if(s(q)){let N=k(n,c);a.push({query:u(t,n,N).build()})}}
22
+ if(x||h){let q=i.properties[c];if(s(q)){let N=k(n,c);a.push({check:R(t,N),query:f(
23
+ t,n,N,c,q).build()})}}}return a},"prepareUpdate"),m.prepareRenameTable=p((t,n,i,l)=>{
24
+ let r=[];for(let a in l){let c=l[a];if(s(c)){let h=k(n,a),x=k(i,a),b=t.table(i).
25
+ alter().existing().constraint(h).rename(x);r.push({check:R(t,x),query:b.build()})}}
26
+ return r},"prepareRenameTable"),m.prepareRenameColumns=p((t,n,i,l)=>{let r=[];for(let a in l){
27
+ let c=l[a],h=i[c];if(s(h)){let x=k(n,a),b=k(n,c),q=t.table(n).alter().existing().
28
+ constraint(x).rename(b);r.push({check:R(t,b),query:q.build()})}}return r},"prepa\
29
+ reRenameColumns"),m.prepareDelete=p((t,n,i)=>{let l=[];for(let r in i){let a=i[r];
30
+ if(s(a)){let c=k(n,r);l.push({query:u(t,n,c).build()})}}return l},"prepareDelete");
31
+ let s=p(t=>(0,C.isEnumSchema)(t)||(0,C.isScalarSchema)(t)&&(0,H.isNotNullish)(t.
32
+ definitions?.value),"isConstrainedSchema"),u=p((t,n,i)=>t.table(n).alter().existing().
33
+ constraint(i).drop().existing(),"getDeleteQuery"),f=p((t,n,i,l,r)=>{let a=t.table(
34
+ n).alter().existing().constraint(i);switch(r.type){case C.SchemaType.Enum:{let c=r.
35
+ options.map(({value:h})=>`${h}`);a.check({[l]:{isIn:c}});break}case C.SchemaType.
36
+ Boolean:case C.SchemaType.Number:case C.SchemaType.String:{a.check({[l]:{equal:r.
37
+ definitions?.value}});break}}return a},"getCreateQuery")})(j||={});var ee=require("@ez4/pgclient/library"),te=require("@ez4/schema"),W=require("@ez4/database");var w;(f=>{f.prepareCreate=p((m,t,n,i)=>{let l=[];for(let r in i){let a=i[r];if(d(
38
+ a))continue;let{[a.targetColumn]:c}=n.properties,h=A(t,r),x=!!(0,te.isNullishSchema)(
39
+ c);l.push({check:R(m,h),query:u(m,t,h,a,x).build()})}return l},"prepareCreate"),
40
+ f.prepareUpdate=p((m,t,n,i)=>{let l=[];for(let r in n){let a=n[r];if(d(a))continue;
41
+ let c=i[a.targetColumn]?.update,h=c?.optional??c?.nullable;if(h===void 0)continue;
42
+ let x=A(t,r);l.push({query:s(m,t,x).build()},{query:u(m,t,x,a,h).build()})}return l},
43
+ "prepareUpdate"),f.prepareRename=p((m,t,n,i)=>{let l=[];for(let r in i){let a=i[r];
44
+ if(d(a))continue;let c=A(t,r),h=A(n,r),x=m.table(n).alter().existing().constraint(
45
+ c).rename(h);l.push({check:R(m,h),query:x.build()})}return l},"prepareRename"),f.
46
+ prepareDelete=p((m,t,n)=>{let i=[];for(let l in n){let r=n[l];if(d(r))continue;let a=A(
47
+ t,l);i.push({query:s(m,t,a).build()})}return i},"prepareDelete");let d=p(m=>{let{
48
+ sourceIndex:t,targetIndex:n}=m;return!t||t===W.Index.Secondary||n===W.Index.Primary},
49
+ "isNotRealRelation"),s=p((m,t,n)=>m.table(t).alter().existing().constraint(n).drop().
50
+ existing(),"getDeleteQuery"),u=p((m,t,n,i,l)=>{let{sourceTable:r,sourceColumn:a,
51
+ targetColumn:c}=i,h=(0,ee.getTableName)(r),x=m.table(t).alter().existing().constraint(
52
+ n).foreign(c,h,[a]);return l?x.delete().null():x.delete().cascade(),x.update().cascade(),
53
+ x},"getCreateQuery")})(w||={});var E=require("@ez4/schema"),P=require("@ez4/database");var T;(s=>{s.prepareCreate=p((u,f,m,t,n)=>{let i={constraints:[],indexes:[]};for(let l in t){
54
+ let{columns:r,type:a}=t[l];switch(a){default:throw new Error("Unsupported index \
55
+ type.");case P.Index.Primary:{let c=U(f,l),h=u.table(f).alter().existing().constraint(
56
+ c).primary(r);i.constraints.push({check:R(u,c),query:h.build()});break}case P.Index.
57
+ Unique:{let c=v(f,l),h=u.table(f).alter().existing().constraint(c).unique(r);i.constraints.
58
+ push({check:R(u,c),query:h.build()});break}case P.Index.Secondary:{let c=M(f,l),
59
+ h=d(r,m),x=u.index(c).create(f,r).type(h).missing();n&&x.concurrent(),i.indexes.
60
+ push({query:x.build()});break}}}return i},"prepareCreate"),s.prepareUpdate=p((u,f,m,t,n,i,l)=>{
61
+ let r={constraints:[],indexes:[]};for(let a in i){let{update:c,create:h,remove:x}=i[a];
62
+ if(x||c){let b=(0,s.prepareDelete)(u,f,{[a]:t[a]});r.constraints.push(...b.constraints),
63
+ r.indexes.push(...b.indexes)}if(h||c){let b=(0,s.prepareCreate)(u,f,m,{[a]:n[a]},
64
+ l);r.constraints.push(...b.constraints),r.indexes.push(...b.indexes)}}return r},
65
+ "prepareUpdate"),s.prepareRename=p((u,f,m,t)=>{let n={constraints:[],indexes:[]};
66
+ for(let i in t){let{type:l}=t[i];switch(l){default:throw new Error("Unsupported \
67
+ index type.");case P.Index.Primary:{let r=U(f,i),a=U(m,i),c=u.table(m).alter().existing().
68
+ constraint(r).rename(a);n.constraints.push({check:R(u,a),query:c.build()});break}case P.Index.
69
+ Unique:{let r=v(f,i),a=v(m,i),c=u.table(m).alter().existing().constraint(r).rename(
70
+ a);n.constraints.push({check:R(u,a),query:c.build()});break}case P.Index.Secondary:{
71
+ let r=M(f,i),a=M(m,i),c=u.index(r).rename(a).existing();n.indexes.push({query:c.
72
+ build()});break}}}return n},"prepareRename"),s.prepareDelete=p((u,f,m)=>{let t={
73
+ constraints:[],indexes:[]};for(let n in m){let{type:i}=m[n];switch(i){default:throw new Error(
74
+ "Unsupported index type.");case P.Index.Primary:{let l=U(f,n),r=u.table(f).alter().
75
+ existing().constraint(l).drop().existing();t.constraints.push({query:r.build()});
76
+ break}case P.Index.Unique:{let l=v(f,n),r=u.table(f).alter().existing().constraint(
77
+ l).drop().existing();t.constraints.push({query:r.build()});break}case P.Index.Secondary:{
78
+ let l=M(f,n),r=u.index(l).drop().existing().concurrent();t.indexes.push({query:r.
79
+ build()});break}}}return t},"prepareDelete");let d=p((u,f)=>{if(u.length===1){let[
80
+ m]=u;switch(f.properties[m]?.type){case E.SchemaType.Object:case E.SchemaType.Union:case E.SchemaType.
81
+ Array:case E.SchemaType.Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(T||=
82
+ {});var X=require("@ez4/database");var S=require("@ez4/schema"),ne=require("@ez4/utils");var $=p(e=>!!(e.nullable||e.optional),"isOptionalColumn"),z=p((e,o)=>{if((0,S.isScalarSchema)(
83
+ e)||(0,S.isObjectSchema)(e)||(0,S.isArraySchema)(e)||(0,S.isTupleSchema)(e)){let{
84
+ definitions:g}=e;switch(typeof g?.default){case"boolean":case"number":return`${g.
85
+ default}`;case"string":return`'${g.default}'`;case"object":return`'${JSON.stringify(
86
+ g.default)}'`}}if((0,S.isEnumSchema)(e)){let{definitions:g}=e;if(g?.default)return`\
87
+ '${g.default}'`}if((0,S.isStringSchema)(e)&&o)switch(e.format){case"date-time":case"\
88
+ date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if($(e))return"\
89
+ null"},"getColumnDefault"),Q=p((e,o)=>{switch(e.type){case S.SchemaType.Array:case S.SchemaType.
90
+ Object:case S.SchemaType.Reference:case S.SchemaType.Union:case S.SchemaType.Tuple:
91
+ return"jsonb";case S.SchemaType.Boolean:return"boolean";case S.SchemaType.Enum:return"\
92
+ text";case S.SchemaType.Number:return ge(e,o);case S.SchemaType.String:return fe(
93
+ e)}},"getColumnType"),ge=p((e,o)=>e.format==="integer"?o?"bigserial":"bigint":"d\
94
+ ecimal","getColumNumberType"),fe=p(e=>{switch(e.format){case"uuid":case"time":case"\
95
+ date":return e.format;case"date-time":return"timestamptz";default:let o=e.definitions?.
96
+ maxLength;return(0,ne.isAnyNumber)(o)?`varchar(${o})`:"text"}},"getColumnTextTyp\
97
+ e");var D;(d=>(d.prepareCreate=p((s,u,f,m)=>{let t=s.table(u).alter().existing();for(let n in m){
98
+ let i=m[n],r=f[n]?.type===X.Index.Primary,a=!$(i),c=Q(i,r),h=z(i,r);t.add(n,c,a,
99
+ h).missing()}return{query:t.build()}},"prepareCreate"),d.prepareUpdate=p((s,u,f,m,t)=>{
100
+ let n=[];for(let i in t){let{create:l,update:r,nested:a,remove:c}=t[i],h=f.properties[i],
101
+ b=m[i]?.type===X.Index.Primary,q=s.table(u).alter().existing().column(i);if(l){let N=l.
102
+ definitions?.default,O=l?.nullable;N!==void 0&&q.default(z(h,b)),O!==void 0&&q.optional(
103
+ O)}if(r||a){let N=a?.definitions?.update?.default,O=r?.nullable;r?.type!==void 0&&
104
+ q.type(Q(h,b)),N!==void 0&&q.default(z(h,b)),O!==void 0&&q.optional(O)}if(c){let N=c.
105
+ definitions?.default,O=c?.nullable;N!==void 0&&q.default(null),O!==void 0&&q.optional(
106
+ O)}q.empty||n.push({check:F(s,u,i),query:q.build()})}return n},"prepareUpdate"),
107
+ d.prepareRename=p((s,u,f)=>{let m=[];for(let t in f){let n=f[t],i=s.table(u).alter().
108
+ existing().rename(t,n);m.push({check:F(s,u,t),query:i.build()})}return m},"prepa\
109
+ reRename"),d.prepareDelete=p((s,u,f)=>{let m=s.table(u).alter().existing();for(let t in f)
110
+ m.drop(t).existing();return{query:m.build()}},"prepareDelete")))(D||={});var re=require("@ez4/database");var K;(y=>(y.prepareCreate=p((d,s,u,f)=>{let m=d.table(s).create().missing();for(let t in u.
111
+ properties){let n=u.properties[t],l=f[t]?.type===re.Index.Primary,r=!$(n),a=Q(n,
112
+ l),c=z(n,l);m.column(t,a,r,c).missing()}return{query:m.build()}},"prepareCreate"),
113
+ y.prepareRename=p((d,s,u)=>({query:d.table(s).rename(u).existing().build()}),"pr\
114
+ epareRename"),y.prepareDelete=p((d,s)=>({query:d.table(s).drop().existing().cascade().
115
+ build()}),"prepareDelete")))(K||={});var oe=p(e=>{let o=new L.SqlBuilder,g={tables:[],constraints:[],relations:[],indexes:[]};
116
+ for(let y in e){let{name:d,schema:s,indexes:u,relations:f}=e[y];g.tables.push(K.
117
+ prepareCreate(o,d,s,u)),g.constraints.push(...j.prepareCreate(o,d,s.properties)),
118
+ g.relations.push(...w.prepareCreate(o,d,s,f)),I(g,T.prepareCreate(o,d,s,u,!1))}return g},
119
+ "getCreateQueries"),ye=p((e,o)=>{let g=Y(e,o),y=new L.SqlBuilder,d={tables:[],constraints:[],
120
+ relations:[],indexes:[]};if(g.create&&I(d,oe(g.create)),g.rename)for(let s in g.
121
+ rename){let u=g.rename[s],f=e[u].indexes,m=e[u].relations,t=e[u].schema;d.tables.
122
+ push(K.prepareRename(y,s,u)),d.constraints.push(...j.prepareRenameTable(y,s,u,t.
123
+ properties)),d.relations.push(...w.prepareRename(y,s,u,m)),I(d,T.prepareRename(y,
124
+ s,u,f))}if(g.nested)for(let s in g.nested){let{nested:u}=g.nested[s];if(!u)continue;
125
+ let{schema:f,relations:m,indexes:t}=u,n=f?.nested?.properties,i=e[s].relations,l=o[s].
126
+ indexes,r=e[s].indexes,a=o[s].schema,c=e[s].schema;n?.create&&(d.tables.push(D.prepareCreate(
127
+ y,s,r,n.create)),d.constraints.push(...j.prepareCreate(y,s,n.create))),n?.nested&&
128
+ (d.tables.push(...D.prepareUpdate(y,s,c,r,n.nested)),d.constraints.push(...j.prepareUpdate(
129
+ y,s,c,a,n.nested)),d.relations.push(...w.prepareUpdate(y,s,i,n.nested))),n?.rename&&
130
+ (d.tables.push(...D.prepareRename(y,s,n.rename)),d.constraints.push(...j.prepareRenameColumns(
131
+ y,s,c.properties,n.rename))),n?.remove&&(d.tables.push(D.prepareDelete(y,s,n.remove)),
132
+ d.constraints.push(...j.prepareDelete(y,s,n.remove))),t?.create&&I(d,T.prepareCreate(
133
+ y,s,c,t.create,!0)),t?.nested&&I(d,T.prepareUpdate(y,s,c,l,r,t.nested,!0)),t?.remove&&
134
+ I(d,T.prepareDelete(y,s,t.remove)),m?.create&&d.relations.push(...w.prepareCreate(
135
+ y,s,c,m.create)),m?.remove&&d.relations.push(...w.prepareDelete(y,s,m.remove))}return g.
136
+ remove&&I(d,se(g.remove)),d},"getUpdateQueries"),se=p(e=>{let o=new L.SqlBuilder,
137
+ g={tables:[],constraints:[],relations:[],indexes:[]};for(let y in e){let{name:d}=e[y];
138
+ g.tables.push(K.prepareDelete(o,d))}return g},"getDeleteQueries"),I=p((e,o)=>{o.
139
+ indexes&&e.indexes.push(...o.indexes),o.constraints&&e.constraints.push(...o.constraints),
140
+ o.relations&&e.relations.push(...o.relations),o.tables&&e.tables.push(...o.tables)},
141
+ "combineQueries");0&&(module.exports={getCreateQueries,getDeleteQueries,getUpdateQueries});
134
142
  //# sourceMappingURL=main.cjs.map
package/dist/main.mjs CHANGED
@@ -1,128 +1,134 @@
1
- var Y=Object.defineProperty;var p=(t,c)=>Y(t,"name",{value:c,configurable:!0});import{SqlBuilder as V}from"@ez4/pgsql";import{Index as ce}from"@ez4/database";import{isArraySchema as Z,isEnumSchema as ee,isObjectSchema as te,isScalarSchema as ne,
2
- isStringSchema as re,isTupleSchema as oe,SchemaType as C}from"@ez4/schema";import{
3
- isAnyNumber as se}from"@ez4/utils";var D=p(t=>!!(t.nullable||t.optional),"isOptionalColumn"),T=p((t,c)=>{if(ne(t)||
4
- te(t)||Z(t)||oe(t)){let{definitions:d}=t;switch(typeof d?.default){case"boolean":case"\
5
- number":return`${d.default}`;case"string":return`'${d.default}'`;case"object":return`\
6
- '${JSON.stringify(d.default)}'`}}if(ee(t)){let{definitions:d}=t;if(d?.default)return`\
7
- '${d.default}'`}if(re(t)&&c)switch(t.format){case"date-time":case"date":case"tim\
8
- e":return"now()";case"uuid":return"gen_random_uuid()"}if(D(t))return"null"},"get\
9
- ColumnDefault"),U=p((t,c)=>{switch(t.type){case C.Array:case C.Object:case C.Reference:case C.
10
- Union:case C.Tuple:return"jsonb";case C.Boolean:return"boolean";case C.Enum:return"\
11
- text";case C.Number:return ie(t,c);case C.String:return ae(t)}},"getColumnType"),
12
- ie=p((t,c)=>t.format==="integer"?c?"bigserial":"bigint":"decimal","getColumNumbe\
13
- rType"),ae=p(t=>{switch(t.format){case"uuid":case"time":case"date":return t.format;case"\
14
- date-time":return"timestamptz";default:let c=t.definitions?.maxLength;return se(
15
- c)?`varchar(${c})`:"text"}},"getColumnTextType");var M;(f=>(f.prepareCreate=p((l,r,m,g)=>{let o=l.table(r).create().missing();for(let e in m.
16
- properties){let n=m.properties[e],a=g[e]?.type===ce.Primary,u=!D(n),s=U(n,a),y=T(
17
- n,a);o.column(e,s,u,y).missing()}return{query:o.build()}},"prepareCreate"),f.prepareRename=
18
- p((l,r,m)=>({query:l.table(r).rename(m).existing().build()}),"prepareRename"),f.
19
- prepareDelete=p((l,r)=>({query:l.table(r).drop().existing().cascade().build()}),
20
- "prepareDelete")))(M||={});import{Index as L}from"@ez4/database";var q=p((t,c)=>{let[d]=t.select().rawColumn("1").from("pg_constraint").where({conname:t.
21
- rawString(c)}).build();return d},"getCheckConstraintQuery"),K=p((t,c,d)=>{let[f]=t.
22
- select().rawColumn("1").where({NOT:{exists:t.select().from(t.rawValue("informati\
23
- on_schema.columns")).rawColumn("1").where({column_name:t.rawString(d),table_name:t.
24
- rawString(c)})}}).build();return f},"getCheckColumnQuery");var j;(l=>(l.prepareCreate=p((r,m,g,o)=>{let e=r.table(m).alter().existing();for(let n in o){
25
- let i=o[n],u=g[n]?.type===L.Primary,s=!D(i),y=U(i,u),h=T(i,u);e.add(n,y,s,h).missing()}
26
- return{query:e.build()}},"prepareCreate"),l.prepareUpdate=p((r,m,g,o,e)=>{let n=[];
27
- for(let i in e){let{create:a,update:u,nested:s,remove:y}=e[i],h=g.properties[i],
28
- b=o[i]?.type===L.Primary,S=r.table(m).alter().existing().column(i);if(a){let P=a.
29
- definitions?.default,O=a?.nullable;P!==void 0&&S.default(T(h,b)),O!==void 0&&S.optional(
30
- O)}if(u||s){let P=s?.definitions?.update?.default,O=u?.nullable;u?.type!==void 0&&
31
- S.type(U(h,b)),P!==void 0&&S.default(T(h,b)),O!==void 0&&S.optional(O)}if(y){let P=y.
32
- definitions?.default,O=y?.nullable;P!==void 0&&S.default(null),O!==void 0&&S.optional(
33
- O)}S.empty||n.push({check:K(r,m,i),query:S.build()})}return n},"prepareUpdate"),
34
- l.prepareRename=p((r,m,g)=>{let o=[];for(let e in g){let n=g[e],i=r.table(m).alter().
35
- existing().rename(e,n);o.push({check:K(r,m,e),query:i.build()})}return o},"prepa\
36
- reRename"),l.prepareDelete=p((r,m,g)=>{let o=r.table(m).alter().existing();for(let e in g)
37
- o.drop(e).existing();return{query:o.build()}},"prepareDelete")))(j||={});import{isEnumSchema as k}from"@ez4/schema";import{toSnakeCase as pe}from"@ez4/utils";var _=p((t,c)=>`${$(t,c)}_pk`,"getPrimaryKeyName"),v=p((t,c)=>`${$(t,c)}_uk`,"ge\
38
- tUniqueKeyName"),Q=p((t,c)=>`${$(t,c)}_sk`,"getSecondaryKeyName"),I=p((t,c)=>`${$(
39
- t,c)}_fk`,"getRelationName"),R=p((t,c)=>`${$(t,c)}_ck`,"getConstraintName"),$=p(
40
- (t,c)=>`${t}_${pe(c.replaceAll(":","_"))}`,"getName");var B;(g=>{g.prepareCreate=p((o,e,n)=>{let i=[];for(let a in n){let u=n[a];if(!k(
41
- u))continue;let s=R(e,a);i.push({check:q(o,s),query:m(o,e,s,a,u.options).build()})}
42
- return i},"prepareCreate"),g.prepareUpdate=p((o,e,n,i,a)=>{let u=[];for(let s in a){
43
- let{update:y,create:h,remove:x}=a[s];if(x){let b=i.properties[s];if(k(b)){let S=R(
44
- e,s);u.push({query:r(o,e,S).build()})}}if(y){let b=i.properties[s],S=n.properties[s];
45
- if(k(b)&&k(S)){let P=R(e,s);u.push({query:r(o,e,P).build()},{query:m(o,e,P,s,S.options).
46
- build()})}}if(h){let b=n.properties[s];if(k(b)){let S=R(e,s);u.push({check:q(o,S),
47
- query:m(o,e,S,s,b.options).build()})}}}return u},"prepareUpdate"),g.prepareRenameTable=
48
- p((o,e,n,i)=>{let a=[];for(let u in i){let s=i[u];if(!k(s))continue;let y=R(e,u),
49
- h=R(n,u),x=o.table(n).alter().existing().constraint(y).rename(h);a.push({check:q(
50
- o,h),query:x.build()})}return a},"prepareRenameTable"),g.prepareRenameColumns=p(
51
- (o,e,n,i)=>{let a=[];for(let u in i){let s=i[u],y=n[s];if(!k(y))continue;let h=R(
52
- e,u),x=R(e,s),b=o.table(e).alter().existing().constraint(h).rename(x);a.push({check:q(
53
- o,x),query:b.build()})}return a},"prepareRenameColumns"),g.prepareDelete=p((o,e,n)=>{
54
- let i=[];for(let a in n){let u=n[a];if(!k(u))continue;let s=R(e,a);i.push({query:r(
55
- o,e,s).build()})}return i},"prepareDelete");let r=p((o,e,n)=>o.table(e).alter().
56
- existing().constraint(n).drop().existing(),"getDeleteQuery"),m=p((o,e,n,i,a)=>{let u=a.
57
- map(({value:s})=>`${s}`);return o.table(e).alter().existing().constraint(n).check(
58
- {[i]:{isIn:u}})},"getCreateQuery")})(B||={});import{getTableName as me}from"@ez4/pgclient/library";import{isNullishSchema as ue}from"@ez4/schema";
59
- import{Index as G}from"@ez4/database";var w;(g=>{g.prepareCreate=p((o,e,n,i)=>{let a=[];for(let u in i){let s=i[u];if(l(
60
- s))continue;let{[s.targetColumn]:y}=n.properties,h=I(e,u),x=!!ue(y);a.push({check:q(
61
- o,h),query:m(o,e,h,s,x).build()})}return a},"prepareCreate"),g.prepareUpdate=p((o,e,n,i)=>{
62
- let a=[];for(let u in n){let s=n[u];if(l(s))continue;let y=i[s.targetColumn]?.update,
63
- h=y?.optional??y?.nullable;if(h===void 0)continue;let x=I(e,u);a.push({query:r(o,
64
- e,x).build()},{query:m(o,e,x,s,h).build()})}return a},"prepareUpdate"),g.prepareRename=
65
- p((o,e,n,i)=>{let a=[];for(let u in i){let s=i[u];if(l(s))continue;let y=I(e,u),
66
- h=I(n,u),x=o.table(n).alter().existing().constraint(y).rename(h);a.push({check:q(
67
- o,h),query:x.build()})}return a},"prepareRename"),g.prepareDelete=p((o,e,n)=>{let i=[];
68
- for(let a in n){let u=n[a];if(l(u))continue;let s=I(e,a);i.push({query:r(o,e,s).
69
- build()})}return i},"prepareDelete");let l=p(o=>{let{sourceIndex:e,targetIndex:n}=o;
70
- return!e||e===G.Secondary||n===G.Primary},"isNotRealRelation"),r=p((o,e,n)=>o.table(
71
- e).alter().existing().constraint(n).drop().existing(),"getDeleteQuery"),m=p((o,e,n,i,a)=>{
72
- let{sourceTable:u,sourceColumn:s,targetColumn:y}=i,h=me(u),x=o.table(e).alter().
73
- existing().constraint(n).foreign(y,h,[s]);return a?x.delete().null():x.delete().
74
- cascade(),x.update().cascade(),x},"getCreateQuery")})(w||={});import{SchemaType as E}from"@ez4/schema";import{Index as N}from"@ez4/database";var A;(l=>{l.prepareCreate=p((r,m,g,o,e)=>{let n={constraints:[],indexes:[]};for(let i in o){
75
- let{columns:a,type:u}=o[i];switch(u){default:throw new Error("Unsupported index \
76
- type.");case N.Primary:{let s=_(m,i),y=r.table(m).alter().existing().constraint(
77
- s).primary(a);n.constraints.push({check:q(r,s),query:y.build()});break}case N.Unique:{
78
- let s=v(m,i),y=r.table(m).alter().existing().constraint(s).unique(a);n.constraints.
79
- push({check:q(r,s),query:y.build()});break}case N.Secondary:{let s=Q(m,i),y=f(a,
80
- g),h=r.index(s).create(m,a).type(y).missing();e&&h.concurrent(),n.indexes.push({
81
- query:h.build()});break}}}return n},"prepareCreate"),l.prepareRename=p((r,m,g,o)=>{
82
- let e={constraints:[],indexes:[]};for(let n in o){let{type:i}=o[n];switch(i){default:
83
- throw new Error("Unsupported index type.");case N.Primary:{let a=_(m,n),u=_(g,n),
84
- s=r.table(g).alter().existing().constraint(a).rename(u);e.constraints.push({check:q(
85
- r,u),query:s.build()});break}case N.Unique:{let a=v(m,n),u=v(g,n),s=r.table(g).alter().
86
- existing().constraint(a).rename(u);e.constraints.push({check:q(r,u),query:s.build()});
87
- break}case N.Secondary:{let a=Q(m,n),u=Q(g,n),s=r.index(a).rename(u).existing();
88
- e.indexes.push({query:s.build()});break}}}return e},"prepareRename"),l.prepareDelete=
89
- p((r,m,g)=>{let o={constraints:[],indexes:[]};for(let e in g){let{type:n}=g[e];switch(n){default:
90
- throw new Error("Unsupported index type.");case N.Primary:{let i=_(m,e),a=r.table(
91
- m).alter().existing().constraint(i).drop().existing();o.constraints.push({query:a.
92
- build()});break}case N.Unique:{let i=v(m,e),a=r.table(m).alter().existing().constraint(
93
- i).drop().existing();o.constraints.push({query:a.build()});break}case N.Secondary:{
94
- let i=Q(m,e),a=r.index(i).drop().existing().concurrent();o.indexes.push({query:a.
95
- build()});break}}}return o},"prepareDelete");let f=p((r,m)=>{if(r.length===1){let[
96
- g]=r;switch(m.properties[g]?.type){case E.Object:case E.Union:case E.Array:case E.
97
- Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(A||={});import{deepEqual as W,deepCompareObject as le,isAnyObject as J}from"@ez4/utils";
98
- import{isTableMetadata as F}from"@ez4/pgclient/library";import{isAnySchema as H}from"@ez4/schema";var X=p((t,c)=>le(t,c,{onRename:p((d,f)=>!J(d)||!J(f)?!1:F(d)&&F(f)?de(d.schema,
99
- f.schema):H(d)&&H(f)?ge(d,f):!1,"onRename")}),"getTableRepositoryChanges"),de=p(
100
- (t,c)=>W(Object.keys(t.properties),Object.keys(c.properties)),"canRenameTable"),
101
- ge=p((t,c)=>W(t,c,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),
102
- "canRenameColumn");var fe=p(t=>{let c=new V,d={tables:[],constraints:[],relations:[],indexes:[]};for(let f in t){
103
- let{name:l,schema:r,indexes:m,relations:g}=t[f];d.tables.push(M.prepareCreate(c,
104
- l,r,m)),d.constraints.push(...B.prepareCreate(c,l,r.properties)),d.relations.push(
105
- ...w.prepareCreate(c,l,r,g)),z(d,A.prepareCreate(c,l,r,m,!1))}return d},"getCrea\
106
- teQueries"),dt=p((t,c)=>{let d=X(t,c),f=new V,l={tables:[],constraints:[],relations:[],
107
- indexes:[]};if(d.create&&z(l,fe(d.create)),d.rename)for(let r in d.rename){let m=d.
108
- rename[r],g=t[m].indexes,o=t[m].relations,e=t[m].schema;l.tables.push(M.prepareRename(
109
- f,r,m)),l.constraints.push(...B.prepareRenameTable(f,r,m,e.properties)),l.relations.
110
- push(...w.prepareRename(f,r,m,o)),z(l,A.prepareRename(f,r,m,g))}if(d.nested)for(let r in d.
111
- nested){let{nested:m}=d.nested[r];if(!m)continue;let{schema:g,relations:o,indexes:e}=m,
112
- n=g?.nested?.properties,i=t[r].indexes,a=t[r].relations,u=c[r].schema,s=t[r].schema;
113
- n?.create&&(l.tables.push(j.prepareCreate(f,r,i,n.create)),l.constraints.push(...B.
114
- prepareCreate(f,r,n.create))),n?.nested&&(l.tables.push(...j.prepareUpdate(f,r,s,
115
- i,n.nested)),l.constraints.push(...B.prepareUpdate(f,r,s,u,n.nested)),l.relations.
116
- push(...w.prepareUpdate(f,r,a,n.nested))),n?.rename&&(l.tables.push(...j.prepareRename(
117
- f,r,n.rename)),l.constraints.push(...B.prepareRenameColumns(f,r,s.properties,n.rename))),
118
- n?.remove&&(l.tables.push(j.prepareDelete(f,r,n.remove)),l.constraints.push(...B.
119
- prepareDelete(f,r,n.remove))),e?.create&&z(l,A.prepareCreate(f,r,s,e.create,!0)),
120
- e?.remove&&z(l,A.prepareDelete(f,r,e.remove)),o?.create&&l.relations.push(...w.prepareCreate(
121
- f,r,s,o.create)),o?.remove&&l.relations.push(...w.prepareDelete(f,r,o.remove))}return d.
122
- remove&&z(l,ye(d.remove)),l},"getUpdateQueries"),ye=p(t=>{let c=new V,d={tables:[],
123
- constraints:[],relations:[],indexes:[]};for(let f in t){let{name:l}=t[f];d.tables.
124
- push(M.prepareDelete(c,l))}return d},"getDeleteQueries"),z=p((t,c)=>{c.indexes&&
125
- t.indexes.push(...c.indexes),c.constraints&&t.constraints.push(...c.constraints),
126
- c.relations&&t.relations.push(...c.relations),c.tables&&t.tables.push(...c.tables)},
127
- "combineMigrationQueries");export{fe as getCreateQueries,ye as getDeleteQueries,dt as getUpdateQueries};
1
+ var te=Object.defineProperty;var m=(n,p)=>te(n,"name",{value:p,configurable:!0});import{SqlBuilder as V}from"@ez4/pgsql";import{deepEqual as F,deepCompareObject as ne,isAnyObject as L}from"@ez4/utils";
2
+ import{isTableMetadata as G}from"@ez4/pgclient/library";import{isAnySchema as J}from"@ez4/schema";var H=m((n,p)=>ne(n,p,{onRename:m((f,y)=>!L(f)||!L(y)?!1:G(f)&&G(y)?re(f.schema,
3
+ y.schema):J(f)&&J(y)?oe(f,y):!1,"onRename")}),"getTableRepositoryChanges"),re=m(
4
+ (n,p)=>F(Object.keys(n.properties),Object.keys(p.properties)),"canRenameTable"),
5
+ oe=m((n,p)=>F(n,p,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),
6
+ "canRenameColumn");import{isEnumSchema as W,isScalarSchema as X,SchemaType as $}from"@ez4/schema";import{
7
+ isNotNullish as Y}from"@ez4/utils";var q=m((n,p)=>{let[f]=n.select().rawColumn("1").from("pg_constraint").where({conname:n.
8
+ rawString(p)}).build();return f},"getCheckConstraintQuery"),K=m((n,p,f)=>{let[y]=n.
9
+ select().rawColumn("1").where({NOT:{exists:n.select().from(n.rawValue("informati\
10
+ on_schema.columns")).rawColumn("1").where({column_name:n.rawString(f),table_name:n.
11
+ rawString(p)})}}).build();return y},"getCheckColumnQuery");import{toSnakeCase as se}from"@ez4/utils";var z=m((n,p)=>`${v(n,p)}_pk`,"getPrimaryKeyName"),D=m((n,p)=>`${v(n,p)}_uk`,"ge\
12
+ tUniqueKeyName"),U=m((n,p)=>`${v(n,p)}_sk`,"getSecondaryKeyName"),T=m((n,p)=>`${v(
13
+ n,p)}_fk`,"getRelationName"),C=m((n,p)=>`${v(n,p)}_ck`,"getConstraintName"),v=m(
14
+ (n,p)=>`${n}_${se(p.replaceAll(":","_"))}`,"getName");var O;(c=>{c.prepareCreate=m((e,t,s)=>{let l=[];for(let r in s){let i=s[r];if(W(
15
+ i)||X(i)&&Y(i.definitions?.value)){let a=C(t,r);l.push({check:q(e,a),query:g(e,t,
16
+ a,r,i).build()})}}return l},"prepareCreate"),c.prepareUpdate=m((e,t,s,l,r)=>{let i=[];
17
+ for(let a in r){let{update:h,create:x,remove:S}=r[a];if(S||h){let b=l.properties[a];
18
+ if(o(b)){let R=C(t,a);i.push({query:u(e,t,R).build()})}}if(x||h){let b=s.properties[a];
19
+ if(o(b)){let R=C(t,a);i.push({check:q(e,R),query:g(e,t,R,a,b).build()})}}}return i},
20
+ "prepareUpdate"),c.prepareRenameTable=m((e,t,s,l)=>{let r=[];for(let i in l){let a=l[i];
21
+ if(o(a)){let h=C(t,i),x=C(s,i),S=e.table(s).alter().existing().constraint(h).rename(
22
+ x);r.push({check:q(e,x),query:S.build()})}}return r},"prepareRenameTable"),c.prepareRenameColumns=
23
+ m((e,t,s,l)=>{let r=[];for(let i in l){let a=l[i],h=s[a];if(o(h)){let x=C(t,i),S=C(
24
+ t,a),b=e.table(t).alter().existing().constraint(x).rename(S);r.push({check:q(e,S),
25
+ query:b.build()})}}return r},"prepareRenameColumns"),c.prepareDelete=m((e,t,s)=>{
26
+ let l=[];for(let r in s){let i=s[r];if(o(i)){let a=C(t,r);l.push({query:u(e,t,a).
27
+ build()})}}return l},"prepareDelete");let o=m(e=>W(e)||X(e)&&Y(e.definitions?.value),
28
+ "isConstrainedSchema"),u=m((e,t,s)=>e.table(t).alter().existing().constraint(s).
29
+ drop().existing(),"getDeleteQuery"),g=m((e,t,s,l,r)=>{let i=e.table(t).alter().existing().
30
+ constraint(s);switch(r.type){case $.Enum:{let a=r.options.map(({value:h})=>`${h}`);
31
+ i.check({[l]:{isIn:a}});break}case $.Boolean:case $.Number:case $.String:{i.check(
32
+ {[l]:{equal:r.definitions?.value}});break}}return i},"getCreateQuery")})(O||={});import{getTableName as ie}from"@ez4/pgclient/library";import{isNullishSchema as ae}from"@ez4/schema";
33
+ import{Index as Z}from"@ez4/database";var B;(g=>{g.prepareCreate=m((c,e,t,s)=>{let l=[];for(let r in s){let i=s[r];if(d(
34
+ i))continue;let{[i.targetColumn]:a}=t.properties,h=T(e,r),x=!!ae(a);l.push({check:q(
35
+ c,h),query:u(c,e,h,i,x).build()})}return l},"prepareCreate"),g.prepareUpdate=m((c,e,t,s)=>{
36
+ let l=[];for(let r in t){let i=t[r];if(d(i))continue;let a=s[i.targetColumn]?.update,
37
+ h=a?.optional??a?.nullable;if(h===void 0)continue;let x=T(e,r);l.push({query:o(c,
38
+ e,x).build()},{query:u(c,e,x,i,h).build()})}return l},"prepareUpdate"),g.prepareRename=
39
+ m((c,e,t,s)=>{let l=[];for(let r in s){let i=s[r];if(d(i))continue;let a=T(e,r),
40
+ h=T(t,r),x=c.table(t).alter().existing().constraint(a).rename(h);l.push({check:q(
41
+ c,h),query:x.build()})}return l},"prepareRename"),g.prepareDelete=m((c,e,t)=>{let s=[];
42
+ for(let l in t){let r=t[l];if(d(r))continue;let i=T(e,l);s.push({query:o(c,e,i).
43
+ build()})}return s},"prepareDelete");let d=m(c=>{let{sourceIndex:e,targetIndex:t}=c;
44
+ return!e||e===Z.Secondary||t===Z.Primary},"isNotRealRelation"),o=m((c,e,t)=>c.table(
45
+ e).alter().existing().constraint(t).drop().existing(),"getDeleteQuery"),u=m((c,e,t,s,l)=>{
46
+ let{sourceTable:r,sourceColumn:i,targetColumn:a}=s,h=ie(r),x=c.table(e).alter().
47
+ existing().constraint(t).foreign(a,h,[i]);return l?x.delete().null():x.delete().
48
+ cascade(),x.update().cascade(),x},"getCreateQuery")})(B||={});import{SchemaType as Q}from"@ez4/schema";import{Index as N}from"@ez4/database";var j;(o=>{o.prepareCreate=m((u,g,c,e,t)=>{let s={constraints:[],indexes:[]};for(let l in e){
49
+ let{columns:r,type:i}=e[l];switch(i){default:throw new Error("Unsupported index \
50
+ type.");case N.Primary:{let a=z(g,l),h=u.table(g).alter().existing().constraint(
51
+ a).primary(r);s.constraints.push({check:q(u,a),query:h.build()});break}case N.Unique:{
52
+ let a=D(g,l),h=u.table(g).alter().existing().constraint(a).unique(r);s.constraints.
53
+ push({check:q(u,a),query:h.build()});break}case N.Secondary:{let a=U(g,l),h=d(r,
54
+ c),x=u.index(a).create(g,r).type(h).missing();t&&x.concurrent(),s.indexes.push({
55
+ query:x.build()});break}}}return s},"prepareCreate"),o.prepareUpdate=m((u,g,c,e,t,s,l)=>{
56
+ let r={constraints:[],indexes:[]};for(let i in s){let{update:a,create:h,remove:x}=s[i];
57
+ if(x||a){let S=(0,o.prepareDelete)(u,g,{[i]:e[i]});r.constraints.push(...S.constraints),
58
+ r.indexes.push(...S.indexes)}if(h||a){let S=(0,o.prepareCreate)(u,g,c,{[i]:t[i]},
59
+ l);r.constraints.push(...S.constraints),r.indexes.push(...S.indexes)}}return r},
60
+ "prepareUpdate"),o.prepareRename=m((u,g,c,e)=>{let t={constraints:[],indexes:[]};
61
+ for(let s in e){let{type:l}=e[s];switch(l){default:throw new Error("Unsupported \
62
+ index type.");case N.Primary:{let r=z(g,s),i=z(c,s),a=u.table(c).alter().existing().
63
+ constraint(r).rename(i);t.constraints.push({check:q(u,i),query:a.build()});break}case N.
64
+ Unique:{let r=D(g,s),i=D(c,s),a=u.table(c).alter().existing().constraint(r).rename(
65
+ i);t.constraints.push({check:q(u,i),query:a.build()});break}case N.Secondary:{let r=U(
66
+ g,s),i=U(c,s),a=u.index(r).rename(i).existing();t.indexes.push({query:a.build()});
67
+ break}}}return t},"prepareRename"),o.prepareDelete=m((u,g,c)=>{let e={constraints:[],
68
+ indexes:[]};for(let t in c){let{type:s}=c[t];switch(s){default:throw new Error("\
69
+ Unsupported index type.");case N.Primary:{let l=z(g,t),r=u.table(g).alter().existing().
70
+ constraint(l).drop().existing();e.constraints.push({query:r.build()});break}case N.
71
+ Unique:{let l=D(g,t),r=u.table(g).alter().existing().constraint(l).drop().existing();
72
+ e.constraints.push({query:r.build()});break}case N.Secondary:{let l=U(g,t),r=u.index(
73
+ l).drop().existing().concurrent();e.indexes.push({query:r.build()});break}}}return e},
74
+ "prepareDelete");let d=m((u,g)=>{if(u.length===1){let[c]=u;switch(g.properties[c]?.
75
+ type){case Q.Object:case Q.Union:case Q.Array:case Q.Tuple:return"GIN"}}return"B\
76
+ TREE"},"getIndexType")})(j||={});import{Index as ee}from"@ez4/database";import{isArraySchema as ce,isEnumSchema as me,isObjectSchema as pe,isScalarSchema as ue,
77
+ isStringSchema as le,isTupleSchema as de,SchemaType as P}from"@ez4/schema";import{
78
+ isAnyNumber as ge}from"@ez4/utils";var M=m(n=>!!(n.nullable||n.optional),"isOptionalColumn"),I=m((n,p)=>{if(ue(n)||
79
+ pe(n)||ce(n)||de(n)){let{definitions:f}=n;switch(typeof f?.default){case"boolean":case"\
80
+ number":return`${f.default}`;case"string":return`'${f.default}'`;case"object":return`\
81
+ '${JSON.stringify(f.default)}'`}}if(me(n)){let{definitions:f}=n;if(f?.default)return`\
82
+ '${f.default}'`}if(le(n)&&p)switch(n.format){case"date-time":case"date":case"tim\
83
+ e":return"now()";case"uuid":return"gen_random_uuid()"}if(M(n))return"null"},"get\
84
+ ColumnDefault"),_=m((n,p)=>{switch(n.type){case P.Array:case P.Object:case P.Reference:case P.
85
+ Union:case P.Tuple:return"jsonb";case P.Boolean:return"boolean";case P.Enum:return"\
86
+ text";case P.Number:return fe(n,p);case P.String:return ye(n)}},"getColumnType"),
87
+ fe=m((n,p)=>n.format==="integer"?p?"bigserial":"bigint":"decimal","getColumNumbe\
88
+ rType"),ye=m(n=>{switch(n.format){case"uuid":case"time":case"date":return n.format;case"\
89
+ date-time":return"timestamptz";default:let p=n.definitions?.maxLength;return ge(
90
+ p)?`varchar(${p})`:"text"}},"getColumnTextType");var A;(d=>(d.prepareCreate=m((o,u,g,c)=>{let e=o.table(u).alter().existing();for(let t in c){
91
+ let s=c[t],r=g[t]?.type===ee.Primary,i=!M(s),a=_(s,r),h=I(s,r);e.add(t,a,i,h).missing()}
92
+ return{query:e.build()}},"prepareCreate"),d.prepareUpdate=m((o,u,g,c,e)=>{let t=[];
93
+ for(let s in e){let{create:l,update:r,nested:i,remove:a}=e[s],h=g.properties[s],
94
+ S=c[s]?.type===ee.Primary,b=o.table(u).alter().existing().column(s);if(l){let R=l.
95
+ definitions?.default,k=l?.nullable;R!==void 0&&b.default(I(h,S)),k!==void 0&&b.optional(
96
+ k)}if(r||i){let R=i?.definitions?.update?.default,k=r?.nullable;r?.type!==void 0&&
97
+ b.type(_(h,S)),R!==void 0&&b.default(I(h,S)),k!==void 0&&b.optional(k)}if(a){let R=a.
98
+ definitions?.default,k=a?.nullable;R!==void 0&&b.default(null),k!==void 0&&b.optional(
99
+ k)}b.empty||t.push({check:K(o,u,s),query:b.build()})}return t},"prepareUpdate"),
100
+ d.prepareRename=m((o,u,g)=>{let c=[];for(let e in g){let t=g[e],s=o.table(u).alter().
101
+ existing().rename(e,t);c.push({check:K(o,u,e),query:s.build()})}return c},"prepa\
102
+ reRename"),d.prepareDelete=m((o,u,g)=>{let c=o.table(u).alter().existing();for(let e in g)
103
+ c.drop(e).existing();return{query:c.build()}},"prepareDelete")))(A||={});import{Index as he}from"@ez4/database";var E;(y=>(y.prepareCreate=m((d,o,u,g)=>{let c=d.table(o).create().missing();for(let e in u.
104
+ properties){let t=u.properties[e],l=g[e]?.type===he.Primary,r=!M(t),i=_(t,l),a=I(
105
+ t,l);c.column(e,i,r,a).missing()}return{query:c.build()}},"prepareCreate"),y.prepareRename=
106
+ m((d,o,u)=>({query:d.table(o).rename(u).existing().build()}),"prepareRename"),y.
107
+ prepareDelete=m((d,o)=>({query:d.table(o).drop().existing().cascade().build()}),
108
+ "prepareDelete")))(E||={});var xe=m(n=>{let p=new V,f={tables:[],constraints:[],relations:[],indexes:[]};for(let y in n){
109
+ let{name:d,schema:o,indexes:u,relations:g}=n[y];f.tables.push(E.prepareCreate(p,
110
+ d,o,u)),f.constraints.push(...O.prepareCreate(p,d,o.properties)),f.relations.push(
111
+ ...B.prepareCreate(p,d,o,g)),w(f,j.prepareCreate(p,d,o,u,!1))}return f},"getCrea\
112
+ teQueries"),ht=m((n,p)=>{let f=H(n,p),y=new V,d={tables:[],constraints:[],relations:[],
113
+ indexes:[]};if(f.create&&w(d,xe(f.create)),f.rename)for(let o in f.rename){let u=f.
114
+ rename[o],g=n[u].indexes,c=n[u].relations,e=n[u].schema;d.tables.push(E.prepareRename(
115
+ y,o,u)),d.constraints.push(...O.prepareRenameTable(y,o,u,e.properties)),d.relations.
116
+ push(...B.prepareRename(y,o,u,c)),w(d,j.prepareRename(y,o,u,g))}if(f.nested)for(let o in f.
117
+ nested){let{nested:u}=f.nested[o];if(!u)continue;let{schema:g,relations:c,indexes:e}=u,
118
+ t=g?.nested?.properties,s=n[o].relations,l=p[o].indexes,r=n[o].indexes,i=p[o].schema,
119
+ a=n[o].schema;t?.create&&(d.tables.push(A.prepareCreate(y,o,r,t.create)),d.constraints.
120
+ push(...O.prepareCreate(y,o,t.create))),t?.nested&&(d.tables.push(...A.prepareUpdate(
121
+ y,o,a,r,t.nested)),d.constraints.push(...O.prepareUpdate(y,o,a,i,t.nested)),d.relations.
122
+ push(...B.prepareUpdate(y,o,s,t.nested))),t?.rename&&(d.tables.push(...A.prepareRename(
123
+ y,o,t.rename)),d.constraints.push(...O.prepareRenameColumns(y,o,a.properties,t.rename))),
124
+ t?.remove&&(d.tables.push(A.prepareDelete(y,o,t.remove)),d.constraints.push(...O.
125
+ prepareDelete(y,o,t.remove))),e?.create&&w(d,j.prepareCreate(y,o,a,e.create,!0)),
126
+ e?.nested&&w(d,j.prepareUpdate(y,o,a,l,r,e.nested,!0)),e?.remove&&w(d,j.prepareDelete(
127
+ y,o,e.remove)),c?.create&&d.relations.push(...B.prepareCreate(y,o,a,c.create)),c?.
128
+ remove&&d.relations.push(...B.prepareDelete(y,o,c.remove))}return f.remove&&w(d,
129
+ Se(f.remove)),d},"getUpdateQueries"),Se=m(n=>{let p=new V,f={tables:[],constraints:[],
130
+ relations:[],indexes:[]};for(let y in n){let{name:d}=n[y];f.tables.push(E.prepareDelete(
131
+ p,d))}return f},"getDeleteQueries"),w=m((n,p)=>{p.indexes&&n.indexes.push(...p.indexes),
132
+ p.constraints&&n.constraints.push(...p.constraints),p.relations&&n.relations.push(
133
+ ...p.relations),p.tables&&n.tables.push(...p.tables)},"combineQueries");export{xe as getCreateQueries,Se as getDeleteQueries,ht as getUpdateQueries};
128
134
  //# sourceMappingURL=main.mjs.map
@@ -1,10 +1,12 @@
1
1
  import type { PgIndexRepository } from '@ez4/pgclient/library';
2
+ import type { ObjectComparison } from '@ez4/utils';
2
3
  import type { ObjectSchema } from '@ez4/schema';
3
4
  import type { SqlBuilder } from '@ez4/pgsql';
4
5
  import type { PgMigrationQueries } from '../types/query';
5
6
  type IndexMigrationQueries = Pick<PgMigrationQueries, 'constraints' | 'indexes'>;
6
7
  export declare namespace IndexQueries {
7
8
  const prepareCreate: (builder: SqlBuilder, table: string, schema: ObjectSchema, indexes: PgIndexRepository, concurrent: boolean) => IndexMigrationQueries;
9
+ const prepareUpdate: (builder: SqlBuilder, table: string, schema: ObjectSchema, sourceIndexes: PgIndexRepository, targetIndexes: PgIndexRepository, changes: Record<string, ObjectComparison>, concurrent: boolean) => IndexMigrationQueries;
8
10
  const prepareRename: (builder: SqlBuilder, fromTable: string, toTable: string, indexes: PgIndexRepository) => IndexMigrationQueries;
9
11
  const prepareDelete: (builder: SqlBuilder, table: string, indexes: PgIndexRepository) => IndexMigrationQueries;
10
12
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ez4/pgmigration",
3
3
  "description": "EZ4: A PostgreSQL migration library",
4
- "version": "0.38.0",
4
+ "version": "0.40.0",
5
5
  "author": "Silas B.",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -35,7 +35,7 @@
35
35
  ],
36
36
  "scripts": {
37
37
  "lint": "eslint --cache",
38
- "clean": "rm -f *.tsbuildinfo && rm -rf dist/*",
38
+ "clean": "rm -rf dist/* *.tsbuildinfo .eslintcache",
39
39
  "build": "tsc && node tools/bundler.mjs",
40
40
  "test": "npm run build && tsc -p tsconfig.test.json && ez4 test",
41
41
  "local:publish": "npm run build && npm run clean:registry && npm publish --registry http://localhost:4873",
@@ -43,10 +43,10 @@
43
43
  "live:publish": "npm run build && npm publish --access public"
44
44
  },
45
45
  "dependencies": {
46
- "@ez4/database": "^0.38.0",
47
- "@ez4/pgsql": "^0.38.0",
48
- "@ez4/pgclient": "^0.38.0",
49
- "@ez4/schema": "^0.38.0",
50
- "@ez4/utils": "^0.38.0"
46
+ "@ez4/database": "^0.40.0",
47
+ "@ez4/pgsql": "^0.40.0",
48
+ "@ez4/pgclient": "^0.40.0",
49
+ "@ez4/schema": "^0.40.0",
50
+ "@ez4/utils": "^0.40.0"
51
51
  }
52
52
  }