prostgles-server 3.0.134 → 3.0.136

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.
@@ -1 +1 @@
1
- {"version":3,"file":"validate_jsonb_schema_sql.d.ts","sourceRoot":"","sources":["../../lib/JSONBValidation/validate_jsonb_schema_sql.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB,yBAAmC,CAAC;AACzE,eAAO,MAAM,yBAAyB,QA6ZrC,CAAC"}
1
+ {"version":3,"file":"validate_jsonb_schema_sql.d.ts","sourceRoot":"","sources":["../../lib/JSONBValidation/validate_jsonb_schema_sql.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB,yBAAmC,CAAC;AACzE,eAAO,MAAM,yBAAyB,QAwcrC,CAAC"}
@@ -31,6 +31,7 @@ DECLARE
31
31
  "type": { "enum": ["data", "data-def"] },
32
32
  "table": "string",
33
33
  "column": "string",
34
+ "lookup": { "type": "any", "optional": true },
34
35
  "isArray": { "type": "boolean", "optional": true },
35
36
  "filter": { "optional": true, "type": "any" },
36
37
  "isFullRow": { "optional": true, "type": {
@@ -46,11 +47,21 @@ DECLARE
46
47
  "type": { "enum": ["schema"] },
47
48
  "object": { "enum": ["table", "column"] },
48
49
  "isArray": { "type": "boolean", "optional": true },
50
+ "lookup": { "type": "any", "optional": true },
49
51
  "filter": { "optional": true, "type": "any" }
50
52
  }
51
53
  $d$;
52
54
 
53
55
  extra_keys TEXT[];
56
+
57
+ /* Used for oneOf schema errors */
58
+ v_state TEXT;
59
+ v_msg TEXT;
60
+ v_detail TEXT;
61
+ v_hint TEXT;
62
+ v_context TEXT;
63
+ v_one_of_errors TEXT;
64
+
54
65
  BEGIN
55
66
  path = concat_ws(', ',
56
67
  'Path: ' || array_to_string(checked_path, '.'),
@@ -63,6 +74,9 @@ BEGIN
63
74
  RAISE EXCEPTION 'Empty schema. %', path USING HINT = path, COLUMN = colname;
64
75
  END IF;
65
76
 
77
+ /* Sometimes text comes double quoted from jsonb, e.g.: '"string"' */
78
+ jsonb_schema = CASE WHEN jsonb_schema::text ilike '"%"' THEN LEFT(RIGHT(jsonb_schema::text, -1), -1) ELSE jsonb_schema END;
79
+
66
80
  /* 'string' */
67
81
  IF ARRAY[jsonb_schema] <@ allowed_types THEN
68
82
  schema = jsonb_build_object('type', jsonb_schema);
@@ -250,7 +264,8 @@ BEGIN
250
264
  END IF;
251
265
 
252
266
  FOR sub_schema IN
253
- SELECT CASE WHEN schema ? 'oneOfType' THEN jsonb_build_object('type', value) ELSE value END as value
267
+ SELECT CASE WHEN schema ? 'oneOfType' THEN jsonb_build_object('type', value) ELSE value END as value,
268
+ row_number() over() - 1 as idx
254
269
  FROM jsonb_array_elements(oneof)
255
270
  LOOP
256
271
 
@@ -266,10 +281,35 @@ BEGIN
266
281
 
267
282
  /* Ignore exceptions in case the last schema will match */
268
283
  EXCEPTION WHEN others THEN
284
+
285
+ GET STACKED DIAGNOSTICS
286
+ v_state = returned_sqlstate,
287
+ v_msg = message_text,
288
+ v_detail = pg_exception_detail,
289
+ v_hint = pg_exception_hint,
290
+ v_context = pg_exception_context;
291
+
292
+ /* Ignore duplicate errors */
293
+ IF v_one_of_errors IS NULL OR v_one_of_errors NOT ilike '%' || v_msg || '%' THEN
294
+ v_one_of_errors = concat_ws(
295
+ E'\n',
296
+ v_one_of_errors,
297
+ concat_ws(
298
+ ', ',
299
+ 'Schema index ' || sub_schema.idx::TEXT || ' error:',
300
+ 'state: ' || v_state,
301
+ 'message: ' || v_msg,
302
+ 'detail: ' || v_detail,
303
+ 'hint: ' || v_hint
304
+ -- 'context: ' || v_context
305
+ )
306
+ );
307
+ END IF;
269
308
  END;
309
+
270
310
  END LOOP;
271
311
 
272
- RAISE EXCEPTION 'Could not validate against any oneOf schemas ( % ), %', oneof::TEXT, path USING HINT = path, COLUMN = colname;
312
+ RAISE EXCEPTION 'No oneOf schemas matching ( % ), %', v_one_of_errors, path;-- USING HINT = path, COLUMN = colname;
273
313
 
274
314
  /* arrayOfType: { key_name: { type: "string" } } */
275
315
  ELSIF (schema ? 'arrayOf' OR schema ? 'arrayOfType') THEN
@@ -416,5 +456,8 @@ SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "schema", "obj
416
456
 
417
457
  SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "type": "time"}', '"22:22"');
418
458
  SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "type": "Date"}', '"2222-22-22"');
459
+
460
+
461
+ SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "oneOf": ["number"]}','2');
419
462
  `;
420
463
  //# sourceMappingURL=validate_jsonb_schema_sql.js.map
@@ -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;AAGlD,QAAA,wBAAwB,GAAG,uBAAgC,CAAC;AAC5D,QAAA,yBAAyB,GAAG;;;IAGrC,6BAAa,CAAC,kCAAkC;;;4BAGxB,gCAAwB;;6BAEvB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAsFxC,gCAAwB;;;;;;;;;;aAUxB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAuClB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8EvB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAgC/B,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA4BtB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAgCsC,gCAAwB;;;;;;oEAMjC,gCAAwB;;;;;;;;;;;;;;;sBAetE,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;CAChC,CAAC"}
1
+ {"version":3,"file":"validate_jsonb_schema_sql.js","sourceRoot":"","sources":["../../lib/JSONBValidation/validate_jsonb_schema_sql.ts"],"names":[],"mappings":";;;AAAA,kEAA+D;AAGlD,QAAA,wBAAwB,GAAG,uBAAgC,CAAC;AAC5D,QAAA,yBAAyB,GAAG;;;IAGrC,6BAAa,CAAC,kCAAkC;;;4BAGxB,gCAAwB;;6BAEvB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAoGxC,gCAAwB;;;;;;;;;;aAUxB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAuClB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8EvB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiC/B,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAqDtB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAgCsC,gCAAwB;;;;;;oEAMjC,gCAAwB;;;;;;;;;;;;;;;sBAetE,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 +1 @@
1
- {"version":3,"file":"validate_jsonb_schema_sql.d.ts","sourceRoot":"","sources":["validate_jsonb_schema_sql.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB,yBAAmC,CAAC;AACzE,eAAO,MAAM,yBAAyB,QA6ZrC,CAAC"}
1
+ {"version":3,"file":"validate_jsonb_schema_sql.d.ts","sourceRoot":"","sources":["validate_jsonb_schema_sql.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB,yBAAmC,CAAC;AACzE,eAAO,MAAM,yBAAyB,QAwcrC,CAAC"}
@@ -31,6 +31,7 @@ DECLARE
31
31
  "type": { "enum": ["data", "data-def"] },
32
32
  "table": "string",
33
33
  "column": "string",
34
+ "lookup": { "type": "any", "optional": true },
34
35
  "isArray": { "type": "boolean", "optional": true },
35
36
  "filter": { "optional": true, "type": "any" },
36
37
  "isFullRow": { "optional": true, "type": {
@@ -46,11 +47,21 @@ DECLARE
46
47
  "type": { "enum": ["schema"] },
47
48
  "object": { "enum": ["table", "column"] },
48
49
  "isArray": { "type": "boolean", "optional": true },
50
+ "lookup": { "type": "any", "optional": true },
49
51
  "filter": { "optional": true, "type": "any" }
50
52
  }
51
53
  $d$;
52
54
 
53
55
  extra_keys TEXT[];
56
+
57
+ /* Used for oneOf schema errors */
58
+ v_state TEXT;
59
+ v_msg TEXT;
60
+ v_detail TEXT;
61
+ v_hint TEXT;
62
+ v_context TEXT;
63
+ v_one_of_errors TEXT;
64
+
54
65
  BEGIN
55
66
  path = concat_ws(', ',
56
67
  'Path: ' || array_to_string(checked_path, '.'),
@@ -63,6 +74,9 @@ BEGIN
63
74
  RAISE EXCEPTION 'Empty schema. %', path USING HINT = path, COLUMN = colname;
64
75
  END IF;
65
76
 
77
+ /* Sometimes text comes double quoted from jsonb, e.g.: '"string"' */
78
+ jsonb_schema = CASE WHEN jsonb_schema::text ilike '"%"' THEN LEFT(RIGHT(jsonb_schema::text, -1), -1) ELSE jsonb_schema END;
79
+
66
80
  /* 'string' */
67
81
  IF ARRAY[jsonb_schema] <@ allowed_types THEN
68
82
  schema = jsonb_build_object('type', jsonb_schema);
@@ -250,7 +264,8 @@ BEGIN
250
264
  END IF;
251
265
 
252
266
  FOR sub_schema IN
253
- SELECT CASE WHEN schema ? 'oneOfType' THEN jsonb_build_object('type', value) ELSE value END as value
267
+ SELECT CASE WHEN schema ? 'oneOfType' THEN jsonb_build_object('type', value) ELSE value END as value,
268
+ row_number() over() - 1 as idx
254
269
  FROM jsonb_array_elements(oneof)
255
270
  LOOP
256
271
 
@@ -266,10 +281,35 @@ BEGIN
266
281
 
267
282
  /* Ignore exceptions in case the last schema will match */
268
283
  EXCEPTION WHEN others THEN
284
+
285
+ GET STACKED DIAGNOSTICS
286
+ v_state = returned_sqlstate,
287
+ v_msg = message_text,
288
+ v_detail = pg_exception_detail,
289
+ v_hint = pg_exception_hint,
290
+ v_context = pg_exception_context;
291
+
292
+ /* Ignore duplicate errors */
293
+ IF v_one_of_errors IS NULL OR v_one_of_errors NOT ilike '%' || v_msg || '%' THEN
294
+ v_one_of_errors = concat_ws(
295
+ E'\n',
296
+ v_one_of_errors,
297
+ concat_ws(
298
+ ', ',
299
+ 'Schema index ' || sub_schema.idx::TEXT || ' error:',
300
+ 'state: ' || v_state,
301
+ 'message: ' || v_msg,
302
+ 'detail: ' || v_detail,
303
+ 'hint: ' || v_hint
304
+ -- 'context: ' || v_context
305
+ )
306
+ );
307
+ END IF;
269
308
  END;
309
+
270
310
  END LOOP;
271
311
 
272
- RAISE EXCEPTION 'Could not validate against any oneOf schemas ( % ), %', oneof::TEXT, path USING HINT = path, COLUMN = colname;
312
+ RAISE EXCEPTION 'No oneOf schemas matching ( % ), %', v_one_of_errors, path;-- USING HINT = path, COLUMN = colname;
273
313
 
274
314
  /* arrayOfType: { key_name: { type: "string" } } */
275
315
  ELSIF (schema ? 'arrayOf' OR schema ? 'arrayOfType') THEN
@@ -416,4 +456,7 @@ SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "schema", "obj
416
456
 
417
457
  SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "type": "time"}', '"22:22"');
418
458
  SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "type": "Date"}', '"2222-22-22"');
459
+
460
+
461
+ SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "oneOf": ["number"]}','2');
419
462
  `;
@@ -30,6 +30,7 @@ DECLARE
30
30
  "type": { "enum": ["data", "data-def"] },
31
31
  "table": "string",
32
32
  "column": "string",
33
+ "lookup": { "type": "any", "optional": true },
33
34
  "isArray": { "type": "boolean", "optional": true },
34
35
  "filter": { "optional": true, "type": "any" },
35
36
  "isFullRow": { "optional": true, "type": {
@@ -45,11 +46,21 @@ DECLARE
45
46
  "type": { "enum": ["schema"] },
46
47
  "object": { "enum": ["table", "column"] },
47
48
  "isArray": { "type": "boolean", "optional": true },
49
+ "lookup": { "type": "any", "optional": true },
48
50
  "filter": { "optional": true, "type": "any" }
49
51
  }
50
52
  $d$;
51
53
 
52
54
  extra_keys TEXT[];
55
+
56
+ /* Used for oneOf schema errors */
57
+ v_state TEXT;
58
+ v_msg TEXT;
59
+ v_detail TEXT;
60
+ v_hint TEXT;
61
+ v_context TEXT;
62
+ v_one_of_errors TEXT;
63
+
53
64
  BEGIN
54
65
  path = concat_ws(', ',
55
66
  'Path: ' || array_to_string(checked_path, '.'),
@@ -62,6 +73,9 @@ BEGIN
62
73
  RAISE EXCEPTION 'Empty schema. %', path USING HINT = path, COLUMN = colname;
63
74
  END IF;
64
75
 
76
+ /* Sometimes text comes double quoted from jsonb, e.g.: '"string"' */
77
+ jsonb_schema = CASE WHEN jsonb_schema::text ilike '"%"' THEN LEFT(RIGHT(jsonb_schema::text, -1), -1) ELSE jsonb_schema END;
78
+
65
79
  /* 'string' */
66
80
  IF ARRAY[jsonb_schema] <@ allowed_types THEN
67
81
  schema = jsonb_build_object('type', jsonb_schema);
@@ -249,7 +263,8 @@ BEGIN
249
263
  END IF;
250
264
 
251
265
  FOR sub_schema IN
252
- SELECT CASE WHEN schema ? 'oneOfType' THEN jsonb_build_object('type', value) ELSE value END as value
266
+ SELECT CASE WHEN schema ? 'oneOfType' THEN jsonb_build_object('type', value) ELSE value END as value,
267
+ row_number() over() - 1 as idx
253
268
  FROM jsonb_array_elements(oneof)
254
269
  LOOP
255
270
 
@@ -265,10 +280,35 @@ BEGIN
265
280
 
266
281
  /* Ignore exceptions in case the last schema will match */
267
282
  EXCEPTION WHEN others THEN
283
+
284
+ GET STACKED DIAGNOSTICS
285
+ v_state = returned_sqlstate,
286
+ v_msg = message_text,
287
+ v_detail = pg_exception_detail,
288
+ v_hint = pg_exception_hint,
289
+ v_context = pg_exception_context;
290
+
291
+ /* Ignore duplicate errors */
292
+ IF v_one_of_errors IS NULL OR v_one_of_errors NOT ilike '%' || v_msg || '%' THEN
293
+ v_one_of_errors = concat_ws(
294
+ E'\n',
295
+ v_one_of_errors,
296
+ concat_ws(
297
+ ', ',
298
+ 'Schema index ' || sub_schema.idx::TEXT || ' error:',
299
+ 'state: ' || v_state,
300
+ 'message: ' || v_msg,
301
+ 'detail: ' || v_detail,
302
+ 'hint: ' || v_hint
303
+ -- 'context: ' || v_context
304
+ )
305
+ );
306
+ END IF;
268
307
  END;
308
+
269
309
  END LOOP;
270
310
 
271
- RAISE EXCEPTION 'Could not validate against any oneOf schemas ( % ), %', oneof::TEXT, path USING HINT = path, COLUMN = colname;
311
+ RAISE EXCEPTION 'No oneOf schemas matching ( % ), %', v_one_of_errors, path;-- USING HINT = path, COLUMN = colname;
272
312
 
273
313
  /* arrayOfType: { key_name: { type: "string" } } */
274
314
  ELSIF (schema ? 'arrayOf' OR schema ? 'arrayOfType') THEN
@@ -415,5 +455,8 @@ SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "schema", "object": "c
415
455
 
416
456
  SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "type": "time"}', '"22:22"');
417
457
  SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "type": "Date"}', '"2222-22-22"');
458
+
459
+
460
+ SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "oneOf": ["number"]}','2');
418
461
  `;
419
462
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "3.0.134",
3
+ "version": "3.0.136",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1 +1 @@
1
- 104759
1
+ 18339
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "3.0.133",
24
+ "version": "3.0.135",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "@aws-sdk/client-s3": "^3.272.0",