prostgles-server 4.2.566 → 4.2.567

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":"validateJSONBSchemaSQL.d.ts","sourceRoot":"","sources":["../../lib/JSONBSchemaValidation/validateJSONBSchemaSQL.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,wBAAwB,oCAAoC,CAAC;AAC1E,eAAO,MAAM,gBAAgB,6SAAiD,CAAC;AAE/E,eAAO,MAAM,mCAAmC,QA6Y/C,CAAC"}
1
+ {"version":3,"file":"validateJSONBSchemaSQL.d.ts","sourceRoot":"","sources":["../../lib/JSONBSchemaValidation/validateJSONBSchemaSQL.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,wBAAwB,oCAAoC,CAAC;AAC1E,eAAO,MAAM,gBAAgB,6SAAiD,CAAC;AAE/E,eAAO,MAAM,mCAAmC,QAob/C,CAAC"}
@@ -329,7 +329,46 @@ BEGIN
329
329
  END LOOP;
330
330
 
331
331
  ${raiseException(`E'No oneOf schemas matching:\n % ), %', v_one_of_errors, path`)}
332
+
333
+ /* tuple: [FieldType, FieldType, ...] */
334
+ ELSIF schema ? 'tuple' THEN
335
+
336
+ IF jsonb_typeof(schema->'tuple') != 'array' THEN
337
+ ${raiseException(`'Invalid tuple schema. Expected tuple to be an array, got: %. %', jsonb_typeof(schema->'tuple'), path`)}
338
+ END IF;
332
339
 
340
+ IF jsonb_typeof(data) != 'array' THEN
341
+ ${raiseException(`'Tuple data is not an array. %', path`)}
342
+ END IF;
343
+
344
+ IF jsonb_array_length(data) != jsonb_array_length(schema->'tuple') THEN
345
+ ${raiseException(`'Tuple length does not match schema. Expected %, got %. %',
346
+ jsonb_array_length(schema->'tuple'),
347
+ jsonb_array_length(data),
348
+ path`)}
349
+ END IF;
350
+
351
+ FOR array_element IN
352
+ SELECT
353
+ data_item.value AS data_value,
354
+ tuple_item.value AS schema_value,
355
+ data_item.ordinality - 1 AS idx
356
+ FROM jsonb_array_elements(data) WITH ORDINALITY AS data_item(value, ordinality)
357
+ INNER JOIN jsonb_array_elements(schema->'tuple') WITH ORDINALITY AS tuple_item(value, ordinality)
358
+ ON data_item.ordinality = tuple_item.ordinality
359
+ LOOP
360
+ IF NOT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
361
+ array_element.schema_value::TEXT,
362
+ array_element.data_value,
363
+ context,
364
+ checked_path || array_element.idx::TEXT
365
+ ) THEN
366
+ RETURN FALSE;
367
+ END IF;
368
+ END LOOP;
369
+
370
+ RETURN TRUE;
371
+
333
372
  /* arrayOfType: { key_name: { type: "string" } } */
334
373
  ELSIF (schema ? 'arrayOf' OR schema ? 'arrayOfType') THEN
335
374
 
