prostgles-server 2.0.185 → 2.0.188
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/DboBuilder/insert.d.ts +5 -0
- package/dist/DboBuilder/insert.d.ts.map +1 -0
- package/dist/DboBuilder/insert.js +129 -0
- package/dist/DboBuilder/insert.js.map +1 -0
- package/dist/DboBuilder/insertDataParse.d.ts +11 -0
- package/dist/DboBuilder/insertDataParse.d.ts.map +1 -0
- package/dist/DboBuilder/insertDataParse.js +283 -0
- package/dist/DboBuilder/insertDataParse.js.map +1 -0
- package/dist/DboBuilder.d.ts +10 -5
- package/dist/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder.js +121 -374
- package/dist/DboBuilder.js.map +1 -1
- package/dist/FileManager.d.ts.map +1 -1
- package/dist/FileManager.js +17 -12
- package/dist/FileManager.js.map +1 -1
- package/dist/Prostgles.d.ts +16 -14
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +7 -7
- package/dist/Prostgles.js.map +1 -1
- package/dist/PubSubManager.d.ts +1 -0
- package/dist/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager.js +2 -1
- package/dist/PubSubManager.js.map +1 -1
- package/dist/QueryBuilder.d.ts +7 -3
- package/dist/QueryBuilder.d.ts.map +1 -1
- package/dist/QueryBuilder.js +7 -2
- package/dist/QueryBuilder.js.map +1 -1
- package/dist/TableConfig.d.ts +1 -4
- package/dist/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig.js +16 -1
- package/dist/TableConfig.js.map +1 -1
- package/lib/DboBuilder/insert.d.ts +5 -0
- package/lib/DboBuilder/insert.d.ts.map +1 -0
- package/lib/DboBuilder/insert.js +128 -0
- package/lib/DboBuilder/insert.ts +138 -0
- package/lib/DboBuilder/insertDataParse.d.ts +11 -0
- package/lib/DboBuilder/insertDataParse.d.ts.map +1 -0
- package/lib/DboBuilder/insertDataParse.js +282 -0
- package/lib/DboBuilder/insertDataParse.ts +355 -0
- package/lib/DboBuilder.d.ts +10 -5
- package/lib/DboBuilder.d.ts.map +1 -1
- package/lib/DboBuilder.js +121 -374
- package/lib/DboBuilder.ts +138 -453
- package/lib/FileManager.d.ts.map +1 -1
- package/lib/FileManager.js +17 -12
- package/lib/FileManager.ts +18 -13
- package/lib/Prostgles.d.ts +16 -14
- package/lib/Prostgles.d.ts.map +1 -1
- package/lib/Prostgles.js +7 -7
- package/lib/Prostgles.ts +664 -650
- package/lib/PubSubManager.d.ts +1 -0
- package/lib/PubSubManager.d.ts.map +1 -1
- package/lib/PubSubManager.js +2 -1
- package/lib/PubSubManager.ts +3 -1
- package/lib/QueryBuilder.d.ts.map +1 -1
- package/lib/QueryBuilder.js +7 -2
- package/lib/QueryBuilder.ts +12 -7
- package/lib/SchemaWatchManager.ts +72 -0
- package/lib/TableConfig.d.ts +1 -4
- package/lib/TableConfig.d.ts.map +1 -1
- package/lib/TableConfig.js +16 -1
- package/lib/TableConfig.ts +21 -8
- package/package.json +3 -3
- package/tests/client/PID.txt +1 -1
- package/tests/client/package-lock.json +15 -15
- package/tests/client/package.json +1 -1
- package/tests/client/tsconfig.json +1 -1
- package/tests/client_only_queries.d.ts +1 -1
- package/tests/client_only_queries.d.ts.map +1 -1
- package/tests/client_only_queries.ts +1 -1
- package/tests/isomorphic_queries.d.ts +1 -1
- package/tests/isomorphic_queries.d.ts.map +1 -1
- package/tests/isomorphic_queries.js +49 -1
- package/tests/isomorphic_queries.ts +66 -4
- package/tests/manual_test/DBoGenerated.d.ts +398 -0
- package/tests/manual_test/index.d.ts +2 -0
- package/tests/manual_test/index.d.ts.map +1 -0
- package/tests/{config_test2 → manual_test}/index.html +14 -23
- package/tests/{config_test2 → manual_test}/index.js +21 -15
- package/tests/{config_test2 → manual_test}/index.ts +22 -17
- package/tests/{config_test2 → manual_test}/init.sql +36 -5
- package/tests/manual_test/package-lock.json +2483 -0
- package/tests/{config_test2 → manual_test}/package.json +6 -7
- package/tests/manual_test/tsconfig.json +21 -0
- package/tests/server/DBoGenerated.d.ts +70 -0
- package/tests/server/index.js +29 -2
- package/tests/server/index.ts +30 -4
- package/tests/server/init.sql +25 -0
- package/tests/server/package-lock.json +5 -5
- package/tests/config_test2/DBoGenerated.d.ts +0 -135
- package/tests/config_test2/tsconfig.json +0 -21
package/lib/PubSubManager.d.ts
CHANGED
|
@@ -117,6 +117,7 @@ export declare class PubSubManager {
|
|
|
117
117
|
schema_watch_func: string;
|
|
118
118
|
schema_watch_trigger: string;
|
|
119
119
|
};
|
|
120
|
+
static SCHEMA_ALTERING_QUERIES: string[];
|
|
120
121
|
static EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID: string;
|
|
121
122
|
prepareTriggers: () => Promise<boolean>;
|
|
122
123
|
isReady(): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PubSubManager.d.ts","sourceRoot":"","sources":["PubSubManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PubSubManager.d.ts","sourceRoot":"","sources":["PubSubManager.ts"],"names":[],"mappings":"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"}
|
package/lib/PubSubManager.js
CHANGED
|
@@ -721,7 +721,7 @@ class PubSubManager {
|
|
|
721
721
|
if (!this.appID)
|
|
722
722
|
throw "prepareTriggers failed: this.appID missing";
|
|
723
723
|
if (this.dboBuilder.prostgles.opts.watchSchema && !(await (0, Prostgles_1.isSuperUser)(this.db))) {
|
|
724
|
-
console.warn("prostgles watchSchema requires superuser db user. Will not watch");
|
|
724
|
+
console.warn("prostgles watchSchema requires superuser db user. Will not watch using event triggers");
|
|
725
725
|
}
|
|
726
726
|
try {
|
|
727
727
|
await this.db.any(`
|
|
@@ -1378,6 +1378,7 @@ PubSubManager.create = async (options) => {
|
|
|
1378
1378
|
const res = new PubSubManager(options);
|
|
1379
1379
|
return await res.init();
|
|
1380
1380
|
};
|
|
1381
|
+
PubSubManager.SCHEMA_ALTERING_QUERIES = ['CREATE TABLE', 'ALTER TABLE', 'DROP TABLE', 'CREATE VIEW', 'DROP VIEW', 'ALTER VIEW', 'CREATE TABLE AS', 'SELECT INTO'];
|
|
1381
1382
|
PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID = "prostgles internal query that should be excluded from ";
|
|
1382
1383
|
function omitKeys(obj, exclude) {
|
|
1383
1384
|
return pickKeys(obj, (0, prostgles_types_1.getKeys)(obj).filter(k => !exclude.includes(k)));
|
package/lib/PubSubManager.ts
CHANGED
|
@@ -842,12 +842,14 @@ export class PubSubManager {
|
|
|
842
842
|
schema_watch_trigger: "prostgles_schema_watch_trigger_new"
|
|
843
843
|
}
|
|
844
844
|
|
|
845
|
+
static SCHEMA_ALTERING_QUERIES = ['CREATE TABLE', 'ALTER TABLE', 'DROP TABLE', 'CREATE VIEW', 'DROP VIEW', 'ALTER VIEW', 'CREATE TABLE AS', 'SELECT INTO'];
|
|
846
|
+
|
|
845
847
|
static EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID = "prostgles internal query that should be excluded from "
|
|
846
848
|
prepareTriggers = async () => {
|
|
847
849
|
// SELECT * FROM pg_catalog.pg_event_trigger WHERE evtname
|
|
848
850
|
if (!this.appID) throw "prepareTriggers failed: this.appID missing";
|
|
849
851
|
if (this.dboBuilder.prostgles.opts.watchSchema && !(await isSuperUser(this.db))) {
|
|
850
|
-
console.warn("prostgles watchSchema requires superuser db user. Will not watch")
|
|
852
|
+
console.warn("prostgles watchSchema requires superuser db user. Will not watch using event triggers")
|
|
851
853
|
}
|
|
852
854
|
|
|
853
855
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilder.d.ts","sourceRoot":"","sources":["QueryBuilder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"QueryBuilder.d.ts","sourceRoot":"","sources":["QueryBuilder.ts"],"names":[],"mappings":"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"}
|
package/lib/QueryBuilder.js
CHANGED
|
@@ -1189,7 +1189,9 @@ function makeQuery(_this, q, depth = 0, joinFields = [], selectParams = {}) {
|
|
|
1189
1189
|
return (0, prostgles_types_1.asName)(`agg_${s.alias}`) + " AS " + (0, prostgles_types_1.asName)(s.alias);
|
|
1190
1190
|
return (0, prostgles_types_1.asName)(s.alias);
|
|
1191
1191
|
}).concat(q2.joins?.map(j => (0, prostgles_types_1.asName)(j.table)) ?? []).join(", ");
|
|
1192
|
-
const _iiQ = makeQuery(_this, q2, depth + 1,
|
|
1192
|
+
const _iiQ = makeQuery(_this, q2, depth + 1,
|
|
1193
|
+
// on.map(([c1, c2]) => asName(c2)),
|
|
1194
|
+
on.flatMap(cond => cond.map(([c1, c2]) => (0, prostgles_types_1.asName)(c2))), selectParams);
|
|
1193
1195
|
// const iiQ = flat(_iiQ.split("\n")); // prettify for debugging
|
|
1194
1196
|
// console.log(_iiQ)
|
|
1195
1197
|
const iiQ = [_iiQ];
|
|
@@ -1207,10 +1209,13 @@ function makeQuery(_this, q, depth = 0, joinFields = [], selectParams = {}) {
|
|
|
1207
1209
|
`) ${thisAlias}`
|
|
1208
1210
|
];
|
|
1209
1211
|
}
|
|
1212
|
+
const getJoinCondition = (t1Alias, t2Alias, on) => {
|
|
1213
|
+
return on.map(cond => cond.map(([c1, c2]) => `${t1Alias}.${(0, prostgles_types_1.asName)(getPrevColName(c1))} = ${t2Alias}.${(0, prostgles_types_1.asName)(getThisColName(c2))} `).join(" AND ")).join(" OR ");
|
|
1214
|
+
};
|
|
1210
1215
|
let jres = [
|
|
1211
1216
|
`${q2.isLeftJoin ? "LEFT" : "INNER"} JOIN `,
|
|
1212
1217
|
...iQ,
|
|
1213
|
-
`ON ${
|
|
1218
|
+
`ON ${getJoinCondition(prevAlias, thisAlias, on)}`
|
|
1214
1219
|
];
|
|
1215
1220
|
return jres;
|
|
1216
1221
|
});
|
package/lib/QueryBuilder.ts
CHANGED
|
@@ -1436,7 +1436,8 @@ export function makeQuery(
|
|
|
1436
1436
|
_this,
|
|
1437
1437
|
q2,
|
|
1438
1438
|
depth + 1,
|
|
1439
|
-
on.map(([c1, c2]) => asName(c2)),
|
|
1439
|
+
// on.map(([c1, c2]) => asName(c2)),
|
|
1440
|
+
on.flatMap(cond => cond.map(([c1, c2]) => asName(c2))),
|
|
1440
1441
|
selectParams,
|
|
1441
1442
|
);
|
|
1442
1443
|
// const iiQ = flat(_iiQ.split("\n")); // prettify for debugging
|
|
@@ -1457,14 +1458,18 @@ export function makeQuery(
|
|
|
1457
1458
|
, `) ${thisAlias}`
|
|
1458
1459
|
]
|
|
1459
1460
|
}
|
|
1460
|
-
|
|
1461
|
+
|
|
1462
|
+
const getJoinCondition = (t1Alias: string, t2Alias: string, on: [string, string][][]) => {
|
|
1463
|
+
return on.map(cond => cond.map(([c1, c2]) =>
|
|
1464
|
+
`${t1Alias}.${asName(getPrevColName(c1))} = ${t2Alias}.${asName(getThisColName(c2))} `
|
|
1465
|
+
).join(" AND ")
|
|
1466
|
+
).join(" OR ")
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
let jres: string[] = [
|
|
1461
1470
|
`${q2.isLeftJoin? "LEFT" : "INNER"} JOIN `
|
|
1462
1471
|
, ...iQ
|
|
1463
|
-
, `ON ${
|
|
1464
|
-
on.map(([c1, c2]) =>
|
|
1465
|
-
`${prevAlias}.${asName(getPrevColName(c1))} = ${thisAlias}.${asName(getThisColName(c2))} `
|
|
1466
|
-
).join(" AND ")
|
|
1467
|
-
}`
|
|
1472
|
+
, `ON ${getJoinCondition(prevAlias, thisAlias, on)}`
|
|
1468
1473
|
];
|
|
1469
1474
|
return jres;
|
|
1470
1475
|
});
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// import PubSubManager from "./PubSubManager";
|
|
2
|
+
import { DboBuilder, isPlainObject } from "./DboBuilder";
|
|
3
|
+
import { Prostgles, ProstglesInitOptions } from "./Prostgles";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Prostgles creates an internal schema object that is used in providing core functionality: handles to explore and edit data within the database
|
|
7
|
+
* This schema object is created once on startup
|
|
8
|
+
* To allow reloading of internal schema without a full application restart we use schema watch
|
|
9
|
+
* Schema watch triggers internal schema rebuild every time the schema changes
|
|
10
|
+
* There are two methods for identifying a schema change:
|
|
11
|
+
* 1) Create an EVENT TRIGGER - most resilient option but requires a superuser. It fires every time an sql command of a certain type is fired.
|
|
12
|
+
* Example sql command signatures: 'CREATE TABLE', 'ALTER TABLE', 'DROP TABLE', 'CREATE VIEW', 'DROP VIEW', 'ALTER VIEW', 'CREATE TABLE AS', 'SELECT INTO'
|
|
13
|
+
* 2) Check SQL queries executed by this prostgles instance. This option is used as a fallback to option 1 in cases where there is no superuser
|
|
14
|
+
*
|
|
15
|
+
* Some schema altering queries are executed by prostgles on startup. To prevent an infinite loop a specific
|
|
16
|
+
* piece of text (PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID) is inserted in these queries to then disregard them from schema watch
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
export class SchemaWatchManager {
|
|
20
|
+
|
|
21
|
+
checkInterval?: NodeJS.Timeout;
|
|
22
|
+
prostgles: Prostgles;
|
|
23
|
+
|
|
24
|
+
constructor(prgl: Prostgles){
|
|
25
|
+
this.prostgles = prgl;
|
|
26
|
+
if(prgl.opts.watchSchema){
|
|
27
|
+
|
|
28
|
+
if(isPlainObject(prgl.opts.watchSchemaType) && prgl.opts.watchSchemaType.checkIntervalMillis){
|
|
29
|
+
|
|
30
|
+
clearInterval(this.checkInterval);
|
|
31
|
+
this.checkInterval = setInterval(async () => {
|
|
32
|
+
const dbuilder = await DboBuilder.create(this as any);
|
|
33
|
+
if(dbuilder.tsTypesDefinition !== this.prostgles.dboBuilder.tsTypesDefinition){
|
|
34
|
+
this.prostgles.refreshDBO();
|
|
35
|
+
this.prostgles.init(this.prostgles.opts.onReady);
|
|
36
|
+
}
|
|
37
|
+
}, prgl.opts.watchSchemaType.checkIntervalMillis)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// async onSchemaChange(event: { command: string; query: string }){
|
|
43
|
+
// const { watchSchema, watchSchemaType, onReady, tsGeneratedTypesDir } = this.opts as any;
|
|
44
|
+
// if(watchSchema && this.loaded){
|
|
45
|
+
// console.log("Schema changed");
|
|
46
|
+
// const { query } = event;
|
|
47
|
+
// if(typeof query === "string" && query.includes(PubSubManag.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID)){
|
|
48
|
+
// console.log("Schema change event excluded from triggers due to EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID");
|
|
49
|
+
// return;
|
|
50
|
+
// }
|
|
51
|
+
|
|
52
|
+
// if(typeof watchSchema === "function"){
|
|
53
|
+
// /* Only call the provided func */
|
|
54
|
+
// watchSchema(event);
|
|
55
|
+
|
|
56
|
+
// } else if(watchSchema === "hotReloadMode") {
|
|
57
|
+
// if(tsGeneratedTypesDir) {
|
|
58
|
+
// /* Hot reload integration. Will only touch tsGeneratedTypesDir */
|
|
59
|
+
// console.log("watchSchema: Re-writing TS schema");
|
|
60
|
+
|
|
61
|
+
// await this.refreshDBO();
|
|
62
|
+
// this.writeDBSchema(true);
|
|
63
|
+
// }
|
|
64
|
+
|
|
65
|
+
// } else if(watchSchema === true || isPlainObject(watchSchemaType) && "checkIntervalMillis" in watchSchemaType){
|
|
66
|
+
// /* Full re-init. Sockets must reconnect */
|
|
67
|
+
// console.log("watchSchema: Full re-initialisation")
|
|
68
|
+
// this.init(onReady);
|
|
69
|
+
// }
|
|
70
|
+
// }
|
|
71
|
+
// }
|
|
72
|
+
}
|
package/lib/TableConfig.d.ts
CHANGED
|
@@ -93,10 +93,7 @@ declare type ReferencedColumn = {
|
|
|
93
93
|
declare type JoinDef = {
|
|
94
94
|
sourceTable: string;
|
|
95
95
|
targetTable: string;
|
|
96
|
-
|
|
97
|
-
* E.g.: [sourceCol: string, targetCol: string][];
|
|
98
|
-
*/
|
|
99
|
-
on: [string, string][];
|
|
96
|
+
on: JoinInfo["paths"][number]["on"];
|
|
100
97
|
};
|
|
101
98
|
/**
|
|
102
99
|
* Used in specifying a join path to a table. This column name can then be used in select
|
package/lib/TableConfig.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableConfig.d.ts","sourceRoot":"","sources":["TableConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TableConfig.d.ts","sourceRoot":"","sources":["TableConfig.ts"],"names":[],"mappings":"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"}
|
package/lib/TableConfig.js
CHANGED
|
@@ -222,8 +222,11 @@ class TableConfigurator {
|
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
224
|
if ("constraints" in tableConf && tableConf.constraints) {
|
|
225
|
+
const constraints = await getTableConstraings(this.db, tableName);
|
|
225
226
|
(0, prostgles_types_1.getKeys)(tableConf.constraints).map(constraintName => {
|
|
226
|
-
|
|
227
|
+
if (!constraints.some(c => c.conname === constraintName)) {
|
|
228
|
+
queries.push(`ALTER TABLE ${(0, prostgles_types_1.asName)(tableName)} ADD CONSTRAINT ${(0, prostgles_types_1.asName)(constraintName)} ${tableConf.constraints[constraintName]} ;`);
|
|
229
|
+
}
|
|
227
230
|
});
|
|
228
231
|
}
|
|
229
232
|
if ("indexes" in tableConf && tableConf.indexes) {
|
|
@@ -253,3 +256,15 @@ async function columnExists(args) {
|
|
|
253
256
|
LIMIT 1;
|
|
254
257
|
`))?.column_name);
|
|
255
258
|
}
|
|
259
|
+
function getTableConstraings(db, tableName) {
|
|
260
|
+
return db.any(`
|
|
261
|
+
SELECT con.*, pg_get_constraintdef(con.oid)
|
|
262
|
+
FROM pg_catalog.pg_constraint con
|
|
263
|
+
INNER JOIN pg_catalog.pg_class rel
|
|
264
|
+
ON rel.oid = con.conrelid
|
|
265
|
+
INNER JOIN pg_catalog.pg_namespace nsp
|
|
266
|
+
ON nsp.oid = connamespace
|
|
267
|
+
WHERE 1=1
|
|
268
|
+
AND nsp.nspname = current_schema
|
|
269
|
+
AND rel.relname = ` + "${tableName}", { tableName });
|
|
270
|
+
}
|
package/lib/TableConfig.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { doesNotMatch } from "assert";
|
|
1
2
|
import { getKeys, asName, AnyObject, TableInfo } from "prostgles-types";
|
|
2
|
-
import { isPlainObject, JoinInfo } from "./DboBuilder";
|
|
3
|
+
import { DboBuilder, isPlainObject, JoinInfo } from "./DboBuilder";
|
|
3
4
|
import { ALLOWED_EXTENSION, ALLOWED_CONTENT_TYPE } from "./FileManager";
|
|
4
|
-
import { DB, DBHandlerServer, Prostgles } from "./Prostgles";
|
|
5
|
+
import { DB, DBHandlerServer, Joins, Prostgles } from "./Prostgles";
|
|
5
6
|
import { asValue } from "./PubSubManager";
|
|
6
7
|
|
|
7
8
|
type ColExtraInfo = {
|
|
@@ -128,11 +129,7 @@ type ReferencedColumn = {
|
|
|
128
129
|
type JoinDef = {
|
|
129
130
|
sourceTable: string;
|
|
130
131
|
targetTable: string;
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* E.g.: [sourceCol: string, targetCol: string][];
|
|
134
|
-
*/
|
|
135
|
-
on: [string, string][];
|
|
132
|
+
on: JoinInfo["paths"][number]["on"];
|
|
136
133
|
}
|
|
137
134
|
|
|
138
135
|
/**
|
|
@@ -429,8 +426,11 @@ export default class TableConfigurator<LANG_IDS = { en: 1 }> {
|
|
|
429
426
|
}
|
|
430
427
|
}
|
|
431
428
|
if ("constraints" in tableConf && tableConf.constraints) {
|
|
429
|
+
const constraints = await getTableConstraings(this.db, tableName);
|
|
432
430
|
getKeys(tableConf.constraints).map(constraintName => {
|
|
433
|
-
|
|
431
|
+
if(!constraints.some(c => c.conname === constraintName)){
|
|
432
|
+
queries.push(`ALTER TABLE ${asName(tableName)} ADD CONSTRAINT ${asName(constraintName)} ${tableConf.constraints![constraintName]} ;`);
|
|
433
|
+
}
|
|
434
434
|
});
|
|
435
435
|
}
|
|
436
436
|
if ("indexes" in tableConf && tableConf.indexes) {
|
|
@@ -461,4 +461,17 @@ async function columnExists(args: { tableName: string; colName: string; db: DB }
|
|
|
461
461
|
WHERE table_name=${asValue(tableName)} and column_name=${asValue(colName)}
|
|
462
462
|
LIMIT 1;
|
|
463
463
|
`))?.column_name);
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
function getTableConstraings(db: DB, tableName: string): Promise<{ oid: number; conname: string; definition: string; }[]>{
|
|
467
|
+
return db.any(`
|
|
468
|
+
SELECT con.*, pg_get_constraintdef(con.oid)
|
|
469
|
+
FROM pg_catalog.pg_constraint con
|
|
470
|
+
INNER JOIN pg_catalog.pg_class rel
|
|
471
|
+
ON rel.oid = con.conrelid
|
|
472
|
+
INNER JOIN pg_catalog.pg_namespace nsp
|
|
473
|
+
ON nsp.oid = connamespace
|
|
474
|
+
WHERE 1=1
|
|
475
|
+
AND nsp.nspname = current_schema
|
|
476
|
+
AND rel.relname = ` + "${tableName}", { tableName })
|
|
464
477
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prostgles-server",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.188",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"bluebird": "^3.7.2",
|
|
30
30
|
"file-type": "^16.5.3",
|
|
31
31
|
"pg-promise": "^10.11.1",
|
|
32
|
-
"prostgles-types": "^1.5.
|
|
32
|
+
"prostgles-types": "^1.5.160",
|
|
33
33
|
"sharp": "^0.30.5"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
@@ -37,6 +37,6 @@
|
|
|
37
37
|
"@types/bluebird": "^3.5.36",
|
|
38
38
|
"@types/node": "^14.14.35",
|
|
39
39
|
"@types/sharp": "^0.30.2",
|
|
40
|
-
"typescript": "^4.7.
|
|
40
|
+
"typescript": "^4.7.4"
|
|
41
41
|
}
|
|
42
42
|
}
|
package/tests/client/PID.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
49808
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@types/node": "^14.14.16",
|
|
13
|
-
"prostgles-client": "^1.5.
|
|
13
|
+
"prostgles-client": "^1.5.161",
|
|
14
14
|
"prostgles-types": "^1.5.68",
|
|
15
15
|
"socket.io-client": "^4.5.1"
|
|
16
16
|
}
|
|
@@ -67,17 +67,17 @@
|
|
|
67
67
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
|
68
68
|
},
|
|
69
69
|
"node_modules/prostgles-client": {
|
|
70
|
-
"version": "1.5.
|
|
71
|
-
"resolved": "https://registry.npmjs.org/prostgles-client/-/prostgles-client-1.5.
|
|
72
|
-
"integrity": "sha512
|
|
70
|
+
"version": "1.5.161",
|
|
71
|
+
"resolved": "https://registry.npmjs.org/prostgles-client/-/prostgles-client-1.5.161.tgz",
|
|
72
|
+
"integrity": "sha512-/1NHXfyKtoPLquNjv8eWIvk0ezjogaL3QRJrGpUiH6vt74MFVQ5FRwtrct37fj0fBwsKS4HrHduwh33Ohv1ycw==",
|
|
73
73
|
"dependencies": {
|
|
74
|
-
"prostgles-types": "^1.5.
|
|
74
|
+
"prostgles-types": "^1.5.160"
|
|
75
75
|
}
|
|
76
76
|
},
|
|
77
77
|
"node_modules/prostgles-types": {
|
|
78
|
-
"version": "1.5.
|
|
79
|
-
"resolved": "https://registry.npmjs.org/prostgles-types/-/prostgles-types-1.5.
|
|
80
|
-
"integrity": "sha512-
|
|
78
|
+
"version": "1.5.160",
|
|
79
|
+
"resolved": "https://registry.npmjs.org/prostgles-types/-/prostgles-types-1.5.160.tgz",
|
|
80
|
+
"integrity": "sha512-ycX5dqkrf73qAvAylhn6jHsL0eBq3/Fmky3YEIm7vTqJFJfS+5EmFPxF4CdjPWs3WHZEhuGCoXlZZo/rWFK0eQ=="
|
|
81
81
|
},
|
|
82
82
|
"node_modules/socket.io-client": {
|
|
83
83
|
"version": "4.5.1",
|
|
@@ -176,17 +176,17 @@
|
|
|
176
176
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
|
177
177
|
},
|
|
178
178
|
"prostgles-client": {
|
|
179
|
-
"version": "1.5.
|
|
180
|
-
"resolved": "https://registry.npmjs.org/prostgles-client/-/prostgles-client-1.5.
|
|
181
|
-
"integrity": "sha512
|
|
179
|
+
"version": "1.5.161",
|
|
180
|
+
"resolved": "https://registry.npmjs.org/prostgles-client/-/prostgles-client-1.5.161.tgz",
|
|
181
|
+
"integrity": "sha512-/1NHXfyKtoPLquNjv8eWIvk0ezjogaL3QRJrGpUiH6vt74MFVQ5FRwtrct37fj0fBwsKS4HrHduwh33Ohv1ycw==",
|
|
182
182
|
"requires": {
|
|
183
|
-
"prostgles-types": "^1.5.
|
|
183
|
+
"prostgles-types": "^1.5.160"
|
|
184
184
|
}
|
|
185
185
|
},
|
|
186
186
|
"prostgles-types": {
|
|
187
|
-
"version": "1.5.
|
|
188
|
-
"resolved": "https://registry.npmjs.org/prostgles-types/-/prostgles-types-1.5.
|
|
189
|
-
"integrity": "sha512-
|
|
187
|
+
"version": "1.5.160",
|
|
188
|
+
"resolved": "https://registry.npmjs.org/prostgles-types/-/prostgles-types-1.5.160.tgz",
|
|
189
|
+
"integrity": "sha512-ycX5dqkrf73qAvAylhn6jHsL0eBq3/Fmky3YEIm7vTqJFJfS+5EmFPxF4CdjPWs3WHZEhuGCoXlZZo/rWFK0eQ=="
|
|
190
190
|
},
|
|
191
191
|
"socket.io-client": {
|
|
192
192
|
"version": "4.5.1",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DBHandlerClient, Auth } from "./client/index";
|
|
1
|
+
import type { DBHandlerClient, Auth } from "./client/index";
|
|
2
2
|
import { DBSchemaTable } from "./client/node_modules/prostgles-types/dist";
|
|
3
3
|
export default function client_only(db: DBHandlerClient, auth: Auth, log: (...args: any[]) => any, methods: any, tableSchema: DBSchemaTable[]): Promise<void>;
|
|
4
4
|
//# sourceMappingURL=client_only_queries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client_only_queries.d.ts","sourceRoot":"","sources":["client_only_queries.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"client_only_queries.d.ts","sourceRoot":"","sources":["client_only_queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAa,MAAM,4CAA4C,CAAC;AAGtF,wBAA8B,WAAW,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,OAAO,KAAA,EAAE,WAAW,EAAE,aAAa,EAAE,iBA6S7I"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { strict as assert } from 'assert';
|
|
2
2
|
|
|
3
|
-
import { DBHandlerClient, Auth } from "./client/index";
|
|
3
|
+
import type { DBHandlerClient, Auth } from "./client/index";
|
|
4
4
|
import { DBSchemaTable, isDefined } from "./client/node_modules/prostgles-types/dist";
|
|
5
5
|
import { tryRun, tryRunP } from './isomorphic_queries';
|
|
6
6
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DBHandlerServer } from "../dist/Prostgles";
|
|
2
|
-
import { DBHandlerClient } from "./client/index";
|
|
2
|
+
import type { DBHandlerClient } from "./client/index";
|
|
3
3
|
export declare function tryRun(desc: string, func: () => any, log?: Function): Promise<void>;
|
|
4
4
|
export declare function tryRunP(desc: string, func: (resolve: any, reject: any) => any, log?: Function): Promise<unknown>;
|
|
5
5
|
export default function isomorphic(db: Partial<DBHandlerServer> | Partial<DBHandlerClient>): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isomorphic_queries.d.ts","sourceRoot":"","sources":["isomorphic_queries.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"isomorphic_queries.d.ts","sourceRoot":"","sources":["isomorphic_queries.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,iBAYzE;AACD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,oBAW7F;AAED,wBAA8B,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,iBAovB/F"}
|
|
@@ -31,8 +31,9 @@ async function tryRun(desc, func, log) {
|
|
|
31
31
|
await func();
|
|
32
32
|
}
|
|
33
33
|
catch (err) {
|
|
34
|
-
console.error(desc + " FAILED:");
|
|
34
|
+
console.error(desc + " FAILED:", err);
|
|
35
35
|
log?.("FAIL: ", err);
|
|
36
|
+
console.trace(err);
|
|
36
37
|
setTimeout(() => {
|
|
37
38
|
throw err;
|
|
38
39
|
}, 2000);
|
|
@@ -295,6 +296,7 @@ async function isomorphic(db) {
|
|
|
295
296
|
});
|
|
296
297
|
await tryRunP("subscribe", async (resolve, reject) => {
|
|
297
298
|
await db.various.insert({ id: 99 });
|
|
299
|
+
console.log("subscribing");
|
|
298
300
|
const sub = await db.various.subscribe({ id: 99 }, {}, async (items) => {
|
|
299
301
|
const item = items[0];
|
|
300
302
|
if (item && item.name === "zz3zz3") {
|
|
@@ -494,6 +496,17 @@ async function isomorphic(db) {
|
|
|
494
496
|
// const _data = fs.readFileSync(__dirname + "/server/media/"+file.name);
|
|
495
497
|
assert_1.strict.equal(name, "somename.txt");
|
|
496
498
|
});
|
|
499
|
+
// await tryRun("Media col insert", async () => {
|
|
500
|
+
// const resp = await db.items_with_media_cols.insert({ desc: "description", file_id: mediaFile }, { returning: "*" });
|
|
501
|
+
// assert.equal(
|
|
502
|
+
// +(await db.items_with_media_cols.count(resp)),
|
|
503
|
+
// 1
|
|
504
|
+
// );
|
|
505
|
+
// assert.equal(
|
|
506
|
+
// +(await db.media.count({ original_name: 'sample_file.txt', id: resp.file_id })),
|
|
507
|
+
// 1
|
|
508
|
+
// );
|
|
509
|
+
// });
|
|
497
510
|
});
|
|
498
511
|
await tryRun("Exists filter example", async () => {
|
|
499
512
|
const fo = await db.items.findOne(), f = await db.items.find();
|
|
@@ -618,5 +631,40 @@ async function isomorphic(db) {
|
|
|
618
631
|
throw "$rowhash query failed";
|
|
619
632
|
}
|
|
620
633
|
});
|
|
634
|
+
await tryRun("Reference column nested insert", async () => {
|
|
635
|
+
const nestedRow = { name: "nested_insert" };
|
|
636
|
+
const parentRow = { name: "parent insert" };
|
|
637
|
+
const pr = await db.items2.insert({ items_id: nestedRow, ...parentRow }, { returning: "*" });
|
|
638
|
+
const childRows = await db.items.find(nestedRow);
|
|
639
|
+
assert_1.strict.equal(childRows.length, 1);
|
|
640
|
+
assert_1.strict.deepStrictEqual(await db.items2.findOne(parentRow), { hh: null, id: pr.id, ...parentRow, items_id: childRows[0].id });
|
|
641
|
+
});
|
|
642
|
+
await tryRun("Reference column deep nested insert", async () => {
|
|
643
|
+
const pr = await db.items4a.insert({
|
|
644
|
+
items_id: { name: "it" },
|
|
645
|
+
items2_id: { name: "it2", items_id: { name: "it" } },
|
|
646
|
+
name: "it4a"
|
|
647
|
+
}, { returning: "*" });
|
|
648
|
+
const itemsCount = await db.items.count({ name: "it" });
|
|
649
|
+
const items2Count = await db.items2.count({ name: "it2" });
|
|
650
|
+
const items4aCount = await db.items4a.count({ name: "it4a" });
|
|
651
|
+
assert_1.strict.equal(+itemsCount, 2);
|
|
652
|
+
assert_1.strict.equal(+items2Count, 1);
|
|
653
|
+
assert_1.strict.equal(+items4aCount, 1);
|
|
654
|
+
});
|
|
655
|
+
await tryRun("Multi reference column nested insert", async () => {
|
|
656
|
+
await db.items_multi.insert({
|
|
657
|
+
items0_id: { name: "multi" },
|
|
658
|
+
items1_id: { name: "multi" },
|
|
659
|
+
items2_id: { name: "multi" },
|
|
660
|
+
items3_id: { name: "multi" },
|
|
661
|
+
name: "root_multi"
|
|
662
|
+
}, { returning: "*" });
|
|
663
|
+
const itemsCount = await db.items.count({ name: "multi" });
|
|
664
|
+
const multiItem = await db.items_multi.findOne({ name: "root_multi" }, { select: { "*": 1, items: "*" } });
|
|
665
|
+
assert_1.strict.equal(+itemsCount, 4);
|
|
666
|
+
assert_1.strict.equal(multiItem?.name, "root_multi");
|
|
667
|
+
assert_1.strict.equal(multiItem?.items.filter(d => d.name === "multi").length, 4);
|
|
668
|
+
});
|
|
621
669
|
}
|
|
622
670
|
exports.default = isomorphic;
|