remult 0.22.6 → 0.22.7-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 (492) hide show
  1. package/SseSubscriptionServer.d.ts +3 -3
  2. package/ably.d.ts +1 -1
  3. package/esm/SseSubscriptionServer.d.ts +3 -3
  4. package/esm/ably.d.ts +1 -1
  5. package/esm/graphql.d.ts +1 -1
  6. package/esm/graphql.js +32 -31
  7. package/esm/index.d.ts +6 -2
  8. package/esm/index.js +5 -5
  9. package/esm/live-query/data-provider-live-query-storage.d.ts +4 -3
  10. package/esm/live-query/data-provider-live-query-storage.js +2 -1
  11. package/esm/postgres/postgres-data-provider.d.ts +3 -3
  12. package/esm/postgres/postgres-data-provider.js +1 -1
  13. package/esm/postgres/schema-builder.d.ts +8 -5
  14. package/esm/postgres/schema-builder.js +52 -15
  15. package/esm/remult-fastify.d.ts +1 -1
  16. package/esm/remult-fresh.d.ts +1 -1
  17. package/esm/remult-fresh.js +1 -1
  18. package/esm/remult-knex/index.d.ts +5 -4
  19. package/esm/remult-knex/index.js +13 -9
  20. package/esm/remult-mongo.d.ts +3 -3
  21. package/esm/remult-mongo.js +5 -4
  22. package/esm/remult-next.d.ts +2 -2
  23. package/esm/remult-next.js +1 -1
  24. package/esm/remult-sveltekit.d.ts +2 -2
  25. package/esm/remult-sveltekit.js +1 -1
  26. package/esm/server/JsonEntityFileStorage.d.ts +2 -1
  27. package/esm/server/JsonEntityFileStorage.js +1 -1
  28. package/esm/server/expressBridge.d.ts +7 -5
  29. package/esm/server/expressBridge.js +11 -8
  30. package/esm/server/index.d.ts +4 -4
  31. package/esm/server/index.js +3 -3
  32. package/esm/server/initDataProvider.d.ts +1 -1
  33. package/esm/src/CompoundIdField.d.ts +27 -0
  34. package/esm/src/CompoundIdField.js +41 -0
  35. package/esm/src/buildRestDataProvider.d.ts +1 -1
  36. package/esm/src/column-interfaces.d.ts +10 -4
  37. package/esm/src/column.d.ts +2 -29
  38. package/esm/src/column.js +2 -58
  39. package/esm/src/context.d.ts +5 -5
  40. package/esm/src/context.js +3 -3
  41. package/esm/src/data-api.d.ts +2 -2
  42. package/esm/src/data-api.js +5 -4
  43. package/esm/src/data-interfaces.d.ts +2 -2
  44. package/esm/src/data-providers/array-entity-data-provider.d.ts +2 -2
  45. package/esm/src/data-providers/array-entity-data-provider.js +2 -2
  46. package/esm/src/data-providers/in-memory-database.d.ts +3 -3
  47. package/esm/src/data-providers/json-data-provider.d.ts +2 -2
  48. package/esm/src/data-providers/rest-data-provider.d.ts +3 -3
  49. package/esm/src/data-providers/rest-data-provider.js +2 -2
  50. package/esm/src/data-providers/sql-database.d.ts +6 -5
  51. package/esm/src/data-providers/sql-database.js +5 -5
  52. package/esm/src/data-providers/web-sql-data-provider.d.ts +4 -4
  53. package/esm/src/data-providers/web-sql-data-provider.js +2 -2
  54. package/esm/src/entity.d.ts +7 -3
  55. package/esm/src/filter/filter-consumer-bridge-to-sql-request.d.ts +5 -5
  56. package/esm/src/filter/filter-consumer-bridge-to-sql-request.js +1 -1
  57. package/esm/src/filter/filter-consumer-bridge-to-url-builder.d.ts +0 -1
  58. package/esm/src/filter/filter-consumer-bridge-to-url-builder.js +0 -1
  59. package/esm/src/filter/filter-interfaces.d.ts +4 -3
  60. package/esm/src/filter/filter-interfaces.js +24 -1
  61. package/esm/src/live-query/LiveQueryClient.js +3 -3
  62. package/esm/src/live-query/SseSubscriptionClient.d.ts +1 -1
  63. package/esm/src/live-query/SseSubscriptionClient.js +2 -2
  64. package/esm/src/live-query/SubscriptionChannel.d.ts +1 -1
  65. package/esm/src/live-query/SubscriptionChannel.js +2 -1
  66. package/esm/src/remult-proxy.js +9 -2
  67. package/esm/src/remult3/DecoratorReplacer.d.ts +1 -1
  68. package/esm/src/remult3/RepositoryImplementation.d.ts +9 -40
  69. package/esm/src/remult3/RepositoryImplementation.js +20 -132
  70. package/esm/src/remult3/__updateEntityBasedOnWhere.d.ts +2 -0
  71. package/esm/src/remult3/__updateEntityBasedOnWhere.js +24 -0
  72. package/esm/src/remult3/entity.d.ts +28 -0
  73. package/esm/src/remult3/entity.js +70 -0
  74. package/esm/src/remult3/getEntityRef.d.ts +9 -0
  75. package/esm/src/remult3/getEntityRef.js +27 -0
  76. package/esm/src/remult3/remult3.d.ts +7 -7
  77. package/esm/src/resultCompoundIdFilter.d.ts +3 -0
  78. package/esm/src/resultCompoundIdFilter.js +16 -0
  79. package/esm/src/server-action-info.d.ts +10 -0
  80. package/esm/src/server-action-info.js +12 -0
  81. package/esm/src/server-action.d.ts +4 -13
  82. package/esm/src/server-action.js +4 -14
  83. package/esm/src/sort.d.ts +2 -2
  84. package/esm/src/sort.js +1 -1
  85. package/esm/src/sql-command.d.ts +1 -1
  86. package/esm/src/validators.d.ts +1 -1
  87. package/esm/src/valueConverters.d.ts +1 -1
  88. package/graphql.d.ts +1 -1
  89. package/graphql.js +5 -4
  90. package/index.d.ts +6 -2
  91. package/index.js +19 -19
  92. package/live-query/data-provider-live-query-storage.d.ts +4 -3
  93. package/live-query/data-provider-live-query-storage.js +8 -7
  94. package/package.json +1 -1
  95. package/postgres/postgres-data-provider.d.ts +3 -3
  96. package/postgres/postgres-data-provider.js +1 -1
  97. package/postgres/schema-builder.d.ts +8 -5
  98. package/postgres/schema-builder.js +54 -13
  99. package/remult-fastify.d.ts +1 -1
  100. package/remult-fresh.d.ts +1 -1
  101. package/remult-knex/index.d.ts +5 -4
  102. package/remult-knex/index.js +15 -13
  103. package/remult-mongo.d.ts +3 -3
  104. package/remult-mongo.js +4 -3
  105. package/remult-next.d.ts +2 -2
  106. package/remult-sveltekit.d.ts +2 -2
  107. package/server/JsonEntityFileStorage.d.ts +2 -1
  108. package/server/JsonEntityFileStorage.js +1 -1
  109. package/server/expressBridge.d.ts +7 -5
  110. package/server/expressBridge.js +25 -22
  111. package/server/index.d.ts +4 -4
  112. package/server/index.js +5 -5
  113. package/server/initDataProvider.d.ts +1 -1
  114. package/src/CompoundIdField.d.ts +27 -0
  115. package/src/CompoundIdField.js +54 -0
  116. package/src/buildRestDataProvider.d.ts +1 -1
  117. package/src/column-interfaces.d.ts +10 -4
  118. package/src/column.d.ts +2 -29
  119. package/src/column.js +5 -72
  120. package/src/context.d.ts +5 -5
  121. package/src/context.js +5 -5
  122. package/src/data-api.d.ts +2 -2
  123. package/src/data-api.js +7 -6
  124. package/src/data-interfaces.d.ts +2 -2
  125. package/src/data-providers/array-entity-data-provider.d.ts +2 -2
  126. package/src/data-providers/array-entity-data-provider.js +2 -2
  127. package/src/data-providers/in-memory-database.d.ts +3 -3
  128. package/src/data-providers/json-data-provider.d.ts +2 -2
  129. package/src/data-providers/rest-data-provider.d.ts +3 -3
  130. package/src/data-providers/rest-data-provider.js +3 -3
  131. package/src/data-providers/sql-database.d.ts +6 -5
  132. package/src/data-providers/sql-database.js +6 -6
  133. package/src/data-providers/web-sql-data-provider.d.ts +4 -4
  134. package/src/data-providers/web-sql-data-provider.js +4 -4
  135. package/src/entity.d.ts +7 -3
  136. package/src/filter/filter-consumer-bridge-to-sql-request.d.ts +5 -5
  137. package/src/filter/filter-consumer-bridge-to-sql-request.js +2 -2
  138. package/src/filter/filter-consumer-bridge-to-url-builder.d.ts +0 -1
  139. package/src/filter/filter-consumer-bridge-to-url-builder.js +0 -2
  140. package/src/filter/filter-interfaces.d.ts +4 -3
  141. package/src/filter/filter-interfaces.js +28 -4
  142. package/src/live-query/LiveQueryClient.js +2 -2
  143. package/src/live-query/SseSubscriptionClient.d.ts +1 -1
  144. package/src/live-query/SseSubscriptionClient.js +3 -3
  145. package/src/live-query/SubscriptionChannel.d.ts +1 -1
  146. package/src/live-query/SubscriptionChannel.js +5 -4
  147. package/src/remult-proxy.js +9 -2
  148. package/src/remult3/DecoratorReplacer.d.ts +1 -1
  149. package/src/remult3/RepositoryImplementation.d.ts +9 -40
  150. package/src/remult3/RepositoryImplementation.js +57 -188
  151. package/src/remult3/__updateEntityBasedOnWhere.d.ts +2 -0
  152. package/src/remult3/__updateEntityBasedOnWhere.js +28 -0
  153. package/src/remult3/entity.d.ts +28 -0
  154. package/src/remult3/entity.js +88 -0
  155. package/src/remult3/getEntityRef.d.ts +9 -0
  156. package/src/remult3/getEntityRef.js +35 -0
  157. package/src/remult3/remult3.d.ts +7 -7
  158. package/src/resultCompoundIdFilter.d.ts +3 -0
  159. package/src/resultCompoundIdFilter.js +20 -0
  160. package/src/server-action-info.d.ts +10 -0
  161. package/src/server-action-info.js +15 -0
  162. package/src/server-action.d.ts +4 -13
  163. package/src/server-action.js +21 -31
  164. package/src/sort.d.ts +2 -2
  165. package/src/sort.js +3 -3
  166. package/src/sql-command.d.ts +1 -1
  167. package/src/validators.d.ts +1 -1
  168. package/src/valueConverters.d.ts +1 -1
  169. package/esm/angular/interfaces/index.d.ts +0 -1
  170. package/esm/angular/interfaces/index.js +0 -1
  171. package/esm/angular/interfaces/src/column-collection.d.ts +0 -70
  172. package/esm/angular/interfaces/src/column-collection.js +0 -341
  173. package/esm/angular/interfaces/src/data-area-settings.d.ts +0 -15
  174. package/esm/angular/interfaces/src/data-area-settings.js +0 -35
  175. package/esm/angular/interfaces/src/data-control-interfaces.d.ts +0 -36
  176. package/esm/angular/interfaces/src/data-control-interfaces.js +0 -57
  177. package/esm/angular/interfaces/src/dataList.d.ts +0 -13
  178. package/esm/angular/interfaces/src/dataList.js +0 -42
  179. package/esm/angular/interfaces/src/filter-helper.d.ts +0 -13
  180. package/esm/angular/interfaces/src/filter-helper.js +0 -59
  181. package/esm/angular/interfaces/src/grid-settings.d.ts +0 -145
  182. package/esm/angular/interfaces/src/grid-settings.js +0 -387
  183. package/esm/angular/interfaces/src/public_api.d.ts +0 -4
  184. package/esm/angular/interfaces/src/public_api.js +0 -4
  185. package/esm/angular/src/angular/RemultAngularPluginsService.d.ts +0 -4
  186. package/esm/angular/src/angular/RemultAngularPluginsService.js +0 -3
  187. package/esm/angular/src/angular/data-control/data-control2.component.d.ts +0 -49
  188. package/esm/angular/src/angular/data-control/data-control2.component.js +0 -138
  189. package/esm/core/SseSubscriptionServer.d.ts +0 -33
  190. package/esm/core/SseSubscriptionServer.js +0 -107
  191. package/esm/core/assign.d.ts +0 -1
  192. package/esm/core/assign.js +0 -5
  193. package/esm/core/classType.d.ts +0 -3
  194. package/esm/core/classType.js +0 -1
  195. package/esm/core/index.d.ts +0 -27
  196. package/esm/core/index.js +0 -25
  197. package/esm/core/inputTypes.d.ts +0 -9
  198. package/esm/core/inputTypes.js +0 -9
  199. package/esm/core/live-query/data-provider-live-query-storage.d.ts +0 -22
  200. package/esm/core/live-query/data-provider-live-query-storage.js +0 -71
  201. package/esm/core/postgres/index.d.ts +0 -2
  202. package/esm/core/postgres/index.js +0 -2
  203. package/esm/core/postgres/postgres-data-provider.d.ts +0 -36
  204. package/esm/core/postgres/postgres-data-provider.js +0 -120
  205. package/esm/core/postgres/schema-builder.d.ts +0 -17
  206. package/esm/core/postgres/schema-builder.js +0 -153
  207. package/esm/core/remult-fresh.d.ts +0 -17
  208. package/esm/core/remult-fresh.js +0 -29
  209. package/esm/core/remult-knex/index.d.ts +0 -30
  210. package/esm/core/remult-knex/index.js +0 -446
  211. package/esm/core/remult-mongo.d.ts +0 -24
  212. package/esm/core/remult-mongo.js +0 -254
  213. package/esm/core/server/JsonEntityFileStorage.d.ts +0 -10
  214. package/esm/core/server/JsonEntityFileStorage.js +0 -25
  215. package/esm/core/server/core.d.ts +0 -4
  216. package/esm/core/server/core.js +0 -4
  217. package/esm/core/server/expressBridge.d.ts +0 -182
  218. package/esm/core/server/expressBridge.js +0 -938
  219. package/esm/core/server/index.d.ts +0 -6
  220. package/esm/core/server/index.js +0 -9
  221. package/esm/core/server/initAsyncHooks.d.ts +0 -1
  222. package/esm/core/server/initAsyncHooks.js +0 -9
  223. package/esm/core/server/initDataProvider.d.ts +0 -2
  224. package/esm/core/server/initDataProvider.js +0 -14
  225. package/esm/core/src/__EntityValueProvider.d.ts +0 -11
  226. package/esm/core/src/__EntityValueProvider.js +0 -1
  227. package/esm/core/src/__RowsOfDataForTesting.d.ts +0 -3
  228. package/esm/core/src/__RowsOfDataForTesting.js +0 -1
  229. package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +0 -6
  230. package/esm/core/src/backend-tests/backend-database-test-setup.backend-spec.js +0 -147
  231. package/esm/core/src/backend-tests/my-test.backend-spec.d.ts +0 -1
  232. package/esm/core/src/backend-tests/my-test.backend-spec.js +0 -197
  233. package/esm/core/src/backend-tests/test-http-server.backend-spec.d.ts +0 -1
  234. package/esm/core/src/backend-tests/test-http-server.backend-spec.js +0 -167
  235. package/esm/core/src/buildRestDataProvider.d.ts +0 -31
  236. package/esm/core/src/buildRestDataProvider.js +0 -113
  237. package/esm/core/src/column-interfaces.d.ts +0 -154
  238. package/esm/core/src/column-interfaces.js +0 -7
  239. package/esm/core/src/column.d.ts +0 -58
  240. package/esm/core/src/column.js +0 -174
  241. package/esm/core/src/context.d.ts +0 -134
  242. package/esm/core/src/context.js +0 -286
  243. package/esm/core/src/data-api.d.ts +0 -39
  244. package/esm/core/src/data-api.js +0 -279
  245. package/esm/core/src/data-interfaces.d.ts +0 -41
  246. package/esm/core/src/data-interfaces.js +0 -12
  247. package/esm/core/src/data-providers/array-entity-data-provider.d.ts +0 -22
  248. package/esm/core/src/data-providers/array-entity-data-provider.js +0 -252
  249. package/esm/core/src/data-providers/in-memory-database.d.ts +0 -9
  250. package/esm/core/src/data-providers/in-memory-database.js +0 -14
  251. package/esm/core/src/data-providers/json-data-provider.d.ts +0 -12
  252. package/esm/core/src/data-providers/json-data-provider.js +0 -55
  253. package/esm/core/src/data-providers/rest-data-provider.d.ts +0 -49
  254. package/esm/core/src/data-providers/rest-data-provider.js +0 -256
  255. package/esm/core/src/data-providers/sql-database.d.ts +0 -33
  256. package/esm/core/src/data-providers/sql-database.js +0 -384
  257. package/esm/core/src/data-providers/web-sql-data-provider.d.ts +0 -24
  258. package/esm/core/src/data-providers/web-sql-data-provider.js +0 -143
  259. package/esm/core/src/entity.d.ts +0 -91
  260. package/esm/core/src/entity.js +0 -1
  261. package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.d.ts +0 -50
  262. package/esm/core/src/filter/filter-consumer-bridge-to-sql-request.js +0 -150
  263. package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.d.ts +0 -1
  264. package/esm/core/src/filter/filter-consumer-bridge-to-url-builder.js +0 -1
  265. package/esm/core/src/filter/filter-interfaces.d.ts +0 -85
  266. package/esm/core/src/filter/filter-interfaces.js +0 -477
  267. package/esm/core/src/live-query/LiveQueryClient.d.ts +0 -20
  268. package/esm/core/src/live-query/LiveQueryClient.js +0 -188
  269. package/esm/core/src/live-query/SseSubscriptionClient.d.ts +0 -5
  270. package/esm/core/src/live-query/SseSubscriptionClient.js +0 -86
  271. package/esm/core/src/live-query/SubscriptionChannel.d.ts +0 -72
  272. package/esm/core/src/live-query/SubscriptionChannel.js +0 -123
  273. package/esm/core/src/live-query/SubscriptionServer.d.ts +0 -53
  274. package/esm/core/src/live-query/SubscriptionServer.js +0 -111
  275. package/esm/core/src/live-query/live-query-tests.spec.d.ts +0 -6
  276. package/esm/core/src/live-query/live-query-tests.spec.js +0 -952
  277. package/esm/core/src/remult-proxy.d.ts +0 -35
  278. package/esm/core/src/remult-proxy.js +0 -113
  279. package/esm/core/src/remult3/DecoratorReplacer.d.ts +0 -10
  280. package/esm/core/src/remult3/DecoratorReplacer.js +0 -20
  281. package/esm/core/src/remult3/RepositoryImplementation.d.ts +0 -355
  282. package/esm/core/src/remult3/RepositoryImplementation.js +0 -2109
  283. package/esm/core/src/remult3/index.d.ts +0 -2
  284. package/esm/core/src/remult3/index.js +0 -2
  285. package/esm/core/src/remult3/remult3.d.ts +0 -395
  286. package/esm/core/src/remult3/remult3.js +0 -2
  287. package/esm/core/src/server-action.d.ts +0 -81
  288. package/esm/core/src/server-action.js +0 -394
  289. package/esm/core/src/shared-tests/db-tests-setup.d.ts +0 -32
  290. package/esm/core/src/shared-tests/db-tests-setup.js +0 -78
  291. package/esm/core/src/shared-tests/db-tests.db-tests.d.ts +0 -25
  292. package/esm/core/src/shared-tests/db-tests.db-tests.js +0 -810
  293. package/esm/core/src/shared-tests/deleteAll.d.ts +0 -2
  294. package/esm/core/src/shared-tests/deleteAll.js +0 -4
  295. package/esm/core/src/shared-tests/entityWithValidations.d.ts +0 -14
  296. package/esm/core/src/shared-tests/entityWithValidations.js +0 -43
  297. package/esm/core/src/shared-tests/index.d.ts +0 -4
  298. package/esm/core/src/shared-tests/index.js +0 -4
  299. package/esm/core/src/shared-tests/test-custom-id-column.spec.d.ts +0 -1
  300. package/esm/core/src/shared-tests/test-custom-id-column.spec.js +0 -67
  301. package/esm/core/src/shared-tests/test-special-value.spec.d.ts +0 -10
  302. package/esm/core/src/shared-tests/test-special-value.spec.js +0 -73
  303. package/esm/core/src/shared-tests/test-update-with-null.spec.d.ts +0 -1
  304. package/esm/core/src/shared-tests/test-update-with-null.spec.js +0 -31
  305. package/esm/core/src/sort.d.ts +0 -16
  306. package/esm/core/src/sort.js +0 -103
  307. package/esm/core/src/sql-command.d.ts +0 -19
  308. package/esm/core/src/sql-command.js +0 -1
  309. package/esm/core/src/test.d.ts +0 -3
  310. package/esm/core/src/test.js +0 -12
  311. package/esm/core/src/tests/Done.d.ts +0 -5
  312. package/esm/core/src/tests/Done.js +0 -9
  313. package/esm/core/src/tests/RowProvider.spec.d.ts +0 -16
  314. package/esm/core/src/tests/RowProvider.spec.js +0 -631
  315. package/esm/core/src/tests/TestDataApiResponse.d.ts +0 -10
  316. package/esm/core/src/tests/TestDataApiResponse.js +0 -22
  317. package/esm/core/src/tests/basicRowFunctionality.spec.d.ts +0 -8
  318. package/esm/core/src/tests/basicRowFunctionality.spec.js +0 -2103
  319. package/esm/core/src/tests/c.d.ts +0 -8
  320. package/esm/core/src/tests/c.js +0 -13
  321. package/esm/core/src/tests/createData.d.ts +0 -7
  322. package/esm/core/src/tests/createData.js +0 -22
  323. package/esm/core/src/tests/d.d.ts +0 -6
  324. package/esm/core/src/tests/d.js +0 -11
  325. package/esm/core/src/tests/dWithPrefilter.d.ts +0 -7
  326. package/esm/core/src/tests/dWithPrefilter.js +0 -18
  327. package/esm/core/src/tests/entityForCustomFilter.d.ts +0 -16
  328. package/esm/core/src/tests/entityForCustomFilter.js +0 -33
  329. package/esm/core/src/tests/entityWithValidationsOnColumn.d.ts +0 -5
  330. package/esm/core/src/tests/entityWithValidationsOnColumn.js +0 -13
  331. package/esm/core/src/tests/frontend-database-tests-setup.spec.d.ts +0 -4
  332. package/esm/core/src/tests/frontend-database-tests-setup.spec.js +0 -37
  333. package/esm/core/src/tests/h.d.ts +0 -6
  334. package/esm/core/src/tests/h.js +0 -24
  335. package/esm/core/src/tests/remult-3-basic-tests.spec.d.ts +0 -1
  336. package/esm/core/src/tests/remult-3-basic-tests.spec.js +0 -236
  337. package/esm/core/src/tests/remult-3-entities.d.ts +0 -23
  338. package/esm/core/src/tests/remult-3-entities.js +0 -39
  339. package/esm/core/src/tests/tasks.d.ts +0 -6
  340. package/esm/core/src/tests/tasks.js +0 -10
  341. package/esm/core/src/tests/test-context-as-storage.spec.d.ts +0 -0
  342. package/esm/core/src/tests/test-context-as-storage.spec.js +0 -1
  343. package/esm/core/src/tests/test-data-api/predefined-filter.spec.d.ts +0 -1
  344. package/esm/core/src/tests/test-data-api/predefined-filter.spec.js +0 -389
  345. package/esm/core/src/tests/test-data-api/test-put-with-validation.spec.d.ts +0 -5
  346. package/esm/core/src/tests/test-data-api/test-put-with-validation.spec.js +0 -152
  347. package/esm/core/src/tests/test-decorator-precedence.spec.d.ts +0 -1
  348. package/esm/core/src/tests/test-decorator-precedence.spec.js +0 -38
  349. package/esm/core/src/tests/test-default-value.spec.d.ts +0 -1
  350. package/esm/core/src/tests/test-default-value.spec.js +0 -33
  351. package/esm/core/src/tests/test-entity-inheritance.spec.d.ts +0 -14
  352. package/esm/core/src/tests/test-entity-inheritance.spec.js +0 -82
  353. package/esm/core/src/tests/test-exceptions.spec.d.ts +0 -1
  354. package/esm/core/src/tests/test-exceptions.spec.js +0 -375
  355. package/esm/core/src/tests/test-json.spec.d.ts +0 -1
  356. package/esm/core/src/tests/test-json.spec.js +0 -115
  357. package/esm/core/src/tests/test-many-to-one-relation-in-entity.spec.d.ts +0 -9
  358. package/esm/core/src/tests/test-many-to-one-relation-in-entity.spec.js +0 -809
  359. package/esm/core/src/tests/test-non-active-record.spec.d.ts +0 -1
  360. package/esm/core/src/tests/test-non-active-record.spec.js +0 -66
  361. package/esm/core/src/tests/test-object-column.spec.d.ts +0 -1
  362. package/esm/core/src/tests/test-object-column.spec.js +0 -189
  363. package/esm/core/src/tests/test-paged-foreach.spec.d.ts +0 -1
  364. package/esm/core/src/tests/test-paged-foreach.spec.js +0 -328
  365. package/esm/core/src/tests/test-remult-angular.spec.d.ts +0 -1
  366. package/esm/core/src/tests/test-remult-angular.spec.js +0 -23
  367. package/esm/core/src/tests/test-server-controller.spec.d.ts +0 -7
  368. package/esm/core/src/tests/test-server-controller.spec.js +0 -489
  369. package/esm/core/src/tests/test-server-expressions.spec.d.ts +0 -1
  370. package/esm/core/src/tests/test-server-expressions.spec.js +0 -178
  371. package/esm/core/src/tests/test-server-method-on-entity.spec.d.ts +0 -1
  372. package/esm/core/src/tests/test-server-method-on-entity.spec.js +0 -306
  373. package/esm/core/src/tests/test-sql-expression.spec.d.ts +0 -5
  374. package/esm/core/src/tests/test-sql-expression.spec.js +0 -205
  375. package/esm/core/src/tests/test-sql.spec.d.ts +0 -1
  376. package/esm/core/src/tests/test-sql.spec.js +0 -170
  377. package/esm/core/src/tests/test-subscribe.spec.d.ts +0 -1
  378. package/esm/core/src/tests/test-subscribe.spec.js +0 -135
  379. package/esm/core/src/tests/test-type-recovery.spec.d.ts +0 -1
  380. package/esm/core/src/tests/test-type-recovery.spec.js +0 -49
  381. package/esm/core/src/tests/test-where-api.spec.d.ts +0 -1
  382. package/esm/core/src/tests/test-where-api.spec.js +0 -434
  383. package/esm/core/src/tests/testHelper.spec.d.ts +0 -36
  384. package/esm/core/src/tests/testHelper.spec.js +0 -226
  385. package/esm/core/src/tests/testModel/models.d.ts +0 -16
  386. package/esm/core/src/tests/testModel/models.js +0 -25
  387. package/esm/core/src/validators.d.ts +0 -14
  388. package/esm/core/src/validators.js +0 -33
  389. package/esm/core/src/valueConverters.d.ts +0 -13
  390. package/esm/core/src/valueConverters.js +0 -197
  391. package/esm/core/urlBuilder.d.ts +0 -6
  392. package/esm/core/urlBuilder.js +0 -20
  393. package/esm/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +0 -7
  394. package/esm/src/backend-tests/backend-database-test-setup.backend-spec.js +0 -233
  395. package/esm/src/remult3/index.d.ts +0 -2
  396. package/esm/src/remult3/index.js +0 -2
  397. package/esm/src/shared-tests/db-tests-setup.d.ts +0 -34
  398. package/esm/src/shared-tests/db-tests-setup.js +0 -80
  399. package/esm/src/shared-tests/db-tests.db-tests.d.ts +0 -25
  400. package/esm/src/shared-tests/db-tests.db-tests.js +0 -1176
  401. package/esm/src/shared-tests/deleteAll.d.ts +0 -2
  402. package/esm/src/shared-tests/deleteAll.js +0 -4
  403. package/esm/src/shared-tests/entityWithValidations.d.ts +0 -14
  404. package/esm/src/shared-tests/entityWithValidations.js +0 -53
  405. package/esm/src/shared-tests/index.d.ts +0 -4
  406. package/esm/src/shared-tests/index.js +0 -4
  407. package/esm/src/shared-tests/test-custom-id-column.spec.d.ts +0 -1
  408. package/esm/src/shared-tests/test-custom-id-column.spec.js +0 -63
  409. package/esm/src/shared-tests/test-special-value.spec.d.ts +0 -10
  410. package/esm/src/shared-tests/test-special-value.spec.js +0 -88
  411. package/esm/src/shared-tests/test-update-with-null.spec.d.ts +0 -1
  412. package/esm/src/shared-tests/test-update-with-null.spec.js +0 -49
  413. package/esm/src/tests/Done.d.ts +0 -5
  414. package/esm/src/tests/Done.js +0 -11
  415. package/esm/src/tests/TestDataApiResponse.d.ts +0 -10
  416. package/esm/src/tests/TestDataApiResponse.js +0 -21
  417. package/esm/src/tests/c.d.ts +0 -8
  418. package/esm/src/tests/c.js +0 -22
  419. package/esm/src/tests/createData.d.ts +0 -7
  420. package/esm/src/tests/createData.js +0 -22
  421. package/esm/src/tests/d.d.ts +0 -6
  422. package/esm/src/tests/d.js +0 -19
  423. package/esm/src/tests/dWithPrefilter.d.ts +0 -7
  424. package/esm/src/tests/dWithPrefilter.js +0 -32
  425. package/esm/src/tests/entityForCustomFilter.d.ts +0 -16
  426. package/esm/src/tests/entityForCustomFilter.js +0 -51
  427. package/esm/src/tests/entityWithValidationsOnColumn.d.ts +0 -5
  428. package/esm/src/tests/entityWithValidationsOnColumn.js +0 -21
  429. package/esm/src/tests/frontend-database-tests-setup.spec.d.ts +0 -4
  430. package/esm/src/tests/frontend-database-tests-setup.spec.js +0 -37
  431. package/esm/src/tests/h.d.ts +0 -6
  432. package/esm/src/tests/h.js +0 -35
  433. package/esm/src/tests/remult-3-entities.d.ts +0 -23
  434. package/esm/src/tests/remult-3-entities.js +0 -72
  435. package/esm/src/tests/tasks.d.ts +0 -6
  436. package/esm/src/tests/tasks.js +0 -24
  437. package/esm/src/tests/testHelper.spec.d.ts +0 -36
  438. package/esm/src/tests/testHelper.spec.js +0 -236
  439. package/esm/src/tests/testModel/models.d.ts +0 -16
  440. package/esm/src/tests/testModel/models.js +0 -31
  441. package/esm/test-servers/shared/Task.d.ts +0 -9
  442. package/esm/test-servers/shared/Task.js +0 -32
  443. package/esm/test.d.ts +0 -5
  444. package/esm/test.js +0 -6
  445. package/src/backend-tests/backend-database-test-setup.backend-spec.d.ts +0 -7
  446. package/src/backend-tests/backend-database-test-setup.backend-spec.js +0 -454
  447. package/src/remult3/index.d.ts +0 -2
  448. package/src/remult3/index.js +0 -5
  449. package/src/shared-tests/db-tests-setup.d.ts +0 -34
  450. package/src/shared-tests/db-tests-setup.js +0 -185
  451. package/src/shared-tests/db-tests.db-tests.d.ts +0 -25
  452. package/src/shared-tests/db-tests.db-tests.js +0 -2540
  453. package/src/shared-tests/deleteAll.d.ts +0 -2
  454. package/src/shared-tests/deleteAll.js +0 -21
  455. package/src/shared-tests/entityWithValidations.d.ts +0 -14
  456. package/src/shared-tests/entityWithValidations.js +0 -80
  457. package/src/shared-tests/index.d.ts +0 -4
  458. package/src/shared-tests/index.js +0 -6
  459. package/src/shared-tests/test-custom-id-column.spec.d.ts +0 -1
  460. package/src/shared-tests/test-custom-id-column.spec.js +0 -111
  461. package/src/shared-tests/test-special-value.spec.d.ts +0 -10
  462. package/src/shared-tests/test-special-value.spec.js +0 -128
  463. package/src/shared-tests/test-update-with-null.spec.d.ts +0 -1
  464. package/src/shared-tests/test-update-with-null.spec.js +0 -91
  465. package/src/tests/Done.d.ts +0 -5
  466. package/src/tests/Done.js +0 -17
  467. package/src/tests/TestDataApiResponse.d.ts +0 -10
  468. package/src/tests/TestDataApiResponse.js +0 -28
  469. package/src/tests/c.d.ts +0 -8
  470. package/src/tests/c.js +0 -28
  471. package/src/tests/createData.d.ts +0 -7
  472. package/src/tests/createData.js +0 -50
  473. package/src/tests/d.d.ts +0 -6
  474. package/src/tests/d.js +0 -27
  475. package/src/tests/dWithPrefilter.d.ts +0 -7
  476. package/src/tests/dWithPrefilter.js +0 -45
  477. package/src/tests/entityForCustomFilter.d.ts +0 -16
  478. package/src/tests/entityForCustomFilter.js +0 -77
  479. package/src/tests/entityWithValidationsOnColumn.d.ts +0 -5
  480. package/src/tests/entityWithValidationsOnColumn.js +0 -29
  481. package/src/tests/frontend-database-tests-setup.spec.d.ts +0 -4
  482. package/src/tests/frontend-database-tests-setup.spec.js +0 -100
  483. package/src/tests/h.d.ts +0 -6
  484. package/src/tests/h.js +0 -44
  485. package/src/tests/remult-3-entities.d.ts +0 -23
  486. package/src/tests/remult-3-entities.js +0 -85
  487. package/src/tests/tasks.d.ts +0 -6
  488. package/src/tests/tasks.js +0 -30
  489. package/src/tests/testHelper.spec.d.ts +0 -36
  490. package/src/tests/testHelper.spec.js +0 -395
  491. package/src/tests/testModel/models.d.ts +0 -16
  492. package/src/tests/testModel/models.js +0 -39
