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
@@ -8,16 +8,16 @@ export async function onSocketConnected(this: Prostgles, socket: PRGLIOSocket) {
8
8
  if (this.destroyed) {
9
9
  console.log("Socket connected to destroyed instance");
10
10
  socket.disconnect();
11
- return
11
+ return;
12
12
  }
13
13
  this.connectedSockets.push(socket);
14
14
 
15
15
  try {
16
16
  await this.opts.onLog?.({
17
- type: "connect",
17
+ type: "connect",
18
18
  sid: this.authHandler?.getSID({ socket }),
19
19
  socketId: socket.id,
20
- connectedSocketIds: this.connectedSockets.map(s => s.id)
20
+ connectedSocketIds: this.connectedSockets.map((s) => s.id),
21
21
  });
22
22
 
23
23
  if (!this.db || !this.dbo) throw new Error("db/dbo missing");
@@ -25,78 +25,113 @@ export async function onSocketConnected(this: Prostgles, socket: PRGLIOSocket) {
25
25
 
26
26
  if (this.opts.onSocketConnect) {
27
27
  try {
28
- const getUser = async () => { return await this.authHandler?.getClientInfo({ socket }); }
29
- await this.opts.onSocketConnect({ socket, dbo: dbo as any, db, getUser });
30
- } catch(error) {
31
- const connectionError = error instanceof Error? error.message : typeof error === "string"? error : JSON.stringify(error);
28
+ const getUser = async () => {
29
+ return await this.authHandler?.getClientInfo({ socket });
30
+ };
31
+ await this.opts.onSocketConnect({
32
+ socket,
33
+ dbo: dbo as any,
34
+ db,
35
+ getUser,
36
+ });
37
+ } catch (error) {
38
+ const connectionError =
39
+ error instanceof Error
40
+ ? error.message
41
+ : typeof error === "string"
42
+ ? error
43
+ : JSON.stringify(error);
32
44
  socket.emit(CHANNELS.CONNECTION, { connectionError });
33
45
  socket.disconnect();
34
46
  return;
35
47
  }
36
48
  }
37
49
 
38
- socket.removeAllListeners(CHANNELS.DEFAULT)
39
- socket.on(CHANNELS.DEFAULT, async (args: SocketRequestParams, cb = (..._callback: any[]) => { /* Empty */}) => {
40
- runClientRequest.bind(this)({ ...args, type: "socket", socket })
41
- .then(res => {
42
- cb(null, res)
43
- }).catch(err => {
44
- cb(err);
45
- });
46
- });
50
+ socket.removeAllListeners(CHANNELS.DEFAULT);
51
+ socket.on(
52
+ CHANNELS.DEFAULT,
53
+ async (
54
+ args: SocketRequestParams,
55
+ cb = (..._callback: any[]) => {
56
+ /* Empty */
57
+ },
58
+ ) => {
59
+ runClientRequest
60
+ .bind(this)({ ...args, type: "socket", socket })
61
+ .then((res) => {
62
+ cb(null, res);
63
+ })
64
+ .catch((err) => {
65
+ cb(err);
66
+ });
67
+ },
68
+ );
47
69
 
48
70
  socket.on("disconnect", () => {
49
-
50
71
  this.dbEventsManager?.removeNotice(socket);
51
72
  this.dbEventsManager?.removeNotify(undefined, socket);
52
- this.connectedSockets = this.connectedSockets.filter(s => s.id !== socket.id);
73
+ this.connectedSockets = this.connectedSockets.filter(
74
+ (s) => s.id !== socket.id,
75
+ );
53
76
  this.dboBuilder.queryStreamer.onDisconnect(socket.id);
54
- this.opts.onLog?.({
55
- type: "disconnect",
77
+ this.opts.onLog?.({
78
+ type: "disconnect",
56
79
  sid: this.authHandler?.getSID({ socket }),
57
80
  socketId: socket.id,
58
- connectedSocketIds: this.connectedSockets.map(s => s.id)
81
+ connectedSocketIds: this.connectedSockets.map((s) => s.id),
59
82
  });
60
83
 
61
84
  if (this.opts.onSocketDisconnect) {
62
- const getUser = async () => { return await this.authHandler?.getClientInfo({ socket }); }
85
+ const getUser = async () => {
86
+ return await this.authHandler?.getClientInfo({ socket });
87
+ };
63
88
  this.opts.onSocketDisconnect({ socket, dbo: dbo as any, db, getUser });
64
89
  }
65
90
  });
66
91
 
67
- socket.removeAllListeners(CHANNELS.METHOD)
68
- socket.on(CHANNELS.METHOD, async ({ method, params }: SocketMethodRequest, cb = (..._callback: any) => { /* Empty */ }) => {
69
- runClientMethod.bind(this)({
70
- type: "socket",
71
- socket,
72
- method,
73
- params
74
- }).then(res => {
75
- cb(null, res)
76
- }).catch(err => {
77
- makeSocketError(cb, err)
78
- });
79
- });
92
+ socket.removeAllListeners(CHANNELS.METHOD);
93
+ socket.on(
94
+ CHANNELS.METHOD,
95
+ async (
96
+ { method, params }: SocketMethodRequest,
97
+ cb = (..._callback: any) => {
98
+ /* Empty */
99
+ },
100
+ ) => {
101
+ runClientMethod
102
+ .bind(this)({
103
+ type: "socket",
104
+ socket,
105
+ method,
106
+ params,
107
+ })
108
+ .then((res) => {
109
+ cb(null, res);
110
+ })
111
+ .catch((err) => {
112
+ makeSocketError(cb, err);
113
+ });
114
+ },
115
+ );
80
116
 
81
117
  this.pushSocketSchema(socket);
82
118
  } catch (e) {
83
- console.trace("setSocketEvents: ", e)
119
+ console.trace("setSocketEvents: ", e);
84
120
  }
85
121
  }
86
122
 
87
-
88
123
  export function makeSocketError(cb: (err: AnyObject) => void, err: any) {
89
124
  cb(getErrorAsObject(err));
90
125
  }
91
126
 
92
127
  type SocketRequestParams = {
93
128
  tableName: string;
94
- command: typeof TABLE_METHODS[number];
129
+ command: (typeof TABLE_METHODS)[number];
95
130
  param1: any;
96
131
  param2: any;
97
132
  param3: any;
98
- }
133
+ };
99
134
  type SocketMethodRequest = {
100
135
  method: string;
101
136
  params: any;
102
- }
137
+ };
@@ -1,6 +1,10 @@
1
- import { AnyObject,
2
- TableHandler,
3
- UserLike, getKeys, pickKeys } from "prostgles-types";
1
+ import {
2
+ AnyObject,
3
+ TableHandler,
4
+ UserLike,
5
+ getKeys,
6
+ pickKeys,
7
+ } from "prostgles-types";
4
8
  import { ExpressReq } from "./Auth/AuthTypes";
5
9
  import { LocalParams, PRGLIOSocket } from "./DboBuilder/DboBuilder";
6
10
  import { parseFieldFilter } from "./DboBuilder/ViewHandler/parseFieldFilter";
@@ -8,44 +12,55 @@ import { canRunSQL } from "./DboBuilder/runSQL";
8
12
  import { Prostgles } from "./Prostgles";
9
13
  import { TableHandler as TableHandlerServer } from "./DboBuilder/TableHandler/TableHandler";
10
14
  import { TableRule } from "./PublishParser/publishTypesAndUtils";
11
-
12
- type ReqInfo = {
13
- type: "socket";
14
- socket: PRGLIOSocket;
15
- httpReq?: undefined;
16
- } | {
17
- type: "http";
18
- httpReq: ExpressReq;
19
- socket?: undefined;
20
- }
21
- type ReqInfoClient = {
22
- socket: PRGLIOSocket;
23
- } | {
24
- httpReq: ExpressReq;
25
- }
15
+
16
+ type ReqInfo =
17
+ | {
18
+ type: "socket";
19
+ socket: PRGLIOSocket;
20
+ httpReq?: undefined;
21
+ }
22
+ | {
23
+ type: "http";
24
+ httpReq: ExpressReq;
25
+ socket?: undefined;
26
+ };
27
+ type ReqInfoClient =
28
+ | {
29
+ socket: PRGLIOSocket;
30
+ }
31
+ | {
32
+ httpReq: ExpressReq;
33
+ };
26
34
 
27
35
  const TABLE_METHODS = {
28
- find: 1,
29
- findOne: 1,
30
- count: 1,
31
- size: 1,
36
+ find: 1,
37
+ findOne: 1,
38
+ count: 1,
39
+ size: 1,
32
40
  update: 1,
33
- updateBatch: 1,
34
- delete: 1,
35
- upsert: 1,
36
- insert: 1,
37
- subscribe: 1,
38
- subscribeOne: 1,
39
- getColumns: 1,
41
+ updateBatch: 1,
42
+ delete: 1,
43
+ upsert: 1,
44
+ insert: 1,
45
+ subscribe: 1,
46
+ subscribeOne: 1,
47
+ getColumns: 1,
40
48
  getInfo: 1,
41
49
  sync: 1,
42
- } as const satisfies Record<(keyof (TableHandler & Pick<TableHandlerServer, "sync">)), 1>;
50
+ } as const satisfies Record<
51
+ keyof (TableHandler & Pick<TableHandlerServer, "sync">),
52
+ 1
53
+ >;
43
54
 
