prostgles-server 3.0.87 → 3.0.89

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 (212) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.json +30 -0
  3. package/dist/DBEventsManager.js +1 -1
  4. package/dist/DBEventsManager.js.map +1 -1
  5. package/dist/DBSchemaBuilder.d.ts.map +1 -1
  6. package/dist/DBSchemaBuilder.js +6 -6
  7. package/dist/DBSchemaBuilder.js.map +1 -1
  8. package/dist/DboBuilder/QueryBuilder/Functions.js +9 -9
  9. package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
  10. package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
  11. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +8 -7
  12. package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
  13. package/dist/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +1 -1
  14. package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js +4 -4
  15. package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js.map +1 -1
  16. package/dist/DboBuilder/TableHandler.d.ts.map +1 -1
  17. package/dist/DboBuilder/TableHandler.js +18 -20
  18. package/dist/DboBuilder/TableHandler.js.map +1 -1
  19. package/dist/DboBuilder/ViewHandler.d.ts +0 -10
  20. package/dist/DboBuilder/ViewHandler.d.ts.map +1 -1
  21. package/dist/DboBuilder/ViewHandler.js +50 -63
  22. package/dist/DboBuilder/ViewHandler.js.map +1 -1
  23. package/dist/DboBuilder/delete.js +0 -1
  24. package/dist/DboBuilder/delete.js.map +1 -1
  25. package/dist/DboBuilder/getColumns.js +5 -4
  26. package/dist/DboBuilder/getColumns.js.map +1 -1
  27. package/dist/DboBuilder/getCondition.d.ts.map +1 -1
  28. package/dist/DboBuilder/getCondition.js +6 -6
  29. package/dist/DboBuilder/getCondition.js.map +1 -1
  30. package/dist/DboBuilder/insert.js +15 -16
  31. package/dist/DboBuilder/insert.js.map +1 -1
  32. package/dist/DboBuilder/insertDataParse.d.ts.map +1 -1
  33. package/dist/DboBuilder/insertDataParse.js +9 -10
  34. package/dist/DboBuilder/insertDataParse.js.map +1 -1
  35. package/dist/DboBuilder/parseUpdateRules.js +2 -2
  36. package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
  37. package/dist/DboBuilder/runSQL.d.ts.map +1 -1
  38. package/dist/DboBuilder/runSQL.js +5 -5
  39. package/dist/DboBuilder/runSQL.js.map +1 -1
  40. package/dist/DboBuilder/subscribe.js +3 -3
  41. package/dist/DboBuilder/subscribe.js.map +1 -1
  42. package/dist/DboBuilder/update.js +5 -6
  43. package/dist/DboBuilder/update.js.map +1 -1
  44. package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
  45. package/dist/DboBuilder/uploadFile.js +1 -1
  46. package/dist/DboBuilder/uploadFile.js.map +1 -1
  47. package/dist/DboBuilder.d.ts.map +1 -1
  48. package/dist/DboBuilder.js +13 -14
  49. package/dist/DboBuilder.js.map +1 -1
  50. package/dist/FileManager.d.ts.map +1 -1
  51. package/dist/FileManager.js +3 -5
  52. package/dist/FileManager.js.map +1 -1
  53. package/dist/Filtering.js +7 -7
  54. package/dist/Filtering.js.map +1 -1
  55. package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts +3 -0
  56. package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -0
  57. package/dist/JSONBValidation/validate_jsonb_schema_sql.js +295 -0
  58. package/dist/JSONBValidation/validate_jsonb_schema_sql.js.map +1 -0
  59. package/dist/JSONBValidation/validation.d.ts +108 -0
  60. package/dist/JSONBValidation/validation.d.ts.map +1 -0
  61. package/dist/JSONBValidation/validation.js +222 -0
  62. package/dist/JSONBValidation/validation.js.map +1 -0
  63. package/dist/PostgresNotifListenManager.js +1 -1
  64. package/dist/PostgresNotifListenManager.js.map +1 -1
  65. package/dist/Prostgles.d.ts.map +1 -1
  66. package/dist/Prostgles.js +20 -20
  67. package/dist/Prostgles.js.map +1 -1
  68. package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
  69. package/dist/PubSubManager/initPubSubManager.js +10 -7
  70. package/dist/PubSubManager/initPubSubManager.js.map +1 -1
  71. package/dist/PublishParser.d.ts.map +1 -1
  72. package/dist/PublishParser.js +122 -125
  73. package/dist/PublishParser.js.map +1 -1
  74. package/dist/SyncReplication.d.ts.map +1 -1
  75. package/dist/SyncReplication.js +19 -16
  76. package/dist/SyncReplication.js.map +1 -1
  77. package/dist/TableConfig.d.ts +9 -5
  78. package/dist/TableConfig.d.ts.map +1 -1
  79. package/dist/TableConfig.js +33 -12
  80. package/dist/TableConfig.js.map +1 -1
  81. package/dist/index.js +1 -1
  82. package/dist/index.js.map +1 -1
  83. package/dist/shortestPath.js +11 -11
  84. package/dist/shortestPath.js.map +1 -1
  85. package/dist/validation.d.ts +50 -24
  86. package/dist/validation.d.ts.map +1 -1
  87. package/dist/validation.js +177 -53
  88. package/dist/validation.js.map +1 -1
  89. package/lib/AuthHandler.d.ts +11 -11
  90. package/lib/AuthHandler.d.ts.map +1 -1
  91. package/lib/DBEventsManager.js +1 -1
  92. package/lib/DBEventsManager.ts +1 -1
  93. package/lib/DBSchemaBuilder.d.ts +3 -3
  94. package/lib/DBSchemaBuilder.d.ts.map +1 -1
  95. package/lib/DBSchemaBuilder.js +6 -6
  96. package/lib/DBSchemaBuilder.ts +10 -12
  97. package/lib/DboBuilder/QueryBuilder/Functions.d.ts +3 -3
  98. package/lib/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
  99. package/lib/DboBuilder/QueryBuilder/Functions.js +9 -9
  100. package/lib/DboBuilder/QueryBuilder/Functions.ts +13 -13
  101. package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts +3 -3
  102. package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
  103. package/lib/DboBuilder/QueryBuilder/QueryBuilder.js +8 -7
  104. package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +12 -12
  105. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +1 -1
  106. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.js +4 -4
  107. package/lib/DboBuilder/QueryBuilder/makeSelectQuery.ts +5 -5
  108. package/lib/DboBuilder/TableHandler.d.ts +1 -1
  109. package/lib/DboBuilder/TableHandler.d.ts.map +1 -1
  110. package/lib/DboBuilder/TableHandler.js +18 -20
  111. package/lib/DboBuilder/TableHandler.ts +21 -20
  112. package/lib/DboBuilder/ViewHandler.d.ts +1 -11
  113. package/lib/DboBuilder/ViewHandler.d.ts.map +1 -1
  114. package/lib/DboBuilder/ViewHandler.js +50 -63
  115. package/lib/DboBuilder/ViewHandler.ts +68 -97
  116. package/lib/DboBuilder/delete.js +0 -1
  117. package/lib/DboBuilder/delete.ts +1 -1
  118. package/lib/DboBuilder/getColumns.js +5 -4
  119. package/lib/DboBuilder/getColumns.ts +5 -5
  120. package/lib/DboBuilder/getCondition.d.ts.map +1 -1
  121. package/lib/DboBuilder/getCondition.js +6 -6
  122. package/lib/DboBuilder/getCondition.ts +7 -7
  123. package/lib/DboBuilder/insert.js +15 -16
  124. package/lib/DboBuilder/insert.ts +18 -18
  125. package/lib/DboBuilder/insertDataParse.d.ts.map +1 -1
  126. package/lib/DboBuilder/insertDataParse.js +9 -10
  127. package/lib/DboBuilder/insertDataParse.ts +42 -43
  128. package/lib/DboBuilder/parseUpdateRules.js +2 -2
  129. package/lib/DboBuilder/parseUpdateRules.ts +2 -2
  130. package/lib/DboBuilder/runSQL.d.ts.map +1 -1
  131. package/lib/DboBuilder/runSQL.js +5 -5
  132. package/lib/DboBuilder/runSQL.ts +6 -6
  133. package/lib/DboBuilder/subscribe.d.ts +1 -1
  134. package/lib/DboBuilder/subscribe.d.ts.map +1 -1
  135. package/lib/DboBuilder/subscribe.js +3 -3
  136. package/lib/DboBuilder/subscribe.ts +3 -3
  137. package/lib/DboBuilder/update.js +5 -6
  138. package/lib/DboBuilder/update.ts +6 -6
  139. package/lib/DboBuilder/uploadFile.d.ts.map +1 -1
  140. package/lib/DboBuilder/uploadFile.js +1 -1
  141. package/lib/DboBuilder/uploadFile.ts +2 -2
  142. package/lib/DboBuilder.d.ts +22 -22
  143. package/lib/DboBuilder.d.ts.map +1 -1
  144. package/lib/DboBuilder.js +13 -14
  145. package/lib/DboBuilder.ts +19 -19
  146. package/lib/FileManager.d.ts +6 -6
  147. package/lib/FileManager.d.ts.map +1 -1
  148. package/lib/FileManager.js +3 -5
  149. package/lib/FileManager.ts +7 -6
  150. package/lib/Filtering.d.ts +1 -1
  151. package/lib/Filtering.d.ts.map +1 -1
  152. package/lib/Filtering.js +7 -7
  153. package/lib/Filtering.ts +7 -7
  154. package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts +3 -0
  155. package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -0
  156. package/lib/JSONBValidation/validate_jsonb_schema_sql.js +294 -0
  157. package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +293 -0
  158. package/lib/JSONBValidation/validation.d.ts +108 -0
  159. package/lib/JSONBValidation/validation.d.ts.map +1 -0
  160. package/lib/JSONBValidation/validation.js +221 -0
  161. package/lib/JSONBValidation/validation.ts +332 -0
  162. package/lib/PostgresNotifListenManager.d.ts +1 -1
  163. package/lib/PostgresNotifListenManager.d.ts.map +1 -1
  164. package/lib/PostgresNotifListenManager.js +1 -1
  165. package/lib/PostgresNotifListenManager.ts +1 -1
  166. package/lib/Prostgles.d.ts +14 -14
  167. package/lib/Prostgles.d.ts.map +1 -1
  168. package/lib/Prostgles.js +20 -20
  169. package/lib/Prostgles.ts +22 -21
  170. package/lib/PubSubManager/PubSubManager.d.ts +7 -7
  171. package/lib/PubSubManager/PubSubManager.d.ts.map +1 -1
  172. package/lib/PubSubManager/initPubSubManager.d.ts.map +1 -1
  173. package/lib/PubSubManager/initPubSubManager.js +10 -7
  174. package/lib/PubSubManager/initPubSubManager.ts +12 -7
  175. package/lib/PublishParser.d.ts +32 -32
  176. package/lib/PublishParser.d.ts.map +1 -1
  177. package/lib/PublishParser.js +121 -124
  178. package/lib/PublishParser.ts +125 -127
  179. package/lib/SchemaWatch.d.ts +1 -1
  180. package/lib/SchemaWatch.d.ts.map +1 -1
  181. package/lib/SyncReplication.d.ts +5 -5
  182. package/lib/SyncReplication.d.ts.map +1 -1
  183. package/lib/SyncReplication.js +19 -16
  184. package/lib/SyncReplication.ts +470 -471
  185. package/lib/TableConfig.d.ts +28 -24
  186. package/lib/TableConfig.d.ts.map +1 -1
  187. package/lib/TableConfig.js +33 -12
  188. package/lib/TableConfig.ts +55 -21
  189. package/lib/index.js +1 -1
  190. package/lib/index.ts +1 -1
  191. package/lib/shortestPath.d.ts +1 -1
  192. package/lib/shortestPath.d.ts.map +1 -1
  193. package/lib/shortestPath.js +11 -11
  194. package/lib/shortestPath.ts +11 -11
  195. package/package.json +10 -6
  196. package/tests/client/PID.txt +1 -1
  197. package/tests/client/package-lock.json +53 -31
  198. package/tests/client/package.json +4 -1
  199. package/tests/isomorphic_queries.d.ts +4 -1
  200. package/tests/isomorphic_queries.d.ts.map +1 -1
  201. package/tests/isomorphic_queries.js +38 -30
  202. package/tests/isomorphic_queries.ts +40 -33
  203. package/tests/server/DBoGenerated.d.ts +1 -1
  204. package/tests/server/index.js +8 -7
  205. package/tests/server/index.ts +10 -8
  206. package/tests/server/package-lock.json +76 -58
  207. package/tests/server/package.json +2 -2
  208. package/tests/server/server.ts +2 -3
  209. package/lib/validation.d.ts +0 -100
  210. package/lib/validation.d.ts.map +0 -1
  211. package/lib/validation.js +0 -280
  212. package/lib/validation.ts +0 -360
