@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/library.cjs CHANGED
@@ -1,95 +1,91 @@
1
- "use strict";var k=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var G=Object.prototype.hasOwnProperty;var i=(e,t)=>k(e,"name",{value:t,configurable:!0});var H=(e,t)=>{for(var r in t)k(e,r,{get:t[r],enumerable:!0})},J=(e,t,r,n)=>{if(t&&
2
- typeof t=="object"||typeof t=="function")for(let o of v(t))!G.call(e,o)&&o!==r&&
3
- k(e,o,{get:()=>t[o],enumerable:!(n=V(t,o))||n.enumerable});return e};var W=e=>J(k({},"__esModule",{value:!0}),e);var he={};H(he,{getTableRepositoryChanges:()=>X,prepareCreateColumns:()=>de,prepareCreateDatabase:()=>ee,
4
- prepareCreateIndexes:()=>ae,prepareCreateRelations:()=>pe,prepareCreateTable:()=>oe,
5
- prepareDeleteColumns:()=>Se,prepareDeleteDatabase:()=>te,prepareDeleteIndexes:()=>me,
6
- prepareDeleteRelations:()=>ge,prepareDeleteTable:()=>se,prepareRenameColumns:()=>xe,
7
- prepareRenameIndexes:()=>ce,prepareRenameRelations:()=>ye,prepareRenameTable:()=>ie,
8
- prepareUpdateColumns:()=>fe,prepareUpdateRelations:()=>le});module.exports=W(he);var d=require("@ez4/utils"),A=require("@ez4/pgclient/library"),T=require("@ez4/schema");var X=i((e,t)=>(0,d.deepCompareObject)(e,t,{onRename:i((r,n)=>!(0,d.isAnyObject)(
9
- r)||!(0,d.isAnyObject)(n)?!1:(0,A.isRepositoryTable)(r)&&(0,A.isRepositoryTable)(
10
- n)?Y(r.schema,n.schema):(0,T.isAnySchema)(r)&&(0,T.isAnySchema)(n)?Z(r,n):!1,"on\
11
- Rename")}),"getTableRepositoryChanges"),Y=i((e,t)=>(0,d.deepEqual)(Object.keys(e.
12
- properties),Object.keys(t.properties)),"canRenameTable"),Z=i((e,t)=>(0,d.deepEqual)(
1
+ "use strict";var T=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var te=Object.prototype.hasOwnProperty;var n=(e,t)=>T(e,"name",{value:t,configurable:!0});var re=(e,t)=>{for(var u in t)T(e,u,{get:t[u],enumerable:!0})},ne=(e,t,u,d)=>{if(t&&
2
+ typeof t=="object"||typeof t=="function")for(let y of ee(t))!te.call(e,y)&&y!==u&&
3
+ T(e,y,{get:()=>t[y],enumerable:!(d=Q(t,y))||d.enumerable});return e};var oe=e=>ne(T({},"__esModule",{value:!0}),e);var pe={};re(pe,{ColumnQuery:()=>Y,DatabaseQueries:()=>F,IndexQueries:()=>H,RelationQuery:()=>X,
4
+ TableQuery:()=>v,getTableRepositoryChanges:()=>ie});module.exports=oe(pe);var b=require("@ez4/utils"),z=require("@ez4/pgclient/library"),E=require("@ez4/schema");var ie=n((e,t)=>(0,b.deepCompareObject)(e,t,{onRename:n((u,d)=>!(0,b.isAnyObject)(
5
+ u)||!(0,b.isAnyObject)(d)?!1:(0,z.isTableMetadata)(u)&&(0,z.isTableMetadata)(d)?
6
+ se(u.schema,d.schema):(0,E.isAnySchema)(u)&&(0,E.isAnySchema)(d)?ae(u,d):!1,"onR\
7
+ ename")}),"getTableRepositoryChanges"),se=n((e,t)=>(0,b.deepEqual)(Object.keys(e.
8
+ properties),Object.keys(t.properties)),"canRenameTable"),ae=n((e,t)=>(0,b.deepEqual)(
13
9
  e,t,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
14
- Column");var D=require("@ez4/pgsql");var z=i((e,t)=>{let[r]=e.select().rawColumn("1").from("pg_database").where({datname:e.
15
- rawString(t)}).build();return r},"getCheckDatabaseQuery"),f=i((e,t)=>{let[r]=e.select().
16
- rawColumn("1").from("pg_constraint").where({conname:e.rawString(t)}).build();return r},
17
- "getCheckConstraintQuery"),B=i((e,t,r)=>{let[n]=e.select().rawColumn("1").from("\
18
- information_schema.columns").where({column_name:e.rawString(r),table_name:e.rawString(
19
- t)}).build();return n},"getCheckColumnQuery");var ee=i(e=>{let t=new D.SqlBuilder;return{check:z(t,e),query:`CREATE DATABASE "${e}\
20
- "`}},"prepareCreateDatabase"),te=i(e=>({query:`DROP DATABASE IF EXISTS "${e}" WI\
21
- TH (FORCE)`}),"prepareDeleteDatabase");var E=require("@ez4/database");var p=require("@ez4/schema"),Q=require("@ez4/utils");var h=i(e=>!!(e.nullable||e.optional),"isOptionalColumn"),q=i((e,t)=>{if((0,p.isScalarSchema)(
22
- e)||(0,p.isObjectSchema)(e)||(0,p.isArraySchema)(e)||(0,p.isTupleSchema)(e)){let{
23
- definitions:r}=e;switch(typeof r?.default){case"boolean":case"number":return`${r.
24
- default}`;case"string":return`'${r.default}'`;case"object":return`'${JSON.stringify(
25
- r.default)}'`}}if((0,p.isEnumSchema)(e)){let{definitions:r}=e;if(r?.default)return`\
26
- '${r.default}'`}if((0,p.isStringSchema)(e)&&t)switch(e.format){case"date-time":case"\
27
- date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(h(e))return"\
28
- null"},"getColumnDefault"),b=i((e,t)=>{switch(e.type){case p.SchemaType.Array:case p.SchemaType.
29
- Object:case p.SchemaType.Reference:case p.SchemaType.Union:case p.SchemaType.Tuple:
30
- return"jsonb";case p.SchemaType.Boolean:return"boolean";case p.SchemaType.Enum:return"\
31
- text";case p.SchemaType.Number:return re(e,t);case p.SchemaType.String:return ne(
32
- e)}},"getColumnType"),re=i((e,t)=>e.format==="integer"?t?"bigserial":"bigint":"d\
33
- ecimal","getColumNumberType"),ne=i(e=>{switch(e.format){case"uuid":case"time":case"\
10
+ Column");var K=require("@ez4/pgsql");var M=n((e,t)=>{let[u]=e.select().rawColumn("1").from("pg_database").where({datname:e.
11
+ rawString(t)}).build();return u},"getCheckDatabaseQuery"),R=n((e,t)=>{let[u]=e.select().
12
+ rawColumn("1").from("pg_constraint").where({conname:e.rawString(t)}).build();return u},
13
+ "getCheckConstraintQuery"),_=n((e,t,u)=>{let[d]=e.select().rawColumn("1").from("\
14
+ information_schema.columns").where({column_name:e.rawString(u),table_name:e.rawString(
15
+ t)}).build();return d},"getCheckColumnQuery");var F;(u=>(u.prepareCreate=n(d=>{let y=new K.SqlBuilder;return{check:M(y,d),query:`\
16
+ CREATE DATABASE "${d}"`}},"prepareCreate"),u.prepareDelete=n(d=>({query:`DROP DA\
17
+ TABASE IF EXISTS "${d}" WITH (FORCE)`}),"prepareDelete")))(F||={});var V=require("@ez4/database");var f=require("@ez4/schema"),L=require("@ez4/utils");var P=n(e=>!!(e.nullable||e.optional),"isOptionalColumn"),k=n((e,t)=>{if((0,f.isScalarSchema)(
18
+ e)||(0,f.isObjectSchema)(e)||(0,f.isArraySchema)(e)||(0,f.isTupleSchema)(e)){let{
19
+ definitions:u}=e;switch(typeof u?.default){case"boolean":case"number":return`${u.
20
+ default}`;case"string":return`'${u.default}'`;case"object":return`'${JSON.stringify(
21
+ u.default)}'`}}if((0,f.isEnumSchema)(e)){let{definitions:u}=e;if(u?.default)return`\
22
+ '${u.default}'`}if((0,f.isStringSchema)(e)&&t)switch(e.format){case"date-time":case"\
23
+ date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(P(e))return"\
24
+ null"},"getColumnDefault"),I=n((e,t)=>{switch(e.type){case f.SchemaType.Array:case f.SchemaType.
25
+ Object:case f.SchemaType.Reference:case f.SchemaType.Union:case f.SchemaType.Tuple:
26
+ return"jsonb";case f.SchemaType.Boolean:return"boolean";case f.SchemaType.Enum:return"\
27
+ text";case f.SchemaType.Number:return ce(e,t);case f.SchemaType.String:return me(
28
+ e)}},"getColumnType"),ce=n((e,t)=>e.format==="integer"?t?"bigserial":"bigint":"d\
29
+ ecimal","getColumNumberType"),me=n(e=>{switch(e.format){case"uuid":case"time":case"\
34
30
  date":return e.format;case"date-time":return"timestamptz";default:let t=e.definitions?.
35
- maxLength;return(0,Q.isAnyNumber)(t)?`varchar(${t})`:"text"}},"getColumnTextType");var oe=i((e,t,r,n)=>{let o=e.table(t).create().missing();for(let a in r.properties){
36
- let s=r.properties[a],u=n[a]?.type===E.Index.Primary,c=!h(s),l=b(s,u),g=q(s,u);o.
37
- column(a,l,c,g).missing()}return{query:o.build()}},"prepareCreateTable"),ie=i((e,t,r)=>({
38
- query:e.table(t).rename(r).existing().build()}),"prepareRenameTable"),se=i((e,t)=>({
39
- query:e.table(t).drop().existing().cascade().build()}),"prepareDeleteTable");var N=require("@ez4/schema"),y=require("@ez4/database");var _=require("@ez4/utils");var C=i((e,t)=>`${O(e,t)}_pk`,"getPrimaryKeyName"),R=i((e,t)=>`${O(e,t)}_uk`,"ge\
40
- tUniqueKeyName"),I=i((e,t)=>`${O(e,t)}_sk`,"getSecondaryKeyName"),x=i((e,t)=>`${O(
41
- e,t)}_fk`,"getRelationName");var O=i((e,t)=>`${e}_${(0,_.toSnakeCase)(t.replaceAll(":","_"))}`,"getName");var ae=i((e,t,r,n,o)=>{let a={constraints:[],indexes:[]};for(let s in n){let{columns:m,
42
- type:u}=n[s];switch(u){default:throw new Error("Unsupported index type.");case y.Index.
43
- Primary:{let c=C(t,s),l=e.table(t).alter().existing().constraint(c).primary(m);a.
44
- constraints.push({check:f(e,c),query:l.build()});break}case y.Index.Unique:{let c=R(
45
- t,s),l=e.table(t).alter().existing().constraint(c).unique(m);a.constraints.push(
46
- {check:f(e,c),query:l.build()});break}case y.Index.Secondary:{let c=I(t,s),l=ue(
47
- m,r),g=e.index(c).create(t,m).type(l).missing();o&&g.concurrent(),a.indexes.push(
48
- {query:g.build()});break}}}return a},"prepareCreateIndexes"),ce=i((e,t,r,n)=>{let o={
49
- constraints:[],indexes:[]};for(let a in n){let{type:s}=n[a];switch(s){default:throw new Error(
50
- "Unsupported index type.");case y.Index.Primary:{let m=C(t,a),u=C(r,a),c=e.table(
51
- r).alter().existing().constraint(m).rename(u);o.constraints.push({check:f(e,u),query:c.
52
- build()});break}case y.Index.Unique:{let m=R(t,a),u=R(r,a),c=e.table(r).alter().
53
- existing().constraint(m).rename(u);o.constraints.push({check:f(e,u),query:c.build()});
54
- break}case y.Index.Secondary:{let m=I(t,a),u=I(r,a),c=e.index(m).rename(u).existing();
55
- o.indexes.push({query:c.build()});break}}}return o},"prepareRenameIndexes"),me=i(
56
- (e,t,r)=>{let n={constraints:[],indexes:[]};for(let o in r){let{type:a}=r[o];switch(a){default:
57
- throw new Error("Unsupported index type.");case y.Index.Primary:{let s=C(t,o),m=e.
58
- table(t).alter().existing().constraint(s).drop().existing();n.constraints.push({
59
- query:m.build()});break}case y.Index.Unique:{let s=R(t,o),m=e.table(t).alter().existing().
60
- constraint(s).drop().existing();n.constraints.push({query:m.build()});break}case y.Index.
61
- Secondary:{let s=I(t,o),m=e.index(s).drop().existing().concurrent();n.indexes.push(
62
- {query:m.build()});break}}}return n},"prepareDeleteIndexes"),ue=i((e,t)=>{if(e.length===
63
- 1){let[r]=e;switch(t.properties[r]?.type){case N.SchemaType.Object:case N.SchemaType.
64
- Union:case N.SchemaType.Array:case N.SchemaType.Tuple:return"GIN"}}return"BTREE"},
65
- "getIndexType");var $=require("@ez4/pgclient/library"),U=require("@ez4/schema"),P=require("@ez4/database");var pe=i((e,t,r,n)=>{let o=[];for(let a in n){let s=n[a];if(s.targetIndex===P.Index.
66
- Primary)continue;let{[s.targetColumn]:m}=r.properties,u=x(t,a),c=!!(0,U.IsNullishSchema)(
67
- m);o.push({check:f(e,u),query:F(e,t,u,s,c).build()})}return o},"prepareCreateRel\
68
- ations"),le=i((e,t,r,n)=>{let o=[];for(let a in r){let s=r[a];if(s.targetIndex===
69
- P.Index.Primary)continue;let m=n[s.targetColumn]?.update,u=m?.optional??m?.nullable;
70
- if(u===void 0)continue;let c=x(t,a);o.push({query:K(e,t,c).build()},{query:F(e,t,
71
- c,s,u).build()})}return o},"prepareUpdateRelations"),ye=i((e,t,r,n)=>{let o=[];for(let a in n){
72
- if(n[a].targetIndex===P.Index.Primary)continue;let m=x(t,a),u=x(r,a),c=e.table(r).
73
- alter().existing().constraint(m).rename(u);o.push({check:f(e,u),query:c.build()})}
74
- return o},"prepareRenameRelations"),ge=i((e,t,r)=>{let n=[];for(let o in r){if(r[o].
75
- targetIndex===P.Index.Primary)continue;let s=x(t,o);n.push({query:K(e,t,s).build()})}
76
- return n},"prepareDeleteRelations"),K=i((e,t,r)=>e.table(t).alter().existing().constraint(
77
- r).drop().existing(),"getDeleteRelationQuery"),F=i((e,t,r,n,o)=>{let{sourceAlias:a,
78
- sourceColumn:s,targetColumn:m}=n,u=(0,$.getTableName)(a),c=e.table(t).alter().existing().
79
- constraint(r).foreign(m,u,[s]);return o?c.delete().null():c.delete().cascade(),c.
80
- update().cascade(),c},"getCreateRelationQuery");var j=require("@ez4/database");var de=i((e,t,r,n)=>{let o=e.table(t).alter().existing();for(let a in n){let s=n[a],
81
- u=r[a]?.type===j.Index.Primary,c=!h(s),l=b(s,u),g=q(s,u);o.add(a,l,c,g).missing()}
82
- return{query:o.build()}},"prepareCreateColumns"),fe=i((e,t,r,n,o)=>{let a=[];for(let s in o){
83
- let{update:m,nested:u}=o[s],c=r.properties[s],g=n[s]?.type===j.Index.Primary,L=u?.
84
- definitions?.update?.default,w=m?.optional??m?.nullable,M=m?.type,S=e.table(t).alter().
85
- existing().column(s);M!==void 0&&S.type(b(c,g)),w!==void 0&&S.optional(w),L!==void 0&&
86
- S.default(q(c,g)),!S.empty&&a.push({check:B(e,t,s),query:S.build()})}return a},"\
87
- prepareUpdateColumns"),xe=i((e,t,r)=>{let n=[];for(let o in r){let a=r[o],s=e.table(
88
- t).alter().existing().rename(o,a);n.push({check:B(e,t,o),query:s.build()})}return n},
89
- "prepareRenameColumns"),Se=i((e,t,r)=>{let n=e.table(t).alter().existing();for(let o in r)
90
- n.drop(o).existing();return{query:n.build()}},"prepareDeleteColumns");0&&(module.exports={getTableRepositoryChanges,prepareCreateColumns,prepareCreateDatabase,
91
- prepareCreateIndexes,prepareCreateRelations,prepareCreateTable,prepareDeleteColumns,
92
- prepareDeleteDatabase,prepareDeleteIndexes,prepareDeleteRelations,prepareDeleteTable,
93
- prepareRenameColumns,prepareRenameIndexes,prepareRenameRelations,prepareRenameTable,
94
- prepareUpdateColumns,prepareUpdateRelations});
31
+ maxLength;return(0,L.isAnyNumber)(t)?`varchar(${t})`:"text"}},"getColumnTextType");var v;(d=>(d.prepareCreate=n((y,c,m,g)=>{let i=y.table(c).create().missing();for(let r in m.
32
+ properties){let o=m.properties[r],a=g[r]?.type===V.Index.Primary,l=!P(o),p=I(o,a),
33
+ x=k(o,a);i.column(r,p,l,x).missing()}return{query:i.build()}},"prepareCreate"),d.
34
+ prepareRename=n((y,c,m)=>({query:y.table(c).rename(m).existing().build()}),"prep\
35
+ areRename"),d.prepareDelete=n((y,c)=>({query:y.table(c).drop().existing().cascade().
36
+ build()}),"prepareDelete")))(v||={});var w=require("@ez4/schema"),q=require("@ez4/database");var G=require("@ez4/utils");var O=n((e,t)=>`${j(e,t)}_pk`,"getPrimaryKeyName"),B=n((e,t)=>`${j(e,t)}_uk`,"ge\
37
+ tUniqueKeyName"),A=n((e,t)=>`${j(e,t)}_sk`,"getSecondaryKeyName"),C=n((e,t)=>`${j(
38
+ e,t)}_fk`,"getRelationName");var j=n((e,t)=>`${e}_${(0,G.toSnakeCase)(t.replaceAll(":","_"))}`,"getName");var H;(y=>{y.prepareCreate=n((c,m,g,i,r)=>{let o={constraints:[],indexes:[]};for(let s in i){
39
+ let{columns:a,type:l}=i[s];switch(l){default:throw new Error("Unsupported index \
40
+ type.");case q.Index.Primary:{let p=O(m,s),x=c.table(m).alter().existing().constraint(
41
+ p).primary(a);o.constraints.push({check:R(c,p),query:x.build()});break}case q.Index.
42
+ Unique:{let p=B(m,s),x=c.table(m).alter().existing().constraint(p).unique(a);o.constraints.
43
+ push({check:R(c,p),query:x.build()});break}case q.Index.Secondary:{let p=A(m,s),
44
+ x=d(a,g),S=c.index(p).create(m,a).type(x).missing();r&&S.concurrent(),o.indexes.
45
+ push({query:S.build()});break}}}return o},"prepareCreate"),y.prepareRename=n((c,m,g,i)=>{
46
+ let r={constraints:[],indexes:[]};for(let o in i){let{type:s}=i[o];switch(s){default:
47
+ throw new Error("Unsupported index type.");case q.Index.Primary:{let a=O(m,o),l=O(
48
+ g,o),p=c.table(g).alter().existing().constraint(a).rename(l);r.constraints.push(
49
+ {check:R(c,l),query:p.build()});break}case q.Index.Unique:{let a=B(m,o),l=B(g,o),
50
+ p=c.table(g).alter().existing().constraint(a).rename(l);r.constraints.push({check:R(
51
+ c,l),query:p.build()});break}case q.Index.Secondary:{let a=A(m,o),l=A(g,o),p=c.index(
52
+ a).rename(l).existing();r.indexes.push({query:p.build()});break}}}return r},"pre\
53
+ pareRename"),y.prepareDelete=n((c,m,g)=>{let i={constraints:[],indexes:[]};for(let r in g){
54
+ let{type:o}=g[r];switch(o){default:throw new Error("Unsupported index type.");case q.Index.
55
+ Primary:{let s=O(m,r),a=c.table(m).alter().existing().constraint(s).drop().existing();
56
+ i.constraints.push({query:a.build()});break}case q.Index.Unique:{let s=B(m,r),a=c.
57
+ table(m).alter().existing().constraint(s).drop().existing();i.constraints.push({
58
+ query:a.build()});break}case q.Index.Secondary:{let s=A(m,r),a=c.index(s).drop().
59
+ existing().concurrent();i.indexes.push({query:a.build()});break}}}return i},"pre\
60
+ pareDelete");let d=n((c,m)=>{if(c.length===1){let[g]=c;switch(m.properties[g]?.type){case w.SchemaType.
61
+ Object:case w.SchemaType.Union:case w.SchemaType.Array:case w.SchemaType.Tuple:return"\
62
+ GIN"}}return"BTREE"},"getIndexType")})(H||={});var J=require("@ez4/pgclient/library"),W=require("@ez4/schema"),$=require("@ez4/database");var X;(g=>{g.prepareCreate=n((i,r,o,s)=>{let a=[];for(let l in s){let p=s[l];if(y(
63
+ p))continue;let{[p.targetColumn]:x}=o.properties,S=C(r,l),h=!!(0,W.IsNullishSchema)(
64
+ x);a.push({check:R(i,S),query:m(i,r,S,p,h).build()})}return a},"prepareCreate"),
65
+ g.prepareUpdate=n((i,r,o,s)=>{let a=[];for(let l in o){let p=o[l];if(y(p))continue;
66
+ let x=s[p.targetColumn]?.update,S=x?.optional??x?.nullable;if(S===void 0)continue;
67
+ let h=C(r,l);a.push({query:c(i,r,h).build()},{query:m(i,r,h,p,S).build()})}return a},
68
+ "prepareUpdate"),g.prepareRename=n((i,r,o,s)=>{let a=[];for(let l in s){let p=s[l];
69
+ if(y(p))continue;let x=C(r,l),S=C(o,l),h=i.table(o).alter().existing().constraint(
70
+ x).rename(S);a.push({check:R(i,S),query:h.build()})}return a},"prepareRename"),g.
71
+ prepareDelete=n((i,r,o)=>{let s=[];for(let a in o){let l=o[a];if(y(l))continue;let p=C(
72
+ r,a);s.push({query:c(i,r,p).build()})}return s},"prepareDelete");let y=n(i=>{let{
73
+ sourceIndex:r,targetIndex:o}=i;return!r||r===$.Index.Secondary||o===$.Index.Primary},
74
+ "isNotRealRelation"),c=n((i,r,o)=>i.table(r).alter().existing().constraint(o).drop().
75
+ existing(),"getDeleteQuery"),m=n((i,r,o,s,a)=>{let{sourceTable:l,sourceColumn:p,
76
+ targetColumn:x}=s,S=(0,J.getTableName)(l),h=i.table(r).alter().existing().constraint(
77
+ o).foreign(x,S,[p]);return a?h.delete().null():h.delete().cascade(),h.update().cascade(),
78
+ h},"getCreateQuery")})(X||={});var D=require("@ez4/database");var Y;(y=>(y.prepareCreate=n((c,m,g,i)=>{let r=c.table(m).alter().existing();for(let o in i){
79
+ let s=i[o],l=g[o]?.type===D.Index.Primary,p=!P(s),x=I(s,l),S=k(s,l);r.add(o,x,p,
80
+ S).missing()}return{query:r.build()}},"prepareCreate"),y.prepareUpdate=n((c,m,g,i,r)=>{
81
+ let o=[];for(let s in r){let{update:a,nested:l}=r[s],p=g.properties[s],S=i[s]?.type===
82
+ D.Index.Primary,h=l?.definitions?.update?.default,U=a?.optional??a?.nullable,Z=a?.
83
+ type,N=c.table(m).alter().existing().column(s);Z!==void 0&&N.type(I(p,S)),U!==void 0&&
84
+ N.optional(U),h!==void 0&&N.default(k(p,S)),!N.empty&&o.push({check:_(c,m,s),query:N.
85
+ build()})}return o},"prepareUpdate"),y.prepareRename=n((c,m,g)=>{let i=[];for(let r in g){
86
+ let o=g[r],s=c.table(m).alter().existing().rename(r,o);i.push({check:_(c,m,r),query:s.
87
+ build()})}return i},"prepareRename"),y.prepareDelete=n((c,m,g)=>{let i=c.table(m).
88
+ alter().existing();for(let r in g)i.drop(r).existing();return{query:i.build()}},
89
+ "prepareDelete")))(Y||={});0&&(module.exports={ColumnQuery,DatabaseQueries,IndexQueries,RelationQuery,TableQuery,
90
+ getTableRepositoryChanges});
95
91
  //# sourceMappingURL=library.cjs.map
package/dist/library.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export * from './utils/repository.js';
2
- export * from './types/query.js';
3
- export * from './common/database.js';
4
- export * from './common/tables.js';
5
- export * from './common/indexes.js';
6
- export * from './common/relations.js';
7
- export * from './common/columns.js';
1
+ export * from './utils/repository';
2
+ export * from './types/query';
3
+ export * from './queries/database';
4
+ export * from './queries/tables';
5
+ export * from './queries/indexes';
6
+ export * from './queries/relations';
7
+ export * from './queries/columns';
package/dist/library.mjs CHANGED
@@ -1,88 +1,86 @@
1
- var $=Object.defineProperty;var o=(e,t)=>$(e,"name",{value:t,configurable:!0});import{deepEqual as j,deepCompareObject as U,isAnyObject as A}from"@ez4/utils";import{
2
- isRepositoryTable as T}from"@ez4/pgclient/library";import{isAnySchema as B}from"@ez4/schema";var ce=o((e,t)=>U(e,t,{onRename:o((r,n)=>!A(r)||!A(n)?!1:T(r)&&T(n)?K(r.schema,n.
3
- schema):B(r)&&B(n)?F(r,n):!1,"onRename")}),"getTableRepositoryChanges"),K=o((e,t)=>j(
4
- Object.keys(e.properties),Object.keys(t.properties)),"canRenameTable"),F=o((e,t)=>j(
5
- e,t,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
6
- Column");import{SqlBuilder as L}from"@ez4/pgsql";var w=o((e,t)=>{let[r]=e.select().rawColumn("1").from("pg_database").where({datname:e.
7
- rawString(t)}).build();return r},"getCheckDatabaseQuery"),d=o((e,t)=>{let[r]=e.select().
8
- rawColumn("1").from("pg_constraint").where({conname:e.rawString(t)}).build();return r},
9
- "getCheckConstraintQuery"),k=o((e,t,r)=>{let[n]=e.select().rawColumn("1").from("\
10
- information_schema.columns").where({column_name:e.rawString(r),table_name:e.rawString(
11
- t)}).build();return n},"getCheckColumnQuery");var de=o(e=>{let t=new L;return{check:w(t,e),query:`CREATE DATABASE "${e}"`}},"p\
12
- repareCreateDatabase"),fe=o(e=>({query:`DROP DATABASE IF EXISTS "${e}" WITH (FOR\
13
- CE)`}),"prepareDeleteDatabase");import{Index as Z}from"@ez4/database";import{isArraySchema as M,isEnumSchema as V,isObjectSchema as v,isScalarSchema as G,
14
- isStringSchema as H,isTupleSchema as J,SchemaType as y}from"@ez4/schema";import{
15
- isAnyNumber as W}from"@ez4/utils";var S=o(e=>!!(e.nullable||e.optional),"isOptionalColumn"),h=o((e,t)=>{if(G(e)||v(
16
- e)||M(e)||J(e)){let{definitions:r}=e;switch(typeof r?.default){case"boolean":case"\
17
- number":return`${r.default}`;case"string":return`'${r.default}'`;case"object":return`\
18
- '${JSON.stringify(r.default)}'`}}if(V(e)){let{definitions:r}=e;if(r?.default)return`\
19
- '${r.default}'`}if(H(e)&&t)switch(e.format){case"date-time":case"date":case"time":
20
- return"now()";case"uuid":return"gen_random_uuid()"}if(S(e))return"null"},"getCol\
21
- umnDefault"),q=o((e,t)=>{switch(e.type){case y.Array:case y.Object:case y.Reference:case y.
22
- Union:case y.Tuple:return"jsonb";case y.Boolean:return"boolean";case y.Enum:return"\
23
- text";case y.Number:return X(e,t);case y.String:return Y(e)}},"getColumnType"),X=o(
24
- (e,t)=>e.format==="integer"?t?"bigserial":"bigint":"decimal","getColumNumberType"),
25
- Y=o(e=>{switch(e.format){case"uuid":case"time":case"date":return e.format;case"d\
26
- ate-time":return"timestamptz";default:let t=e.definitions?.maxLength;return W(t)?
27
- `varchar(${t})`:"text"}},"getColumnTextType");var Ne=o((e,t,r,n)=>{let s=e.table(t).create().missing();for(let a in r.properties){
28
- let i=r.properties[a],u=n[a]?.type===Z.Primary,c=!S(i),p=q(i,u),l=h(i,u);s.column(
29
- a,p,c,l).missing()}return{query:s.build()}},"prepareCreateTable"),Pe=o((e,t,r)=>({
30
- query:e.table(t).rename(r).existing().build()}),"prepareRenameTable"),ke=o((e,t)=>({
31
- query:e.table(t).drop().existing().cascade().build()}),"prepareDeleteTable");import{SchemaType as N}from"@ez4/schema";import{Index as g}from"@ez4/database";import{toSnakeCase as ee}from"@ez4/utils";var b=o((e,t)=>`${I(e,t)}_pk`,"getPrimaryKeyName"),C=o((e,t)=>`${I(e,t)}_uk`,"ge\
32
- tUniqueKeyName"),R=o((e,t)=>`${I(e,t)}_sk`,"getSecondaryKeyName"),f=o((e,t)=>`${I(
33
- e,t)}_fk`,"getRelationName");var I=o((e,t)=>`${e}_${ee(t.replaceAll(":","_"))}`,"getName");var Ee=o((e,t,r,n,s)=>{let a={constraints:[],indexes:[]};for(let i in n){let{columns:m,
34
- type:u}=n[i];switch(u){default:throw new Error("Unsupported index type.");case g.
35
- Primary:{let c=b(t,i),p=e.table(t).alter().existing().constraint(c).primary(m);a.
36
- constraints.push({check:d(e,c),query:p.build()});break}case g.Unique:{let c=C(t,
37
- i),p=e.table(t).alter().existing().constraint(c).unique(m);a.constraints.push({check:d(
38
- e,c),query:p.build()});break}case g.Secondary:{let c=R(t,i),p=te(m,r),l=e.index(
39
- c).create(t,m).type(p).missing();s&&l.concurrent(),a.indexes.push({query:l.build()});
40
- break}}}return a},"prepareCreateIndexes"),_e=o((e,t,r,n)=>{let s={constraints:[],
41
- indexes:[]};for(let a in n){let{type:i}=n[a];switch(i){default:throw new Error("\
42
- Unsupported index type.");case g.Primary:{let m=b(t,a),u=b(r,a),c=e.table(r).alter().
43
- existing().constraint(m).rename(u);s.constraints.push({check:d(e,u),query:c.build()});
44
- break}case g.Unique:{let m=C(t,a),u=C(r,a),c=e.table(r).alter().existing().constraint(
45
- m).rename(u);s.constraints.push({check:d(e,u),query:c.build()});break}case g.Secondary:{
46
- let m=R(t,a),u=R(r,a),c=e.index(m).rename(u).existing();s.indexes.push({query:c.
47
- build()});break}}}return s},"prepareRenameIndexes"),$e=o((e,t,r)=>{let n={constraints:[],
48
- indexes:[]};for(let s in r){let{type:a}=r[s];switch(a){default:throw new Error("\
49
- Unsupported index type.");case g.Primary:{let i=b(t,s),m=e.table(t).alter().existing().
50
- constraint(i).drop().existing();n.constraints.push({query:m.build()});break}case g.
51
- Unique:{let i=C(t,s),m=e.table(t).alter().existing().constraint(i).drop().existing();
52
- n.constraints.push({query:m.build()});break}case g.Secondary:{let i=R(t,s),m=e.index(
53
- i).drop().existing().concurrent();n.indexes.push({query:m.build()});break}}}return n},
54
- "prepareDeleteIndexes"),te=o((e,t)=>{if(e.length===1){let[r]=e;switch(t.properties[r]?.
55
- type){case N.Object:case N.Union:case N.Array:case N.Tuple:return"GIN"}}return"B\
56
- TREE"},"getIndexType");import{getTableName as re}from"@ez4/pgclient/library";import{IsNullishSchema as ne}from"@ez4/schema";
57
- import{Index as P}from"@ez4/database";var Ge=o((e,t,r,n)=>{let s=[];for(let a in n){let i=n[a];if(i.targetIndex===P.Primary)
58
- continue;let{[i.targetColumn]:m}=r.properties,u=f(t,a),c=!!ne(m);s.push({check:d(
59
- e,u),query:D(e,t,u,i,c).build()})}return s},"prepareCreateRelations"),He=o((e,t,r,n)=>{
60
- let s=[];for(let a in r){let i=r[a];if(i.targetIndex===P.Primary)continue;let m=n[i.
61
- targetColumn]?.update,u=m?.optional??m?.nullable;if(u===void 0)continue;let c=f(
62
- t,a);s.push({query:z(e,t,c).build()},{query:D(e,t,c,i,u).build()})}return s},"pr\
63
- epareUpdateRelations"),Je=o((e,t,r,n)=>{let s=[];for(let a in n){if(n[a].targetIndex===
64
- P.Primary)continue;let m=f(t,a),u=f(r,a),c=e.table(r).alter().existing().constraint(
65
- m).rename(u);s.push({check:d(e,u),query:c.build()})}return s},"prepareRenameRela\
66
- tions"),We=o((e,t,r)=>{let n=[];for(let s in r){if(r[s].targetIndex===P.Primary)
67
- continue;let i=f(t,s);n.push({query:z(e,t,i).build()})}return n},"prepareDeleteR\
68
- elations"),z=o((e,t,r)=>e.table(t).alter().existing().constraint(r).drop().existing(),
69
- "getDeleteRelationQuery"),D=o((e,t,r,n,s)=>{let{sourceAlias:a,sourceColumn:i,targetColumn:m}=n,
70
- u=re(a),c=e.table(t).alter().existing().constraint(r).foreign(m,u,[i]);return s?
71
- c.delete().null():c.delete().cascade(),c.update().cascade(),c},"getCreateRelatio\
72
- nQuery");import{Index as Q}from"@ez4/database";var rt=o((e,t,r,n)=>{let s=e.table(t).alter().existing();for(let a in n){let i=n[a],
73
- u=r[a]?.type===Q.Primary,c=!S(i),p=q(i,u),l=h(i,u);s.add(a,p,c,l).missing()}return{
74
- query:s.build()}},"prepareCreateColumns"),nt=o((e,t,r,n,s)=>{let a=[];for(let i in s){
75
- let{update:m,nested:u}=s[i],c=r.properties[i],l=n[i]?.type===Q.Primary,E=u?.definitions?.
76
- update?.default,O=m?.optional??m?.nullable,_=m?.type,x=e.table(t).alter().existing().
77
- column(i);_!==void 0&&x.type(q(c,l)),O!==void 0&&x.optional(O),E!==void 0&&x.default(
78
- h(c,l)),!x.empty&&a.push({check:k(e,t,i),query:x.build()})}return a},"prepareUpd\
79
- ateColumns"),ot=o((e,t,r)=>{let n=[];for(let s in r){let a=r[s],i=e.table(t).alter().
80
- existing().rename(s,a);n.push({check:k(e,t,s),query:i.build()})}return n},"prepa\
81
- reRenameColumns"),it=o((e,t,r)=>{let n=e.table(t).alter().existing();for(let s in r)
82
- n.drop(s).existing();return{query:n.build()}},"prepareDeleteColumns");export{ce as getTableRepositoryChanges,rt as prepareCreateColumns,de as prepareCreateDatabase,
83
- Ee as prepareCreateIndexes,Ge as prepareCreateRelations,Ne as prepareCreateTable,
84
- it as prepareDeleteColumns,fe as prepareDeleteDatabase,$e as prepareDeleteIndexes,
85
- We as prepareDeleteRelations,ke as prepareDeleteTable,ot as prepareRenameColumns,
86
- _e as prepareRenameIndexes,Je as prepareRenameRelations,Pe as prepareRenameTable,
87
- nt as prepareUpdateColumns,He as prepareUpdateRelations};
1
+ var F=Object.defineProperty;var r=(e,a)=>F(e,"name",{value:a,configurable:!0});import{deepEqual as $,deepCompareObject as L,isAnyObject as z}from"@ez4/utils";import{
2
+ isTableMetadata as E}from"@ez4/pgclient/library";import{isAnySchema as _}from"@ez4/schema";var de=r((e,a)=>L(e,a,{onRename:r((g,d)=>!z(g)||!z(d)?!1:E(g)&&E(d)?V(g.schema,d.
3
+ schema):_(g)&&_(d)?v(g,d):!1,"onRename")}),"getTableRepositoryChanges"),V=r((e,a)=>$(
4
+ Object.keys(e.properties),Object.keys(a.properties)),"canRenameTable"),v=r((e,a)=>$(
5
+ e,a,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
6
+ Column");import{SqlBuilder as G}from"@ez4/pgsql";var D=r((e,a)=>{let[g]=e.select().rawColumn("1").from("pg_database").where({datname:e.
7
+ rawString(a)}).build();return g},"getCheckDatabaseQuery"),b=r((e,a)=>{let[g]=e.select().
8
+ rawColumn("1").from("pg_constraint").where({conname:e.rawString(a)}).build();return g},
9
+ "getCheckConstraintQuery"),T=r((e,a,g)=>{let[d]=e.select().rawColumn("1").from("\
10
+ information_schema.columns").where({column_name:e.rawString(g),table_name:e.rawString(
11
+ a)}).build();return d},"getCheckColumnQuery");var H;(g=>(g.prepareCreate=r(d=>{let y=new G;return{check:D(y,d),query:`CREATE D\
12
+ ATABASE "${d}"`}},"prepareCreate"),g.prepareDelete=r(d=>({query:`DROP DATABASE I\
13
+ F EXISTS "${d}" WITH (FORCE)`}),"prepareDelete")))(H||={});import{Index as ne}from"@ez4/database";import{isArraySchema as J,isEnumSchema as W,isObjectSchema as X,isScalarSchema as Y,
14
+ isStringSchema as Z,isTupleSchema as Q,SchemaType as h}from"@ez4/schema";import{
15
+ isAnyNumber as ee}from"@ez4/utils";var N=r(e=>!!(e.nullable||e.optional),"isOptionalColumn"),P=r((e,a)=>{if(Y(e)||X(
16
+ e)||J(e)||Q(e)){let{definitions:g}=e;switch(typeof g?.default){case"boolean":case"\
17
+ number":return`${g.default}`;case"string":return`'${g.default}'`;case"object":return`\
18
+ '${JSON.stringify(g.default)}'`}}if(W(e)){let{definitions:g}=e;if(g?.default)return`\
19
+ '${g.default}'`}if(Z(e)&&a)switch(e.format){case"date-time":case"date":case"time":
20
+ return"now()";case"uuid":return"gen_random_uuid()"}if(N(e))return"null"},"getCol\
21
+ umnDefault"),k=r((e,a)=>{switch(e.type){case h.Array:case h.Object:case h.Reference:case h.
22
+ Union:case h.Tuple:return"jsonb";case h.Boolean:return"boolean";case h.Enum:return"\
23
+ text";case h.Number:return te(e,a);case h.String:return re(e)}},"getColumnType"),
24
+ te=r((e,a)=>e.format==="integer"?a?"bigserial":"bigint":"decimal","getColumNumbe\
25
+ rType"),re=r(e=>{switch(e.format){case"uuid":case"time":case"date":return e.format;case"\
26
+ date-time":return"timestamptz";default:let a=e.definitions?.maxLength;return ee(
27
+ a)?`varchar(${a})`:"text"}},"getColumnTextType");var oe;(d=>(d.prepareCreate=r((y,c,m,l)=>{let o=y.table(c).create().missing();for(let t in m.
28
+ properties){let n=m.properties[t],s=l[t]?.type===ne.Primary,u=!N(n),p=k(n,s),f=P(
29
+ n,s);o.column(t,p,u,f).missing()}return{query:o.build()}},"prepareCreate"),d.prepareRename=
30
+ r((y,c,m)=>({query:y.table(c).rename(m).existing().build()}),"prepareRename"),d.
31
+ prepareDelete=r((y,c)=>({query:y.table(c).drop().existing().cascade().build()}),
32
+ "prepareDelete")))(oe||={});import{SchemaType as w}from"@ez4/schema";import{Index as q}from"@ez4/database";import{toSnakeCase as ie}from"@ez4/utils";var I=r((e,a)=>`${A(e,a)}_pk`,"getPrimaryKeyName"),O=r((e,a)=>`${A(e,a)}_uk`,"ge\
33
+ tUniqueKeyName"),B=r((e,a)=>`${A(e,a)}_sk`,"getSecondaryKeyName"),R=r((e,a)=>`${A(
34
+ e,a)}_fk`,"getRelationName");var A=r((e,a)=>`${e}_${ie(a.replaceAll(":","_"))}`,"getName");var se;(y=>{y.prepareCreate=r((c,m,l,o,t)=>{let n={constraints:[],indexes:[]};for(let i in o){
35
+ let{columns:s,type:u}=o[i];switch(u){default:throw new Error("Unsupported index \
36
+ type.");case q.Primary:{let p=I(m,i),f=c.table(m).alter().existing().constraint(
37
+ p).primary(s);n.constraints.push({check:b(c,p),query:f.build()});break}case q.Unique:{
38
+ let p=O(m,i),f=c.table(m).alter().existing().constraint(p).unique(s);n.constraints.
39
+ push({check:b(c,p),query:f.build()});break}case q.Secondary:{let p=B(m,i),f=d(s,
40
+ l),x=c.index(p).create(m,s).type(f).missing();t&&x.concurrent(),n.indexes.push({
41
+ query:x.build()});break}}}return n},"prepareCreate"),y.prepareRename=r((c,m,l,o)=>{
42
+ let t={constraints:[],indexes:[]};for(let n in o){let{type:i}=o[n];switch(i){default:
43
+ throw new Error("Unsupported index type.");case q.Primary:{let s=I(m,n),u=I(l,n),
44
+ p=c.table(l).alter().existing().constraint(s).rename(u);t.constraints.push({check:b(
45
+ c,u),query:p.build()});break}case q.Unique:{let s=O(m,n),u=O(l,n),p=c.table(l).alter().
46
+ existing().constraint(s).rename(u);t.constraints.push({check:b(c,u),query:p.build()});
47
+ break}case q.Secondary:{let s=B(m,n),u=B(l,n),p=c.index(s).rename(u).existing();
48
+ t.indexes.push({query:p.build()});break}}}return t},"prepareRename"),y.prepareDelete=
49
+ r((c,m,l)=>{let o={constraints:[],indexes:[]};for(let t in l){let{type:n}=l[t];switch(n){default:
50
+ throw new Error("Unsupported index type.");case q.Primary:{let i=I(m,t),s=c.table(
51
+ m).alter().existing().constraint(i).drop().existing();o.constraints.push({query:s.
52
+ build()});break}case q.Unique:{let i=O(m,t),s=c.table(m).alter().existing().constraint(
53
+ i).drop().existing();o.constraints.push({query:s.build()});break}case q.Secondary:{
54
+ let i=B(m,t),s=c.index(i).drop().existing().concurrent();o.indexes.push({query:s.
55
+ build()});break}}}return o},"prepareDelete");let d=r((c,m)=>{if(c.length===1){let[
56
+ l]=c;switch(m.properties[l]?.type){case w.Object:case w.Union:case w.Array:case w.
57
+ Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(se||={});import{getTableName as ae}from"@ez4/pgclient/library";import{IsNullishSchema as ce}from"@ez4/schema";
58
+ import{Index as U}from"@ez4/database";var me;(l=>{l.prepareCreate=r((o,t,n,i)=>{let s=[];for(let u in i){let p=i[u];if(y(
59
+ p))continue;let{[p.targetColumn]:f}=n.properties,x=R(t,u),S=!!ce(f);s.push({check:b(
60
+ o,x),query:m(o,t,x,p,S).build()})}return s},"prepareCreate"),l.prepareUpdate=r((o,t,n,i)=>{
61
+ let s=[];for(let u in n){let p=n[u];if(y(p))continue;let f=i[p.targetColumn]?.update,
62
+ x=f?.optional??f?.nullable;if(x===void 0)continue;let S=R(t,u);s.push({query:c(o,
63
+ t,S).build()},{query:m(o,t,S,p,x).build()})}return s},"prepareUpdate"),l.prepareRename=
64
+ r((o,t,n,i)=>{let s=[];for(let u in i){let p=i[u];if(y(p))continue;let f=R(t,u),
65
+ x=R(n,u),S=o.table(n).alter().existing().constraint(f).rename(x);s.push({check:b(
66
+ o,x),query:S.build()})}return s},"prepareRename"),l.prepareDelete=r((o,t,n)=>{let i=[];
67
+ for(let s in n){let u=n[s];if(y(u))continue;let p=R(t,s);i.push({query:c(o,t,p).
68
+ build()})}return i},"prepareDelete");let y=r(o=>{let{sourceIndex:t,targetIndex:n}=o;
69
+ return!t||t===U.Secondary||n===U.Primary},"isNotRealRelation"),c=r((o,t,n)=>o.table(
70
+ t).alter().existing().constraint(n).drop().existing(),"getDeleteQuery"),m=r((o,t,n,i,s)=>{
71
+ let{sourceTable:u,sourceColumn:p,targetColumn:f}=i,x=ae(u),S=o.table(t).alter().
72
+ existing().constraint(n).foreign(f,x,[p]);return s?S.delete().null():S.delete().
73
+ cascade(),S.update().cascade(),S},"getCreateQuery")})(me||={});import{Index as M}from"@ez4/database";var pe;(y=>(y.prepareCreate=r((c,m,l,o)=>{let t=c.table(m).alter().existing();for(let n in o){
74
+ let i=o[n],u=l[n]?.type===M.Primary,p=!N(i),f=k(i,u),x=P(i,u);t.add(n,f,p,x).missing()}
75
+ return{query:t.build()}},"prepareCreate"),y.prepareUpdate=r((c,m,l,o,t)=>{let n=[];
76
+ for(let i in t){let{update:s,nested:u}=t[i],p=l.properties[i],x=o[i]?.type===M.Primary,
77
+ S=u?.definitions?.update?.default,j=s?.optional??s?.nullable,K=s?.type,C=c.table(
78
+ m).alter().existing().column(i);K!==void 0&&C.type(k(p,x)),j!==void 0&&C.optional(
79
+ j),S!==void 0&&C.default(P(p,x)),!C.empty&&n.push({check:T(c,m,i),query:C.build()})}
80
+ return n},"prepareUpdate"),y.prepareRename=r((c,m,l)=>{let o=[];for(let t in l){
81
+ let n=l[t],i=c.table(m).alter().existing().rename(t,n);o.push({check:T(c,m,t),query:i.
82
+ build()})}return o},"prepareRename"),y.prepareDelete=r((c,m,l)=>{let o=c.table(m).
83
+ alter().existing();for(let t in l)o.drop(t).existing();return{query:o.build()}},
84
+ "prepareDelete")))(pe||={});export{pe as ColumnQuery,H as DatabaseQueries,se as IndexQueries,me as RelationQuery,
85
+ oe as TableQuery,de as getTableRepositoryChanges};
88
86
  //# sourceMappingURL=library.mjs.map