44
55
  const TABLE_METHODS_KEYS = getKeys(TABLE_METHODS);
45
- const SOCKET_ONLY_COMMANDS = ["subscribe", "subscribeOne", "sync"] as const satisfies typeof TABLE_METHODS_KEYS;
56
+ const SOCKET_ONLY_COMMANDS = [
57
+ "subscribe",
58
+ "subscribeOne",
59
+ "sync",
60
+ ] as const satisfies typeof TABLE_METHODS_KEYS;
46
61
 
47
62
  type Args = ReqInfo & {
48
- tableName: string;
63
+ tableName: string;
49
64
  command: string;
50
65
  param1: any;
51
66
  param2: any;
@@ -53,114 +68,168 @@ type Args = ReqInfo & {
53
68
  };
54
69
 
55
70
  const getReqInfoClient = (reqInfo: ReqInfo): ReqInfoClient => {
56
- if(reqInfo.type === "socket"){
71
+ if (reqInfo.type === "socket") {
57
72
  return { socket: reqInfo.socket };
58
73
  }
59
74
  return { httpReq: reqInfo.httpReq };
60
- }
75
+ };
61
76
 
62
- type TableMethodFunctionWithRulesAndLocalParams = ((arg1: any, arg2: any, arg3: any, tableRule: TableRule, localParams: LocalParams) => any);
77
+ type TableMethodFunctionWithRulesAndLocalParams = (
78
+ arg1: any,
79
+ arg2: any,
80
+ arg3: any,
81
+ tableRule: TableRule,
82
+ localParams: LocalParams,
83
+ ) => any;
63
84
 
64
- export const runClientRequest = async function(this: Prostgles, args: Args){
85
+ export const runClientRequest = async function (this: Prostgles, args: Args) {
65
86
  /* Channel name will only include client-sent params so we ignore table_rules enforced params */
66
- if ((args.type === "socket" && !args.socket) || (args.type === "http" && !args.httpReq) || !this.authHandler || !this.publishParser || !this.dbo) {
87
+ if (
88
+ (args.type === "socket" && !args.socket) ||
89
+ (args.type === "http" && !args.httpReq) ||
90
+ !this.authHandler ||
91
+ !this.publishParser ||
92
+ !this.dbo
93
+ ) {
67
94
  throw "socket/httpReq or authhandler missing";
68
95
  }
69
96
 
70
- const { tableName, command: nonValidatedCommand, param1, param2, param3 } = args;
71
- if(!TABLE_METHODS_KEYS.some(v => v === nonValidatedCommand)){
72
- throw `Invalid command: ${nonValidatedCommand}. Expecting one of: ${TABLE_METHODS_KEYS};`
97
+ const {
98
+ tableName,
99
+ command: nonValidatedCommand,
100
+ param1,
101
+ param2,
102
+ param3,
103
+ } = args;
104
+ if (!TABLE_METHODS_KEYS.some((v) => v === nonValidatedCommand)) {
105
+ throw `Invalid command: ${nonValidatedCommand}. Expecting one of: ${TABLE_METHODS_KEYS};`;
73
106
  }
74
107
  const command = nonValidatedCommand as keyof TableHandler;
75
- if(args.type !== "socket" && SOCKET_ONLY_COMMANDS.some(v => v === command)){
76
- throw "The following commands cannot be completed over a non-websocket connection: " + SOCKET_ONLY_COMMANDS;
108
+ if (
109
+ args.type !== "socket" &&
110
+ SOCKET_ONLY_COMMANDS.some((v) => v === command)
111
+ ) {
112
+ throw (
113
+ "The following commands cannot be completed over a non-websocket connection: " +
114
+ SOCKET_ONLY_COMMANDS
115
+ );
77
116
  }
78
117
 
79
118
  const reqInfo = getReqInfoClient(args);
80
119
  const clientInfo = await this.authHandler.getClientInfo(args);
81
- const validRules = await this.publishParser.getValidatedRequestRule({ tableName, command, localParams: reqInfo }, clientInfo);
120
+ const validRules = await this.publishParser.getValidatedRequestRule(
121
+ { tableName, command, localParams: reqInfo },
122
+ clientInfo,
123
+ );
82
124
  if (!validRules) {
83
125
  throw `Invalid OR disallowed request: ${tableName}.${command} `;
84
126
  }
85
127
 
86
- const sessionUser: UserLike | undefined = !clientInfo?.user? undefined : {
87
- ...parseFieldFilter(clientInfo.sessionFields ?? [] as any, false, Object.keys(clientInfo.user)),
88
- ...pickKeys(clientInfo.user, ["id", "type"]) as UserLike,
89
- }
90
- const localParams: LocalParams = { ...reqInfo, isRemoteRequest: { user: sessionUser } }
91
- if(param3 && (param3 as LocalParams).returnQuery){
128
+ const sessionUser: UserLike | undefined = !clientInfo?.user
129
+ ? undefined
130
+ : {
131
+ ...parseFieldFilter(
132
+ clientInfo.sessionFields ?? ([] as any),
133
+ false,
134
+ Object.keys(clientInfo.user),
135
+ ),
136
+ ...(pickKeys(clientInfo.user, ["id", "type"]) as UserLike),
137
+ };
138
+ const localParams: LocalParams = {
139
+ ...reqInfo,
140
+ isRemoteRequest: { user: sessionUser },
141
+ };
142
+ if (param3 && (param3 as LocalParams).returnQuery) {
92
143
  const isAllowed = await canRunSQL(this, localParams);
93
- if(isAllowed){
144
+ if (isAllowed) {
94
145
  localParams.returnQuery = (param3 as LocalParams).returnQuery;
95
146
  } else {
96
147
  throw "Must be allowed to run sql to use returnQuery";
97
148
  }
98
149
  }
99
150
  const tableHandler = this.dbo[tableName];
100
- if(!tableHandler || !tableHandler.column_names) throw `Invalid tableName ${tableName} provided`;
151
+ if (!tableHandler || !tableHandler.column_names)
152
+ throw `Invalid tableName ${tableName} provided`;
101
153
 
102
154
  /**
103
155
  * satisfies check is used to ensure rules arguments are correctly passed to each method
104
156
  */
105
- const tableCommand = tableHandler[command]?.bind(tableHandler) satisfies undefined | TableMethodFunctionWithRulesAndLocalParams;
106
- if(!tableCommand) throw `Invalid or disallowed command provided: ${command}`;
107
- return (this.dbo[tableName]![command] as TableMethodFunctionWithRulesAndLocalParams)(param1, param2, param3, validRules, localParams);
157
+ const tableCommand = tableHandler[command]?.bind(tableHandler) satisfies
158
+ | undefined
159
+ | TableMethodFunctionWithRulesAndLocalParams;
160
+ if (!tableCommand) throw `Invalid or disallowed command provided: ${command}`;
161
+ return (
162
+ this.dbo[tableName]![command] as TableMethodFunctionWithRulesAndLocalParams
163
+ )(param1, param2, param3, validRules, localParams);
108
164
  // This approach is breaking context
109
165
  // const result = await (tableCommand as TableMethodFunctionWithRulesAndLocalParams)(param1, param2, param3, validRules, localParams);
110
166
  // return result;
111
- }
167
+ };
112
168
 
113
- export const clientCanRunSqlRequest = async function(this: Prostgles, args: ReqInfo){
169
+ export const clientCanRunSqlRequest = async function (
170
+ this: Prostgles,
171
+ args: ReqInfo,
172
+ ) {
114
173
  const reqInfo = getReqInfoClient(args);
115
- if(!this.opts.publishRawSQL || typeof this.opts.publishRawSQL !== "function"){
116
- return { allowed: false, reqInfo }
117
- }
174
+ if (
175
+ !this.opts.publishRawSQL ||
176
+ typeof this.opts.publishRawSQL !== "function"
177
+ ) {
178
+ return { allowed: false, reqInfo };
179
+ }
118
180
  const canRunSQL = async () => {
119
- if(!this.authHandler){
181
+ if (!this.authHandler) {
120
182
  throw "authHandler missing";
121
- }
183
+ }
122
184
  const publishParams = await this.publishParser?.getPublishParams(reqInfo);
123
185
  const res = await this.opts.publishRawSQL?.(publishParams as any);
124
- return Boolean(res && typeof res === "boolean" || res === "*");
125
- }
186
+ return Boolean((res && typeof res === "boolean") || res === "*");
187
+ };
126
188
 
127
189
  const allowed = await canRunSQL();
128
190
  return { allowed, reqInfo };
129
- }
191
+ };
130
192
 
131
193
  type ArgsSql = ReqInfo & {
132
194
  query: string;
133
195
  args?: AnyObject | any[];
134
196
  options?: any;
135
- }
136
- export const runClientSqlRequest = async function(this: Prostgles, params: ArgsSql){
197
+ };
198
+ export const runClientSqlRequest = async function (
199
+ this: Prostgles,
200
+ params: ArgsSql,
201
+ ) {
137
202
  const { allowed, reqInfo } = await clientCanRunSqlRequest.bind(this)(params);
138
- if(!allowed){
203
+ if (!allowed) {
139
204
  throw "Not allowed to execute sql";
140
205
  }
141
206
  if (!this.dbo?.sql) throw "Internal error: sql handler missing";
142
207
  const { query, args, options } = params;
143
208
  return this.dbo.sql(query, args, options, reqInfo);
144
- }
145
-
146
-
209
+ };
147
210
 
148
211
  type ArgsMethod = ReqInfo & {
149
212
  method: string;
150
- params?: any[]
151
- }
152
- export const runClientMethod = async function(this: Prostgles, reqArgs: ArgsMethod){
153
-
213
+ params?: any[];
214
+ };
215
+ export const runClientMethod = async function (
216
+ this: Prostgles,
217
+ reqArgs: ArgsMethod,
218
+ ) {
154
219
  const reqInfo = getReqInfoClient(reqArgs);
155
220
  const { method, params = [] } = reqArgs;
156
221
  const methods = await this.publishParser?.getAllowedMethods(reqInfo);
157
222
 
158
223
  if (!methods || !methods[method]) {
159
- throw ("Disallowed/missing method " + JSON.stringify(method));
160
- }
224
+ throw "Disallowed/missing method " + JSON.stringify(method);
225
+ }
161
226
 
162
227
  const methodDef = methods[method]!;
163
- const onRun = (typeof methodDef === "function" || typeof (methodDef as any).then === "function")? (methodDef as (...args: any) => Promise<void>) : methodDef.run;
228
+ const onRun =
229
+ typeof methodDef === "function" ||
230
+ typeof (methodDef as any).then === "function"
231
+ ? (methodDef as (...args: any) => Promise<void>)
232
+ : methodDef.run;
164
233
  const res = await onRun(...params);
165
- return res;
166
- }
234
+ return res;
235
+ };
@@ -1,85 +1,89 @@
1
1
  import { AnyObject } from "prostgles-types";
2
2
 
3
3
  const shortestDistanceNode = (distances: AnyObject, visited: AnyObject) => {
4
- let shortest = null;
5
-
6
- for (const node in distances) {
7
- const currentIsShortest =
8
- shortest === null || distances[node] < distances[shortest];
9
- if (currentIsShortest && !visited.includes(node)) {
10
- shortest = node;
11
- }
12
- }
13
- return shortest;
4
+ let shortest = null;
5
+
6
+ for (const node in distances) {
7
+ const currentIsShortest =
8
+ shortest === null || distances[node] < distances[shortest];
9
+ if (currentIsShortest && !visited.includes(node)) {
10
+ shortest = node;
11
+ }
12
+ }
13
+ return shortest;
14
14
  };
15
15
  export type Graph = {
16
- [key: string]: { [key: string]: number }
16
+ [key: string]: { [key: string]: number };
17
17
  };
18
18
 
19
- export const findShortestPath = (graph: Graph, startNode: string, endNode: string): { distance: number, path: string[] } => {
20
- // establish object for recording distances from the start node
21
- let distances: AnyObject = {};
22
- distances[endNode] = "Infinity";
23
- distances = Object.assign(distances, graph[startNode]);
24
-
25
- // track paths
26
- const parents: AnyObject = { endNode: null };
27
- for (const child in graph[startNode]) {
28
- parents[child] = startNode;
29
- }
30
-
31
- // track nodes that have already been visited
32
- const visited: AnyObject = [];
33
-
34
- // find the nearest node
35
- let node = shortestDistanceNode(distances, visited);
36
-
37
- // for that node
38
- while (node) {
39
- // find its distance from the start node & its child nodes
40
- const distance = distances[node];
41
- const children = graph[node];
42
- // for each of those child nodes
43
- for (const child in children) {
44
- // make sure each child node is not the start node
45
- if (String(child) === String(startNode)) {
46
- continue;
47
- } else {
48
- // save the distance from the start node to the child node
49
- const newdistance = distance + children[child];
50
- // if there's no recorded distance from the start node to the child node in the distances object
51
- // or if the recorded distance is shorter than the previously stored distance from the start node to the child node
52
- // save the distance to the object
53
- // record the path
54
- if (!distances[child] || distances[child] > newdistance) {
55
- distances[child] = newdistance;
56
- parents[child] = node;
57
- }
58
- }
59
- }
60
- // move the node to the visited set
61
- visited.push(node);
62
- // move to the nearest neighbor node
63
- node = shortestDistanceNode(distances, visited);
64
- }
65
-
66
- // using the stored paths from start node to end node
67
- // record the shortest path
68
- const shortestPath = [endNode];
69
- let parent = parents[endNode];
70
- while (parent) {
71
- shortestPath.push(parent);
72
- parent = parents[parent];
73
- }
74
- shortestPath.reverse();
75
-
76
- // return the shortest path from start node to end node & its distance
77
- const results = {
78
- distance: distances[endNode],
79
- path: shortestPath,
80
- };
81
-
82
- return results;
19
+ export const findShortestPath = (
20
+ graph: Graph,
21
+ startNode: string,
22
+ endNode: string,
23
+ ): { distance: number; path: string[] } => {
24
+ // establish object for recording distances from the start node
25
+ let distances: AnyObject = {};
26
+ distances[endNode] = "Infinity";
27
+ distances = Object.assign(distances, graph[startNode]);
28
+
29
+ // track paths
30
+ const parents: AnyObject = { endNode: null };
31
+ for (const child in graph[startNode]) {
32
+ parents[child] = startNode;
33
+ }
34
+
35
+ // track nodes that have already been visited
36
+ const visited: AnyObject = [];
37
+
38
+ // find the nearest node
39
+ let node = shortestDistanceNode(distances, visited);
40
+
41
+ // for that node
42
+ while (node) {
43
+ // find its distance from the start node & its child nodes
44
+ const distance = distances[node];
45
+ const children = graph[node];
46
+ // for each of those child nodes
47
+ for (const child in children) {
48
+ // make sure each child node is not the start node
49
+ if (String(child) === String(startNode)) {
50
+ continue;
51
+ } else {
52
+ // save the distance from the start node to the child node
53
+ const newdistance = distance + children[child];
54
+ // if there's no recorded distance from the start node to the child node in the distances object
55
+ // or if the recorded distance is shorter than the previously stored distance from the start node to the child node
56
+ // save the distance to the object
57
+ // record the path
58
+ if (!distances[child] || distances[child] > newdistance) {
59
+ distances[child] = newdistance;
60
+ parents[child] = node;
61
+ }
62
+ }
63
+ }
64
+ // move the node to the visited set
65
+ visited.push(node);
66
+ // move to the nearest neighbor node
67
+ node = shortestDistanceNode(distances, visited);
68
+ }
69
+
70
+ // using the stored paths from start node to end node
71
+ // record the shortest path
72
+ const shortestPath = [endNode];
73
+ let parent = parents[endNode];
74
+ while (parent) {
75
+ shortestPath.push(parent);
76
+ parent = parents[parent];
77
+ }
78
+ shortestPath.reverse();
79
+
80
+ // return the shortest path from start node to end node & its distance
81
+ const results = {
82
+ distance: distances[endNode],
83
+ path: shortestPath,
84
+ };
85
+
86
+ return results;
83
87
  };
84
88
 
85
89
  /* Usage:
@@ -119,4 +123,4 @@ const graph = {
119
123
  findShortestPath(graph, 'start', 'end');
120
124
 
121
125
 
122
- */
126
+ */
@@ -266,7 +266,11 @@ export type DBGeneratedSchema = {
266
266
  columns: {
267
267
  email: string;
268
268
  id?: number;
269
- preferences: { showIntro?: boolean; theme?: "light" | "dark" | "auto"; others: any[] };
269
+ preferences: {
270
+ showIntro?: boolean;
271
+ theme?: "light" | "dark" | "auto";
272
+ others: any[];
273
+ };
270
274
  status: "active" | "disabled" | "pending";
271
275
  };
272
276
  };