@ez4/pgmigration 0.42.0 → 0.43.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.cjs CHANGED
@@ -1,142 +1,162 @@
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.
1
+ "use strict";var F=Object.defineProperty;var le=Object.getOwnPropertyDescriptor;var de=Object.getOwnPropertyNames;var ge=Object.prototype.hasOwnProperty;var a=(e,n)=>F(e,"name",{value:n,configurable:!0});var fe=(e,n)=>{for(var f in n)F(e,f,{get:n[f],enumerable:!0})},ye=(e,n,f,h)=>{if(n&&
2
+ typeof n=="object"||typeof n=="function")for(let d of de(n))!ge.call(e,d)&&d!==f&&
3
+ F(e,d,{get:()=>n[d],enumerable:!(h=le(n,d))||h.enumerable});return e};var he=e=>ye(F({},"__esModule",{value:!0}),e);var Re={};fe(Re,{getCreateQueries:()=>me,getDeleteQueries:()=>pe,getUpdateQueries:()=>Ce});
4
+ module.exports=he(Re);var H=require("@ez4/pgsql");var N=require("@ez4/utils"),X=require("@ez4/pgclient/library"),Y=require("@ez4/schema");var re=a((e,n)=>(0,N.deepCompareObject)(e,n,{depth:5,onSimilarName:a((f,h)=>{let d=new Set(
5
+ (0,N.toSnakeCase)(f).split("_")),u=new Set((0,N.toSnakeCase)(h).split("_"));for(let y of u)
6
+ if(y.length>1&&d.has(y))return!0;return!1},"onSimilarName"),onRename:a((f,h)=>!(0,N.isAnyObject)(
7
+ f)||!(0,N.isAnyObject)(h)?!1:(0,X.isTableMetadata)(f)&&(0,X.isTableMetadata)(h)?
8
+ xe(f.schema,h.schema):(0,Y.isAnySchema)(f)&&(0,Y.isAnySchema)(h)?Se(f,h):!1,"onR\
9
+ ename")}),"getTableRepositoryChanges"),xe=a((e,n)=>(0,N.deepEqual)(Object.keys(e.
10
+ properties),Object.keys(n.properties)),"canRenameTable"),Se=a((e,n)=>(0,N.deepEqual)(
11
+ e,n,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
12
+ Column");var R=require("@ez4/schema"),z=require("@ez4/utils");var w=a((e,n)=>{let[f]=e.select().rawColumn("1").from("pg_constraint").where({conname:e.
13
+ rawString(n)}).build();return f},"getCheckConstraintQuery"),Z=a((e,n,f)=>{let[h]=e.
12
14
  select().rawColumn("1").where({NOT:{exists:e.select().from(e.rawValue("informati\
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});
15
+ on_schema.columns")).rawColumn("1").where({column_name:e.rawString(f),table_name:e.
16
+ rawString(n)})}}).build();return h},"getCheckColumnQuery"),ee=a((e,n)=>{let[f]=e.
17
+ select().rawColumn("1").from("pg_constraint").where({convalidated:e.rawValue("tr\
18
+ ue"),conname:e.rawString(n)}).build();return f},"getCheckConstraintValidatedQuer\
19
+ y");var oe=require("@ez4/utils");var _=a((e,n)=>`${$(e,n)}_pk`,"getPrimaryKeyName"),Q=a((e,n)=>`${$(e,n)}_uk`,"ge\
20
+ tUniqueKeyName"),E=a((e,n)=>`${$(e,n)}_sk`,"getSecondaryKeyName"),I=a((e,n)=>`${$(
21
+ e,n)}_fk`,"getRelationName"),O=a((e,n)=>`${$(e,n)}_ck`,"getConstraintName"),$=a(
22
+ (e,n)=>`${e}_${(0,oe.toSnakeCase)(n.replaceAll(":","_"))}`,"getName");var B;(s=>{s.prepareCreate=a((t,m,i)=>{let p={constraints:[],validations:[]};for(let c in i){
23
+ let l=i[c];if((0,R.isEnumSchema)(l)||(0,R.isScalarSchema)(l)&&(0,z.isNotNullish)(
24
+ l.definitions?.value)){let x=O(m,c);p.constraints.push({check:w(t,x),query:g(t,m,
25
+ x,c,l).build()}),p.validations.push({check:ee(t,x),query:y(t,m,x).build(),name:x})}}
26
+ return p},"prepareCreate"),s.prepareUpdate=a((t,m,i,p,c)=>{let l={constraints:[],
27
+ validations:[]};for(let x in c){let{update:S,create:b,remove:P,nested:C}=c[x],U=[];
28
+ if(P||S||C){let J=p.properties[x],W={...P,...S,...C};if(o(J,W)){let j=O(m,x);U.push(
29
+ {query:u(t,m,j).build()})}}if(b||S||C){let J=i.properties[x],W={...b,...S,...C};
30
+ if(o(J,W)){let j=O(m,x),ue=U.length;U.push({...!ue&&{check:w(t,j)},query:g(t,m,j,
31
+ x,J).build()}),l.validations.push({check:ee(t,j),query:y(t,m,j).build(),name:j})}}
32
+ l.constraints.push(...U)}return l},"prepareUpdate"),s.prepareRenameTable=a((t,m,i,p)=>{
33
+ let c=[];for(let l in p){let x=p[l];if(r(x)){let S=O(m,l),b=O(i,l),P=t.table(i).
34
+ alter().existing().constraint(S).rename(b);c.push({check:w(t,b),query:P.build()})}}
35
+ return c},"prepareRenameTable"),s.prepareRenameColumns=a((t,m,i,p)=>{let c=[];for(let l in p){
36
+ let x=p[l],S=i[x];if(r(S)){let b=O(m,l),P=O(m,x),C=t.table(m).alter().existing().
37
+ constraint(b).rename(P);c.push({check:w(t,P),query:C.build()})}}return c},"prepa\
38
+ reRenameColumns"),s.prepareDelete=a((t,m,i)=>{let p=[];for(let c in i){let l=i[c];
39
+ if(r(l)){let x=O(m,c);p.push({query:u(t,m,x).build()})}}return p},"prepareDelete");
40
+ let u=a((t,m,i)=>t.table(m).alter().existing().constraint(i).drop().existing(),"\
41
+ getDeleteQuery"),y=a((t,m,i)=>t.table(m).alter().existing().constraint(i).validate(),
42
+ "getValidationQuery"),g=a((t,m,i,p,c)=>{let l=t.table(m).alter().existing().constraint(
43
+ i);switch(c.type){case R.SchemaType.Enum:{let x=c.options.map(({value:b})=>`${b}`);
44
+ l.check({[p]:{isIn:x}}).validate(!1);break}case R.SchemaType.Boolean:case R.SchemaType.
45
+ Number:case R.SchemaType.String:{l.check({[p]:{equal:c.definitions?.value}}).validate(
46
+ !1);break}}return l},"getCreateQuery"),r=a(t=>(0,R.isEnumSchema)(t)||(0,R.isScalarSchema)(
47
+ t)&&(0,z.isNotNullish)(t.definitions?.value),"isConstrainedSchema"),o=a((t,m)=>{
48
+ switch(t.type){case R.SchemaType.Boolean:case R.SchemaType.Number:case R.SchemaType.
49
+ String:return(0,z.isNotNullish)(m.definitions?.value)||(0,z.isNotNullish)(m.definitions?.
50
+ update?.value);case R.SchemaType.Enum:return(0,z.isNotNullish)(m.options)}return!1},
51
+ "isConstrainedChange")})(B||={});var se=require("@ez4/pgclient/library"),ie=require("@ez4/schema"),te=require("@ez4/database");var T;(g=>{g.prepareCreate=a((r,o,s,t)=>{let m=[];for(let i in t){let p=t[i];if(d(
52
+ p))continue;let{[p.targetColumn]:c}=s.properties,l=I(o,i),x=!!(0,ie.isNullishSchema)(
53
+ c);m.push({check:w(r,l),query:y(r,o,l,p,x).build()})}return m},"prepareCreate"),
54
+ g.prepareUpdate=a((r,o,s,t)=>{let m=[];for(let i in s){let p=s[i];if(d(p))continue;
55
+ let c=t[p.targetColumn]?.update,l=c?.optional??c?.nullable;if(l===void 0)continue;
56
+ let x=I(o,i);m.push({query:u(r,o,x).build()},{query:y(r,o,x,p,l).build()})}return m},
57
+ "prepareUpdate"),g.prepareRename=a((r,o,s,t)=>{let m=[];for(let i in t){let p=t[i];
58
+ if(d(p))continue;let c=I(o,i),l=I(s,i),x=r.table(s).alter().existing().constraint(
59
+ c).rename(l);m.push({check:w(r,l),query:x.build()})}return m},"prepareRename"),g.
60
+ prepareDelete=a((r,o,s)=>{let t=[];for(let m in s){let i=s[m];if(d(i))continue;let p=I(
61
+ o,m);t.push({query:u(r,o,p).build()})}return t},"prepareDelete");let d=a(r=>{let{
62
+ sourceIndex:o,targetIndex:s}=r;return!o||o===te.Index.Secondary||s===te.Index.Primary},
63
+ "isNotRealRelation"),u=a((r,o,s)=>r.table(o).alter().existing().constraint(s).drop().
64
+ existing(),"getDeleteQuery"),y=a((r,o,s,t,m)=>{let{sourceTable:i,sourceColumn:p,
65
+ targetColumn:c}=t,l=(0,se.getTableName)(i),x=r.table(o).alter().existing().constraint(
66
+ s),S=x.foreign(c,l,[p]).validate(!1);return m?S.delete().null():S.delete().cascade(),
67
+ S.update().cascade(),x},"getCreateQuery")})(T||={});var V=require("@ez4/schema"),k=require("@ez4/database");var A;(y=>{y.prepareCreate=a((g,r,o,s)=>{let t={constraints:[],validations:[],indexes:[]};
68
+ for(let m in s){let{columns:i,type:p,name:c}=s[m];switch(p){default:throw new Error(
69
+ "Unsupported index type.");case k.Index.Primary:{let l=_(r,c);t.constraints.push(
70
+ {check:w(g,l),query:g.table(r).alter().existing().constraint(l).primary(i).build()});
71
+ break}case k.Index.Unique:{let l=Q(r,c),x=u(i,o);t.indexes.push({query:g.index(l).
72
+ create(r,i).type(x).unique().concurrent().missing().build()}),t.validations.push(
73
+ {query:(0,y.getValidationQuery)(g,l),name:l});break}case k.Index.Secondary:{let l=E(
74
+ r,c),x=u(i,o);t.indexes.push({query:g.index(l).create(r,i).type(x).concurrent().
75
+ missing().build()}),t.validations.push({query:(0,y.getValidationQuery)(g,l),name:l});
76
+ break}}}return t},"prepareCreate"),y.prepareUpdate=a((g,r,o,s,t,m)=>{let i={constraints:[],
77
+ validations:[],indexes:[]};for(let p in m){let{update:c,create:l,remove:x}=m[p];
78
+ if(x||c){let S=(0,y.prepareDelete)(g,r,{[p]:s[p]});i.constraints.push(...S.constraints),
79
+ i.indexes.push(...S.indexes)}if(l||c){let S=(0,y.prepareCreate)(g,r,o,{[p]:t[p]});
80
+ i.constraints.push(...S.constraints),i.indexes.push(...S.indexes)}}return i},"pr\
81
+ epareUpdate"),y.prepareRename=a((g,r,o,s)=>{let t={validations:[],constraints:[],
82
+ indexes:[]};for(let m in s){let{type:i,name:p}=s[m];switch(i){default:throw new Error(
83
+ "Unsupported index type.");case k.Index.Primary:{let c=_(r,p),l=_(o,p);t.constraints.
84
+ push({check:w(g,l),query:g.table(o).alter().existing().constraint(c).rename(l).build()});
85
+ break}case k.Index.Unique:{let c=Q(r,p),l=Q(o,p);t.indexes.push({query:g.index(c).
86
+ rename(l).existing().build()});break}case k.Index.Secondary:{let c=E(r,p),l=E(o,
87
+ p);t.indexes.push({query:g.index(c).rename(l).existing().build()});break}}}return t},
88
+ "prepareRename"),y.prepareDelete=a((g,r,o)=>{let s={validations:[],constraints:[],
89
+ indexes:[]};for(let t in o){let{type:m,name:i}=o[t];switch(m){default:throw new Error(
90
+ "Unsupported index type.");case k.Index.Primary:{let p=_(r,i),c=g.table(r).alter().
91
+ existing().constraint(p).drop().existing();s.constraints.push({query:c.build()});
92
+ break}case k.Index.Unique:{let p=Q(r,i),c=g.index(p).drop().existing().concurrent();
93
+ s.indexes.push({query:c.build()});break}case k.Index.Secondary:{let p=E(r,i),c=g.
94
+ index(p).drop().existing().concurrent();s.indexes.push({query:c.build()});break}}}
95
+ return s},"prepareDelete"),y.getValidationQuery=a((g,r)=>{let[o]=g.select().rawColumn(
96
+ "1").from("pg_index").where({indexrelid:g.rawValue(`${g.rawString(r).build()}::r\
97
+ egclass`),indisvalid:g.rawValue("false"),indisready:g.rawValue("true")}).build();
98
+ return o},"getValidationQuery");let u=a((g,r)=>{if(g.length===1){let[o]=g;switch(r.
99
+ properties[o]?.type){case V.SchemaType.Object:case V.SchemaType.Union:case V.SchemaType.
100
+ Array:case V.SchemaType.Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(A||=
101
+ {});var ne=require("@ez4/database");var q=require("@ez4/schema"),ae=require("@ez4/utils");var K=a(e=>!!(e.nullable||e.optional),"isOptionalColumn"),M=a((e,n)=>{if((0,q.isScalarSchema)(
102
+ e)||(0,q.isObjectSchema)(e)||(0,q.isArraySchema)(e)||(0,q.isTupleSchema)(e)){let{
103
+ definitions:f}=e;switch(typeof f?.default){case"boolean":case"number":return`${f.
104
+ default}`;case"string":return`'${f.default}'`;case"object":return`'${JSON.stringify(
105
+ f.default)}'`}}if((0,q.isEnumSchema)(e)){let{definitions:f}=e;if(f?.default)return`\
106
+ '${f.default}'`}if((0,q.isStringSchema)(e)&&n)switch(e.format){case"date-time":case"\
107
+ date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(K(e))return"\
108
+ null"},"getColumnDefault"),L=a((e,n)=>{switch(e.type){case q.SchemaType.Array:case q.SchemaType.
109
+ Object:case q.SchemaType.Reference:case q.SchemaType.Union:case q.SchemaType.Tuple:
110
+ return"jsonb";case q.SchemaType.Boolean:return"boolean";case q.SchemaType.Enum:return"\
111
+ text";case q.SchemaType.Number:return qe(e,n);case q.SchemaType.String:return be(
112
+ e)}},"getColumnType"),qe=a((e,n)=>e.format==="integer"?n?"bigserial":"bigint":"d\
113
+ ecimal","getColumNumberType"),be=a(e=>{switch(e.format){case"uuid":case"time":case"\
114
+ date":return e.format;case"date-time":return"timestamptz";default:let n=e.definitions?.
115
+ maxLength;return(0,ae.isAnyNumber)(n)?`varchar(${n})`:"text"}},"getColumnTextTyp\
116
+ e");var D;(d=>(d.prepareCreate=a((u,y,g,r)=>{let o=u.table(y).alter().existing();for(let s in r){
117
+ let t=r[s],i=g[s]?.type===ne.Index.Primary,p=!K(t),c=L(t,i),l=M(t,i);o.add(s,c,p,
118
+ l).missing()}return{query:o.build()}},"prepareCreate"),d.prepareUpdate=a((u,y,g,r,o)=>{
119
+ let s=[];for(let t in o){let{create:m,update:i,nested:p,remove:c}=o[t],l=g.properties[t],
120
+ S=r[t]?.type===ne.Index.Primary,b=u.table(y).alter().existing().column(t);if(m){
121
+ let P=m.definitions?.default,C=m?.nullable;P!==void 0&&b.default(M(l,S)),!S&&C!==
122
+ void 0&&b.optional(C)}if(i||p){let P=p?.definitions?.update?.default,C=i?.nullable;
123
+ i?.type!==void 0&&b.type(L(l,S)),P!==void 0&&b.default(M(l,S)),!S&&C!==void 0&&b.
124
+ optional(C)}if(c){let P=c.definitions?.default,C=c?.nullable;P!==void 0&&b.default(
125
+ null),!S&&C!==void 0&&b.optional(C)}b.empty||s.push({check:Z(u,y,t),query:b.build()})}
126
+ return s},"prepareUpdate"),d.prepareRename=a((u,y,g)=>{let r=[];for(let o in g){
127
+ let s=g[o],t=u.table(y).alter().existing().rename(o,s);r.push({check:Z(u,y,o),query:t.
128
+ build()})}return r},"prepareRename"),d.prepareDelete=a((u,y,g)=>{let r=u.table(y).
129
+ alter().existing();for(let o in g)r.drop(o).existing();return{query:r.build()}},
130
+ "prepareDelete")))(D||={});var ce=require("@ez4/database");var G;(h=>(h.prepareCreate=a((d,u,y,g)=>{let r=d.table(u).create().missing();for(let o in y.
131
+ properties){let s=y.properties[o],m=g[o]?.type===ce.Index.Primary,i=!K(s),p=L(s,
132
+ m),c=M(s,m);r.column(o,p,i,c).missing()}return{query:r.build()}},"prepareCreate"),
133
+ h.prepareRename=a((d,u,y)=>({query:d.table(u).rename(y).existing().build()}),"pr\
134
+ epareRename"),h.prepareDelete=a((d,u)=>({query:d.table(u).drop().existing().cascade().
135
+ build()}),"prepareDelete")))(G||={});var me=a(e=>{let n=new H.SqlBuilder,f={tables:[],constraints:[],validations:[],relations:[],
136
+ indexes:[]};for(let h in e){let{name:d,schema:u,indexes:y,relations:g}=e[h];f.tables.
137
+ push(G.prepareCreate(n,d,u,y)),f.relations.push(...T.prepareCreate(n,d,u,g)),v(f,
138
+ B.prepareCreate(n,d,u.properties)),v(f,A.prepareCreate(n,d,u,y))}return f},"getC\
139
+ reateQueries"),Ce=a((e,n)=>{let f=re(e,n),h=new H.SqlBuilder,d={tables:[],constraints:[],
140
+ validations:[],relations:[],indexes:[]};if(f.create&&v(d,me(f.create)),f.rename)
141
+ for(let u in f.rename){let y=f.rename[u],g=e[y].indexes,r=e[y].relations,o=e[y].
142
+ schema;d.tables.push(G.prepareRename(h,u,y)),d.constraints.push(...B.prepareRenameTable(
143
+ h,u,y,o.properties)),d.relations.push(...T.prepareRename(h,u,y,r)),v(d,A.prepareRename(
144
+ h,u,y,g))}if(f.nested)for(let u in f.nested){let{nested:y}=f.nested[u];if(!y)continue;
145
+ let{schema:g,relations:r,indexes:o}=y,s=g?.nested?.properties,t=e[u].relations,m=n[u].
146
+ indexes,i=e[u].indexes,p=n[u].schema,c=e[u].schema;s?.create&&(d.tables.push(D.prepareCreate(
147
+ h,u,i,s.create)),v(d,B.prepareCreate(h,u,s.create))),s?.nested&&(d.tables.push(...D.
148
+ prepareUpdate(h,u,c,i,s.nested)),v(d,B.prepareUpdate(h,u,c,p,s.nested)),d.relations.
149
+ push(...T.prepareUpdate(h,u,t,s.nested))),s?.rename&&(d.tables.push(...D.prepareRename(
150
+ h,u,s.rename)),d.constraints.push(...B.prepareRenameColumns(h,u,c.properties,s.rename))),
151
+ s?.remove&&(d.tables.push(D.prepareDelete(h,u,s.remove)),d.constraints.push(...B.
152
+ prepareDelete(h,u,s.remove))),o?.create&&v(d,A.prepareCreate(h,u,c,o.create)),o?.
153
+ nested&&v(d,A.prepareUpdate(h,u,c,m,i,o.nested)),o?.remove&&v(d,A.prepareDelete(
154
+ h,u,o.remove)),r?.create&&d.relations.push(...T.prepareCreate(h,u,c,r.create)),r?.
155
+ remove&&d.relations.push(...T.prepareDelete(h,u,r.remove))}return f.remove&&v(d,
156
+ pe(f.remove)),d},"getUpdateQueries"),pe=a(e=>{let n=new H.SqlBuilder,f={tables:[],
157
+ constraints:[],validations:[],relations:[],indexes:[]};for(let h in e){let{name:d}=e[h];
158
+ f.tables.push(G.prepareDelete(n,d))}return f},"getDeleteQueries"),v=a((e,n)=>{n.
159
+ tables&&e.tables.push(...n.tables),n.constraints&&e.constraints.push(...n.constraints),
160
+ n.validations&&e.validations.push(...n.validations),n.relations&&e.relations.push(
161
+ ...n.relations),n.indexes&&e.indexes.push(...n.indexes)},"combineQueries");0&&(module.exports={getCreateQueries,getDeleteQueries,getUpdateQueries});
142
162
  //# sourceMappingURL=main.cjs.map