remult 0.21.1 → 0.22.0

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 (451) hide show
  1. package/README.md +47 -46
  2. package/SseSubscriptionServer.js +9 -9
  3. package/ably.js +1 -1
  4. package/esm/SseSubscriptionServer.js +11 -11
  5. package/esm/ably.js +2 -2
  6. package/esm/angular/interfaces/index.d.ts +1 -0
  7. package/esm/angular/interfaces/index.js +1 -0
  8. package/esm/angular/interfaces/src/column-collection.d.ts +70 -0
  9. package/esm/angular/interfaces/src/column-collection.js +341 -0
  10. package/esm/angular/interfaces/src/data-area-settings.d.ts +15 -0
  11. package/esm/angular/interfaces/src/data-area-settings.js +35 -0
  12. package/esm/angular/interfaces/src/data-control-interfaces.d.ts +36 -0
  13. package/esm/angular/interfaces/src/data-control-interfaces.js +57 -0
  14. package/esm/angular/interfaces/src/dataList.d.ts +13 -0
  15. package/esm/angular/interfaces/src/dataList.js +42 -0
  16. package/esm/angular/interfaces/src/filter-helper.d.ts +13 -0
  17. package/esm/angular/interfaces/src/filter-helper.js +59 -0
  18. package/esm/angular/interfaces/src/grid-settings.d.ts +145 -0
  19. package/esm/angular/interfaces/src/grid-settings.js +387 -0
  20. package/esm/angular/interfaces/src/public_api.d.ts +4 -0
  21. package/esm/angular/interfaces/src/public_api.js +4 -0
  22. package/esm/angular/src/angular/RemultAngularPluginsService.d.ts +4 -0
  23. package/esm/angular/src/angular/RemultAngularPluginsService.js +3 -0
  24. package/esm/angular/src/angular/data-control/data-control2.component.d.ts +49 -0
  25. package/esm/angular/src/angular/data-control/data-control2.component.js +138 -0
  26. package/esm/core/SseSubscriptionServer.d.ts +33 -0
  27. package/esm/core/SseSubscriptionServer.js +107 -0
  28. package/esm/core/assign.d.ts +1 -0
  29. package/esm/core/assign.js +5 -0
  30. package/esm/core/classType.d.ts +3 -0
  31. package/esm/core/classType.js +1 -0
  32. package/esm/core/index.d.ts +27 -0
  33. package/esm/core/index.js +25 -0
  34. package/esm/core/inputTypes.d.ts +9 -0
  35. package/esm/core/inputTypes.js +9 -0
  36. package/esm/core/live-query/data-provider-live-query-storage.d.ts +22 -0
  37. package/esm/core/live-query/data-provider-live-query-storage.js +71 -0
  38. package/esm/core/postgres/index.d.ts +2 -0
  39. package/esm/core/postgres/index.js +2 -0
  40. package/esm/core/postgres/postgres-data-provider.d.ts +36 -0
  41. package/esm/core/postgres/postgres-data-provider.js +120 -0
  42. package/esm/core/postgres/schema-builder.d.ts +17 -0
  43. package/esm/core/postgres/schema-builder.js +153 -0
  44. package/esm/core/remult-fresh.d.ts +17 -0
  45. package/esm/core/remult-fresh.js +29 -0
  46. package/esm/core/remult-knex/index.d.ts +30 -0
  47. package/esm/core/remult-knex/index.js +446 -0
  48. package/esm/core/remult-mongo.d.ts +24 -0
  49. package/esm/core/remult-mongo.js +254 -0
  50. package/esm/core/server/JsonEntityFileStorage.d.ts +10 -0
  51. package/esm/core/server/JsonEntityFileStorage.js +25 -0
  52. package/esm/core/server/core.d.ts +4 -0
  53. package/esm/core/server/core.js +4 -0
  54. package/esm/core/server/expressBridge.d.ts +182 -0
  55. package/esm/core/server/expressBridge.js +938 -0
  56. package/esm/core/server/index.d.ts +6 -0
  57. package/esm/core/server/index.js +9 -0
  58. package/esm/core/server/initAsyncHooks.d.ts +1 -0
  59. package/esm/core/server/initAsyncHooks.js +9 -0
  60. package/esm/core/server/initDataProvider.d.ts +2 -0
  61. package/esm/core/server/initDataProvider.js +14 -0
  62. package/esm/core/src/__EntityValueProvider.d.ts +11 -0
  63. package/esm/core/src/__EntityValueProvider.js +1 -0
  64. package/esm/core/src/__RowsOfDataForTesting.d.ts +3 -0
  65. package/esm/core/src/__RowsOfDataForTesting.js +1 -0
  66. package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +6 -0
  67. package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.js +147 -0
  68. package/esm/core/src/backend-tests/my-test.backend-spec.d.ts +1 -0
  69. package/esm/core/src/backend-tests/my-test.backend-spec.js +197 -0
  70. package/esm/core/src/backend-tests/test-http-server.backend-spec.d.ts +1 -0
  71. package/esm/core/src/backend-tests/test-http-server.backend-spec.js +167 -0
  72. package/esm/core/src/buildRestDataProvider.d.ts +31 -0
  73. package/esm/core/src/buildRestDataProvider.js +113 -0
  74. package/esm/core/src/column-interfaces.d.ts +154 -0
  75. package/esm/core/src/column-interfaces.js +7 -0
  76. package/esm/core/src/column.d.ts +58 -0
  77. package/esm/core/src/column.js +174 -0
  78. package/esm/core/src/context.d.ts +134 -0
  79. package/esm/core/src/context.js +286 -0
  80. package/esm/core/src/data-api.d.ts +39 -0
  81. package/esm/core/src/data-api.js +279 -0
  82. package/esm/core/src/data-interfaces.d.ts +41 -0
  83. package/esm/core/src/data-interfaces.js +12 -0
  84. package/esm/core/src/data-providers/array-entity-data-provider.d.ts +22 -0
  85. package/esm/core/src/data-providers/array-entity-data-provider.js +252 -0
  86. package/esm/core/src/data-providers/in-memory-database.d.ts +9 -0
  87. package/esm/core/src/data-providers/in-memory-database.js +14 -0
  88. package/esm/core/src/data-providers/json-data-provider.d.ts +12 -0
  89. package/esm/core/src/data-providers/json-data-provider.js +55 -0
  90. package/esm/core/src/data-providers/rest-data-provider.d.ts +49 -0
  91. package/esm/core/src/data-providers/rest-data-provider.js +256 -0
  92. package/esm/core/src/data-providers/sql-database.d.ts +33 -0
  93. package/esm/core/src/data-providers/sql-database.js +384 -0
  94. package/esm/core/src/data-providers/web-sql-data-provider.d.ts +24 -0
  95. package/esm/core/src/data-providers/web-sql-data-provider.js +143 -0
  96. package/esm/core/src/entity.d.ts +91 -0
  97. package/esm/core/src/entity.js +1 -0
  98. package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.d.ts +50 -0
  99. package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.js +150 -0
  100. package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.d.ts +1 -0
  101. package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.js +1 -0
  102. package/esm/core/src/filter/filter-interfaces.d.ts +85 -0
  103. package/esm/core/src/filter/filter-interfaces.js +477 -0
  104. package/esm/core/src/live-query/LiveQueryClient.d.ts +20 -0
  105. package/esm/core/src/live-query/LiveQueryClient.js +188 -0
  106. package/esm/core/src/live-query/SseSubscriptionClient.d.ts +5 -0
  107. package/esm/core/src/live-query/SseSubscriptionClient.js +86 -0
  108. package/esm/core/src/live-query/SubscriptionChannel.d.ts +72 -0
  109. package/esm/core/src/live-query/SubscriptionChannel.js +123 -0
  110. package/esm/core/src/live-query/SubscriptionServer.d.ts +53 -0
  111. package/esm/core/src/live-query/SubscriptionServer.js +111 -0
  112. package/esm/core/src/live-query/live-query-tests.spec.d.ts +6 -0
  113. package/esm/core/src/live-query/live-query-tests.spec.js +952 -0
  114. package/esm/core/src/remult-proxy.d.ts +35 -0
  115. package/esm/core/src/remult-proxy.js +113 -0
  116. package/esm/core/src/remult3/DecoratorReplacer.d.ts +10 -0
  117. package/esm/core/src/remult3/DecoratorReplacer.js +20 -0
  118. package/esm/core/src/remult3/RepositoryImplementation.d.ts +355 -0
  119. package/esm/core/src/remult3/RepositoryImplementation.js +2109 -0
  120. package/esm/core/src/remult3/index.d.ts +2 -0
  121. package/esm/core/src/remult3/index.js +2 -0
  122. package/esm/core/src/remult3/remult3.d.ts +395 -0
  123. package/esm/core/src/remult3/remult3.js +2 -0
  124. package/esm/core/src/server-action.d.ts +81 -0
  125. package/esm/core/src/server-action.js +394 -0
  126. package/esm/core/src/shared-tests/db-tests-setup.d.ts +32 -0
  127. package/esm/core/src/shared-tests/db-tests-setup.js +78 -0
  128. package/esm/core/src/shared-tests/db-tests.db-tests.d.ts +25 -0
  129. package/esm/core/src/shared-tests/db-tests.db-tests.js +810 -0
  130. package/esm/core/src/shared-tests/deleteAll.d.ts +2 -0
  131. package/esm/core/src/shared-tests/deleteAll.js +4 -0
  132. package/esm/core/src/shared-tests/entityWithValidations.d.ts +14 -0
  133. package/esm/core/src/shared-tests/entityWithValidations.js +43 -0
  134. package/esm/core/src/shared-tests/index.d.ts +4 -0
  135. package/esm/core/src/shared-tests/index.js +4 -0
  136. package/esm/core/src/shared-tests/test-custom-id-column.spec.d.ts +1 -0
  137. package/esm/core/src/shared-tests/test-custom-id-column.spec.js +67 -0
  138. package/esm/core/src/shared-tests/test-special-value.spec.d.ts +10 -0
  139. package/esm/core/src/shared-tests/test-special-value.spec.js +73 -0
  140. package/esm/core/src/shared-tests/test-update-with-null.spec.d.ts +1 -0
  141. package/esm/core/src/shared-tests/test-update-with-null.spec.js +31 -0
  142. package/esm/core/src/sort.d.ts +16 -0
  143. package/esm/core/src/sort.js +103 -0
  144. package/esm/core/src/sql-command.d.ts +19 -0
  145. package/esm/core/src/sql-command.js +1 -0
  146. package/esm/core/src/test.d.ts +3 -0
  147. package/esm/core/src/test.js +12 -0
  148. package/esm/core/src/tests/Done.d.ts +5 -0
  149. package/esm/core/src/tests/Done.js +9 -0
  150. package/esm/core/src/tests/RowProvider.spec.d.ts +16 -0
  151. package/esm/core/src/tests/RowProvider.spec.js +631 -0
  152. package/esm/core/src/tests/TestDataApiResponse.d.ts +10 -0
  153. package/esm/core/src/tests/TestDataApiResponse.js +22 -0
  154. package/esm/core/src/tests/basicRowFunctionality.spec.d.ts +8 -0
  155. package/esm/core/src/tests/basicRowFunctionality.spec.js +2103 -0
  156. package/esm/core/src/tests/c.d.ts +8 -0
  157. package/esm/core/src/tests/c.js +13 -0
  158. package/esm/core/src/tests/createData.d.ts +7 -0
  159. package/esm/core/src/tests/createData.js +22 -0
  160. package/esm/core/src/tests/d.d.ts +6 -0
  161. package/esm/core/src/tests/d.js +11 -0
  162. package/esm/core/src/tests/dWithPrefilter.d.ts +7 -0
  163. package/esm/core/src/tests/dWithPrefilter.js +18 -0
  164. package/esm/core/src/tests/entityForCustomFilter.d.ts +16 -0
  165. package/esm/core/src/tests/entityForCustomFilter.js +33 -0
  166. package/esm/core/src/tests/entityWithValidationsOnColumn.d.ts +5 -0
  167. package/esm/core/src/tests/entityWithValidationsOnColumn.js +13 -0
  168. package/esm/core/src/tests/frontend-database-tests-setup.spec.d.ts +4 -0
  169. package/esm/core/src/tests/frontend-database-tests-setup.spec.js +37 -0
  170. package/esm/core/src/tests/h.d.ts +6 -0
  171. package/esm/core/src/tests/h.js +24 -0
  172. package/esm/core/src/tests/remult-3-basic-tests.spec.d.ts +1 -0
  173. package/esm/core/src/tests/remult-3-basic-tests.spec.js +236 -0
  174. package/esm/core/src/tests/remult-3-entities.d.ts +23 -0
  175. package/esm/core/src/tests/remult-3-entities.js +39 -0
  176. package/esm/core/src/tests/tasks.d.ts +6 -0
  177. package/esm/core/src/tests/tasks.js +10 -0
  178. package/esm/core/src/tests/test-context-as-storage.spec.d.ts +0 -0
  179. package/esm/core/src/tests/test-context-as-storage.spec.js +1 -0
  180. package/esm/core/src/tests/test-data-api/predefined-filter.spec.d.ts +1 -0
  181. package/esm/core/src/tests/test-data-api/predefined-filter.spec.js +389 -0
  182. package/esm/core/src/tests/test-data-api/test-put-with-validation.spec.d.ts +5 -0
  183. package/esm/core/src/tests/test-data-api/test-put-with-validation.spec.js +152 -0
  184. package/esm/core/src/tests/test-decorator-precedence.spec.d.ts +1 -0
  185. package/esm/core/src/tests/test-decorator-precedence.spec.js +38 -0
  186. package/esm/core/src/tests/test-default-value.spec.d.ts +1 -0
  187. package/esm/core/src/tests/test-default-value.spec.js +33 -0
  188. package/esm/core/src/tests/test-entity-inheritance.spec.d.ts +14 -0
  189. package/esm/core/src/tests/test-entity-inheritance.spec.js +82 -0
  190. package/esm/core/src/tests/test-exceptions.spec.d.ts +1 -0
  191. package/esm/core/src/tests/test-exceptions.spec.js +375 -0
  192. package/esm/core/src/tests/test-json.spec.d.ts +1 -0
  193. package/esm/core/src/tests/test-json.spec.js +115 -0
  194. package/esm/core/src/tests/test-many-to-one-relation-in-entity.spec.d.ts +9 -0
  195. package/esm/core/src/tests/test-many-to-one-relation-in-entity.spec.js +809 -0
  196. package/esm/core/src/tests/test-non-active-record.spec.d.ts +1 -0
  197. package/esm/core/src/tests/test-non-active-record.spec.js +66 -0
  198. package/esm/core/src/tests/test-object-column.spec.d.ts +1 -0
  199. package/esm/core/src/tests/test-object-column.spec.js +189 -0
  200. package/esm/core/src/tests/test-paged-foreach.spec.d.ts +1 -0
  201. package/esm/core/src/tests/test-paged-foreach.spec.js +328 -0
  202. package/esm/core/src/tests/test-remult-angular.spec.d.ts +1 -0
  203. package/esm/core/src/tests/test-remult-angular.spec.js +23 -0
  204. package/esm/core/src/tests/test-server-controller.spec.d.ts +7 -0
  205. package/esm/core/src/tests/test-server-controller.spec.js +489 -0
  206. package/esm/core/src/tests/test-server-expressions.spec.d.ts +1 -0
  207. package/esm/core/src/tests/test-server-expressions.spec.js +178 -0
  208. package/esm/core/src/tests/test-server-method-on-entity.spec.d.ts +1 -0
  209. package/esm/core/src/tests/test-server-method-on-entity.spec.js +306 -0
  210. package/esm/core/src/tests/test-sql-expression.spec.d.ts +5 -0
  211. package/esm/core/src/tests/test-sql-expression.spec.js +205 -0
  212. package/esm/core/src/tests/test-sql.spec.d.ts +1 -0
  213. package/esm/core/src/tests/test-sql.spec.js +170 -0
  214. package/esm/core/src/tests/test-subscribe.spec.d.ts +1 -0
  215. package/esm/core/src/tests/test-subscribe.spec.js +135 -0
  216. package/esm/core/src/tests/test-type-recovery.spec.d.ts +1 -0
  217. package/esm/core/src/tests/test-type-recovery.spec.js +49 -0
  218. package/esm/core/src/tests/test-where-api.spec.d.ts +1 -0
  219. package/esm/core/src/tests/test-where-api.spec.js +434 -0
  220. package/esm/core/src/tests/testHelper.spec.d.ts +36 -0
  221. package/esm/core/src/tests/testHelper.spec.js +226 -0
  222. package/esm/core/src/tests/testModel/models.d.ts +16 -0
  223. package/esm/core/src/tests/testModel/models.js +25 -0
  224. package/esm/core/src/validators.d.ts +14 -0
  225. package/esm/core/src/validators.js +33 -0
  226. package/esm/core/src/valueConverters.d.ts +13 -0
  227. package/esm/core/src/valueConverters.js +197 -0
  228. package/esm/core/urlBuilder.d.ts +6 -0
  229. package/esm/core/urlBuilder.js +20 -0
  230. package/esm/graphql.js +194 -73
  231. package/esm/index.d.ts +10 -10
  232. package/esm/index.js +8 -8
  233. package/esm/inputTypes.js +1 -1
  234. package/esm/live-query/data-provider-live-query-storage.d.ts +3 -3
  235. package/esm/live-query/data-provider-live-query-storage.js +12 -9
  236. package/esm/myLog.js +2 -2
  237. package/esm/postgres/postgres-data-provider.d.ts +2 -2
  238. package/esm/postgres/postgres-data-provider.js +20 -14
  239. package/esm/postgres/schema-builder.d.ts +1 -1
  240. package/esm/postgres/schema-builder.js +28 -21
  241. package/esm/remult-express.js +2 -2
  242. package/esm/remult-fastify.js +9 -7
  243. package/esm/remult-fresh.d.ts +1 -1
  244. package/esm/remult-fresh.js +5 -8
  245. package/esm/remult-knex/index.d.ts +4 -4
  246. package/esm/remult-knex/index.js +75 -59
  247. package/esm/remult-mongo.js +36 -27
  248. package/esm/remult-next.d.ts +3 -3
  249. package/esm/remult-next.js +17 -11
  250. package/esm/remult-sveltekit.js +10 -10
  251. package/esm/server/JsonEntityFileStorage.js +3 -1
  252. package/esm/server/core.d.ts +2 -2
  253. package/esm/server/core.js +2 -2
  254. package/esm/server/expressBridge.d.ts +3 -12
  255. package/esm/server/expressBridge.js +265 -278
  256. package/esm/server/index.d.ts +2 -2
  257. package/esm/server/index.js +5 -2
  258. package/esm/server/initAsyncHooks.js +1 -1
  259. package/esm/server/initDataProvider.js +1 -1
  260. package/esm/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +1 -1
  261. package/esm/src/backend-tests/backend-database-test-setup.backend-spec.js +47 -38
  262. package/esm/src/buildRestDataProvider.d.ts +1 -1
  263. package/esm/src/buildRestDataProvider.js +21 -13
  264. package/esm/src/column-interfaces.d.ts +9 -9
  265. package/esm/src/column.d.ts +4 -0
  266. package/esm/src/column.js +23 -11
  267. package/esm/src/context.d.ts +20 -8
  268. package/esm/src/context.js +65 -24
  269. package/esm/src/data-api.d.ts +0 -1
  270. package/esm/src/data-api.js +38 -37
  271. package/esm/src/data-interfaces.d.ts +1 -1
  272. package/esm/src/data-interfaces.js +1 -1
  273. package/esm/src/data-providers/array-entity-data-provider.js +9 -9
  274. package/esm/src/data-providers/in-memory-database.d.ts +1 -1
  275. package/esm/src/data-providers/in-memory-database.js +3 -1
  276. package/esm/src/data-providers/json-data-provider.js +8 -8
  277. package/esm/src/data-providers/rest-data-provider.d.ts +1 -1
  278. package/esm/src/data-providers/rest-data-provider.js +52 -36
  279. package/esm/src/data-providers/sql-database.d.ts +5 -5
  280. package/esm/src/data-providers/sql-database.js +53 -36
  281. package/esm/src/data-providers/web-sql-data-provider.d.ts +4 -4
  282. package/esm/src/data-providers/web-sql-data-provider.js +15 -13
  283. package/esm/src/entity.d.ts +24 -24
  284. package/esm/src/filter/filter-consumer-bridge-to-sql-request.d.ts +4 -4
  285. package/esm/src/filter/filter-consumer-bridge-to-sql-request.js +35 -20
  286. package/esm/src/filter/filter-interfaces.d.ts +7 -7
  287. package/esm/src/filter/filter-interfaces.js +108 -88
  288. package/esm/src/live-query/LiveQueryClient.js +37 -29
  289. package/esm/src/live-query/SseSubscriptionClient.d.ts +1 -1
  290. package/esm/src/live-query/SseSubscriptionClient.js +14 -14
  291. package/esm/src/live-query/SubscriptionChannel.d.ts +3 -3
  292. package/esm/src/live-query/SubscriptionChannel.js +27 -25
  293. package/esm/src/live-query/SubscriptionServer.js +24 -20
  294. package/esm/src/remult-proxy.d.ts +1 -1
  295. package/esm/src/remult-proxy.js +87 -29
  296. package/esm/src/remult3/DecoratorReplacer.d.ts +2 -2
  297. package/esm/src/remult3/RepositoryImplementation.d.ts +51 -41
  298. package/esm/src/remult3/RepositoryImplementation.js +336 -206
  299. package/esm/src/remult3/remult3.d.ts +56 -51
  300. package/esm/src/remult3/remult3.js +0 -1
  301. package/esm/src/server-action.d.ts +12 -5
  302. package/esm/src/server-action.js +79 -53
  303. package/esm/src/shared-tests/db-tests-setup.d.ts +8 -8
  304. package/esm/src/shared-tests/db-tests-setup.js +10 -10
  305. package/esm/src/shared-tests/db-tests.db-tests.d.ts +1 -1
  306. package/esm/src/shared-tests/db-tests.db-tests.js +279 -177
  307. package/esm/src/shared-tests/deleteAll.d.ts +1 -1
  308. package/esm/src/shared-tests/deleteAll.js +1 -1
  309. package/esm/src/shared-tests/entityWithValidations.js +1 -1
  310. package/esm/src/shared-tests/test-custom-id-column.spec.js +4 -4
  311. package/esm/src/shared-tests/test-special-value.spec.js +12 -12
  312. package/esm/src/shared-tests/test-update-with-null.spec.js +10 -6
  313. package/esm/src/sort.d.ts +2 -2
  314. package/esm/src/sort.js +12 -10
  315. package/esm/src/tests/TestDataApiResponse.d.ts +1 -1
  316. package/esm/src/tests/TestDataApiResponse.js +3 -4
  317. package/esm/src/tests/createData.js +2 -2
  318. package/esm/src/tests/d.js +1 -1
  319. package/esm/src/tests/dWithPrefilter.js +1 -1
  320. package/esm/src/tests/entityForCustomFilter.d.ts +4 -4
  321. package/esm/src/tests/entityForCustomFilter.js +12 -4
  322. package/esm/src/tests/entityWithValidationsOnColumn.js +1 -1
  323. package/esm/src/tests/frontend-database-tests-setup.spec.d.ts +1 -1
  324. package/esm/src/tests/frontend-database-tests-setup.spec.js +14 -14
  325. package/esm/src/tests/h.js +4 -4
  326. package/esm/src/tests/remult-3-entities.d.ts +2 -2
  327. package/esm/src/tests/remult-3-entities.js +6 -6
  328. package/esm/src/tests/testHelper.spec.d.ts +7 -7
  329. package/esm/src/tests/testHelper.spec.js +50 -39
  330. package/esm/src/tests/testModel/models.js +4 -4
  331. package/esm/src/validators.d.ts +1 -1
  332. package/esm/src/validators.js +10 -7
  333. package/esm/src/valueConverters.d.ts +1 -1
  334. package/esm/src/valueConverters.js +68 -55
  335. package/esm/test-servers/shared/Task.d.ts +9 -0
  336. package/esm/test-servers/shared/Task.js +32 -0
  337. package/esm/test.d.ts +5 -0
  338. package/esm/test.js +6 -0
  339. package/graphql.js +157 -45
  340. package/index.d.ts +10 -10
  341. package/inputTypes.js +1 -1
  342. package/live-query/data-provider-live-query-storage.d.ts +3 -3
  343. package/live-query/data-provider-live-query-storage.js +7 -4
  344. package/myLog.js +2 -2
  345. package/package.json +2 -2
  346. package/postgres/postgres-data-provider.d.ts +2 -2
  347. package/postgres/postgres-data-provider.js +21 -16
  348. package/postgres/schema-builder.d.ts +1 -1
  349. package/postgres/schema-builder.js +22 -15
  350. package/remult-express.js +1 -1
  351. package/remult-fastify.js +7 -7
  352. package/remult-fresh.d.ts +1 -1
  353. package/remult-fresh.js +1 -4
  354. package/remult-knex/index.d.ts +4 -4
  355. package/remult-knex/index.js +50 -35
  356. package/remult-mongo.js +33 -23
  357. package/remult-next.d.ts +3 -3
  358. package/remult-next.js +15 -11
  359. package/remult-sveltekit.js +14 -15
  360. package/server/core.d.ts +2 -2
  361. package/server/expressBridge.d.ts +3 -12
  362. package/server/expressBridge.js +278 -279
  363. package/server/index.d.ts +2 -2
  364. package/server/index.js +5 -2
  365. package/server/initAsyncHooks.js +2 -2
  366. package/server/initDataProvider.js +1 -1
  367. package/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +1 -1
  368. package/src/backend-tests/backend-database-test-setup.backend-spec.js +40 -31
  369. package/src/buildRestDataProvider.d.ts +1 -1
  370. package/src/buildRestDataProvider.js +18 -10
  371. package/src/column-interfaces.d.ts +9 -9
  372. package/src/column.d.ts +4 -0
  373. package/src/column.js +20 -8
  374. package/src/context.d.ts +20 -8
  375. package/src/context.js +61 -18
  376. package/src/data-api.d.ts +0 -1
  377. package/src/data-api.js +40 -43
  378. package/src/data-interfaces.d.ts +1 -1
  379. package/src/data-providers/array-entity-data-provider.js +2 -2
  380. package/src/data-providers/in-memory-database.d.ts +1 -1
  381. package/src/data-providers/in-memory-database.js +3 -1
  382. package/src/data-providers/json-data-provider.js +33 -15
  383. package/src/data-providers/rest-data-provider.d.ts +1 -1
  384. package/src/data-providers/rest-data-provider.js +47 -32
  385. package/src/data-providers/sql-database.d.ts +5 -5
  386. package/src/data-providers/sql-database.js +41 -24
  387. package/src/data-providers/web-sql-data-provider.d.ts +4 -4
  388. package/src/data-providers/web-sql-data-provider.js +10 -8
  389. package/src/entity.d.ts +24 -24
  390. package/src/filter/filter-consumer-bridge-to-sql-request.d.ts +4 -4
  391. package/src/filter/filter-consumer-bridge-to-sql-request.js +34 -17
  392. package/src/filter/filter-interfaces.d.ts +7 -7
  393. package/src/filter/filter-interfaces.js +73 -47
  394. package/src/live-query/LiveQueryClient.js +35 -25
  395. package/src/live-query/SseSubscriptionClient.d.ts +1 -1
  396. package/src/live-query/SseSubscriptionClient.js +80 -76
  397. package/src/live-query/SubscriptionChannel.d.ts +3 -3
  398. package/src/live-query/SubscriptionChannel.js +26 -18
  399. package/src/live-query/SubscriptionServer.js +23 -17
  400. package/src/remult-proxy.d.ts +1 -1
  401. package/src/remult-proxy.js +84 -35
  402. package/src/remult3/DecoratorReplacer.d.ts +2 -2
  403. package/src/remult3/RepositoryImplementation.d.ts +51 -41
  404. package/src/remult3/RepositoryImplementation.js +402 -257
  405. package/src/remult3/remult3.d.ts +56 -51
  406. package/src/remult3/remult3.js +0 -1
  407. package/src/server-action.d.ts +12 -5
  408. package/src/server-action.js +78 -48
  409. package/src/shared-tests/db-tests-setup.d.ts +8 -8
  410. package/src/shared-tests/db-tests-setup.js +6 -6
  411. package/src/shared-tests/db-tests.db-tests.d.ts +1 -1
  412. package/src/shared-tests/db-tests.db-tests.js +350 -153
  413. package/src/shared-tests/deleteAll.d.ts +1 -1
  414. package/src/shared-tests/entityWithValidations.js +1 -1
  415. package/src/shared-tests/test-custom-id-column.spec.js +4 -4
  416. package/src/shared-tests/test-special-value.spec.js +9 -9
  417. package/src/shared-tests/test-update-with-null.spec.js +8 -4
  418. package/src/sort.d.ts +2 -2
  419. package/src/sort.js +9 -7
  420. package/src/tests/TestDataApiResponse.d.ts +1 -1
  421. package/src/tests/TestDataApiResponse.js +3 -4
  422. package/src/tests/createData.js +1 -1
  423. package/src/tests/d.js +1 -1
  424. package/src/tests/dWithPrefilter.js +1 -1
  425. package/src/tests/entityForCustomFilter.d.ts +4 -4
  426. package/src/tests/entityForCustomFilter.js +16 -6
  427. package/src/tests/entityWithValidationsOnColumn.js +1 -1
  428. package/src/tests/frontend-database-tests-setup.spec.d.ts +1 -1
  429. package/src/tests/frontend-database-tests-setup.spec.js +8 -8
  430. package/src/tests/h.js +3 -3
  431. package/src/tests/remult-3-entities.d.ts +2 -2
  432. package/src/tests/remult-3-entities.js +8 -4
  433. package/src/tests/testHelper.spec.d.ts +7 -7
  434. package/src/tests/testHelper.spec.js +38 -27
  435. package/src/tests/testModel/models.js +3 -3
  436. package/src/validators.d.ts +1 -1
  437. package/src/validators.js +18 -9
  438. package/src/valueConverters.d.ts +1 -1
  439. package/src/valueConverters.js +38 -21
  440. package/esm/remult-svletekit.d.ts +0 -3
  441. package/esm/remult-svletekit.js +0 -83
  442. package/esm/src/id-entity.d.ts +0 -4
  443. package/esm/src/id-entity.js +0 -8
  444. package/esm/src/remult3/getId.d.ts +0 -2
  445. package/esm/src/remult3/getId.js +0 -7
  446. package/postgres/getEntityTypescriptPostgres.d.ts +0 -1
  447. package/postgres/getEntityTypescriptPostgres.js +0 -125
  448. package/src/id-entity.d.ts +0 -4
  449. package/src/id-entity.js +0 -17
  450. package/src/remult3/getId.d.ts +0 -2
  451. package/src/remult3/getId.js +0 -11
