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