prostgles-server 3.0.86 → 3.0.88

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 (216) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.json +30 -0
  3. package/dist/DBEventsManager.js +1 -1
  4. package/dist/DBEventsManager.js.map +1 -1
  5. package/dist/DBSchemaBuilder.d.ts.map +1 -1
  6. package/dist/DBSchemaBuilder.js +6 -6
  7. package/dist/DBSchemaBuilder.js.map +1 -1
  8. package/dist/DboBuilder/QueryBuilder/Functions.js +9 -9
  9. package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
  10. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
  11. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +8 -7
  12. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
  13. package/dist/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +1 -1
  14. package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js +4 -4
  15. package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js.map +1 -1
  16. package/dist/DboBuilder/TableHandler.d.ts.map +1 -1
  17. package/dist/DboBuilder/TableHandler.js +18 -20
  18. package/dist/DboBuilder/TableHandler.js.map +1 -1
  19. package/dist/DboBuilder/ViewHandler.d.ts +0 -10
  20. package/dist/DboBuilder/ViewHandler.d.ts.map +1 -1
  21. package/dist/DboBuilder/ViewHandler.js +50 -63
  22. package/dist/DboBuilder/ViewHandler.js.map +1 -1
  23. package/dist/DboBuilder/delete.js +0 -1
  24. package/dist/DboBuilder/delete.js.map +1 -1
  25. package/dist/DboBuilder/getColumns.js +5 -4
  26. package/dist/DboBuilder/getColumns.js.map +1 -1
  27. package/dist/DboBuilder/getCondition.d.ts.map +1 -1
  28. package/dist/DboBuilder/getCondition.js +6 -6
  29. package/dist/DboBuilder/getCondition.js.map +1 -1
  30. package/dist/DboBuilder/insert.js +15 -16
  31. package/dist/DboBuilder/insert.js.map +1 -1
  32. package/dist/DboBuilder/insertDataParse.d.ts.map +1 -1
  33. package/dist/DboBuilder/insertDataParse.js +9 -10
  34. package/dist/DboBuilder/insertDataParse.js.map +1 -1
  35. package/dist/DboBuilder/parseUpdateRules.js +2 -2
  36. package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
  37. package/dist/DboBuilder/runSQL.d.ts.map +1 -1
  38. package/dist/DboBuilder/runSQL.js +5 -5
  39. package/dist/DboBuilder/runSQL.js.map +1 -1
  40. package/dist/DboBuilder/subscribe.js +3 -3
  41. package/dist/DboBuilder/subscribe.js.map +1 -1
  42. package/dist/DboBuilder/update.js +5 -6
  43. package/dist/DboBuilder/update.js.map +1 -1
  44. package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
  45. package/dist/DboBuilder/uploadFile.js +1 -1
  46. package/dist/DboBuilder/uploadFile.js.map +1 -1
  47. package/dist/DboBuilder.d.ts.map +1 -1
  48. package/dist/DboBuilder.js +13 -14
  49. package/dist/DboBuilder.js.map +1 -1
  50. package/dist/FileManager.d.ts.map +1 -1
  51. package/dist/FileManager.js +3 -5
  52. package/dist/FileManager.js.map +1 -1
  53. package/dist/Filtering.js +7 -7
  54. package/dist/Filtering.js.map +1 -1
  55. package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts +3 -0
  56. package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -0
  57. package/dist/JSONBValidation/validate_jsonb_schema_sql.js +295 -0
  58. package/dist/JSONBValidation/validate_jsonb_schema_sql.js.map +1 -0
  59. package/dist/JSONBValidation/validation.d.ts +108 -0
  60. package/dist/JSONBValidation/validation.d.ts.map +1 -0
  61. package/dist/JSONBValidation/validation.js +222 -0
  62. package/dist/JSONBValidation/validation.js.map +1 -0
  63. package/dist/PostgresNotifListenManager.js +1 -1
  64. package/dist/PostgresNotifListenManager.js.map +1 -1
  65. package/dist/Prostgles.d.ts.map +1 -1
  66. package/dist/Prostgles.js +20 -20
  67. package/dist/Prostgles.js.map +1 -1
  68. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  69. package/dist/PubSubManager/PubSubManager.js +10 -8
  70. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  71. package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
  72. package/dist/PubSubManager/initPubSubManager.js +10 -7
  73. package/dist/PubSubManager/initPubSubManager.js.map +1 -1
  74. package/dist/PublishParser.d.ts.map +1 -1
  75. package/dist/PublishParser.js +122 -125
  76. package/dist/PublishParser.js.map +1 -1
  77. package/dist/SyncReplication.d.ts.map +1 -1
  78. package/dist/SyncReplication.js +19 -16
  79. package/dist/SyncReplication.js.map +1 -1
  80. package/dist/TableConfig.d.ts +9 -5
  81. package/dist/TableConfig.d.ts.map +1 -1
  82. package/dist/TableConfig.js +33 -12
  83. package/dist/TableConfig.js.map +1 -1
  84. package/dist/index.js +1 -1
  85. package/dist/index.js.map +1 -1
  86. package/dist/shortestPath.js +11 -11
  87. package/dist/shortestPath.js.map +1 -1
  88. package/dist/validation.d.ts +50 -24
  89. package/dist/validation.d.ts.map +1 -1
  90. package/dist/validation.js +177 -53
  91. package/dist/validation.js.map +1 -1
  92. package/lib/AuthHandler.d.ts +11 -11
  93. package/lib/AuthHandler.d.ts.map +1 -1
  94. package/lib/DBEventsManager.js +1 -1
  95. package/lib/DBEventsManager.ts +1 -1
  96. package/lib/DBSchemaBuilder.d.ts +3 -3
  97. package/lib/DBSchemaBuilder.d.ts.map +1 -1
  98. package/lib/DBSchemaBuilder.js +6 -6
  99. package/lib/DBSchemaBuilder.ts +10 -9
  100. package/lib/DboBuilder/QueryBuilder/Functions.d.ts +3 -3
  101. package/lib/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
  102. package/lib/DboBuilder/QueryBuilder/Functions.js +9 -9
  103. package/lib/DboBuilder/QueryBuilder/Functions.ts +13 -13
  104. package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts +3 -3
  105. package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
  106. package/lib/DboBuilder/QueryBuilder/QueryBuilder.js +8 -7
  107. package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +12 -12
  108. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +1 -1
  109. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.js +4 -4
  110. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.ts +5 -5
  111. package/lib/DboBuilder/TableHandler.d.ts +1 -1
  112. package/lib/DboBuilder/TableHandler.d.ts.map +1 -1
  113. package/lib/DboBuilder/TableHandler.js +18 -20
  114. package/lib/DboBuilder/TableHandler.ts +21 -20
  115. package/lib/DboBuilder/ViewHandler.d.ts +1 -11
  116. package/lib/DboBuilder/ViewHandler.d.ts.map +1 -1
  117. package/lib/DboBuilder/ViewHandler.js +50 -63
  118. package/lib/DboBuilder/ViewHandler.ts +68 -97
  119. package/lib/DboBuilder/delete.js +0 -1
  120. package/lib/DboBuilder/delete.ts +1 -1
  121. package/lib/DboBuilder/getColumns.js +5 -4
  122. package/lib/DboBuilder/getColumns.ts +5 -5
  123. package/lib/DboBuilder/getCondition.d.ts.map +1 -1
  124. package/lib/DboBuilder/getCondition.js +6 -6
  125. package/lib/DboBuilder/getCondition.ts +7 -7
  126. package/lib/DboBuilder/insert.js +15 -16
  127. package/lib/DboBuilder/insert.ts +18 -18
  128. package/lib/DboBuilder/insertDataParse.d.ts.map +1 -1
  129. package/lib/DboBuilder/insertDataParse.js +9 -10
  130. package/lib/DboBuilder/insertDataParse.ts +42 -43
  131. package/lib/DboBuilder/parseUpdateRules.js +2 -2
  132. package/lib/DboBuilder/parseUpdateRules.ts +2 -2
  133. package/lib/DboBuilder/runSQL.d.ts.map +1 -1
  134. package/lib/DboBuilder/runSQL.js +5 -5
  135. package/lib/DboBuilder/runSQL.ts +6 -6
  136. package/lib/DboBuilder/subscribe.d.ts +1 -1
  137. package/lib/DboBuilder/subscribe.d.ts.map +1 -1
  138. package/lib/DboBuilder/subscribe.js +3 -3
  139. package/lib/DboBuilder/subscribe.ts +3 -3
  140. package/lib/DboBuilder/update.js +5 -6
  141. package/lib/DboBuilder/update.ts +6 -6
  142. package/lib/DboBuilder/uploadFile.d.ts.map +1 -1
  143. package/lib/DboBuilder/uploadFile.js +1 -1
  144. package/lib/DboBuilder/uploadFile.ts +2 -2
  145. package/lib/DboBuilder.d.ts +22 -22
  146. package/lib/DboBuilder.d.ts.map +1 -1
  147. package/lib/DboBuilder.js +13 -14
  148. package/lib/DboBuilder.ts +19 -19
  149. package/lib/FileManager.d.ts +6 -6
  150. package/lib/FileManager.d.ts.map +1 -1
  151. package/lib/FileManager.js +3 -5
  152. package/lib/FileManager.ts +7 -6
  153. package/lib/Filtering.d.ts +1 -1
  154. package/lib/Filtering.d.ts.map +1 -1
  155. package/lib/Filtering.js +7 -7
  156. package/lib/Filtering.ts +7 -7
  157. package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts +3 -0
  158. package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -0
  159. package/lib/JSONBValidation/validate_jsonb_schema_sql.js +294 -0
  160. package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +293 -0
  161. package/lib/JSONBValidation/validation.d.ts +108 -0
  162. package/lib/JSONBValidation/validation.d.ts.map +1 -0
  163. package/lib/JSONBValidation/validation.js +221 -0
  164. package/lib/JSONBValidation/validation.ts +332 -0
  165. package/lib/PostgresNotifListenManager.d.ts +1 -1
  166. package/lib/PostgresNotifListenManager.d.ts.map +1 -1
  167. package/lib/PostgresNotifListenManager.js +1 -1
  168. package/lib/PostgresNotifListenManager.ts +1 -1
  169. package/lib/Prostgles.d.ts +14 -14
  170. package/lib/Prostgles.d.ts.map +1 -1
  171. package/lib/Prostgles.js +20 -19
  172. package/lib/Prostgles.ts +22 -21
  173. package/lib/PubSubManager/PubSubManager.d.ts +7 -7
  174. package/lib/PubSubManager/PubSubManager.d.ts.map +1 -1
  175. package/lib/PubSubManager/PubSubManager.js +10 -8
  176. package/lib/PubSubManager/PubSubManager.ts +13 -8
  177. package/lib/PubSubManager/initPubSubManager.d.ts.map +1 -1
  178. package/lib/PubSubManager/initPubSubManager.js +10 -7
  179. package/lib/PubSubManager/initPubSubManager.ts +12 -7
  180. package/lib/PublishParser.d.ts +32 -32
  181. package/lib/PublishParser.d.ts.map +1 -1
  182. package/lib/PublishParser.js +121 -124
  183. package/lib/PublishParser.ts +125 -127
  184. package/lib/SchemaWatch.d.ts +1 -1
  185. package/lib/SchemaWatch.d.ts.map +1 -1
  186. package/lib/SyncReplication.d.ts +5 -5
  187. package/lib/SyncReplication.d.ts.map +1 -1
  188. package/lib/SyncReplication.js +19 -16
  189. package/lib/SyncReplication.ts +470 -471
  190. package/lib/TableConfig.d.ts +28 -24
  191. package/lib/TableConfig.d.ts.map +1 -1
  192. package/lib/TableConfig.js +33 -12
  193. package/lib/TableConfig.ts +55 -21
  194. package/lib/index.js +1 -1
  195. package/lib/index.ts +1 -1
  196. package/lib/shortestPath.d.ts +1 -1
  197. package/lib/shortestPath.d.ts.map +1 -1
  198. package/lib/shortestPath.js +11 -11
  199. package/lib/shortestPath.ts +11 -11
  200. package/package.json +10 -6
  201. package/tests/client/PID.txt +1 -1
  202. package/tests/client/package-lock.json +53 -31
  203. package/tests/client/package.json +4 -1
  204. package/tests/isomorphic_queries.d.ts.map +1 -1
  205. package/tests/isomorphic_queries.js +28 -26
  206. package/tests/isomorphic_queries.ts +30 -29
  207. package/tests/server/DBoGenerated.d.ts +1 -1
  208. package/tests/server/index.js +8 -7
  209. package/tests/server/index.ts +10 -8
  210. package/tests/server/package-lock.json +76 -58
  211. package/tests/server/package.json +2 -2
  212. package/tests/server/server.ts +2 -3
  213. package/lib/validation.d.ts +0 -100
  214. package/lib/validation.d.ts.map +0 -1
  215. package/lib/validation.js +0 -280
  216. package/lib/validation.ts +0 -360
