prostgles-server 4.2.183 → 4.2.185

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 (432) hide show
  1. package/.github/workflows/main.yml +15 -15
  2. package/.prettierignore +2 -0
  3. package/README.md +1 -1
  4. package/dist/Auth/AuthHandler.d.ts +1 -1
  5. package/dist/Auth/AuthHandler.d.ts.map +1 -1
  6. package/dist/Auth/AuthHandler.js +64 -32
  7. package/dist/Auth/AuthHandler.js.map +1 -1
  8. package/dist/Auth/AuthTypes.d.ts +15 -1
  9. package/dist/Auth/AuthTypes.d.ts.map +1 -1
  10. package/dist/Auth/getSafeReturnURL.d.ts.map +1 -1
  11. package/dist/Auth/getSafeReturnURL.js.map +1 -1
  12. package/dist/Auth/sendEmail.d.ts.map +1 -1
  13. package/dist/Auth/sendEmail.js +6 -6
  14. package/dist/Auth/sendEmail.js.map +1 -1
  15. package/dist/Auth/setAuthProviders.d.ts +1 -1
  16. package/dist/Auth/setAuthProviders.d.ts.map +1 -1
  17. package/dist/Auth/setAuthProviders.js +15 -8
  18. package/dist/Auth/setAuthProviders.js.map +1 -1
  19. package/dist/Auth/setEmailProvider.d.ts.map +1 -1
  20. package/dist/Auth/setEmailProvider.js +23 -4
  21. package/dist/Auth/setEmailProvider.js.map +1 -1
  22. package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
  23. package/dist/Auth/setupAuthRoutes.js +27 -9
  24. package/dist/Auth/setupAuthRoutes.js.map +1 -1
  25. package/dist/DBEventsManager.d.ts.map +1 -1
  26. package/dist/DBEventsManager.js +24 -19
  27. package/dist/DBEventsManager.js.map +1 -1
  28. package/dist/DBSchemaBuilder.d.ts.map +1 -1
  29. package/dist/DBSchemaBuilder.js +18 -5
  30. package/dist/DBSchemaBuilder.js.map +1 -1
  31. package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
  32. package/dist/DboBuilder/DboBuilder.js +7 -2
  33. package/dist/DboBuilder/DboBuilder.js.map +1 -1
  34. package/dist/DboBuilder/DboBuilderTypes.d.ts +4 -4
  35. package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
  36. package/dist/DboBuilder/DboBuilderTypes.js.map +1 -1
  37. package/dist/DboBuilder/QueryBuilder/Functions.d.ts +2 -2
  38. package/dist/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
  39. package/dist/DboBuilder/QueryBuilder/Functions.js +293 -173
  40. package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
  41. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts +2 -2
  42. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
  43. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +52 -29
  44. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
  45. package/dist/DboBuilder/QueryBuilder/getJoinQuery.d.ts.map +1 -1
  46. package/dist/DboBuilder/QueryBuilder/getJoinQuery.js +51 -32
  47. package/dist/DboBuilder/QueryBuilder/getJoinQuery.js.map +1 -1
  48. package/dist/DboBuilder/QueryBuilder/getNewQuery.d.ts.map +1 -1
  49. package/dist/DboBuilder/QueryBuilder/getNewQuery.js +48 -25
  50. package/dist/DboBuilder/QueryBuilder/getNewQuery.js.map +1 -1
  51. package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts +1 -1
  52. package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts.map +1 -1
  53. package/dist/DboBuilder/QueryBuilder/getSelectQuery.js +32 -23
  54. package/dist/DboBuilder/QueryBuilder/getSelectQuery.js.map +1 -1
  55. package/dist/DboBuilder/QueryStreamer.d.ts +2 -2
  56. package/dist/DboBuilder/QueryStreamer.d.ts.map +1 -1
  57. package/dist/DboBuilder/QueryStreamer.js +68 -23
  58. package/dist/DboBuilder/QueryStreamer.js.map +1 -1
  59. package/dist/DboBuilder/TableHandler/DataValidator.d.ts +1 -1
  60. package/dist/DboBuilder/TableHandler/DataValidator.d.ts.map +1 -1
  61. package/dist/DboBuilder/TableHandler/DataValidator.js +79 -43
  62. package/dist/DboBuilder/TableHandler/DataValidator.js.map +1 -1
  63. package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
  64. package/dist/DboBuilder/TableHandler/TableHandler.js +39 -15
  65. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  66. package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
  67. package/dist/DboBuilder/TableHandler/delete.js +44 -13
  68. package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
  69. package/dist/DboBuilder/TableHandler/insert.d.ts.map +1 -1
  70. package/dist/DboBuilder/TableHandler/insert.js +81 -22
  71. package/dist/DboBuilder/TableHandler/insert.js.map +1 -1
  72. package/dist/DboBuilder/TableHandler/insertTest.d.ts.map +1 -1
  73. package/dist/DboBuilder/TableHandler/insertTest.js.map +1 -1
  74. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts +1 -1
  75. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts.map +1 -1
  76. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js +7 -4
  77. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js.map +1 -1
  78. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
  79. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +24 -5
  80. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
  81. package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
  82. package/dist/DboBuilder/TableHandler/update.js +16 -4
  83. package/dist/DboBuilder/TableHandler/update.js.map +1 -1
  84. package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
  85. package/dist/DboBuilder/TableHandler/updateBatch.js +33 -10
  86. package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
  87. package/dist/DboBuilder/TableHandler/updateFile.d.ts.map +1 -1
  88. package/dist/DboBuilder/TableHandler/updateFile.js +24 -6
  89. package/dist/DboBuilder/TableHandler/updateFile.js.map +1 -1
  90. package/dist/DboBuilder/TableHandler/upsert.d.ts.map +1 -1
  91. package/dist/DboBuilder/TableHandler/upsert.js +22 -6
  92. package/dist/DboBuilder/TableHandler/upsert.js.map +1 -1
  93. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +5 -5
  94. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
  95. package/dist/DboBuilder/ViewHandler/ViewHandler.js +64 -36
  96. package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
  97. package/dist/DboBuilder/ViewHandler/count.d.ts.map +1 -1
  98. package/dist/DboBuilder/ViewHandler/count.js +21 -7
  99. package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
  100. package/dist/DboBuilder/ViewHandler/find.d.ts.map +1 -1
  101. package/dist/DboBuilder/ViewHandler/find.js +76 -22
  102. package/dist/DboBuilder/ViewHandler/find.js.map +1 -1
  103. package/dist/DboBuilder/ViewHandler/getExistsCondition.d.ts.map +1 -1
  104. package/dist/DboBuilder/ViewHandler/getExistsCondition.js +19 -10
  105. package/dist/DboBuilder/ViewHandler/getExistsCondition.js.map +1 -1
  106. package/dist/DboBuilder/ViewHandler/getExistsFilters.d.ts.map +1 -1
  107. package/dist/DboBuilder/ViewHandler/getExistsFilters.js +12 -5
  108. package/dist/DboBuilder/ViewHandler/getExistsFilters.js.map +1 -1
  109. package/dist/DboBuilder/ViewHandler/getInfo.d.ts.map +1 -1
  110. package/dist/DboBuilder/ViewHandler/getInfo.js +27 -9
  111. package/dist/DboBuilder/ViewHandler/getInfo.js.map +1 -1
  112. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts +2 -2
  113. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts.map +1 -1
  114. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js +42 -23
  115. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js.map +1 -1
  116. package/dist/DboBuilder/ViewHandler/parseComplexFilter.d.ts.map +1 -1
  117. package/dist/DboBuilder/ViewHandler/parseComplexFilter.js +22 -9
  118. package/dist/DboBuilder/ViewHandler/parseComplexFilter.js.map +1 -1
  119. package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts +4 -4
  120. package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts.map +1 -1
  121. package/dist/DboBuilder/ViewHandler/parseFieldFilter.js +13 -11
  122. package/dist/DboBuilder/ViewHandler/parseFieldFilter.js.map +1 -1
  123. package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts +1 -1
  124. package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts.map +1 -1
  125. package/dist/DboBuilder/ViewHandler/parseJoinPath.js +44 -29
  126. package/dist/DboBuilder/ViewHandler/parseJoinPath.js.map +1 -1
  127. package/dist/DboBuilder/ViewHandler/prepareSortItems.d.ts.map +1 -1
  128. package/dist/DboBuilder/ViewHandler/prepareSortItems.js +36 -27
  129. package/dist/DboBuilder/ViewHandler/prepareSortItems.js.map +1 -1
  130. package/dist/DboBuilder/ViewHandler/prepareWhere.d.ts.map +1 -1
  131. package/dist/DboBuilder/ViewHandler/prepareWhere.js +16 -12
  132. package/dist/DboBuilder/ViewHandler/prepareWhere.js.map +1 -1
  133. package/dist/DboBuilder/ViewHandler/size.d.ts.map +1 -1
  134. package/dist/DboBuilder/ViewHandler/size.js +24 -7
  135. package/dist/DboBuilder/ViewHandler/size.js.map +1 -1
  136. package/dist/DboBuilder/ViewHandler/subscribe.d.ts.map +1 -1
  137. package/dist/DboBuilder/ViewHandler/subscribe.js +40 -12
  138. package/dist/DboBuilder/ViewHandler/subscribe.js.map +1 -1
  139. package/dist/DboBuilder/ViewHandler/validateViewRules.d.ts.map +1 -1
  140. package/dist/DboBuilder/ViewHandler/validateViewRules.js +20 -5
  141. package/dist/DboBuilder/ViewHandler/validateViewRules.js.map +1 -1
  142. package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
  143. package/dist/DboBuilder/dboBuilderUtils.js +18 -7
  144. package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
  145. package/dist/DboBuilder/getColumns.d.ts.map +1 -1
  146. package/dist/DboBuilder/getColumns.js +22 -7
  147. package/dist/DboBuilder/getColumns.js.map +1 -1
  148. package/dist/DboBuilder/getCondition.d.ts.map +1 -1
  149. package/dist/DboBuilder/getCondition.js +43 -30
  150. package/dist/DboBuilder/getCondition.js.map +1 -1
  151. package/dist/DboBuilder/getSubscribeRelatedTables.d.ts.map +1 -1
  152. package/dist/DboBuilder/getSubscribeRelatedTables.js +38 -27
  153. package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
  154. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
  155. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js +9 -9
  156. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js.map +1 -1
  157. package/dist/DboBuilder/insertNestedRecords.d.ts +3 -3
  158. package/dist/DboBuilder/insertNestedRecords.d.ts.map +1 -1
  159. package/dist/DboBuilder/insertNestedRecords.js +79 -44
  160. package/dist/DboBuilder/insertNestedRecords.js.map +1 -1
  161. package/dist/DboBuilder/parseUpdateRules.d.ts.map +1 -1
  162. package/dist/DboBuilder/parseUpdateRules.js +38 -14
  163. package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
  164. package/dist/DboBuilder/prepareShortestJoinPaths.d.ts.map +1 -1
  165. package/dist/DboBuilder/prepareShortestJoinPaths.js +56 -31
  166. package/dist/DboBuilder/prepareShortestJoinPaths.js.map +1 -1
  167. package/dist/DboBuilder/runSQL.d.ts.map +1 -1
  168. package/dist/DboBuilder/runSQL.js +41 -21
  169. package/dist/DboBuilder/runSQL.js.map +1 -1
  170. package/dist/DboBuilder/runTransaction.d.ts +1 -1
  171. package/dist/DboBuilder/runTransaction.d.ts.map +1 -1
  172. package/dist/DboBuilder/runTransaction.js +2 -2
  173. package/dist/DboBuilder/runTransaction.js.map +1 -1
  174. package/dist/DboBuilder/sqlErrCodeToMsg.d.ts.map +1 -1
  175. package/dist/DboBuilder/sqlErrCodeToMsg.js +297 -38
  176. package/dist/DboBuilder/sqlErrCodeToMsg.js.map +1 -1
  177. package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
  178. package/dist/DboBuilder/uploadFile.js +33 -9
  179. package/dist/DboBuilder/uploadFile.js.map +1 -1
  180. package/dist/Event_Trigger_Tags.d.ts +1 -1
  181. package/dist/Event_Trigger_Tags.d.ts.map +1 -1
  182. package/dist/Event_Trigger_Tags.js +1 -1
  183. package/dist/Event_Trigger_Tags.js.map +1 -1
  184. package/dist/FileManager/FileManager.d.ts.map +1 -1
  185. package/dist/FileManager/FileManager.js +6 -3
  186. package/dist/FileManager/FileManager.js.map +1 -1
  187. package/dist/FileManager/getValidatedFileType.d.ts.map +1 -1
  188. package/dist/FileManager/getValidatedFileType.js +18 -16
  189. package/dist/FileManager/getValidatedFileType.js.map +1 -1
  190. package/dist/FileManager/initFileManager.d.ts.map +1 -1
  191. package/dist/FileManager/initFileManager.js +7 -1
  192. package/dist/FileManager/initFileManager.js.map +1 -1
  193. package/dist/FileManager/upload.d.ts +1 -1
  194. package/dist/FileManager/upload.d.ts.map +1 -1
  195. package/dist/FileManager/upload.js +3 -3
  196. package/dist/FileManager/upload.js.map +1 -1
  197. package/dist/FileManager/uploadStream.d.ts +1 -1
  198. package/dist/FileManager/uploadStream.d.ts.map +1 -1
  199. package/dist/FileManager/uploadStream.js +6 -7
  200. package/dist/FileManager/uploadStream.js.map +1 -1
  201. package/dist/Filtering.d.ts +3 -3
  202. package/dist/Filtering.d.ts.map +1 -1
  203. package/dist/Filtering.js +70 -37
  204. package/dist/Filtering.js.map +1 -1
  205. package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -1
  206. package/dist/JSONBValidation/validate_jsonb_schema_sql.js +1 -4
  207. package/dist/JSONBValidation/validate_jsonb_schema_sql.js.map +1 -1
  208. package/dist/JSONBValidation/validation.d.ts.map +1 -1
  209. package/dist/JSONBValidation/validation.js +46 -24
  210. package/dist/JSONBValidation/validation.js.map +1 -1
  211. package/dist/Logging.d.ts +2 -2
  212. package/dist/Logging.d.ts.map +1 -1
  213. package/dist/PostgresNotifListenManager.d.ts.map +1 -1
  214. package/dist/PostgresNotifListenManager.js +20 -22
  215. package/dist/PostgresNotifListenManager.js.map +1 -1
  216. package/dist/Prostgles.d.ts +1 -1
  217. package/dist/Prostgles.d.ts.map +1 -1
  218. package/dist/Prostgles.js +37 -11
  219. package/dist/Prostgles.js.map +1 -1
  220. package/dist/ProstglesTypes.d.ts.map +1 -1
  221. package/dist/ProstglesTypes.js +6 -1
  222. package/dist/ProstglesTypes.js.map +1 -1
  223. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  224. package/dist/PubSubManager/PubSubManager.js +10 -5
  225. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  226. package/dist/PubSubManager/addSub.d.ts.map +1 -1
  227. package/dist/PubSubManager/addSub.js +4 -6
  228. package/dist/PubSubManager/addSub.js.map +1 -1
  229. package/dist/PubSubManager/addSync.d.ts.map +1 -1
  230. package/dist/PubSubManager/addSync.js +10 -6
  231. package/dist/PubSubManager/addSync.js.map +1 -1
  232. package/dist/PubSubManager/getCreatePubSubManagerError.d.ts.map +1 -1
  233. package/dist/PubSubManager/getCreatePubSubManagerError.js +3 -1
  234. package/dist/PubSubManager/getCreatePubSubManagerError.js.map +1 -1
  235. package/dist/PubSubManager/getPubSubManagerInitQuery.d.ts.map +1 -1
  236. package/dist/PubSubManager/getPubSubManagerInitQuery.js +8 -8
  237. package/dist/PubSubManager/getPubSubManagerInitQuery.js.map +1 -1
  238. package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
  239. package/dist/PubSubManager/initPubSubManager.js +7 -9
  240. package/dist/PubSubManager/initPubSubManager.js.map +1 -1
  241. package/dist/PubSubManager/notifListener.d.ts.map +1 -1
  242. package/dist/PubSubManager/notifListener.js +23 -12
  243. package/dist/PubSubManager/notifListener.js.map +1 -1
  244. package/dist/PubSubManager/orphanTriggerCheck.d.ts.map +1 -1
  245. package/dist/PubSubManager/orphanTriggerCheck.js.map +1 -1
  246. package/dist/PubSubManager/pushSubData.d.ts.map +1 -1
  247. package/dist/PubSubManager/pushSubData.js +1 -1
  248. package/dist/PubSubManager/pushSubData.js.map +1 -1
  249. package/dist/PublishParser/PublishParser.d.ts +1 -1
  250. package/dist/PublishParser/PublishParser.d.ts.map +1 -1
  251. package/dist/PublishParser/PublishParser.js +25 -14
  252. package/dist/PublishParser/PublishParser.js.map +1 -1
  253. package/dist/PublishParser/getFileTableRules.d.ts.map +1 -1
  254. package/dist/PublishParser/getFileTableRules.js +23 -16
  255. package/dist/PublishParser/getFileTableRules.js.map +1 -1
  256. package/dist/PublishParser/getSchemaFromPublish.d.ts.map +1 -1
  257. package/dist/PublishParser/getSchemaFromPublish.js +39 -16
  258. package/dist/PublishParser/getSchemaFromPublish.js.map +1 -1
  259. package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts.map +1 -1
  260. package/dist/PublishParser/getTableRulesWithoutFileTable.js +42 -22
  261. package/dist/PublishParser/getTableRulesWithoutFileTable.js.map +1 -1
  262. package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
  263. package/dist/PublishParser/publishTypesAndUtils.js +5 -1
  264. package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
  265. package/dist/RestApi.d.ts +1 -1
  266. package/dist/RestApi.d.ts.map +1 -1
  267. package/dist/RestApi.js +1 -1
  268. package/dist/RestApi.js.map +1 -1
  269. package/dist/SchemaWatch/SchemaWatch.d.ts +2 -2
  270. package/dist/SchemaWatch/SchemaWatch.d.ts.map +1 -1
  271. package/dist/SchemaWatch/SchemaWatch.js +11 -9
  272. package/dist/SchemaWatch/SchemaWatch.js.map +1 -1
  273. package/dist/SchemaWatch/getValidatedWatchSchemaType.d.ts.map +1 -1
  274. package/dist/SchemaWatch/getValidatedWatchSchemaType.js +3 -3
  275. package/dist/SchemaWatch/getValidatedWatchSchemaType.js.map +1 -1
  276. package/dist/SchemaWatch/getWatchSchemaTagList.d.ts.map +1 -1
  277. package/dist/SchemaWatch/getWatchSchemaTagList.js +12 -6
  278. package/dist/SchemaWatch/getWatchSchemaTagList.js.map +1 -1
  279. package/dist/SyncReplication.d.ts.map +1 -1
  280. package/dist/SyncReplication.js +84 -42
  281. package/dist/SyncReplication.js.map +1 -1
  282. package/dist/TableConfig/TableConfig.d.ts +5 -5
  283. package/dist/TableConfig/TableConfig.d.ts.map +1 -1
  284. package/dist/TableConfig/TableConfig.js +18 -5
  285. package/dist/TableConfig/TableConfig.js.map +1 -1
  286. package/dist/TableConfig/getColumnDefinitionQuery.d.ts +2 -2
  287. package/dist/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
  288. package/dist/TableConfig/getColumnDefinitionQuery.js +20 -9
  289. package/dist/TableConfig/getColumnDefinitionQuery.js.map +1 -1
  290. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts +3 -3
  291. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -1
  292. package/dist/TableConfig/getConstraintDefinitionQueries.js +12 -7
  293. package/dist/TableConfig/getConstraintDefinitionQueries.js.map +1 -1
  294. package/dist/TableConfig/getFutureTableSchema.d.ts +1 -1
  295. package/dist/TableConfig/getFutureTableSchema.d.ts.map +1 -1
  296. package/dist/TableConfig/getFutureTableSchema.js +6 -4
  297. package/dist/TableConfig/getFutureTableSchema.js.map +1 -1
  298. package/dist/TableConfig/getPGIndexes.d.ts.map +1 -1
  299. package/dist/TableConfig/getPGIndexes.js.map +1 -1
  300. package/dist/TableConfig/getTableColumnQueries.d.ts +1 -1
  301. package/dist/TableConfig/getTableColumnQueries.d.ts.map +1 -1
  302. package/dist/TableConfig/getTableColumnQueries.js +38 -19
  303. package/dist/TableConfig/getTableColumnQueries.js.map +1 -1
  304. package/dist/TableConfig/initTableConfig.d.ts.map +1 -1
  305. package/dist/TableConfig/initTableConfig.js +91 -43
  306. package/dist/TableConfig/initTableConfig.js.map +1 -1
  307. package/dist/index.d.ts.map +1 -1
  308. package/dist/index.js.map +1 -1
  309. package/dist/initProstgles.d.ts.map +1 -1
  310. package/dist/initProstgles.js +14 -10
  311. package/dist/initProstgles.js.map +1 -1
  312. package/dist/onSocketConnected.d.ts.map +1 -1
  313. package/dist/onSocketConnected.js +38 -16
  314. package/dist/onSocketConnected.js.map +1 -1
  315. package/dist/runClientRequest.d.ts.map +1 -1
  316. package/dist/runClientRequest.js +33 -14
  317. package/dist/runClientRequest.js.map +1 -1
  318. package/dist/shortestPath.d.ts.map +1 -1
  319. package/dist/shortestPath.js +1 -1
  320. package/dist/shortestPath.js.map +1 -1
  321. package/dist/typeTests/dboTypeCheck.js.map +1 -1
  322. package/examples/full-example-typescript/DBoGenerated.d.ts +112 -54
  323. package/examples/full-example-typescript/DBoGenerated.js +3 -3
  324. package/examples/full-example-typescript/home.html +28 -26
  325. package/examples/full-example-typescript/index.d.ts +1 -1
  326. package/examples/full-example-typescript/index.js +80 -53
  327. package/examples/full-example-vanilla/home.html +151 -125
  328. package/examples/server/javascript/index.js +17 -19
  329. package/lib/Auth/AuthHandler.ts +234 -155
  330. package/lib/Auth/AuthTypes.ts +27 -4
  331. package/lib/Auth/getSafeReturnURL.ts +35 -21
  332. package/lib/Auth/sendEmail.ts +34 -31
  333. package/lib/Auth/setAuthProviders.ts +94 -71
  334. package/lib/Auth/setEmailProvider.ts +45 -27
  335. package/lib/Auth/setupAuthRoutes.ts +164 -100
  336. package/lib/DBEventsManager.ts +87 -65
  337. package/lib/DBSchemaBuilder.ts +62 -28
  338. package/lib/DboBuilder/DboBuilder.ts +45 -21
  339. package/lib/DboBuilder/DboBuilderTypes.ts +99 -95
  340. package/lib/DboBuilder/QueryBuilder/Functions.ts +862 -580
  341. package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +202 -141
  342. package/lib/DboBuilder/QueryBuilder/getJoinQuery.ts +199 -124
  343. package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +209 -148
  344. package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +101 -75
  345. package/lib/DboBuilder/QueryBuilder/prepareHaving.ts +10 -5
  346. package/lib/DboBuilder/QueryStreamer.ts +207 -100
  347. package/lib/DboBuilder/TableHandler/DataValidator.ts +253 -148
  348. package/lib/DboBuilder/TableHandler/TableHandler.ts +155 -60
  349. package/lib/DboBuilder/TableHandler/delete.ts +82 -29
  350. package/lib/DboBuilder/TableHandler/insert.ts +177 -81
  351. package/lib/DboBuilder/TableHandler/insertTest.ts +13 -7
  352. package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +35 -21
  353. package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +95 -45
  354. package/lib/DboBuilder/TableHandler/update.ts +54 -14
  355. package/lib/DboBuilder/TableHandler/updateBatch.ts +59 -21
  356. package/lib/DboBuilder/TableHandler/updateFile.ts +57 -26
  357. package/lib/DboBuilder/TableHandler/upsert.ts +58 -13
  358. package/lib/DboBuilder/ViewHandler/ViewHandler.ts +264 -121
  359. package/lib/DboBuilder/ViewHandler/count.ts +56 -25
  360. package/lib/DboBuilder/ViewHandler/find.ts +153 -68
  361. package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +59 -32
  362. package/lib/DboBuilder/ViewHandler/getExistsFilters.ts +31 -19
  363. package/lib/DboBuilder/ViewHandler/getInfo.ts +47 -16
  364. package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +91 -57
  365. package/lib/DboBuilder/ViewHandler/parseComplexFilter.ts +51 -29
  366. package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +35 -29
  367. package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +130 -76
  368. package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +140 -92
  369. package/lib/DboBuilder/ViewHandler/prepareWhere.ts +66 -26
  370. package/lib/DboBuilder/ViewHandler/size.ts +56 -22
  371. package/lib/DboBuilder/ViewHandler/subscribe.ts +122 -46
  372. package/lib/DboBuilder/ViewHandler/validateViewRules.ts +39 -14
  373. package/lib/DboBuilder/dboBuilderUtils.ts +41 -18
  374. package/lib/DboBuilder/getColumns.ts +44 -12
  375. package/lib/DboBuilder/getCondition.ts +120 -79
  376. package/lib/DboBuilder/getSubscribeRelatedTables.ts +144 -83
  377. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +61 -44
  378. package/lib/DboBuilder/insertNestedRecords.ts +370 -235
  379. package/lib/DboBuilder/parseUpdateRules.ts +117 -61
  380. package/lib/DboBuilder/prepareShortestJoinPaths.ts +115 -56
  381. package/lib/DboBuilder/runSQL.ts +135 -74
  382. package/lib/DboBuilder/runTransaction.ts +27 -16
  383. package/lib/DboBuilder/sqlErrCodeToMsg.ts +502 -244
  384. package/lib/DboBuilder/uploadFile.ts +67 -31
  385. package/lib/Event_Trigger_Tags.ts +6 -4
  386. package/lib/FileManager/FileManager.ts +53 -21
  387. package/lib/FileManager/getValidatedFileType.ts +79 -35
  388. package/lib/FileManager/initFileManager.ts +21 -9
  389. package/lib/FileManager/upload.ts +21 -19
  390. package/lib/FileManager/uploadStream.ts +33 -34
  391. package/lib/Filtering.ts +249 -197
  392. package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +2 -7
  393. package/lib/JSONBValidation/validation.ts +147 -82
  394. package/lib/Logging.ts +107 -97
  395. package/lib/PostgresNotifListenManager.ts +96 -63
  396. package/lib/Prostgles.ts +106 -35
  397. package/lib/ProstglesTypes.ts +31 -9
  398. package/lib/PubSubManager/PubSubManager.ts +62 -27
  399. package/lib/PubSubManager/addSub.ts +56 -37
  400. package/lib/PubSubManager/addSync.ts +50 -33
  401. package/lib/PubSubManager/getCreatePubSubManagerError.ts +29 -21
  402. package/lib/PubSubManager/getPubSubManagerInitQuery.ts +45 -27
  403. package/lib/PubSubManager/initPubSubManager.ts +27 -18
  404. package/lib/PubSubManager/notifListener.ts +77 -59
  405. package/lib/PubSubManager/orphanTriggerCheck.ts +5 -4
  406. package/lib/PubSubManager/pushSubData.ts +11 -9
  407. package/lib/PublishParser/PublishParser.ts +102 -44
  408. package/lib/PublishParser/getFileTableRules.ts +97 -54
  409. package/lib/PublishParser/getSchemaFromPublish.ts +146 -74
  410. package/lib/PublishParser/getTableRulesWithoutFileTable.ts +101 -51
  411. package/lib/PublishParser/publishTypesAndUtils.ts +74 -23
  412. package/lib/RestApi.ts +10 -2
  413. package/lib/SchemaWatch/SchemaWatch.ts +52 -34
  414. package/lib/SchemaWatch/createSchemaWatchEventTrigger.ts +1 -1
  415. package/lib/SchemaWatch/getValidatedWatchSchemaType.ts +32 -22
  416. package/lib/SchemaWatch/getWatchSchemaTagList.ts +24 -16
  417. package/lib/SyncReplication.ts +376 -190
  418. package/lib/TableConfig/TableConfig.ts +200 -136
  419. package/lib/TableConfig/getColumnDefinitionQuery.ts +65 -44
  420. package/lib/TableConfig/getConstraintDefinitionQueries.ts +41 -25
  421. package/lib/TableConfig/getFutureTableSchema.ts +31 -21
  422. package/lib/TableConfig/getPGIndexes.ts +7 -4
  423. package/lib/TableConfig/getTableColumnQueries.ts +101 -54
  424. package/lib/TableConfig/initTableConfig.ts +192 -101
  425. package/lib/index.ts +6 -5
  426. package/lib/initProstgles.ts +57 -51
  427. package/lib/onSocketConnected.ts +75 -40
  428. package/lib/runClientRequest.ts +148 -79
  429. package/lib/shortestPath.ts +80 -76
  430. package/lib/typeTests/DBoGenerated.d.ts +5 -1
  431. package/lib/typeTests/dboTypeCheck.ts +8 -8
  432. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { Method, isObject } from "prostgles-types";
