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