remult 0.17.0-exp.9 → 0.18.1-exp.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 (338) hide show
  1. package/README.md +5 -28
  2. package/{core/assign.d.ts → assign.d.ts} +0 -0
  3. package/{core/assign.js → assign.js} +0 -0
  4. package/{core/classType.d.ts → classType.d.ts} +0 -0
  5. package/{core/classType.js → classType.js} +0 -0
  6. package/esm/{core/assign.d.ts → assign.d.ts} +0 -0
  7. package/esm/{core/assign.js → assign.js} +0 -0
  8. package/esm/{core/classType.d.ts → classType.d.ts} +0 -0
  9. package/esm/{core/classType.js → classType.js} +0 -0
  10. package/{core → esm}/graphql.d.ts +0 -0
  11. package/esm/{core/graphql.js → graphql.js} +0 -0
  12. package/{core → esm}/index.d.ts +4 -2
  13. package/esm/{core/index.js → index.js} +0 -0
  14. package/{core → esm}/inputTypes.d.ts +0 -0
  15. package/esm/{core/inputTypes.js → inputTypes.js} +0 -0
  16. package/esm/live-query/ably.d.ts +13 -0
  17. package/esm/live-query/ably.js +25 -0
  18. package/esm/live-query/index.d.ts +3 -0
  19. package/esm/live-query/index.js +3 -0
  20. package/{core → esm}/postgres/index.d.ts +0 -0
  21. package/esm/{core/postgres → postgres}/index.js +0 -0
  22. package/{core → esm}/postgres/postgres-data-provider.d.ts +0 -0
  23. package/esm/{core/postgres → postgres}/postgres-data-provider.js +0 -0
  24. package/{core → esm}/postgres/schema-builder.d.ts +0 -0
  25. package/esm/{core/postgres → postgres}/schema-builder.js +4 -4
  26. package/esm/remult-express.d.ts +31 -0
  27. package/esm/remult-express.js +157 -0
  28. package/{core → esm}/remult-fastify.d.ts +0 -0
  29. package/esm/{core/remult-fastify.js → remult-fastify.js} +1 -1
  30. package/{core → esm}/remult-fresh.d.ts +0 -0
  31. package/esm/{core/remult-fresh.js → remult-fresh.js} +2 -2
  32. package/{core → esm}/remult-knex/index.d.ts +0 -0
  33. package/esm/{core/remult-knex → remult-knex}/index.js +4 -11
  34. package/{core → esm}/remult-mongo.d.ts +0 -0
  35. package/esm/{core/remult-mongo.js → remult-mongo.js} +0 -0
  36. package/{core → esm}/server/JsonEntityFileStorage.d.ts +0 -0
  37. package/esm/{core/server → server}/JsonEntityFileStorage.js +0 -0
  38. package/{core → esm}/server/core.d.ts +0 -0
  39. package/esm/{core/server → server}/core.js +0 -0
  40. package/esm/{core/server → server}/expressBridge.d.ts +49 -11
  41. package/esm/{core/server → server}/expressBridge.js +48 -24
  42. package/esm/server/index.d.ts +2 -0
  43. package/esm/server/index.js +2 -0
  44. package/{core → esm}/server/initAsyncHooks.d.ts +0 -0
  45. package/esm/{core/server → server}/initAsyncHooks.js +0 -0
  46. package/{core → esm}/src/__EntityValueProvider.d.ts +0 -0
  47. package/esm/{core/src → src}/__EntityValueProvider.js +0 -0
  48. package/{core → esm}/src/__RowsOfDataForTesting.d.ts +0 -0
  49. package/esm/{core/src → src}/__RowsOfDataForTesting.js +0 -0
  50. package/{core → esm}/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +0 -1
  51. package/esm/{core/src → src}/backend-tests/backend-database-test-setup.backend-spec.js +0 -10
  52. package/{core → esm}/src/backend-tests/my-test.backend-spec.d.ts +0 -0
  53. package/esm/{core/src → src}/backend-tests/my-test.backend-spec.js +0 -48
  54. package/esm/src/backend-tests/test-http-server.backend-spec.d.ts +6 -0
  55. package/esm/{core/src → src}/backend-tests/test-http-server.backend-spec.js +48 -32
  56. package/esm/src/buildRestDataProvider.d.ts +31 -0
  57. package/esm/src/buildRestDataProvider.js +110 -0
  58. package/{core → esm}/src/column-interfaces.d.ts +0 -0
  59. package/esm/{core/src → src}/column-interfaces.js +0 -0
  60. package/{core → esm}/src/column.d.ts +3 -3
  61. package/esm/{core/src → src}/column.js +0 -0
  62. package/esm/{core/src → src}/context.d.ts +21 -30
  63. package/esm/{core/src → src}/context.js +87 -110
  64. package/esm/{core/src → src}/data-api.d.ts +8 -3
  65. package/esm/src/data-api.js +260 -0
  66. package/{core → esm}/src/data-interfaces.d.ts +0 -0
  67. package/esm/{core/src → src}/data-interfaces.js +0 -0
  68. package/{core → esm}/src/data-providers/array-entity-data-provider.d.ts +0 -0
  69. package/esm/{core/src → src}/data-providers/array-entity-data-provider.js +1 -16
  70. package/{core → esm}/src/data-providers/in-memory-database.d.ts +0 -0
  71. package/esm/{core/src → src}/data-providers/in-memory-database.js +0 -0
  72. package/{core → esm}/src/data-providers/json-data-provider.d.ts +0 -0
  73. package/esm/{core/src → src}/data-providers/json-data-provider.js +0 -0
  74. package/{core → esm}/src/data-providers/rest-data-provider.d.ts +12 -1
  75. package/esm/{core/src → src}/data-providers/rest-data-provider.js +29 -9
  76. package/{core → esm}/src/data-providers/sql-database.d.ts +0 -0
  77. package/esm/{core/src → src}/data-providers/sql-database.js +1 -1
  78. package/{core → esm}/src/data-providers/web-sql-data-provider.d.ts +0 -0
  79. package/esm/{core/src → src}/data-providers/web-sql-data-provider.js +1 -1
  80. package/{core → esm}/src/entity.d.ts +0 -0
  81. package/esm/{core/src → src}/entity.js +0 -0
  82. package/{core → esm}/src/filter/filter-consumer-bridge-to-sql-request.d.ts +0 -0
  83. package/esm/{core/src → src}/filter/filter-consumer-bridge-to-sql-request.js +0 -0
  84. package/{core → esm}/src/filter/filter-consumer-bridge-to-url-builder.d.ts +0 -0
  85. package/esm/{core/src → src}/filter/filter-consumer-bridge-to-url-builder.js +0 -0
  86. package/{core → esm}/src/filter/filter-interfaces.d.ts +0 -0
  87. package/esm/{core/src → src}/filter/filter-interfaces.js +0 -0
  88. package/{core → esm}/src/id-entity.d.ts +0 -0
  89. package/esm/{core/src → src}/id-entity.js +0 -0
  90. package/esm/src/live-query/EventSourceLiveQueryProvider.d.ts +4 -0
  91. package/esm/src/live-query/EventSourceLiveQueryProvider.js +78 -0
  92. package/esm/src/live-query/LiveQueryClient.d.ts +19 -0
  93. package/esm/src/live-query/LiveQueryClient.js +147 -0
  94. package/esm/src/live-query/LiveQueryPublisher.d.ts +48 -0
  95. package/esm/src/live-query/LiveQueryPublisher.js +112 -0
  96. package/esm/src/live-query/LiveQuerySubscriber.d.ts +67 -0
  97. package/esm/src/live-query/LiveQuerySubscriber.js +99 -0
  98. package/esm/src/remult-proxy.d.ts +2 -0
  99. package/esm/{core/src → src}/remult-proxy.js +11 -9
  100. package/{core → esm}/src/remult3/DecoratorReplacer.d.ts +0 -0
  101. package/esm/{core/src → src}/remult3/DecoratorReplacer.js +0 -0
  102. package/esm/{core/src → src}/remult3/RepositoryImplementation.d.ts +6 -3
  103. package/esm/{core/src → src}/remult3/RepositoryImplementation.js +38 -22
  104. package/esm/src/remult3/getId.d.ts +2 -0
  105. package/esm/src/remult3/getId.js +7 -0
  106. package/{core → esm}/src/remult3/index.d.ts +0 -0
  107. package/esm/{core/src → src}/remult3/index.js +0 -0
  108. package/{core → esm}/src/remult3/remult3.d.ts +10 -6
  109. package/esm/{core/src → src}/remult3/remult3.js +0 -0
  110. package/{core → esm}/src/server-action.d.ts +4 -0
  111. package/esm/{core/src → src}/server-action.js +11 -12
  112. package/esm/{core/src → src}/shared-tests/db-tests-setup.d.ts +1 -1
  113. package/esm/{core/src → src}/shared-tests/db-tests-setup.js +1 -3
  114. package/{core → esm}/src/shared-tests/db-tests.db-tests.d.ts +0 -0
  115. package/esm/{core/src → src}/shared-tests/db-tests.db-tests.js +0 -0
  116. package/{core → esm}/src/shared-tests/deleteAll.d.ts +0 -0
  117. package/esm/{core/src → src}/shared-tests/deleteAll.js +0 -0
  118. package/{core → esm}/src/shared-tests/entityWithValidations.d.ts +0 -0
  119. package/esm/{core/src → src}/shared-tests/entityWithValidations.js +0 -0
  120. package/{core → esm}/src/shared-tests/index.d.ts +0 -0
  121. package/esm/{core/src → src}/shared-tests/index.js +0 -0
  122. package/{core → esm}/src/shared-tests/test-custom-id-column.spec.d.ts +0 -0
  123. package/esm/{core/src → src}/shared-tests/test-custom-id-column.spec.js +0 -0
  124. package/{core → esm}/src/shared-tests/test-special-value.spec.d.ts +0 -0
  125. package/esm/{core/src → src}/shared-tests/test-special-value.spec.js +0 -0
  126. package/{core → esm}/src/shared-tests/test-update-with-null.spec.d.ts +0 -0
  127. package/esm/{core/src → src}/shared-tests/test-update-with-null.spec.js +0 -0
  128. package/esm/{core/src → src}/sort.d.ts +1 -0
  129. package/esm/{core/src → src}/sort.js +18 -0
  130. package/{core → esm}/src/sql-command.d.ts +0 -0
  131. package/esm/{core/src → src}/sql-command.js +0 -0
  132. package/{core → esm}/src/tests/Done.d.ts +0 -0
  133. package/esm/{core/src → src}/tests/Done.js +0 -0
  134. package/{core → esm}/src/tests/TestDataApiResponse.d.ts +0 -0
  135. package/esm/{core/src → src}/tests/TestDataApiResponse.js +0 -0
  136. package/{core → esm}/src/tests/c.d.ts +0 -0
  137. package/esm/{core/src → src}/tests/c.js +0 -0
  138. package/{core → esm}/src/tests/createData.d.ts +0 -0
  139. package/esm/{core/src → src}/tests/createData.js +0 -0
  140. package/{core → esm}/src/tests/d.d.ts +0 -0
  141. package/esm/{core/src → src}/tests/d.js +0 -0
  142. package/{core → esm}/src/tests/dWithPrefilter.d.ts +0 -0
  143. package/esm/{core/src → src}/tests/dWithPrefilter.js +0 -0
  144. package/{core → esm}/src/tests/entityForCustomFilter.d.ts +0 -0
  145. package/esm/{core/src → src}/tests/entityForCustomFilter.js +0 -0
  146. package/{core → esm}/src/tests/entityWithValidationsOnColumn.d.ts +0 -0
  147. package/esm/{core/src → src}/tests/entityWithValidationsOnColumn.js +0 -0
  148. package/{core → esm}/src/tests/frontend-database-tests-setup.spec.d.ts +0 -0
  149. package/esm/{core/src → src}/tests/frontend-database-tests-setup.spec.js +0 -0
  150. package/{core → esm}/src/tests/h.d.ts +0 -0
  151. package/esm/{core/src → src}/tests/h.js +0 -0
  152. package/{core → esm}/src/tests/remult-3-entities.d.ts +0 -0
  153. package/esm/{core/src → src}/tests/remult-3-entities.js +0 -0
  154. package/{core → esm}/src/tests/tasks.d.ts +0 -0
  155. package/esm/{core/src → src}/tests/tasks.js +0 -0
  156. package/esm/{core/src → src}/tests/testHelper.spec.d.ts +2 -0
  157. package/esm/{core/src → src}/tests/testHelper.spec.js +62 -58
  158. package/{core → esm}/src/tests/testModel/models.d.ts +0 -0
  159. package/esm/{core/src → src}/tests/testModel/models.js +0 -0
  160. package/{core → esm}/src/validators.d.ts +0 -0
  161. package/esm/{core/src → src}/validators.js +0 -0
  162. package/{core → esm}/src/valueConverters.d.ts +0 -0
  163. package/esm/{core/src → src}/valueConverters.js +1 -3
  164. package/{core → esm}/urlBuilder.d.ts +0 -0
  165. package/esm/{core/urlBuilder.js → urlBuilder.js} +0 -0
  166. package/{esm/core/graphql.d.ts → graphql.d.ts} +0 -0
  167. package/{core/graphql.js → graphql.js} +0 -0
  168. package/{esm/core/index.d.ts → index.d.ts} +4 -2
  169. package/{core/index.js → index.js} +0 -0
  170. package/{esm/core/inputTypes.d.ts → inputTypes.d.ts} +0 -0
  171. package/{core/inputTypes.js → inputTypes.js} +0 -0
  172. package/live-query/ably.d.ts +13 -0
  173. package/live-query/ably.js +38 -0
  174. package/live-query/index.d.ts +3 -0
  175. package/live-query/index.js +10 -0
  176. package/package.json +17 -1
  177. package/{esm/core/postgres → postgres}/index.d.ts +0 -0
  178. package/{core/postgres → postgres}/index.js +0 -0
  179. package/{esm/core/postgres → postgres}/postgres-data-provider.d.ts +0 -0
  180. package/{core/postgres → postgres}/postgres-data-provider.js +0 -0
  181. package/{esm/core/postgres → postgres}/schema-builder.d.ts +0 -0
  182. package/{core/postgres → postgres}/schema-builder.js +4 -4
  183. package/remult-express.d.ts +31 -0
  184. package/remult-express.js +260 -0
  185. package/{esm/core/remult-fastify.d.ts → remult-fastify.d.ts} +0 -0
  186. package/{core/remult-fastify.js → remult-fastify.js} +2 -2
  187. package/{esm/core/remult-fresh.d.ts → remult-fresh.d.ts} +0 -0
  188. package/{core/remult-fresh.js → remult-fresh.js} +1 -1
  189. package/{esm/core/remult-knex → remult-knex}/index.d.ts +0 -0
  190. package/{core/remult-knex → remult-knex}/index.js +10 -18
  191. package/{esm/core/remult-mongo.d.ts → remult-mongo.d.ts} +0 -0
  192. package/{core/remult-mongo.js → remult-mongo.js} +0 -0
  193. package/{esm/core/server → server}/JsonEntityFileStorage.d.ts +0 -0
  194. package/{core/server → server}/JsonEntityFileStorage.js +0 -0
  195. package/{esm/core/server → server}/core.d.ts +0 -0
  196. package/{core/server → server}/core.js +0 -0
  197. package/{core/server → server}/expressBridge.d.ts +49 -11
  198. package/{core/server → server}/expressBridge.js +91 -43
  199. package/server/index.d.ts +2 -0
  200. package/{core/server → server}/index.js +2 -7
  201. package/{esm/core/server → server}/initAsyncHooks.d.ts +0 -0
  202. package/{core/server → server}/initAsyncHooks.js +0 -0
  203. package/{esm/core/src → src}/__EntityValueProvider.d.ts +0 -0
  204. package/{core/src → src}/__EntityValueProvider.js +0 -0
  205. package/{esm/core/src → src}/__RowsOfDataForTesting.d.ts +0 -0
  206. package/{core/src → src}/__RowsOfDataForTesting.js +0 -0
  207. package/{esm/core/src → src}/backend-tests/backend-database-test-setup.backend-spec.d.ts +0 -1
  208. package/{core/src → src}/backend-tests/backend-database-test-setup.backend-spec.js +1 -11
  209. package/{esm/core/src → src}/backend-tests/my-test.backend-spec.d.ts +0 -0
  210. package/{core/src → src}/backend-tests/my-test.backend-spec.js +0 -57
  211. package/src/backend-tests/test-http-server.backend-spec.d.ts +6 -0
  212. package/{core/src → src}/backend-tests/test-http-server.backend-spec.js +50 -59
  213. package/src/buildRestDataProvider.d.ts +31 -0
  214. package/src/buildRestDataProvider.js +162 -0
  215. package/{esm/core/src → src}/column-interfaces.d.ts +0 -0
  216. package/{core/src → src}/column-interfaces.js +0 -0
  217. package/{esm/core/src → src}/column.d.ts +3 -3
  218. package/{core/src → src}/column.js +0 -0
  219. package/{core/src → src}/context.d.ts +21 -30
  220. package/{core/src → src}/context.js +142 -159
  221. package/{core/src → src}/data-api.d.ts +8 -3
  222. package/{core/src → src}/data-api.js +198 -79
  223. package/{esm/core/src → src}/data-interfaces.d.ts +0 -0
  224. package/{core/src → src}/data-interfaces.js +0 -0
  225. package/{esm/core/src → src}/data-providers/array-entity-data-provider.d.ts +0 -0
  226. package/{core/src → src}/data-providers/array-entity-data-provider.js +1 -16
  227. package/{esm/core/src → src}/data-providers/in-memory-database.d.ts +0 -0
  228. package/{core/src → src}/data-providers/in-memory-database.js +0 -0
  229. package/{esm/core/src → src}/data-providers/json-data-provider.d.ts +0 -0
  230. package/{core/src → src}/data-providers/json-data-provider.js +0 -0
  231. package/{esm/core/src → src}/data-providers/rest-data-provider.d.ts +12 -1
  232. package/{core/src → src}/data-providers/rest-data-provider.js +34 -12
  233. package/{esm/core/src → src}/data-providers/sql-database.d.ts +0 -0
  234. package/{core/src → src}/data-providers/sql-database.js +1 -1
  235. package/{esm/core/src → src}/data-providers/web-sql-data-provider.d.ts +0 -0
  236. package/{core/src → src}/data-providers/web-sql-data-provider.js +1 -1
  237. package/{esm/core/src → src}/entity.d.ts +0 -0
  238. package/{core/src → src}/entity.js +0 -0
  239. package/{esm/core/src → src}/filter/filter-consumer-bridge-to-sql-request.d.ts +0 -0
  240. package/{core/src → src}/filter/filter-consumer-bridge-to-sql-request.js +0 -0
  241. package/{esm/core/src → src}/filter/filter-consumer-bridge-to-url-builder.d.ts +0 -0
  242. package/{core/src → src}/filter/filter-consumer-bridge-to-url-builder.js +0 -0
  243. package/{esm/core/src → src}/filter/filter-interfaces.d.ts +0 -0
  244. package/{core/src → src}/filter/filter-interfaces.js +0 -0
  245. package/{esm/core/src → src}/id-entity.d.ts +0 -0
  246. package/{core/src → src}/id-entity.js +0 -0
  247. package/src/live-query/EventSourceLiveQueryProvider.d.ts +4 -0
  248. package/src/live-query/EventSourceLiveQueryProvider.js +119 -0
  249. package/src/live-query/LiveQueryClient.d.ts +19 -0
  250. package/src/live-query/LiveQueryClient.js +208 -0
  251. package/src/live-query/LiveQueryPublisher.d.ts +48 -0
  252. package/src/live-query/LiveQueryPublisher.js +238 -0
  253. package/src/live-query/LiveQuerySubscriber.d.ts +67 -0
  254. package/src/live-query/LiveQuerySubscriber.js +201 -0
  255. package/src/remult-proxy.d.ts +2 -0
  256. package/{core/src → src}/remult-proxy.js +19 -9
  257. package/{esm/core/src → src}/remult3/DecoratorReplacer.d.ts +0 -0
  258. package/{core/src → src}/remult3/DecoratorReplacer.js +0 -0
  259. package/{core/src → src}/remult3/RepositoryImplementation.d.ts +6 -3
  260. package/{core/src → src}/remult3/RepositoryImplementation.js +68 -42
  261. package/src/remult3/getId.d.ts +2 -0
  262. package/src/remult3/getId.js +11 -0
  263. package/{esm/core/src → src}/remult3/index.d.ts +0 -0
  264. package/{core/src → src}/remult3/index.js +0 -0
  265. package/{esm/core/src → src}/remult3/remult3.d.ts +10 -6
  266. package/{core/src → src}/remult3/remult3.js +0 -0
  267. package/{esm/core/src → src}/server-action.d.ts +4 -0
  268. package/{core/src → src}/server-action.js +11 -11
  269. package/{core/src → src}/shared-tests/db-tests-setup.d.ts +1 -1
  270. package/{core/src → src}/shared-tests/db-tests-setup.js +1 -3
  271. package/{esm/core/src → src}/shared-tests/db-tests.db-tests.d.ts +0 -0
  272. package/{core/src → src}/shared-tests/db-tests.db-tests.js +0 -0
  273. package/{esm/core/src → src}/shared-tests/deleteAll.d.ts +0 -0
  274. package/{core/src → src}/shared-tests/deleteAll.js +0 -0
  275. package/{esm/core/src → src}/shared-tests/entityWithValidations.d.ts +0 -0
  276. package/{core/src → src}/shared-tests/entityWithValidations.js +0 -0
  277. package/{esm/core/src → src}/shared-tests/index.d.ts +0 -0
  278. package/{core/src → src}/shared-tests/index.js +0 -0
  279. package/{esm/core/src → src}/shared-tests/test-custom-id-column.spec.d.ts +0 -0
  280. package/{core/src → src}/shared-tests/test-custom-id-column.spec.js +0 -0
  281. package/{esm/core/src → src}/shared-tests/test-special-value.spec.d.ts +0 -0
  282. package/{core/src → src}/shared-tests/test-special-value.spec.js +0 -0
  283. package/{esm/core/src → src}/shared-tests/test-update-with-null.spec.d.ts +0 -0
  284. package/{core/src → src}/shared-tests/test-update-with-null.spec.js +0 -0
  285. package/{core/src → src}/sort.d.ts +1 -0
  286. package/{core/src → src}/sort.js +18 -0
  287. package/{esm/core/src → src}/sql-command.d.ts +0 -0
  288. package/{core/src → src}/sql-command.js +0 -0
  289. package/{esm/core/src → src}/tests/Done.d.ts +0 -0
  290. package/{core/src → src}/tests/Done.js +0 -0
  291. package/{esm/core/src → src}/tests/TestDataApiResponse.d.ts +0 -0
  292. package/{core/src → src}/tests/TestDataApiResponse.js +0 -0
  293. package/{esm/core/src → src}/tests/c.d.ts +0 -0
  294. package/{core/src → src}/tests/c.js +0 -0
  295. package/{esm/core/src → src}/tests/createData.d.ts +0 -0
  296. package/{core/src → src}/tests/createData.js +0 -0
  297. package/{esm/core/src → src}/tests/d.d.ts +0 -0
  298. package/{core/src → src}/tests/d.js +0 -0
  299. package/{esm/core/src → src}/tests/dWithPrefilter.d.ts +0 -0
  300. package/{core/src → src}/tests/dWithPrefilter.js +0 -0
  301. package/{esm/core/src → src}/tests/entityForCustomFilter.d.ts +0 -0
  302. package/{core/src → src}/tests/entityForCustomFilter.js +0 -0
  303. package/{esm/core/src → src}/tests/entityWithValidationsOnColumn.d.ts +0 -0
  304. package/{core/src → src}/tests/entityWithValidationsOnColumn.js +0 -0
  305. package/{esm/core/src → src}/tests/frontend-database-tests-setup.spec.d.ts +0 -0
  306. package/{core/src → src}/tests/frontend-database-tests-setup.spec.js +0 -0
  307. package/{esm/core/src → src}/tests/h.d.ts +0 -0
  308. package/{core/src → src}/tests/h.js +0 -0
  309. package/{esm/core/src → src}/tests/remult-3-entities.d.ts +0 -0
  310. package/{core/src → src}/tests/remult-3-entities.js +0 -0
  311. package/{esm/core/src → src}/tests/tasks.d.ts +0 -0
  312. package/{core/src → src}/tests/tasks.js +0 -0
  313. package/{core/src → src}/tests/testHelper.spec.d.ts +2 -0
  314. package/{core/src → src}/tests/testHelper.spec.js +100 -95
  315. package/{esm/core/src → src}/tests/testModel/models.d.ts +0 -0
  316. package/{core/src → src}/tests/testModel/models.js +0 -0
  317. package/{esm/core/src → src}/validators.d.ts +0 -0
  318. package/{core/src → src}/validators.js +0 -0
  319. package/{esm/core/src → src}/valueConverters.d.ts +0 -0
  320. package/{core/src → src}/valueConverters.js +1 -3
  321. package/{esm/core/urlBuilder.d.ts → urlBuilder.d.ts} +0 -0
  322. package/{core/urlBuilder.js → urlBuilder.js} +0 -0
  323. package/core/remult-express.d.ts +0 -6
  324. package/core/remult-express.js +0 -34
  325. package/core/server/index.d.ts +0 -4
  326. package/core/src/backend-tests/test-http-server.backend-spec.d.ts +0 -1
  327. package/core/src/remult-proxy.d.ts +0 -2
  328. package/esm/core/remult-express.d.ts +0 -6
  329. package/esm/core/remult-express.js +0 -23
  330. package/esm/core/server/index.d.ts +0 -4
  331. package/esm/core/server/index.js +0 -7
  332. package/esm/core/src/backend-tests/test-http-server.backend-spec.d.ts +0 -1
  333. package/esm/core/src/data-api.js +0 -204
  334. package/esm/core/src/remult-proxy.d.ts +0 -2
  335. package/esm/test-servers/shared/Task.d.ts +0 -9
  336. package/esm/test-servers/shared/Task.js +0 -62
  337. package/test-servers/shared/Task.d.ts +0 -9
  338. package/test-servers/shared/Task.js +0 -81
