prostgles-server 4.0.57 → 4.0.59

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.
Files changed (221) hide show
  1. package/dist/DboBuilder/getColumns.d.ts.map +1 -1
  2. package/dist/DboBuilder/getColumns.js +1 -13
  3. package/dist/DboBuilder/getColumns.js.map +1 -1
  4. package/dist/DboBuilder/runSQL.js +2 -2
  5. package/dist/DboBuilder/runSQL.js.map +1 -1
  6. package/dist/Prostgles.d.ts.map +1 -1
  7. package/dist/PubSubManager/PubSubManager.d.ts +1 -1
  8. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  9. package/dist/PubSubManager/PubSubManager.js +14 -1
  10. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  11. package/lib/DboBuilder/getColumns.ts +1 -18
  12. package/lib/DboBuilder/runSQL.ts +2 -2
  13. package/lib/Prostgles.ts +3 -3
  14. package/lib/PubSubManager/PubSubManager.ts +14 -1
  15. package/package.json +2 -2
  16. package/tests/client/PID.txt +1 -1
  17. package/tests/client/package.json +2 -2
  18. package/tests/client/tsconfig.json +2 -1
  19. package/tests/isomorphic_queries.ts +11 -9
  20. package/tests/server/DBoGenerated.d.ts +1 -1
  21. package/tests/server/dboTypeCheck.ts +3 -3
  22. package/tests/server/index.ts +7 -6
  23. package/tests/server/package-lock.json +1 -1
  24. package/tests/server/package.json +3 -3
  25. package/tests/server/publishTypeCheck.ts +1 -1
  26. package/tests/server/tsconfig.json +3 -2
  27. package/tests/test.sh +2 -0
  28. package/dist/FileManager.d.ts +0 -143
  29. package/dist/FileManager.d.ts.map +0 -1
  30. package/dist/FileManager.js +0 -646
  31. package/dist/FileManager.js.map +0 -1
  32. package/dist/TableConfig.d.ts +0 -267
  33. package/dist/TableConfig.d.ts.map +0 -1
  34. package/dist/TableConfig.js +0 -463
  35. package/dist/TableConfig.js.map +0 -1
  36. package/dist/validation.d.ts +0 -126
  37. package/dist/validation.d.ts.map +0 -1
  38. package/dist/validation.js +0 -405
  39. package/dist/validation.js.map +0 -1
  40. package/lib/AuthHandler.d.ts +0 -187
  41. package/lib/AuthHandler.d.ts.map +0 -1
  42. package/lib/AuthHandler.js +0 -478
  43. package/lib/DBEventsManager.d.ts +0 -38
  44. package/lib/DBEventsManager.d.ts.map +0 -1
  45. package/lib/DBEventsManager.js +0 -140
  46. package/lib/DBSchemaBuilder.d.ts +0 -13
  47. package/lib/DBSchemaBuilder.d.ts.map +0 -1
  48. package/lib/DBSchemaBuilder.js +0 -145
  49. package/lib/DboBuilder/QueryBuilder/Functions.d.ts +0 -64
  50. package/lib/DboBuilder/QueryBuilder/Functions.d.ts.map +0 -1
  51. package/lib/DboBuilder/QueryBuilder/Functions.js +0 -984
  52. package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts +0 -73
  53. package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +0 -1
  54. package/lib/DboBuilder/QueryBuilder/QueryBuilder.js +0 -335
  55. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts +0 -8
  56. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +0 -1
  57. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.js +0 -227
  58. package/lib/DboBuilder/TableHandler.d.ts +0 -37
  59. package/lib/DboBuilder/TableHandler.d.ts.map +0 -1
  60. package/lib/DboBuilder/TableHandler.js +0 -213
  61. package/lib/DboBuilder/ViewHandler.d.ts +0 -119
  62. package/lib/DboBuilder/ViewHandler.d.ts.map +0 -1
  63. package/lib/DboBuilder/ViewHandler.js +0 -1023
  64. package/lib/DboBuilder/delete.d.ts +0 -6
  65. package/lib/DboBuilder/delete.d.ts.map +0 -1
  66. package/lib/DboBuilder/delete.js +0 -128
  67. package/lib/DboBuilder/find.d.ts +0 -8
  68. package/lib/DboBuilder/find.d.ts.map +0 -1
  69. package/lib/DboBuilder/find.js +0 -91
  70. package/lib/DboBuilder/getColumns.d.ts +0 -12
  71. package/lib/DboBuilder/getColumns.d.ts.map +0 -1
  72. package/lib/DboBuilder/getColumns.js +0 -92
  73. package/lib/DboBuilder/getCondition.d.ts +0 -22
  74. package/lib/DboBuilder/getCondition.d.ts.map +0 -1
  75. package/lib/DboBuilder/getCondition.js +0 -236
  76. package/lib/DboBuilder/getSubscribeRelatedTables.d.ts +0 -20
  77. package/lib/DboBuilder/getSubscribeRelatedTables.d.ts.map +0 -1
  78. package/lib/DboBuilder/getSubscribeRelatedTables.js +0 -152
  79. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.d.ts +0 -3
  80. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +0 -1
  81. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.js +0 -207
  82. package/lib/DboBuilder/insert.d.ts +0 -6
  83. package/lib/DboBuilder/insert.d.ts.map +0 -1
  84. package/lib/DboBuilder/insert.js +0 -180
  85. package/lib/DboBuilder/insertDataParse.d.ts +0 -12
  86. package/lib/DboBuilder/insertDataParse.d.ts.map +0 -1
  87. package/lib/DboBuilder/insertDataParse.js +0 -253
  88. package/lib/DboBuilder/parseUpdateRules.d.ts +0 -18
  89. package/lib/DboBuilder/parseUpdateRules.d.ts.map +0 -1
  90. package/lib/DboBuilder/parseUpdateRules.js +0 -123
  91. package/lib/DboBuilder/runSQL.d.ts +0 -7
  92. package/lib/DboBuilder/runSQL.d.ts.map +0 -1
  93. package/lib/DboBuilder/runSQL.js +0 -135
  94. package/lib/DboBuilder/subscribe.d.ts +0 -20
  95. package/lib/DboBuilder/subscribe.d.ts.map +0 -1
  96. package/lib/DboBuilder/subscribe.js +0 -90
  97. package/lib/DboBuilder/update.d.ts +0 -6
  98. package/lib/DboBuilder/update.d.ts.map +0 -1
  99. package/lib/DboBuilder/update.js +0 -151
  100. package/lib/DboBuilder/uploadFile.d.ts +0 -7
  101. package/lib/DboBuilder/uploadFile.d.ts.map +0 -1
  102. package/lib/DboBuilder/uploadFile.js +0 -53
  103. package/lib/DboBuilder.d.ts +0 -306
  104. package/lib/DboBuilder.d.ts.map +0 -1
  105. package/lib/DboBuilder.js +0 -745
  106. package/lib/Event_Trigger_Tags.d.ts +0 -4
  107. package/lib/Event_Trigger_Tags.d.ts.map +0 -1
  108. package/lib/Event_Trigger_Tags.js +0 -116
  109. package/lib/FileManager/FileManager.d.ts +0 -135
  110. package/lib/FileManager/FileManager.d.ts.map +0 -1
  111. package/lib/FileManager/FileManager.js +0 -303
  112. package/lib/FileManager/initFileManager.d.ts +0 -4
  113. package/lib/FileManager/initFileManager.d.ts.map +0 -1
  114. package/lib/FileManager/initFileManager.js +0 -231
  115. package/lib/FileManager/parseFile.d.ts +0 -15
  116. package/lib/FileManager/parseFile.d.ts.map +0 -1
  117. package/lib/FileManager/parseFile.js +0 -58
  118. package/lib/FileManager/upload.d.ts +0 -6
  119. package/lib/FileManager/upload.d.ts.map +0 -1
  120. package/lib/FileManager/upload.js +0 -98
  121. package/lib/FileManager/uploadStream.d.ts +0 -5
  122. package/lib/FileManager/uploadStream.d.ts.map +0 -1
  123. package/lib/FileManager/uploadStream.js +0 -92
  124. package/lib/Filtering.d.ts +0 -15
  125. package/lib/Filtering.d.ts.map +0 -1
  126. package/lib/Filtering.js +0 -336
  127. package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts +0 -4
  128. package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +0 -1
  129. package/lib/JSONBValidation/validate_jsonb_schema_sql.js +0 -500
  130. package/lib/JSONBValidation/validation.d.ts +0 -9
  131. package/lib/JSONBValidation/validation.d.ts.map +0 -1
  132. package/lib/JSONBValidation/validation.js +0 -131
  133. package/lib/PostgresNotifListenManager.d.ts +0 -28
  134. package/lib/PostgresNotifListenManager.d.ts.map +0 -1
  135. package/lib/PostgresNotifListenManager.js +0 -134
  136. package/lib/Prostgles.d.ts +0 -289
  137. package/lib/Prostgles.d.ts.map +0 -1
  138. package/lib/Prostgles.js +0 -685
  139. package/lib/PubSubManager/PubSubManager.d.ts +0 -175
  140. package/lib/PubSubManager/PubSubManager.d.ts.map +0 -1
  141. package/lib/PubSubManager/PubSubManager.js +0 -452
  142. package/lib/PubSubManager/addSub.d.ts +0 -8
  143. package/lib/PubSubManager/addSub.d.ts.map +0 -1
  144. package/lib/PubSubManager/addSub.js +0 -166
  145. package/lib/PubSubManager/addSync.d.ts +0 -8
  146. package/lib/PubSubManager/addSync.d.ts.map +0 -1
  147. package/lib/PubSubManager/addSync.js +0 -109
  148. package/lib/PubSubManager/getInitQuery.d.ts +0 -9
  149. package/lib/PubSubManager/getInitQuery.d.ts.map +0 -1
  150. package/lib/PubSubManager/getInitQuery.js +0 -552
  151. package/lib/PubSubManager/initPubSubManager.d.ts +0 -3
  152. package/lib/PubSubManager/initPubSubManager.d.ts.map +0 -1
  153. package/lib/PubSubManager/initPubSubManager.js +0 -116
  154. package/lib/PubSubManager/notifListener.d.ts +0 -5
  155. package/lib/PubSubManager/notifListener.d.ts.map +0 -1
  156. package/lib/PubSubManager/notifListener.js +0 -100
  157. package/lib/PubSubManager/pushSubData.d.ts +0 -3
  158. package/lib/PubSubManager/pushSubData.d.ts.map +0 -1
  159. package/lib/PubSubManager/pushSubData.js +0 -51
  160. package/lib/PublishParser.d.ts +0 -284
  161. package/lib/PublishParser.d.ts.map +0 -1
  162. package/lib/PublishParser.js +0 -421
  163. package/lib/SchemaWatch.d.ts +0 -13
  164. package/lib/SchemaWatch.d.ts.map +0 -1
  165. package/lib/SchemaWatch.js +0 -35
  166. package/lib/SyncReplication.d.ts +0 -34
  167. package/lib/SyncReplication.d.ts.map +0 -1
  168. package/lib/SyncReplication.js +0 -412
  169. package/lib/TableConfig/TableConfig.d.ts +0 -284
  170. package/lib/TableConfig/TableConfig.d.ts.map +0 -1
  171. package/lib/TableConfig/TableConfig.js +0 -437
  172. package/lib/TableConfig/getColumnDefinitionQuery.d.ts +0 -27
  173. package/lib/TableConfig/getColumnDefinitionQuery.d.ts.map +0 -1
  174. package/lib/TableConfig/getColumnDefinitionQuery.js +0 -87
  175. package/lib/TableConfig/getConstraintDefinitionQueries.d.ts +0 -34
  176. package/lib/TableConfig/getConstraintDefinitionQueries.d.ts.map +0 -1
  177. package/lib/TableConfig/getConstraintDefinitionQueries.js +0 -65
  178. package/lib/TableConfig/getFutureTableSchema.d.ts +0 -15
  179. package/lib/TableConfig/getFutureTableSchema.d.ts.map +0 -1
  180. package/lib/TableConfig/getFutureTableSchema.js +0 -43
  181. package/lib/TableConfig/getTableColumnQueries.d.ts +0 -16
  182. package/lib/TableConfig/getTableColumnQueries.d.ts.map +0 -1
  183. package/lib/TableConfig/getTableColumnQueries.js +0 -107
  184. package/lib/index.d.ts +0 -5
  185. package/lib/index.d.ts.map +0 -1
  186. package/lib/index.js +0 -7
  187. package/lib/shortestPath.d.ts +0 -10
  188. package/lib/shortestPath.d.ts.map +0 -1
  189. package/lib/shortestPath.js +0 -111
  190. package/lib/utils.d.ts +0 -3
  191. package/lib/utils.d.ts.map +0 -1
  192. package/lib/utils.js +0 -12
  193. package/tests/client/index.d.ts +0 -2
  194. package/tests/client/index.d.ts.map +0 -1
  195. package/tests/client/index.js +0 -80
  196. package/tests/client/index.js.map +0 -1
  197. package/tests/client_only_queries.d.ts +0 -4
  198. package/tests/client_only_queries.d.ts.map +0 -1
  199. package/tests/client_only_queries.js +0 -282
  200. package/tests/config_test/DBoGenerated.d.ts +0 -388
  201. package/tests/config_test/index.js +0 -174
  202. package/tests/config_test/index.js.map +0 -1
  203. package/tests/isomorphic_queries.d.ts +0 -9
  204. package/tests/isomorphic_queries.d.ts.map +0 -1
  205. package/tests/isomorphic_queries.js +0 -773
  206. package/tests/manual_test/DBoGenerated.d.ts +0 -398
  207. package/tests/manual_test/index.d.ts +0 -2
  208. package/tests/manual_test/index.d.ts.map +0 -1
  209. package/tests/manual_test/index.js +0 -65
  210. package/tests/server/dboTypeCheck.d.ts +0 -2
  211. package/tests/server/dboTypeCheck.d.ts.map +0 -1
  212. package/tests/server/dboTypeCheck.js +0 -27
  213. package/tests/server/index.d.ts +0 -2
  214. package/tests/server/index.d.ts.map +0 -1
  215. package/tests/server/index.js +0 -507
  216. package/tests/server/publishTypeCheck.d.ts +0 -2
  217. package/tests/server/publishTypeCheck.d.ts.map +0 -1
  218. package/tests/server/publishTypeCheck.js +0 -130
  219. package/tests/server_only_queries.d.ts +0 -2
  220. package/tests/server_only_queries.d.ts.map +0 -1
  221. package/tests/server_only_queries.js +0 -19
