prostgles-server 3.0.110 → 3.0.111

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,QA+VrC,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,QAyYrC,CAAC"}
@@ -44,7 +44,7 @@ BEGIN
44
44
  IF ARRAY[jsonb_schema] <@ allowed_types THEN
45
45
  schema = jsonb_build_object('type', jsonb_schema);
46
46
  /* { "type": ... } */
47
- ELSIF BTRIM(jsonb_schema) ILIKE '{%' THEN
47
+ ELSIF BTRIM(replace(jsonb_schema,E'\n','')) ILIKE '{%' THEN
48
48
  schema = jsonb_schema::JSONB;
49
49
  ELSE
50
50
  RAISE EXCEPTION $$Invalid schema. Expecting 'typename' or { "type": "typename" } but received: %, %$$, jsonb_schema, path USING HINT = path, COLUMN = colname;
@@ -72,6 +72,46 @@ BEGIN
72
72
  RAISE EXCEPTION 'Data not in allowed enum list (%), %', schema->'enum', path USING HINT = path, COLUMN = colname;
73
73
  END IF;
74
74
 
75
+ ELSIF schema ? 'lookup' THEN
76
+ IF NOT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
77
+ $sch$
78
+ {
79
+ "oneOfType": [
80
+ {
81
+ "type": { "enum": ["schema"] },
82
+ "object": { "enum": ["table", "column"] },
83
+ "isArray": { "type": "boolean", "optional": true },
84
+ "filter": { "optional": true, "type": "any" }
85
+ },
86
+ {
87
+ "type": { "enum": ["data"] },
88
+ "table": "string",
89
+ "column": "string",
90
+ "isArray": { "type": "boolean", "optional": true },
91
+ "filter": { "optional": true, "type": "any" },
92
+ "isFullRow": { "optional": true, "type": {
93
+ "displayColumns": { "optional": true, "type": "string[]" },
94
+ "searchColumns": { "optional": true, "type": "string[]" }
95
+ }},
96
+ "showInRowCard": { "optional": true, "type": "any" }
97
+ }
98
+ ]
99
+ }
100
+ $sch$,
101
+ schema->'lookup',
102
+ checked_path || '.schema'::TEXT
103
+ ) THEN
104
+
105
+ RETURN FALSE;
106
+ END IF;
107
+
108
+
109
+ RETURN ${exports.VALIDATE_SCHEMA_FUNCNAME}(
110
+ CASE WHEN (schema->'lookup'->'isArray')::BOOLEAN THEN 'any[]' ELSE 'any' END,
111
+ data,
112
+ checked_path
113
+ );
114
+
75
115
  ELSIF schema ? 'type' THEN
76
116
 
77
117
  IF jsonb_typeof(schema->'type') = 'string' THEN
@@ -164,17 +204,14 @@ BEGIN
164
204
  SELECT key, value
165
205
  FROM jsonb_each(schema->'type')
166
206
  LOOP
207
+
167
208
  optional = COALESCE((sub_schema.value->>'optional')::BOOLEAN, FALSE);
168
209
  IF NOT (data ? sub_schema.key) THEN
169
-
170
210
  IF NOT optional THEN
171
211
  RAISE EXCEPTION 'Types not matching. Required property (%) is missing. %',sub_schema.key , path USING HINT = path, COLUMN = colname;
172
- ELSE
173
- RETURN true;
174
212
  END IF;
175
- END IF;
176
213
 
177
- IF NOT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
214
+ ELSIF NOT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
178
215
  -- sub_schema.value::TEXT,
179
216
  CASE WHEN jsonb_typeof(sub_schema.value) = 'string' THEN TRIM(both '"' from sub_schema.value::TEXT) ELSE sub_schema.value::TEXT END,
180
217
  data->sub_schema.key,
@@ -184,6 +221,8 @@ BEGIN
184
221
  END IF;
185
222
 
186
223
  END LOOP;
224
+
225
+ RETURN TRUE;
187
226
  ELSE
188
227
  RAISE EXCEPTION 'Unexpected schema.type ( % ), %',jsonb_typeof(schema->'type'), path USING HINT = path, COLUMN = colname;
189
228
  END IF;
@@ -354,5 +393,8 @@ SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "type": { "a": { "enum": ["a"] } }
354
393
 
355
394
  SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "arrayOfType": { "a": { "enum": ["a"] } } }', '[{ "a": "a"}]');
356
395
 
