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.
- package/dist/JSONBSchemaValidation/validateJSONBSchemaSQL.d.ts.map +1 -1
- package/dist/JSONBSchemaValidation/validateJSONBSchemaSQL.js +39 -0
- package/dist/JSONBSchemaValidation/validateJSONBSchemaSQL.js.map +1 -1
- package/lib/JSONBSchemaValidation/validateJSONBSchemaSQL.ts +39 -0
- package/package.json +2 -2
|
@@ -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,
|
|
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
|
|
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.
|
|
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.
|
|
60
|
+
"prostgles-types": "^4.0.271"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@eslint/js": "^9.22.0",
|