package/src/context.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.doTransaction = exports.EventSource = exports.queryConfig = exports.Allow = exports.setControllerSettings = exports.ClassHelper = exports.classHelpers = exports.allEntities = exports.Remult = exports.isBackend = void 0;
3
+ exports.doTransaction = exports.EventSource = exports.queryConfig = exports.Allow = exports.setControllerSettings = exports.ClassHelper = exports.classHelpers = exports.allEntities = exports.Remult = exports.isBackend = exports.RemultAsyncLocalStorage = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var server_action_1 = require("./server-action");
6
6
  var rest_data_provider_1 = require("./data-providers/rest-data-provider");
@@ -9,8 +9,42 @@ var LiveQueryClient_1 = require("./live-query/LiveQueryClient");
9
9
  var SseSubscriptionClient_1 = require("./live-query/SseSubscriptionClient");
10
10
  var remult_proxy_1 = require("./remult-proxy");
11
11
  var buildRestDataProvider_1 = require("./buildRestDataProvider");
12
+ var RemultAsyncLocalStorage = /** @class */ (function () {
13
+ function RemultAsyncLocalStorage(remultObjectStorage) {
14
+ this.remultObjectStorage = remultObjectStorage;
15
+ }
16
+ RemultAsyncLocalStorage.enable = function () {
17
+ ;
18
+ remult_proxy_1.remult.remultFactory = function () {
19
+ var r = RemultAsyncLocalStorage.instance.getRemult();
20
+ if (r)
21
+ return r;
22
+ else
23
+ throw new Error('remult object was requested outside of a valid context, try running it within initApi or a remult request cycle');
24
+ };
25
+ };
26
+ RemultAsyncLocalStorage.disable = function () {
27
+ ;
28
+ remult_proxy_1.remult.resetFactory();
29
+ };
30
+ RemultAsyncLocalStorage.prototype.run = function (remult, callback) {
31
+ if (this.remultObjectStorage)
32
+ this.remultObjectStorage.run(remult, callback);
33
+ else
34
+ callback();
35
+ };
36
+ RemultAsyncLocalStorage.prototype.getRemult = function () {
37
+ if (!this.remultObjectStorage) {
38
+ throw new Error("can't use static remult in this environment, `async_hooks` were not initialized");
39
+ }
40
+ return this.remultObjectStorage.getStore();
41
+ };
42
+ RemultAsyncLocalStorage.instance = new RemultAsyncLocalStorage(undefined);
43
+ return RemultAsyncLocalStorage;
44
+ }());
45
+ exports.RemultAsyncLocalStorage = RemultAsyncLocalStorage;
12
46
  function isBackend() {
13
- return server_action_1.actionInfo.runningOnServer;
47
+ return server_action_1.actionInfo.runningOnServer || !remult_proxy_1.remult.dataProvider.isProxy;
14
48
  }