package/README.md CHANGED
@@ -3,7 +3,6 @@
3
3
  <img src="https://github.com/remult/remult/raw/master/docs/.vuepress/public/logo.png" width="140" height="140">
4
4
  </a>
5
5
  <h1>Remult</h1>
6
- <p>A CRUD framework for full-stack TypeScript</p>
7
6
  <a href="https://circleci.com/gh/remult/remult/tree/master" rel="nofollow">
8
7
  <img alt="CircleCI" src="https://circleci.com/gh/remult/remult/tree/master.svg?style=shield">
9
8
  </a>
@@ -25,29 +24,14 @@
25
24
  <a href="https://twitter.com/intent/tweet?text=Remult%20-%20open-source%20CRUD%20framework%20for%20full-stack%20TypeScript%0A%0A%40remultjs%0A&url=https%3A%2F%2Fgithub.com%2Fremult%2Fremult">
26
25
  <img alt="Twitter URL" src="https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Ftext%3DRemult%2520-%2520open-source%2520CRUD%2520framework%2520for%2520full-stack%2520TypeScript%250A%250A%2540remultjs%250A%26url%3Dhttps%253A%252F%252Fgithub.com%252Fremult%252Fremult">
27
26
  </a>
27
+ <a href="https://twitter.com/remultjs" rel="nofollow">
28
+ <img alt="Twitter Follow" src="https://img.shields.io/twitter/url.svg?label=Follow%20%40remultjs&style=social&url=https%3A%2F%2Ftwitter.com%2FRemultJs">
29
+ </a>
28
30
  </div>
