@ez4/pgmigration 0.26.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/library.cjs CHANGED
@@ -1,95 +1,90 @@
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 r=(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:()=>X,DatabaseQueries:()=>K,IndexQueries:()=>G,RelationQuery:()=>W,
4
+ TableQuery:()=>V,getTableRepositoryChanges:()=>ie});module.exports=oe(pe);var q=require("@ez4/utils"),z=require("@ez4/pgclient/library"),E=require("@ez4/schema");var ie=r((e,t)=>(0,q.deepCompareObject)(e,t,{onRename:r((u,d)=>!(0,q.isAnyObject)(
5
+ u)||!(0,q.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=r((e,t)=>(0,q.deepEqual)(Object.keys(e.
8
+ properties),Object.keys(t.properties)),"canRenameTable"),ae=r((e,t)=>(0,q.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 M=require("@ez4/pgsql");var U=r((e,t)=>{let[u]=e.select().rawColumn("1").from("pg_database").where({datname:e.
11
+ rawString(t)}).build();return u},"getCheckDatabaseQuery"),b=r((e,t)=>{let[u]=e.select().
12
+ rawColumn("1").from("pg_constraint").where({conname:e.rawString(t)}).build();return u},
13
+ "getCheckConstraintQuery"),_=r((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 K;(u=>(u.prepareCreate=r(d=>{let y=new M.SqlBuilder;return{check:U(y,d),query:`\
16
+ CREATE DATABASE "${d}"`}},"prepareCreate"),u.prepareDelete=r(d=>({query:`DROP DA\
17
+ TABASE IF EXISTS "${d}" WITH (FORCE)`}),"prepareDelete")))(K||={});var L=require("@ez4/database");var f=require("@ez4/schema"),F=require("@ez4/utils");var N=r(e=>!!(e.nullable||e.optional),"isOptionalColumn"),P=r((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(N(e))return"\
24
+ null"},"getColumnDefault"),k=r((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=r((e,t)=>e.format==="integer"?t?"bigserial":"bigint":"d\
29
+ ecimal","getColumNumberType"),me=r(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,F.isAnyNumber)(t)?`varchar(${t})`:"text"}},"getColumnTextType");var V;(d=>(d.prepareCreate=r((y,m,a,c)=>{let o=y.table(m).create().missing();for(let n in a.
32
+ properties){let i=a.properties[n],p=c[n]?.type===L.Index.Primary,l=!N(i),g=k(i,p),
33
+ x=P(i,p);o.column(n,g,l,x).missing()}return{query:o.build()}},"prepareCreate"),d.
34
+ prepareRename=r((y,m,a)=>({query:y.table(m).rename(a).existing().build()}),"prep\
35
+ areRename"),d.prepareDelete=r((y,m)=>({query:y.table(m).drop().existing().cascade().
36
+ build()}),"prepareDelete")))(V||={});var A=require("@ez4/schema"),h=require("@ez4/database");var v=require("@ez4/utils");var I=r((e,t)=>`${j(e,t)}_pk`,"getPrimaryKeyName"),O=r((e,t)=>`${j(e,t)}_uk`,"ge\
37
+ tUniqueKeyName"),B=r((e,t)=>`${j(e,t)}_sk`,"getSecondaryKeyName"),C=r((e,t)=>`${j(
38
+ e,t)}_fk`,"getRelationName");var j=r((e,t)=>`${e}_${(0,v.toSnakeCase)(t.replaceAll(":","_"))}`,"getName");var G;(y=>{y.prepareCreate=r((m,a,c,o,n)=>{let i={constraints:[],indexes:[]};for(let s in o){
39
+ let{columns:p,type:l}=o[s];switch(l){default:throw new Error("Unsupported index \
40
+ type.");case h.Index.Primary:{let g=I(a,s),x=m.table(a).alter().existing().constraint(
41
+ g).primary(p);i.constraints.push({check:b(m,g),query:x.build()});break}case h.Index.
42
+ Unique:{let g=O(a,s),x=m.table(a).alter().existing().constraint(g).unique(p);i.constraints.
43
+ push({check:b(m,g),query:x.build()});break}case h.Index.Secondary:{let g=B(a,s),
44
+ x=d(p,c),S=m.index(g).create(a,p).type(x).missing();n&&S.concurrent(),i.indexes.
45
+ push({query:S.build()});break}}}return i},"prepareCreate"),y.prepareRename=r((m,a,c,o)=>{
46
+ let n={constraints:[],indexes:[]};for(let i in o){let{type:s}=o[i];switch(s){default:
47
+ throw new Error("Unsupported index type.");case h.Index.Primary:{let p=I(a,i),l=I(
48
+ c,i),g=m.table(c).alter().existing().constraint(p).rename(l);n.constraints.push(
49
+ {check:b(m,l),query:g.build()});break}case h.Index.Unique:{let p=O(a,i),l=O(c,i),
50
+ g=m.table(c).alter().existing().constraint(p).rename(l);n.constraints.push({check:b(
51
+ m,l),query:g.build()});break}case h.Index.Secondary:{let p=B(a,i),l=B(c,i),g=m.index(
52
+ p).rename(l).existing();n.indexes.push({query:g.build()});break}}}return n},"pre\
53
+ pareRename"),y.prepareDelete=r((m,a,c)=>{let o={constraints:[],indexes:[]};for(let n in c){
54
+ let{type:i}=c[n];switch(i){default:throw new Error("Unsupported index type.");case h.Index.
55
+ Primary:{let s=I(a,n),p=m.table(a).alter().existing().constraint(s).drop().existing();
56
+ o.constraints.push({query:p.build()});break}case h.Index.Unique:{let s=O(a,n),p=m.
57
+ table(a).alter().existing().constraint(s).drop().existing();o.constraints.push({
58
+ query:p.build()});break}case h.Index.Secondary:{let s=B(a,n),p=m.index(s).drop().
59
+ existing().concurrent();o.indexes.push({query:p.build()});break}}}return o},"pre\
60
+ pareDelete");let d=r((m,a)=>{if(m.length===1){let[c]=m;switch(a.properties[c]?.type){case A.SchemaType.
61
+ Object:case A.SchemaType.Union:case A.SchemaType.Array:case A.SchemaType.Tuple:return"\
62
+ GIN"}}return"BTREE"},"getIndexType")})(G||={});var H=require("@ez4/pgclient/library"),J=require("@ez4/schema"),w=require("@ez4/database");var W;(a=>{a.prepareCreate=r((c,o,n,i)=>{let s=[];for(let p in i){let l=i[p];if(l.
63
+ targetIndex===w.Index.Primary)continue;let{[l.targetColumn]:g}=n.properties,x=C(
64
+ o,p),S=!!(0,J.IsNullishSchema)(g);s.push({check:b(c,x),query:m(c,o,x,l,S).build()})}
65
+ return s},"prepareCreate"),a.prepareUpdate=r((c,o,n,i)=>{let s=[];for(let p in n){
66
+ let l=n[p];if(l.targetIndex===w.Index.Primary)continue;let g=i[l.targetColumn]?.
67
+ update,x=g?.optional??g?.nullable;if(x===void 0)continue;let S=C(o,p);s.push({query:y(
68
+ c,o,S).build()},{query:m(c,o,S,l,x).build()})}return s},"prepareUpdate"),a.prepareRename=
69
+ r((c,o,n,i)=>{let s=[];for(let p in i){if(i[p].targetIndex===w.Index.Primary)continue;
70
+ let g=C(o,p),x=C(n,p),S=c.table(n).alter().existing().constraint(g).rename(x);s.
71
+ push({check:b(c,x),query:S.build()})}return s},"prepareRename"),a.prepareDelete=
72
+ r((c,o,n)=>{let i=[];for(let s in n){if(n[s].targetIndex===w.Index.Primary)continue;
73
+ let l=C(o,s);i.push({query:y(c,o,l).build()})}return i},"prepareDelete");let y=r(
74
+ (c,o,n)=>c.table(o).alter().existing().constraint(n).drop().existing(),"getDelet\
75
+ eQuery"),m=r((c,o,n,i,s)=>{let{sourceTable:p,sourceColumn:l,targetColumn:g}=i,x=(0,H.getTableName)(
76
+ p),S=c.table(o).alter().existing().constraint(n).foreign(g,x,[l]);return s?S.delete().
77
+ null():S.delete().cascade(),S.update().cascade(),S},"getCreateQuery")})(W||={});var $=require("@ez4/database");var X;(y=>(y.prepareCreate=r((m,a,c,o)=>{let n=m.table(a).alter().existing();for(let i in o){
78
+ let s=o[i],l=c[i]?.type===$.Index.Primary,g=!N(s),x=k(s,l),S=P(s,l);n.add(i,x,g,
79
+ S).missing()}return{query:n.build()}},"prepareCreate"),y.prepareUpdate=r((m,a,c,o,n)=>{
80
+ let i=[];for(let s in n){let{update:p,nested:l}=n[s],g=c.properties[s],S=o[s]?.type===
81
+ $.Index.Primary,Y=l?.definitions?.update?.default,D=p?.optional??p?.nullable,Z=p?.
82
+ type,R=m.table(a).alter().existing().column(s);Z!==void 0&&R.type(k(g,S)),D!==void 0&&
83
+ R.optional(D),Y!==void 0&&R.default(P(g,S)),!R.empty&&i.push({check:_(m,a,s),query:R.
84
+ build()})}return i},"prepareUpdate"),y.prepareRename=r((m,a,c)=>{let o=[];for(let n in c){
85
+ let i=c[n],s=m.table(a).alter().existing().rename(n,i);o.push({check:_(m,a,n),query:s.
86
+ build()})}return o},"prepareRename"),y.prepareDelete=r((m,a,c)=>{let o=m.table(a).
87
+ alter().existing();for(let n in c)o.drop(n).existing();return{query:o.build()}},
88
+ "prepareDelete")))(X||={});0&&(module.exports={ColumnQuery,DatabaseQueries,IndexQueries,RelationQuery,TableQuery,
89
+ getTableRepositoryChanges});
95
90
  //# 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 t=(e,c)=>F(e,"name",{value:c,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=t((e,c)=>L(e,c,{onRename:t((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=t((e,c)=>$(
4
+ Object.keys(e.properties),Object.keys(c.properties)),"canRenameTable"),v=t((e,c)=>$(
5
+ e,c,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
6
+ Column");import{SqlBuilder as G}from"@ez4/pgsql";var D=t((e,c)=>{let[g]=e.select().rawColumn("1").from("pg_database").where({datname:e.
7
+ rawString(c)}).build();return g},"getCheckDatabaseQuery"),q=t((e,c)=>{let[g]=e.select().
8
+ rawColumn("1").from("pg_constraint").where({conname:e.rawString(c)}).build();return g},
9
+ "getCheckConstraintQuery"),T=t((e,c,g)=>{let[d]=e.select().rawColumn("1").from("\
10
+ information_schema.columns").where({column_name:e.rawString(g),table_name:e.rawString(
11
+ c)}).build();return d},"getCheckColumnQuery");var H;(g=>(g.prepareCreate=t(d=>{let f=new G;return{check:D(f,d),query:`CREATE D\
12
+ ATABASE "${d}"`}},"prepareCreate"),g.prepareDelete=t(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 S}from"@ez4/schema";import{
15
+ isAnyNumber as ee}from"@ez4/utils";var R=t(e=>!!(e.nullable||e.optional),"isOptionalColumn"),N=t((e,c)=>{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)&&c)switch(e.format){case"date-time":case"date":case"time":
20
+ return"now()";case"uuid":return"gen_random_uuid()"}if(R(e))return"null"},"getCol\
21
+ umnDefault"),P=t((e,c)=>{switch(e.type){case S.Array:case S.Object:case S.Reference:case S.
22
+ Union:case S.Tuple:return"jsonb";case S.Boolean:return"boolean";case S.Enum:return"\
23
+ text";case S.Number:return te(e,c);case S.String:return re(e)}},"getColumnType"),
24
+ te=t((e,c)=>e.format==="integer"?c?"bigserial":"bigint":"decimal","getColumNumbe\
25
+ rType"),re=t(e=>{switch(e.format){case"uuid":case"time":case"date":return e.format;case"\
26
+ date-time":return"timestamptz";default:let c=e.definitions?.maxLength;return ee(
27
+ c)?`varchar(${c})`:"text"}},"getColumnTextType");var oe;(d=>(d.prepareCreate=t((f,m,s,a)=>{let n=f.table(m).create().missing();for(let r in s.
28
+ properties){let o=s.properties[r],p=a[r]?.type===ne.Primary,u=!R(o),l=P(o,p),y=N(
29
+ o,p);n.column(r,l,u,y).missing()}return{query:n.build()}},"prepareCreate"),d.prepareRename=
30
+ t((f,m,s)=>({query:f.table(m).rename(s).existing().build()}),"prepareRename"),d.
31
+ prepareDelete=t((f,m)=>({query:f.table(m).drop().existing().cascade().build()}),
32
+ "prepareDelete")))(oe||={});import{SchemaType as A}from"@ez4/schema";import{Index as h}from"@ez4/database";import{toSnakeCase as ie}from"@ez4/utils";var k=t((e,c)=>`${B(e,c)}_pk`,"getPrimaryKeyName"),I=t((e,c)=>`${B(e,c)}_uk`,"ge\
33
+ tUniqueKeyName"),O=t((e,c)=>`${B(e,c)}_sk`,"getSecondaryKeyName"),b=t((e,c)=>`${B(
34
+ e,c)}_fk`,"getRelationName");var B=t((e,c)=>`${e}_${ie(c.replaceAll(":","_"))}`,"getName");var se;(f=>{f.prepareCreate=t((m,s,a,n,r)=>{let o={constraints:[],indexes:[]};for(let i in n){
35
+ let{columns:p,type:u}=n[i];switch(u){default:throw new Error("Unsupported index \
36
+ type.");case h.Primary:{let l=k(s,i),y=m.table(s).alter().existing().constraint(
37
+ l).primary(p);o.constraints.push({check:q(m,l),query:y.build()});break}case h.Unique:{
38
+ let l=I(s,i),y=m.table(s).alter().existing().constraint(l).unique(p);o.constraints.
39
+ push({check:q(m,l),query:y.build()});break}case h.Secondary:{let l=O(s,i),y=d(p,
40
+ a),x=m.index(l).create(s,p).type(y).missing();r&&x.concurrent(),o.indexes.push({
41
+ query:x.build()});break}}}return o},"prepareCreate"),f.prepareRename=t((m,s,a,n)=>{
42
+ let r={constraints:[],indexes:[]};for(let o in n){let{type:i}=n[o];switch(i){default:
43
+ throw new Error("Unsupported index type.");case h.Primary:{let p=k(s,o),u=k(a,o),
44
+ l=m.table(a).alter().existing().constraint(p).rename(u);r.constraints.push({check:q(
45
+ m,u),query:l.build()});break}case h.Unique:{let p=I(s,o),u=I(a,o),l=m.table(a).alter().
46
+ existing().constraint(p).rename(u);r.constraints.push({check:q(m,u),query:l.build()});
47
+ break}case h.Secondary:{let p=O(s,o),u=O(a,o),l=m.index(p).rename(u).existing();
48
+ r.indexes.push({query:l.build()});break}}}return r},"prepareRename"),f.prepareDelete=
49
+ t((m,s,a)=>{let n={constraints:[],indexes:[]};for(let r in a){let{type:o}=a[r];switch(o){default:
50
+ throw new Error("Unsupported index type.");case h.Primary:{let i=k(s,r),p=m.table(
51
+ s).alter().existing().constraint(i).drop().existing();n.constraints.push({query:p.
52
+ build()});break}case h.Unique:{let i=I(s,r),p=m.table(s).alter().existing().constraint(
53
+ i).drop().existing();n.constraints.push({query:p.build()});break}case h.Secondary:{
54
+ let i=O(s,r),p=m.index(i).drop().existing().concurrent();n.indexes.push({query:p.
55
+ build()});break}}}return n},"prepareDelete");let d=t((m,s)=>{if(m.length===1){let[
56
+ a]=m;switch(s.properties[a]?.type){case A.Object:case A.Union:case A.Array:case A.
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 w}from"@ez4/database";var me;(s=>{s.prepareCreate=t((a,n,r,o)=>{let i=[];for(let p in o){let u=o[p];if(u.
59
+ targetIndex===w.Primary)continue;let{[u.targetColumn]:l}=r.properties,y=b(n,p),x=!!ce(
60
+ l);i.push({check:q(a,y),query:m(a,n,y,u,x).build()})}return i},"prepareCreate"),
61
+ s.prepareUpdate=t((a,n,r,o)=>{let i=[];for(let p in r){let u=r[p];if(u.targetIndex===
62
+ w.Primary)continue;let l=o[u.targetColumn]?.update,y=l?.optional??l?.nullable;if(y===
63
+ void 0)continue;let x=b(n,p);i.push({query:f(a,n,x).build()},{query:m(a,n,x,u,y).
64
+ build()})}return i},"prepareUpdate"),s.prepareRename=t((a,n,r,o)=>{let i=[];for(let p in o){
65
+ if(o[p].targetIndex===w.Primary)continue;let l=b(n,p),y=b(r,p),x=a.table(r).alter().
66
+ existing().constraint(l).rename(y);i.push({check:q(a,y),query:x.build()})}return i},
67
+ "prepareRename"),s.prepareDelete=t((a,n,r)=>{let o=[];for(let i in r){if(r[i].targetIndex===
68
+ w.Primary)continue;let u=b(n,i);o.push({query:f(a,n,u).build()})}return o},"prep\
69
+ areDelete");let f=t((a,n,r)=>a.table(n).alter().existing().constraint(r).drop().
70
+ existing(),"getDeleteQuery"),m=t((a,n,r,o,i)=>{let{sourceTable:p,sourceColumn:u,
71
+ targetColumn:l}=o,y=ae(p),x=a.table(n).alter().existing().constraint(r).foreign(
72
+ l,y,[u]);return i?x.delete().null():x.delete().cascade(),x.update().cascade(),x},
73
+ "getCreateQuery")})(me||={});import{Index as U}from"@ez4/database";var pe;(f=>(f.prepareCreate=t((m,s,a,n)=>{let r=m.table(s).alter().existing();for(let o in n){
74
+ let i=n[o],u=a[o]?.type===U.Primary,l=!R(i),y=P(i,u),x=N(i,u);r.add(o,y,l,x).missing()}
75
+ return{query:r.build()}},"prepareCreate"),f.prepareUpdate=t((m,s,a,n,r)=>{let o=[];
76
+ for(let i in r){let{update:p,nested:u}=r[i],l=a.properties[i],x=n[i]?.type===U.Primary,
77
+ M=u?.definitions?.update?.default,j=p?.optional??p?.nullable,K=p?.type,C=m.table(
78
+ s).alter().existing().column(i);K!==void 0&&C.type(P(l,x)),j!==void 0&&C.optional(
79
+ j),M!==void 0&&C.default(N(l,x)),!C.empty&&o.push({check:T(m,s,i),query:C.build()})}
80
+ return o},"prepareUpdate"),f.prepareRename=t((m,s,a)=>{let n=[];for(let r in a){
81
+ let o=a[r],i=m.table(s).alter().existing().rename(r,o);n.push({check:T(m,s,r),query:i.
82
+ build()})}return n},"prepareRename"),f.prepareDelete=t((m,s,a)=>{let n=m.table(s).
83
+ alter().existing();for(let r in a)n.drop(r).existing();return{query:n.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