prostgles-server 4.2.183 → 4.2.185

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. package/.github/workflows/main.yml +15 -15
  2. package/.prettierignore +2 -0
  3. package/README.md +1 -1
  4. package/dist/Auth/AuthHandler.d.ts +1 -1
  5. package/dist/Auth/AuthHandler.d.ts.map +1 -1
  6. package/dist/Auth/AuthHandler.js +64 -32
  7. package/dist/Auth/AuthHandler.js.map +1 -1
  8. package/dist/Auth/AuthTypes.d.ts +15 -1
  9. package/dist/Auth/AuthTypes.d.ts.map +1 -1
  10. package/dist/Auth/getSafeReturnURL.d.ts.map +1 -1
  11. package/dist/Auth/getSafeReturnURL.js.map +1 -1
  12. package/dist/Auth/sendEmail.d.ts.map +1 -1
  13. package/dist/Auth/sendEmail.js +6 -6
  14. package/dist/Auth/sendEmail.js.map +1 -1
  15. package/dist/Auth/setAuthProviders.d.ts +1 -1
  16. package/dist/Auth/setAuthProviders.d.ts.map +1 -1
  17. package/dist/Auth/setAuthProviders.js +15 -8
  18. package/dist/Auth/setAuthProviders.js.map +1 -1
  19. package/dist/Auth/setEmailProvider.d.ts.map +1 -1
  20. package/dist/Auth/setEmailProvider.js +23 -4
  21. package/dist/Auth/setEmailProvider.js.map +1 -1
  22. package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
  23. package/dist/Auth/setupAuthRoutes.js +27 -9
  24. package/dist/Auth/setupAuthRoutes.js.map +1 -1
  25. package/dist/DBEventsManager.d.ts.map +1 -1
  26. package/dist/DBEventsManager.js +24 -19
  27. package/dist/DBEventsManager.js.map +1 -1
  28. package/dist/DBSchemaBuilder.d.ts.map +1 -1
  29. package/dist/DBSchemaBuilder.js +18 -5
  30. package/dist/DBSchemaBuilder.js.map +1 -1
  31. package/dist/DboBuilder/DboBuilder.d.ts.map +1 -1
  32. package/dist/DboBuilder/DboBuilder.js +7 -2
  33. package/dist/DboBuilder/DboBuilder.js.map +1 -1
  34. package/dist/DboBuilder/DboBuilderTypes.d.ts +4 -4
  35. package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
  36. package/dist/DboBuilder/DboBuilderTypes.js.map +1 -1
  37. package/dist/DboBuilder/QueryBuilder/Functions.d.ts +2 -2
  38. package/dist/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
  39. package/dist/DboBuilder/QueryBuilder/Functions.js +293 -173
  40. package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
  41. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts +2 -2
  42. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
  43. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +52 -29
  44. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
  45. package/dist/DboBuilder/QueryBuilder/getJoinQuery.d.ts.map +1 -1
  46. package/dist/DboBuilder/QueryBuilder/getJoinQuery.js +51 -32
  47. package/dist/DboBuilder/QueryBuilder/getJoinQuery.js.map +1 -1
  48. package/dist/DboBuilder/QueryBuilder/getNewQuery.d.ts.map +1 -1
  49. package/dist/DboBuilder/QueryBuilder/getNewQuery.js +48 -25
  50. package/dist/DboBuilder/QueryBuilder/getNewQuery.js.map +1 -1
  51. package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts +1 -1
  52. package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts.map +1 -1
  53. package/dist/DboBuilder/QueryBuilder/getSelectQuery.js +32 -23
  54. package/dist/DboBuilder/QueryBuilder/getSelectQuery.js.map +1 -1
  55. package/dist/DboBuilder/QueryStreamer.d.ts +2 -2
  56. package/dist/DboBuilder/QueryStreamer.d.ts.map +1 -1
  57. package/dist/DboBuilder/QueryStreamer.js +68 -23
  58. package/dist/DboBuilder/QueryStreamer.js.map +1 -1
  59. package/dist/DboBuilder/TableHandler/DataValidator.d.ts +1 -1
  60. package/dist/DboBuilder/TableHandler/DataValidator.d.ts.map +1 -1
  61. package/dist/DboBuilder/TableHandler/DataValidator.js +79 -43
  62. package/dist/DboBuilder/TableHandler/DataValidator.js.map +1 -1
  63. package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
  64. package/dist/DboBuilder/TableHandler/TableHandler.js +39 -15
  65. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  66. package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
  67. package/dist/DboBuilder/TableHandler/delete.js +44 -13
  68. package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
  69. package/dist/DboBuilder/TableHandler/insert.d.ts.map +1 -1
  70. package/dist/DboBuilder/TableHandler/insert.js +81 -22
  71. package/dist/DboBuilder/TableHandler/insert.js.map +1 -1
  72. package/dist/DboBuilder/TableHandler/insertTest.d.ts.map +1 -1
  73. package/dist/DboBuilder/TableHandler/insertTest.js.map +1 -1
  74. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts +1 -1
  75. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.d.ts.map +1 -1
  76. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js +7 -4
  77. package/dist/DboBuilder/TableHandler/onDeleteFromFileTable.js.map +1 -1
  78. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
  79. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +24 -5
  80. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
  81. package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
  82. package/dist/DboBuilder/TableHandler/update.js +16 -4
  83. package/dist/DboBuilder/TableHandler/update.js.map +1 -1
  84. package/dist/DboBuilder/TableHandler/updateBatch.d.ts.map +1 -1
  85. package/dist/DboBuilder/TableHandler/updateBatch.js +33 -10
  86. package/dist/DboBuilder/TableHandler/updateBatch.js.map +1 -1
  87. package/dist/DboBuilder/TableHandler/updateFile.d.ts.map +1 -1
  88. package/dist/DboBuilder/TableHandler/updateFile.js +24 -6
  89. package/dist/DboBuilder/TableHandler/updateFile.js.map +1 -1
  90. package/dist/DboBuilder/TableHandler/upsert.d.ts.map +1 -1
  91. package/dist/DboBuilder/TableHandler/upsert.js +22 -6
  92. package/dist/DboBuilder/TableHandler/upsert.js.map +1 -1
  93. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +5 -5
  94. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
  95. package/dist/DboBuilder/ViewHandler/ViewHandler.js +64 -36
  96. package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
  97. package/dist/DboBuilder/ViewHandler/count.d.ts.map +1 -1
  98. package/dist/DboBuilder/ViewHandler/count.js +21 -7
  99. package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
  100. package/dist/DboBuilder/ViewHandler/find.d.ts.map +1 -1
  101. package/dist/DboBuilder/ViewHandler/find.js +76 -22
  102. package/dist/DboBuilder/ViewHandler/find.js.map +1 -1
  103. package/dist/DboBuilder/ViewHandler/getExistsCondition.d.ts.map +1 -1
  104. package/dist/DboBuilder/ViewHandler/getExistsCondition.js +19 -10
  105. package/dist/DboBuilder/ViewHandler/getExistsCondition.js.map +1 -1
  106. package/dist/DboBuilder/ViewHandler/getExistsFilters.d.ts.map +1 -1
  107. package/dist/DboBuilder/ViewHandler/getExistsFilters.js +12 -5
  108. package/dist/DboBuilder/ViewHandler/getExistsFilters.js.map +1 -1
  109. package/dist/DboBuilder/ViewHandler/getInfo.d.ts.map +1 -1
  110. package/dist/DboBuilder/ViewHandler/getInfo.js +27 -9
  111. package/dist/DboBuilder/ViewHandler/getInfo.js.map +1 -1
  112. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts +2 -2
  113. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts.map +1 -1
  114. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js +42 -23
  115. package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js.map +1 -1
  116. package/dist/DboBuilder/ViewHandler/parseComplexFilter.d.ts.map +1 -1
  117. package/dist/DboBuilder/ViewHandler/parseComplexFilter.js +22 -9
  118. package/dist/DboBuilder/ViewHandler/parseComplexFilter.js.map +1 -1
  119. package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts +4 -4
  120. package/dist/DboBuilder/ViewHandler/parseFieldFilter.d.ts.map +1 -1
  121. package/dist/DboBuilder/ViewHandler/parseFieldFilter.js +13 -11
  122. package/dist/DboBuilder/ViewHandler/parseFieldFilter.js.map +1 -1
  123. package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts +1 -1
  124. package/dist/DboBuilder/ViewHandler/parseJoinPath.d.ts.map +1 -1
  125. package/dist/DboBuilder/ViewHandler/parseJoinPath.js +44 -29
  126. package/dist/DboBuilder/ViewHandler/parseJoinPath.js.map +1 -1
  127. package/dist/DboBuilder/ViewHandler/prepareSortItems.d.ts.map +1 -1
  128. package/dist/DboBuilder/ViewHandler/prepareSortItems.js +36 -27
  129. package/dist/DboBuilder/ViewHandler/prepareSortItems.js.map +1 -1
  130. package/dist/DboBuilder/ViewHandler/prepareWhere.d.ts.map +1 -1
  131. package/dist/DboBuilder/ViewHandler/prepareWhere.js +16 -12
  132. package/dist/DboBuilder/ViewHandler/prepareWhere.js.map +1 -1
  133. package/dist/DboBuilder/ViewHandler/size.d.ts.map +1 -1
  134. package/dist/DboBuilder/ViewHandler/size.js +24 -7
  135. package/dist/DboBuilder/ViewHandler/size.js.map +1 -1
  136. package/dist/DboBuilder/ViewHandler/subscribe.d.ts.map +1 -1
  137. package/dist/DboBuilder/ViewHandler/subscribe.js +40 -12
  138. package/dist/DboBuilder/ViewHandler/subscribe.js.map +1 -1
  139. package/dist/DboBuilder/ViewHandler/validateViewRules.d.ts.map +1 -1
  140. package/dist/DboBuilder/ViewHandler/validateViewRules.js +20 -5
  141. package/dist/DboBuilder/ViewHandler/validateViewRules.js.map +1 -1
  142. package/dist/DboBuilder/dboBuilderUtils.d.ts.map +1 -1
  143. package/dist/DboBuilder/dboBuilderUtils.js +18 -7
  144. package/dist/DboBuilder/dboBuilderUtils.js.map +1 -1
  145. package/dist/DboBuilder/getColumns.d.ts.map +1 -1
  146. package/dist/DboBuilder/getColumns.js +22 -7
  147. package/dist/DboBuilder/getColumns.js.map +1 -1
  148. package/dist/DboBuilder/getCondition.d.ts.map +1 -1
  149. package/dist/DboBuilder/getCondition.js +43 -30
  150. package/dist/DboBuilder/getCondition.js.map +1 -1
  151. package/dist/DboBuilder/getSubscribeRelatedTables.d.ts.map +1 -1
  152. package/dist/DboBuilder/getSubscribeRelatedTables.js +38 -27
  153. package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
  154. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
  155. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js +9 -9
  156. package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js.map +1 -1
  157. package/dist/DboBuilder/insertNestedRecords.d.ts +3 -3
  158. package/dist/DboBuilder/insertNestedRecords.d.ts.map +1 -1
  159. package/dist/DboBuilder/insertNestedRecords.js +79 -44
  160. package/dist/DboBuilder/insertNestedRecords.js.map +1 -1
  161. package/dist/DboBuilder/parseUpdateRules.d.ts.map +1 -1
  162. package/dist/DboBuilder/parseUpdateRules.js +38 -14
  163. package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
  164. package/dist/DboBuilder/prepareShortestJoinPaths.d.ts.map +1 -1
  165. package/dist/DboBuilder/prepareShortestJoinPaths.js +56 -31
  166. package/dist/DboBuilder/prepareShortestJoinPaths.js.map +1 -1
  167. package/dist/DboBuilder/runSQL.d.ts.map +1 -1
  168. package/dist/DboBuilder/runSQL.js +41 -21
  169. package/dist/DboBuilder/runSQL.js.map +1 -1
  170. package/dist/DboBuilder/runTransaction.d.ts +1 -1
  171. package/dist/DboBuilder/runTransaction.d.ts.map +1 -1
  172. package/dist/DboBuilder/runTransaction.js +2 -2
  173. package/dist/DboBuilder/runTransaction.js.map +1 -1
  174. package/dist/DboBuilder/sqlErrCodeToMsg.d.ts.map +1 -1
  175. package/dist/DboBuilder/sqlErrCodeToMsg.js +297 -38
  176. package/dist/DboBuilder/sqlErrCodeToMsg.js.map +1 -1
  177. package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
  178. package/dist/DboBuilder/uploadFile.js +33 -9
  179. package/dist/DboBuilder/uploadFile.js.map +1 -1
  180. package/dist/Event_Trigger_Tags.d.ts +1 -1
  181. package/dist/Event_Trigger_Tags.d.ts.map +1 -1
  182. package/dist/Event_Trigger_Tags.js +1 -1
  183. package/dist/Event_Trigger_Tags.js.map +1 -1
  184. package/dist/FileManager/FileManager.d.ts.map +1 -1
  185. package/dist/FileManager/FileManager.js +6 -3
  186. package/dist/FileManager/FileManager.js.map +1 -1
  187. package/dist/FileManager/getValidatedFileType.d.ts.map +1 -1
  188. package/dist/FileManager/getValidatedFileType.js +18 -16
  189. package/dist/FileManager/getValidatedFileType.js.map +1 -1
  190. package/dist/FileManager/initFileManager.d.ts.map +1 -1
  191. package/dist/FileManager/initFileManager.js +7 -1
  192. package/dist/FileManager/initFileManager.js.map +1 -1
  193. package/dist/FileManager/upload.d.ts +1 -1
  194. package/dist/FileManager/upload.d.ts.map +1 -1
  195. package/dist/FileManager/upload.js +3 -3
  196. package/dist/FileManager/upload.js.map +1 -1
  197. package/dist/FileManager/uploadStream.d.ts +1 -1
  198. package/dist/FileManager/uploadStream.d.ts.map +1 -1
  199. package/dist/FileManager/uploadStream.js +6 -7
  200. package/dist/FileManager/uploadStream.js.map +1 -1
  201. package/dist/Filtering.d.ts +3 -3
  202. package/dist/Filtering.d.ts.map +1 -1
  203. package/dist/Filtering.js +70 -37
  204. package/dist/Filtering.js.map +1 -1
  205. package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -1
  206. package/dist/JSONBValidation/validate_jsonb_schema_sql.js +1 -4
  207. package/dist/JSONBValidation/validate_jsonb_schema_sql.js.map +1 -1
  208. package/dist/JSONBValidation/validation.d.ts.map +1 -1
  209. package/dist/JSONBValidation/validation.js +46 -24
  210. package/dist/JSONBValidation/validation.js.map +1 -1
  211. package/dist/Logging.d.ts +2 -2
  212. package/dist/Logging.d.ts.map +1 -1
  213. package/dist/PostgresNotifListenManager.d.ts.map +1 -1
  214. package/dist/PostgresNotifListenManager.js +20 -22
  215. package/dist/PostgresNotifListenManager.js.map +1 -1
  216. package/dist/Prostgles.d.ts +1 -1
  217. package/dist/Prostgles.d.ts.map +1 -1
  218. package/dist/Prostgles.js +37 -11
  219. package/dist/Prostgles.js.map +1 -1
  220. package/dist/ProstglesTypes.d.ts.map +1 -1
  221. package/dist/ProstglesTypes.js +6 -1
  222. package/dist/ProstglesTypes.js.map +1 -1
  223. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  224. package/dist/PubSubManager/PubSubManager.js +10 -5
  225. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  226. package/dist/PubSubManager/addSub.d.ts.map +1 -1
  227. package/dist/PubSubManager/addSub.js +4 -6
  228. package/dist/PubSubManager/addSub.js.map +1 -1
  229. package/dist/PubSubManager/addSync.d.ts.map +1 -1
  230. package/dist/PubSubManager/addSync.js +10 -6
  231. package/dist/PubSubManager/addSync.js.map +1 -1
  232. package/dist/PubSubManager/getCreatePubSubManagerError.d.ts.map +1 -1
  233. package/dist/PubSubManager/getCreatePubSubManagerError.js +3 -1
  234. package/dist/PubSubManager/getCreatePubSubManagerError.js.map +1 -1
  235. package/dist/PubSubManager/getPubSubManagerInitQuery.d.ts.map +1 -1
  236. package/dist/PubSubManager/getPubSubManagerInitQuery.js +8 -8
  237. package/dist/PubSubManager/getPubSubManagerInitQuery.js.map +1 -1
  238. package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
  239. package/dist/PubSubManager/initPubSubManager.js +7 -9
  240. package/dist/PubSubManager/initPubSubManager.js.map +1 -1
  241. package/dist/PubSubManager/notifListener.d.ts.map +1 -1
  242. package/dist/PubSubManager/notifListener.js +23 -12
  243. package/dist/PubSubManager/notifListener.js.map +1 -1
  244. package/dist/PubSubManager/orphanTriggerCheck.d.ts.map +1 -1
  245. package/dist/PubSubManager/orphanTriggerCheck.js.map +1 -1
  246. package/dist/PubSubManager/pushSubData.d.ts.map +1 -1
  247. package/dist/PubSubManager/pushSubData.js +1 -1
  248. package/dist/PubSubManager/pushSubData.js.map +1 -1
  249. package/dist/PublishParser/PublishParser.d.ts +1 -1
  250. package/dist/PublishParser/PublishParser.d.ts.map +1 -1
  251. package/dist/PublishParser/PublishParser.js +25 -14
  252. package/dist/PublishParser/PublishParser.js.map +1 -1
  253. package/dist/PublishParser/getFileTableRules.d.ts.map +1 -1
  254. package/dist/PublishParser/getFileTableRules.js +23 -16
  255. package/dist/PublishParser/getFileTableRules.js.map +1 -1
  256. package/dist/PublishParser/getSchemaFromPublish.d.ts.map +1 -1
  257. package/dist/PublishParser/getSchemaFromPublish.js +39 -16
  258. package/dist/PublishParser/getSchemaFromPublish.js.map +1 -1
  259. package/dist/PublishParser/getTableRulesWithoutFileTable.d.ts.map +1 -1
  260. package/dist/PublishParser/getTableRulesWithoutFileTable.js +42 -22
  261. package/dist/PublishParser/getTableRulesWithoutFileTable.js.map +1 -1
  262. package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
  263. package/dist/PublishParser/publishTypesAndUtils.js +5 -1
  264. package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
  265. package/dist/RestApi.d.ts +1 -1
  266. package/dist/RestApi.d.ts.map +1 -1
  267. package/dist/RestApi.js +1 -1
  268. package/dist/RestApi.js.map +1 -1
  269. package/dist/SchemaWatch/SchemaWatch.d.ts +2 -2
  270. package/dist/SchemaWatch/SchemaWatch.d.ts.map +1 -1
  271. package/dist/SchemaWatch/SchemaWatch.js +11 -9
  272. package/dist/SchemaWatch/SchemaWatch.js.map +1 -1
  273. package/dist/SchemaWatch/getValidatedWatchSchemaType.d.ts.map +1 -1
  274. package/dist/SchemaWatch/getValidatedWatchSchemaType.js +3 -3
  275. package/dist/SchemaWatch/getValidatedWatchSchemaType.js.map +1 -1
  276. package/dist/SchemaWatch/getWatchSchemaTagList.d.ts.map +1 -1
  277. package/dist/SchemaWatch/getWatchSchemaTagList.js +12 -6
  278. package/dist/SchemaWatch/getWatchSchemaTagList.js.map +1 -1
  279. package/dist/SyncReplication.d.ts.map +1 -1
  280. package/dist/SyncReplication.js +84 -42
  281. package/dist/SyncReplication.js.map +1 -1
  282. package/dist/TableConfig/TableConfig.d.ts +5 -5
  283. package/dist/TableConfig/TableConfig.d.ts.map +1 -1
  284. package/dist/TableConfig/TableConfig.js +18 -5
  285. package/dist/TableConfig/TableConfig.js.map +1 -1
  286. package/dist/TableConfig/getColumnDefinitionQuery.d.ts +2 -2
  287. package/dist/TableConfig/getColumnDefinitionQuery.d.ts.map +1 -1
  288. package/dist/TableConfig/getColumnDefinitionQuery.js +20 -9
  289. package/dist/TableConfig/getColumnDefinitionQuery.js.map +1 -1
  290. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts +3 -3
  291. package/dist/TableConfig/getConstraintDefinitionQueries.d.ts.map +1 -1
  292. package/dist/TableConfig/getConstraintDefinitionQueries.js +12 -7
  293. package/dist/TableConfig/getConstraintDefinitionQueries.js.map +1 -1
  294. package/dist/TableConfig/getFutureTableSchema.d.ts +1 -1
  295. package/dist/TableConfig/getFutureTableSchema.d.ts.map +1 -1
  296. package/dist/TableConfig/getFutureTableSchema.js +6 -4
  297. package/dist/TableConfig/getFutureTableSchema.js.map +1 -1
  298. package/dist/TableConfig/getPGIndexes.d.ts.map +1 -1
  299. package/dist/TableConfig/getPGIndexes.js.map +1 -1
  300. package/dist/TableConfig/getTableColumnQueries.d.ts +1 -1
  301. package/dist/TableConfig/getTableColumnQueries.d.ts.map +1 -1
  302. package/dist/TableConfig/getTableColumnQueries.js +38 -19
  303. package/dist/TableConfig/getTableColumnQueries.js.map +1 -1
  304. package/dist/TableConfig/initTableConfig.d.ts.map +1 -1
  305. package/dist/TableConfig/initTableConfig.js +91 -43
  306. package/dist/TableConfig/initTableConfig.js.map +1 -1
  307. package/dist/index.d.ts.map +1 -1
  308. package/dist/index.js.map +1 -1
  309. package/dist/initProstgles.d.ts.map +1 -1
  310. package/dist/initProstgles.js +14 -10
  311. package/dist/initProstgles.js.map +1 -1
  312. package/dist/onSocketConnected.d.ts.map +1 -1
  313. package/dist/onSocketConnected.js +38 -16
  314. package/dist/onSocketConnected.js.map +1 -1
  315. package/dist/runClientRequest.d.ts.map +1 -1
  316. package/dist/runClientRequest.js +33 -14
  317. package/dist/runClientRequest.js.map +1 -1
  318. package/dist/shortestPath.d.ts.map +1 -1
  319. package/dist/shortestPath.js +1 -1
  320. package/dist/shortestPath.js.map +1 -1
  321. package/dist/typeTests/dboTypeCheck.js.map +1 -1
  322. package/examples/full-example-typescript/DBoGenerated.d.ts +112 -54
  323. package/examples/full-example-typescript/DBoGenerated.js +3 -3
  324. package/examples/full-example-typescript/home.html +28 -26
  325. package/examples/full-example-typescript/index.d.ts +1 -1
  326. package/examples/full-example-typescript/index.js +80 -53
  327. package/examples/full-example-vanilla/home.html +151 -125
  328. package/examples/server/javascript/index.js +17 -19
  329. package/lib/Auth/AuthHandler.ts +234 -155
  330. package/lib/Auth/AuthTypes.ts +27 -4
  331. package/lib/Auth/getSafeReturnURL.ts +35 -21
  332. package/lib/Auth/sendEmail.ts +34 -31
  333. package/lib/Auth/setAuthProviders.ts +94 -71
  334. package/lib/Auth/setEmailProvider.ts +45 -27
  335. package/lib/Auth/setupAuthRoutes.ts +164 -100
  336. package/lib/DBEventsManager.ts +87 -65
  337. package/lib/DBSchemaBuilder.ts +62 -28
  338. package/lib/DboBuilder/DboBuilder.ts +45 -21
  339. package/lib/DboBuilder/DboBuilderTypes.ts +99 -95
  340. package/lib/DboBuilder/QueryBuilder/Functions.ts +862 -580
  341. package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +202 -141
  342. package/lib/DboBuilder/QueryBuilder/getJoinQuery.ts +199 -124
  343. package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +209 -148
  344. package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +101 -75
  345. package/lib/DboBuilder/QueryBuilder/prepareHaving.ts +10 -5
  346. package/lib/DboBuilder/QueryStreamer.ts +207 -100
  347. package/lib/DboBuilder/TableHandler/DataValidator.ts +253 -148
  348. package/lib/DboBuilder/TableHandler/TableHandler.ts +155 -60
  349. package/lib/DboBuilder/TableHandler/delete.ts +82 -29
  350. package/lib/DboBuilder/TableHandler/insert.ts +177 -81
  351. package/lib/DboBuilder/TableHandler/insertTest.ts +13 -7
  352. package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +35 -21
  353. package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +95 -45
  354. package/lib/DboBuilder/TableHandler/update.ts +54 -14
  355. package/lib/DboBuilder/TableHandler/updateBatch.ts +59 -21
  356. package/lib/DboBuilder/TableHandler/updateFile.ts +57 -26
  357. package/lib/DboBuilder/TableHandler/upsert.ts +58 -13
  358. package/lib/DboBuilder/ViewHandler/ViewHandler.ts +264 -121
  359. package/lib/DboBuilder/ViewHandler/count.ts +56 -25
  360. package/lib/DboBuilder/ViewHandler/find.ts +153 -68
  361. package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +59 -32
  362. package/lib/DboBuilder/ViewHandler/getExistsFilters.ts +31 -19
  363. package/lib/DboBuilder/ViewHandler/getInfo.ts +47 -16
  364. package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +91 -57
  365. package/lib/DboBuilder/ViewHandler/parseComplexFilter.ts +51 -29
  366. package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +35 -29
  367. package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +130 -76
  368. package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +140 -92
  369. package/lib/DboBuilder/ViewHandler/prepareWhere.ts +66 -26
  370. package/lib/DboBuilder/ViewHandler/size.ts +56 -22
  371. package/lib/DboBuilder/ViewHandler/subscribe.ts +122 -46
  372. package/lib/DboBuilder/ViewHandler/validateViewRules.ts +39 -14
  373. package/lib/DboBuilder/dboBuilderUtils.ts +41 -18
  374. package/lib/DboBuilder/getColumns.ts +44 -12
  375. package/lib/DboBuilder/getCondition.ts +120 -79
  376. package/lib/DboBuilder/getSubscribeRelatedTables.ts +144 -83
  377. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +61 -44
  378. package/lib/DboBuilder/insertNestedRecords.ts +370 -235
  379. package/lib/DboBuilder/parseUpdateRules.ts +117 -61
  380. package/lib/DboBuilder/prepareShortestJoinPaths.ts +115 -56
  381. package/lib/DboBuilder/runSQL.ts +135 -74
  382. package/lib/DboBuilder/runTransaction.ts +27 -16
  383. package/lib/DboBuilder/sqlErrCodeToMsg.ts +502 -244
  384. package/lib/DboBuilder/uploadFile.ts +67 -31
  385. package/lib/Event_Trigger_Tags.ts +6 -4
  386. package/lib/FileManager/FileManager.ts +53 -21
  387. package/lib/FileManager/getValidatedFileType.ts +79 -35
  388. package/lib/FileManager/initFileManager.ts +21 -9
  389. package/lib/FileManager/upload.ts +21 -19
  390. package/lib/FileManager/uploadStream.ts +33 -34
  391. package/lib/Filtering.ts +249 -197
  392. package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +2 -7
  393. package/lib/JSONBValidation/validation.ts +147 -82
  394. package/lib/Logging.ts +107 -97
  395. package/lib/PostgresNotifListenManager.ts +96 -63
  396. package/lib/Prostgles.ts +106 -35
  397. package/lib/ProstglesTypes.ts +31 -9
  398. package/lib/PubSubManager/PubSubManager.ts +62 -27
  399. package/lib/PubSubManager/addSub.ts +56 -37
  400. package/lib/PubSubManager/addSync.ts +50 -33
  401. package/lib/PubSubManager/getCreatePubSubManagerError.ts +29 -21
  402. package/lib/PubSubManager/getPubSubManagerInitQuery.ts +45 -27
  403. package/lib/PubSubManager/initPubSubManager.ts +27 -18
  404. package/lib/PubSubManager/notifListener.ts +77 -59
  405. package/lib/PubSubManager/orphanTriggerCheck.ts +5 -4
  406. package/lib/PubSubManager/pushSubData.ts +11 -9
  407. package/lib/PublishParser/PublishParser.ts +102 -44
  408. package/lib/PublishParser/getFileTableRules.ts +97 -54
  409. package/lib/PublishParser/getSchemaFromPublish.ts +146 -74
  410. package/lib/PublishParser/getTableRulesWithoutFileTable.ts +101 -51
  411. package/lib/PublishParser/publishTypesAndUtils.ts +74 -23
  412. package/lib/RestApi.ts +10 -2
  413. package/lib/SchemaWatch/SchemaWatch.ts +52 -34
  414. package/lib/SchemaWatch/createSchemaWatchEventTrigger.ts +1 -1
  415. package/lib/SchemaWatch/getValidatedWatchSchemaType.ts +32 -22
  416. package/lib/SchemaWatch/getWatchSchemaTagList.ts +24 -16
  417. package/lib/SyncReplication.ts +376 -190
  418. package/lib/TableConfig/TableConfig.ts +200 -136
  419. package/lib/TableConfig/getColumnDefinitionQuery.ts +65 -44
  420. package/lib/TableConfig/getConstraintDefinitionQueries.ts +41 -25
  421. package/lib/TableConfig/getFutureTableSchema.ts +31 -21
  422. package/lib/TableConfig/getPGIndexes.ts +7 -4
  423. package/lib/TableConfig/getTableColumnQueries.ts +101 -54
  424. package/lib/TableConfig/initTableConfig.ts +192 -101
  425. package/lib/index.ts +6 -5
  426. package/lib/initProstgles.ts +57 -51
  427. package/lib/onSocketConnected.ts +75 -40
  428. package/lib/runClientRequest.ts +148 -79
  429. package/lib/shortestPath.ts +80 -76
  430. package/lib/typeTests/DBoGenerated.d.ts +5 -1
  431. package/lib/typeTests/dboTypeCheck.ts +8 -8
  432. package/package.json +1 -1