@@ -1 +1 @@
1
- 54076
1
+ 374566
@@ -11,7 +11,10 @@
11
11
  "dependencies": {
12
12
  "@types/node": "^14.14.16",
13
13
  "prostgles-client": "^3.0.6",
14
- "socket.io-client": "^4.5.3"
14
+ "socket.io-client": "^4.6.1"
15
+ },
16
+ "devDependencies": {
17
+ "typescript": "^4.9.5"
15
18
  }
16
19
  },
17
20
  "node_modules/@socket.io/component-emitter": {
@@ -41,21 +44,21 @@
41
44
  }
42
45
  },
43
46
  "node_modules/engine.io-client": {
44
- "version": "6.2.3",
45
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.3.tgz",
46
- "integrity": "sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==",
47
+ "version": "6.4.0",
48
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz",
49
+ "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==",
47
50
  "dependencies": {
48
51
  "@socket.io/component-emitter": "~3.1.0",
49
52
  "debug": "~4.3.1",
50
53
  "engine.io-parser": "~5.0.3",
51
- "ws": "~8.2.3",
54
+ "ws": "~8.11.0",
52
55
  "xmlhttprequest-ssl": "~2.0.0"
53
56
  }
54
57
  },
55
58
  "node_modules/engine.io-parser": {
56
- "version": "5.0.4",
57
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
58
- "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==",
59
+ "version": "5.0.6",
60
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz",
61
+ "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==",
59
62
  "engines": {
60
63
  "node": ">=10.0.0"
61
64
  }
@@ -79,14 +82,14 @@
79
82
  "integrity": "sha512-fnrq9YH5OofpxrSIXlssTciNO58eVU9TF2IUsZkvLnJP7FUpPxgVLG3wi5c4IEsGTGV4kykHAgcFm3e0/2xbiw=="
80
83
  },