15
49
  exports.isBackend = isBackend;
16
50
  var Remult = /** @class */ (function () {
@@ -24,7 +58,7 @@ var Remult = /** @class */ (function () {
24
58
  this.liveQueryPublisher = {
25
59
  itemChanged: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
26
60
  return [2 /*return*/];
27
- }); }); }
61
+ }); }); },
28
62
  };
29
63
  /* @internal*/
30
64
  this.liveQuerySubscriber = new LiveQueryClient_1.LiveQueryClient(function () { return _this.apiClient; }, function () { var _a; return (_a = _this.user) === null || _a === void 0 ? void 0 : _a.id; });
@@ -33,7 +67,7 @@ var Remult = /** @class */ (function () {
33
67
  /** The api client that will be used by `remult` to perform calls to the `api` */
34
68
  this.apiClient = {
35
69
  url: '/api',
36
- subscriptionClient: new SseSubscriptionClient_1.SseSubscriptionClient()
70
+ subscriptionClient: new SseSubscriptionClient_1.SseSubscriptionClient(),
37
71
  };
38
72
  if (provider && provider.getEntityDataProvider) {
39
73
  this.dataProvider = provider;
@@ -42,7 +76,7 @@ var Remult = /** @class */ (function () {
42
76
  if (buildRestDataProvider_1.isExternalHttpProvider(provider)) {
43
77
  this.apiClient.httpClient = provider;
44
78
  }
45
- else if (typeof (provider) === "function")
79
+ else if (typeof provider === 'function')
46
80
  this.apiClient.httpClient = provider;
47
81
  else if (provider) {
48
82
  var apiClient = provider;
@@ -68,10 +102,10 @@ var Remult = /** @class */ (function () {
68
102
  dataProvider = this.dataProvider;
69
103
  var dpCache = this.repCache.get(dataProvider);
70
104
  if (!dpCache)
71
- this.repCache.set(dataProvider, dpCache = new Map());
105
+ this.repCache.set(dataProvider, (dpCache = new Map()));
72
106
  var r = dpCache.get(entity);
73
107
  if (!r) {
74
- dpCache.set(entity, r = new RepositoryImplementation_1.RepositoryImplementation(entity, this, dataProvider));
108
+ dpCache.set(entity, (r = new RepositoryImplementation_1.RepositoryImplementation(entity, this, dataProvider)));
75
109
  }
76
110
  return r;
77
111
  };
@@ -143,7 +177,7 @@ var Remult = /** @class */ (function () {
143
177
  }
144
178
  }
145
179
  }
146
- else if (typeof (allowed) === "function") {
180
+ else if (typeof allowed === 'function') {
147
181
  return allowed(instance, this);
148
182
  }
149
183
  else
@@ -156,28 +190,37 @@ var Remult = /** @class */ (function () {
156
190
  * @param backendMethod - the backend method to call
157
191
  * @param classInstance - the class instance of the backend method, for static backend methods use undefined
158
192
  * @param args - the arguments to send to the backend method
159
- */
193
+ */
160
194
  Remult.prototype.call = function (backendMethod, classInstance) {
161
195
  var args = [];
162
196
  for (var _i = 2; _i < arguments.length; _i++) {
163
197
  args[_i - 2] = arguments[_i];
164
198
  }
165
- var z = (backendMethod[server_action_1.serverActionField]);
199
+ var z = backendMethod[server_action_1.serverActionField];
166
200
  if (!z.doWork)
167
- throw Error("The method received is not a valid backend method");
201
+ throw Error('The method received is not a valid backend method');
168
202
  //@ts-ignore
169
203
  return z.doWork(args, classInstance, this.apiClient.url, buildRestDataProvider_1.buildRestDataProvider(this.apiClient.httpClient));
170
204
  };
171
205
  Remult.prototype.clearAllCache = function () {
172
206
  this.repCache.clear();
173
207
  };
208
+ Remult.run = function (callback, options) {
209
+ var remult = new Remult();
210
+ if (options.dataProvider)
211
+ remult.dataProvider = options.dataProvider;
212
+ var r;
213
+ RemultAsyncLocalStorage.instance.run(remult, function () {
214
+ r = callback();
215
+ });
216
+ return r;
217
+ };
174
218
  /** A helper callback that can be used to debug and trace all find operations. Useful in debugging scenarios */
175
219
  Remult.onFind = function (metadata, options) { };
176
220
  return Remult;
177
221
  }());
178
222
  exports.Remult = Remult;
179
223
  remult_proxy_1.RemultProxy.defaultRemult = new Remult();
180
- ;
181
224
  exports.allEntities = [];
182
225
  exports.classHelpers = new Map();
183
226
  var ClassHelper = /** @class */ (function () {
@@ -192,7 +235,7 @@ function setControllerSettings(target, options) {
192
235
  while (true) {
193
236
  var helper = exports.classHelpers.get(r);
194
237
  if (!helper)
195
- exports.classHelpers.set(r, helper = new ClassHelper());
238
+ exports.classHelpers.set(r, (helper = new ClassHelper()));
196
239
  helper.classes.set(target, options);
197
240
  var p = Object.getPrototypeOf(r.prototype);
198
241
  if (p == null)
@@ -217,13 +260,13 @@ var Allow = /** @class */ (function () {
217
260
  if (args[0].authenticated)
218
261
  return args[0].authenticated();
219
262
  }
220
- return remult_proxy_1.RemultProxy.defaultRemult.authenticated();
263
+ return remult_proxy_1.remult.authenticated();
221
264
  };
222
265
  return Allow;
223
266
  }());
224
267
  exports.Allow = Allow;
225
268
  exports.queryConfig = {
226
- defaultPageSize: 200
269
+ defaultPageSize: 200,
227
270
  };
228
271
  var EventSource = /** @class */ (function () {
229
272
  function EventSource() {
@@ -244,7 +287,7 @@ var EventSource = /** @class */ (function () {
244
287
  }];
245
288
  }
246
289
  });
247
- }); }
290
+ }); },
248
291
  };
249
292
  }
250
293
  EventSource.prototype.fire = function () {
@@ -299,7 +342,7 @@ function doTransaction(remult, what) {
299
342
  return tslib_1.__generator(this, function (_a) {
300
343
  switch (_a.label) {
301
344
  case 0:
302
- remult.dataProvider = (ds);
345
+ remult.dataProvider = ds;
303
346
  remult.liveQueryPublisher = trans;
304
347
  return [4 /*yield*/, what()];
305
348
  case 1:
@@ -334,7 +377,7 @@ var transactionLiveQueryPublisher = /** @class */ (function () {
334
377
  return tslib_1.__generator(this, function (_b) {
335
378
  items = this.transactionItems.get(entityKey);
336
379
  if (!items) {
337
- this.transactionItems.set(entityKey, items = []);
380
+ this.transactionItems.set(entityKey, (items = []));
338
381
  }
339
382
  _loop_1 = function (c) {
340
383
  if (c.oldId !== undefined) {
package/src/data-api.d.ts CHANGED
@@ -36,4 +36,3 @@ export interface DataApiRequest {
36
36
  }
37
37
  export declare function determineSort(sortUrlParm: string, dirUrlParam: string): any;
38
38
  export declare function serializeError(data: ErrorInfo): ErrorInfo<any>;
39
- export declare function getLiveQueryChannel(queryId: string, userId: string): string;
package/src/data-api.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLiveQueryChannel = exports.serializeError = exports.determineSort = exports.DataApi = void 0;
3
+ exports.serializeError = exports.determineSort = exports.DataApi = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var filter_interfaces_1 = require("./filter/filter-interfaces");
6
6
  var context_1 = require("./context");
@@ -13,40 +13,38 @@ var DataApi = /** @class */ (function () {
13
13
  this.remult = remult;
14
14
  }
15
15
  DataApi.prototype.httpGet = function (res, req, serializeContext) {
16
- var _a;
17
- var action = req === null || req === void 0 ? void 0 : req.get("__action");
16
+ var action = req === null || req === void 0 ? void 0 : req.get('__action');
18
17
  if (action === null || action === void 0 ? void 0 : action.startsWith(rest_data_provider_1.liveQueryAction))
19
- return this.liveQuery(res, req, undefined, serializeContext, getLiveQueryChannel(action.substring(rest_data_provider_1.liveQueryAction.length), (_a = this.remult.user) === null || _a === void 0 ? void 0 : _a.id));
18
+ return this.liveQuery(res, req, undefined, serializeContext, action.substring(rest_data_provider_1.liveQueryAction.length));
20
19
  switch (action) {
21
- case "get":
22
- case "count":
20
+ case 'get':
21
+ case 'count':
23
22
  return this.count(res, req, undefined);
24
23
  }
25
24
  return this.getArray(res, req, undefined);
26
25
  };
27
26
  DataApi.prototype.httpPost = function (res, req, body, serializeContext) {
28
- var _a, _b;
29
27
  return tslib_1.__awaiter(this, void 0, void 0, function () {
30
- var action, _c;
31
- return tslib_1.__generator(this, function (_d) {
32
- switch (_d.label) {
28
+ var action, _a;
29
+ return tslib_1.__generator(this, function (_b) {
30
+ switch (_b.label) {
33
31
  case 0:
34
- action = req === null || req === void 0 ? void 0 : req.get("__action");
32
+ action = req === null || req === void 0 ? void 0 : req.get('__action');
35
33
  if (action === null || action === void 0 ? void 0 : action.startsWith(rest_data_provider_1.liveQueryAction))
36
- return [2 /*return*/, this.liveQuery(res, req, undefined, serializeContext, getLiveQueryChannel(action.substring(rest_data_provider_1.liveQueryAction.length), (_a = this.remult.user) === null || _a === void 0 ? void 0 : _a.id))];
37
- _c = action;
38
- switch (_c) {
39
- case "get": return [3 /*break*/, 1];
40
- case "count": return [3 /*break*/, 2];
41
- case "endLiveQuery": return [3 /*break*/, 3];
34
+ return [2 /*return*/, this.liveQuery(res, req, undefined, serializeContext, action.substring(rest_data_provider_1.liveQueryAction.length))];
35
+ _a = action;
36
+ switch (_a) {
37
+ case 'get': return [3 /*break*/, 1];
38
+ case 'count': return [3 /*break*/, 2];
39
+ case 'endLiveQuery': return [3 /*break*/, 3];
42
40
  }
43
41
  return [3 /*break*/, 5];
44
42
  case 1: return [2 /*return*/, this.getArray(res, req, body)];
45
43
  case 2: return [2 /*return*/, this.count(res, req, body)];
46
- case 3: return [4 /*yield*/, this.remult.liveQueryStorage.remove(getLiveQueryChannel(body.id, (_b = this.remult.user) === null || _b === void 0 ? void 0 : _b.id))];
44
+ case 3: return [4 /*yield*/, this.remult.liveQueryStorage.remove(body.id)];
47
45
  case 4:
48
- _d.sent();
49
- res.success("ok");
46
+ _b.sent();
47
+ res.success('ok');
50
48
  return [2 /*return*/];
51
49
  case 5: return [2 /*return*/, this.post(res, body)];
52
50
  }
@@ -93,7 +91,8 @@ var DataApi = /** @class */ (function () {
93
91
  return [4 /*yield*/, this.buildWhere(request, filterBody)];
94
92
  case 2: return [4 /*yield*/, _d.apply(_c, [_f.sent()])];
95
93
  case 3:
96
- _b.apply(_a, [(_e.count = +(_f.sent()), _e)]);
94
+ _b.apply(_a, [(_e.count = +(_f.sent()),
95
+ _e)]);
97
96
  return [3 /*break*/, 5];
98
97
  case 4:
99
98
  err_1 = _f.sent();
@@ -117,16 +116,16 @@ var DataApi = /** @class */ (function () {
117
116
  case 1:
118
117
  _a.where = _b.sent();
119
118
  if (request) {
120
- sort = request.get("_sort");
119
+ sort = request.get('_sort');
121
120
  if (sort != undefined) {
122
121
  dir = request.get('_order');
123
122
  findOptions.orderBy = determineSort(sort, dir);
124
123
  }
125
- limit = +request.get("_limit");
124
+ limit = +request.get('_limit');
126
125
  if (!limit && DataApi.defaultGetLimit)
127
126
  limit = DataApi.defaultGetLimit;
128
127
  findOptions.limit = limit;
129
- findOptions.page = +request.get("_page");
128
+ findOptions.page = +request.get('_page');
130
129
  }
131
130
  if (!this.remult.isAllowed(this.repository.metadata.options.apiRequireId)) return [3 /*break*/, 3];
132
131
  hasId_1 = false;
@@ -150,7 +149,7 @@ var DataApi = /** @class */ (function () {
150
149
  isLessThan: function () { },
151
150
  isNotNull: function () { },
152
151
  isNull: function () { },
153
- or: function () { }
152
+ or: function () { },
154
153
  });
155
154
  }
156
155
  if (!hasId_1) {
@@ -158,8 +157,7 @@ var DataApi = /** @class */ (function () {
158
157
  throw new server_action_1.ForbiddenError();
159
158
  }
160
159
  _b.label = 3;
161
- case 3: return [4 /*yield*/, this.repository.find(findOptions)
162
- .then(function (r) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
160
+ case 3: return [4 /*yield*/, this.repository.find(findOptions).then(function (r) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
163
161
  var _this = this;
164
162
  return tslib_1.__generator(this, function (_a) {
165
163
  switch (_a.label) {
@@ -235,7 +233,7 @@ var DataApi = /** @class */ (function () {
235
233
  return [4 /*yield*/, this.remult.liveQueryStorage.add({
236
234
  entityKey: this.repository.metadata.key,
237
235
  id: queryChannel,
238
- data: data
236
+ data: data,
239
237
  })];
240
238
  case 4:
241
239
  _b.sent();
@@ -261,7 +259,7 @@ var DataApi = /** @class */ (function () {
261
259
  case 0:
262
260
  where = [];
263
261
  if (!this.repository.metadata.options.apiPrefilter) return [3 /*break*/, 3];
264
- if (!(typeof this.repository.metadata.options.apiPrefilter === "function")) return [3 /*break*/, 2];
262
+ if (!(typeof this.repository.metadata.options.apiPrefilter === 'function')) return [3 /*break*/, 2];
265
263
  _b = (_a = where).push;
266
264
  return [4 /*yield*/, this.repository.metadata.options.apiPrefilter()];
267
265
  case 1:
@@ -275,10 +273,10 @@ var DataApi = /** @class */ (function () {
275
273
  where.push(filter_interfaces_1.buildFilterFromRequestParameters(this.repository.metadata, {
276
274
  get: function (key) {
277
275
  var result = request.get(key);
278
- if (key.startsWith(filter_interfaces_1.customUrlToken) && result)
276
+ if (key.startsWith(filter_interfaces_1.customUrlToken) && result && typeof result === "string")
279
277
  return JSON.parse(result);
280
278
  return result;
281
- }
279
+ },
282
280
  }));
283
281
  }
284
282
  if (filterBody)
@@ -296,9 +294,11 @@ var DataApi = /** @class */ (function () {
296
294
  switch (_c.label) {
297
295
  case 0:
298
296
  _c.trys.push([0, 5, , 6]);
299
- where = [this.repository.metadata.idMetadata.getIdFilter(id)];
297
+ where = [
298
+ this.repository.metadata.idMetadata.getIdFilter(id),
299
+ ];
300
300
  if (!this.repository.metadata.options.apiPrefilter) return [3 /*break*/, 3];
301
- if (!(typeof this.repository.metadata.options.apiPrefilter === "function")) return [3 /*break*/, 2];
301
+ if (!(typeof this.repository.metadata.options.apiPrefilter === 'function')) return [3 /*break*/, 2];
302
302
  _b = (_a = where).push;
303
303
  return [4 /*yield*/, this.repository.metadata.options.apiPrefilter()];
304
304
  case 1:
@@ -307,8 +307,9 @@ var DataApi = /** @class */ (function () {
307
307
  case 2:
308
308
  where.push(this.repository.metadata.options.apiPrefilter);
309
309
  _c.label = 3;
310
- case 3: return [4 /*yield*/, this.repository.find({
311
- where: { $and: where }
310
+ case 3: return [4 /*yield*/, this.repository
311
+ .find({
312
+ where: { $and: where },
312
313
  })
313
314
  .then(function (r) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
314
315
  return tslib_1.__generator(this, function (_a) {
@@ -319,7 +320,7 @@ var DataApi = /** @class */ (function () {
319
320
  return [3 /*break*/, 4];
320
321
  case 1:
321
322
  if (!(r.length > 1)) return [3 /*break*/, 2];
322
- response.error({ message: "id is not unique" });
323
+ response.error({ message: 'id is not unique' });
323
324
  return [3 /*break*/, 4];
324
325
  case 2: return [4 /*yield*/, what(r[0])];
325
326
  case 3:
@@ -500,10 +501,10 @@ function determineSort(sortUrlParm, dirUrlParam) {
500
501
  var result = {};
501
502
  sortUrlParm.split(',').map(function (name, i) {
502
503
  var key = name.trim();
503
- if (i < dirItems.length && dirItems[i].toLowerCase().trim().startsWith("d"))
504
- return result[key] = "desc";
504
+ if (i < dirItems.length && dirItems[i].toLowerCase().trim().startsWith('d'))
505
+ return (result[key] = 'desc');
505
506
  else
506
- return result[key] = "asc";
507
+ return (result[key] = 'asc');
507
508
  });
508
509
  return result;
509
510
  }
@@ -520,7 +521,3 @@ function serializeError(data) {
520
521
  return data;
521
522
  }
522
523
  exports.serializeError = serializeError;
523
- function getLiveQueryChannel(queryId, userId) {
524
- return "users:" + userId + ":queries:" + queryId;
525
- }
526
- exports.getLiveQueryChannel = getLiveQueryChannel;
@@ -4,8 +4,8 @@ import { EntityMetadata, OmitEB } from './remult3';
4
4
  export interface DataProvider {
5
5
  getEntityDataProvider(entity: EntityMetadata): EntityDataProvider;
6
6
  transaction(action: (dataProvider: DataProvider) => Promise<void>): Promise<void>;
7
- supportsRawFilter?: boolean;
8
7
  ensureSchema?(entities: EntityMetadata[]): Promise<void>;
8
+ isProxy?: boolean;
9
9
  }
10
10
  export interface Storage {
11
11
  ensureSchema(): Promise<void>;
@@ -31,7 +31,7 @@ var ArrayEntityDataProvider = /** @class */ (function () {
31
31
  var _a;
32
32
  return _a = {},
33
33
  _a[filter_interfaces_1.customDatabaseFilterToken] = {
34
- arrayFilter: filter
34
+ arrayFilter: filter,
35
35
  },
36
36
  _a;
37
37
  };
@@ -229,7 +229,7 @@ var ArrayEntityDataProvider = /** @class */ (function () {
229
229
  if (data[idf.key])
230
230
  this.rows.forEach(function (i) {
231
231
  if (data[idf.key] == i[idf.key])
232
- throw Error("id already exists");
232
+ throw Error('id already exists');
233
233
  });
234
234
  }
235
235
  j = this.translateToJson(data);
@@ -1,5 +1,5 @@
1
1
  import { DataProvider, EntityDataProvider } from '../data-interfaces';
2
- import { __RowsOfDataForTesting } from "../__RowsOfDataForTesting";
2
+ import { __RowsOfDataForTesting } from '../__RowsOfDataForTesting';
3
3
  import { EntityMetadata } from '../remult3';
4
4
  export declare class InMemoryDataProvider implements DataProvider, __RowsOfDataForTesting {
5
5
  transaction(action: (dataProvider: DataProvider) => Promise<void>): Promise<void>;
@@ -25,7 +25,9 @@ var InMemoryDataProvider = /** @class */ (function () {
25
25
  this.rows[name] = [];
26
26
  return new array_entity_data_provider_1.ArrayEntityDataProvider(entity, this.rows[name]);
27
27
  };
28
- InMemoryDataProvider.prototype.toString = function () { return "InMemoryDataProvider"; };
28
+ InMemoryDataProvider.prototype.toString = function () {
29
+ return 'InMemoryDataProvider';
30
+ };
29
31
  return InMemoryDataProvider;
30
32
  }());
31
33
  exports.InMemoryDataProvider = InMemoryDataProvider;
@@ -46,41 +46,59 @@ var JsonEntityDataProvider = /** @class */ (function () {
46
46
  if (s)
47
47
  data = JSON.parse(s);
48
48
  dp = new array_entity_data_provider_1.ArrayEntityDataProvider(this.entity, data);
49
- return [2 /*return*/, what(dp, function () { return _this.helper.setItem(dbName, JSON.stringify(data, undefined, 2)); })];
49
+ return [2 /*return*/, what(dp, function () {
50
+ return _this.helper.setItem(dbName, JSON.stringify(data, undefined, 2));
51
+ })];
50
52
  }
51
53
  });
52
54
  });
53
55
  };
54
56
  JsonEntityDataProvider.prototype.find = function (options) {
55
57
  var _this = this;
56
- return this.p = this.p.then(function () { return _this.loadEntityData(function (dp, save) { return dp.find(options); }); });
58
+ return (this.p = this.p.then(function () {
59
+ return _this.loadEntityData(function (dp, save) { return dp.find(options); });
60
+ }));
57
61
  };
58
62
  JsonEntityDataProvider.prototype.count = function (where) {
59
63
  var _this = this;
60
- return this.p = this.p.then(function () { return _this.loadEntityData(function (dp, save) { return dp.count(where); }); });
64
+ return (this.p = this.p.then(function () {
65
+ return _this.loadEntityData(function (dp, save) { return dp.count(where); });
66
+ }));
61
67
  };
62
68
  JsonEntityDataProvider.prototype.update = function (id, data) {
63
69
  var _this = this;
64
- return this.p = this.p.then(function () { return _this.loadEntityData(function (dp, save) { return dp.update(id, data).then(function (x) {
65
- save();
66
- return x;
67
- }); }); });
70
+ return (this.p = this.p.then(function () {
71
+ return _this.loadEntityData(function (dp, save) {
72
+ return dp.update(id, data).then(function (x) {
73
+ save();
74
+ return x;
75
+ });
76
+ });
77
+ }));
68
78
  };
69
79
  JsonEntityDataProvider.prototype.delete = function (id) {
70
80
  var _this = this;
71
- return this.p = this.p.then(function () { return _this.loadEntityData(function (dp, save) { return dp.delete(id).then(function (x) {
72
- save();
73
- return x;
74
- }); }); });
81
+ return (this.p = this.p.then(function () {
82
+ return _this.loadEntityData(function (dp, save) {
83
+ return dp.delete(id).then(function (x) {
84
+ save();
85
+ return x;
86
+ });
87
+ });
88
+ }));
75
89
  };
76
90
  JsonEntityDataProvider.prototype.insert = function (data) {
77
91
  return tslib_1.__awaiter(this, void 0, void 0, function () {
78
92
  var _this = this;
79
93
  return tslib_1.__generator(this, function (_a) {
80
- return [2 /*return*/, this.p = this.p.then(function () { return _this.loadEntityData(function (dp, save) { return dp.insert(data).then(function (x) {
81
- save();
82
- return x;
83
- }); }); })];
94
+ return [2 /*return*/, (this.p = this.p.then(function () {
95
+ return _this.loadEntityData(function (dp, save) {
96
+ return dp.insert(data).then(function (x) {
97
+ save();
98
+ return x;
99
+ });
100
+ });
101
+ }))];
84
102
  });
85
103
  });
86
104
  };
@@ -8,7 +8,7 @@ export declare class RestDataProvider implements DataProvider {
8
8
  constructor(apiProvider: () => ApiClient);
9
9
  getEntityDataProvider(entity: EntityMetadata): RestEntityDataProvider;
10
10
  transaction(action: (dataProvider: DataProvider) => Promise<void>): Promise<void>;
11
- supportsRawFilter: boolean;
11
+ isProxy: boolean;
12
12
  }
13
13
  export declare class RestEntityDataProvider implements EntityDataProvider {
14
14
  private url;