29
-
30
-
31
- <br/>
32
-
33
- <div align="center">
34
- <a href="#getting-started">Getting Started</a> |
35
- <a href="#documentation">Documentation</a> |
36
- <a href="#example-apps">Example Apps</a>
37
- </div>
38
-
39
31
  <hr/>
40
- <br/>
41
32
 
42
- <a href="https://www.youtube.com/watch?v=rEoScmSVNUE" target="_blank">
43
- <p align="center">
44
- <img src="https://github.com/remult/remult/raw/master/static/images/video-thumbnail.jpg" alt="Video thumbnail" />
45
- </p>
46
- </a>
47
-
48
- <a href="https://www.youtube.com/watch?v=rEoScmSVNUE" target="_blank">
49
- <p align="center">Watch code demo on YouTube here (14 mins)</p>
50
- </a>
33
+ [Getting Started](#getting-started) | [Documentation](#documentation) |
34
+ [Example Apps](#example-apps)
51
35
 
52
36
  ## What is Remult?
53
37
 
@@ -55,13 +39,6 @@
55
39
  as a single source of truth for your API, frontend type-safe API client and
56
40
  backend ORM**.
57
41
 
58
- * :zap: Zero-boilerplate CRUD API routes with paging, sorting, and filtering for Express / Fastify / Next.js / NestJS / Koa / others...
59
- * :ok_hand: Fullstack type-safety for API queries, mutations and RPC, without code generation
60
- * :sparkles: Input validation, defined once, runs both on the backend and on the frontend for best UX
61
- * :lock: Fine-grained code-based API authorization
62
- * :relieved: Incrementally adoptable
63
- * :rocket: Production ready
64
-
65
42
  ### Status
66
43
 
67
44
  Remult is **production-ready** and, in fact, used in production apps since 2018.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,4 +1,5 @@
1
- export { Field, Fields, StringFieldOptions, FieldsMetadata, Entity, EntityBase, ControllerBase, FieldRef, IdFieldRef, FieldsRef, EntityMetadata, EntityOrderBy, EntityFilter, FindOptions, QueryResult, QueryOptions, Repository, FieldType, FindFirstOptions, ComparisonValueFilter, ValueFilter, IdFilter, ContainsStringValueFilter, getFields, EntityRef, getEntityRef, SortSegments, ValueListFieldType, getValueList, ValueListFieldOptions, ValueListInfo, OmitEB, Paginator, CaptionTransformer } from './src/remult3';
1
+ export { Field, Fields, FieldsMetadata, Entity, EntityBase, ControllerBase, FieldRef, IdFieldRef, FieldsRef, EntityMetadata, EntityOrderBy, EntityFilter, FindOptions, QueryResult, QueryOptions, Repository, FieldType, FindFirstOptions, ComparisonValueFilter, ValueFilter, IdFilter, ContainsStringValueFilter, getFields, EntityRef, getEntityRef, SortSegments, ValueListFieldType, getValueList, ValueListFieldOptions, ValueListInfo, OmitEB, Paginator, CaptionTransformer } from './src/remult3';
2
+ export { StringFieldOptions } from './src/remult3/RepositoryImplementation';
2
3
  export { describeClass } from './src/remult3/DecoratorReplacer';
3
4
  export { EntityOptions } from './src/entity';
4
5
  export { DataProvider, EntityDataProvider, EntityDataProviderFindOptions, ErrorInfo, RestDataProviderHttpProvider } from './src/data-interfaces';
@@ -13,7 +14,8 @@ export { SqlDatabase, } from './src/data-providers/sql-database';
13
14
  export { CustomSqlFilterObject, CustomSqlFilterBuilder } from './src/filter/filter-consumer-bridge-to-sql-request';
14
15
  export { JsonDataProvider, JsonEntityStorage } from './src/data-providers/json-data-provider';
15
16
  export { Controller, BackendMethodOptions, BackendMethod, ProgressListener } from './src/server-action';
16
- export { Allowed, Allow, Remult, RemultContext, ApiClient, isBackend, AllowedForInstance, EventDispatcher, EventSource, ExternalHttpProvider, Unobserve, UserInfo } from './src/context';
17
+ export { Allowed, Allow, Remult, RemultContext, ApiClient, isBackend, AllowedForInstance, EventDispatcher, EventSource, Unobserve, UserInfo } from './src/context';
18
+ export { ExternalHttpProvider } from './src/buildRestDataProvider';
17
19
  export { IdEntity } from './src/id-entity';
18
20
  export { SortSegment, Sort } from './src/sort';
19
21
  export { OneToMany, CompoundIdField } from './src/column';
File without changes
File without changes
File without changes
@@ -0,0 +1,13 @@
1
+ import type * as Ably from 'ably';
2
+ import type { ServerEventDispatcher } from '../src/live-query/LiveQueryPublisher';
3
+ import type { LiveQueryProvider, PubSubClient } from '../src/live-query/LiveQuerySubscriber';
4
+ export declare class AblyLiveQueryProvider implements LiveQueryProvider {
5
+ private ably;
6
+ constructor(ably: Ably.Types.RealtimePromise);
7
+ openStreamAndReturnCloseFunction(onReconnect: VoidFunction): Promise<PubSubClient>;
8
+ }
9
+ export declare class AblyServerEventDispatcher implements ServerEventDispatcher {
10
+ private ably;
11
+ constructor(ably: Ably.Types.RealtimePromise);
12
+ sendChannelMessage<T>(channel: string, message: T): void;
13
+ }
@@ -0,0 +1,25 @@
1
+ export class AblyLiveQueryProvider {
2
+ constructor(ably) {
3
+ this.ably = ably;
4
+ }
5
+ async openStreamAndReturnCloseFunction(onReconnect) {
6
+ return {
7
+ disconnect: () => {
8
+ this.ably.connection.close();
9
+ },
10
+ subscribe: (channel, handler) => {
11
+ let myHandler = (y) => handler(y.data);
12
+ this.ably.channels.get(channel).subscribe(y => myHandler(y));
13
+ return () => { myHandler = () => { }; };
14
+ }
15
+ };
16
+ }
17
+ }
18
+ export class AblyServerEventDispatcher {
19
+ constructor(ably) {
20
+ this.ably = ably;
21
+ }
22
+ sendChannelMessage(channel, message) {
23
+ this.ably.channels.get(channel).publish({ data: message });
24
+ }
25
+ }
@@ -0,0 +1,3 @@
1
+ export { LiveQueryPublisher, ServerEventDispatcher, LiveQueryStorage, LiveQueryStorageInMemoryImplementation } from "../src/live-query/LiveQueryPublisher";
2
+ export { PubSubClient, LiveQueryProvider, AMessageChannel } from '../src/live-query/LiveQuerySubscriber';
3
+ export { LiveQueryClient } from '../src/live-query/LiveQueryClient';
@@ -0,0 +1,3 @@
1
+ export { LiveQueryPublisher, LiveQueryStorageInMemoryImplementation } from "../src/live-query/LiveQueryPublisher";
2
+ export { AMessageChannel } from '../src/live-query/LiveQuerySubscriber';
3
+ export { LiveQueryClient } from '../src/live-query/LiveQueryClient';
File without changes
File without changes
File without changes
@@ -43,7 +43,7 @@ export class PostgresSchemaBuilder {
43
43
  }
44
44
  }
45
45
  async verifyStructureOfAllEntities(remult) {
46
- console.log("start verify structure");
46
+ console.log("start verify structure"); //keep me
47
47
  for (const entityClass of allEntities) {
48
48
  let entity = remult.repo(entityClass).metadata;
49
49
  let e = await getDbNameProvider(entity);
@@ -56,7 +56,7 @@ export class PostgresSchemaBuilder {
56
56
  }
57
57
  }
58
58
  catch (err) {
59
- console.log("failed verify structure of " + e.entityName + " ", err);
59
+ /*keep me */ console.log("failed verify structure of " + e.entityName + " ", err);
60
60
  }
61
61
  }
62
62
  }