81
84
  "node_modules/socket.io-client": {
82
- "version": "4.5.3",
83
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.3.tgz",
84
- "integrity": "sha512-I/hqDYpQ6JKwtJOf5ikM+Qz+YujZPMEl6qBLhxiP0nX+TfXKhW4KZZG8lamrD6Y5ngjmYHreESVasVCgi5Kl3A==",
85
+ "version": "4.6.1",
86
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.1.tgz",
87
+ "integrity": "sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ==",
85
88
  "dependencies": {
86
89
  "@socket.io/component-emitter": "~3.1.0",
87
90
  "debug": "~4.3.2",
88
- "engine.io-client": "~6.2.3",
89
- "socket.io-parser": "~4.2.0"
91
+ "engine.io-client": "~6.4.0",
92
+ "socket.io-parser": "~4.2.1"
90
93
  },
91
94
  "engines": {
92
95
  "node": ">=10.0.0"
@@ -104,10 +107,23 @@
104
107
  "node": ">=10.0.0"
105
108
  }
106
109
  },
110
+ "node_modules/typescript": {
111
+ "version": "4.9.5",
112
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
113
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
114
+ "dev": true,
115
+ "bin": {
116
+ "tsc": "bin/tsc",
117
+ "tsserver": "bin/tsserver"
118
+ },
119
+ "engines": {
120
+ "node": ">=4.2.0"
121
+ }
122
+ },
107
123
  "node_modules/ws": {
108
- "version": "8.2.3",
109
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
110
- "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
124
+ "version": "8.11.0",
125
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
126
+ "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
111
127
  "engines": {
112
128
  "node": ">=10.0.0"
113
129
  },
@@ -153,21 +169,21 @@
153
169
  }
