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
@@ -23,22 +23,36 @@ export class PostgresNotifListenManager {
23
23
  isListening: any;
24
24
  client?: pg.IClient;
25
25
 
26
- static create = (db_pg: DB, notifListener: PrglNotifListener, db_channel_name: string): Promise<PostgresNotifListenManager> => {
27
- const res = new PostgresNotifListenManager(db_pg, notifListener, db_channel_name, true);
26
+ static create = (
27
+ db_pg: DB,
28
+ notifListener: PrglNotifListener,
29
+ db_channel_name: string,
30
+ ): Promise<PostgresNotifListenManager> => {
31
+ const res = new PostgresNotifListenManager(
32
+ db_pg,
33
+ notifListener,
34
+ db_channel_name,
35
+ true,
36
+ );
28
37
  return res.init();
29
- }
30
-
31
- constructor(db_pg: DB, notifListener: PrglNotifListener, db_channel_name: string, noInit = false) {
32
- if (!db_pg || !notifListener || !db_channel_name) throw "PostgresNotifListenManager: db_pg OR notifListener OR db_channel_name MISSING";
38
+ };
39
+
40
+ constructor(
41
+ db_pg: DB,
42
+ notifListener: PrglNotifListener,
43
+ db_channel_name: string,
44
+ noInit = false,
45
+ ) {
46
+ if (!db_pg || !notifListener || !db_channel_name)
47
+ throw "PostgresNotifListenManager: db_pg OR notifListener OR db_channel_name MISSING";
33
48
  this.db_pg = db_pg;
34
49
  this.notifListener = notifListener;
35
50
  this.db_channel_name = db_channel_name;
36
51
 
37
- if (!noInit) this.init()
52
+ if (!noInit) this.init();
38
53
  }
39
54
 
40
55
  async init(): Promise<PostgresNotifListenManager> {
41
-
42
56
  this.connection = undefined;
43
57
 
44
58
  this.isListening = await this.startListening();
@@ -50,12 +64,15 @@ export class PostgresNotifListenManager {
50
64
  }
51
65
 
52
66
  startListening() {
53
- if (!this.db_pg || !this.notifListener) throw "PostgresNotifListenManager: db_pg OR notifListener missing";
54
-
55
- return this.reconnect()
56
- .catch(error => {
57
- console.log('PostgresNotifListenManager: Failed Initial Connection:', error);
58
- });
67
+ if (!this.db_pg || !this.notifListener)
68
+ throw "PostgresNotifListenManager: db_pg OR notifListener missing";
69
+
70
+ return this.reconnect().catch((error) => {
71
+ console.log(
72
+ "PostgresNotifListenManager: Failed Initial Connection:",
73
+ error,
74
+ );
75
+ });
59
76
  }
60
77
 
61
78
  destroyed = false;
@@ -64,75 +81,91 @@ export class PostgresNotifListenManager {
64
81
  await this.stopListening();
65
82
  this.connection?.done();
66
83
  this.connection = undefined;
67
- }
84
+ };
68
85
 
69
86
  stopListening = async () => {
70
87
  if (this.db_channel_name) {
71
88
  try {
72
- await this.connection?.none('UNLISTEN $1~', [this.db_channel_name])
73
- await this.client?.query('UNLISTEN $1~', [this.db_channel_name])
74
- } catch(error){
75
-
76
- }
89
+ await this.connection?.none("UNLISTEN $1~", [this.db_channel_name]);
90
+ await this.client?.query("UNLISTEN $1~", [this.db_channel_name]);
91
+ } catch (error) {}
77
92
  }
78
- }
93
+ };
79
94
 
