prostgles-server 3.0.148 → 3.0.150
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/DBSchemaBuilder.d.ts.map +1 -1
- package/dist/DBSchemaBuilder.js +8 -1
- package/dist/DBSchemaBuilder.js.map +1 -1
- package/dist/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
- package/dist/TableConfig/getColumnDefinitionQuery.js +1 -10
- package/dist/TableConfig/getColumnDefinitionQuery.js.map +1 -1
- package/lib/DBSchemaBuilder.d.ts.map +1 -1
- package/lib/DBSchemaBuilder.js +8 -1
- package/lib/DBSchemaBuilder.ts +12 -3
- package/lib/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
- package/lib/TableConfig/getColumnDefinitionQuery.js +1 -10
- package/lib/TableConfig/getColumnDefinitionQuery.ts +3 -12
- package/package.json +2 -2
- package/tests/client/PID.txt +1 -1
- package/tests/server/package-lock.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DBSchemaBuilder.d.ts","sourceRoot":"","sources":["../lib/DBSchemaBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGvF,OAAO,EAAE,eAAe,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"DBSchemaBuilder.d.ts","sourceRoot":"","sources":["../lib/DBSchemaBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGvF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAsD,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,mBAAmB,EAAiB,gBAAgB,EAAE,eAAe,EAAI,MAAM,iBAAiB,CAAC;AAI1G,eAAO,MAAM,WAAW,eAAgB,UAAU,KAAG,MAoDpD,CAAA;AAED,KAAK,yBAAyB,CAAC,MAAM,GAAG,IAAI,IAAI,MAAM,SAAS,QAAQ,GAAE;KACtE,QAAQ,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,GAClE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GACxC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;CAC5C,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEjC,MAAM,MAAM,aAAa,CAAC,MAAM,GAAG,IAAI,IAAI,MAAM,SAAS,QAAQ,GAAE,CAChE,yBAAyB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,CAC3G,GACD,eAAe,CAAC;AAElB,MAAM,MAAM,iBAAiB,CAAC,MAAM,GAAG,IAAI,IAAI,MAAM,SAAS,QAAQ,GAAE,CACpE,mBAAmB,GACnB;KACC,QAAQ,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,GAC9B,mBAAmB,GACnB,CACA,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,GACtC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GACpD,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CACxD;CACJ,CACF,GAAG,CACA,mBAAmB,GACnB,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,GAAG,mBAAmB,CAAC,CAC3E,CAAC"}
|
package/dist/DBSchemaBuilder.js
CHANGED
|
@@ -7,11 +7,18 @@ const DboBuilder_1 = require("./DboBuilder");
|
|
|
7
7
|
const validation_1 = require("./JSONBValidation/validation");
|
|
8
8
|
const getDBSchema = (dboBuilder) => {
|
|
9
9
|
const tables = [];
|
|
10
|
+
const getColTypeForDBSchema = (udt_name) => {
|
|
11
|
+
if (udt_name === "interval") {
|
|
12
|
+
const units = ["years", "months", "days", "hours", "minutes", "seconds", "milliseconds"];
|
|
13
|
+
return `{ ${units.map(u => `${u}?: number;`).join(" ")} }`;
|
|
14
|
+
}
|
|
15
|
+
return (0, DboBuilder_1.postgresToTsType)(udt_name);
|
|
16
|
+
};
|
|
10
17
|
/** Tables and columns are sorted to avoid infinite loops due to changing order */
|
|
11
18
|
dboBuilder.tablesOrViews?.slice(0).sort((a, b) => a.name.localeCompare(b.name)).forEach(tov => {
|
|
12
19
|
const cols = tov.columns.slice(0).sort((a, b) => a.name.localeCompare(b.name));
|
|
13
20
|
const getColType = (c) => {
|
|
14
|
-
let type = (c.is_nullable ? "null | " : "") + (
|
|
21
|
+
let type = (c.is_nullable ? "null | " : "") + getColTypeForDBSchema(c.udt_name) + ";";
|
|
15
22
|
const colConf = dboBuilder.prostgles.tableConfigurator?.getColumnConfig(tov.name, c.name);
|
|
16
23
|
if (colConf) {
|
|
17
24
|
if ((0, prostgles_types_1.isObject)(colConf) && (colConf.jsonbSchema || colConf.jsonbSchemaType)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DBSchemaBuilder.js","sourceRoot":"","sources":["../lib/DBSchemaBuilder.ts"],"names":[],"mappings":";;;AAAA,qDAAuF;AACvF,wBAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"DBSchemaBuilder.js","sourceRoot":"","sources":["../lib/DBSchemaBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getColumnDefinitionQuery.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getColumnDefinitionQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,SAAS,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"getColumnDefinitionQuery.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/getColumnDefinitionQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,+CAAsD,IAAI,KAAG,QAAQ,MAAM,GAAG,SAAS,CAyE3H,CAAA;AAGD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AACF,eAAO,MAAM,eAAe;QAAyB,EAAE,GAAG,UAAU,KAAK,CAAC,EAAE,CAAC;WAAS,MAAM;MAAK,QAAQ,iBAAiB,EAAE,CAS3H,CAAA"}
|
|
@@ -4,7 +4,6 @@ exports.getTableColumns = exports.getColumnDefinitionQuery = void 0;
|
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
const PubSubManager_1 = require("../PubSubManager/PubSubManager");
|
|
6
6
|
const validate_jsonb_schema_sql_1 = require("../JSONBValidation/validate_jsonb_schema_sql");
|
|
7
|
-
const getConstraintDefinitionQueries_1 = require("./getConstraintDefinitionQueries");
|
|
8
7
|
/**
|
|
9
8
|
* Column create statement for a given config
|
|
10
9
|
*/
|
|
@@ -60,15 +59,7 @@ const getColumnDefinitionQuery = async ({ colConf: colConfRaw, column, db, table
|
|
|
60
59
|
throw failedDefault(e);
|
|
61
60
|
}
|
|
62
61
|
}
|
|
63
|
-
|
|
64
|
-
const { val: nameEnding } = await db.one("SELECT MD5( ${table} || ${column} || ${schema}) as val", { table: table, column, schema: jsonbSchemaStr });
|
|
65
|
-
const constraintName = namePreffix + nameEnding;
|
|
66
|
-
const colConstraints = await (0, getConstraintDefinitionQueries_1.getColConstraints)({ db, table, column });
|
|
67
|
-
const existingNonMatchingConstraints = colConstraints.filter(c => c.name.startsWith(namePreffix) && c.name !== constraintName);
|
|
68
|
-
for await (const oldCons of existingNonMatchingConstraints) {
|
|
69
|
-
await db.any(`ALTER TABLE ${(0, prostgles_types_1.asName)(table)} DROP CONSTRAINT ${(0, prostgles_types_1.asName)(oldCons.name)};`);
|
|
70
|
-
}
|
|
71
|
-
return ` ${colNameEsc} ${getColTypeDef(colConf, "JSONB")}, CONSTRAINT ${(0, prostgles_types_1.asName)(constraintName)} CHECK(${validate_jsonb_schema_sql_1.VALIDATE_SCHEMA_FUNCNAME}(${jsonbSchemaStr}, ${colNameEsc}, ${(0, PubSubManager_1.asValue)({ table, column })} ))`;
|
|
62
|
+
return ` ${colNameEsc} ${getColTypeDef(colConf, "JSONB")} CHECK(${validate_jsonb_schema_sql_1.VALIDATE_SCHEMA_FUNCNAME}(${jsonbSchemaStr}, ${colNameEsc}, ${(0, PubSubManager_1.asValue)({ table, column })} ))`;
|
|
72
63
|
}
|
|
73
64
|
else if ("enum" in colConf) {
|
|
74
65
|
if (!colConf.enum?.length)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getColumnDefinitionQuery.js","sourceRoot":"","sources":["../../lib/TableConfig/getColumnDefinitionQuery.ts"],"names":[],"mappings":";;;AAAA,qDAAmD;AAEnD,kEAAyD;AACzD,4FAAwF;
|
|
1
|
+
{"version":3,"file":"getColumnDefinitionQuery.js","sourceRoot":"","sources":["../../lib/TableConfig/getColumnDefinitionQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DBSchemaBuilder.d.ts","sourceRoot":"","sources":["DBSchemaBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGvF,OAAO,EAAE,eAAe,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"DBSchemaBuilder.d.ts","sourceRoot":"","sources":["DBSchemaBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGvF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAsD,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,mBAAmB,EAAiB,gBAAgB,EAAE,eAAe,EAAI,MAAM,iBAAiB,CAAC;AAI1G,eAAO,MAAM,WAAW,eAAgB,UAAU,KAAG,MAoDpD,CAAA;AAED,KAAK,yBAAyB,CAAC,MAAM,GAAG,IAAI,IAAI,MAAM,SAAS,QAAQ,GAAE;KACtE,QAAQ,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,GAClE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GACxC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;CAC5C,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEjC,MAAM,MAAM,aAAa,CAAC,MAAM,GAAG,IAAI,IAAI,MAAM,SAAS,QAAQ,GAAE,CAChE,yBAAyB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,CAC3G,GACD,eAAe,CAAC;AAElB,MAAM,MAAM,iBAAiB,CAAC,MAAM,GAAG,IAAI,IAAI,MAAM,SAAS,QAAQ,GAAE,CACpE,mBAAmB,GACnB;KACC,QAAQ,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,GAC9B,mBAAmB,GACnB,CACA,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,GACtC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GACpD,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CACxD;CACJ,CACF,GAAG,CACA,mBAAmB,GACnB,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,GAAG,mBAAmB,CAAC,CAC3E,CAAC"}
|
package/lib/DBSchemaBuilder.js
CHANGED
|
@@ -10,11 +10,18 @@ const DboBuilder_1 = require("./DboBuilder");
|
|
|
10
10
|
const validation_1 = require("./JSONBValidation/validation");
|
|
11
11
|
const getDBSchema = (dboBuilder) => {
|
|
12
12
|
const tables = [];
|
|
13
|
+
const getColTypeForDBSchema = (udt_name) => {
|
|
14
|
+
if (udt_name === "interval") {
|
|
15
|
+
const units = ["years", "months", "days", "hours", "minutes", "seconds", "milliseconds"];
|
|
16
|
+
return `{ ${units.map(u => `${u}?: number;`).join(" ")} }`;
|
|
17
|
+
}
|
|
18
|
+
return (0, DboBuilder_1.postgresToTsType)(udt_name);
|
|
19
|
+
};
|
|
13
20
|
/** Tables and columns are sorted to avoid infinite loops due to changing order */
|
|
14
21
|
dboBuilder.tablesOrViews?.slice(0).sort((a, b) => a.name.localeCompare(b.name)).forEach(tov => {
|
|
15
22
|
const cols = tov.columns.slice(0).sort((a, b) => a.name.localeCompare(b.name));
|
|
16
23
|
const getColType = (c) => {
|
|
17
|
-
let type = (c.is_nullable ? "null | " : "") + (
|
|
24
|
+
let type = (c.is_nullable ? "null | " : "") + getColTypeForDBSchema(c.udt_name) + ";";
|
|
18
25
|
const colConf = dboBuilder.prostgles.tableConfigurator?.getColumnConfig(tov.name, c.name);
|
|
19
26
|
if (colConf) {
|
|
20
27
|
if ((0, prostgles_types_1.isObject)(colConf) && (colConf.jsonbSchema || colConf.jsonbSchemaType)) {
|
package/lib/DBSchemaBuilder.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DBSchema, isObject, JSONB, TableHandler, ViewHandler } from "prostgles-types";
|
|
2
2
|
import prostgles from ".";
|
|
3
3
|
import { Auth } from "./AuthHandler";
|
|
4
|
-
import { DBHandlerServer, DboBuilder, escapeTSNames, postgresToTsType } from "./DboBuilder";
|
|
4
|
+
import { DBHandlerServer, DboBuilder, escapeTSNames, postgresToTsType, TableSchemaColumn } from "./DboBuilder";
|
|
5
5
|
import { PublishAllOrNothing, PublishParams, PublishTableRule, PublishViewRule, } from "./PublishParser";
|
|
6
6
|
import { getJSONBSchemaTSTypes } from "./JSONBValidation/validation";
|
|
7
7
|
|
|
@@ -9,13 +9,22 @@ import { getJSONBSchemaTSTypes } from "./JSONBValidation/validation";
|
|
|
9
9
|
export const getDBSchema = (dboBuilder: DboBuilder): string => {
|
|
10
10
|
const tables: string[] = [];
|
|
11
11
|
|
|
12
|
+
const getColTypeForDBSchema = (udt_name: TableSchemaColumn["udt_name"]): string => {
|
|
13
|
+
if(udt_name === "interval"){
|
|
14
|
+
const units = [ "years", "months", "days", "hours", "minutes", "seconds", "milliseconds"];
|
|
15
|
+
|
|
16
|
+
return `{ ${units.map(u => `${u}?: number;`).join(" ")} }`;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return postgresToTsType(udt_name);
|
|
20
|
+
}
|
|
12
21
|
|
|
13
22
|
/** Tables and columns are sorted to avoid infinite loops due to changing order */
|
|
14
23
|
dboBuilder.tablesOrViews?.slice(0).sort((a, b) => a.name.localeCompare(b.name)).forEach(tov => {
|
|
15
24
|
const cols = tov.columns.slice(0).sort((a, b) => a.name.localeCompare(b.name));
|
|
16
25
|
const getColType = (c: typeof cols[number]) => {
|
|
17
|
-
|
|
18
|
-
let type: string = (c.is_nullable? "null | " : "") +
|
|
26
|
+
|
|
27
|
+
let type: string = (c.is_nullable? "null | " : "") + getColTypeForDBSchema(c.udt_name) + ";"
|
|
19
28
|
const colConf = dboBuilder.prostgles.tableConfigurator?.getColumnConfig(tov.name, c.name);
|
|
20
29
|
if(colConf){
|
|
21
30
|
if(isObject(colConf) && (colConf.jsonbSchema || colConf.jsonbSchemaType)){
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getColumnDefinitionQuery.d.ts","sourceRoot":"","sources":["getColumnDefinitionQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,SAAS,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"getColumnDefinitionQuery.d.ts","sourceRoot":"","sources":["getColumnDefinitionQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,+CAAsD,IAAI,KAAG,QAAQ,MAAM,GAAG,SAAS,CAyE3H,CAAA;AAGD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AACF,eAAO,MAAM,eAAe;QAAyB,EAAE,GAAG,UAAU,KAAK,CAAC,EAAE,CAAC;WAAS,MAAM;MAAK,QAAQ,iBAAiB,EAAE,CAS3H,CAAA"}
|
|
@@ -4,7 +4,6 @@ exports.getTableColumns = exports.getColumnDefinitionQuery = void 0;
|
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
const PubSubManager_1 = require("../PubSubManager/PubSubManager");
|
|
6
6
|
const validate_jsonb_schema_sql_1 = require("../JSONBValidation/validate_jsonb_schema_sql");
|
|
7
|
-
const getConstraintDefinitionQueries_1 = require("./getConstraintDefinitionQueries");
|
|
8
7
|
/**
|
|
9
8
|
* Column create statement for a given config
|
|
10
9
|
*/
|
|
@@ -60,15 +59,7 @@ const getColumnDefinitionQuery = async ({ colConf: colConfRaw, column, db, table
|
|
|
60
59
|
throw failedDefault(e);
|
|
61
60
|
}
|
|
62
61
|
}
|
|
63
|
-
|
|
64
|
-
const { val: nameEnding } = await db.one("SELECT MD5( ${table} || ${column} || ${schema}) as val", { table: table, column, schema: jsonbSchemaStr });
|
|
65
|
-
const constraintName = namePreffix + nameEnding;
|
|
66
|
-
const colConstraints = await (0, getConstraintDefinitionQueries_1.getColConstraints)({ db, table, column });
|
|
67
|
-
const existingNonMatchingConstraints = colConstraints.filter(c => c.name.startsWith(namePreffix) && c.name !== constraintName);
|
|
68
|
-
for await (const oldCons of existingNonMatchingConstraints) {
|
|
69
|
-
await db.any(`ALTER TABLE ${(0, prostgles_types_1.asName)(table)} DROP CONSTRAINT ${(0, prostgles_types_1.asName)(oldCons.name)};`);
|
|
70
|
-
}
|
|
71
|
-
return ` ${colNameEsc} ${getColTypeDef(colConf, "JSONB")}, CONSTRAINT ${(0, prostgles_types_1.asName)(constraintName)} CHECK(${validate_jsonb_schema_sql_1.VALIDATE_SCHEMA_FUNCNAME}(${jsonbSchemaStr}, ${colNameEsc}, ${(0, PubSubManager_1.asValue)({ table, column })} ))`;
|
|
62
|
+
return ` ${colNameEsc} ${getColTypeDef(colConf, "JSONB")} CHECK(${validate_jsonb_schema_sql_1.VALIDATE_SCHEMA_FUNCNAME}(${jsonbSchemaStr}, ${colNameEsc}, ${(0, PubSubManager_1.asValue)({ table, column })} ))`;
|
|
72
63
|
}
|
|
73
64
|
else if ("enum" in colConf) {
|
|
74
65
|
if (!colConf.enum?.length)
|
|
@@ -3,8 +3,7 @@ import { DB } from "../Prostgles";
|
|
|
3
3
|
import { asValue } from "../PubSubManager/PubSubManager";
|
|
4
4
|
import { VALIDATE_SCHEMA_FUNCNAME } from "../JSONBValidation/validate_jsonb_schema_sql";
|
|
5
5
|
import { BaseColumnTypes, ColumnConfig } from "./TableConfig";
|
|
6
|
-
import pgPromise from "pg-promise";
|
|
7
|
-
import { getColConstraints } from "./getConstraintDefinitionQueries";
|
|
6
|
+
import pgPromise from "pg-promise";
|
|
8
7
|
|
|
9
8
|
type Args = {
|
|
10
9
|
column: string;
|
|
@@ -75,17 +74,9 @@ export const getColumnDefinitionQuery = async ({ colConf: colConfRaw, column, db
|
|
|
75
74
|
} catch (e) {
|
|
76
75
|
throw failedDefault(e);
|
|
77
76
|
}
|
|
78
|
-
}
|
|
79
|
-
const namePreffix = 'prostgles_jsonb_' as const;
|
|
80
|
-
const { val: nameEnding } = await db.one("SELECT MD5( ${table} || ${column} || ${schema}) as val", { table: table, column, schema: jsonbSchemaStr });
|
|
81
|
-
const constraintName = namePreffix + nameEnding;
|
|
82
|
-
const colConstraints = await getColConstraints({ db, table, column });
|
|
83
|
-
const existingNonMatchingConstraints = colConstraints.filter(c => c.name.startsWith(namePreffix) && c.name !== constraintName);
|
|
84
|
-
for await (const oldCons of existingNonMatchingConstraints) {
|
|
85
|
-
await db.any(`ALTER TABLE ${asName(table)} DROP CONSTRAINT ${asName(oldCons.name)};`);
|
|
86
|
-
}
|
|
77
|
+
}
|
|
87
78
|
|
|
88
|
-
return ` ${colNameEsc} ${getColTypeDef(colConf, "JSONB")}
|
|
79
|
+
return ` ${colNameEsc} ${getColTypeDef(colConf, "JSONB")} CHECK(${VALIDATE_SCHEMA_FUNCNAME}(${jsonbSchemaStr}, ${colNameEsc}, ${asValue({ table, column })} ))`;
|
|
89
80
|
|
|
90
81
|
} else if ("enum" in colConf) {
|
|
91
82
|
if (!colConf.enum?.length) throw new Error("colConf.enum Must not be empty");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prostgles-server",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.150",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"check-disk-space": "^3.3.1",
|
|
41
41
|
"file-type": "^17.1.4",
|
|
42
42
|
"pg-promise": "^11.3.0",
|
|
43
|
-
"prostgles-types": "^3.0.
|
|
43
|
+
"prostgles-types": "^3.0.49",
|
|
44
44
|
"sharp": "^0.31.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
package/tests/client/PID.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
11319
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"../..": {
|
|
23
23
|
"name": "prostgles-server",
|
|
24
|
-
"version": "3.0.
|
|
24
|
+
"version": "3.0.149",
|
|
25
25
|
"license": "MIT",
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@aws-sdk/client-s3": "^3.272.0",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"check-disk-space": "^3.3.1",
|
|
33
33
|
"file-type": "^17.1.4",
|
|
34
34
|
"pg-promise": "^11.3.0",
|
|
35
|
-
"prostgles-types": "^3.0.
|
|
35
|
+
"prostgles-types": "^3.0.49",
|
|
36
36
|
"sharp": "^0.31.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
@@ -1527,7 +1527,7 @@
|
|
|
1527
1527
|
"eslint": "^8.35.0",
|
|
1528
1528
|
"file-type": "^17.1.4",
|
|
1529
1529
|
"pg-promise": "^11.3.0",
|
|
1530
|
-
"prostgles-types": "^3.0.
|
|
1530
|
+
"prostgles-types": "^3.0.49",
|
|
1531
1531
|
"sharp": "^0.31.0",
|
|
1532
1532
|
"typescript": "^4.9.5"
|
|
1533
1533
|
}
|