154
170
  },
155
171
  "engine.io-client": {
156
- "version": "6.2.3",
157
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.3.tgz",
158
- "integrity": "sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==",
172
+ "version": "6.4.0",
173
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz",
174
+ "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==",
159
175
  "requires": {
160
176
  "@socket.io/component-emitter": "~3.1.0",
161
177
  "debug": "~4.3.1",
162
178
  "engine.io-parser": "~5.0.3",
163
- "ws": "~8.2.3",
179
+ "ws": "~8.11.0",
164
180
  "xmlhttprequest-ssl": "~2.0.0"
165
181
  }
166
182
  },
167
183
  "engine.io-parser": {
168
- "version": "5.0.4",
169
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz",
170
- "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg=="
184
+ "version": "5.0.6",
185
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz",
186
+ "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw=="
171
187
  },
172
188
  "ms": {
173
189
  "version": "2.1.2",
@@ -188,14 +204,14 @@
188
204
  "integrity": "sha512-fnrq9YH5OofpxrSIXlssTciNO58eVU9TF2IUsZkvLnJP7FUpPxgVLG3wi5c4IEsGTGV4kykHAgcFm3e0/2xbiw=="
189
205
  },
190
206
  "socket.io-client": {
191
- "version": "4.5.3",
192
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.3.tgz",
193
- "integrity": "sha512-I/hqDYpQ6JKwtJOf5ikM+Qz+YujZPMEl6qBLhxiP0nX+TfXKhW4KZZG8lamrD6Y5ngjmYHreESVasVCgi5Kl3A==",
207
+ "version": "4.6.1",
208
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.1.tgz",
209
+ "integrity": "sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ==",
194
210
  "requires": {
195
211
  "@socket.io/component-emitter": "~3.1.0",
196
212
  "debug": "~4.3.2",
197
- "engine.io-client": "~6.2.3",
198
- "socket.io-parser": "~4.2.0"
213
+ "engine.io-client": "~6.4.0",
214
+ "socket.io-parser": "~4.2.1"
199
215
  }
200
216
  },
201
217
  "socket.io-parser": {
@@ -207,10 +223,16 @@
207
223
  "debug": "~4.3.1"
208
224
  }
209
225
  },
226
+ "typescript": {
227
+ "version": "4.9.5",
228
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
229
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
230
+ "dev": true
231
+ },
210
232
  "ws": {
211
- "version": "8.2.3",
212
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
213
- "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
233
+ "version": "8.11.0",
234
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
235
+ "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
214
236
  "requires": {}
215
237
  },
216
238
  "xmlhttprequest-ssl": {
@@ -14,6 +14,9 @@
14
14
  "dependencies": {
15
15
  "@types/node": "^14.14.16",
16
16
  "prostgles-client": "^3.0.6",
17
- "socket.io-client": "^4.5.3"
17
+ "socket.io-client": "^4.6.1"
18
+ },
19
+ "devDependencies": {
20
+ "typescript": "^4.9.5"
18
21
  }
19
22
  }