80
- reconnect(delay: number | undefined = 0, maxAttempts: number | undefined = 0) {
81
- if (!this.db_pg || !this.notifListener) throw "db_pg OR notifListener missing";
95
+ reconnect(
96
+ delay: number | undefined = 0,
97
+ maxAttempts: number | undefined = 0,
98
+ ) {
99
+ if (!this.db_pg || !this.notifListener)
100
+ throw "db_pg OR notifListener missing";
82
101
 
83
102
  if (this.destroyed) {
84
- return Promise.reject("Destroyed")
103
+ return Promise.reject("Destroyed");
85
104
  }
86
105
 
87
106
  delay = delay > 0 ? parseInt(delay + "") : 0;
88
107
  maxAttempts = maxAttempts > 0 ? parseInt(maxAttempts + "") : 1;
89
108
 
90
- const setListeners = (client: pg.IClient, notifListener: PrglNotifListener, db_channel_name: string) => {
91
- client.on('notification', notifListener);
92
- this.client = client;
93
- if (!this.connection) throw "Connection missing";
94
- return this.connection.none(
95
- `/* prostgles-server internal query used for subscriptions and schema hot reload */ \nLISTEN $1~`, db_channel_name)
96
- .catch(error => {
97
- console.log("PostgresNotifListenManager: unexpected error: ", error); // unlikely to ever happen
98
- });
99
- },
100
- removeListeners = (client: pg.IClient) => {
101
- client.removeListener('notification', this.notifListener);
102
- },
103
- onConnectionLost = (err: any, e: pgPromise.ILostContext<pg.IClient>) => {
104
-
105
- console.log('PostgresNotifListenManager: Connectivity Problem:', err);
106
- this.connection = undefined; // prevent use of the broken connection
107
- removeListeners(e.client);
108
-
109
- this.reconnect(5000, 10) // retry 10 times, with 5-second intervals
110
- .then(() => {
111
- console.log('PostgresNotifListenManager: Successfully Reconnected');
112
- })
113
- .catch(() => {
114
- // failed after 10 attempts
115
- console.log('PostgresNotifListenManager: Connection Lost Permanently. No more retryies');
116
- // process.exit(); // exiting the process
117
- });
118
- }
109
+ const setListeners = (
110
+ client: pg.IClient,
111
+ notifListener: PrglNotifListener,
112
+ db_channel_name: string,
113
+ ) => {
114
+ client.on("notification", notifListener);
115
+ this.client = client;
116
+ if (!this.connection) throw "Connection missing";
117
+ return this.connection
118
+ .none(
119
+ `/* prostgles-server internal query used for subscriptions and schema hot reload */ \nLISTEN $1~`,
120
+ db_channel_name,
121
+ )
122
+ .catch((error) => {
123
+ console.log(
124
+ "PostgresNotifListenManager: unexpected error: ",
125
+ error,
126
+ ); // unlikely to ever happen
127
+ });
128
+ },
129
+ removeListeners = (client: pg.IClient) => {
130
+ client.removeListener("notification", this.notifListener);
131
+ },
132
+ onConnectionLost = (err: any, e: pgPromise.ILostContext<pg.IClient>) => {
133
+ console.log("PostgresNotifListenManager: Connectivity Problem:", err);
134
+ this.connection = undefined; // prevent use of the broken connection
135
+ removeListeners(e.client);
136
+
137
+ this.reconnect(5000, 10) // retry 10 times, with 5-second intervals
138
+ .then(() => {
139
+ console.log("PostgresNotifListenManager: Successfully Reconnected");
140
+ })
141
+ .catch(() => {
142
+ // failed after 10 attempts
143
+ console.log(
144
+ "PostgresNotifListenManager: Connection Lost Permanently. No more retryies",
145
+ );
146
+ // process.exit(); // exiting the process
147
+ });
148
+ };
119
149
 
120
150
  return new Promise((resolve, reject) => {
121
151
  setTimeout(() => {
122
- this.db_pg.connect({ direct: true, onLost: onConnectionLost })
123
- .then(obj => {
152
+ this.db_pg
153
+ .connect({ direct: true, onLost: onConnectionLost })
154
+ .then((obj) => {
124
155
  this.connection = obj; // global connection is now available
125
156
  resolve(obj);
126
- return setListeners(obj.client, this.notifListener, this.db_channel_name);
157
+ return setListeners(
158
+ obj.client,
159
+ this.notifListener,
160
+ this.db_channel_name,
161
+ );
127
162
  })
128
- .catch(error => {
163
+ .catch((error) => {
129
164
  /** Database was destroyed */
130
- if(this.destroyed || error && error.code === "3D000") return;
131
- console.log('PostgresNotifListenManager: Error Connecting:', error);
165
+ if (this.destroyed || (error && error.code === "3D000")) return;
166
+ console.log("PostgresNotifListenManager: Error Connecting:", error);
132
167
  if (--maxAttempts) {
133
- this.reconnect(delay, maxAttempts)
134
- .then(resolve)
135
- .catch(reject);
168
+ this.reconnect(delay, maxAttempts).then(resolve).catch(reject);
136
169
  } else {
137
170
  reject(error);
138
171
  }
@@ -140,4 +173,4 @@ export class PostgresNotifListenManager {
140
173
  }, delay);
141
174
  });
142
175
  }
143
- }
176
+ }
package/lib/Prostgles.ts CHANGED
@@ -9,7 +9,10 @@ import { FileManager } from "./FileManager/FileManager";
9
9
  import { SchemaWatch } from "./SchemaWatch/SchemaWatch";
10
10
  import { OnInitReason, initProstgles } from "./initProstgles";
11
11
  import { makeSocketError, onSocketConnected } from "./onSocketConnected";
12
- import { clientCanRunSqlRequest, runClientSqlRequest } from "./runClientRequest";
12
+ import {
13
+ clientCanRunSqlRequest,
14
+ runClientSqlRequest,
15
+ } from "./runClientRequest";
13
16
  import pg = require("pg-promise/typescript/pg-subset");
14
17
  const { version } = require("../package.json");
15
18
 
@@ -27,15 +30,33 @@ import {
27
30
  export { DBHandlerServer };
28
31
  export type PGP = pgPromise.IMain<{}, pg.IClient>;
29
32
 
30
- import { CHANNELS, ClientSchema, SQLRequest, isObject, omitKeys, tryCatch } from "prostgles-types";
33
+ import {
34
+ CHANNELS,
35
+ ClientSchema,
36
+ SQLRequest,
37
+ isObject,
38
+ omitKeys,
39
+ tryCatch,
40
+ } from "prostgles-types";
31
41
  import { DBEventsManager } from "./DBEventsManager";
32
42
  import { PublishParser } from "./PublishParser/PublishParser";
33
- export { getOrSetTransporter, sendEmail, verifySMTPConfig } from "./Auth/sendEmail";
43
+ export {
44
+ getOrSetTransporter,
45
+ sendEmail,
46
+ verifySMTPConfig,
47
+ } from "./Auth/sendEmail";
34
48
 
35
49
  export type DB = pgPromise.IDatabase<{}, pg.IClient>;
36
50
  export type DBorTx = DB | pgPromise.ITask<{}>;
37
51
 
38
- export const TABLE_METHODS = ["update", "find", "findOne", "insert", "delete", "upsert"] as const;
52
+ export const TABLE_METHODS = [
53
+ "update",
54
+ "find",
55
+ "findOne",
56
+ "insert",
57
+ "delete",
58
+ "upsert",
59
+ ] as const;
39
60
 
40
61
  /*
41
62
  1. Connect to db
@@ -146,10 +167,12 @@ export class Prostgles {
146
167
  testRulesOnConnect: 1,
147
168
  };
148
169
  const unknownParams = Object.keys(params).filter(
149
- (key: string) => !Object.keys(config).includes(key)
170
+ (key: string) => !Object.keys(config).includes(key),
150
171
  );
151
172
  if (unknownParams.length) {
152
- console.error(`Unrecognised ProstglesInitOptions params: ${unknownParams.join()}`);
173
+ console.error(
174
+ `Unrecognised ProstglesInitOptions params: ${unknownParams.join()}`,
175
+ );
153
176
  }
154
177
 
155
178
  Object.assign(this.opts, params);
@@ -168,7 +191,8 @@ export class Prostgles {
168
191
  destroyed = false;
169
192
 
170
193
  checkDb() {
171
- if (!this.db || !this.db.connect) throw "something went wrong getting a db connection";
194
+ if (!this.db || !this.db.connect)
195
+ throw "something went wrong getting a db connection";
172
196
  }
173
197
 
174
198
  getTSFileName() {
@@ -206,11 +230,16 @@ export class Prostgles {
206
230
  fs.readFile(fullPath, "utf8", function (err, data) {
207
231
  if (err || force || data !== fileContent) {
208
232
  fs.writeFileSync(fullPath, fileContent);
209
- console.log("Prostgles: Created typescript schema definition file: \n " + fileName);
233
+ console.log(
234
+ "Prostgles: Created typescript schema definition file: \n " +
235
+ fileName,
236
+ );
210
237
  }
211
238
  });
212
239
  } else if (force) {
213
- console.error("Schema changed. tsGeneratedTypesDir needs to be set to reload server");
240
+ console.error(
241
+ "Schema changed. tsGeneratedTypesDir needs to be set to reload server",
242
+ );
214
243
  }
215
244
  }
216
245
 
@@ -283,7 +312,11 @@ export class Prostgles {
283
312
  }
284
313
  }
285
314
  });
286
- await this.opts.onLog?.({ type: "debug", command: "initTableConfig", ...res });
315
+ await this.opts.onLog?.({
316
+ type: "debug",
317
+ command: "initTableConfig",
318
+ ...res,
319
+ });
287
320
  if (res.hasError) throw res.error;
288
321
  return res.data;
289
322
  };
@@ -297,7 +330,10 @@ export class Prostgles {
297
330
  if (!cloudClient && !localConfig)
298
331
  throw "fileTable missing param: Must provide awsS3Config OR localConfig";
299
332
 
300
- this.fileManager = new FileManager(cloudClient || localConfig!, imageOptions);
333
+ this.fileManager = new FileManager(
334
+ cloudClient || localConfig!,
335
+ imageOptions,
336
+ );
301
337
 
302
338
  try {
303
339
  await this.fileManager.init(this);
@@ -332,7 +368,9 @@ export class Prostgles {
332
368
  const result = await this.db
333
369
  ?.multi(fileContent)
334
370
  .then((data) => {
335
- console.log("Prostgles: SQL file executed successfuly \n -> " + filePath);
371
+ console.log(
372
+ "Prostgles: SQL file executed successfuly \n -> " + filePath,
373
+ );
336
374
  return data;
337
375
  })
338
376
  .catch((err) => {
@@ -343,14 +381,17 @@ export class Prostgles {
343
381
  if (position && length && fileContent) {
344
382
  const startLine = Math.max(
345
383
  0,
346
- fileContent.substring(0, position).split("\n").length - 2
384
+ fileContent.substring(0, position).split("\n").length - 2,
347
385
  ),
348
386
  endLine = startLine + 3;
349
387
 
350
388
  errMsg += "\n\n";
351
389
  errMsg += lines
352
390
  .slice(startLine, endLine)
353
- .map((txt, i) => `${startLine + i + 1} ${i === 1 ? "->" : " "} ${txt}`)
391
+ .map(
392
+ (txt, i) =>
393
+ `${startLine + i + 1} ${i === 1 ? "->" : " "} ${txt}`,
394
+ )
354
395
  .join("\n");
355
396
  errMsg += "\n\n";
356
397
  }
@@ -377,7 +418,7 @@ export class Prostgles {
377
418
  this.opts.publishRawSQL,
378
419
  this.dbo,
379
420
  this.db!,
380
- this
421
+ this,
381
422
  );
382
423
  this.publishParser = publishParser;
383
424
 
@@ -396,33 +437,49 @@ export class Prostgles {
396
437
  this.opts.io.removeAllListeners("connection");
397
438
  this.opts.io.on("connection", this.onSocketConnected);
398
439
  /** In some cases io will re-init with already connected sockets */
399
- this.opts.io?.sockets.sockets.forEach((socket) => this.onSocketConnected(socket));
440
+ this.opts.io?.sockets.sockets.forEach((socket) =>
441
+ this.onSocketConnected(socket),
442
+ );
400
443
  }
401
444
 
402
445
  onSocketConnected = onSocketConnected.bind(this);
403
446
 
404
- getClientSchema = async (clientReq: Pick<LocalParams, "socket" | "httpReq">) => {
447
+ getClientSchema = async (
448
+ clientReq: Pick<LocalParams, "socket" | "httpReq">,
449
+ ) => {
405
450
  const result = await tryCatch(async () => {
406
- const clientInfo =
407
- clientReq.socket ? { type: "socket" as const, socket: clientReq.socket }
408
- : clientReq.httpReq ? { type: "http" as const, httpReq: clientReq.httpReq }
409
- : undefined;
451
+ const clientInfo = clientReq.socket
452
+ ? { type: "socket" as const, socket: clientReq.socket }
453
+ : clientReq.httpReq
454
+ ? { type: "http" as const, httpReq: clientReq.httpReq }
455
+ : undefined;
410
456
  if (!clientInfo) throw "Invalid client";
411
457
  if (!this.authHandler) throw "this.authHandler missing";
412
458
  const userData = await this.authHandler.getClientInfo(clientInfo);
413
459
  const { publishParser } = this;
414
- let fullSchema: Awaited<ReturnType<PublishParser["getSchemaFromPublish"]>> | undefined;
460
+ let fullSchema:
461
+ | Awaited<ReturnType<PublishParser["getSchemaFromPublish"]>>
462
+ | undefined;
415
463
  let publishValidationError;
416
464
 
417
465
  try {
418
466
  if (!publishParser) throw "publishParser undefined";
419
- fullSchema = await publishParser.getSchemaFromPublish({ ...clientInfo, userData });
467
+ fullSchema = await publishParser.getSchemaFromPublish({
468
+ ...clientInfo,
469
+ userData,
470
+ });
420
471
  } catch (e) {
421
472
  publishValidationError = e;
422
- console.error(`\nProstgles Publish validation failed (after socket connected):\n ->`, e);
473
+ console.error(
474
+ `\nProstgles Publish validation failed (after socket connected):\n ->`,
475
+ e,
476
+ );
423
477
  }
424
478
  let rawSQL = false;
425
- if (this.opts.publishRawSQL && typeof this.opts.publishRawSQL === "function") {
479
+ if (
480
+ this.opts.publishRawSQL &&
481
+ typeof this.opts.publishRawSQL === "function"
482
+ ) {
426
483
  const { allowed } = await clientCanRunSqlRequest.bind(this)(clientInfo);
427
484
  rawSQL = allowed;
428
485
  }
@@ -436,7 +493,10 @@ export class Prostgles {
436
493
  if (this.opts.joins) {
437
494
  const _joinTables2 = this.dboBuilder
438
495
  .getAllJoinPaths()
439
- .filter((jp) => ![jp.t1, jp.t2].find((t) => !schema[t] || !schema[t]?.findOne))
496
+ .filter(
497
+ (jp) =>
498
+ ![jp.t1, jp.t2].find((t) => !schema[t] || !schema[t]?.findOne),
499
+ )
440
500
  .map((jp) => [jp.t1, jp.t2].sort());
441
501
  _joinTables2.map((jt) => {
442
502
  if (!joinTables2.find((_jt) => _jt.join() === jt.join())) {
@@ -445,11 +505,13 @@ export class Prostgles {
445
505
  });
446
506
  }
447
507
 
448
- const methods = await publishParser?.getAllowedMethods(clientInfo, userData);
508
+ const methods = await publishParser?.getAllowedMethods(
509
+ clientInfo,
510
+ userData,
511
+ );
449
512
 
450
- const methodSchema: ClientSchema["methods"] =
451
- !methods ?
452
- []
513
+ const methodSchema: ClientSchema["methods"] = !methods
514
+ ? []
453
515
  : Object.entries(methods)
454
516
  .map(([methodName, method]) => {
455
517
  if (isObject(method) && "run" in method) {
@@ -477,7 +539,9 @@ export class Prostgles {
477
539
  tableSchemaErrors,
478
540
  auth,
479
541
  version,
480
- err: publishValidationError ? "Server Error: User publish validation failed." : undefined,
542
+ err: publishValidationError
543
+ ? "Server Error: User publish validation failed."
544
+ : undefined,
481
545
  };
482
546
 
483
547
  return {
@@ -486,7 +550,8 @@ export class Prostgles {
486
550
  userData,
487
551
  };
488
552
  });
489
- const sid = result.userData?.sid ?? this.authHandler?.getSIDNoError(clientReq);
553
+ const sid =
554
+ result.userData?.sid ?? this.authHandler?.getSIDNoError(clientReq);
490
555
  await this.opts.onLog?.({
491
556
  type: "connect.getClientSchema",
492
557
  duration: result.duration,
@@ -510,17 +575,23 @@ export class Prostgles {
510
575
  { query, params, options }: SQLRequest,
511
576
  cb = (..._callback: any) => {
512
577
  /* Empty */
513
- }
578
+ },
514
579
  ) => {
515
580
  runClientSqlRequest
516
- .bind(this)({ type: "socket", socket, query, args: params, options })
581
+ .bind(this)({
582
+ type: "socket",
583
+ socket,
584
+ query,
585
+ args: params,
586
+ options,
587
+ })
517
588
  .then((res) => {
518
589
  cb(null, res);
519
590
  })
520
591
  .catch((err) => {
521
592
  makeSocketError(cb, err);
522
593
  });
523
- }
594
+ },
524
595
  );
525
596
  }
526
597
  await this.dboBuilder.prostgles.opts.onLog?.({
@@ -1,7 +1,11 @@
1
1
  import { FileColumnConfig } from "prostgles-types";
2
2
  import { Auth, AuthRequestParams, SessionUser } from "./Auth/AuthTypes";
3
3
  import { EventTriggerTagFilter } from "./Event_Trigger_Tags";
4
- import { CloudClient, ImageOptions, LocalConfig } from "./FileManager/FileManager";
4
+ import {
5
+ CloudClient,
6
+ ImageOptions,
7
+ LocalConfig,
8
+ } from "./FileManager/FileManager";
5
9
  import { DbConnection, OnReadyCallback } from "./initProstgles";
6
10
  import { EventInfo } from "./Logging";
7
11
  import { ExpressApp, RestApiConfig } from "./RestApi";
@@ -16,7 +20,11 @@ import pg from "pg-promise/typescript/pg-subset";
16
20
  import { AnyObject } from "prostgles-types";
17
21
  import type { Server } from "socket.io";
18
22
  import { DB } from "./Prostgles";
19
- import { Publish, PublishMethods, PublishParams } from "./PublishParser/PublishParser";
23
+ import {
24
+ Publish,
25
+ PublishMethods,
26
+ PublishParams,
27
+ } from "./PublishParser/PublishParser";
20
28
 
21
29
  /**
22
30
  * Allows uploading and downloading files.
@@ -94,7 +102,12 @@ export type FileTableConfig = {
94
102
  localConfig?: LocalConfig;
95
103
  };
96
104
 
97
- export const JOIN_TYPES = ["one-many", "many-one", "one-one", "many-many"] as const;
105
+ export const JOIN_TYPES = [
106
+ "one-many",
107
+ "many-one",
108
+ "one-one",
109
+ "many-many",
110
+ ] as const;
98
111
  export type Join = {
99
112
  tables: [string, string];
100
113
  on: { [key: string]: string }[]; // Allow multi references to table
@@ -102,7 +115,10 @@ export type Join = {
102
115
  };
103
116
  type Joins = Join[] | "inferred";
104
117
 
105
- export type ProstglesInitOptions<S = void, SUser extends SessionUser = SessionUser> = {
118
+ export type ProstglesInitOptions<
119
+ S = void,
120
+ SUser extends SessionUser = SessionUser,
121
+ > = {
106
122
  /**
107
123
  * Database connection details and options
108
124
  */
@@ -171,7 +187,9 @@ export type ProstglesInitOptions<S = void, SUser extends SessionUser = SessionUs
171
187
  /**
172
188
  * If defined and resolves to true then the connected client can run SQL queries
173
189
  */
174
- publishRawSQL?(params: PublishParams<S, SUser>): (boolean | "*") | Promise<boolean | "*">;
190
+ publishRawSQL?(
191
+ params: PublishParams<S, SUser>,
192
+ ): (boolean | "*") | Promise<boolean | "*">;
175
193
 
176
194
  /**
177
195
  * Server-side functions that can be invoked by the client
@@ -218,14 +236,14 @@ export type ProstglesInitOptions<S = void, SUser extends SessionUser = SessionUs
218
236
  * Use for connection verification. Will disconnect socket on any errors
219
237
  */
220
238
  onSocketConnect?: (
221
- args: AuthRequestParams<S, SUser> & { socket: PRGLIOSocket }
239
+ args: AuthRequestParams<S, SUser> & { socket: PRGLIOSocket },
222
240
  ) => void | Promise<void>;
223
241
 
224
242
  /**
225
243
  * Called when a socket disconnects
226
244
  */
227
245
  onSocketDisconnect?: (
228
- args: AuthRequestParams<S, SUser> & { socket: PRGLIOSocket }
246
+ args: AuthRequestParams<S, SUser> & { socket: PRGLIOSocket },
229
247
  ) => void | Promise<void>;
230
248
 
231
249
  /**
@@ -263,7 +281,11 @@ export type ProstglesInitOptions<S = void, SUser extends SessionUser = SessionUs
263
281
  * - `OnSchemaChangeCallback` - custom callback to be fired. Nothing else triggered
264
282
  * Useful for development
265
283
  */
266
- watchSchema?: boolean | EventTriggerTagFilter | "hotReloadMode" | OnSchemaChangeCallback;
284
+ watchSchema?:
285
+ | boolean
286
+ | EventTriggerTagFilter
287
+ | "hotReloadMode"
288
+ | OnSchemaChangeCallback;
267
289
 
268
290
  /**
269
291
  * Called when a notice is received from the database
@@ -335,6 +357,6 @@ type OnMigrate = (args: {
335
357
  getConstraints: (
336
358
  table: string,
337
359
  column?: string,
338
- types?: ColConstraint["type"][]
360
+ types?: ColConstraint["type"][],
339
361
  ) => Promise<ColConstraint[]>;
340
362
  }) => void;