prostgles-server 3.0.139 → 3.0.141
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/JSONBValidation/validate_jsonb_schema_sql.d.ts +1 -0
- package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -1
- package/dist/JSONBValidation/validate_jsonb_schema_sql.js +12 -8
- package/dist/JSONBValidation/validate_jsonb_schema_sql.js.map +1 -1
- package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts +1 -0
- package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -1
- package/lib/JSONBValidation/validate_jsonb_schema_sql.js +12 -8
- package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +12 -7
- package/package.json +1 -1
- package/tests/client/PID.txt +1 -1
- package/tests/server/package-lock.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare const VALIDATE_SCHEMA_FUNCNAME: "validate_jsonb_schema";
|
|
2
|
+
export declare const JSONB_DATA_TYPES: readonly ["boolean", "number", "integer", "string", "Date", "time", "timestamp", "any", ...("string[]" | "number[]" | "boolean[]" | "integer[]" | "time[]" | "timestamp[]" | "Date[]" | "any[]")[], "Lookup", "Lookup[]"];
|
|
2
3
|
export declare const validate_jsonb_schema_sql: string;
|
|
3
4
|
//# sourceMappingURL=validate_jsonb_schema_sql.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate_jsonb_schema_sql.d.ts","sourceRoot":"","sources":["../../lib/JSONBValidation/validate_jsonb_schema_sql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate_jsonb_schema_sql.d.ts","sourceRoot":"","sources":["../../lib/JSONBValidation/validate_jsonb_schema_sql.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,wBAAwB,yBAAmC,CAAC;AACzE,eAAO,MAAM,gBAAgB,2NAGnB,CAAC;AAEX,eAAO,MAAM,yBAAyB,QA2drC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validate_jsonb_schema_sql = exports.VALIDATE_SCHEMA_FUNCNAME = void 0;
|
|
3
|
+
exports.validate_jsonb_schema_sql = exports.JSONB_DATA_TYPES = exports.VALIDATE_SCHEMA_FUNCNAME = void 0;
|
|
4
|
+
const prostgles_types_1 = require("prostgles-types");
|
|
4
5
|
const PubSubManager_1 = require("../PubSubManager/PubSubManager");
|
|
5
6
|
const raiseException = (err) => `
|
|
6
7
|
IF (context->'silent')::BOOLEAN = TRUE THEN
|
|
@@ -10,6 +11,10 @@ ELSE
|
|
|
10
11
|
END IF;
|
|
11
12
|
`;
|
|
12
13
|
exports.VALIDATE_SCHEMA_FUNCNAME = "validate_jsonb_schema";
|
|
14
|
+
exports.JSONB_DATA_TYPES = [
|
|
15
|
+
...prostgles_types_1.DATA_TYPES,
|
|
16
|
+
"Lookup", "Lookup[]"
|
|
17
|
+
];
|
|
13
18
|
exports.validate_jsonb_schema_sql = `
|
|
14
19
|
|
|
15
20
|
/*
|
|
@@ -32,12 +37,12 @@ DECLARE
|
|
|
32
37
|
obj_key_val RECORD;
|
|
33
38
|
schema JSONB;
|
|
34
39
|
path text;
|
|
35
|
-
allowed_types text[] = '{
|
|
40
|
+
allowed_types text[] = '{${exports.JSONB_DATA_TYPES.join(",")}}';
|
|
36
41
|
typeStr TEXT = NULL;
|
|
37
42
|
optional boolean;
|
|
38
43
|
nullable boolean;
|
|
39
|
-
colname TEXT = context->>'column';
|
|
40
|
-
tablename TEXT = context->>'table';
|
|
44
|
+
colname TEXT = COALESCE(context->>'column', '');
|
|
45
|
+
tablename TEXT = COALESCE(context->>'table', '');
|
|
41
46
|
oneof JSONB;
|
|
42
47
|
arrayof JSONB;
|
|
43
48
|
lookup_data_def_schema TEXT = $d$
|
|
@@ -82,7 +87,6 @@ BEGIN
|
|
|
82
87
|
'Data: ' || data::TEXT,
|
|
83
88
|
'JSONBSchema: ' || schema::TEXT
|
|
84
89
|
);
|
|
85
|
-
colname = COALESCE(checked_path[1], '');
|
|
86
90
|
|
|
87
91
|
IF length(jsonb_schema) = 0 THEN
|
|
88
92
|
${raiseException(`'Empty schema. %', path`)}
|
|
@@ -245,7 +249,7 @@ BEGIN
|
|
|
245
249
|
) t);
|
|
246
250
|
|
|
247
251
|
IF array_length(extra_keys, 1) > 0 THEN
|
|
248
|
-
${raiseException(`E'Object contains invalid keys: % \n %', array_to_string(extra_keys, ', '), path`)}
|
|
252
|
+
${raiseException(`E'Object contains % invalid keys: [ % ] \n %', array_length(extra_keys)::TEXT, array_to_string(extra_keys, ', '), path`)}
|
|
249
253
|
END IF;
|
|
250
254
|
|
|
251
255
|
FOR sub_schema IN
|
|
@@ -315,7 +319,7 @@ BEGIN
|
|
|
315
319
|
/* Ignore duplicate errors */
|
|
316
320
|
IF v_one_of_errors IS NULL OR v_one_of_errors NOT ilike '%' || v_msg || '%' THEN
|
|
317
321
|
v_one_of_errors = concat_ws(
|
|
318
|
-
E'\n',
|
|
322
|
+
E'\n\n',
|
|
319
323
|
v_one_of_errors,
|
|
320
324
|
concat_ws(
|
|
321
325
|
', ',
|
|
@@ -332,7 +336,7 @@ BEGIN
|
|
|
332
336
|
|
|
333
337
|
END LOOP;
|
|
334
338
|
|
|
335
|
-
${raiseException(`'No oneOf schemas matching
|
|
339
|
+
${raiseException(`E'No oneOf schemas matching:\n % ), %', v_one_of_errors, path`)}
|
|
336
340
|
|
|
337
341
|
/* arrayOfType: { key_name: { type: "string" } } */
|
|
338
342
|
ELSIF (schema ? 'arrayOf' OR schema ? 'arrayOfType') THEN
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate_jsonb_schema_sql.js","sourceRoot":"","sources":["../../lib/JSONBValidation/validate_jsonb_schema_sql.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAG/D,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC;;;;oBAIpB,GAAG;;CAEtB,CAAA;AAEY,QAAA,wBAAwB,GAAG,uBAAgC,CAAC;AAC5D,QAAA,yBAAyB,GAAG;;;IAGrC,6BAAa,CAAC,kCAAkC;;;0BAG1B,gCAAwB;4BACtB,gCAAwB;;6BAEvB,gCAAwB
|
|
1
|
+
{"version":3,"file":"validate_jsonb_schema_sql.js","sourceRoot":"","sources":["../../lib/JSONBValidation/validate_jsonb_schema_sql.ts"],"names":[],"mappings":";;;AAAA,qDAA6C;AAC7C,kEAA+D;AAG/D,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC;;;;oBAIpB,GAAG;;CAEtB,CAAA;AAEY,QAAA,wBAAwB,GAAG,uBAAgC,CAAC;AAC5D,QAAA,gBAAgB,GAAG;IAC9B,GAAG,4BAAU;IACb,QAAQ,EAAC,UAAU;CACX,CAAC;AAEE,QAAA,yBAAyB,GAAG;;;IAGrC,6BAAa,CAAC,kCAAkC;;;0BAG1B,gCAAwB;4BACtB,gCAAwB;;6BAEvB,gCAAwB;;;;;;;;;;;;;6BAaxB,wBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoDjD,cAAc,CAAC,yBAAyB,CAAC;;;;;;;;;;;;;MAazC,cAAc,CAAC,2GAA2G,CAAC;;;;;;;QAOzH,cAAc,CAAC,4BAA4B,CAAC;;;;;;;;;;;QAW5C,cAAc,CAAC,8EAA8E,CAAC;;;;QAI9F,cAAc,CAAC,8DAA8D,CAAC;;;;;;;;;;;aAWzE,gCAAwB;;;;;;;;;;aAUxB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;UAwB3B,cAAc,CAAC,yEAAyE,CAAC;;;;;;;;;YASvF,cAAc,CAAC,mDAAmD,CAAC;;;;;;;mBAO5D,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;YAyB/B,cAAc,CAAC,wFAAwF,CAAC;;;;;;;;cAQtG,cAAc,CAAC,iHAAiH,CAAC;;;;;;;;cAQjI,cAAc,CAAC,oIAAoI,CAAC;;;YAGtJ,cAAc,CAAC,oEAAoE,CAAC;;;;;;;;;;UAUtF,cAAc,CAAC,oCAAoC,CAAC;;;;;;;;;;UAUpD,cAAc,CAAC,wHAAwH,CAAC;;;;;;;;;;;cAWpI,cAAc,CAAC,oFAAoF,CAAC;;;oBAG9F,gCAAwB;;;;;;;;;;;;;;QAcpC,cAAc,CAAC,sEAAsE,CAAC;;;;;;;;;QAStF,cAAc,CAAC,iGAAiG,CAAC;;;;;;;;;;;aAW5G,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAuC/B,cAAc,CAAC,gEAAgE,CAAC;;;;;;;;QAQ9E,cAAc,CAAC,4BAA4B,CAAC;;;;;;;eAOrC,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;QAuB/B,cAAc,CAAC,kIAAkI,CAAC;;;;QAIlJ,cAAc,CAAC,6BAA6B,CAAC;;;;;;;6EAOwB,gCAAwB;;;;;;;oEAOjC,gCAAwB;;;;;;;;;MAStF,cAAc,CAAC,yCAAyC,CAAC;;;;;;;sBAOzC,gCAAwB,QAAQ,6BAAa,CAAC,kCAAkC;;;;;;;;;;;;SAY7F,gCAAwB;;;;;;SAMxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;SAIxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;;;;;;;;;;;;;SAgBxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;;SAKxB,gCAAwB;;SAExB,gCAAwB;;SAExB,gCAAwB;;;SAGxB,gCAAwB;SACxB,gCAAwB;SACxB,gCAAwB;SACxB,gCAAwB;SACxB,gCAAwB;SACxB,gCAAwB;;SAExB,gCAAwB;SACxB,gCAAwB;;;SAGxB,gCAAwB;CAChC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare const VALIDATE_SCHEMA_FUNCNAME: "validate_jsonb_schema";
|
|
2
|
+
export declare const JSONB_DATA_TYPES: readonly ["boolean", "number", "integer", "string", "Date", "time", "timestamp", "any", ...("string[]" | "number[]" | "boolean[]" | "integer[]" | "time[]" | "timestamp[]" | "Date[]" | "any[]")[], "Lookup", "Lookup[]"];
|
|
2
3
|
export declare const validate_jsonb_schema_sql: string;
|
|
3
4
|
//# sourceMappingURL=validate_jsonb_schema_sql.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate_jsonb_schema_sql.d.ts","sourceRoot":"","sources":["validate_jsonb_schema_sql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate_jsonb_schema_sql.d.ts","sourceRoot":"","sources":["validate_jsonb_schema_sql.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,wBAAwB,yBAAmC,CAAC;AACzE,eAAO,MAAM,gBAAgB,2NAGnB,CAAC;AAEX,eAAO,MAAM,yBAAyB,QA2drC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validate_jsonb_schema_sql = exports.VALIDATE_SCHEMA_FUNCNAME = void 0;
|
|
3
|
+
exports.validate_jsonb_schema_sql = exports.JSONB_DATA_TYPES = exports.VALIDATE_SCHEMA_FUNCNAME = void 0;
|
|
4
|
+
const prostgles_types_1 = require("prostgles-types");
|
|
4
5
|
const PubSubManager_1 = require("../PubSubManager/PubSubManager");
|
|
5
6
|
const raiseException = (err) => `
|
|
6
7
|
IF (context->'silent')::BOOLEAN = TRUE THEN
|
|
@@ -10,6 +11,10 @@ ELSE
|
|
|
10
11
|
END IF;
|
|
11
12
|
`;
|
|
12
13
|
exports.VALIDATE_SCHEMA_FUNCNAME = "validate_jsonb_schema";
|
|
14
|
+
exports.JSONB_DATA_TYPES = [
|
|
15
|
+
...prostgles_types_1.DATA_TYPES,
|
|
16
|
+
"Lookup", "Lookup[]"
|
|
17
|
+
];
|
|
13
18
|
exports.validate_jsonb_schema_sql = `
|
|
14
19
|
|
|
15
20
|
/*
|
|
@@ -32,12 +37,12 @@ DECLARE
|
|
|
32
37
|
obj_key_val RECORD;
|
|
33
38
|
schema JSONB;
|
|
34
39
|
path text;
|
|
35
|
-
allowed_types text[] = '{
|
|
40
|
+
allowed_types text[] = '{${exports.JSONB_DATA_TYPES.join(",")}}';
|
|
36
41
|
typeStr TEXT = NULL;
|
|
37
42
|
optional boolean;
|
|
38
43
|
nullable boolean;
|
|
39
|
-
colname TEXT = context->>'column';
|
|
40
|
-
tablename TEXT = context->>'table';
|
|
44
|
+
colname TEXT = COALESCE(context->>'column', '');
|
|
45
|
+
tablename TEXT = COALESCE(context->>'table', '');
|
|
41
46
|
oneof JSONB;
|
|
42
47
|
arrayof JSONB;
|
|
43
48
|
lookup_data_def_schema TEXT = $d$
|
|
@@ -82,7 +87,6 @@ BEGIN
|
|
|
82
87
|
'Data: ' || data::TEXT,
|
|
83
88
|
'JSONBSchema: ' || schema::TEXT
|
|
84
89
|
);
|
|
85
|
-
colname = COALESCE(checked_path[1], '');
|
|
86
90
|
|
|
87
91
|
IF length(jsonb_schema) = 0 THEN
|
|
88
92
|
${raiseException(`'Empty schema. %', path`)}
|
|
@@ -245,7 +249,7 @@ BEGIN
|
|
|
245
249
|
) t);
|
|
246
250
|
|
|
247
251
|
IF array_length(extra_keys, 1) > 0 THEN
|
|
248
|
-
${raiseException(`E'Object contains invalid keys: % \n %', array_to_string(extra_keys, ', '), path`)}
|
|
252
|
+
${raiseException(`E'Object contains % invalid keys: [ % ] \n %', array_length(extra_keys)::TEXT, array_to_string(extra_keys, ', '), path`)}
|
|
249
253
|
END IF;
|
|
250
254
|
|
|
251
255
|
FOR sub_schema IN
|
|
@@ -315,7 +319,7 @@ BEGIN
|
|
|
315
319
|
/* Ignore duplicate errors */
|
|
316
320
|
IF v_one_of_errors IS NULL OR v_one_of_errors NOT ilike '%' || v_msg || '%' THEN
|
|
317
321
|
v_one_of_errors = concat_ws(
|
|
318
|
-
E'\n',
|
|
322
|
+
E'\n\n',
|
|
319
323
|
v_one_of_errors,
|
|
320
324
|
concat_ws(
|
|
321
325
|
', ',
|
|
@@ -332,7 +336,7 @@ BEGIN
|
|
|
332
336
|
|
|
333
337
|
END LOOP;
|
|
334
338
|
|
|
335
|
-
${raiseException(`'No oneOf schemas matching
|
|
339
|
+
${raiseException(`E'No oneOf schemas matching:\n % ), %', v_one_of_errors, path`)}
|
|
336
340
|
|
|
337
341
|
/* arrayOfType: { key_name: { type: "string" } } */
|
|
338
342
|
ELSIF (schema ? 'arrayOf' OR schema ? 'arrayOfType') THEN
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DATA_TYPES } from "prostgles-types";
|
|
1
2
|
import { PubSubManager } from "../PubSubManager/PubSubManager";
|
|
2
3
|
|
|
3
4
|
|
|
@@ -10,6 +11,11 @@ END IF;
|
|
|
10
11
|
`
|
|
11
12
|
|
|
12
13
|
export const VALIDATE_SCHEMA_FUNCNAME = "validate_jsonb_schema" as const;
|
|
14
|
+
export const JSONB_DATA_TYPES = [
|
|
15
|
+
...DATA_TYPES,
|
|
16
|
+
"Lookup","Lookup[]"
|
|
17
|
+
] as const;
|
|
18
|
+
|
|
13
19
|
export const validate_jsonb_schema_sql = `
|
|
14
20
|
|
|
15
21
|
/*
|
|
@@ -32,12 +38,12 @@ DECLARE
|
|
|
32
38
|
obj_key_val RECORD;
|
|
33
39
|
schema JSONB;
|
|
34
40
|
path text;
|
|
35
|
-
allowed_types text[] = '{
|
|
41
|
+
allowed_types text[] = '{${JSONB_DATA_TYPES.join(",")}}';
|
|
36
42
|
typeStr TEXT = NULL;
|
|
37
43
|
optional boolean;
|
|
38
44
|
nullable boolean;
|
|
39
|
-
colname TEXT = context->>'column';
|
|
40
|
-
tablename TEXT = context->>'table';
|
|
45
|
+
colname TEXT = COALESCE(context->>'column', '');
|
|
46
|
+
tablename TEXT = COALESCE(context->>'table', '');
|
|
41
47
|
oneof JSONB;
|
|
42
48
|
arrayof JSONB;
|
|
43
49
|
lookup_data_def_schema TEXT = $d$
|
|
@@ -82,7 +88,6 @@ BEGIN
|
|
|
82
88
|
'Data: ' || data::TEXT,
|
|
83
89
|
'JSONBSchema: ' || schema::TEXT
|
|
84
90
|
);
|
|
85
|
-
colname = COALESCE(checked_path[1], '');
|
|
86
91
|
|
|
87
92
|
IF length(jsonb_schema) = 0 THEN
|
|
88
93
|
${raiseException(`'Empty schema. %', path`)}
|
|
@@ -245,7 +250,7 @@ BEGIN
|
|
|
245
250
|
) t);
|
|
246
251
|
|
|
247
252
|
IF array_length(extra_keys, 1) > 0 THEN
|
|
248
|
-
${raiseException(`E'Object contains invalid keys: % \n %', array_to_string(extra_keys, ', '), path`)}
|
|
253
|
+
${raiseException(`E'Object contains % invalid keys: [ % ] \n %', array_length(extra_keys)::TEXT, array_to_string(extra_keys, ', '), path`)}
|
|
249
254
|
END IF;
|
|
250
255
|
|
|
251
256
|
FOR sub_schema IN
|
|
@@ -315,7 +320,7 @@ BEGIN
|
|
|
315
320
|
/* Ignore duplicate errors */
|
|
316
321
|
IF v_one_of_errors IS NULL OR v_one_of_errors NOT ilike '%' || v_msg || '%' THEN
|
|
317
322
|
v_one_of_errors = concat_ws(
|
|
318
|
-
E'\n',
|
|
323
|
+
E'\n\n',
|
|
319
324
|
v_one_of_errors,
|
|
320
325
|
concat_ws(
|
|
321
326
|
', ',
|
|
@@ -332,7 +337,7 @@ BEGIN
|
|
|
332
337
|
|
|
333
338
|
END LOOP;
|
|
334
339
|
|
|
335
|
-
${raiseException(`'No oneOf schemas matching
|
|
340
|
+
${raiseException(`E'No oneOf schemas matching:\n % ), %', v_one_of_errors, path`)}
|
|
336
341
|
|
|
337
342
|
/* arrayOfType: { key_name: { type: "string" } } */
|
|
338
343
|
ELSIF (schema ? 'arrayOf' OR schema ? 'arrayOfType') THEN
|
package/package.json
CHANGED
package/tests/client/PID.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
63739
|