@@ -102,7 +102,7 @@ export class PostgresSchemaBuilder {
102
102
  }
103
103
  }
104
104
  catch (err) {
105
- console.log(err);
105
+ console.error(err);
106
106
  }
107
107
  }
108
108
  async verifyAllColumns(entity) {
@@ -122,7 +122,7 @@ export class PostgresSchemaBuilder {
122
122
  }
123
123
  }
124
124
  catch (err) {
125
- console.log(err);
125
+ console.error(err);
126
126
  }
127
127
  }
128
128
  }
@@ -0,0 +1,31 @@
1
+ import * as express from 'express';
2
+ import { RemultServer, RemultServerOptions } from './server/expressBridge';
3
+ import { Remult } from './src/context';
4
+ import { ServerEventChannelSubscribeDTO } from './src/live-query/LiveQuerySubscriber';
5
+ import { ServerEventDispatcher } from './src/live-query/LiveQueryPublisher';
6
+ export declare function remultExpress(options?: RemultServerOptions<express.Request> & {
7
+ bodyParser?: boolean;
8
+ bodySizeLimit?: string;
9
+ serverEventDispatcher?: (router: express.Router, server: RemultServer) => ServerEventDispatcher;
10
+ }): express.RequestHandler & RemultServer;
11
+ export declare class ServerEventsController implements ServerEventDispatcher {
12
+ private canUserConnectToChannel?;
13
+ subscribeToChannel({ channel, clientId }: ServerEventChannelSubscribeDTO, res: import('express').Response, remult: Remult, remove?: boolean): void;
14
+ connections: clientConnection[];
15
+ constructor(canUserConnectToChannel?: (channel: string, remult: Remult) => boolean);
16
+ sendChannelMessage<T>(channel: string, message: any): void;
17
+ openHttpServerStream(req: import('express').Request, res: import('express').Response): clientConnection;
18
+ debug(): void;
19
+ debugFileSaver: (x: any) => void;
20
+ }
21
+ declare class clientConnection {
22
+ response: import('express').Response;
23
+ channels: Record<string, boolean>;
24
+ close(): void;
25
+ closed: boolean;
26
+ write(eventData: string, eventType?: string): void;
27
+ connectionId: any;
28
+ constructor(response: import('express').Response);
29
+ sendLiveMessage(): void;
30
+ }
31
+ export {};
@@ -0,0 +1,157 @@
1
+ import * as express from 'express';
2
+ import { createRemultServer } from './server/expressBridge';
3
+ import { liveQueryKeepAliveRoute, streamUrl } from './src/live-query/LiveQuerySubscriber';
4
+ import { LiveQueryPublisher, LiveQueryStorageInMemoryImplementation } from './src/live-query/LiveQueryPublisher';
5
+ import { v4 as uuid } from 'uuid';
6
+ import { remult } from './src/remult-proxy';
7
+ import { getEntityKey } from './src/remult3';
8
+ export function remultExpress(options) {
9
+ let app = express.Router();
10
+ if (!options) {
11
+ options = {};
12
+ }
13
+ if (options.bodySizeLimit === undefined) {
14
+ options.bodySizeLimit = '10mb';
15
+ }
16
+ if (options?.bodyParser !== false) {
17
+ app.use(express.json({ limit: options.bodySizeLimit }));
18
+ app.use(express.urlencoded({ extended: true, limit: options.bodySizeLimit }));
19
+ }
20
+ const server = createRemultServer(options);
21
+ server.registerRouter(app);
22
+ if (!options.serverEventDispatcher) {
23
+ options.serverEventDispatcher = (router, server) => {
24
+ return buildHttpServerEventDispatcher(router, options.rootPath, server);
25
+ };
26
+ }
27
+ app.post(options.rootPath + liveQueryKeepAliveRoute, (r, res, n) => server.withRemult(r, res, n), async (req, res) => {
28
+ res.send(await remult.liveQueryPublisher.storage.keepAliveAndReturnUnknownIds(req.body));
29
+ });
30
+ server.liveQueryManager = new LiveQueryPublisher(options.serverEventDispatcher(app, server), new LiveQueryStorageInMemoryImplementation(), async (req, entityKey, what) => {
31
+ for (const e of options.entities) {
32
+ let key = getEntityKey(e);
33
+ if (key === entityKey) {
34
+ await new Promise((result) => {
35
+ server.withRemult(options.requestSerializer.fromJson(req), undefined, async () => {
36
+ await what(remult.repo(e));
37
+ result({});
38
+ });
39
+ });
40
+ return;
41
+ }
42
+ }
43
+ throw new Error("Couldn't find entity " + entityKey);
44
+ });
45
+ return Object.assign(app, {
46
+ getRemult: (req) => server.getRemult(req),
47
+ openApiDoc: (options) => server.openApiDoc(options),
48
+ registerRouter: x => server.registerRouter(x),
49
+ withRemult: (...args) => server.withRemult(...args)
50
+ });
51
+ }
52
+ export class ServerEventsController {
53
+ constructor(canUserConnectToChannel) {
54
+ this.canUserConnectToChannel = canUserConnectToChannel;
55
+ this.connections = [];
56
+ this.debugFileSaver = () => { };
57
+ if (!this.canUserConnectToChannel) {
58
+ this.canUserConnectToChannel = () => true;
59
+ }
60
+ }
61
+ subscribeToChannel({ channel, clientId }, res, remult, remove = false) {
62
+ for (const c of this.connections) {
63
+ if (c.connectionId === clientId) {
64
+ if (this.canUserConnectToChannel(channel, remult)) {
65
+ if (remove)
66
+ delete c.channels[channel];
67
+ else
68
+ c.channels[channel] = true;
69
+ res.json("ok");
70
+ this.debug();
71
+ return;
72
+ }
73
+ else {
74
+ res.sendStatus(403);
75
+ this.debug();
76
+ return;
77
+ }
78
+ }
79
+ }
80
+ res.sendStatus(404);
81
+ }
82
+ sendChannelMessage(channel, message) {
83
+ const data = JSON.stringify({ channel, data: message });
84
+ for (const sc of this.connections) {
85
+ if (sc.channels[channel]) {
86
+ sc.write(data);
87
+ }
88
+ }
89
+ }
90
+ openHttpServerStream(req, res) {
91
+ res.writeHead(200, {
92
+ 'Content-Type': 'text/event-stream',
93
+ 'Cache-Control': 'no-cache',
94
+ 'Connection': 'keep-alive'
95
+ });
96
+ const cc = new clientConnection(res);
97
+ //const lastEventId = req.headers['last-event-id'];
98
+ this.connections.push(cc);
99
+ this.debug();
100
+ req.on("close", () => {
101
+ cc.close();
102
+ this.connections = this.connections.filter(s => s !== cc);
103
+ this.debug();
104
+ });
105
+ return cc;
106
+ }
107
+ debug() {
108
+ this.debugFileSaver(this.connections.map(x => ({
109
+ id: x.connectionId,
110
+ channels: x.channels
111
+ })));
112
+ }
113
+ }
114
+ class clientConnection {
115
+ constructor(response) {
116
+ this.response = response;
117
+ this.channels = {};
118
+ this.closed = false;
119
+ this.connectionId = uuid();
120
+ this.write(this.connectionId, "connectionId");
121
+ this.sendLiveMessage();
122
+ }
123
+ close() {
124
+ this.closed = true;
125
+ }
126
+ write(eventData, eventType = "message") {
127
+ let event = "event:" + eventType;
128
+ // if (id != undefined)
129
+ // event += "\nid:" + id;
130
+ this.response.write(event + "\ndata:" + eventData + "\n\n");
131
+ let r = this.response;
132
+ if (r.flush)
133
+ r.flush();
134
+ }
135
+ sendLiveMessage() {
136
+ if (this.closed)
137
+ return;
138
+ this.write("", "keep-alive");
139
+ setTimeout(() => {
140
+ this.sendLiveMessage();
141
+ }, 45000);
142
+ }
143
+ }
144
+ function buildHttpServerEventDispatcher(router, apiPath, server) {
145
+ const streamPath = apiPath + '/' + streamUrl;
146
+ let httpServerEvents = new ServerEventsController();
147
+ router.get(streamPath, (r, res, next) => server.withRemult(r, res, next), (req, res) => {
148
+ remult.liveQueryPublisher.dispatcher.openHttpServerStream(req, res);
149
+ });
150
+ router.post(streamPath + '/subscribe', (r, res, next) => server.withRemult(r, res, next), (req, res) => {
151
+ remult.liveQueryPublisher.dispatcher.subscribeToChannel(req.body, res, remult);
152
+ });
153
+ router.post(streamPath + '/unsubscribe', (r, res, next) => server.withRemult(r, res, next), (req, res) => {
154
+ remult.liveQueryPublisher.dispatcher.subscribeToChannel(req.body, res, remult, true);
155
+ });
156
+ return httpServerEvents;
157
+ }
File without changes
@@ -1,4 +1,4 @@
1
- import { createRemultServer } from './server/index';
1
+ import { createRemultServer } from './server/expressBridge';
2
2
  export function remultFastify(options) {
3
3
  function fastifyHandler(handler) {
4
4
  const response = (req, res) => {
File without changes
@@ -1,6 +1,6 @@
1
- import { createRemultServerCore } from "./server/expressBridge";
1
+ import { createRemultServer } from "./server/expressBridge";
2
2
  export function remultFresh(options, response) {
3
- const server = createRemultServerCore(options);
3
+ const server = createRemultServer(options);
4
4
  return {
5
5
  getRemult: r => server.getRemult(r),
6
6
  openApiDoc: x => server.openApiDoc(x),
File without changes
@@ -153,15 +153,8 @@ class KnexEntityDataProvider {
153
153
  }
154
154
  let insert = this.knex(e.entityName).insert(insertObject);
155
155
  if (isAutoIncrement(this.entity.idMetadata.field)) {
156
- let newId;
157
- if (this.knex.client.config.client === 'mysql2') {
158
- let result = await insert;
159
- newId = result[0];
160
- }
161
- else {
162
- let result = await insert.returning(this.entity.idMetadata.field.key);
163
- newId = result[0].id;
164
- }
156
+ let result = await insert.returning(this.entity.idMetadata.field.key);
157
+ let newId = result[0].id;
165
158
  resultFilter = new Filter(x => x.isEqualTo(this.entity.idMetadata.field, newId));
166
159
  }
167
160
  else
@@ -263,7 +256,7 @@ export class KnexSchemaBuilder {
263
256
  this.additionalWhere = '';
264
257
  }
265
258
  async verifyStructureOfAllEntities(remult) {
266
- console.log("start verify structure");
259
+ console.info("start verify structure");
267
260
  for (const entity of allEntities) {
268
261
  let metadata = remult.repo(entity).metadata;
269
262
  try {
@@ -326,7 +319,7 @@ export class KnexSchemaBuilder {
326
319
  }
327
320
  }
328
321
  catch (err) {
329
- console.log(err);
322
+ console.error(err);
330
323
  }
331
324
  }
332
325
  }
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,9 +1,11 @@
1
- import { queuedJobInfoResponse } from '../src/server-action';
1
+ import { ActionInterface, queuedJobInfoResponse } from '../src/server-action';
2
2
  import { DataProvider } from '../src/data-interfaces';
3
- import { Remult, UserInfo } from '../src/context';
3
+ import { DataApi, DataApiRequest, DataApiResponse } from '../src/data-api';
4
+ import { AllowedForInstance, Remult, UserInfo } from '../src/context';
4
5
  import { ClassType } from '../classType';
5
6
  import { Repository } from '../src/remult3';
6
7
  import { IdEntity } from '../src/id-entity';
8
+ import { LiveQueryPublisher } from '../src/live-query/LiveQueryPublisher';
7
9
  export interface RemultServerOptions<RequestType extends GenericRequest> {
8
10
  /** Sets a database connection for Remult.
9
11
  *
@@ -12,6 +14,10 @@ export interface RemultServerOptions<RequestType extends GenericRequest> {
12
14
  dataProvider?: DataProvider | Promise<DataProvider> | (() => Promise<DataProvider | undefined>);
13
15
  queueStorage?: QueueStorage;
14
16
  initRequest?: (remult: Remult, origReq: RequestType) => Promise<void>;
17
+ requestSerializer?: {
18
+ toJson: (request: RequestType) => any;
19
+ fromJson: (request: any) => RequestType;
20
+ };
15
21
  getUser?: (request: RequestType) => Promise<UserInfo>;
16
22
  initApi?: (remult: Remult) => void | Promise<void>;
17
23
  logApiEndPoints?: boolean;
@@ -20,7 +26,7 @@ export interface RemultServerOptions<RequestType extends GenericRequest> {
20
26
  controllers?: ClassType<any>[];
21
27
  rootPath?: string;
22
28
  }
23
- export declare function createRemultServerCore<RequestType extends GenericRequest = GenericRequest>(options?: RemultServerOptions<RequestType>): RemultServer;
29
+ export declare function createRemultServer<RequestType extends GenericRequest = GenericRequest>(options?: RemultServerOptions<RequestType>): RemultServer;
24
30
  export declare type GenericRequestHandler = (req: GenericRequest, res: GenericResponse, next: VoidFunction) => void;
25
31
  export interface ServerHandleResponse {
26
32
  data?: any;
@@ -57,14 +63,39 @@ export interface GenericResponse {
57
63
  status(statusCode: number): GenericResponse;
58
64
  end(): any;
59
65
  }
60
- export declare class RemultAsyncLocalStorage {
61
- private readonly remultObjectStorage;
62
- static enable(): void;
63
- static disable(): void;
64
- constructor(remultObjectStorage: import('async_hooks').AsyncLocalStorage<Remult>);
65
- run(remult: Remult, callback: VoidFunction): void;
66
- getRemult(): Remult;
67
- static instance: RemultAsyncLocalStorage;
66
+ export declare class RemultServerImplementation implements RemultServer {
67
+ queue: inProcessQueueHandler;
68
+ options: RemultServerOptions<GenericRequest>;
69
+ dataProvider: DataProvider | Promise<DataProvider>;
70
+ constructor(queue: inProcessQueueHandler, options: RemultServerOptions<GenericRequest>, dataProvider: DataProvider | Promise<DataProvider>);
71
+ liveQueryManager: LiveQueryPublisher;
72
+ withRemult<T>(req: GenericRequest, res: GenericResponse, next: VoidFunction): void;
73
+ routeImpl: RouteImplementation;
74
+ handle(req: GenericRequest, gRes?: GenericResponse): Promise<ServerHandleResponse>;
75
+ registeredRouter: boolean;
76
+ registerRouter(r: GenericRouter): void;
77
+ add(key: string, dataApiFactory: ((req: Remult) => DataApi), r: GenericRouter): void;
78
+ process(what: (remult: Remult, myReq: DataApiRequest, myRes: DataApiResponse, origReq: GenericRequest) => Promise<void>): (req: GenericRequest, res: GenericResponse) => Promise<void>;
79
+ getRemult(req: GenericRequest): Promise<Remult>;
80
+ hasQueue: boolean;
81
+ addAction(action: ActionInterface, r: GenericRouter): void;
82
+ openApiDoc(options: {
83
+ title: string;
84
+ version?: string;
85
+ }): any;
86
+ backendMethodsOpenApi: {
87
+ path: string;
88
+ allowed: AllowedForInstance<any>;
89
+ tag: string;
90
+ }[];
91
+ }
92
+ declare class inProcessQueueHandler {
93
+ private storage;
94
+ constructor(storage: QueueStorage);
95
+ submitJob(url: string, req: Remult, body: any): Promise<string>;
96
+ mapQueuedAction(url: string, what: (data: any, r: Remult, res: ApiActionResponse) => void): void;
97
+ actions: Map<string, (data: any, r: Remult, res: ApiActionResponse) => void>;
98
+ getJobInfo(queuedJobId: string): Promise<queuedJobInfo>;
68
99
  }
69
100
  export interface queuedJobInfo {
70
101
  info: queuedJobInfoResponse;
@@ -90,6 +121,12 @@ export declare class EntityQueueStorage implements QueueStorage {
90
121
  getJobInfo(queuedJobId: string): Promise<queuedJobInfo>;
91
122
  createJob(url: string, userId: string): Promise<string>;
92
123
  }
124
+ declare class RouteImplementation {
125
+ map: Map<string, Map<string, GenericRequestHandler>>;
126
+ route(path: string): SpecificRoute;
127
+ handle(req: GenericRequest, gRes?: GenericResponse): Promise<ServerHandleResponse | undefined>;
128
+ middleware(req: GenericRequest, res: GenericResponse, next: VoidFunction): void;
129
+ }
93
130
  export declare class JobsInQueueEntity extends IdEntity {
94
131
  userId: string;
95
132
  url: string;
@@ -100,3 +137,4 @@ export declare class JobsInQueueEntity extends IdEntity {
100
137
  error: boolean;
101
138
  progress: number;
102
139
  }
140
+ export {};