@@ -1,135 +0,0 @@
1
- import { InMemoryDataProvider } from "../..";
2
- import { Remult } from "../context";
3
- import { Entity, EntityBase, Field, Fields } from "../remult3";
4
- import { Validators } from "../validators";
5
- describe("test subscribe", () => {
6
- it("basics", async () => {
7
- let repo = new Remult(new InMemoryDataProvider()).repo(myEntity);
8
- for (const del of await repo.find()) {
9
- await del.delete();
10
- }
11
- let state = {
12
- title: '',
13
- wasChanged: false,
14
- isNew: false,
15
- error: '',
16
- titleError: ''
17
- };
18
- let i = repo.create();
19
- let r = i._.subscribe(() => {
20
- state.title = i.title;
21
- state.wasChanged = i._.wasChanged();
22
- state.isNew = i._.isNew();
23
- state.error = i._.error;
24
- state.titleError = i.$.title.error;
25
- });
26
- i.title = 'a';
27
- expect(state.title).toBe('a');
28
- i.title = 'ab';
29
- expect(state.title).toBe("ab");
30
- expect(state.wasChanged).toBe(true);
31
- expect(state.isNew).toBe(true);
32
- let x = i.save();
33
- expect(i._.isLoading).toBe(true);
34
- await x;
35
- expect(i._.isLoading).toBe(false);
36
- expect(state.title).toBe('ab');
37
- expect(state.wasChanged).toBe(false);
38
- expect(state.isNew).toBe(false);
39
- i.$.title.error = 'error';
40
- expect(state.titleError).toBe('error');
41
- i._.error = "error";
42
- expect(state.error).toBe('error');
43
- });
44
- it("observed", async () => {
45
- let repo = new Remult(new InMemoryDataProvider()).repo(myEntity);
46
- for (const del of await repo.find()) {
47
- await del.delete();
48
- }
49
- let i = repo.create();
50
- let observed = false;
51
- i._.subscribe({
52
- reportChanged: () => { },
53
- reportObserved: () => observed = true
54
- });
55
- function testObserved(what) {
56
- observed = false;
57
- what();
58
- expect(observed).toBe(true);
59
- }
60
- testObserved(() => { i.title.toString(); });
61
- testObserved(() => { i.$.title.valueChanged(); });
62
- testObserved(() => { i.isNew(); });
63
- testObserved(() => { i._.wasChanged(); });
64
- });
65
- it("refInitWorks", async () => {
66
- let repo = new Remult(new InMemoryDataProvider()).repo(myEntity);
67
- for (const del of await repo.find()) {
68
- await del.delete();
69
- }
70
- entityRefInitCount = 0;
71
- let remultInitCount = 0;
72
- Remult.entityRefInit = () => remultInitCount++;
73
- let i = repo.create({ title: "a" });
74
- expect(entityRefInitCount).toBe(1);
75
- expect(remultInitCount).toBe(1);
76
- await i.save();
77
- expect(entityRefInitCount).toBe(1);
78
- expect(remultInitCount).toBe(1);
79
- Remult.entityRefInit = undefined;
80
- });
81
- it("test subscribe with many to one", async () => {
82
- const remult = new Remult(new InMemoryDataProvider());
83
- const repo = remult.repo(entityWithManyToOne);
84
- for (const del of await repo.find()) {
85
- await del.delete();
86
- }
87
- let refRowA = await remult.repo(myEntity).create({ title: 'a' }).save();
88
- let refRowB = await remult.repo(myEntity).create({ title: 'b' }).save();
89
- let reflect = { title: '' };
90
- let r = repo.create();
91
- let sub = r._.subscribe(() => reflect.title = r.entity?.title);
92
- r.entity = refRowA;
93
- expect(reflect.title).toBe('a');
94
- sub();
95
- r.entity = refRowB;
96
- expect(reflect.title).toBe('a');
97
- });
98
- it("test subscribe to field with many to one", async () => {
99
- const remult = new Remult(new InMemoryDataProvider());
100
- const repo = remult.repo(entityWithManyToOne);
101
- for (const del of await repo.find()) {
102
- await del.delete();
103
- }
104
- let refRowA = await remult.repo(myEntity).create({ title: 'a' }).save();
105
- let refRowB = await remult.repo(myEntity).create({ title: 'b' }).save();
106
- let reflect = { title: '' };
107
- let r = repo.create();
108
- let sub = r.$.entity.subscribe(() => reflect.title = r.entity?.title);
109
- r.entity = refRowA;
110
- expect(reflect.title).toBe('a');
111
- sub();
112
- r.entity = refRowB;
113
- expect(reflect.title).toBe('a');
114
- });
115
- });
116
- let entityRefInitCount = 0;
117
- @Entity("theEntity", {
118
- allowApiCrud: true,
119
- entityRefInit: () => entityRefInitCount++
120
- })
121
- class myEntity extends EntityBase {
122
- @Fields.string({
123
- validate: Validators.required
124
- })
125
- title = '';
126
- }
127
- @Entity("entityWithManyToOne", {
128
- allowApiCrud: true
129
- })
130
- class entityWithManyToOne extends EntityBase {
131
- @Fields.number()
132
- id = 0;
133
- @Field(() => myEntity)
134
- entity;
135
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,49 +0,0 @@
1
- import { Remult } from "../context";
2
- import { InMemoryDataProvider } from "../data-providers/in-memory-database";
3
- import { Entity, Fields } from "../remult3";
4
- import { describeClass } from "../remult3/DecoratorReplacer";
5
- describe("type recovery", () => {
6
- const entity = class {
7
- id = 0;
8
- date = new Date();
9
- };
10
- describeClass(entity, Entity("x"), {
11
- id: Fields.number(),
12
- date: Fields.dateOnly({
13
- validate: (_, ref) => ref.value.getFullYear() < 1980
14
- })
15
- });
16
- let mem = new InMemoryDataProvider();
17
- const repo = new Remult(mem).repo(entity);
18
- beforeEach(async () => {
19
- for (const item of await repo.find()) {
20
- await repo.delete(item);
21
- }
22
- });
23
- it("test insert works with Date", async () => {
24
- let r = await repo.insert({ id: 0, date: '1976-06-16' });
25
- expect(r.date.getFullYear()).toBe(1976);
26
- });
27
- it("test validate with Date", async () => {
28
- let r = await repo.validate({ id: 0, date: '1976-06-16' });
29
- expect(r).toBeUndefined();
30
- });
31
- it("test create", async () => {
32
- let r = repo.create({ id: 0, date: '1976-06-16' });
33
- expect(r.date.getFullYear()).toBe(1976);
34
- });
35
- it("test save works with Date", async () => {
36
- let r = await repo.save({ date: '1976-06-16' });
37
- expect(r.date.getFullYear()).toBe(1976);
38
- });
39
- it("test update using save", async () => {
40
- await repo.insert({ id: 1, date: '1975-06-16' });
41
- let r = await repo.save({ id: 1, date: '1976-06-16' });
42
- expect(r.date.getFullYear()).toBe(1976);
43
- });
44
- it("test update ", async () => {
45
- await repo.insert({ id: 1, date: '1975-06-16' });
46
- let r = await repo.update(1, { date: '1976-06-16' });
47
- expect(r.date.getFullYear()).toBe(1976);
48
- });
49
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,434 +0,0 @@
1
- import { testRestDb } from './testHelper.spec';
2
- import { TestDataApiResponse } from "./TestDataApiResponse";
3
- import { Done } from "./Done";
4
- import { WebSqlDataProvider } from '../data-providers/web-sql-data-provider';
5
- import { Remult } from '../context';
6
- import { SqlDatabase } from '../data-providers/sql-database';
7
- import { Categories } from './remult-3-entities';
8
- import { insertFourRows } from './RowProvider.spec';
9
- import { Entity, EntityBase, Fields } from '../remult3';
10
- import { InMemoryDataProvider } from '../data-providers/in-memory-database';
11
- import { customUrlToken, Filter } from '../filter/filter-interfaces';
12
- import { RestDataProvider } from '../data-providers/rest-data-provider';
13
- import { DataApi } from '../data-api';
14
- import { ArrayEntityDataProvider } from '../data-providers/array-entity-data-provider';
15
- import { dbNamesOf } from '../filter/filter-consumer-bridge-to-sql-request';
16
- import { entityForrawFilter } from './entityForCustomFilter';
17
- import { describeClass } from '../remult3/DecoratorReplacer';
18
- describe("test where stuff", () => {
19
- let repo;
20
- beforeAll(async (done) => {
21
- [repo] = await insertFourRows();
22
- done();
23
- });
24
- it("test in statement", async () => {
25
- expect(await repo.count({ id: [undefined] })).toBe(0);
26
- expect(await repo.count({ id: [1, undefined, 3] })).toBe(2);
27
- });
28
- it("test and", async () => {
29
- expect(await repo.count({ categoryName: 'yoni' })).toBe(1);
30
- expect(await repo.count({ categoryName: { $gte: 'yoni' } })).toBe(1);
31
- expect(await repo.count({ id: 1 })).toBe(1);
32
- expect(await repo.count({ id: 1, categoryName: 'yoni' })).toBe(0);
33
- expect(await repo.count({ id: 1, $and: [{ categoryName: 'yoni' }] })).toBe(0);
34
- expect(await repo.count({ $and: [{ id: 1 }, { categoryName: 'yoni' }] })).toBe(0);
35
- });
36
- it("test two values", async () => {
37
- expect(await repo.count({ $and: [{ id: 1 }, { id: 2 }] })).toBe(0);
38
- });
39
- it("test two values", async () => {
40
- const json = await Filter.fromEntityFilter(repo.metadata, { $and: [{ id: 1 }, { id: 2 }] }).toJson();
41
- expect(await repo.count(Filter.entityFilterFromJson(repo.metadata, json))).toBe(0);
42
- });
43
- it("test in and", async () => {
44
- const json = await Filter.fromEntityFilter(repo.metadata, { $and: [{ id: [1, 2] }, { id: [2] }] }).toJson();
45
- expect(await repo.count(Filter.entityFilterFromJson(repo.metadata, json))).toBe(1);
46
- });
47
- it("test basics", async () => {
48
- let fo = {
49
- where: { id: { ">=": 2 } }
50
- };
51
- expect(await repo.count({ id: { $lte: 3 }, $and: [fo.where] })).toBe(2);
52
- expect(await repo.count({ id: { $lte: 3 }, $and: [fo.where] })).toBe(2);
53
- expect(await repo.count({ $and: [fo.where], id: { $lte: 3 } })).toBe(2);
54
- expect(await repo.count({ id: { $lte: 3 }, $and: [fo.where] })).toBe(2);
55
- });
56
- it("test basics_2", async () => {
57
- let fo = {
58
- where: { id: { $gte: 2 } }
59
- };
60
- expect(await repo.count({ id: { $lte: 3 }, $and: [fo.where, undefined] })).toBe(2);
61
- });
62
- it("test basics_2_2", async () => {
63
- let fo = {
64
- where: { id: { ">=": 2 } }
65
- };
66
- expect(await repo.count({ id: { $lte: 3 }, $and: [fo.where] })).toBe(2);
67
- });
68
- it("test basics_2_3", async () => {
69
- let fo = {
70
- where: { id: { ">=": 2 } }
71
- };
72
- expect(await repo.count({ id: { $lte: 3 }, $and: [fo.where] })).toBe(2);
73
- });
74
- it("test basics_2_1", async () => {
75
- let fo = {
76
- where: { id: { $gte: 2 } }
77
- };
78
- expect(await repo.count({ id: { $lte: 3 }, $and: [fo.where, undefined] })).toBe(2);
79
- });
80
- it("test basics_3", async () => {
81
- let fo = {
82
- where: { id: { ">=": 2 } }
83
- };
84
- expect(await repo.count({ id: { $lte: 3 }, $and: [fo.where] })).toBe(2);
85
- });
86
- });
87
- describe("custom filter", () => {
88
- it("test that it works", async () => {
89
- let c = new Remult().repo(entityForrawFilter, new InMemoryDataProvider());
90
- for (let id = 0; id < 5; id++) {
91
- await c.create({ id }).save();
92
- }
93
- expect(await (c.count(entityForrawFilter.filter({ oneAndThree: true }))))
94
- .toBe(2);
95
- });
96
- it("works with serialize filter", async () => {
97
- let z = entityForrawFilter.oneAndThree();
98
- let c = new Remult().repo(entityForrawFilter, new InMemoryDataProvider());
99
- let json = (await Filter.fromEntityFilter(c.metadata, entityForrawFilter.oneAndThree())).toJson();
100
- expect(json).toEqual({
101
- $custom$oneAndThree: {}
102
- });
103
- let json3 = Filter.entityFilterToJson(c.metadata, Filter.entityFilterFromJson(c.metadata, json));
104
- expect(json3).toEqual(json);
105
- });
106
- it("test that it works", () => testRestDb(async ({ remult }) => {
107
- let c = remult.repo(entityForrawFilter);
108
- for (let id = 0; id < 5; id++) {
109
- await c.create({ id }).save();
110
- }
111
- expect(await (c.count(entityForrawFilter.oneAndThree()))).toBe(2);
112
- expect((await (c.findFirst(entityForrawFilter.testNumericValue(2)))).id).toBe(2);
113
- expect((await (c.findFirst(entityForrawFilter.testObjectValue({ val: 2 })))).id).toBe(2);
114
- }));
115
- ;
116
- it("test that it works with sql", async () => {
117
- let w = new WebSqlDataProvider("testWithFilter");
118
- let c = new Remult().repo(entityForrawFilter, new SqlDatabase(w));
119
- await w.dropTable(c.metadata);
120
- for (let id = 0; id < 5; id++) {
121
- await c.create({ id }).save();
122
- }
123
- const e = await dbNamesOf(c.metadata);
124
- expect(await (c.count(SqlDatabase.rawFilter(async (x) => x.sql = e.id + ' in (' + x.addParameterAndReturnSqlToken(1) + "," + x.addParameterAndReturnSqlToken(3, c.metadata.fields.id) + ")"))))
125
- .toBe(2);
126
- expect(await (c.count(entityForrawFilter.filter({ dbOneOrThree: true })))).toBe(2);
127
- });
128
- it("test that it works with arrayFilter", async () => {
129
- let c = new Remult().repo(entityForrawFilter, new InMemoryDataProvider());
130
- for (let id = 0; id < 5; id++) {
131
- await c.create({ id }).save();
132
- }
133
- expect(await (c.count(ArrayEntityDataProvider.rawFilter(x => x.id == 1 || x.id == 3))))
134
- .toBe(2);
135
- expect(await (c.count(entityForrawFilter.filter({ dbOneOrThree: true })))).toBe(2);
136
- });
137
- it("test or and promise in translate", async () => {
138
- let c = new Remult().repo(entityForrawFilter, new InMemoryDataProvider());
139
- for (let id = 0; id < 5; id++) {
140
- await c.create({ id }).save();
141
- }
142
- "".toString();
143
- expect(await (c.count({
144
- $or: [entityForrawFilter.filter({ dbOneOrThree: true }), { id: 4 }]
145
- }))).toBe(3);
146
- });
147
- it("test sent in api", async () => {
148
- let ok = new Done();
149
- let z = new RestDataProvider(() => ({
150
- httpClient: {
151
- delete: () => undefined,
152
- get: async (url) => {
153
- ok.ok();
154
- expect(url).toBe('/entityForrawFilter?%24custom%24filter=%7B%22oneAndThree%22%3Atrue%7D&__action=count');
155
- return { count: 0 };
156
- },
157
- post: () => undefined,
158
- put: () => undefined,
159
- }, url: ''
160
- }));
161
- let c = new Remult();
162
- c.dataProvider = (z);
163
- await c.repo(entityForrawFilter).count(entityForrawFilter.filter({ oneAndThree: true }));
164
- ok.test();
165
- });
166
- it("test order by on rest request", async () => {
167
- let ok = new Done();
168
- let c = new Remult(new RestDataProvider(() => ({
169
- httpClient: {
170
- delete: () => undefined,
171
- get: async (url) => {
172
- ok.ok();
173
- expect(url).toBe('/Categories?_sort=categoryName%2Cid');
174
- return [];
175
- },
176
- post: () => undefined,
177
- put: () => undefined,
178
- }, url: ''
179
- })));
180
- await c.repo(Categories).find({
181
- orderBy: {
182
- categoryName: "asc",
183
- id: "asc"
184
- }
185
- });
186
- ok.test();
187
- });
188
- it("test order by on rest request", async () => {
189
- let ok = new Done();
190
- let c = new Remult(new RestDataProvider(() => ({
191
- httpClient: {
192
- delete: () => undefined,
193
- get: async (url) => {
194
- ok.ok();
195
- expect(url).toBe('/Categories?_sort=categoryName%2Cid&_order=asc%2Cdesc');
196
- return [];
197
- },
198
- post: () => undefined,
199
- put: () => undefined,
200
- }, url: ''
201
- })));
202
- await c.repo(Categories).find({
203
- orderBy: {
204
- categoryName: "asc",
205
- id: "desc"
206
- }
207
- });
208
- ok.test();
209
- });
210
- it("test find id on api", async () => {
211
- let myEntity = class {
212
- id = 0;
213
- title = '';
214
- };
215
- describeClass(myEntity, Entity("test", {
216
- defaultOrderBy: {
217
- title: "asc"
218
- }
219
- }), {
220
- id: Fields.integer(),
221
- title: Fields.string()
222
- });
223
- let ok = new Done();
224
- let z = new RestDataProvider(() => ({
225
- httpClient: {
226
- delete: () => undefined,
227
- get: async (url) => {
228
- ok.ok();
229
- expect(url).toBe('/test?id=8');
230
- return [];
231
- },
232
- post: () => undefined,
233
- put: () => undefined,
234
- }, url: ''
235
- }));
236
- let c = new Remult();
237
- c.dataProvider = (z);
238
- await c.repo(myEntity).findId(8);
239
- ok.test();
240
- });
241
- it("test that api reads custom correctly", async () => {
242
- let remult = new Remult();
243
- remult.dataProvider = (new InMemoryDataProvider());
244
- let c = remult.repo(entityForrawFilter);
245
- for (let id = 0; id < 5; id++) {
246
- await c.create({ id }).save();
247
- }
248
- var api = new DataApi(c, remult);
249
- let t = new TestDataApiResponse();
250
- let d = new Done();
251
- t.success = data => {
252
- expect(data.count).toBe(2);
253
- d.ok();
254
- };
255
- await api.count(t, {
256
- get: x => {
257
- if (x == customUrlToken + "filter")
258
- return "{\"oneAndThree\":true}";
259
- return undefined;
260
- }
261
- });
262
- d.test();
263
- });
264
- it("test that api reads custom correctly 2", async () => {
265
- let remult = new Remult();
266
- remult.dataProvider = (new InMemoryDataProvider());
267
- let c = remult.repo(entityForrawFilter);
268
- for (let id = 0; id < 5; id++) {
269
- await c.create({ id }).save();
270
- }
271
- var api = new DataApi(c, remult);
272
- let t = new TestDataApiResponse();
273
- let d = new Done();
274
- t.success = data => {
275
- expect(data.count).toBe(2);
276
- d.ok();
277
- };
278
- await api.count(t, {
279
- get: x => {
280
- if (x == customUrlToken)
281
- return;
282
- return undefined;
283
- }
284
- }, {
285
- "$custom$filter": {
286
- "oneAndThree": true
287
- }
288
- });
289
- d.test();
290
- });
291
- it("test that api reads custom correctly 3", async () => {
292
- let remult = new Remult();
293
- remult.dataProvider = (new InMemoryDataProvider());
294
- let c = remult.repo(entityForrawFilter);
295
- for (let id = 0; id < 5; id++) {
296
- await c.create({ id }).save();
297
- }
298
- var api = new DataApi(c, remult);
299
- let t = new TestDataApiResponse();
300
- let d = new Done();
301
- t.success = data => {
302
- expect(data.count).toBe(2);
303
- d.ok();
304
- };
305
- await api.count(t, {
306
- get: x => {
307
- if (x == customUrlToken)
308
- return;
309
- return undefined;
310
- }
311
- }, {
312
- "$custom$filter": {
313
- "oneAndThree": true
314
- }
315
- });
316
- d.test();
317
- });
318
- it("test that api reads custom correctly and translates to db", async () => {
319
- let remult = new Remult();
320
- remult.dataProvider = (new InMemoryDataProvider());
321
- let c = remult.repo(entityForrawFilter);
322
- for (let id = 0; id < 5; id++) {
323
- await c.create({ id }).save();
324
- }
325
- var api = new DataApi(c, remult);
326
- let t = new TestDataApiResponse();
327
- let d = new Done();
328
- t.success = data => {
329
- expect(data.count).toBe(2);
330
- d.ok();
331
- };
332
- await api.count(t, {
333
- get: x => {
334
- if (x == customUrlToken + "filter")
335
- return "{\"dbOneOrThree\":true}";
336
- return undefined;
337
- }
338
- });
339
- d.test();
340
- });
341
- });
342
- function x(what) {
343
- }
344
- //reproduce typescript bug with recursive types
345
- x({});
346
- @Entity('tasks')
347
- class task extends EntityBase {
348
- @Fields.string()
349
- title = '';
350
- @Fields.boolean()
351
- completed = false;
352
- }
353
- @Entity('taskWithNull')
354
- class taskWithNull extends EntityBase {
355
- @Fields.string()
356
- title = '';
357
- @Fields.boolean({ allowNull: true })
358
- completed;
359
- }
360
- describe("missing fields are added in array column", async () => {
361
- it("not allow null", async () => {
362
- let db = new InMemoryDataProvider();
363
- db.rows['tasks'] = [{
364
- title: 't1'
365
- },
366
- {
367
- title: 't2',
368
- completed: true
369
- },
370
- {
371
- title: 't3'
372
- }];
373
- let r = new Remult();
374
- r.dataProvider = (db);
375
- let rep = r.repo(task);
376
- expect((await rep.find({ orderBy: { completed: "asc", title: 'asc' } })).map(x => x.title)).toEqual(["t1", "t3", "t2"]);
377
- expect(await rep.count({ completed: false })).toBe(2);
378
- let t = (await rep.findFirst({ title: 't1' }));
379
- expect(t.completed).toBe(false);
380
- t.completed = undefined;
381
- await t.save();
382
- expect(t.completed).toBe(false);
383
- t.completed = null;
384
- await t.save();
385
- expect(t.completed).toBe(false);
386
- t = rep.create({ title: '4' });
387
- await t.save();
388
- expect(t.completed).toBe(false);
389
- });
390
- it("allow null", async () => {
391
- let db = new InMemoryDataProvider();
392
- db.rows['taskWithNull'] = [{
393
- title: 't1'
394
- },
395
- {
396
- title: 't2',
397
- completed: true
398
- },
399
- {
400
- title: 't3'
401
- }];
402
- let r = new Remult();
403
- r.dataProvider = (db);
404
- let rep = r.repo(taskWithNull);
405
- expect((await rep.find({ orderBy: { completed: "asc", title: "asc" } })).map(x => x.title)).toEqual(["t1", "t3", "t2"]);
406
- expect(await rep.count({ completed: false })).toBe(0);
407
- let t = (await rep.findFirst({ title: 't1' }));
408
- expect(t.completed).toBe(null);
409
- t.completed = undefined;
410
- await t.save();
411
- expect(t.completed).toBe(null);
412
- t.completed = null;
413
- await t.save();
414
- expect(t.completed).toBe(null);
415
- t = rep.create({ title: '4' });
416
- await t.save();
417
- expect(t.completed).toBe(null);
418
- });
419
- it("test api with and", () => {
420
- let x = {
421
- title: "abc",
422
- $and: []
423
- };
424
- x.$and.push({});
425
- let y = { $and: [x, x] };
426
- });
427
- it("test api with and", () => {
428
- let x = {
429
- $and: []
430
- };
431
- x.$and.push({});
432
- let z = x;
433
- });
434
- });
@@ -1,36 +0,0 @@
1
- import './frontend-database-tests-setup.spec';
2
- import { Remult } from "../context";
3
- import { DataApi } from "../data-api";
4
- import { DataProvider, EntityDataProvider } from "../data-interfaces";
5
- import { InMemoryDataProvider } from "../data-providers/in-memory-database";
6
- import { EntityMetadata } from "../remult3";
7
- export declare function itForEach<T>(name: string, arrayOfT: T[], runAsync: (item: T) => Promise<any>): void;
8
- export declare function fitForEach<T>(name: string, arrayOfT: T[], runAsync: (item: T) => Promise<any>): void;
9
- export declare function testAsIfOnBackend(what: () => Promise<any>): Promise<void>;
10
- export declare const ActionTestConfig: {
11
- db: InMemoryDataProvider;
12
- };
13
- export declare function testSql(runAsync: (db: {
14
- db: DataProvider;
15
- remult: Remult;
16
- }) => Promise<void>): Promise<void>;
17
- export declare function testInMemoryDb(runAsync: (db: {
18
- db: DataProvider;
19
- remult: Remult;
20
- }) => Promise<void>): Promise<void>;
21
- export declare function testRestDb(runAsync: (db: {
22
- db: DataProvider;
23
- remult: Remult;
24
- }) => Promise<void>): Promise<void>;
25
- export declare function testAllDataProviders(runAsync: (db: {
26
- db: DataProvider;
27
- remult: Remult;
28
- }) => Promise<void>): Promise<void>;
29
- export declare class MockRestDataProvider implements DataProvider {
30
- private remult;
31
- constructor(remult: Remult);
32
- getEntityDataProvider(metadata: EntityMetadata<any>): EntityDataProvider;
33
- transaction(action: (dataProvider: DataProvider) => Promise<void>): Promise<void>;
34
- isProxy: boolean;
35
- }
36
- export declare function createMockHttpDataProvider(dataApi: DataApi<any>): import("../data-interfaces").RestDataProviderHttpProvider;