@@ -106,7 +106,7 @@ class PublishParser {
106
106
  };
107
107
  }
108
108
  async getAllowedMethods(socket, userData) {
109
- let methods = {};
109
+ const methods = {};
110
110
  const publishParams = await this.getPublishParams({ socket }, userData);
111
111
  const _methods = await applyParamsIfFunc(this.publishMethods, publishParams);
112
112
  if (_methods && Object.keys(_methods).length) {
@@ -130,9 +130,9 @@ class PublishParser {
130
130
  */
131
131
  async getPublish(localParams, clientInfo) {
132
132
  const publishParams = await this.getPublishParams(localParams, clientInfo);
133
- let _publish = await applyParamsIfFunc(this.publish, publishParams);
133
+ const _publish = await applyParamsIfFunc(this.publish, publishParams);
134
134
  if (_publish === "*") {
135
- let publish = {};
135
+ const publish = {};
136
136
  this.prostgles.dboBuilder.tablesOrViews?.map(tov => {
137
137
  publish[tov.name] = "*";
138
138
  });
@@ -149,7 +149,7 @@ class PublishParser {
149
149
  throw "INTERNAL ERROR: dbo is missing";
150
150
  if (!command || !tableName)
151
151
  throw "command OR tableName are missing";
152
- let rtm = RULE_TO_METHODS.find(rtms => rtms.methods.includes(command));
152
+ const rtm = RULE_TO_METHODS.find(rtms => rtms.methods.includes(command));
153
153
  if (!rtm) {
154
154
  throw "Invalid command: " + command;
155
155
  }
@@ -167,7 +167,7 @@ class PublishParser {
167
167
  const schm = localParams?.socket?.prostgles?.schema?.[tableName]?.[command];
168
168
  if (schm && schm.err)
169
169
  throw schm.err;
170
- let table_rule = await this.getTableRules({ tableName, localParams }, clientInfo);
170
+ const table_rule = await this.getTableRules({ tableName, localParams }, clientInfo);
171
171
  if (!table_rule)
172
172
  throw { stack: ["getValidatedRequestRule()"], message: "Invalid or disallowed table: " + tableName };
173
173
  if (command === "upsert") {
@@ -182,144 +182,141 @@ class PublishParser {
182
182
  throw { stack: ["getValidatedRequestRule()"], message: `Invalid or disallowed command: ${tableName}.${command}` };
183
183
  }
184
184
  async getTableRules({ tableName, localParams }, clientInfo) {
185
- try {
186
- if (!localParams || !tableName)
187
- throw { stack: ["getTableRules()"], message: "publish OR socket OR dbo OR tableName are missing" };
188
- let _publish = await this.getPublish(localParams, clientInfo);
189
- const raw_table_rules = _publish[tableName];
190
- if (!raw_table_rules || (0, prostgles_types_1.isObject)(raw_table_rules) && Object.values(raw_table_rules).every(v => !v)) {
191
- return undefined;
185
+ if (!localParams || !tableName)
186
+ throw { stack: ["getTableRules()"], message: "publish OR socket OR dbo OR tableName are missing" };
187
+ const _publish = await this.getPublish(localParams, clientInfo);
188
+ const raw_table_rules = _publish[tableName];
189
+ if (!raw_table_rules || (0, prostgles_types_1.isObject)(raw_table_rules) && Object.values(raw_table_rules).every(v => !v)) {
190
+ return undefined;
191
+ }
192
+ let parsed_table = {};
193
+ /* Get view or table specific rules */
194
+ const tHandler = this.dbo[tableName];
195
+ const is_view = tHandler.is_view;
196
+ const canSubscribe = (!is_view || tHandler.columns.some(c => c.references));
197
+ if (!tHandler) {
198
+ throw { stack: ["getTableRules()"], message: `${tableName} could not be found in dbo` };
199
+ }
200
+ const MY_RULES = RULE_TO_METHODS.filter(r => {
201
+ /** Check PG User privileges */
202
+ const pgUserIsAllowedThis = tHandler.tableOrViewInfo.privileges[r.sqlRule];
203
+ let result = (!is_view || !r.table_only) && pgUserIsAllowedThis;
204
+ if (!pgUserIsAllowedThis && (0, DboBuilder_1.isPlainObject)(raw_table_rules) && raw_table_rules[r.sqlRule]) {
205
+ throw `Your postgres user is not allowed ${r.sqlRule} on table ${tableName}`;
206
+ }
207
+ if ((r.rule === "subscribe" || r.rule === "sync") && !this.prostgles.isSuperUser) {
208
+ result = false;
209
+ if ((0, DboBuilder_1.isPlainObject)(raw_table_rules) && raw_table_rules[r.rule]) {
210
+ throw `Cannot publish realtime rule ${tableName}.${r.rule}. Superuser is required for this`;
211
+ }
192
212
  }
193
- let parsed_table = {};
194
- /* Get view or table specific rules */
195
- const tHandler = this.dbo[tableName];
196
- const is_view = tHandler.is_view;
197
- const canSubscribe = (!is_view || tHandler.columns.some(c => c.references));
198
- if (!tHandler) {
199
- throw { stack: ["getTableRules()"], message: `${tableName} could not be found in dbo` };
213
+ if (r.rule === "subscribe" && !canSubscribe) {
214
+ result = false;
200
215
  }
201
- const MY_RULES = RULE_TO_METHODS.filter(r => {
202
- /** Check PG User privileges */
203
- const pgUserIsAllowedThis = tHandler.tableOrViewInfo.privileges[r.sqlRule];
204
- let result = (!is_view || !r.table_only) && pgUserIsAllowedThis;
205
- if (!pgUserIsAllowedThis && (0, DboBuilder_1.isPlainObject)(raw_table_rules) && raw_table_rules[r.sqlRule]) {
206
- throw `Your postgres user is not allowed ${r.sqlRule} on table ${tableName}`;
216
+ return result;
217
+ });
218
+ /* All methods allowed. Add no limits for table rules */
219
+ if ([true, "*"].includes(raw_table_rules)) {
220
+ parsed_table = {};
221
+ MY_RULES.filter(r => r.no_limits).forEach(r => {
222
+ parsed_table[r.rule] = { ...r.no_limits };
223
+ });
224
+ /** Specific rules allowed */
225
+ }
226
+ else if ((0, DboBuilder_1.isPlainObject)(raw_table_rules) && (0, prostgles_types_1.getKeys)(raw_table_rules).length) {
227
+ const allRuleKeys = (0, prostgles_types_1.getKeys)(raw_table_rules);
228
+ const dissallowedRuleKeys = allRuleKeys.filter(m => !raw_table_rules[m]);
229
+ MY_RULES.map(r => {
230
+ /** Unless specifically disabled these are allowed */
231
+ if (["getInfo", "getColumns"].includes(r.rule) && !dissallowedRuleKeys.includes(r.rule)) {
232
+ parsed_table[r.rule] = r.no_limits;
233
+ return;
207
234
  }
208
- if ((r.rule === "subscribe" || r.rule === "sync") && !this.prostgles.isSuperUser) {
209
- result = false;
210
- if ((0, DboBuilder_1.isPlainObject)(raw_table_rules) && raw_table_rules[r.rule]) {
211
- throw `Cannot publish realtime rule ${tableName}.${r.rule}. Superuser is required for this`;
212
- }
235
+ /** Add no_limit values for implied/ fully allowed methods */
236
+ if ([true, "*"].includes(raw_table_rules[r.rule]) && r.no_limits) {
237
+ parsed_table[r.rule] = Object.assign({}, r.no_limits);
238
+ /** Carry over detailed config */
213
239
  }
214
- if (r.rule === "subscribe" && !canSubscribe) {
215
- result = false;
240
+ else if ((0, DboBuilder_1.isPlainObject)(raw_table_rules[r.rule])) {
241
+ parsed_table[r.rule] = raw_table_rules[r.rule];
216
242
  }
217
- return result;
218
243
  });
219
- /* All methods allowed. Add no limits for table rules */
220
- if ([true, "*"].includes(raw_table_rules)) {
221
- parsed_table = {};
222
- MY_RULES.filter(r => r.no_limits).forEach(r => {
223
- parsed_table[r.rule] = { ...r.no_limits };
224
- });
225
- /** Specific rules allowed */
226
- }
227
- else if ((0, DboBuilder_1.isPlainObject)(raw_table_rules) && (0, prostgles_types_1.getKeys)(raw_table_rules).length) {
228
- const allRuleKeys = (0, prostgles_types_1.getKeys)(raw_table_rules);
229
- const dissallowedRuleKeys = allRuleKeys.filter(m => !raw_table_rules[m]);
230
- MY_RULES.map(r => {
231
- /** Unless specifically disabled these are allowed */
232
- if (["getInfo", "getColumns"].includes(r.rule) && !dissallowedRuleKeys.includes(r.rule)) {
233
- parsed_table[r.rule] = r.no_limits;
234
- return;
244
+ allRuleKeys.filter(m => parsed_table[m])
245
+ .forEach((method) => {
246
+ const rule = parsed_table[method];
247
+ const rm = MY_RULES.find(r => r.rule === method || r.methods.includes(method));
248
+ if (!rm) {
249
+ let extraInfo = "";
250
+ if (is_view && RULE_TO_METHODS.find(r => !is_view && r.rule === method || r.methods.includes(method))) {
251
+ extraInfo = "You've specified table rules to a view\n";
235
252
  }
236
- /** Add no_limit values for implied/ fully allowed methods */
237
- if ([true, "*"].includes(raw_table_rules[r.rule]) && r.no_limits) {
238
- parsed_table[r.rule] = Object.assign({}, r.no_limits);
239
- /** Carry over detailed config */
253
+ throw `Invalid rule in publish.${tableName} -> ${method} \n${extraInfo}Expecting any of: ${MY_RULES.flatMap(r => [r.rule, ...r.methods]).join(", ")}`;
254
+ }
255
+ /* Check RULES for invalid params */
256
+ /* Methods do not have params -> They use them from rules */
257
+ if (method === rm.rule && (0, prostgles_types_1.isObject)(rule)) {
258
+ const method_params = (0, prostgles_types_1.getKeys)(rule);
259
+ const iparam = method_params.find(p => !rm?.allowed_params.includes(p));
260
+ if (iparam) {
261
+ throw `Invalid setting in publish.${tableName}.${method} -> ${iparam}. \n Expecting any of: ${rm.allowed_params.join(", ")}`;
240
262
  }
241
- else if ((0, DboBuilder_1.isPlainObject)(raw_table_rules[r.rule])) {
242
- parsed_table[r.rule] = raw_table_rules[r.rule];
263
+ }
264
+ /* Add default params (if missing) */
265
+ if (method === "sync") {
266
+ if ([true, "*"].includes(parsed_table[method])) {
267
+ throw "Invalid sync rule. Expecting { id_fields: string[], synced_field: string } ";
243
268
  }
244
- });
245
- allRuleKeys.filter(m => parsed_table[m])
246
- .forEach((method) => {
247
- const rule = parsed_table[method];
248
- let rm = MY_RULES.find(r => r.rule === method || r.methods.includes(method));
249
- if (!rm) {
250
- let extraInfo = "";
251
- if (is_view && RULE_TO_METHODS.find(r => !is_view && r.rule === method || r.methods.includes(method))) {
252
- extraInfo = "You've specified table rules to a view\n";
253
- }
254
- throw `Invalid rule in publish.${tableName} -> ${method} \n${extraInfo}Expecting any of: ${MY_RULES.flatMap(r => [r.rule, ...r.methods]).join(", ")}`;
269
+ if (typeof parsed_table[method]?.throttle !== "number") {
270
+ parsed_table[method].throttle = 100;
255
271
  }
256
- /* Check RULES for invalid params */
257
- /* Methods do not have params -> They use them from rules */
258
- if (method === rm.rule && (0, prostgles_types_1.isObject)(rule)) {
259
- let method_params = (0, prostgles_types_1.getKeys)(rule);
260
- let iparam = method_params.find(p => !rm?.allowed_params.includes(p));
261
- if (iparam) {
262
- throw `Invalid setting in publish.${tableName}.${method} -> ${iparam}. \n Expecting any of: ${rm.allowed_params.join(", ")}`;
263
- }
272
+ if (typeof parsed_table[method]?.batch_size !== "number") {
273
+ parsed_table[method].batch_size = PubSubManager_1.DEFAULT_SYNC_BATCH_SIZE;
264
274
  }
265
- /* Add default params (if missing) */
266
- if (method === "sync") {
267
- if ([true, "*"].includes(parsed_table[method])) {
268
- throw "Invalid sync rule. Expecting { id_fields: string[], synced_field: string } ";
269
- }
270
- if (typeof parsed_table[method]?.throttle !== "number") {
271
- parsed_table[method].throttle = 100;
275
+ }
276
+ /* Enable subscribe if not explicitly disabled OR if VIEW with referenced tables */
277
+ const subKey = "subscribe";
278
+ if (method === "select" && !dissallowedRuleKeys.includes(subKey)) {
279
+ const sr = MY_RULES.find(r => r.rule === subKey);
280
+ if (sr && canSubscribe) {
281
+ parsed_table[subKey] = { ...sr.no_limits };
282
+ parsed_table.subscribeOne = { ...sr.no_limits };
283
+ }
284
+ }
285
+ });
286
+ }
287
+ else {
288
+ throw "Unexpected publish";
289
+ }
290
+ const getImpliedMethods = (tableRules) => {
291
+ const res = { ...tableRules };
292
+ /* Add implied methods if not specifically dissallowed */
293
+ MY_RULES.map(r => {
294
+ /** THIS IS A MESS -> some methods cannot be dissallowed (unsync, unsubscribe...) */
295
+ r.methods.forEach(method => {
296
+ var _a;
297
+ const isAllowed = tableRules[r.rule] && tableRules[method] === undefined;
298
+ if (isAllowed) {
299
+ if (method === "updateBatch" && !tableRules.update) {
300
+ // not allowed
272
301
  }
273
- if (typeof parsed_table[method]?.batch_size !== "number") {
274
- parsed_table[method].batch_size = PubSubManager_1.DEFAULT_SYNC_BATCH_SIZE;
302
+ else if (method === "upsert" && (!tableRules.update || !tableRules.insert)) {
303
+ // not allowed
275
304
  }
276
- }
277
- /* Enable subscribe if not explicitly disabled OR if VIEW with referenced tables */
278
- const subKey = "subscribe";
279
- if (method === "select" && !dissallowedRuleKeys.includes(subKey)) {
280
- const sr = MY_RULES.find(r => r.rule === subKey);
281
- if (sr && canSubscribe) {
282
- parsed_table[subKey] = { ...sr.no_limits };
283
- parsed_table.subscribeOne = { ...sr.no_limits };
305
+ else {
306
+ (_a = res)[method] ?? (_a[method] = true);
284
307
  }
285
308
  }
286
309
  });
287
- }
288
- else {
289
- throw "Unexpected publish";
290
- }
291
- const getImpliedMethods = (tableRules) => {
292
- let res = { ...tableRules };
293
- /* Add implied methods if not specifically dissallowed */
294
- MY_RULES.map(r => {
295
- /** THIS IS A MESS -> some methods cannot be dissallowed (unsync, unsubscribe...) */
296
- r.methods.forEach(method => {
297
- var _a;
298
- const isAllowed = tableRules[r.rule] && tableRules[method] === undefined;
299
- if (isAllowed) {
300
- if (method === "updateBatch" && !tableRules.update) {
301
- }
302
- else if (method === "upsert" && (!tableRules.update || !tableRules.insert)) {
303
- }
304
- else {
305
- (_a = res)[method] ?? (_a[method] = true);
306
- }
307
- }
308
- });
309
- });
310
- return res;
311
- };
312
- parsed_table = getImpliedMethods(parsed_table);
313
- return parsed_table;
314
- }
315
- catch (e) {
316
- throw e;
317
- }
310
+ });
311
+ return res;
312
+ };
313
+ parsed_table = getImpliedMethods(parsed_table);
314
+ return parsed_table;
318
315
  }
319
316
  /* Prepares schema for client. Only allowed views and commands will be present */
320
317
  async getSchemaFromPublish(socket, userData) {
321
- let schema = {};
322
- let tables = [];
318
+ const schema = {};
319
+ const tables = [];
323
320
  try {
324
321
  /* Publish tables and views based on socket */
325
322
  const clientInfo = userData ?? await this.prostgles.authHandler?.getClientInfo({ socket });
@@ -376,7 +373,7 @@ class PublishParser {
376
373
  }
377
374
  }
378
375
  if (method === "getInfo" || method === "getColumns") {
379
- let tableRules = await this.getValidatedRequestRule({ tableName, command: method, localParams: { socket } }, clientInfo);
376
+ const tableRules = await this.getValidatedRequestRule({ tableName, command: method, localParams: { socket } }, clientInfo);
380
377
  const res = await this.dbo[tableName][method](undefined, undefined, undefined, tableRules, { socket, isRemoteRequest: true });
381
378
  if (method === "getInfo") {
382
379
  tableInfo = res;
@@ -1 +1 @@
1
- {"version":3,"file":"PublishParser.js","sourceRoot":"","sources":["../lib/PublishParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PublishParser.js","sourceRoot":"","sources":["../lib/PublishParser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SyncReplication.d.ts","sourceRoot":"","sources":["../lib/SyncReplication.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAA2B,MAAM,+BAA+B,CAAC;AACnG,OAAO,EAAgB,SAAS,EAAmB,MAAM,iBAAiB,CAAC;AAG3E,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B,CAAC,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG;IAChC,aAAa,CAAC,EAAE,cAAc,CAAA;CACjC,GAAG;IACA,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC7C,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;CACzB,CAAA;AAMD,eAAO,MAAM,QAAQ,UAAiB,aAAa,QAAQ,UAAU,cAAc,iBAAiB,GAAG,SAAS,UAAU,SAAS,GAAG,QAAQ,kBA6d7I,CAAA"}
1
+ {"version":3,"file":"SyncReplication.d.ts","sourceRoot":"","sources":["../lib/SyncReplication.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAA2B,MAAM,+BAA+B,CAAC;AACnG,OAAO,EAAgB,SAAS,EAAmB,MAAM,iBAAiB,CAAC;AAG3E,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B,CAAC,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;IAClC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,CAAC,EAAE,cAAc,CAAA;CAC/B,GAAG;IACF,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;CACvB,CAAA;AAMD,eAAO,MAAM,QAAQ,UAAiB,aAAa,QAAQ,UAAU,cAAc,iBAAiB,GAAG,SAAS,UAAU,SAAS,GAAG,QAAQ,kBA4d7I,CAAA"}
@@ -13,7 +13,8 @@ const syncData = async (_this, sync, clientData, source) => {
13
13
  console.error("Orphaned socket", { sync, clientData });
14
14
  return;
15
15
  }
16
- const sync_fields = [synced_field, ...id_fields.sort()], orderByAsc = sync_fields.reduce((a, v) => ({ ...a, [v]: true }), {}), orderByDesc = sync_fields.reduce((a, v) => ({ ...a, [v]: false }), {}),
16
+ const sync_fields = [synced_field, ...id_fields.sort()], orderByAsc = sync_fields.reduce((a, v) => ({ ...a, [v]: true }), {}),
17
+ // orderByDesc = sync_fields.reduce((a, v) => ({ ...a, [v]: false }), {}),
17
18
  // desc_params = { orderBy: [{ [synced_field]: false }].concat(id_fields.map(f => ({ [f]: false }) )) },
18
19
  // asc_params = { orderBy: [synced_field].concat(id_fields) },
19
20
  rowsIdsMatch = (a, b) => {
@@ -22,7 +23,7 @@ const syncData = async (_this, sync, clientData, source) => {
22
23
  return rowsIdsMatch(a, b) && a?.[synced_field].toString() === b?.[synced_field].toString();
23
24
  }, getServerRowInfo = async (args = {}) => {
24
25
  const { from_synced = null, to_synced = null, offset = 0, limit } = args;
25
- let _filter = { ...filter };
26
+ const _filter = { ...filter };
26
27
  if (from_synced || to_synced) {
27
28
  _filter[synced_field] = {
28
29
  ...(from_synced ? { $gte: from_synced } : {}),
@@ -39,11 +40,11 @@ const syncData = async (_this, sync, clientData, source) => {
39
40
  return { s_fr: first_rows?.[0] || null, s_lr: last_rows?.[0] || null, s_count: count };
40
41
  }, getClientRowInfo = (args = {}) => {
41
42
  const { from_synced = null, to_synced = null, end_offset = null } = args;
42
- let res = new Promise((resolve, reject) => {
43
- let onSyncRequest = { from_synced, to_synced, end_offset }; //, forReal: true };
43
+ const res = new Promise((resolve, reject) => {
44
+ const onSyncRequest = { from_synced, to_synced, end_offset }; //, forReal: true };
44
45
  socket.emit(channel_name, { onSyncRequest }, (resp) => {
45
46
  if (resp && "onSyncRequest" in resp && resp?.onSyncRequest) {
46
- let c_fr = resp.onSyncRequest.c_fr, c_lr = resp.onSyncRequest.c_lr, c_count = resp.onSyncRequest.c_count;
47
+ const c_fr = resp.onSyncRequest.c_fr, c_lr = resp.onSyncRequest.c_lr, c_count = resp.onSyncRequest.c_count;
47
48
  // console.log(onSyncRequest, { c_fr, c_lr, c_count }, socket._user);
48
49
  return resolve({ c_fr, c_lr, c_count });
49
50
  }
@@ -73,14 +74,14 @@ const syncData = async (_this, sync, clientData, source) => {
73
74
  });
74
75
  }
75
76
  }, getServerData = async (from_synced = 0, offset = 0) => {
76
- let _filter = {
77
+ const _filter = {
77
78
  ...filter,
78
79
  [synced_field]: { $gte: from_synced || 0 }
79
80
  };
80
81
  if (!_this?.dbo?.[table_name]?.find)
81
82
  throw "_this?.dbo?.[table_name]?.find is missing";
82
83
  try {
83
- let res = _this?.dbo?.[table_name]?.find?.(_filter, {
84
+ const res = _this?.dbo?.[table_name]?.find?.(_filter, {
84
85
  select: params.select,
85
86
  orderBy: orderByAsc,
86
87
  offset: offset || 0,
@@ -131,7 +132,7 @@ const syncData = async (_this, sync, clientData, source) => {
131
132
  if (!table_rules)
132
133
  throw "table_rules missing";
133
134
  if (table_rules.update && updates.length) {
134
- let updateData = [];
135
+ const updateData = [];
135
136
  await Promise.all(updates.map(upd => {
136
137
  const id_filter = (0, PubSubManager_1.pickKeys)(upd, id_fields);
137
138
  const syncSafeFilter = { $and: [id_filter, { [synced_field]: { "<": upd[synced_field] } }] };
@@ -216,7 +217,7 @@ const syncData = async (_this, sync, clientData, source) => {
216
217
  else {
217
218
  result = Math.min(...getNumbers([c_fr[synced_field], s_fr?.[synced_field]]));
218
219
  }
219
- let min_count = Math.min(...getNumbers([c_count, s_count]));
220
+ const min_count = Math.min(...getNumbers([c_count, s_count]));
220
221
  let end_offset = 1; // Math.min(s_count, c_count) - 1;
221
222
  let step = 0;
222
223
  while (min_count > 5 && end_offset < min_count) {
@@ -224,7 +225,7 @@ const syncData = async (_this, sync, clientData, source) => {
224
225
  // console.log("getLastSynced... end_offset > " + end_offset);
225
226
  let server_row;
226
227
  if (c_lr) {
227
- let _filter = {};
228
+ const _filter = {};
228
229
  sync_fields.map(key => {
229
230
  _filter[key] = c_lr[key];
230
231
  });
@@ -259,13 +260,14 @@ const syncData = async (_this, sync, clientData, source) => {
259
260
  * Will push pull sync between client and server from a given from_synced value
260
261
  */
261
262
  syncBatch = async (from_synced) => {
262
- let offset = 0, limit = batch_size, canContinue = true, min_synced = from_synced || 0, max_synced = from_synced;
263
+ let offset = 0, canContinue = true;
264
+ const limit = batch_size, min_synced = from_synced || 0, max_synced = from_synced;
263
265
  let inserted = 0, updated = 0, pushed = 0, deleted = 0, total = 0;
264
266
  // console.log("syncBatch", from_synced)
265
267
  while (canContinue) {
266
- let cData = await getClientData(min_synced, offset);
268
+ const cData = await getClientData(min_synced, offset);
267
269
  if (cData.length) {
268
- let res = await upsertData(cData);
270
+ const res = await upsertData(cData);
269
271
  inserted += res.inserted;
270
272
  updated += res.updated;
271
273
  }
@@ -289,12 +291,12 @@ const syncData = async (_this, sync, clientData, source) => {
289
291
  }));
290
292
  sData = await getServerData(min_synced, offset);
291
293
  }
292
- let forClient = sData.filter(s => {
294
+ const forClient = sData.filter(s => {
293
295
  return !cData.find(c => rowsIdsMatch(c, s) &&
294
296
  +c[synced_field] >= +s[synced_field]);
295
297
  });
296
298
  if (forClient.length) {
297
- let res = await pushData(forClient.filter(d => !sync.wal || !sync.wal.isInHistory(d)));
299
+ const res = await pushData(forClient.filter(d => !sync.wal || !sync.wal.isInHistory(d)));
298
300
  pushed += res.pushed;
299
301
  }
300
302
  if (sData.length) {
@@ -306,7 +308,7 @@ const syncData = async (_this, sync, clientData, source) => {
306
308
  canContinue = sData.length >= limit;
307
309
  // console.log(`sData ${sData.length} limit ${limit}`);
308
310
  }
309
- // console.log(`syncBatch ${table_name}: inserted( ${inserted} ) updated( ${updated} ) deleted( ${deleted} ) pushed( ${pushed} ) total( ${total} )`, socket._user );
311
+ (0, PubSubManager_1.log)(`server.syncBatch ${table_name}: inserted( ${inserted} ) updated( ${updated} ) deleted( ${deleted} ) pushed to client( ${pushed} ) total( ${total} )`, socket._user);
310
312
  return true;
311
313
  };
312
314
  if (!wal) {
@@ -377,6 +379,7 @@ const syncData = async (_this, sync, clientData, source) => {
377
379
  }
378
380
  }
379
381
  else {
382
+ // do nothing
380
383
  }
381
384
  if (sync.wal.isSending())
382
385
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"SyncReplication.js","sourceRoot":"","sources":["../lib/SyncReplication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SyncReplication.js","sourceRoot":"","sources":["../lib/SyncReplication.ts"],"names":[],"mappings":"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"}