prostgles-server 3.0.96 → 3.0.98
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/.github/workflows/main.yml +1 -1
- package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -1
- package/dist/JSONBValidation/validate_jsonb_schema_sql.js +3 -0
- package/dist/JSONBValidation/validate_jsonb_schema_sql.js.map +1 -1
- package/dist/JSONBValidation/validation.js +3 -3
- package/dist/JSONBValidation/validation.js.map +1 -1
- package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -1
- package/lib/JSONBValidation/validate_jsonb_schema_sql.js +3 -0
- package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +3 -0
- package/lib/JSONBValidation/validation.js +3 -3
- package/lib/JSONBValidation/validation.ts +3 -3
- package/package.json +1 -1
- package/tests/client/PID.txt +1 -1
- package/tests/isomorphic_queries.ts +2 -2
- package/tests/server/DBoGenerated.d.ts +11 -11
- package/tests/server/package-lock.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate_jsonb_schema_sql.d.ts","sourceRoot":"","sources":["../../lib/JSONBValidation/validate_jsonb_schema_sql.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,mCAA6C,CAAC;AACnF,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"validate_jsonb_schema_sql.d.ts","sourceRoot":"","sources":["../../lib/JSONBValidation/validate_jsonb_schema_sql.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,mCAA6C,CAAC;AACnF,eAAO,MAAM,yBAAyB,QA4VrC,CAAC"}
|
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.validate_jsonb_schema_sql = exports.VALIDATE_SCHEMA_FUNCNAME = void 0;
|
|
4
4
|
exports.VALIDATE_SCHEMA_FUNCNAME = "prostgles.validate_jsonb_schema";
|
|
5
5
|
exports.validate_jsonb_schema_sql = `
|
|
6
|
+
/* prevent duplicate key value violates unique constraint "pg_namespace_nspname_index" Key (nspname)=(prostgles) already exists.*/
|
|
7
|
+
LOCK TABLE pg_catalog.pg_namespace IN SHARE ROW EXCLUSIVE MODE;
|
|
8
|
+
|
|
6
9
|
DROP FUNCTION IF EXISTS ${exports.VALIDATE_SCHEMA_FUNCNAME}(jsonb_schema text, data jsonb, checked_path text[]);
|
|
7
10
|
|
|
8
11
|
CREATE OR REPLACE FUNCTION ${exports.VALIDATE_SCHEMA_FUNCNAME}(jsonb_schema TEXT, data JSONB, checked_path TEXT[] DEFAULT ARRAY[]::TEXT[]) RETURNS boolean AS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate_jsonb_schema_sql.js","sourceRoot":"","sources":["../../lib/JSONBValidation/validate_jsonb_schema_sql.ts"],"names":[],"mappings":";;;AAEa,QAAA,wBAAwB,GAAG,iCAA0C,CAAC;AACtE,QAAA,yBAAyB,GAAG
|
|
1
|
+
{"version":3,"file":"validate_jsonb_schema_sql.js","sourceRoot":"","sources":["../../lib/JSONBValidation/validate_jsonb_schema_sql.ts"],"names":[],"mappings":";;;AAEa,QAAA,wBAAwB,GAAG,iCAA0C,CAAC;AACtE,QAAA,yBAAyB,GAAG;;;;0BAIf,gCAAwB;;6BAErB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAkFlC,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiF1B,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA8B5B,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA4BtB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAgCsC,gCAAwB;;;;;;oEAMjC,gCAAwB;;;;;;;;;;;;;;;sBAetE,gCAAwB;;;;;;;;;;;SAWrC,gCAAwB;;;;;;SAMxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;SAIxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;;;;;;;;;;;;;SAgBxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;;SAKxB,gCAAwB;;SAExB,gCAAwB;;SAExB,gCAAwB;;CAEhC,CAAC"}
|
|
@@ -81,7 +81,7 @@ function validateSchema(schema, obj, objName, optional = false) {
|
|
|
81
81
|
}
|
|
82
82
|
exports.validateSchema = validateSchema;
|
|
83
83
|
function getJSONBSchemaTSTypes(schema, colOpts, outerLeading = "") {
|
|
84
|
-
const getFieldType = (rawFieldType, isOneOf = false, innerLeading =
|
|
84
|
+
const getFieldType = (rawFieldType, isOneOf = false, innerLeading = "", depth = 0) => {
|
|
85
85
|
const fieldType = getFieldTypeObj(rawFieldType);
|
|
86
86
|
const nullType = (fieldType.nullable ? `null | ` : "");
|
|
87
87
|
/** Primitives */
|
|
@@ -96,7 +96,7 @@ function getJSONBSchemaTSTypes(schema, colOpts, outerLeading = "") {
|
|
|
96
96
|
else if ((0, prostgles_types_1.isObject)(fieldType.type)) {
|
|
97
97
|
const { type } = fieldType;
|
|
98
98
|
const spacing = isOneOf ? " " : " ";
|
|
99
|
-
let objDef =
|
|
99
|
+
let objDef = ` {${spacing}` + (0, prostgles_types_1.getKeys)(type).map(k => {
|
|
100
100
|
const fieldType = getFieldTypeObj(type[k]);
|
|
101
101
|
return `${spacing}${k}${fieldType.optional ? "?" : ""}: ` + getFieldType(fieldType, true, undefined, depth + 1) + ";";
|
|
102
102
|
}).join(" ") + `${spacing}}`;
|
|
@@ -114,7 +114,7 @@ function getJSONBSchemaTSTypes(schema, colOpts, outerLeading = "") {
|
|
|
114
114
|
}
|
|
115
115
|
else if (fieldType?.oneOf || fieldType?.oneOfType) {
|
|
116
116
|
const oneOf = fieldType?.oneOf || fieldType?.oneOfType.map(type => ({ type }));
|
|
117
|
-
return (fieldType.nullable ? `\n${innerLeading} | null` : "") + oneOf.map(v => `\n${innerLeading}
|
|
117
|
+
return (fieldType.nullable ? `\n${innerLeading} | null` : "") + oneOf.map(v => `\n${innerLeading} | ` + getFieldType(v, true, undefined, depth + 1)).join("");
|
|
118
118
|
}
|
|
119
119
|
else if (fieldType?.arrayOf || fieldType?.arrayOfType) {
|
|
120
120
|
const arrayOf = fieldType?.arrayOf || { type: fieldType?.arrayOfType };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../lib/JSONBValidation/validation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../lib/JSONBValidation/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate_jsonb_schema_sql.d.ts","sourceRoot":"","sources":["validate_jsonb_schema_sql.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,mCAA6C,CAAC;AACnF,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"validate_jsonb_schema_sql.d.ts","sourceRoot":"","sources":["validate_jsonb_schema_sql.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,mCAA6C,CAAC;AACnF,eAAO,MAAM,yBAAyB,QA4VrC,CAAC"}
|
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.validate_jsonb_schema_sql = exports.VALIDATE_SCHEMA_FUNCNAME = void 0;
|
|
4
4
|
exports.VALIDATE_SCHEMA_FUNCNAME = "prostgles.validate_jsonb_schema";
|
|
5
5
|
exports.validate_jsonb_schema_sql = `
|
|
6
|
+
/* prevent duplicate key value violates unique constraint "pg_namespace_nspname_index" Key (nspname)=(prostgles) already exists.*/
|
|
7
|
+
LOCK TABLE pg_catalog.pg_namespace IN SHARE ROW EXCLUSIVE MODE;
|
|
8
|
+
|
|
6
9
|
DROP FUNCTION IF EXISTS ${exports.VALIDATE_SCHEMA_FUNCNAME}(jsonb_schema text, data jsonb, checked_path text[]);
|
|
7
10
|
|
|
8
11
|
CREATE OR REPLACE FUNCTION ${exports.VALIDATE_SCHEMA_FUNCNAME}(jsonb_schema TEXT, data JSONB, checked_path TEXT[] DEFAULT ARRAY[]::TEXT[]) RETURNS boolean AS
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
export const VALIDATE_SCHEMA_FUNCNAME = "prostgles.validate_jsonb_schema" as const;
|
|
4
4
|
export const validate_jsonb_schema_sql = `
|
|
5
|
+
/* prevent duplicate key value violates unique constraint "pg_namespace_nspname_index" Key (nspname)=(prostgles) already exists.*/
|
|
6
|
+
LOCK TABLE pg_catalog.pg_namespace IN SHARE ROW EXCLUSIVE MODE;
|
|
7
|
+
|
|
5
8
|
DROP FUNCTION IF EXISTS ${VALIDATE_SCHEMA_FUNCNAME}(jsonb_schema text, data jsonb, checked_path text[]);
|
|
6
9
|
|
|
7
10
|
CREATE OR REPLACE FUNCTION ${VALIDATE_SCHEMA_FUNCNAME}(jsonb_schema TEXT, data JSONB, checked_path TEXT[] DEFAULT ARRAY[]::TEXT[]) RETURNS boolean AS
|
|
@@ -81,7 +81,7 @@ function validateSchema(schema, obj, objName, optional = false) {
|
|
|
81
81
|
}
|
|
82
82
|
exports.validateSchema = validateSchema;
|
|
83
83
|
function getJSONBSchemaTSTypes(schema, colOpts, outerLeading = "") {
|
|
84
|
-
const getFieldType = (rawFieldType, isOneOf = false, innerLeading =
|
|
84
|
+
const getFieldType = (rawFieldType, isOneOf = false, innerLeading = "", depth = 0) => {
|
|
85
85
|
const fieldType = getFieldTypeObj(rawFieldType);
|
|
86
86
|
const nullType = (fieldType.nullable ? `null | ` : "");
|
|
87
87
|
/** Primitives */
|
|
@@ -96,7 +96,7 @@ function getJSONBSchemaTSTypes(schema, colOpts, outerLeading = "") {
|
|
|
96
96
|
else if ((0, prostgles_types_1.isObject)(fieldType.type)) {
|
|
97
97
|
const { type } = fieldType;
|
|
98
98
|
const spacing = isOneOf ? " " : " ";
|
|
99
|
-
let objDef =
|
|
99
|
+
let objDef = ` {${spacing}` + (0, prostgles_types_1.getKeys)(type).map(k => {
|
|
100
100
|
const fieldType = getFieldTypeObj(type[k]);
|
|
101
101
|
return `${spacing}${k}${fieldType.optional ? "?" : ""}: ` + getFieldType(fieldType, true, undefined, depth + 1) + ";";
|
|
102
102
|
}).join(" ") + `${spacing}}`;
|
|
@@ -114,7 +114,7 @@ function getJSONBSchemaTSTypes(schema, colOpts, outerLeading = "") {
|
|
|
114
114
|
}
|
|
115
115
|
else if (fieldType?.oneOf || fieldType?.oneOfType) {
|
|
116
116
|
const oneOf = fieldType?.oneOf || fieldType?.oneOfType.map(type => ({ type }));
|
|
117
|
-
return (fieldType.nullable ? `\n${innerLeading} | null` : "") + oneOf.map(v => `\n${innerLeading}
|
|
117
|
+
return (fieldType.nullable ? `\n${innerLeading} | null` : "") + oneOf.map(v => `\n${innerLeading} | ` + getFieldType(v, true, undefined, depth + 1)).join("");
|
|
118
118
|
}
|
|
119
119
|
else if (fieldType?.arrayOf || fieldType?.arrayOfType) {
|
|
120
120
|
const arrayOf = fieldType?.arrayOf || { type: fieldType?.arrayOfType };
|
|
@@ -226,7 +226,7 @@ type ColOpts = { nullable?: boolean };
|
|
|
226
226
|
|
|
227
227
|
export function getJSONBSchemaTSTypes(schema: JSONB.JSONBSchema, colOpts: ColOpts, outerLeading = ""): string {
|
|
228
228
|
|
|
229
|
-
const getFieldType = (rawFieldType: JSONB.FieldType, isOneOf = false, innerLeading =
|
|
229
|
+
const getFieldType = (rawFieldType: JSONB.FieldType, isOneOf = false, innerLeading = "", depth = 0): string => {
|
|
230
230
|
const fieldType = getFieldTypeObj(rawFieldType);
|
|
231
231
|
const nullType = (fieldType.nullable ? `null | ` : "");
|
|
232
232
|
|
|
@@ -242,7 +242,7 @@ export function getJSONBSchemaTSTypes(schema: JSONB.JSONBSchema, colOpts: ColOpt
|
|
|
242
242
|
} else if (isObject(fieldType.type)) {
|
|
243
243
|
const { type } = fieldType;
|
|
244
244
|
const spacing = isOneOf ? " " : " ";
|
|
245
|
-
let objDef =
|
|
245
|
+
let objDef = ` {${spacing}` + getKeys(type).map(k => {
|
|
246
246
|
const fieldType = getFieldTypeObj(type[k]);
|
|
247
247
|
return `${spacing}${k}${fieldType.optional ? "?" : ""}: ` + getFieldType(fieldType, true, undefined, depth + 1) + ";";
|
|
248
248
|
}).join(" ") + `${spacing}}`;
|
|
@@ -261,7 +261,7 @@ export function getJSONBSchemaTSTypes(schema: JSONB.JSONBSchema, colOpts: ColOpt
|
|
|
261
261
|
|
|
262
262
|
} else if (fieldType?.oneOf || fieldType?.oneOfType) {
|
|
263
263
|
const oneOf = fieldType?.oneOf || fieldType?.oneOfType.map(type => ({ type }));
|
|
264
|
-
return (fieldType.nullable ? `\n${innerLeading} | null` : "") + oneOf.map(v => `\n${innerLeading}
|
|
264
|
+
return (fieldType.nullable ? `\n${innerLeading} | null` : "") + oneOf.map(v => `\n${innerLeading} | ` + getFieldType(v, true, undefined, depth + 1)).join("");
|
|
265
265
|
|
|
266
266
|
} else if (fieldType?.arrayOf || fieldType?.arrayOfType) {
|
|
267
267
|
const arrayOf = fieldType?.arrayOf || { type: fieldType?.arrayOfType };
|
package/package.json
CHANGED
package/tests/client/PID.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
11212
|
|
@@ -20,10 +20,10 @@ export async function tryRun(desc: string, func: () => any, log?: Function){
|
|
|
20
20
|
export function tryRunP(desc: string, func: (resolve: any, reject: any) => any, opts?: { log?: Function; timeout?: number; }){
|
|
21
21
|
return new Promise(async (rv, rj) => {
|
|
22
22
|
const tout = Number.isFinite(opts?.timeout)? setTimeout(() => {
|
|
23
|
-
const errMsg = `${desc} failed. Reason: Timout reached: ${opts
|
|
23
|
+
const errMsg = `${desc} failed. Reason: Timout reached: ${opts!.timeout}ms`;
|
|
24
24
|
opts?.log?.(errMsg);
|
|
25
25
|
rj(errMsg);
|
|
26
|
-
}, opts
|
|
26
|
+
}, opts!.timeout) : undefined
|
|
27
27
|
try {
|
|
28
28
|
await func(rv, rj);
|
|
29
29
|
clearTimeout(tout);
|
|
@@ -369,20 +369,20 @@ export type DBSchemaGenerated = {
|
|
|
369
369
|
delete: true;
|
|
370
370
|
columns: {
|
|
371
371
|
colOneOf: "a" | "b" | "c"
|
|
372
|
-
json:
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
372
|
+
json: { a: boolean; arr: '1' | '2' | '3'; arr1: 1 | 2 | 3; arr2: number[]; arrStr?: null | string[]; o?:
|
|
373
|
+
| null
|
|
374
|
+
| { o1: number; }
|
|
375
|
+
| { o2: boolean; }; };
|
|
376
376
|
jsonOneOf?:
|
|
377
377
|
| null
|
|
378
|
-
|
|
379
|
-
|
|
378
|
+
| { command: 'a'; }
|
|
379
|
+
| { command: 'b'; option: number[]; }
|
|
380
380
|
status?:
|
|
381
381
|
| null
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
table_config?: null |
|
|
382
|
+
| { ok: string; }
|
|
383
|
+
| { err: string; }
|
|
384
|
+
| { loading: { loaded: number; total: number; }; }
|
|
385
|
+
table_config?: null | { referencedTables?: { name: string; minFiles: number; }[]; recType?: null | Record<'a' | 'b', { bools: boolean[]; }>; };
|
|
386
386
|
};
|
|
387
387
|
};
|
|
388
388
|
tr1: {
|
|
@@ -438,7 +438,7 @@ export type DBSchemaGenerated = {
|
|
|
438
438
|
columns: {
|
|
439
439
|
email: string;
|
|
440
440
|
id?: number;
|
|
441
|
-
preferences?:
|
|
441
|
+
preferences?: { showIntro?: boolean; theme?: 'light' | 'dark' | 'auto'; others: any[]; };
|
|
442
442
|
status: "active" | "disabled" | "pending"
|
|
443
443
|
};
|
|
444
444
|
};
|