@ez4/pgmigration 0.26.0 → 0.27.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,130 @@
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 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)(
5
+ e)||(0,x.isObjectSchema)(e)||(0,x.isArraySchema)(e)||(0,x.isTupleSchema)(e)){let{
6
+ definitions:d}=e;switch(typeof d?.default){case"boolean":case"number":return`${d.
7
+ default}`;case"string":return`'${d.default}'`;case"object":return`'${JSON.stringify(
8
+ d.default)}'`}}if((0,x.isEnumSchema)(e)){let{definitions:d}=e;if(d?.default)return`\
9
+ '${d.default}'`}if((0,x.isStringSchema)(e)&&s)switch(e.format){case"date-time":case"\
10
+ date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(z(e))return"\
11
+ null"},"getColumnDefault"),U=m((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=m((e,s)=>e.format==="integer"?s?"bigserial":"bigint":"d\
16
+ ecimal","getColumNumberType"),ue=m(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;(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.
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(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().
95
+ 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.
97
+ 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)(
103
+ 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.
128
+ push(...s.constraints),s.relations&&e.relations.push(...s.relations),s.tables&&e.
129
+ tables.push(...s.tables)},"combineMigrationQueries");0&&(module.exports={getCreateQueries,getDeleteQueries,getUpdateQueries});
125
130
  //# sourceMappingURL=main.cjs.map
package/dist/main.d.ts CHANGED
@@ -1 +1 @@
1
- export * from './service/queries.js';
1
+ export * from './service/queries';