@@ -1,68 +1,99 @@
1
-
2
1
  import { asName as _asName } from "prostgles-types";
3
2
  import { PubSubManager, asValue, log } from "../PubSubManager/PubSubManager";
4
3
  import TableConfigurator from "./TableConfig";
5
- import { getColConstraints, getConstraintDefinitionQueries } from "./getConstraintDefinitionQueries";
4
+ import {
5
+ getColConstraints,
6
+ getConstraintDefinitionQueries,
7
+ } from "./getConstraintDefinitionQueries";
6
8
  import { getFutureTableSchema } from "./getFutureTableSchema";
7
9
  import { getTableColumnQueries } from "./getTableColumnQueries";
8
10
  import { getPGIndexes } from "./getPGIndexes";
9
11
 
10
12
  export const initTableConfig = async function (this: TableConfigurator<any>) {
11
-
12
13
  let changedSchema = false;
13
14
  const failedQueries: { query: string; error: any }[] = [];
14
15
  this.initialising = true;
15
16
  const queryHistory: string[] = [];
16
17
  let queries: string[] = [];
17
- const makeQuery = (q: string[]) => q.filter(v => v.trim().length).map(v => v.trim().endsWith(";") ? v : `${v};`).join("\n");
18
+ const makeQuery = (q: string[]) =>
19
+ q
20
+ .filter((v) => v.trim().length)
21
+ .map((v) => (v.trim().endsWith(";") ? v : `${v};`))
22
+ .join("\n");
18
23
  const runQueries = async (_queries = queries) => {
19
24
  let q = makeQuery(queries);
20
- if (!_queries.some(q => q.trim().length)) {
25
+ if (!_queries.some((q) => q.trim().length)) {
21
26
  return 0;
22
27
  }
23
28
  q = `/* ${PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID} */ \n\n` + q;
24
29
  queryHistory.push(q);
25
- this.prostgles.opts.onLog?.({ type: "debug", command: "TableConfig.runQueries.start", data: { q }, duration: -1 });
30
+ this.prostgles.opts.onLog?.({
31
+ type: "debug",
32
+ command: "TableConfig.runQueries.start",
33
+ data: { q },
34
+ duration: -1,
35
+ });
26
36
  const now = Date.now();
27
- await this.db.multi(q).catch(err => {
37
+ await this.db.multi(q).catch((err) => {
28
38
  log({ err, q });
29
39
  failedQueries.push({ query: q, error: err });
30
40
  return Promise.reject(err);
31
41
  });
32
- this.prostgles.opts.onLog?.({ type: "debug", command: "TableConfig.runQueries.end", duration: Date.now() - now, data: { q } });
42
+ this.prostgles.opts.onLog?.({
43
+ type: "debug",
44
+ command: "TableConfig.runQueries.end",
45
+ duration: Date.now() - now,
46
+ data: { q },
47
+ });
33
48
  changedSchema = true;
34
49
  _queries = [];
35
50
  queries = [];
36
51
  return 1;
37
- }
52
+ };
38
53
 
39
54
  if (!this.prostgles.pgp) {
40
55
  throw "pgp missing";
41
56
  }
42
57
 
43
- const MAX_IDENTIFIER_LENGTH = +(await this.db.one("SHOW max_identifier_length;") as any).max_identifier_length;
44
- if (!Number.isFinite(MAX_IDENTIFIER_LENGTH)) throw `Could not obtain a valid max_identifier_length`;
58
+ const MAX_IDENTIFIER_LENGTH = +(
59
+ (await this.db.one("SHOW max_identifier_length;")) as any
60
+ ).max_identifier_length;
61
+ if (!Number.isFinite(MAX_IDENTIFIER_LENGTH))
62
+ throw `Could not obtain a valid max_identifier_length`;
45
63
  const asName = (v: string) => {
46
64
  if (v.length > MAX_IDENTIFIER_LENGTH - 1) {
47
- throw `The identifier name provided (${v}) is longer than the allowed limit (max_identifier_length - 1 = ${MAX_IDENTIFIER_LENGTH - 1} characters )\n Longest allowed: ${_asName(v.slice(0, MAX_IDENTIFIER_LENGTH - 1))} `
65
+ throw `The identifier name provided (${v}) is longer than the allowed limit (max_identifier_length - 1 = ${MAX_IDENTIFIER_LENGTH - 1} characters )\n Longest allowed: ${_asName(v.slice(0, MAX_IDENTIFIER_LENGTH - 1))} `;
48
66
  }
49
67
 
50
68
  return _asName(v);
51
- }
69
+ };
52
70
 
53
- let migrations: { version: number; table: string; } | undefined;
71
+ let migrations: { version: number; table: string } | undefined;
54
72
  if (this.prostgles.opts.tableConfigMigrations) {
55
- const { onMigrate, version, versionTableName = "schema_version" } = this.prostgles.opts.tableConfigMigrations;
73
+ const {
74
+ onMigrate,
75
+ version,
76
+ versionTableName = "schema_version",
77
+ } = this.prostgles.opts.tableConfigMigrations;
56
78
  await this.db.any(`
57
79
  /* ${PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID} */
58
80
  CREATE TABLE IF NOT EXISTS ${asName(versionTableName)}(id NUMERIC PRIMARY KEY, table_config JSONB NOT NULL)
59
81
  `);
60
82
  migrations = { version, table: versionTableName };
61
- const maxVersion = +(await this.db.oneOrNone(`SELECT MAX(id) as v FROM ${asName(versionTableName)}`)).v
83
+ const maxVersion = +(
84
+ await this.db.oneOrNone(
85
+ `SELECT MAX(id) as v FROM ${asName(versionTableName)}`,
86
+ )
87
+ ).v;
62
88
  const latestVersion = Number.isFinite(maxVersion) ? maxVersion : undefined;
63
89
 
64
90
  if (latestVersion === version) {
65
- const isLatest = (await this.db.oneOrNone(`SELECT table_config = \${table_config} as v FROM ${asName(versionTableName)} WHERE id = \${version}`, { version, table_config: this.config })).v;
91
+ const isLatest = (
92
+ await this.db.oneOrNone(
93
+ `SELECT table_config = \${table_config} as v FROM ${asName(versionTableName)} WHERE id = \${version}`,
94
+ { version, table_config: this.config },
95
+ )
96
+ ).v;
66
97
  if (isLatest) {
67
98
  /**
68
99
  * If the table config is the same as the latest version then we can skip all schema checks and changes
@@ -71,7 +102,12 @@ export const initTableConfig = async function (this: TableConfigurator<any>) {
71
102
  }
72
103
  }
73
104
  if (latestVersion !== undefined && latestVersion < version) {
74
- await onMigrate({ db: this.db, oldVersion: latestVersion, getConstraints: (table, col, types) => getColConstraints({ db: this.db, table, column: col, types }) })
105
+ await onMigrate({
106
+ db: this.db,
107
+ oldVersion: latestVersion,
108
+ getConstraints: (table, col, types) =>
109
+ getColConstraints({ db: this.db, table, column: col, types }),
110
+ });
75
111
  }
76
112
  }
77
113
 
@@ -79,7 +115,10 @@ export const initTableConfig = async function (this: TableConfigurator<any>) {
79
115
  for (const [tableNameRaw, tableConf] of Object.entries(this.config)) {
80
116
  const tableName = asName(tableNameRaw);
81
117
 
82
- if ("isLookupTable" in tableConf && Object.keys(tableConf.isLookupTable?.values).length) {
118
+ if (
119
+ "isLookupTable" in tableConf &&
120
+ Object.keys(tableConf.isLookupTable?.values).length
121
+ ) {
83
122
  const { dropIfExists = false, dropIfExistsCascade = false } = tableConf;
84
123
  const isDropped = dropIfExists || dropIfExistsCascade;
85
124
 
@@ -89,26 +128,38 @@ export const initTableConfig = async function (this: TableConfigurator<any>) {
89
128
  queries.push(`DROP TABLE IF EXISTS ${tableName};`);
90
129
  }
91
130
 
92
- const rows = Object.entries(tableConf.isLookupTable?.values).map(([id, otherColumns])=> ({ id, ...otherColumns }));
131
+ const rows = Object.entries(tableConf.isLookupTable?.values).map(
132
+ ([id, otherColumns]) => ({ id, ...otherColumns }),
133
+ );
93
134
  const lookupTableHandler = this.dbo?.[tableNameRaw];
94
- const columnNames = Object.keys(rows[0]!).filter(k => k !== "id");
135
+ const columnNames = Object.keys(rows[0]!).filter((k) => k !== "id");
95
136
  if (isDropped || !lookupTableHandler) {
96
137
  queries.push(
97
138
  `CREATE TABLE IF NOT EXISTS ${tableName} (
98
139
  id TEXT PRIMARY KEY
99
- ${columnNames.length ? (", " + columnNames.map(k => asName(k) + " TEXT ").join(", ")) : ""}
100
- );`
140
+ ${columnNames.length ? ", " + columnNames.map((k) => asName(k) + " TEXT ").join(", ") : ""}
141
+ );`,
101
142
  );
102
143
  }
103
- if(rows.length){
104
- const existingValues: { id: any }[] = !lookupTableHandler? [] : await this.db.any(`SELECT id FROM ${tableName} WHERE id IN (${rows.map(r => asValue(r.id)).join(", ")});`);
144
+ if (rows.length) {
145
+ const existingValues: { id: any }[] = !lookupTableHandler
146
+ ? []
147
+ : await this.db.any(
148
+ `SELECT id FROM ${tableName} WHERE id IN (${rows.map((r) => asValue(r.id)).join(", ")});`,
149
+ );
105
150
  rows
106
- .filter(r => !existingValues.some(ev => ev.id === r.id))
107
- .map(row => {
108
- const allColumns = ["id", ...columnNames]
109
- const values = allColumns.map(key => (row as any)[key]);
110
- queries.push(this.prostgles.pgp!.as.format(`INSERT INTO ${tableName} (${allColumns.map(t => asName(t)).join(", ")}) ` + " VALUES (${values:csv});", { values }))
111
- });
151
+ .filter((r) => !existingValues.some((ev) => ev.id === r.id))
152
+ .map((row) => {
153
+ const allColumns = ["id", ...columnNames];
154
+ const values = allColumns.map((key) => (row as any)[key]);
155
+ queries.push(
156
+ this.prostgles.pgp!.as.format(
157
+ `INSERT INTO ${tableName} (${allColumns.map((t) => asName(t)).join(", ")}) ` +
158
+ " VALUES (${values:csv});",
159
+ { values },
160
+ ),
161
+ );
162
+ });
112
163
  }
113
164
  }
114
165
  }
@@ -125,56 +176,79 @@ export const initTableConfig = async function (this: TableConfigurator<any>) {
125
176
  const ALTER_TABLE_Q = `ALTER TABLE ${asName(tableName)}`;
126
177
 
127
178
  /* isLookupTable table has already been created */
128
- const coldef = "isLookupTable" in tableConf? undefined : await getTableColumnQueries({ db: this.db, tableConf, tableHandler, tableName });
179
+ const coldef =
180
+ "isLookupTable" in tableConf
181
+ ? undefined
182
+ : await getTableColumnQueries({
183
+ db: this.db,
184
+ tableConf,
185
+ tableHandler,
186
+ tableName,
187
+ });
129
188
 
130
189
  if (coldef) {
131
190
  queries.push(coldef.fullQuery);
132
191
  }
133
192
 
134
193
  /** CONSTRAINTS */
135
- const constraintDefs = getConstraintDefinitionQueries({ tableName, tableConf });
194
+ const constraintDefs = getConstraintDefinitionQueries({
195
+ tableName,
196
+ tableConf,
197
+ });
136
198
  if (coldef?.isCreate) {
137
- queries.push(...constraintDefs?.map(c => c.alterQuery) ?? []);
138
-
199
+ queries.push(...(constraintDefs?.map((c) => c.alterQuery) ?? []));
139
200
  } else if (coldef) {
140
- const fullSchema = await getFutureTableSchema({ db: this.db, tableName, columnDefs: coldef.columnDefs, constraintDefs });
141
- const futureCons = fullSchema.constraints.map(nc => ({
201
+ const fullSchema = await getFutureTableSchema({
202
+ db: this.db,
203
+ tableName,
204
+ columnDefs: coldef.columnDefs,
205
+ constraintDefs,
206
+ });
207
+ const futureCons = fullSchema.constraints.map((nc) => ({
142
208
  ...nc,
143
- isNamed: constraintDefs?.some(c => c.name === nc.name)
209
+ isNamed: constraintDefs?.some((c) => c.name === nc.name),
144
210
  }));
145
211
 
146
212
  /** Run this first to ensure any dropped cols drop their constraints as well */
147
213
  await runQueries(queries);
148
- const currCons = await getColConstraints({ db: this.db, table: tableName });
214
+ const currCons = await getColConstraints({
215
+ db: this.db,
216
+ table: tableName,
217
+ });
149
218
 
150
219
  /** Drop removed/modified */
151
- currCons.forEach(c => {
152
- if (!futureCons.some(nc => nc.definition === c.definition && (!nc.isNamed || nc.name === c.name))) {
153
- queries.push(`${ALTER_TABLE_Q} DROP CONSTRAINT ${asName(c.name)};`)
220
+ currCons.forEach((c) => {
221
+ if (
222
+ !futureCons.some(
223
+ (nc) =>
224
+ nc.definition === c.definition &&
225
+ (!nc.isNamed || nc.name === c.name),
226
+ )
227
+ ) {
228
+ queries.push(`${ALTER_TABLE_Q} DROP CONSTRAINT ${asName(c.name)};`);
154
229
  }
155
230
  });
156
231
 
157
232
  /** Add missing named constraints */
158
- constraintDefs?.forEach(c => {
159
- if (c.name && !currCons.some(cc => cc.name === c.name)) {
160
- const fc = futureCons.find(nc => nc.name === c.name);
233
+ constraintDefs?.forEach((c) => {
234
+ if (c.name && !currCons.some((cc) => cc.name === c.name)) {
235
+ const fc = futureCons.find((nc) => nc.name === c.name);
161
236
  if (fc) {
162
- queries.push(`${ALTER_TABLE_Q} ADD CONSTRAINT ${asName(c.name)} ${c.content};`);
237
+ queries.push(
238
+ `${ALTER_TABLE_Q} ADD CONSTRAINT ${asName(c.name)} ${c.content};`,
239
+ );
163
240
  }
164
241
  }
165
242
  });
166
243
 
167
244
  /** Add remaining missing constraints */
168
245
  futureCons
169
- .filter(nc =>
170
- !currCons.some(c => c.definition === nc.definition)
171
- )
172
- .forEach(c => {
173
- queries.push(`${ALTER_TABLE_Q} ADD ${c.definition};`)
246
+ .filter((nc) => !currCons.some((c) => c.definition === nc.definition))
247
+ .forEach((c) => {
248
+ queries.push(`${ALTER_TABLE_Q} ADD ${c.definition};`);
174
249
  });
175
250
  }
176
251
 
177
-
178
252
  if ("indexes" in tableConf && tableConf.indexes) {
179
253
  /*
180
254
  CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name [ USING method ]
@@ -186,40 +260,42 @@ export const initTableConfig = async function (this: TableConfigurator<any>) {
186
260
  [ WHERE predicate ]
187
261
  */
188
262
  const currIndexes = await getPGIndexes(this.db, tableName, "public");
189
- Object.entries(tableConf.indexes).forEach(([
190
- indexName,
191
- {
192
- columns,
193
- concurrently,
194
- replace,
195
- unique,
196
- using,
197
- where = ""
198
- }
199
- ]) => {
200
-
201
- if (replace || typeof replace !== "boolean" && tableConf.replaceUniqueIndexes) {
202
- queries.push(`DROP INDEX IF EXISTS ${asName(indexName)};`);
203
- }
204
- if (!currIndexes.some(idx => idx.indexname === indexName)) {
205
- queries.push([
206
- "CREATE",
207
- unique && "UNIQUE",
208
- concurrently && "CONCURRENTLY",
209
- `INDEX ${asName(indexName)} ON ${asName(tableName)}`,
210
- using && ("USING " + using),
211
- `(${columns})`,
212
- where && `WHERE ${where}`
213
- ].filter(v => v).join(" ") + ";");
214
- }
215
- });
263
+ Object.entries(tableConf.indexes).forEach(
264
+ ([
265
+ indexName,
266
+ { columns, concurrently, replace, unique, using, where = "" },
267
+ ]) => {
268
+ if (
269
+ replace ||
270
+ (typeof replace !== "boolean" && tableConf.replaceUniqueIndexes)
271
+ ) {
272
+ queries.push(`DROP INDEX IF EXISTS ${asName(indexName)};`);
273
+ }
274
+ if (!currIndexes.some((idx) => idx.indexname === indexName)) {
275
+ queries.push(
276
+ [
277
+ "CREATE",
278
+ unique && "UNIQUE",
279
+ concurrently && "CONCURRENTLY",
280
+ `INDEX ${asName(indexName)} ON ${asName(tableName)}`,
281
+ using && "USING " + using,
282
+ `(${columns})`,
283
+ where && `WHERE ${where}`,
284
+ ]
285
+ .filter((v) => v)
286
+ .join(" ") + ";",
287
+ );
288
+ }
289
+ },
290
+ );
216
291
  }
217
292
 
218
293
  const { triggers, dropIfExists, dropIfExistsCascade } = tableConf;
219
294
  if (triggers) {
220
295
  const isDropped = dropIfExists || dropIfExistsCascade;
221
296
 
222
- const existingTriggers = await this.dbo.sql!(`
297
+ const existingTriggers = (await this.dbo.sql!(
298
+ `
223
299
  SELECT event_object_table
224
300
  ,trigger_name
225
301
  FROM information_schema.triggers
@@ -227,18 +303,17 @@ export const initTableConfig = async function (this: TableConfigurator<any>) {
227
303
  ORDER BY event_object_table
228
304
  `,
229
305
  { tableName },
230
- { returnType: "rows" }
231
- ) as { trigger_name: string }[];
306
+ { returnType: "rows" },
307
+ )) as { trigger_name: string }[];
232
308
 
233
309
  // const existingTriggerFuncs = await this.dbo.sql!(`
234
310
  // SELECT p.oid,proname,prosrc,u.usename
235
- // FROM pg_proc p
236
- // JOIN pg_user u ON u.usesysid = p.proowner
311
+ // FROM pg_proc p
312
+ // JOIN pg_user u ON u.usesysid = p.proowner
237
313
  // WHERE prorettype = 2279;
238
314
  // `, {}, { returnType: "rows" }) as { proname: string }[];
239
315
 
240
316
  Object.entries(triggers).forEach(([triggerFuncName, trigger]) => {
241
-
242
317
  const funcNameParsed = asName(triggerFuncName);
243
318
 
244
319
  let addedFunc = false;
@@ -256,21 +331,31 @@ export const initTableConfig = async function (this: TableConfigurator<any>) {
256
331
 
257
332
  $$;
258
333
  `);
259
- }
334
+ };
260
335
 
261
- trigger.actions.forEach(action => {
336
+ trigger.actions.forEach((action) => {
262
337
  const triggerActionName = triggerFuncName + "_" + action;
263
338
 
264
- const triggerActionNameParsed = asName(triggerActionName)
339
+ const triggerActionNameParsed = asName(triggerActionName);
265
340
  if (isDropped) {
266
- queries.push(`DROP TRIGGER IF EXISTS ${triggerActionNameParsed} ON ${tableName};`)
341
+ queries.push(
342
+ `DROP TRIGGER IF EXISTS ${triggerActionNameParsed} ON ${tableName};`,
343
+ );
267
344
  }
268
345
 
269
- if (isDropped || !existingTriggers.some(t => t.trigger_name === triggerActionName)) {
346
+ if (
347
+ isDropped ||
348
+ !existingTriggers.some((t) => t.trigger_name === triggerActionName)
349
+ ) {
270
350
  addFuncDef();
271
- const newTableName = action !== "delete" ? "NEW TABLE AS new_table" : "";
272
- const oldTableName = action !== "insert" ? "OLD TABLE AS old_table" : "";
273
- const transitionTables = trigger.forEach === "row" ? "" : `REFERENCING ${newTableName} ${oldTableName}`;
351
+ const newTableName =
352
+ action !== "delete" ? "NEW TABLE AS new_table" : "";
353
+ const oldTableName =
354
+ action !== "insert" ? "OLD TABLE AS old_table" : "";
355
+ const transitionTables =
356
+ trigger.forEach === "row"
357
+ ? ""
358
+ : `REFERENCING ${newTableName} ${oldTableName}`;
274
359
  queries.push(`
275
360
  CREATE TRIGGER ${triggerActionNameParsed}
276
361
  ${trigger.type} ${action} ON ${tableName}
@@ -279,8 +364,8 @@ export const initTableConfig = async function (this: TableConfigurator<any>) {
279
364
  EXECUTE PROCEDURE ${funcNameParsed}();
280
365
  `);
281
366
  }
282
- })
283
- })
367
+ });
368
+ });
284
369
  }
285
370
  }
286
371
 
@@ -296,7 +381,9 @@ export const initTableConfig = async function (this: TableConfigurator<any>) {
296
381
  if (err.position) {
297
382
  const pos = +err.position;
298
383
  if (Number.isInteger(pos)) {
299
- return Promise.reject(err.toString() + "\n At:" + q.slice(pos - 50, pos + 50));
384
+ return Promise.reject(
385
+ err.toString() + "\n At:" + q.slice(pos - 50, pos + 50),
386
+ );
300
387
  }
301
388
  }
302
389
 
@@ -305,22 +392,26 @@ export const initTableConfig = async function (this: TableConfigurator<any>) {
305
392
  }
306
393
 
307
394
  if (migrations) {
308
- await this.db.any(`INSERT INTO ${migrations.table}(id, table_config) VALUES (${asValue(migrations.version)}, ${asValue(this.config)}) ON CONFLICT DO NOTHING;`)
395
+ await this.db.any(
396
+ `INSERT INTO ${migrations.table}(id, table_config) VALUES (${asValue(migrations.version)}, ${asValue(this.config)}) ON CONFLICT DO NOTHING;`,
397
+ );
309
398
  }
310
399
  this.initialising = false;
311
400
  if (changedSchema && !failedQueries.length) {
312
401
  if (!this.prevInitQueryHistory) {
313
402
  this.prevInitQueryHistory = queryHistory;
314
403
  } else if (this.prevInitQueryHistory.join() !== queryHistory.join()) {
315
- this.prostgles.init(this.prostgles.opts.onReady as any, { type: "TableConfig" });
404
+ this.prostgles.init(this.prostgles.opts.onReady as any, {
405
+ type: "TableConfig",
406
+ });
316
407
  } else {
317
- console.error("TableConfig loop bug", queryHistory)
408
+ console.error("TableConfig loop bug", queryHistory);
318
409
  }
319
410
  }
320
411
  if (failedQueries.length) {
321
- console.error("Table config failed queries: ", failedQueries)
412
+ console.error("Table config failed queries: ", failedQueries);
322
413
  }
323
414
 
324
415
  await this.prostgles.refreshDBO();
325
416
  this.setTableOnMounts();
326
- }
417
+ };
package/lib/index.ts CHANGED
@@ -5,9 +5,10 @@ import { ProstglesInitOptions } from "./ProstglesTypes";
5
5
  import { testDboTypes } from "./typeTests/dboTypeCheck";
6
6
  testDboTypes();
7
7
 
8
- function prostgles<S = void, SUser extends SessionUser = SessionUser>(params: ProstglesInitOptions<S, SUser>){
9
-
10
- const prgl = new Prostgles(params as any);
11
- return prgl.init(params.onReady as any, { type: "init" });
8
+ function prostgles<S = void, SUser extends SessionUser = SessionUser>(
9
+ params: ProstglesInitOptions<S, SUser>,
10
+ ) {
11
+ const prgl = new Prostgles(params as any);
12
+ return prgl.init(params.onReady as any, { type: "init" });
12
13
  }
13
- export = prostgles;
14
+ export = prostgles;
@@ -70,12 +70,14 @@ export type InitResult = {
70
70
  options: ProstglesInitOptions;
71
71
  };
72
72
 
73
- const clientOnlyUpdateKeys = ["auth"] as const satisfies (keyof UpdateableOptions)[];
73
+ const clientOnlyUpdateKeys = [
74
+ "auth",
75
+ ] as const satisfies (keyof UpdateableOptions)[];
74
76
 
75
77
  export const initProstgles = async function (
76
78
  this: Prostgles,
77
79
  onReady: OnReadyCallbackBasic,
78
- reason: OnInitReason
80
+ reason: OnInitReason,
79
81
  ): Promise<InitResult> {
80
82
  this.loaded = false;
81
83
 
@@ -94,14 +96,16 @@ export const initProstgles = async function (
94
96
  try {
95
97
  const url = new URL(connString);
96
98
  existingAppName =
97
- url.searchParams.get("application_name") ?? url.searchParams.get("ApplicationName") ?? "";
99
+ url.searchParams.get("application_name") ??
100
+ url.searchParams.get("ApplicationName") ??
101
+ "";
98
102
  } catch (e) {}
99
103
  }
100
104
 
101
105
  const conObj =
102
- typeof this.opts.dbConnection === "string" ?
103
- { connectionString: this.opts.dbConnection }
104
- : this.opts.dbConnection;
106
+ typeof this.opts.dbConnection === "string"
107
+ ? { connectionString: this.opts.dbConnection }
108
+ : this.opts.dbConnection;
105
109
  const application_name = `prostgles ${this.appId} ${existingAppName}`;
106
110
 
107
111
  /* 1. Connect to db */
@@ -151,7 +155,7 @@ export const initProstgles = async function (
151
155
  this.opts.publishRawSQL,
152
156
  this.dbo!,
153
157
  this.db,
154
- this as any
158
+ this as any,
155
159
  );
156
160
  this.dboBuilder.publishParser = this.publishParser;
157
161
 
@@ -217,7 +221,9 @@ export const initProstgles = async function (
217
221
  * While others also affect the server and onReady should be called
218
222
  */
219
223
  if (
220
- getKeys(newOpts).every((updatedKey) => clientOnlyUpdateKeys.includes(updatedKey as any))
224
+ getKeys(newOpts).every((updatedKey) =>
225
+ clientOnlyUpdateKeys.includes(updatedKey as any),
226
+ )
221
227
  ) {
222
228
  await this.setSocketEvents();
223
229
  } else {
@@ -273,52 +279,52 @@ const getDbConnection = function ({
273
279
  const onQueryOrError:
274
280
  | undefined
275
281
  | ((error: any, ctx: pgPromise.IEventContext<pg.IClient>) => void) =
276
- !onQuery && !DEBUG_MODE ?
277
- undefined
278
- : (error, ctx) => {
279
- if (onQuery) {
280
- onQuery(error, ctx);
281
- } else if (DEBUG_MODE) {
282
- if (error) {
283
- console.error(error, ctx);
284
- } else {
285
- console.log(ctx);
282
+ !onQuery && !DEBUG_MODE
283
+ ? undefined
284
+ : (error, ctx) => {
285
+ if (onQuery) {
286
+ onQuery(error, ctx);
287
+ } else if (DEBUG_MODE) {
288
+ if (error) {
289
+ console.error(error, ctx);
290
+ } else {
291
+ console.log(ctx);
292
+ }
286
293
  }
287
- }
288
- };
294
+ };
289
295
 
290
296
  const pgp: PGP = pgPromise({
291
- ...(onQueryOrError ?
292
- {
293
- query: (ctx) => onQueryOrError(undefined, ctx),
294
- error: onQueryOrError,
295
- }
296
- : {}),
297
- ...(onNotice || DEBUG_MODE ?
298
- {
299
- connect: function ({ client, useCount }) {
300
- const isFresh = !useCount;
301
- if (isFresh && !client.listeners("notice").length) {
302
- client.on("notice", function (msg) {
303
- if (onNotice) {
304
- onNotice(msg, msg?.message);
305
- } else {
306
- console.log("notice: %j", msg?.message);
307
- }
308
- });
309
- }
310
- if (isFresh && !client.listeners("error").length) {
311
- client.on("error", function (msg) {
312
- if (onNotice) {
313
- onNotice(msg, msg?.message);
314
- } else {
315
- console.log("error: %j", msg?.message);
316
- }
317
- });
318
- }
319
- },
320
- }
321
- : {}),
297
+ ...(onQueryOrError
298
+ ? {
299
+ query: (ctx) => onQueryOrError(undefined, ctx),
300
+ error: onQueryOrError,
301
+ }
302
+ : {}),
303
+ ...(onNotice || DEBUG_MODE
304
+ ? {
305
+ connect: function ({ client, useCount }) {
306
+ const isFresh = !useCount;
307
+ if (isFresh && !client.listeners("notice").length) {
308
+ client.on("notice", function (msg) {
309
+ if (onNotice) {
310
+ onNotice(msg, msg?.message);
311
+ } else {
312
+ console.log("notice: %j", msg?.message);
313
+ }
314
+ });
315
+ }
316
+ if (isFresh && !client.listeners("error").length) {
317
+ client.on("error", function (msg) {
318
+ if (onNotice) {
319
+ onNotice(msg, msg?.message);
320
+ } else {
321
+ console.log("error: %j", msg?.message);
322
+ }
323
+ });
324
+ }
325
+ },
326
+ }
327
+ : {}),
322
328
  });
323
329
  // pgp.pg.defaults.max = 70;
324
330