396
+
397
+ SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "data", "table": "tblName", "column": "colName" } }', '{}');
398
+
357
399
  `;
358
400
  //# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAkFlC,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiF1B,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA8B5B,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA4BtB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAgCsC,gCAAwB;;;;;;oEAMjC,gCAAwB;;;;;;;;;;;;;;;sBAetE,gCAAwB;;;;;;;;;;;;SAYrC,gCAAwB;;;;;;SAMxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;SAIxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;;;;;;;;;;;;;SAgBxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;;SAKxB,gCAAwB;;SAExB,gCAAwB;;SAExB,gCAAwB;;CAEhC,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA8DxC,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiCxB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA2BlB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8EvB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAgC/B,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA4BtB,gCAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAgCsC,gCAAwB;;;;;;oEAMjC,gCAAwB;;;;;;;;;;;;;;;sBAetE,gCAAwB;;;;;;;;;;;;SAYrC,gCAAwB;;;;;;SAMxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;SAIxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;;;;;;;;;;;;;SAgBxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;;SAKxB,gCAAwB;;;;;SAKxB,gCAAwB;;SAExB,gCAAwB;;SAExB,gCAAwB;;;SAGxB,gCAAwB;;CAEhC,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,QA+VrC,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,QAyYrC,CAAC"}
@@ -44,7 +44,7 @@ BEGIN
44
44
  IF ARRAY[jsonb_schema] <@ allowed_types THEN
45
45
  schema = jsonb_build_object('type', jsonb_schema);
46
46
  /* { "type": ... } */
47
- ELSIF BTRIM(jsonb_schema) ILIKE '{%' THEN
47
+ ELSIF BTRIM(replace(jsonb_schema,E'\n','')) ILIKE '{%' THEN
48
48
  schema = jsonb_schema::JSONB;
49
49
  ELSE
50
50
  RAISE EXCEPTION $$Invalid schema. Expecting 'typename' or { "type": "typename" } but received: %, %$$, jsonb_schema, path USING HINT = path, COLUMN = colname;
@@ -72,6 +72,46 @@ BEGIN
72
72
  RAISE EXCEPTION 'Data not in allowed enum list (%), %', schema->'enum', path USING HINT = path, COLUMN = colname;
73
73
  END IF;
74
74
 
75
+ ELSIF schema ? 'lookup' THEN
76
+ IF NOT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
77
+ $sch$
78
+ {
79
+ "oneOfType": [
80
+ {
81
+ "type": { "enum": ["schema"] },
82
+ "object": { "enum": ["table", "column"] },
83
+ "isArray": { "type": "boolean", "optional": true },
84
+ "filter": { "optional": true, "type": "any" }
85
+ },
86
+ {
87
+ "type": { "enum": ["data"] },
88
+ "table": "string",
89
+ "column": "string",
90
+ "isArray": { "type": "boolean", "optional": true },
91
+ "filter": { "optional": true, "type": "any" },
92
+ "isFullRow": { "optional": true, "type": {
93
+ "displayColumns": { "optional": true, "type": "string[]" },
94
+ "searchColumns": { "optional": true, "type": "string[]" }
95
+ }},
96
+ "showInRowCard": { "optional": true, "type": "any" }
97
+ }
98
+ ]
99
+ }
100
+ $sch$,
101
+ schema->'lookup',
102
+ checked_path || '.schema'::TEXT
103
+ ) THEN
104
+
105
+ RETURN FALSE;
106
+ END IF;
107
+
108
+
109
+ RETURN ${exports.VALIDATE_SCHEMA_FUNCNAME}(
110
+ CASE WHEN (schema->'lookup'->'isArray')::BOOLEAN THEN 'any[]' ELSE 'any' END,
111
+ data,
112
+ checked_path
113
+ );
114
+
75
115
  ELSIF schema ? 'type' THEN
76
116
 
77
117
  IF jsonb_typeof(schema->'type') = 'string' THEN
@@ -164,17 +204,14 @@ BEGIN
164
204
  SELECT key, value
165
205
  FROM jsonb_each(schema->'type')
166
206
  LOOP
207
+
167
208
  optional = COALESCE((sub_schema.value->>'optional')::BOOLEAN, FALSE);
168
209
  IF NOT (data ? sub_schema.key) THEN
169
-
170
210
  IF NOT optional THEN
171
211
  RAISE EXCEPTION 'Types not matching. Required property (%) is missing. %',sub_schema.key , path USING HINT = path, COLUMN = colname;
172
- ELSE
173
- RETURN true;
174
212
  END IF;
175
- END IF;
176
213
 
177
- IF NOT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
214
+ ELSIF NOT ${exports.VALIDATE_SCHEMA_FUNCNAME}(
178
215
  -- sub_schema.value::TEXT,
179
216
  CASE WHEN jsonb_typeof(sub_schema.value) = 'string' THEN TRIM(both '"' from sub_schema.value::TEXT) ELSE sub_schema.value::TEXT END,
180
217
  data->sub_schema.key,
@@ -184,6 +221,8 @@ BEGIN
184
221
  END IF;
185
222
 
186
223
  END LOOP;
224
+
225
+ RETURN TRUE;
187
226
  ELSE
188
227
  RAISE EXCEPTION 'Unexpected schema.type ( % ), %',jsonb_typeof(schema->'type'), path USING HINT = path, COLUMN = colname;
189
228
  END IF;
@@ -354,4 +393,7 @@ SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "type": { "a": { "enum": ["a"] } }
354
393
 
355
394
  SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "arrayOfType": { "a": { "enum": ["a"] } } }', '[{ "a": "a"}]');
356
395
 
396
+
397
+ SELECT ${exports.VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "data", "table": "tblName", "column": "colName" } }', '{}');
398
+
357
399
  `;