@@ -1,6 +1,9 @@
1
1
  import { DBHandlerServer } from "../dist/Prostgles";
2
2
  import type { DBHandlerClient } from "./client/index";
3
3
  export declare function tryRun(desc: string, func: () => any, log?: Function): Promise<void>;
4
- export declare function tryRunP(desc: string, func: (resolve: any, reject: any) => any, log?: Function): Promise<unknown>;
4
+ export declare function tryRunP(desc: string, func: (resolve: any, reject: any) => any, opts?: {
5
+ log?: Function;
6
+ timeout?: number;
7
+ }): Promise<unknown>;
5
8
  export default function isomorphic(db: Required<DBHandlerServer> | Required<DBHandlerClient>): Promise<void>;
6
9
  //# sourceMappingURL=isomorphic_queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isomorphic_queries.d.ts","sourceRoot":"","sources":["isomorphic_queries.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,iBAYzE;AACD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,oBAW7F;AAED,wBAA8B,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,iBAk6BjG"}
1
+ {"version":3,"file":"isomorphic_queries.d.ts","sourceRoot":"","sources":["isomorphic_queries.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,iBAYzE;AACD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,EAAE,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAAE,oBAiB3H;AAED,wBAA8B,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,iBAm6BjG"}
@@ -40,13 +40,19 @@ async function tryRun(desc, func, log) {
40
40
  }
41
41
  }
42
42
  exports.tryRun = tryRun;