package/lib/Filtering.js DELETED
@@ -1,336 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseFilterItem = void 0;
4
- const prostgles_types_1 = require("prostgles-types");
5
- const DboBuilder_1 = require("./DboBuilder");
6
- const parseFilterItem = (args) => {
7
- const { filter: _f, select, tableAlias, pgp } = args;
8
- if (!_f || (0, prostgles_types_1.isEmpty)(_f))
9
- return "";
10
- const mErr = (msg) => {
11
- throw `${msg}: ${JSON.stringify(_f, null, 2)}`;
12
- };
13
- const asValue = (v) => pgp.as.format("$1", [v]);
14
- const fKeys = (0, prostgles_types_1.getKeys)(_f);
15
- if (fKeys.length === 0) {
16
- return "";
17
- /**
18
- * { field1: cond1, field2: cond2 }
19
- */
20
- }
21
- else if (fKeys.length > 1) {
22
- return fKeys.map(fk => (0, exports.parseFilterItem)({
23
- filter: { [fk]: _f[fk] },
24
- select,
25
- tableAlias,
26
- pgp,
27
- }))
28
- .sort() /* sorted to ensure duplicate subscription channels are not created due to different condition order */
29
- .join(" AND ");
30
- }
31
- const fKey = fKeys[0];
32
- /* Exists filter */
33
- if (prostgles_types_1.EXISTS_KEYS.find(k => k in _f)) {
34
- // parseExistsFilter()
35
- }
36
- let selItem;
37
- if (select)
38
- selItem = select.find(s => fKey === s.alias);
39
- let rightF = _f[fKey];
40
- const getLeftQ = (selItm) => {
41
- if (selItm.type === "function")
42
- return selItm.getQuery();
43
- return selItm.getQuery(tableAlias);
44
- };
45
- /**
46
- * Parsed left side of the query
47
- */
48
- let leftQ; // = asName(selItem.alias);
49
- /*
50
- Select item not found.
51
- Check if dot/json notation. Build obj if necessary
52
- */
53
- const dot_notation_delims = ["->", "."];
54
- if (!selItem) {
55
- /* See if dot notation. Pick the best matching starting string */
56
- if (select) {
57
- selItem = select.find(s => dot_notation_delims.find(delimiter => fKey.startsWith(s.alias + delimiter)));
58
- }
59
- if (!selItem) {
60
- return mErr("Bad filter. Could not match to a column or alias or dot notation: ");
61
- }
62
- let remainingStr = fKey.slice(selItem.alias.length);
63
- /* Is json path spec */
64
- if (remainingStr.startsWith("->")) {
65
- /** Has shorthand operand 'col->>key.<>' */
66
- const matchingOperand = prostgles_types_1.CompareFilterKeys.find(operand => remainingStr.endsWith(`.${operand}`));
67
- if (matchingOperand) {
68
- remainingStr = remainingStr.slice(0, -matchingOperand.length - 1);
69
- rightF = { [matchingOperand]: rightF };
70
- }
71
- leftQ = getLeftQ(selItem);
72
- const getSep = (fromIdx = 0) => {
73
- const strPart = remainingStr.slice(fromIdx);
74
- let idx = strPart.indexOf("->");
75
- const idxx = strPart.indexOf("->>");
76
- if (idx > -1) {
77
- /* if -> matches then check if it's the last separator */
78
- if (idx === idxx)
79
- return { idx: idx + fromIdx, sep: "->>" };
80
- return { idx: idx + fromIdx, sep: "->" };
81
- }
82
- idx = strPart.indexOf("->>");
83
- if (idx > -1) {
84
- return { idx: idx + fromIdx, sep: "->>" };
85
- }
86
- return undefined;
87
- };
88
- let currSep = getSep();
89
- while (currSep) {
90
- let nextSep = getSep(currSep.idx + currSep.sep.length);
91
- let nextIdx = nextSep ? nextSep.idx : remainingStr.length;
92
- /* If ending in set then add set as well into key */
93
- if (nextSep && nextIdx + nextSep.sep.length === remainingStr.length) {
94
- nextIdx = remainingStr.length;
95
- nextSep = undefined;
96
- }
97
- // console.log({ currSep, nextSep })
98
- leftQ += currSep.sep + asValue(remainingStr.slice(currSep.idx + currSep.sep.length, nextIdx));
99
- currSep = nextSep;
100
- }
101
- /*
102
- Is collapsed filter spec e.g. { "col.$ilike": 'text' }
103
- will transform into { col: { $ilike: ['text'] } }
104
- */
105
- }
106
- else if (remainingStr.startsWith(".")) {
107
- leftQ = getLeftQ(selItem);
108
- const getSep = (fromIdx = 0) => {
109
- const idx = remainingStr.slice(fromIdx).indexOf(".");
110
- if (idx > -1)
111
- return fromIdx + idx;
112
- return idx;
113
- };
114
- let currIdx = getSep();
115
- const res = {};
116
- let curObj = res;
117
- while (currIdx > -1) {
118
- let nextIdx = getSep(currIdx + 1);
119
- let nIdx = nextIdx > -1 ? nextIdx : remainingStr.length;
120
- /* If ending in dot then add dot as well into key */
121
- if (nextIdx + 1 === remainingStr.length) {
122
- nIdx = remainingStr.length;
123
- nextIdx = -1;
124
- }
125
- const key = remainingStr.slice(currIdx + 1, nIdx);
126
- curObj[key] = nextIdx > -1 ? {} : _f[fKey];
127
- curObj = curObj[key];
128
- currIdx = nextIdx;
129
- }
130
- rightF = res;
131
- }
132
- else {
133
- console.trace(141, select, selItem, remainingStr);
134
- mErr("Bad filter. Could not find the valid col name or alias or col json path");
135
- }
136
- }
137
- else {
138
- leftQ = getLeftQ(selItem);
139
- }
140
- if (!leftQ)
141
- mErr("Internal error: leftQ missing?!");
142
- /* Matching sel item */
143
- if ((0, DboBuilder_1.isPlainObject)(rightF)) {
144
- const parseRightVal = (val, expect = null) => {
145
- const checkIfArr = () => {
146
- if (!Array.isArray(val))
147
- return mErr("This type of filter/column expects an Array of items");
148
- };
149
- if (expect === "csv") {
150
- checkIfArr();
151
- return pgp.as.format("($1:csv)", [val]);
152
- }
153
- else if (expect === "array" || selItem && selItem.columnPGDataType && selItem.columnPGDataType === "ARRAY") {
154
- checkIfArr();
155
- return pgp.as.format(" ARRAY[$1:csv]", [val]);
156
- }
157
- return asValue(val);
158
- };
159
- const OPERANDS = [
160
- ...prostgles_types_1.TextFilterKeys,
161
- ...prostgles_types_1.JsonbFilterKeys,
162
- ...prostgles_types_1.CompareFilterKeys,
163
- ...prostgles_types_1.CompareInFilterKeys
164
- ];
165
- const filterKeys = Object.keys(rightF);
166
- let filterOperand = filterKeys[0];
167
- /** JSON cannot be compared so we'll cast it to TEXT */
168
- if (selItem?.column_udt_type === "json" || prostgles_types_1.TextFilterKeys.includes(filterOperand)) {
169
- leftQ += "::TEXT ";
170
- }
171
- /** It's an object key which means it's an equality comparison against a json object */
172
- if (selItem?.column_udt_type?.startsWith("json") && !OPERANDS.includes(filterOperand)) {
173
- return leftQ + " = " + parseRightVal(rightF);
174
- }
175
- let filterValue = rightF[filterOperand];
176
- const ALLOWED_FUNCS = [...prostgles_types_1.GeomFilter_Funcs, ...prostgles_types_1.TextFilter_FullTextSearchFilterKeys];
177
- let funcName;
178
- let funcArgs;
179
- if (selItem.column_udt_type === "interval" && (0, prostgles_types_1.isObject)(rightF) && Object.values(rightF).every(v => Number.isFinite(v))) {
180
- filterOperand = "=";
181
- filterValue = Object.entries(rightF).map(([k, v]) => `${v}${k}`).join(" ");
182
- }
183
- else if (filterKeys.length !== 1 && selItem.column_udt_type !== "jsonb") {
184
- return mErr("Bad filter. Expecting one key only");
185
- }
186
- else if ((0, prostgles_types_1.isObject)(filterValue) && !(filterValue instanceof Date)) {
187
- /**
188
- * Filter notation
189
- * geom && st_makeenvelope(funcArgs)
190
- */
191
- const filterValueKeys = Object.keys(filterValue);
192
- // if(!filterValueKeys.length || filterValueKeys.length !== 1){
193
- // return mErr("Bad filter. Expecting a nested object with one key only but got: " + JSON.stringify(filterValue, null, 2));
194
- // }
195
- funcName = filterValueKeys[0];
196
- if (ALLOWED_FUNCS.includes(funcName)) {
197
- funcArgs = filterValue[funcName];
198
- // return mErr(`Bad filter. Nested function ${funcName} could not be found. Expecting one of: ${ALLOWED_FUNCS}`);
199
- }
200
- else {
201
- funcName = undefined;
202
- }
203
- }
204
- /** st_makeenvelope */
205
- if (prostgles_types_1.GeomFilterKeys.includes(filterOperand) && funcName && prostgles_types_1.GeomFilter_Funcs.includes(funcName)) {
206
- /** If leftQ is geography then this err can happen: 'Antipodal (180 degrees long) edge detected!' */
207
- if (funcName.toLowerCase() === "st_makeenvelope") {
208
- leftQ += "::geometry";
209
- }
210
- return `${leftQ} ${filterOperand} ${funcName}${parseRightVal(funcArgs, "csv")}`;
211
- }
212
- else if (["=", "$eq"].includes(filterOperand) && !funcName) {
213
- if (filterValue === null)
214
- return leftQ + " IS NULL ";
215
- return leftQ + " = " + parseRightVal(filterValue);
216
- }
217
- else if (["<>", "$ne"].includes(filterOperand)) {
218
- if (filterValue === null)
219
- return leftQ + " IS NOT NULL ";
220
- return leftQ + " <> " + parseRightVal(filterValue);
221
- }
222
- else if ([">", "$gt"].includes(filterOperand)) {
223
- return leftQ + " > " + parseRightVal(filterValue);
224
- }
225
- else if (["<", "$lt"].includes(filterOperand)) {
226
- return leftQ + " < " + parseRightVal(filterValue);
227
- }
228
- else if ([">=", "$gte"].includes(filterOperand)) {
229
- return leftQ + " >= " + parseRightVal(filterValue);
230
- }
231
- else if (["<=", "$lte"].includes(filterOperand)) {
232
- return leftQ + " <= " + parseRightVal(filterValue);
233
- }
234
- else if (["$in"].includes(filterOperand)) {
235
- if (!filterValue?.length) {
236
- return " FALSE ";
237
- }
238
- const _fVal = filterValue.filter((v) => v !== null);
239
- let c1 = "", c2 = "";
240
- if (_fVal.length) {
241
- c1 = leftQ + " IN " + parseRightVal(_fVal, "csv");
242
- }
243
- if (filterValue.includes(null))
244
- c2 = ` ${leftQ} IS NULL `;
245
- return [c1, c2].filter(c => c).join(" OR ");
246
- }
247
- else if (["$nin"].includes(filterOperand)) {
248
- if (!filterValue?.length) {
249
- return " TRUE ";
250
- }
251
- const _fVal = filterValue.filter((v) => v !== null);
252
- let c1 = "", c2 = "";
253
- if (_fVal.length)
254
- c1 = leftQ + " NOT IN " + parseRightVal(_fVal, "csv");
255
- if (filterValue.includes(null))
256
- c2 = ` ${leftQ} IS NOT NULL `;
257
- return [c1, c2].filter(c => c).join(" AND ");
258
- }
259
- else if (["$between"].includes(filterOperand)) {
260
- if (!Array.isArray(filterValue) || filterValue.length !== 2) {
261
- return mErr("Between filter expects an array of two values");
262
- }
263
- return leftQ + " BETWEEN " + asValue(filterValue[0]) + " AND " + asValue(filterValue[1]);
264
- }
265
- else if (["$ilike"].includes(filterOperand)) {
266
- return leftQ + " ILIKE " + asValue(filterValue);
267
- }
268
- else if (["$like"].includes(filterOperand)) {
269
- return leftQ + " LIKE " + asValue(filterValue);
270
- }
271
- else if (["$nilike"].includes(filterOperand)) {
272
- return leftQ + " NOT ILIKE " + asValue(filterValue);
273
- }
274
- else if (["$nlike"].includes(filterOperand)) {
275
- return leftQ + " NOT LIKE " + asValue(filterValue);
276
- /* MAYBE TEXT OR MAYBE ARRAY */
277
- }
278
- else if (["@>", "<@", "$contains", "$containedBy", "$overlaps", "&&", "@@"].includes(filterOperand)) {
279
- const operand = filterOperand === "@@" ? "@@" :
280
- ["@>", "$contains"].includes(filterOperand) ? "@>" :
281
- ["&&", "$overlaps"].includes(filterOperand) ? "&&" :
282
- "<@";
283
- /* Array for sure */
284
- if (Array.isArray(filterValue)) {
285
- return leftQ + operand + parseRightVal(filterValue, "array");
286
- /* FTSQuery */
287
- }
288
- else if (["@@"].includes(filterOperand) && prostgles_types_1.TextFilter_FullTextSearchFilterKeys.includes(funcName)) {
289
- let lq = `to_tsvector(${leftQ}::text)`;
290
- if (selItem && selItem.columnPGDataType === "tsvector")
291
- lq = leftQ;
292
- const res = `${lq} ${operand} ` + `${funcName}${parseRightVal(funcArgs, "csv")}`;
293
- return res;
294
- }
295
- else {
296
- return mErr("Unrecognised filter operand: " + filterOperand + " ");
297
- }
298
- }
299
- else {
300
- return mErr("Unrecognised filter operand: " + filterOperand + " ");
301
- }
302
- }
303
- else {
304
- /* Is an equal filter */
305
- if (rightF === null) {
306
- return leftQ + " IS NULL ";
307
- }
308
- else {
309
- return leftQ + " = " + asValue(rightF);
310
- }
311
- }
312
- };
313
- exports.parseFilterItem = parseFilterItem;
314
- // ensure pgp is not NULL!!!
315
- // const asValue = v => v;// pgp.as.value;
316
- // const filters: FilterSpec[] = [
317
- // ...(["ilike", "like"].map(op => ({
318
- // operands: ["$" + op],
319
- // tsDataTypes: ["any"] as TSDataType[],
320
- // tsDefinition: ` { $${op}: string } `,
321
- // // data_types:
322
- // getQuery: (leftQuery: string, rightVal: any) => {
323
- // return `${leftQuery}::text ${op.toUpperCase()} ${asValue(rightVal)}::text`
324
- // }
325
- // }))),
326
- // {
327
- // operands: ["", "="],
328
- // tsDataTypes: ["any"],
329
- // tsDefinition: ` { "=": any } | any `,
330
- // // data_types:
331
- // getQuery: (leftQuery: string, rightVal: any) => {
332
- // if(rightVal === null) return`${leftQuery} IS NULL `;
333
- // return `${leftQuery} = ${asValue(rightVal)}`;
334
- // }
335
- // }
336
- // ];
@@ -1,4 +0,0 @@
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", ...("number[]" | "boolean[]" | "string[]" | "any[]" | "integer[]" | "time[]" | "timestamp[]" | "Date[]")[], "Lookup", "Lookup[]"];
3
- export declare const validate_jsonb_schema_sql: string;
4
- //# sourceMappingURL=validate_jsonb_schema_sql.d.ts.map
@@ -1 +0,0 @@
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,QAkerC,CAAC"}