@@ -1 +1 @@
1
- {"version":3,"file":"validateJSONBSchemaSQL.js","sourceRoot":"","sources":["../../lib/JSONBSchemaValidation/validateJSONBSchemaSQL.ts"],"names":[],"mappings":";;;AAAA,qDAA6C;AAC7C,4EAAyF;AAEzF,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC;;;;oBAIpB,GAAG;;CAEtB,CAAC;AAEW,QAAA,wBAAwB,GAAG,iCAAiC,CAAC;AAC7D,QAAA,gBAAgB,GAAG,CAAC,GAAG,4BAAU,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAC;AAElE,QAAA,mCAAmC,GAAG;;IAE/C,uDAAkC;;6BAET,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,2HAA2H,CAAC;;;;;;;;;;;cAWvI,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,uDAAkC;;;;;;;;;CASvF,CAAC"}
1
+ {"version":3,"file":"validateJSONBSchemaSQL.js","sourceRoot":"","sources":["../../lib/JSONBSchemaValidation/validateJSONBSchemaSQL.ts"],"names":[],"mappings":";;;AAAA,qDAA6C;AAC7C,4EAAyF;AAEzF,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC;;;;oBAIpB,GAAG;;CAEtB,CAAC;AAEW,QAAA,wBAAwB,GAAG,iCAAiC,CAAC;AAC7D,QAAA,gBAAgB,GAAG,CAAC,GAAG,4BAAU,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAC;AAElE,QAAA,mCAAmC,GAAG;;IAE/C,uDAAkC;;6BAET,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,2HAA2H,CAAC;;;;;;;;;;;cAWvI,cAAc,CAAC,oFAAoF,CAAC;;;oBAG9F,gCAAwB;;;;;;;;;;;;;;QAcpC,cAAc,CAAC,sEAAsE,CAAC;;;;;;;;;QAStF,cAAc,CAAC,iGAAiG,CAAC;;;;;;;;;;;aAW5G,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAuC/B,cAAc,CAAC,gEAAgE,CAAC;;;;;;QAM9E,cAAc,CAAC,uGAAuG,CAAC;;;;QAIvH,cAAc,CAAC,uCAAuC,CAAC;;;;QAIvD,cAAc,CAAC;;;aAGV,CAAC;;;;;;;;;;;;eAYC,gCAAwB;;;;;;;;;;;;;;;;;;QAkB/B,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,uDAAkC;;;;;;;;;CASvF,CAAC"}
@@ -329,7 +329,46 @@ BEGIN
329
329
  END LOOP;
330
330
 
331
331
  ${raiseException(`E'No oneOf schemas matching:\n % ), %', v_one_of_errors, path`)}
332
+
333
+ /* tuple: [FieldType, FieldType, ...] */
334
+ ELSIF schema ? 'tuple' THEN
335
+
336
+ IF jsonb_typeof(schema->'tuple') != 'array' THEN
337
+ ${raiseException(`'Invalid tuple schema. Expected tuple to be an array, got: %. %', jsonb_typeof(schema->'tuple'), path`)}
338
+ END IF;
332
339
 
340
+ IF jsonb_typeof(data) != 'array' THEN
341
+ ${raiseException(`'Tuple data is not an array. %', path`)}
342
+ END IF;
343
+
344
+ IF jsonb_array_length(data) != jsonb_array_length(schema->'tuple') THEN
345
+ ${raiseException(`'Tuple length does not match schema. Expected %, got %. %',
346
+ jsonb_array_length(schema->'tuple'),
347
+ jsonb_array_length(data),
348
+ path`)}
349
+ END IF;
350
+
351
+ FOR array_element IN
352
+ SELECT
353
+ data_item.value AS data_value,
354
+ tuple_item.value AS schema_value,
355
+ data_item.ordinality - 1 AS idx
356
+ FROM jsonb_array_elements(data) WITH ORDINALITY AS data_item(value, ordinality)
357
+ INNER JOIN jsonb_array_elements(schema->'tuple') WITH ORDINALITY AS tuple_item(value, ordinality)
358
+ ON data_item.ordinality = tuple_item.ordinality
359
+ LOOP
360
+ IF NOT ${VALIDATE_SCHEMA_FUNCNAME}(
361
+ array_element.schema_value::TEXT,
362
+ array_element.data_value,
363
+ context,
364
+ checked_path || array_element.idx::TEXT
365
+ ) THEN
366
+ RETURN FALSE;
367
+ END IF;
368
+ END LOOP;
369
+
370
+ RETURN TRUE;
371
+
333
372
  /* arrayOfType: { key_name: { type: "string" } } */
334
373
  ELSIF (schema ? 'arrayOf' OR schema ? 'arrayOfType') THEN
335
374
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.566",
3
+ "version": "4.2.567",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -57,7 +57,7 @@
57
57
  "pg": "^8.21.0",
58
58
  "pg-cursor": "^2.21.0",
59
59
  "pg-promise": "^12.7.0",
60
- "prostgles-types": "^4.0.269"
60
+ "prostgles-types": "^4.0.271"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@eslint/js": "^9.22.0",