43
- function tryRunP(desc, func, log) {
43
+ function tryRunP(desc, func, opts) {
44
44
  return new Promise(async (rv, rj) => {
45
+ const tout = Number.isFinite(opts?.timeout) ? setTimeout(() => {
46
+ const errMsg = `${desc} failed. Reason: Timout reached: ${opts.timeout}ms`;
47
+ opts?.log?.(errMsg);
48
+ rj(errMsg);
49
+ }, opts.timeout) : undefined;
45
50
  try {
46
51
  await func(rv, rj);
52
+ clearTimeout(tout);
47
53
  }
48
54
  catch (err) {
49
- log?.(`${desc} failed: ` + JSON.stringify(err));
55
+ opts?.log?.(`${desc} failed: ` + JSON.stringify(err));
50
56
  setTimeout(() => {
51
57
  throw err;
52
58
  }, 1000);
@@ -331,7 +337,7 @@ async function isomorphic(db) {
331
337
  await db.various.update({ id: 99 }, { name: "zz3zz1" });
332
338
  await db.various.update({ id: 99 }, { name: "zz3zz2" });
333
339
  await db.various.update({ id: 99 }, { name: "zz3zz3" });
334
- });
340
+ }, { timeout: 4000 });
335
341
  await tryRunP("subscribeOne with throttle", async (resolve, reject) => {
336
342
  await db.various.insert({ id: 99 });
337
343
  const start = Date.now(); // name: "zz3zz"
@@ -347,7 +353,7 @@ async function isomorphic(db) {
347
353
  });
348
354
  await db.various.update({ id: 99 }, { name: "zz3zz1" });
349
355
  await db.various.update({ id: 99 }, { name: "zz3zz2" });
350
- });
356
+ }, { timeout: 4000 });
351
357
  await tryRun("JSON filtering", async () => {
352
358
  const res = await db.various.count({ "jsn->a->>b": '3' });
353
359
  assert_1.strict.equal(res, 1);
@@ -590,7 +596,7 @@ async function isomorphic(db) {
590
596
  const json = { a: true, arr: "2", arr1: 3, arr2: [1], arrStr: ["1123.string"] };
591
597
  const fo = await db.tjson.insert({ colOneOf: "a", json }, { returning: "*" });
592
598
  // assert.deepStrictEqual(fo.json, json);
593
- await db.tjson.insert({ colOneOf: "a", json: { ...json, o: { o1: 2, o2: true } } });
599
+ await db.tjson.insert({ colOneOf: "a", json: { ...json, o: { o1: 2 } } });
594
600
  try {
595
601
  await db.tjson.insert({ colOneOf: "a", json: { a: true, arr: "22" } });
596
602
  throw "Should have failed";
@@ -602,64 +608,66 @@ async function isomorphic(db) {
602
608
  });
603
609
  await tryRun("jsonb JSON Schema validation", async () => {
604
610
  const cols = await db.tjson.getColumns();
605
- assert_1.strict.deepEqual(cols.find(c => c.name === "json")?.jsonSchema, {
611
+ const jsonColSchema = cols.find(c => c.name === "json")?.jsonSchema;
612
+ // console.trace(JSON.stringify(jsonColSchema, null, 2))
613
+ assert_1.strict.deepEqual(jsonColSchema, {
606
614
  $id: 'tjson.json',
607
615
  $schema: 'https://json-schema.org/draft/2020-12/schema',
608
- title: 'json',
609
- required: true,
616
+ // title: 'json',
610
617
  type: 'object',
618
+ required: ['a', 'arr', 'arr1', 'arr2'],
611
619
  properties: {
612
- a: { type: 'boolean', required: true },
620
+ a: { type: 'boolean' },
613
621
  arr: {
614
- type: 'string', enum: ['1', '2', '3'],
615
- required: true
622
+ type: 'string', enum: ['1', '2', '3']
616
623
  },
617
624
  arr1: {
618
- type: 'number', enum: [1, 2, 3],
619
- required: true
625
+ type: 'number', enum: [1, 2, 3]
620
626
  },
621
- arr2: { type: 'array', items: { type: 'integer' }, required: true },
627
+ arr2: { type: 'array', items: { type: 'integer' } },
622
628
  arrStr: {
623
629
  type: "object",
624
630
  oneOf: [
625
631
  { type: 'array', items: { type: 'string' } },
626
632
  { type: 'null' }
627
- ],
628
- required: false
633
+ ]
629
634
  },
630
635
  o: {
631
636
  type: "object",
632
637
  oneOf: [
633
- { type: "object", properties: { o1: { type: 'integer', required: true } } },
634
- { type: "object", properties: { o2: { type: 'boolean', required: true } } },
638
+ { type: "object", required: ["o1"], properties: { o1: { type: 'integer' } } },
639
+ { type: "object", required: ["o2"], properties: { o2: { type: 'boolean' } } },
635
640
  { type: 'null' }
636
- ],
637
- required: false
641
+ ]
638
642
  }
639
643
  }
640
644
  });
641
- assert_1.strict.deepEqual(cols.find(c => c.name === "status")?.jsonSchema, {
645
+ const statusColJSONSchema = cols.find(c => c.name === "status")?.jsonSchema;
646
+ // console.trace(JSON.stringify(statusColJSONSchema, null, 2));
647
+ assert_1.strict.deepEqual(statusColJSONSchema, {
642
648
  $id: 'tjson.status',
643
649
  $schema: 'https://json-schema.org/draft/2020-12/schema',
644
650
  type: "object",
645
651
  oneOf: [
646
- { type: "object", properties: { ok: { required: true, type: 'string' } } },
647
- { type: "object", properties: { err: { required: true, type: 'string' } } },
652
+ { type: "object", required: ["ok"], properties: { ok: { type: 'string' } } },
653
+ { type: "object", required: ["err"], properties: { err: { type: 'string' } } },
648
654
  {
649
- type: "object", properties: {
655
+ type: "object",
656
+ required: ["loading"],
657
+ properties: {
650
658
  loading: {
659
+ required: ["loaded", "total"],
651
660
  properties: {
652
- loaded: { required: true, type: 'number' },
653
- total: { required: true, type: 'number' }
661
+ loaded: { type: 'number' },
662
+ total: { type: 'number' }
654
663
  },
655
- required: true,
656
664
  type: 'object'
657
665
  }
658
666
  }
659
- }
667
+ },
668
+ { type: "null" }
660
669
  ],
661
- required: false,
662
- title: 'status'
670
+ // title: 'status'
663
671
  });
664
672
  });
665
673
  await tryRun("Exists filter example", async () => {
@@ -17,12 +17,18 @@ export async function tryRun(desc: string, func: () => any, log?: Function){
17
17
  }, 2000)
18
18
  }
19
19
  }
20
- export function tryRunP(desc: string, func: (resolve: any, reject: any) => any, log?: Function){
20
+ export function tryRunP(desc: string, func: (resolve: any, reject: any) => any, opts?: { log?: Function; timeout?: number; }){
21
21
  return new Promise(async (rv, rj) => {
22
+ const tout = Number.isFinite(opts?.timeout)? setTimeout(() => {
23
+ const errMsg = `${desc} failed. Reason: Timout reached: ${opts.timeout}ms`;
24
+ opts?.log?.(errMsg);
25
+ rj(errMsg);
26
+ }, opts.timeout) : undefined
22
27
  try {
23
28
  await func(rv, rj);
29
+ clearTimeout(tout);
24
30
  } catch(err: any){
25
- log?.(`${desc} failed: ` + JSON.stringify(err));
31
+ opts?.log?.(`${desc} failed: ` + JSON.stringify(err));
26
32
  setTimeout(() => {
27
33
  throw err;
28
34
  }, 1000)
@@ -364,7 +370,7 @@ export default async function isomorphic(db: Required<DBHandlerServer> | Require
364
370
  await db.various.update!({ id: 99 }, { name: "zz3zz1" });
365
371
  await db.various.update!({ id: 99 }, { name: "zz3zz2" });
366
372
  await db.various.update!({ id: 99 }, { name: "zz3zz3" });
367
- });
373
+ }, { timeout: 4000 });
368
374
 
369
375
  await tryRunP("subscribeOne with throttle", async (resolve, reject) => {
370
376
  await db.various.insert!({ id: 99 });
@@ -382,7 +388,7 @@ export default async function isomorphic(db: Required<DBHandlerServer> | Require
382
388
  });
383
389
  await db.various.update!({ id: 99 }, { name: "zz3zz1" });
384
390
  await db.various.update!({ id: 99 }, { name: "zz3zz2" });
385
- });
391
+ }, { timeout: 4000 });
386
392
 
387
393
  await tryRun("JSON filtering", async () => {
388
394
  const res = await db.various.count!({ "jsn->a->>b": '3' });
@@ -674,7 +680,7 @@ export default async function isomorphic(db: Required<DBHandlerServer> | Require
674
680
  const json = { a: true, arr: "2", arr1: 3, arr2: [1], arrStr: ["1123.string"] }
675
681
  const fo = await db.tjson.insert!({ colOneOf: "a", json }, { returning: "*"});
676
682
  // assert.deepStrictEqual(fo.json, json);
677
- await db.tjson.insert!({ colOneOf: "a", json: {...json, o: { o1: 2, o2: true } } })
683
+ await db.tjson.insert!({ colOneOf: "a", json: {...json, o: { o1: 2 } } })
678
684
  try {
679
685
  await db.tjson.insert!({ colOneOf: "a", json: { a: true, arr: "22"} });
680
686
  throw "Should have failed"
@@ -687,70 +693,71 @@ export default async function isomorphic(db: Required<DBHandlerServer> | Require
687
693
 
688
694
  await tryRun("jsonb JSON Schema validation", async () => {
689
695
  const cols = await db.tjson.getColumns!();
696
+ const jsonColSchema = cols.find(c => c.name === "json")?.jsonSchema;
697
+ // console.trace(JSON.stringify(jsonColSchema, null, 2))
690
698
  assert.deepEqual(
691
- cols.find(c => c.name === "json")?.jsonSchema,
699
+ jsonColSchema,
692
700
  {
693
701
  $id: 'tjson.json',
694
702
  $schema: 'https://json-schema.org/draft/2020-12/schema',
695
- title: 'json',
696
- required: true,
703
+ // title: 'json',
697
704
  type: 'object',
705
+ required: [ 'a', 'arr', 'arr1', 'arr2' ],
698
706
  properties: {
699
- a: { type: 'boolean', required: true },
707
+ a: { type: 'boolean' },
700
708
  arr: {
701
- type: 'string', enum: [ '1', '2', '3' ],
702
- required: true
709
+ type: 'string', enum: [ '1', '2', '3' ]
703
710
  },
704
711
  arr1: {
705
- type: 'number', enum: [ 1, 2, 3 ],
706
- required: true
712
+ type: 'number', enum: [ 1, 2, 3 ]
707
713
  },
708
- arr2: { type: 'array', items: { type: 'integer' }, required: true },
714
+ arr2: { type: 'array', items: { type: 'integer' } },
709
715
  arrStr: {
710
716
  type: "object",
711
717
  oneOf: [
712
718
  { type: 'array', items: { type: 'string' } },
713
719
  { type: 'null' }
714
- ],
715
- required: false
720
+ ]
716
721
  },
717
722
  o: {
718
723
  type: "object",
719
724
  oneOf: [
720
- { type: "object", properties: {o1: { type: 'integer', required: true } } },
721
- { type: "object", properties: {o2: { type: 'boolean', required: true } } },
725
+ { type: "object", required: ["o1"], properties: {o1: { type: 'integer' } } },
726
+ { type: "object", required: ["o2"], properties: {o2: { type: 'boolean' } } },
722
727
  { type: 'null' }
723
- ],
724
- required: false
728
+ ]
725
729
  }
726
730
  }
727
731
  }
728
732
  );
729
-
733
+ const statusColJSONSchema = cols.find(c => c.name === "status")?.jsonSchema;
734
+ // console.trace(JSON.stringify(statusColJSONSchema, null, 2));
730
735
  assert.deepEqual(
731
- cols.find(c => c.name === "status")?.jsonSchema,
736
+ statusColJSONSchema,
732
737
  {
733
738
  $id: 'tjson.status',
734
739
  $schema: 'https://json-schema.org/draft/2020-12/schema',
735
740
  type: "object",
736
741
  oneOf: [
737
- { type: "object", properties: { ok: { required: true, type: 'string' } } },
738
- { type: "object", properties: { err: { required: true, type: 'string' } } },
742
+ { type: "object", required: ["ok"], properties: { ok: { type: 'string' } } },
743
+ { type: "object", required: ["err"], properties: { err: { type: 'string' } } },
739
744
  {
740
- type: "object", properties: {
745
+ type: "object",
746
+ required: ["loading"],
747
+ properties: {
741
748
  loading: {
749
+ required: ["loaded", "total"],
742
750
  properties: {
743
- loaded: { required: true, type: 'number' },
744
- total: { required: true, type: 'number'}
745
- },
746
- required: true,
751
+ loaded: { type: 'number' },
752
+ total: { type: 'number'}
753
+ },
747
754
  type: 'object'
748
755
  }
749
756
  }
750
- }
751
- ],
752
- required: false,
753
- title: 'status'
757
+ },
758
+ { type: "null" }
759
+ ],
760
+ // title: 'status'
754
761
  }
755
762
  );
756
763
  })
@@ -390,7 +390,7 @@ export type DBSchemaGenerated = {
390
390
  | { err: string; }
391
391
  | { loading: { loaded: number; total: number; }; }
392
392
  table_config?: null | {
393
- referencedTables?: { };
393
+ referencedTables?: { name: string; minFiles: number; }[];
394
394
  };
395
395
  };
396
396
  };
@@ -91,7 +91,7 @@ function dd() {
91
91
  email: { sqlDefinition: `TEXT NOT NULL` },
92
92
  status: { enum: ["active", "disabled", "pending"] },
93
93
  preferences: { defaultValue: "{}",
94
- jsonbSchema: {
94
+ jsonbSchemaType: {
95
95
  showIntro: { type: "boolean", optional: true },
96
96
  theme: { enum: ["light", "dark", "auto"], optional: true },
97
97
  others: { type: "any[]" }
@@ -102,13 +102,16 @@ function dd() {
102
102
  tjson: {
103
103
  dropIfExists: true,
104
104
  columns: {
105
- json: { jsonbSchema: {
105
+ json: { jsonbSchemaType: {
106
106
  a: { type: "boolean" },
107
107
  arr: { enum: ["1", "2", "3"] },
108
108
  arr1: { enum: [1, 2, 3] },
109
109
  arr2: { type: "integer[]" },
110
110
  arrStr: { type: "string[]", optional: true, nullable: true },
111
- o: { oneOf: [{ o1: { type: "integer" } }, { o2: { type: "boolean" } }], optional: true, nullable: true },
111
+ o: { optional: true, nullable: true, oneOf: [
112
+ { o1: "integer" },
113
+ { o2: "boolean" }
114
+ ] },
112
115
  }
113
116
  },
114
117
  colOneOf: { enum: ["a", "b", "c"] },
@@ -140,10 +143,8 @@ function dd() {
140
143
  ]
141
144
  }
142
145
  },
143
- table_config: {
144
- nullable: true,
145
- jsonbSchema: {
146
- referencedTables: { type: {}, optional: true },
146
+ table_config: { nullable: true, jsonbSchemaType: {
147
+ referencedTables: { optional: true, arrayOf: { name: "string", minFiles: "number" } },
147
148
  }
148
149
  }
149
150
  }
@@ -112,7 +112,7 @@ function dd(){
112
112
  email: { sqlDefinition: `TEXT NOT NULL` },
113
113
  status: { enum: ["active", "disabled", "pending"] },
114
114
  preferences: { defaultValue: "{}",
115
- jsonbSchema: {
115
+ jsonbSchemaType: {
116
116
  showIntro: { type: "boolean", optional: true },
117
117
  theme: { enum: ["light", "dark", "auto"], optional: true },
118
118
  others: { type: "any[]" }
@@ -123,13 +123,16 @@ function dd(){
123
123
  tjson: {
124
124
  dropIfExists: true,
125
125
  columns: {
126
- json: { jsonbSchema: {
126
+ json: { jsonbSchemaType: {
127
127
  a: { type: "boolean" },
128
128
  arr: { enum: ["1", "2", "3"] },
129
129
  arr1: { enum: [1, 2, 3] },
130
130
  arr2: { type: "integer[]" },
131
131
  arrStr: { type: "string[]", optional: true, nullable: true },
132
- o: { oneOf: [{ o1: { type: "integer" } }, { o2: { type: "boolean" } }], optional: true, nullable: true },
132
+ o: { optional: true, nullable: true, oneOf: [
133
+ { o1: "integer" },
134
+ { o2: "boolean" }
135
+ ] },
133
136
  }
134
137
  },
135
138
  colOneOf: { enum: ["a", "b", "c"] },
@@ -161,11 +164,10 @@ function dd(){
161
164
  ]
162
165
  }
163
166
  },
164
- table_config: {
165
- nullable: true,
166
- jsonbSchema: {
167
- referencedTables: { type: {}, optional: true },
168
- }}
167
+ table_config: { nullable: true, jsonbSchemaType: {
168
+ referencedTables: { optional: true, arrayOf: { name: "string", minFiles: "number" } },
169
+ }
170
+ }
169
171
  }
170
172
  },
171
173
  lookup_col1: {