@@ -43,7 +43,7 @@ BEGIN
43
43
  IF ARRAY[jsonb_schema] <@ allowed_types THEN
44
44
  schema = jsonb_build_object('type', jsonb_schema);
45
45
  /* { "type": ... } */
46
- ELSIF BTRIM(jsonb_schema) ILIKE '{%' THEN
46
+ ELSIF BTRIM(replace(jsonb_schema,E'\n','')) ILIKE '{%' THEN
47
47
  schema = jsonb_schema::JSONB;
48
48
  ELSE
49
49
  RAISE EXCEPTION $$Invalid schema. Expecting 'typename' or { "type": "typename" } but received: %, %$$, jsonb_schema, path USING HINT = path, COLUMN = colname;
@@ -71,6 +71,46 @@ BEGIN
71
71
  RAISE EXCEPTION 'Data not in allowed enum list (%), %', schema->'enum', path USING HINT = path, COLUMN = colname;
72
72
  END IF;
73
73
 
74
+ ELSIF schema ? 'lookup' THEN
75
+ IF NOT ${VALIDATE_SCHEMA_FUNCNAME}(
76
+ $sch$
77
+ {
78
+ "oneOfType": [
79
+ {
80
+ "type": { "enum": ["schema"] },
81
+ "object": { "enum": ["table", "column"] },
82
+ "isArray": { "type": "boolean", "optional": true },
83
+ "filter": { "optional": true, "type": "any" }
84
+ },
85
+ {
86
+ "type": { "enum": ["data"] },
87
+ "table": "string",
88
+ "column": "string",
89
+ "isArray": { "type": "boolean", "optional": true },
90
+ "filter": { "optional": true, "type": "any" },
91
+ "isFullRow": { "optional": true, "type": {
92
+ "displayColumns": { "optional": true, "type": "string[]" },
93
+ "searchColumns": { "optional": true, "type": "string[]" }
94
+ }},
95
+ "showInRowCard": { "optional": true, "type": "any" }
96
+ }
97
+ ]
98
+ }
99
+ $sch$,
100
+ schema->'lookup',
101
+ checked_path || '.schema'::TEXT
102
+ ) THEN
103
+
104
+ RETURN FALSE;
105
+ END IF;
106
+
107
+
108
+ RETURN ${VALIDATE_SCHEMA_FUNCNAME}(
109
+ CASE WHEN (schema->'lookup'->'isArray')::BOOLEAN THEN 'any[]' ELSE 'any' END,
110
+ data,
111
+ checked_path
112
+ );
113
+
74
114
  ELSIF schema ? 'type' THEN
75
115
 
76
116
  IF jsonb_typeof(schema->'type') = 'string' THEN
@@ -163,17 +203,14 @@ BEGIN
163
203
  SELECT key, value
164
204
  FROM jsonb_each(schema->'type')
165
205
  LOOP
206
+
166
207
  optional = COALESCE((sub_schema.value->>'optional')::BOOLEAN, FALSE);
167
208
  IF NOT (data ? sub_schema.key) THEN
168
-
169
209
  IF NOT optional THEN
170
210
  RAISE EXCEPTION 'Types not matching. Required property (%) is missing. %',sub_schema.key , path USING HINT = path, COLUMN = colname;
171
- ELSE
172
- RETURN true;
173
211
  END IF;
174
- END IF;
175
212
 
176
- IF NOT ${VALIDATE_SCHEMA_FUNCNAME}(
213
+ ELSIF NOT ${VALIDATE_SCHEMA_FUNCNAME}(
177
214
  -- sub_schema.value::TEXT,
178
215
  CASE WHEN jsonb_typeof(sub_schema.value) = 'string' THEN TRIM(both '"' from sub_schema.value::TEXT) ELSE sub_schema.value::TEXT END,
179
216
  data->sub_schema.key,
@@ -183,6 +220,8 @@ BEGIN
183
220
  END IF;
184
221
 
185
222
  END LOOP;
223
+
224
+ RETURN TRUE;
186
225
  ELSE
187
226
  RAISE EXCEPTION 'Unexpected schema.type ( % ), %',jsonb_typeof(schema->'type'), path USING HINT = path, COLUMN = colname;
188
227
  END IF;
@@ -353,4 +392,7 @@ SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "type": { "a": { "enum": ["a"] } } }', '{
353
392
 
354
393
  SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "arrayOfType": { "a": { "enum": ["a"] } } }', '[{ "a": "a"}]');
355
394
 
395
+
396
+ SELECT ${VALIDATE_SCHEMA_FUNCNAME}('{ "lookup": { "type": "data", "table": "tblName", "column": "colName" } }', '{}');
397
+
356
398
  `;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "3.0.110",
3
+ "version": "3.0.111",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1 +1 @@
1
- 5121
1
+ 20896
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "3.0.109",
24
+ "version": "3.0.110",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "@aws-sdk/client-s3": "^3.272.0",