@ez4/pgmigration 0.26.0 → 0.28.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/main.cjs CHANGED
@@ -1,125 +1,131 @@
1
- "use strict";var Q=Object.defineProperty;var he=Object.getOwnPropertyDescriptor;var xe=Object.getOwnPropertyNames;var Se=Object.prototype.hasOwnProperty;var a=(e,t)=>Q(e,"name",{value:t,configurable:!0});var be=(e,t)=>{for(var n in t)Q(e,n,{get:t[n],enumerable:!0})},qe=(e,t,n,s)=>{if(t&&
2
- typeof t=="object"||typeof t=="function")for(let r of xe(t))!Se.call(e,r)&&r!==n&&
3
- Q(e,r,{get:()=>t[r],enumerable:!(s=he(t,r))||s.enumerable});return e};var Ce=e=>qe(Q({},"__esModule",{value:!0}),e);var je={};be(je,{getCreateQueries:()=>ye,getDeleteQueries:()=>fe,getUpdateQueries:()=>ke});
4
- module.exports=Ce(je);var z=require("@ez4/pgsql");var G=require("@ez4/database");var l=require("@ez4/schema"),V=require("@ez4/utils");var P=a(e=>!!(e.nullable||e.optional),"isOptionalColumn"),N=a((e,t)=>{if((0,l.isScalarSchema)(
5
- e)||(0,l.isObjectSchema)(e)||(0,l.isArraySchema)(e)||(0,l.isTupleSchema)(e)){let{
6
- definitions:n}=e;switch(typeof n?.default){case"boolean":case"number":return`${n.
7
- default}`;case"string":return`'${n.default}'`;case"object":return`'${JSON.stringify(
8
- n.default)}'`}}if((0,l.isEnumSchema)(e)){let{definitions:n}=e;if(n?.default)return`\
9
- '${n.default}'`}if((0,l.isStringSchema)(e)&&t)switch(e.format){case"date-time":case"\
10
- date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(P(e))return"\
11
- null"},"getColumnDefault"),I=a((e,t)=>{switch(e.type){case l.SchemaType.Array:case l.SchemaType.
12
- Object:case l.SchemaType.Reference:case l.SchemaType.Union:case l.SchemaType.Tuple:
13
- return"jsonb";case l.SchemaType.Boolean:return"boolean";case l.SchemaType.Enum:return"\
14
- text";case l.SchemaType.Number:return Re(e,t);case l.SchemaType.String:return Pe(
15
- e)}},"getColumnType"),Re=a((e,t)=>e.format==="integer"?t?"bigserial":"bigint":"d\
16
- ecimal","getColumNumberType"),Pe=a(e=>{switch(e.format){case"uuid":case"time":case"\
17
- date":return e.format;case"date-time":return"timestamptz";default:let t=e.definitions?.
18
- maxLength;return(0,V.isAnyNumber)(t)?`varchar(${t})`:"text"}},"getColumnTextType");var J=a((e,t,n,s)=>{let r=e.table(t).create().missing();for(let o in n.properties){
19
- let i=n.properties[o],p=s[o]?.type===G.Index.Primary,c=!P(i),u=I(i,p),g=N(i,p);r.
20
- column(o,u,c,g).missing()}return{query:r.build()}},"prepareCreateTable"),F=a((e,t,n)=>({
21
- query:e.table(t).rename(n).existing().build()}),"prepareRenameTable"),H=a((e,t)=>({
22
- query:e.table(t).drop().existing().cascade().build()}),"prepareDeleteTable");var U=require("@ez4/database");var d=a((e,t)=>{let[n]=e.select().rawColumn("1").from("pg_constraint").where({conname:e.
23
- rawString(t)}).build();return n},"getCheckConstraintQuery"),D=a((e,t,n)=>{let[s]=e.
1
+ "use strict";var K=Object.defineProperty;var oe=Object.getOwnPropertyDescriptor;var se=Object.getOwnPropertyNames;var ie=Object.prototype.hasOwnProperty;var p=(e,s)=>K(e,"name",{value:s,configurable:!0});var ae=(e,s)=>{for(var g in s)K(e,g,{get:s[g],enumerable:!0})},ce=(e,s,g,d)=>{if(s&&
2
+ typeof s=="object"||typeof s=="function")for(let m of se(s))!ie.call(e,m)&&m!==g&&
3
+ K(e,m,{get:()=>s[m],enumerable:!(d=oe(s,m))||d.enumerable});return e};var pe=e=>ce(K({},"__esModule",{value:!0}),e);var ye={};ae(ye,{getCreateQueries:()=>re,getDeleteQueries:()=>ne,getUpdateQueries:()=>de});
4
+ module.exports=pe(ye);var L=require("@ez4/pgsql");var X=require("@ez4/database");var x=require("@ez4/schema"),W=require("@ez4/utils");var z=p(e=>!!(e.nullable||e.optional),"isOptionalColumn"),D=p((e,s)=>{if((0,x.isScalarSchema)(
5
+ e)||(0,x.isObjectSchema)(e)||(0,x.isArraySchema)(e)||(0,x.isTupleSchema)(e)){let{
6
+ definitions:g}=e;switch(typeof g?.default){case"boolean":case"number":return`${g.
7
+ default}`;case"string":return`'${g.default}'`;case"object":return`'${JSON.stringify(
8
+ g.default)}'`}}if((0,x.isEnumSchema)(e)){let{definitions:g}=e;if(g?.default)return`\
9
+ '${g.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=p((e,s)=>{switch(e.type){case x.SchemaType.Array:case x.SchemaType.
12
+ Object:case x.SchemaType.Reference:case x.SchemaType.Union:case x.SchemaType.Tuple:
13
+ return"jsonb";case x.SchemaType.Boolean:return"boolean";case x.SchemaType.Enum:return"\
14
+ text";case x.SchemaType.Number:return me(e,s);case x.SchemaType.String:return ue(
15
+ e)}},"getColumnType"),me=p((e,s)=>e.format==="integer"?s?"bigserial":"bigint":"d\
16
+ ecimal","getColumNumberType"),ue=p(e=>{switch(e.format){case"uuid":case"time":case"\
17
+ date":return e.format;case"date-time":return"timestamptz";default:let s=e.definitions?.
18
+ maxLength;return(0,W.isAnyNumber)(s)?`varchar(${s})`:"text"}},"getColumnTextType");var M;(d=>(d.prepareCreate=p((m,n,u,y)=>{let o=m.table(n).create().missing();for(let t in u.
19
+ properties){let r=u.properties[t],c=y[t]?.type===X.Index.Primary,l=!z(r),i=U(r,c),
20
+ f=D(r,c);o.column(t,i,l,f).missing()}return{query:o.build()}},"prepareCreate"),d.
21
+ prepareRename=p((m,n,u)=>({query:m.table(n).rename(u).existing().build()}),"prep\
22
+ areRename"),d.prepareDelete=p((m,n)=>({query:m.table(n).drop().existing().cascade().
23
+ build()}),"prepareDelete")))(M||={});var G=require("@ez4/database");var q=p((e,s)=>{let[g]=e.select().rawColumn("1").from("pg_constraint").where({conname:e.
24
+ rawString(s)}).build();return g},"getCheckConstraintQuery"),V=p((e,s,g)=>{let[d]=e.
24
25
  select().rawColumn("1").from("information_schema.columns").where({column_name:e.
25
- rawString(n),table_name:e.rawString(t)}).build();return s},"getCheckColumnQuery");var W=a((e,t,n,s)=>{let r=e.table(t).alter().existing();for(let o in s){let i=s[o],
26
- p=n[o]?.type===U.Index.Primary,c=!P(i),u=I(i,p),g=N(i,p);r.add(o,u,c,g).missing()}
27
- return{query:r.build()}},"prepareCreateColumns"),X=a((e,t,n,s,r)=>{let o=[];for(let i in r){
28
- let{update:m,nested:p}=r[i],c=n.properties[i],g=s[i]?.type===U.Index.Primary,b=p?.
29
- definitions?.update?.default,A=m?.optional??m?.nullable,S=m?.type,R=e.table(t).alter().
30
- existing().column(i);S!==void 0&&R.type(I(c,g)),A!==void 0&&R.optional(A),b!==void 0&&
31
- R.default(N(c,g)),!R.empty&&o.push({check:D(e,t,i),query:R.build()})}return o},"\
32
- prepareUpdateColumns"),Y=a((e,t,n)=>{let s=[];for(let r in n){let o=n[r],i=e.table(
33
- t).alter().existing().rename(r,o);s.push({check:D(e,t,r),query:i.build()})}return s},
34
- "prepareRenameColumns"),Z=a((e,t,n)=>{let s=e.table(t).alter().existing();for(let r in n)
35
- s.drop(r).existing();return{query:s.build()}},"prepareDeleteColumns");var h=require("@ez4/schema");var ee=require("@ez4/utils");var O=a((e,t)=>`${T(e,t)}_pk`,"getPrimaryKeyName"),k=a((e,t)=>`${T(e,t)}_uk`,"ge\
36
- tUniqueKeyName"),j=a((e,t)=>`${T(e,t)}_sk`,"getSecondaryKeyName"),q=a((e,t)=>`${T(
37
- e,t)}_fk`,"getRelationName"),y=a((e,t)=>`${T(e,t)}_ck`,"getConstraintName"),T=a(
38
- (e,t)=>`${e}_${(0,ee.toSnakeCase)(t.replaceAll(":","_"))}`,"getName");var v=a((e,t,n)=>{let s=[];for(let r in n){let o=n[r];if(!(0,h.isEnumSchema)(o))
39
- continue;let i=y(t,r);s.push({check:d(e,i),query:$(e,t,i,r,o.options).build()})}
40
- return s},"prepareCreateConstraints"),te=a((e,t,n,s,r)=>{let o=[];for(let i in r){
41
- let{update:m,create:p,remove:c}=r[i];if(c){let u=s.properties[i];if((0,h.isEnumSchema)(
42
- u)){let g=y(t,i);o.push({query:_(e,t,g).build()})}}if(m){let u=s.properties[i],g=n.
43
- properties[i];if((0,h.isEnumSchema)(u)&&(0,h.isEnumSchema)(g)){let b=y(t,i);o.push(
44
- {query:_(e,t,b).build()},{query:$(e,t,b,i,g.options).build()})}}if(p){let u=n.properties[i];
45
- if((0,h.isEnumSchema)(u)){let g=y(t,i);o.push({check:d(e,g),query:$(e,t,g,i,u.options).
46
- build()})}}}return o},"prepareUpdateConstraints"),ne=a((e,t,n,s)=>{let r=[];for(let o in s){
47
- let i=s[o];if(!(0,h.isEnumSchema)(i))continue;let m=y(t,o),p=y(n,o),c=e.table(n).
48
- alter().existing().constraint(m).rename(p);r.push({check:d(e,p),query:c.build()})}
49
- return r},"prepareRenameConstraints"),re=a((e,t,n,s)=>{let r=[];for(let o in s){
50
- let i=s[o],m=n[i];if(!(0,h.isEnumSchema)(m))continue;let p=y(t,o),c=y(t,i),u=e.table(
51
- t).alter().existing().constraint(p).rename(c);r.push({check:d(e,c),query:u.build()})}
52
- return r},"prepareRenameConstraintColumns"),oe=a((e,t,n)=>{let s=[];for(let r in n){
53
- let o=n[r];if(!(0,h.isEnumSchema)(o))continue;let i=y(t,r);s.push({query:_(e,t,i).
54
- build()})}return s},"prepareDeleteConstraints"),_=a((e,t,n)=>e.table(t).alter().
55
- existing().constraint(n).drop().existing(),"getDeleteConstraintQuery"),$=a((e,t,n,s,r)=>{
56
- let o=r.map(({value:i})=>`${i}`);return e.table(t).alter().existing().constraint(
57
- n).check({[s]:{isIn:o}})},"getCreateConstraintQuery");var se=require("@ez4/pgclient/library"),ie=require("@ez4/schema"),B=require("@ez4/database");var E=a((e,t,n,s)=>{let r=[];for(let o in s){let i=s[o];if(i.targetIndex===B.Index.
58
- Primary)continue;let{[i.targetColumn]:m}=n.properties,p=q(t,o),c=!!(0,ie.IsNullishSchema)(
59
- m);r.push({check:d(e,p),query:ue(e,t,p,i,c).build()})}return r},"prepareCreateRe\
60
- lations"),ae=a((e,t,n,s)=>{let r=[];for(let o in n){let i=n[o];if(i.targetIndex===
61
- B.Index.Primary)continue;let m=s[i.targetColumn]?.update,p=m?.optional??m?.nullable;
62
- if(p===void 0)continue;let c=q(t,o);r.push({query:pe(e,t,c).build()},{query:ue(e,
63
- t,c,i,p).build()})}return r},"prepareUpdateRelations"),ce=a((e,t,n,s)=>{let r=[];
64
- for(let o in s){if(s[o].targetIndex===B.Index.Primary)continue;let m=q(t,o),p=q(
65
- n,o),c=e.table(n).alter().existing().constraint(m).rename(p);r.push({check:d(e,p),
66
- query:c.build()})}return r},"prepareRenameRelations"),me=a((e,t,n)=>{let s=[];for(let r in n){
67
- if(n[r].targetIndex===B.Index.Primary)continue;let i=q(t,r);s.push({query:pe(e,t,
68
- i).build()})}return s},"prepareDeleteRelations"),pe=a((e,t,n)=>e.table(t).alter().
69
- existing().constraint(n).drop().existing(),"getDeleteRelationQuery"),ue=a((e,t,n,s,r)=>{
70
- let{sourceAlias:o,sourceColumn:i,targetColumn:m}=s,p=(0,se.getTableName)(o),c=e.
71
- table(t).alter().existing().constraint(n).foreign(m,p,[i]);return r?c.delete().null():
72
- c.delete().cascade(),c.update().cascade(),c},"getCreateRelationQuery");var w=require("@ez4/schema"),f=require("@ez4/database");var M=a((e,t,n,s,r)=>{let o={constraints:[],indexes:[]};for(let i in s){let{columns:m,
73
- type:p}=s[i];switch(p){default:throw new Error("Unsupported index type.");case f.Index.
74
- Primary:{let c=O(t,i),u=e.table(t).alter().existing().constraint(c).primary(m);o.
75
- constraints.push({check:d(e,c),query:u.build()});break}case f.Index.Unique:{let c=k(
76
- t,i),u=e.table(t).alter().existing().constraint(c).unique(m);o.constraints.push(
77
- {check:d(e,c),query:u.build()});break}case f.Index.Secondary:{let c=j(t,i),u=Ne(
78
- m,n),g=e.index(c).create(t,m).type(u).missing();r&&g.concurrent(),o.indexes.push(
79
- {query:g.build()});break}}}return o},"prepareCreateIndexes"),le=a((e,t,n,s)=>{let r={
80
- constraints:[],indexes:[]};for(let o in s){let{type:i}=s[o];switch(i){default:throw new Error(
81
- "Unsupported index type.");case f.Index.Primary:{let m=O(t,o),p=O(n,o),c=e.table(
82
- n).alter().existing().constraint(m).rename(p);r.constraints.push({check:d(e,p),query:c.
83
- build()});break}case f.Index.Unique:{let m=k(t,o),p=k(n,o),c=e.table(n).alter().
84
- existing().constraint(m).rename(p);r.constraints.push({check:d(e,p),query:c.build()});
85
- break}case f.Index.Secondary:{let m=j(t,o),p=j(n,o),c=e.index(m).rename(p).existing();
86
- r.indexes.push({query:c.build()});break}}}return r},"prepareRenameIndexes"),ge=a(
87
- (e,t,n)=>{let s={constraints:[],indexes:[]};for(let r in n){let{type:o}=n[r];switch(o){default:
88
- throw new Error("Unsupported index type.");case f.Index.Primary:{let i=O(t,r),m=e.
89
- table(t).alter().existing().constraint(i).drop().existing();s.constraints.push({
90
- query:m.build()});break}case f.Index.Unique:{let i=k(t,r),m=e.table(t).alter().existing().
91
- constraint(i).drop().existing();s.constraints.push({query:m.build()});break}case f.Index.
92
- Secondary:{let i=j(t,r),m=e.index(i).drop().existing().concurrent();s.indexes.push(
93
- {query:m.build()});break}}}return s},"prepareDeleteIndexes"),Ne=a((e,t)=>{if(e.length===
94
- 1){let[n]=e;switch(t.properties[n]?.type){case w.SchemaType.Object:case w.SchemaType.
95
- Union:case w.SchemaType.Array:case w.SchemaType.Tuple:return"GIN"}}return"BTREE"},
96
- "getIndexType");var x=require("@ez4/utils"),K=require("@ez4/pgclient/library"),L=require("@ez4/schema");var de=a((e,t)=>(0,x.deepCompareObject)(e,t,{onRename:a((n,s)=>!(0,x.isAnyObject)(
97
- n)||!(0,x.isAnyObject)(s)?!1:(0,K.isRepositoryTable)(n)&&(0,K.isRepositoryTable)(
98
- s)?Ie(n.schema,s.schema):(0,L.isAnySchema)(n)&&(0,L.isAnySchema)(s)?Oe(n,s):!1,"\
99
- onRename")}),"getTableRepositoryChanges"),Ie=a((e,t)=>(0,x.deepEqual)(Object.keys(
100
- e.properties),Object.keys(t.properties)),"canRenameTable"),Oe=a((e,t)=>(0,x.deepEqual)(
101
- e,t,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
102
- Column");var ye=a(e=>{let t=new z.SqlBuilder,n={tables:[],constraints:[],relations:[],indexes:[]};
103
- for(let s in e){let{name:r,schema:o,indexes:i,relations:m}=e[s];C(n,M(t,r,o,i,!1)),
104
- n.tables.push(J(t,r,o,i)),n.constraints.push(...v(t,r,o.properties)),n.relations.
105
- push(...E(t,r,o,m))}return n},"getCreateQueries"),ke=a((e,t)=>{let n=de(e,t),s=new z.SqlBuilder,
106
- r={tables:[],constraints:[],relations:[],indexes:[]};if(n.create&&C(r,ye(n.create)),
107
- n.rename)for(let o in n.rename){let i=n.rename[o],m=e[i].indexes,p=e[i].relations,
108
- c=e[i].schema;C(r,le(s,o,i,m)),r.constraints.push(...ne(s,o,i,c.properties)),r.relations.
109
- push(...ce(s,o,i,p)),r.tables.push(F(s,o,i))}if(n.nested)for(let o in n.nested){
110
- let{nested:i}=n.nested[o];if(!i)continue;let{schema:m,relations:p,indexes:c}=i,u=m?.
111
- nested?.properties,g=e[o].indexes,b=e[o].relations,A=t[o].schema,S=e[o].schema;u?.
112
- create&&(r.tables.push(W(s,o,g,u.create)),r.constraints.push(...v(s,o,u.create))),
113
- u?.nested&&(r.tables.push(...X(s,o,S,g,u.nested)),r.constraints.push(...te(s,o,S,
114
- A,u.nested)),r.relations.push(...ae(s,o,b,u.nested))),u?.rename&&(r.tables.push(
115
- ...Y(s,o,u.rename)),r.constraints.push(...re(s,o,S.properties,u.rename))),u?.remove&&
116
- (r.tables.push(Z(s,o,u.remove)),r.constraints.push(...oe(s,o,u.remove))),c?.create&&
117
- C(r,M(s,o,S,c.create,!0)),c?.remove&&C(r,ge(s,o,c.remove)),p?.create&&r.relations.
118
- push(...E(s,o,S,p.create)),p?.remove&&r.relations.push(...me(s,o,p.remove))}return n.
119
- remove&&C(r,fe(n.remove)),r},"getUpdateQueries"),fe=a(e=>{let t=new z.SqlBuilder,
120
- n={tables:[],constraints:[],relations:[],indexes:[]};for(let s in e){let{name:r}=e[s];
121
- n.tables.push(H(t,r))}return n},"getDeleteQueries"),C=a((e,t)=>{t.indexes&&e.indexes.
122
- push(...t.indexes),t.constraints&&e.constraints.push(...t.constraints),t.relations&&
123
- e.relations.push(...t.relations),t.tables&&e.tables.push(...t.tables)},"combineM\
124
- igrationQueries");0&&(module.exports={getCreateQueries,getDeleteQueries,getUpdateQueries});
26
+ rawString(g),table_name:e.rawString(s)}).build();return d},"getCheckColumnQuery");var I;(m=>(m.prepareCreate=p((n,u,y,o)=>{let t=n.table(u).alter().existing();for(let r in o){
27
+ let a=o[r],l=y[r]?.type===G.Index.Primary,i=!z(a),f=U(a,l),h=D(a,l);t.add(r,f,i,
28
+ h).missing()}return{query:t.build()}},"prepareCreate"),m.prepareUpdate=p((n,u,y,o,t)=>{
29
+ let r=[];for(let a in t){let{update:c,nested:l}=t[a],i=y.properties[a],h=o[a]?.type===
30
+ G.Index.Primary,S=l?.definitions?.update?.default,b=c?.optional??c?.nullable,P=c?.
31
+ type,k=n.table(u).alter().existing().column(a);P!==void 0&&k.type(U(i,h)),b!==void 0&&
32
+ k.optional(b),S!==void 0&&k.default(D(i,h)),!k.empty&&r.push({check:V(n,u,a),query:k.
33
+ build()})}return r},"prepareUpdate"),m.prepareRename=p((n,u,y)=>{let o=[];for(let t in y){
34
+ let r=y[t],a=n.table(u).alter().existing().rename(t,r);o.push({check:V(n,u,t),query:a.
35
+ build()})}return o},"prepareRename"),m.prepareDelete=p((n,u,y)=>{let o=n.table(u).
36
+ alter().existing();for(let t in y)o.drop(t).existing();return{query:o.build()}},
37
+ "prepareDelete")))(I||={});var N=require("@ez4/schema");var Y=require("@ez4/utils");var _=p((e,s)=>`${v(e,s)}_pk`,"getPrimaryKeyName"),Q=p((e,s)=>`${v(e,s)}_uk`,"ge\
38
+ tUniqueKeyName"),$=p((e,s)=>`${v(e,s)}_sk`,"getSecondaryKeyName"),w=p((e,s)=>`${v(
39
+ e,s)}_fk`,"getRelationName"),R=p((e,s)=>`${v(e,s)}_ck`,"getConstraintName"),v=p(
40
+ (e,s)=>`${e}_${(0,Y.toSnakeCase)(s.replaceAll(":","_"))}`,"getName");var O;(y=>{y.prepareCreate=p((o,t,r)=>{let a=[];for(let c in r){let l=r[c];if(!(0,N.isEnumSchema)(
41
+ l))continue;let i=R(t,c);a.push({check:q(o,i),query:u(o,t,i,c,l.options).build()})}
42
+ return a},"prepareCreate"),y.prepareUpdate=p((o,t,r,a,c)=>{let l=[];for(let i in c){
43
+ let{update:f,create:h,remove:S}=c[i];if(S){let b=a.properties[i];if((0,N.isEnumSchema)(
44
+ b)){let P=R(t,i);l.push({query:n(o,t,P).build()})}}if(f){let b=a.properties[i],P=r.
45
+ properties[i];if((0,N.isEnumSchema)(b)&&(0,N.isEnumSchema)(P)){let k=R(t,i);l.push(
46
+ {query:n(o,t,k).build()},{query:u(o,t,k,i,P.options).build()})}}if(h){let b=r.properties[i];
47
+ if((0,N.isEnumSchema)(b)){let P=R(t,i);l.push({check:q(o,P),query:u(o,t,P,i,b.options).
48
+ build()})}}}return l},"prepareUpdate"),y.prepareRenameTable=p((o,t,r,a)=>{let c=[];
49
+ for(let l in a){let i=a[l];if(!(0,N.isEnumSchema)(i))continue;let f=R(t,l),h=R(r,
50
+ l),S=o.table(r).alter().existing().constraint(f).rename(h);c.push({check:q(o,h),
51
+ query:S.build()})}return c},"prepareRenameTable"),y.prepareRenameColumns=p((o,t,r,a)=>{
52
+ let c=[];for(let l in a){let i=a[l],f=r[i];if(!(0,N.isEnumSchema)(f))continue;let h=R(
53
+ t,l),S=R(t,i),b=o.table(t).alter().existing().constraint(h).rename(S);c.push({check:q(
54
+ o,S),query:b.build()})}return c},"prepareRenameColumns"),y.prepareDelete=p((o,t,r)=>{
55
+ let a=[];for(let c in r){let l=r[c];if(!(0,N.isEnumSchema)(l))continue;let i=R(t,
56
+ c);a.push({query:n(o,t,i).build()})}return a},"prepareDelete");let n=p((o,t,r)=>o.
57
+ table(t).alter().existing().constraint(r).drop().existing(),"getDeleteQuery"),u=p(
58
+ (o,t,r,a,c)=>{let l=c.map(({value:i})=>`${i}`);return o.table(t).alter().existing().
59
+ constraint(r).check({[a]:{isIn:l}})},"getCreateQuery")})(O||={});var Z=require("@ez4/pgclient/library"),ee=require("@ez4/schema"),J=require("@ez4/database");var j;(y=>{y.prepareCreate=p((o,t,r,a)=>{let c=[];for(let l in a){let i=a[l];if(m(
60
+ i))continue;let{[i.targetColumn]:f}=r.properties,h=w(t,l),S=!!(0,ee.IsNullishSchema)(
61
+ f);c.push({check:q(o,h),query:u(o,t,h,i,S).build()})}return c},"prepareCreate"),
62
+ y.prepareUpdate=p((o,t,r,a)=>{let c=[];for(let l in r){let i=r[l];if(m(i))continue;
63
+ let f=a[i.targetColumn]?.update,h=f?.optional??f?.nullable;if(h===void 0)continue;
64
+ let S=w(t,l);c.push({query:n(o,t,S).build()},{query:u(o,t,S,i,h).build()})}return c},
65
+ "prepareUpdate"),y.prepareRename=p((o,t,r,a)=>{let c=[];for(let l in a){let i=a[l];
66
+ if(m(i))continue;let f=w(t,l),h=w(r,l),S=o.table(r).alter().existing().constraint(
67
+ f).rename(h);c.push({check:q(o,h),query:S.build()})}return c},"prepareRename"),y.
68
+ prepareDelete=p((o,t,r)=>{let a=[];for(let c in r){let l=r[c];if(m(l))continue;let i=w(
69
+ t,c);a.push({query:n(o,t,i).build()})}return a},"prepareDelete");let m=p(o=>{let{
70
+ sourceIndex:t,targetIndex:r}=o;return!t||t===J.Index.Secondary||r===J.Index.Primary},
71
+ "isNotRealRelation"),n=p((o,t,r)=>o.table(t).alter().existing().constraint(r).drop().
72
+ existing(),"getDeleteQuery"),u=p((o,t,r,a,c)=>{let{sourceTable:l,sourceColumn:i,
73
+ targetColumn:f}=a,h=(0,Z.getTableName)(l),S=o.table(t).alter().existing().constraint(
74
+ r).foreign(f,h,[i]);return c?S.delete().null():S.delete().cascade(),S.update().cascade(),
75
+ S},"getCreateQuery")})(j||={});var E=require("@ez4/schema"),C=require("@ez4/database");var T;(m=>{m.prepareCreate=p((n,u,y,o,t)=>{let r={constraints:[],indexes:[]};for(let a in o){
76
+ let{columns:c,type:l}=o[a];switch(l){default:throw new Error("Unsupported index \
77
+ type.");case C.Index.Primary:{let i=_(u,a),f=n.table(u).alter().existing().constraint(
78
+ i).primary(c);r.constraints.push({check:q(n,i),query:f.build()});break}case C.Index.
79
+ Unique:{let i=Q(u,a),f=n.table(u).alter().existing().constraint(i).unique(c);r.constraints.
80
+ push({check:q(n,i),query:f.build()});break}case C.Index.Secondary:{let i=$(u,a),
81
+ f=d(c,y),h=n.index(i).create(u,c).type(f).missing();t&&h.concurrent(),r.indexes.
82
+ push({query:h.build()});break}}}return r},"prepareCreate"),m.prepareRename=p((n,u,y,o)=>{
83
+ let t={constraints:[],indexes:[]};for(let r in o){let{type:a}=o[r];switch(a){default:
84
+ throw new Error("Unsupported index type.");case C.Index.Primary:{let c=_(u,r),l=_(
85
+ y,r),i=n.table(y).alter().existing().constraint(c).rename(l);t.constraints.push(
86
+ {check:q(n,l),query:i.build()});break}case C.Index.Unique:{let c=Q(u,r),l=Q(y,r),
87
+ i=n.table(y).alter().existing().constraint(c).rename(l);t.constraints.push({check:q(
88
+ n,l),query:i.build()});break}case C.Index.Secondary:{let c=$(u,r),l=$(y,r),i=n.index(
89
+ c).rename(l).existing();t.indexes.push({query:i.build()});break}}}return t},"pre\
90
+ pareRename"),m.prepareDelete=p((n,u,y)=>{let o={constraints:[],indexes:[]};for(let t in y){
91
+ let{type:r}=y[t];switch(r){default:throw new Error("Unsupported index type.");case C.Index.
92
+ Primary:{let a=_(u,t),c=n.table(u).alter().existing().constraint(a).drop().existing();
93
+ o.constraints.push({query:c.build()});break}case C.Index.Unique:{let a=Q(u,t),c=n.
94
+ table(u).alter().existing().constraint(a).drop().existing();o.constraints.push({
95
+ query:c.build()});break}case C.Index.Secondary:{let a=$(u,t),c=n.index(a).drop().
96
+ existing().concurrent();o.indexes.push({query:c.build()});break}}}return o},"pre\
97
+ pareDelete");let d=p((n,u)=>{if(n.length===1){let[y]=n;switch(u.properties[y]?.type){case E.SchemaType.
98
+ Object:case E.SchemaType.Union:case E.SchemaType.Array:case E.SchemaType.Tuple:return"\
99
+ GIN"}}return"BTREE"},"getIndexType")})(T||={});var B=require("@ez4/utils"),F=require("@ez4/pgclient/library"),H=require("@ez4/schema");var te=p((e,s)=>(0,B.deepCompareObject)(e,s,{onRename:p((g,d)=>!(0,B.isAnyObject)(
100
+ g)||!(0,B.isAnyObject)(d)?!1:(0,F.isTableMetadata)(g)&&(0,F.isTableMetadata)(d)?
101
+ le(g.schema,d.schema):(0,H.isAnySchema)(g)&&(0,H.isAnySchema)(d)?ge(g,d):!1,"onR\
102
+ ename")}),"getTableRepositoryChanges"),le=p((e,s)=>(0,B.deepEqual)(Object.keys(e.
103
+ properties),Object.keys(s.properties)),"canRenameTable"),ge=p((e,s)=>(0,B.deepEqual)(
104
+ e,s,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
105
+ Column");var re=p(e=>{let s=new L.SqlBuilder,g={tables:[],constraints:[],relations:[],indexes:[]};
106
+ for(let d in e){let{name:m,schema:n,indexes:u,relations:y}=e[d];g.tables.push(M.
107
+ prepareCreate(s,m,n,u)),g.constraints.push(...O.prepareCreate(s,m,n.properties)),
108
+ g.relations.push(...j.prepareCreate(s,m,n,y)),A(g,T.prepareCreate(s,m,n,u,!1))}return g},
109
+ "getCreateQueries"),de=p((e,s)=>{let g=te(e,s),d=new L.SqlBuilder,m={tables:[],constraints:[],
110
+ relations:[],indexes:[]};if(g.create&&A(m,re(g.create)),g.rename)for(let n in g.
111
+ rename){let u=g.rename[n],y=e[u].indexes,o=e[u].relations,t=e[u].schema;m.tables.
112
+ push(M.prepareRename(d,n,u)),m.constraints.push(...O.prepareRenameTable(d,n,u,t.
113
+ properties)),m.relations.push(...j.prepareRename(d,n,u,o)),A(m,T.prepareRename(d,
114
+ n,u,y))}if(g.nested)for(let n in g.nested){let{nested:u}=g.nested[n];if(!u)continue;
115
+ let{schema:y,relations:o,indexes:t}=u,r=y?.nested?.properties,a=e[n].indexes,c=e[n].
116
+ relations,l=s[n].schema,i=e[n].schema;r?.create&&(m.tables.push(I.prepareCreate(
117
+ d,n,a,r.create)),m.constraints.push(...O.prepareCreate(d,n,r.create))),r?.nested&&
118
+ (m.tables.push(...I.prepareUpdate(d,n,i,a,r.nested)),m.constraints.push(...O.prepareUpdate(
119
+ d,n,i,l,r.nested)),m.relations.push(...j.prepareUpdate(d,n,c,r.nested))),r?.rename&&
120
+ (m.tables.push(...I.prepareRename(d,n,r.rename)),m.constraints.push(...O.prepareRenameColumns(
121
+ d,n,i.properties,r.rename))),r?.remove&&(m.tables.push(I.prepareDelete(d,n,r.remove)),
122
+ m.constraints.push(...O.prepareDelete(d,n,r.remove))),t?.create&&A(m,T.prepareCreate(
123
+ d,n,i,t.create,!0)),t?.remove&&A(m,T.prepareDelete(d,n,t.remove)),o?.create&&m.relations.
124
+ push(...j.prepareCreate(d,n,i,o.create)),o?.remove&&m.relations.push(...j.prepareDelete(
125
+ d,n,o.remove))}return g.remove&&A(m,ne(g.remove)),m},"getUpdateQueries"),ne=p(e=>{
126
+ let s=new L.SqlBuilder,g={tables:[],constraints:[],relations:[],indexes:[]};for(let d in e){
127
+ let{name:m}=e[d];g.tables.push(M.prepareDelete(s,m))}return g},"getDeleteQueries"),
128
+ A=p((e,s)=>{s.indexes&&e.indexes.push(...s.indexes),s.constraints&&e.constraints.
129
+ push(...s.constraints),s.relations&&e.relations.push(...s.relations),s.tables&&e.
130
+ tables.push(...s.tables)},"combineMigrationQueries");0&&(module.exports={getCreateQueries,getDeleteQueries,getUpdateQueries});
125
131
  //# sourceMappingURL=main.cjs.map
package/dist/main.d.ts CHANGED
@@ -1 +1 @@
1
- export * from './service/queries.js';
1
+ export * from './service/queries';