1
+ import { Method, getObjectEntries, isObject } from "prostgles-types";
2
2
  import { AuthResult, SessionUser } from "../Auth/AuthTypes";
3
3
  import { LocalParams } from "../DboBuilder/DboBuilder";
4
4
  import { DB, DBHandlerServer, Prostgles } from "../Prostgles";
@@ -6,17 +6,33 @@ import { VoidFunction } from "../SchemaWatch/SchemaWatch";
6
6
  import { getFileTableRules } from "./getFileTableRules";
7
7
  import { getSchemaFromPublish } from "./getSchemaFromPublish";
8
8
  import { getTableRulesWithoutFileTable } from "./getTableRulesWithoutFileTable";
9
- import { DboTable, DboTableCommand, ParsedPublishTable, PublishMethods, PublishObject, PublishParams, RULE_TO_METHODS, TableRule } from "./publishTypesAndUtils";
9
+ import {
10
+ DboTable,
11
+ DboTableCommand,
12
+ ParsedPublishTable,
13
+ PublishMethods,
14
+ PublishObject,
15
+ PublishParams,
16
+ RULE_TO_METHODS,
17
+ TableRule,
18
+ } from "./publishTypesAndUtils";
10
19
 
11
20
  export class PublishParser {
12
21
  publish: any;
13
22
  publishMethods?: PublishMethods<void, SessionUser> | undefined;
14
23
  publishRawSQL?: any;
15
24
  dbo: DBHandlerServer;
16
- db: DB
25
+ db: DB;
17
26
  prostgles: Prostgles;
18
27
 
19
- constructor(publish: any, publishMethods: PublishMethods<void, SessionUser> | undefined, publishRawSQL: any, dbo: DBHandlerServer, db: DB, prostgles: Prostgles) {
28
+ constructor(
29
+ publish: any,
30
+ publishMethods: PublishMethods<void, SessionUser> | undefined,
31
+ publishRawSQL: any,
32
+ dbo: DBHandlerServer,
33
+ db: DB,
34
+ prostgles: Prostgles
35
+ ) {
20
36
  this.publish = publish;
21
37
  this.publishMethods = publishMethods;
22
38
  this.publishRawSQL = publishRawSQL;
@@ -27,32 +43,42 @@ export class PublishParser {
27
43
  if (!this.dbo || !this.publish) throw "INTERNAL ERROR: dbo and/or publish missing";
28
44
  }
29
45
 
30
- async getPublishParams(localParams: LocalParams, clientInfo?: AuthResult): Promise<PublishParams> {
31
- if (!this.dbo) throw "dbo missing"
46
+ async getPublishParams(
47
+ localParams: LocalParams,
48
+ clientInfo?: AuthResult
49
+ ): Promise<PublishParams> {
50
+ if (!this.dbo) throw "dbo missing";
32
51
  return {
33
- ...(clientInfo || await this.prostgles.authHandler?.getClientInfo(localParams)),
52
+ ...(clientInfo || (await this.prostgles.authHandler?.getClientInfo(localParams))),
34
53
  dbo: this.dbo as any,
35
54
  db: this.db,
36
55
  socket: localParams.socket!,
37
56
  tables: this.prostgles.dboBuilder.tables,
38
- }
57
+ };
39
58
  }
40
59
 
41
- async getAllowedMethods(reqInfo: Pick<LocalParams, "httpReq" | "socket">, userData?: AuthResult): Promise<{ [key: string]: Method; }> {
42
- const methods: { [key: string]: Method; } = {};
60
+ async getAllowedMethods(
61
+ reqInfo: Pick<LocalParams, "httpReq" | "socket">,
62
+ userData?: AuthResult
63
+ ): Promise<{ [key: string]: Method }> {
64
+ const methods: { [key: string]: Method } = {};
43
65
 
44
66
  const publishParams = await this.getPublishParams(reqInfo, userData);
45
67
  const _methods = await applyParamsIfFunc(this.publishMethods, publishParams);
46
68
 
47
69
  if (_methods && Object.keys(_methods).length) {
48
- Object.entries(_methods).map(([key, method]) => {
49
- const isFuncLike = (maybeFunc: VoidFunction | Promise<void>) => (typeof maybeFunc === "function" || maybeFunc && typeof maybeFunc.then === "function");
50
- //@ts-ignore
51
- if (method && (isFuncLike(method) || isObject(method) && isFuncLike(method.run))) {
52
- //@ts-ignore
53
- methods[key] = _methods[key];
70
+ getObjectEntries(_methods).map(([key, method]) => {
71
+ const isFuncLike = (maybeFunc: VoidFunction | Promise<void> | Promise<any>) =>
72
+ typeof maybeFunc === "function" || (maybeFunc && typeof maybeFunc.then === "function");
73
+ if (
74
+ method &&
75
+ (isFuncLike(method as Extract<Method, Promise<any>>) ||
76
+ // @ts-ignore
77
+ (isObject(method) && isFuncLike(method.run)))
78
+ ) {
79
+ methods[key] = _methods[key]!;
54
80
  } else {
55
- throw `invalid publishMethods item -> ${key} \n Expecting a function or promise`
81
+ throw `invalid publishMethods item -> ${key} \n Expecting a function or promise`;
56
82
  }
57
83
  });
58
84
  }
@@ -62,16 +88,16 @@ export class PublishParser {
62
88
 
63
89
  /**
64
90
  * Parses the first level of publish. (If false then nothing if * then all tables and views)
65
- * @param socket
66
- * @param user
91
+ * @param socket
92
+ * @param user
67
93
  */
68
94
  async getPublish(localParams: LocalParams, clientInfo?: AuthResult): Promise<PublishObject> {
69
- const publishParams = await this.getPublishParams(localParams, clientInfo)
95
+ const publishParams = await this.getPublishParams(localParams, clientInfo);
70
96
  const _publish = await applyParamsIfFunc(this.publish, publishParams);
71
97
 
72
98
  if (_publish === "*") {
73
99
  const publish: PublishObject = {};
74
- this.prostgles.dboBuilder.tablesOrViews?.map(tov => {
100
+ this.prostgles.dboBuilder.tablesOrViews?.map((tov) => {
75
101
  publish[tov.name] = "*";
76
102
  });
77
103
  return publish;
@@ -79,29 +105,41 @@ export class PublishParser {
79
105
 
80
106
  return _publish;
81
107
  }
82
- async getValidatedRequestRuleWusr({ tableName, command, localParams }: DboTableCommand): Promise<TableRule> {
83
-
108
+ async getValidatedRequestRuleWusr({
109
+ tableName,
110
+ command,
111
+ localParams,
112
+ }: DboTableCommand): Promise<TableRule> {
84
113
  const clientInfo = await this.prostgles.authHandler!.getClientInfo(localParams);
85
- const rules = await this.getValidatedRequestRule({ tableName, command, localParams }, clientInfo);
114
+ const rules = await this.getValidatedRequestRule(
115
+ { tableName, command, localParams },
116
+ clientInfo
117
+ );
86
118
  return rules;
87
119
  }
88
120
 
89
- async getValidatedRequestRule({ tableName, command, localParams }: DboTableCommand, clientInfo?: AuthResult): Promise<TableRule> {
121
+ async getValidatedRequestRule(
122
+ { tableName, command, localParams }: DboTableCommand,
123
+ clientInfo?: AuthResult
124
+ ): Promise<TableRule> {
90
125
  if (!this.dbo) throw "INTERNAL ERROR: dbo is missing";
91
126
 
92
127
  if (!command || !tableName) throw "command OR tableName are missing";
93
128
 
94
- const rtm = RULE_TO_METHODS.find(rtms => (rtms.methods as any).includes(command));
129
+ const rtm = RULE_TO_METHODS.find((rtms) => (rtms.methods as any).includes(command));
95
130
  if (!rtm) {
96
131
  throw "Invalid command: " + command;
97
132
  }
98
133
 
99
134
  /* Must be local request -> allow everything */
100
135
  if (!localParams || (!localParams.socket && !localParams.httpReq)) {
101
- return RULE_TO_METHODS.reduce((a, v) => ({
102
- ...a,
103
- [v.rule]: v.no_limits
104
- }), {})
136
+ return RULE_TO_METHODS.reduce(
137
+ (a, v) => ({
138
+ ...a,
139
+ [v.rule]: v.no_limits,
140
+ }),
141
+ {}
142
+ );
105
143
  }
106
144
 
107
145
  /* Must be from socket. Must have a publish */
@@ -113,44 +151,64 @@ export class PublishParser {
113
151
  if (errorInfo) throw errorInfo.error;
114
152
 
115
153
  const table_rule = await this.getTableRules({ tableName, localParams }, clientInfo);
116
- if (!table_rule) throw { stack: ["getValidatedRequestRule()"], message: "Invalid or disallowed table: " + tableName };
117
-
154
+ if (!table_rule)
155
+ throw {
156
+ stack: ["getValidatedRequestRule()"],
157
+ message: "Invalid or disallowed table: " + tableName,
158
+ };
118
159
 
119
160
  if (command === "upsert") {
120
161
  if (!table_rule.update || !table_rule.insert) {
121
- throw { stack: ["getValidatedRequestRule()"], message: `Invalid or disallowed command: upsert` };
162
+ throw {
163
+ stack: ["getValidatedRequestRule()"],
164
+ message: `Invalid or disallowed command: upsert`,
165
+ };
122
166
  }
123
167
  }
124
168
 
125
169
  if (rtm && table_rule && table_rule[rtm.rule]) {
126
170
  return table_rule;
127
- } else throw { stack: ["getValidatedRequestRule()"], message: `Invalid or disallowed command: ${tableName}.${command}` };
171
+ } else
172
+ throw {
173
+ stack: ["getValidatedRequestRule()"],
174
+ message: `Invalid or disallowed command: ${tableName}.${command}`,
175
+ };
128
176
  }
129
177
 
130
- async getTableRules(args: DboTable, clientInfo?: AuthResult): Promise<ParsedPublishTable | undefined> {
131
-
132
- if(this.dbo[args.tableName]?.is_media){
133
- const fileTablePublishRules = await this.getTableRulesWithoutFileTable(args, clientInfo)
134
- const { rules } = await getFileTableRules.bind(this)(args.tableName, fileTablePublishRules, args.localParams, clientInfo);
178
+ async getTableRules(
179
+ args: DboTable,
180
+ clientInfo?: AuthResult
181
+ ): Promise<ParsedPublishTable | undefined> {
182
+ if (this.dbo[args.tableName]?.is_media) {
183
+ const fileTablePublishRules = await this.getTableRulesWithoutFileTable(args, clientInfo);
184
+ const { rules } = await getFileTableRules.bind(this)(
185
+ args.tableName,
186
+ fileTablePublishRules,
187
+ args.localParams,
188
+ clientInfo
189
+ );
135
190
  return rules;
136
191
  }
137
192
 
138
- return await this.getTableRulesWithoutFileTable(args, clientInfo)
193
+ return await this.getTableRulesWithoutFileTable(args, clientInfo);
139
194
  }
140
195
 
141
196
  getTableRulesWithoutFileTable = getTableRulesWithoutFileTable.bind(this);
142
197
 
143
198
  /* Prepares schema for client. Only allowed views and commands will be present */
144
199
  getSchemaFromPublish = getSchemaFromPublish.bind(this);
145
-
146
200
  }
147
201
 
148
202
  export * from "./publishTypesAndUtils";
149
203
 
150
- type FunctionWithArguments = (...args: any) => any
151
- function applyParamsIfFunc<T>(maybeFunc: T, ...params: any): T extends FunctionWithArguments ? ReturnType<T> : T {
204
+ type FunctionWithArguments = (...args: any) => any;
205
+ function applyParamsIfFunc<T>(
206
+ maybeFunc: T,
207
+ ...params: any
208
+ ): T extends FunctionWithArguments ? ReturnType<T> : T {
152
209
  if (
153
- (maybeFunc !== null && maybeFunc !== undefined) &&
210
+ maybeFunc !== null &&
211
+ maybeFunc !== undefined &&
154
212
  //@ts-ignore
155
213
  (typeof maybeFunc === "function" || typeof maybeFunc.then === "function")
156
214
  ) {
@@ -7,72 +7,102 @@ import { ParsedPublishTable, UpdateRule } from "./publishTypesAndUtils";
7
7
 
8
8
  /**
9
9
  * Permissions for referencedTables columns are propagated to the file table (even if file table has no permissions)
10
- * File table existing permissions that include the referenced column resulting permissions are left as they are
10
+ * File table existing permissions that include the referenced column resulting permissions are left as they are
11
11
  * Select on a referenced column allows selecting from file table any records that join the referenced table and the select filters
12
- * Insert on a referenced column allows inserting a file (according to any file type/size rules) only if it is a nested from that table
13
- * Update on a referenced column allows updating a file (delete and insert) only if it is a nested update from that table
14
- * Delete on a referenced column table allows deleting any referenced file
15
- */
16
- export async function getFileTableRules (this: PublishParser, fileTableName: string, fileTablePublishRules: ParsedPublishTable | undefined, localParams: LocalParams, clientInfo: AuthResult | undefined) {
12
+ * Insert on a referenced column allows inserting a file (according to any file type/size rules) only if it is a nested from that table
13
+ * Update on a referenced column allows updating a file (delete and insert) only if it is a nested update from that table
14
+ * Delete on a referenced column table allows deleting any referenced file
15
+ */
16
+ export async function getFileTableRules(
17
+ this: PublishParser,
18
+ fileTableName: string,
19
+ fileTablePublishRules: ParsedPublishTable | undefined,
20
+ localParams: LocalParams,
21
+ clientInfo: AuthResult | undefined,
22
+ ) {
17
23
  const forcedDeleteFilters: FullFilter<AnyObject, void>[] = [];
18
24
  const forcedSelectFilters: FullFilter<AnyObject, void>[] = [];
19
- const forcedUpdateFilters: FullFilter<AnyObject, void>[] = [];
25
+ const forcedUpdateFilters: FullFilter<AnyObject, void>[] = [];
20
26
  const allowedNestedInserts: { table: string; column: string }[] = [];
21
- const referencedColumns = this.prostgles.dboBuilder.tablesOrViews?.filter(t => !t.is_view && t.name !== fileTableName).map(t => {
22
- const refCols = t.columns.filter(c => c.references?.some(r => r.ftable === fileTableName));
23
- if(!refCols.length) return undefined;
24
- return {
25
- tableName: t.name,
26
- fileColumns: refCols.map(c => c.name),
27
- allColumns: t.columns.map(c => c.name),
28
- }
29
- }).filter(isDefined)
30
- if(referencedColumns?.length){
31
- for await (const { tableName, fileColumns, allColumns } of referencedColumns){
32
- const table_rules = await this.getTableRules({ localParams, tableName }, clientInfo);
33
- if(table_rules){
34
- fileColumns.map(column => {
27
+ const referencedColumns = this.prostgles.dboBuilder.tablesOrViews
28
+ ?.filter((t) => !t.is_view && t.name !== fileTableName)
29
+ .map((t) => {
30
+ const refCols = t.columns.filter((c) =>
31
+ c.references?.some((r) => r.ftable === fileTableName),
32
+ );
33
+ if (!refCols.length) return undefined;
34
+ return {
35
+ tableName: t.name,
36
+ fileColumns: refCols.map((c) => c.name),
37
+ allColumns: t.columns.map((c) => c.name),
38
+ };
39
+ })
40
+ .filter(isDefined);
41
+ if (referencedColumns?.length) {
42
+ for await (const {
43
+ tableName,
44
+ fileColumns,
45
+ allColumns,
46
+ } of referencedColumns) {
47
+ const table_rules = await this.getTableRules(
48
+ { localParams, tableName },
49
+ clientInfo,
50
+ );
51
+ if (table_rules) {
52
+ fileColumns.map((column) => {
35
53
  const path = [{ table: tableName, on: [{ id: column }] }];
36
- if(table_rules.delete){
54
+ if (table_rules.delete) {
37
55
  forcedDeleteFilters.push({
38
56
  $existsJoined: {
39
57
  path,
40
58
  filter: table_rules.delete.forcedFilter ?? {},
41
- }
42
- })
59
+ },
60
+ });
43
61
  }
44
- if(table_rules.select){
45
- const parsedFields = parseFieldFilter(table_rules.select.fields, false, allColumns);
62
+ if (table_rules.select) {
63
+ const parsedFields = parseFieldFilter(
64
+ table_rules.select.fields,
65
+ false,
66
+ allColumns,
67
+ );
46
68
  /** Must be allowed to view this column */
47
- if(parsedFields.includes(column as any)){
69
+ if (parsedFields.includes(column as any)) {
48
70
  forcedSelectFilters.push({
49
71
  $existsJoined: {
50
72
  path,
51
73
  filter: table_rules.select.forcedFilter ?? {},
52
- }
74
+ },
53
75
  });
54
76
  }
55
77
  }
56
- if(table_rules.insert){
57
- const parsedFields = parseFieldFilter(table_rules.insert.fields, false, allColumns);
78
+ if (table_rules.insert) {
79
+ const parsedFields = parseFieldFilter(
80
+ table_rules.insert.fields,
81
+ false,
82
+ allColumns,
83
+ );
58
84
  /** Must be allowed to view this column */
59
- if(parsedFields.includes(column as any)){
85
+ if (parsedFields.includes(column as any)) {
60
86
  allowedNestedInserts.push({ table: tableName, column });
61
87
  }
62
88
  }
63
- if(table_rules.update){
64
- const parsedFields = parseFieldFilter(table_rules.update.fields, false, allColumns);
89
+ if (table_rules.update) {
90
+ const parsedFields = parseFieldFilter(
91
+ table_rules.update.fields,
92
+ false,
93
+ allColumns,
94
+ );
65
95
  /** Must be allowed to view this column */
66
- if(parsedFields.includes(column as any)){
96
+ if (parsedFields.includes(column as any)) {
67
97
  forcedUpdateFilters.push({
68
98
  $existsJoined: {
69
99
  path,
70
100
  filter: table_rules.update.forcedFilter ?? {},
71
- }
101
+ },
72
102
  });
73
103
  }
74
104
  }
75
- })
105
+ });
76
106
  }
77
107
  }
78
108
  }
@@ -81,44 +111,57 @@ export async function getFileTableRules (this: PublishParser, fileTableName: str
81
111
  ...fileTablePublishRules,
82
112
  };
83
113
 
84
- const getForcedFilter = (rule: Pick<UpdateRule, "forcedFilter"> | undefined, forcedFilters: FullFilter<AnyObject, void>[]) => {
85
- return (rule && !rule.forcedFilter)? {} : {
86
- forcedFilter: {
87
- $or: forcedFilters.concat(rule?.forcedFilter? [rule?.forcedFilter] : []),
88
- }
89
- }
90
- }
91
- if(forcedSelectFilters.length || fileTablePublishRules?.select){
114
+ const getForcedFilter = (
115
+ rule: Pick<UpdateRule, "forcedFilter"> | undefined,
116
+ forcedFilters: FullFilter<AnyObject, void>[],
117
+ ) => {
118
+ return rule && !rule.forcedFilter
119
+ ? {}
120
+ : {
121
+ forcedFilter: {
122
+ $or: forcedFilters.concat(
123
+ rule?.forcedFilter ? [rule?.forcedFilter] : [],
124
+ ),
125
+ },
126
+ };
127
+ };
128
+ if (forcedSelectFilters.length || fileTablePublishRules?.select) {
92
129
  fileTableRule.select = {
93
130
  fields: "*",
94
131
  ...fileTablePublishRules?.select,
95
132
  ...getForcedFilter(fileTablePublishRules?.select, forcedSelectFilters),
96
- }
133
+ };
97
134
  }
98
- if(forcedDeleteFilters.length || fileTablePublishRules?.delete){
135
+ if (forcedDeleteFilters.length || fileTablePublishRules?.delete) {
99
136
  fileTableRule.delete = {
100
137
  filterFields: "*",
101
138
  ...fileTablePublishRules?.delete,
102
139
  ...getForcedFilter(fileTablePublishRules?.delete, forcedDeleteFilters),
103
- }
140
+ };
104
141
  }
105
- if(forcedUpdateFilters.length || fileTablePublishRules?.update){
142
+ if (forcedUpdateFilters.length || fileTablePublishRules?.update) {
106
143
  fileTableRule.update = {
107
144
  fields: "*",
108
145
  ...fileTablePublishRules?.update,
109
146
  ...getForcedFilter(fileTablePublishRules?.update, forcedUpdateFilters),
110
- }
147
+ };
111
148
  }
112
149
 
113
- if(allowedNestedInserts.length || fileTablePublishRules?.insert){
150
+ if (allowedNestedInserts.length || fileTablePublishRules?.insert) {
114
151
  fileTableRule.insert = {
115
152
  fields: "*",
116
153
  ...fileTablePublishRules?.insert,
117
- allowedNestedInserts: fileTablePublishRules?.insert? undefined : allowedNestedInserts,
118
- }
154
+ allowedNestedInserts: fileTablePublishRules?.insert
155
+ ? undefined
156
+ : allowedNestedInserts,
157
+ };
119
158
  }
120
159
 
121
160
  /** Add missing implied methods (getColumns, getInfo) */
122
- const rules = await this.getTableRulesWithoutFileTable.bind(this)({ localParams, tableName: fileTableName }, clientInfo, { [fileTableName]: fileTableRule })
161
+ const rules = await this.getTableRulesWithoutFileTable.bind(this)(
162
+ { localParams, tableName: fileTableName },
163
+ clientInfo,
164
+ { [fileTableName]: fileTableRule },
165
+ );
123
166
  return { rules, allowedInserts: allowedNestedInserts };
124
- }
167
+ }