@webda/core 4.0.0-beta.1 → 4.0.0-beta.3

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 (675) hide show
  1. package/README.md +252 -0
  2. package/lib/application/application.d.ts +437 -0
  3. package/lib/application/application.d.ts.map +1 -0
  4. package/lib/application/application.js +792 -0
  5. package/lib/application/application.js.map +1 -0
  6. package/lib/application/hooks.d.ts +34 -0
  7. package/lib/application/hooks.d.ts.map +1 -0
  8. package/lib/application/hooks.js +57 -0
  9. package/lib/application/hooks.js.map +1 -0
  10. package/lib/application/iapplication.d.ts +43 -0
  11. package/lib/application/iapplication.d.ts.map +1 -0
  12. package/lib/application/iapplication.js +2 -0
  13. package/lib/application/iapplication.js.map +1 -0
  14. package/lib/application/iconfiguration.d.ts +176 -0
  15. package/lib/application/iconfiguration.d.ts.map +1 -0
  16. package/lib/application/iconfiguration.js +8 -0
  17. package/lib/application/iconfiguration.js.map +1 -0
  18. package/lib/application/runner.d.ts +8 -0
  19. package/lib/application/runner.d.ts.map +1 -0
  20. package/lib/application/runner.js +26 -0
  21. package/lib/application/runner.js.map +1 -0
  22. package/lib/application/unpackedapplication.d.ts +104 -0
  23. package/lib/application/unpackedapplication.d.ts.map +1 -0
  24. package/lib/application/unpackedapplication.js +492 -0
  25. package/lib/application/unpackedapplication.js.map +1 -0
  26. package/lib/bin/cli-phase.d.ts +28 -0
  27. package/lib/bin/cli-phase.d.ts.map +1 -0
  28. package/lib/bin/cli-phase.js +44 -0
  29. package/lib/bin/cli-phase.js.map +1 -0
  30. package/lib/bin/cli.d.ts +161 -0
  31. package/lib/bin/cli.d.ts.map +1 -0
  32. package/lib/bin/cli.js +828 -0
  33. package/lib/bin/cli.js.map +1 -0
  34. package/lib/bin/launcher.d.ts +3 -0
  35. package/lib/bin/launcher.d.ts.map +1 -0
  36. package/lib/bin/launcher.js +50 -0
  37. package/lib/bin/launcher.js.map +1 -0
  38. package/lib/cache/cache.d.ts +33 -0
  39. package/lib/cache/cache.d.ts.map +1 -0
  40. package/lib/cache/cache.js +8 -0
  41. package/lib/cache/cache.js.map +1 -0
  42. package/lib/{services/configuration.d.ts → configurations/configuration.service.d.ts} +58 -49
  43. package/lib/configurations/configuration.service.d.ts.map +1 -0
  44. package/lib/configurations/configuration.service.js +248 -0
  45. package/lib/configurations/configuration.service.js.map +1 -0
  46. package/lib/configurations/fileconfiguration.service.d.ts +30 -0
  47. package/lib/configurations/fileconfiguration.service.d.ts.map +1 -0
  48. package/lib/configurations/fileconfiguration.service.js +65 -0
  49. package/lib/configurations/fileconfiguration.service.js.map +1 -0
  50. package/lib/configurations/kubernetesconfiguration.service.d.ts +43 -0
  51. package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -0
  52. package/lib/configurations/kubernetesconfiguration.service.js +83 -0
  53. package/lib/configurations/kubernetesconfiguration.service.js.map +1 -0
  54. package/lib/contexts/execution.d.ts +33 -0
  55. package/lib/contexts/execution.d.ts.map +1 -0
  56. package/lib/contexts/execution.js +73 -0
  57. package/lib/contexts/execution.js.map +1 -0
  58. package/lib/contexts/globalcontext.d.ts +29 -0
  59. package/lib/contexts/globalcontext.d.ts.map +1 -0
  60. package/lib/contexts/globalcontext.js +38 -0
  61. package/lib/contexts/globalcontext.js.map +1 -0
  62. package/lib/{utils → contexts}/httpcontext.d.ts +45 -19
  63. package/lib/contexts/httpcontext.d.ts.map +1 -0
  64. package/lib/{utils → contexts}/httpcontext.js +102 -34
  65. package/lib/contexts/httpcontext.js.map +1 -0
  66. package/lib/contexts/icontext.d.ts +236 -0
  67. package/lib/contexts/icontext.d.ts.map +1 -0
  68. package/lib/contexts/icontext.js +230 -0
  69. package/lib/contexts/icontext.js.map +1 -0
  70. package/lib/contexts/operationcontext.d.ts +179 -0
  71. package/lib/contexts/operationcontext.d.ts.map +1 -0
  72. package/lib/contexts/operationcontext.js +358 -0
  73. package/lib/contexts/operationcontext.js.map +1 -0
  74. package/lib/contexts/simplecontext.d.ts +31 -0
  75. package/lib/contexts/simplecontext.d.ts.map +1 -0
  76. package/lib/contexts/simplecontext.js +45 -0
  77. package/lib/contexts/simplecontext.js.map +1 -0
  78. package/lib/contexts/webcontext.d.ts +218 -0
  79. package/lib/contexts/webcontext.d.ts.map +1 -0
  80. package/lib/contexts/webcontext.js +389 -0
  81. package/lib/contexts/webcontext.js.map +1 -0
  82. package/lib/core/authorizer.d.ts +23 -0
  83. package/lib/core/authorizer.d.ts.map +1 -0
  84. package/lib/core/authorizer.js +17 -0
  85. package/lib/core/authorizer.js.map +1 -0
  86. package/lib/core/core.d.ts +225 -0
  87. package/lib/core/core.d.ts.map +1 -0
  88. package/lib/core/core.js +576 -0
  89. package/lib/core/core.js.map +1 -0
  90. package/lib/core/hooks.d.ts +72 -0
  91. package/lib/core/hooks.d.ts.map +1 -0
  92. package/lib/core/hooks.js +73 -0
  93. package/lib/core/hooks.js.map +1 -0
  94. package/lib/core/icore.d.ts +249 -0
  95. package/lib/core/icore.d.ts.map +1 -0
  96. package/lib/core/icore.js +15 -0
  97. package/lib/core/icore.js.map +1 -0
  98. package/lib/core/instancestorage.d.ts +61 -0
  99. package/lib/core/instancestorage.d.ts.map +1 -0
  100. package/lib/core/instancestorage.js +75 -0
  101. package/lib/core/instancestorage.js.map +1 -0
  102. package/lib/core/operations.d.ts +181 -0
  103. package/lib/core/operations.d.ts.map +1 -0
  104. package/lib/core/operations.js +559 -0
  105. package/lib/core/operations.js.map +1 -0
  106. package/lib/errors/errors.d.ts +126 -0
  107. package/lib/errors/errors.d.ts.map +1 -0
  108. package/lib/errors/errors.js +165 -0
  109. package/lib/errors/errors.js.map +1 -0
  110. package/lib/events/asynceventemitter.d.ts +159 -0
  111. package/lib/events/asynceventemitter.d.ts.map +1 -0
  112. package/lib/events/asynceventemitter.js +152 -0
  113. package/lib/events/asynceventemitter.js.map +1 -0
  114. package/lib/events/events.d.ts +112 -0
  115. package/lib/events/events.d.ts.map +1 -0
  116. package/lib/events/events.js +45 -0
  117. package/lib/events/events.js.map +1 -0
  118. package/lib/index.d.ts +84 -51
  119. package/lib/index.d.ts.map +1 -0
  120. package/lib/index.js +82 -59
  121. package/lib/index.js.map +1 -1
  122. package/lib/loggers/console.service.d.ts +24 -0
  123. package/lib/loggers/console.service.d.ts.map +1 -0
  124. package/lib/loggers/console.service.js +30 -0
  125. package/lib/loggers/console.service.js.map +1 -0
  126. package/lib/loggers/file.service.d.ts +25 -0
  127. package/lib/loggers/file.service.d.ts.map +1 -0
  128. package/lib/loggers/file.service.js +33 -0
  129. package/lib/loggers/file.service.js.map +1 -0
  130. package/lib/loggers/hooks.d.ts +20 -0
  131. package/lib/loggers/hooks.d.ts.map +1 -0
  132. package/lib/loggers/hooks.js +40 -0
  133. package/lib/loggers/hooks.js.map +1 -0
  134. package/lib/loggers/ilogger.d.ts +76 -0
  135. package/lib/loggers/ilogger.d.ts.map +1 -0
  136. package/lib/loggers/ilogger.js +108 -0
  137. package/lib/loggers/ilogger.js.map +1 -0
  138. package/lib/loggers/logger.d.ts +13 -0
  139. package/lib/loggers/logger.d.ts.map +1 -0
  140. package/lib/loggers/logger.js +18 -0
  141. package/lib/loggers/logger.js.map +1 -0
  142. package/lib/loggers/memory.service.d.ts +18 -0
  143. package/lib/loggers/memory.service.d.ts.map +1 -0
  144. package/lib/loggers/memory.service.js +21 -0
  145. package/lib/loggers/memory.service.js.map +1 -0
  146. package/lib/loggers/params.d.ts +47 -0
  147. package/lib/loggers/params.d.ts.map +1 -0
  148. package/lib/loggers/params.js +56 -0
  149. package/lib/loggers/params.js.map +1 -0
  150. package/lib/metrics/metrics.d.ts +25 -0
  151. package/lib/metrics/metrics.d.ts.map +1 -0
  152. package/lib/metrics/metrics.js +51 -0
  153. package/lib/metrics/metrics.js.map +1 -0
  154. package/lib/models/aclmodel.d.ts +21 -77
  155. package/lib/models/aclmodel.d.ts.map +1 -0
  156. package/lib/models/aclmodel.js +27 -204
  157. package/lib/models/aclmodel.js.map +1 -1
  158. package/lib/models/coremodel.model.d.ts +5 -0
  159. package/lib/models/coremodel.model.d.ts.map +1 -0
  160. package/lib/models/coremodel.model.js +5 -0
  161. package/lib/models/coremodel.model.js.map +1 -0
  162. package/lib/models/decorator.d.ts +63 -0
  163. package/lib/models/decorator.d.ts.map +1 -0
  164. package/lib/models/decorator.js +63 -0
  165. package/lib/models/decorator.js.map +1 -0
  166. package/lib/models/deployment.d.ts +2 -1
  167. package/lib/models/deployment.d.ts.map +1 -0
  168. package/lib/models/ident.model.d.ts +89 -0
  169. package/lib/models/ident.model.d.ts.map +1 -0
  170. package/lib/models/ident.model.js +115 -0
  171. package/lib/models/ident.model.js.map +1 -0
  172. package/lib/models/ownermodel.model.d.ts +68 -0
  173. package/lib/models/ownermodel.model.d.ts.map +1 -0
  174. package/lib/models/ownermodel.model.js +112 -0
  175. package/lib/models/ownermodel.model.js.map +1 -0
  176. package/lib/models/registry.model.d.ts +76 -0
  177. package/lib/models/registry.model.d.ts.map +1 -0
  178. package/lib/models/registry.model.js +104 -0
  179. package/lib/models/registry.model.js.map +1 -0
  180. package/lib/models/rolemodel.model.d.ts +28 -0
  181. package/lib/models/rolemodel.model.d.ts.map +1 -0
  182. package/lib/models/rolemodel.model.js +53 -0
  183. package/lib/models/rolemodel.model.js.map +1 -0
  184. package/lib/models/simpleuser.model.d.ts +78 -0
  185. package/lib/models/simpleuser.model.d.ts.map +1 -0
  186. package/lib/models/simpleuser.model.js +123 -0
  187. package/lib/models/simpleuser.model.js.map +1 -0
  188. package/lib/models/types.d.ts +113 -0
  189. package/lib/models/types.d.ts.map +1 -0
  190. package/lib/models/types.js +2 -0
  191. package/lib/models/types.js.map +1 -0
  192. package/lib/models/user.model.d.ts +103 -0
  193. package/lib/models/user.model.d.ts.map +1 -0
  194. package/lib/models/user.model.js +125 -0
  195. package/lib/models/user.model.js.map +1 -0
  196. package/lib/queues/memoryqueue.service.d.ts +72 -0
  197. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  198. package/lib/queues/memoryqueue.service.js +136 -0
  199. package/lib/queues/memoryqueue.service.js.map +1 -0
  200. package/lib/queues/pubsubservice.d.ts +9 -6
  201. package/lib/queues/pubsubservice.d.ts.map +1 -0
  202. package/lib/queues/pubsubservice.js +5 -4
  203. package/lib/queues/pubsubservice.js.map +1 -1
  204. package/lib/queues/queueservice.d.ts +10 -11
  205. package/lib/queues/queueservice.d.ts.map +1 -0
  206. package/lib/queues/queueservice.js +48 -20
  207. package/lib/queues/queueservice.js.map +1 -1
  208. package/lib/rest/hooks.d.ts +8 -0
  209. package/lib/rest/hooks.d.ts.map +1 -0
  210. package/lib/rest/hooks.js +10 -0
  211. package/lib/rest/hooks.js.map +1 -0
  212. package/lib/rest/irest.d.ts +212 -0
  213. package/lib/rest/irest.d.ts.map +1 -0
  214. package/lib/rest/irest.js +39 -0
  215. package/lib/rest/irest.js.map +1 -0
  216. package/lib/rest/originfilter.d.ts +38 -0
  217. package/lib/rest/originfilter.d.ts.map +1 -0
  218. package/lib/rest/originfilter.js +61 -0
  219. package/lib/rest/originfilter.js.map +1 -0
  220. package/lib/rest/restoperationstransport.service.d.ts +193 -0
  221. package/lib/rest/restoperationstransport.service.d.ts.map +1 -0
  222. package/lib/rest/restoperationstransport.service.js +780 -0
  223. package/lib/rest/restoperationstransport.service.js.map +1 -0
  224. package/lib/rest/router.service.d.ts +244 -0
  225. package/lib/rest/router.service.d.ts.map +1 -0
  226. package/lib/rest/router.service.js +843 -0
  227. package/lib/rest/router.service.js.map +1 -0
  228. package/lib/schemas/hooks.d.ts +48 -0
  229. package/lib/schemas/hooks.d.ts.map +1 -0
  230. package/lib/schemas/hooks.js +152 -0
  231. package/lib/schemas/hooks.js.map +1 -0
  232. package/lib/services/audit.model.d.ts +208 -0
  233. package/lib/services/audit.model.d.ts.map +1 -0
  234. package/lib/services/audit.model.js +431 -0
  235. package/lib/services/audit.model.js.map +1 -0
  236. package/lib/services/{authentication.d.ts → authentication.service.d.ts} +140 -58
  237. package/lib/services/authentication.service.d.ts.map +1 -0
  238. package/lib/services/authentication.service.js +932 -0
  239. package/lib/services/authentication.service.js.map +1 -0
  240. package/lib/services/binary.service.d.ts +808 -0
  241. package/lib/services/binary.service.d.ts.map +1 -0
  242. package/lib/services/binary.service.js +1365 -0
  243. package/lib/services/binary.service.js.map +1 -0
  244. package/lib/services/cloudbinary.d.ts +19 -13
  245. package/lib/services/cloudbinary.d.ts.map +1 -0
  246. package/lib/services/cloudbinary.js +24 -18
  247. package/lib/services/cloudbinary.js.map +1 -1
  248. package/lib/services/command.d.ts +118 -0
  249. package/lib/services/command.d.ts.map +1 -0
  250. package/lib/services/command.js +97 -0
  251. package/lib/services/command.js.map +1 -0
  252. package/lib/services/cron.service.d.ts +142 -0
  253. package/lib/services/cron.service.d.ts.map +1 -0
  254. package/lib/services/cron.service.js +291 -0
  255. package/lib/services/cron.service.js.map +1 -0
  256. package/lib/services/{cryptoservice.d.ts → cryptoservice.service.d.ts} +77 -142
  257. package/lib/services/cryptoservice.service.d.ts.map +1 -0
  258. package/lib/services/cryptoservice.service.js +527 -0
  259. package/lib/services/cryptoservice.service.js.map +1 -0
  260. package/lib/services/debugmailer.service.d.ts +49 -0
  261. package/lib/services/debugmailer.service.d.ts.map +1 -0
  262. package/lib/services/debugmailer.service.js +66 -0
  263. package/lib/services/debugmailer.service.js.map +1 -0
  264. package/lib/services/domainservice.service.d.ts +203 -0
  265. package/lib/services/domainservice.service.d.ts.map +1 -0
  266. package/lib/services/domainservice.service.js +600 -0
  267. package/lib/services/domainservice.service.js.map +1 -0
  268. package/lib/services/httpserver.service.d.ts +248 -0
  269. package/lib/services/httpserver.service.d.ts.map +1 -0
  270. package/lib/services/httpserver.service.js +673 -0
  271. package/lib/services/httpserver.service.js.map +1 -0
  272. package/lib/services/iauthentication.d.ts +9 -0
  273. package/lib/services/iauthentication.d.ts.map +1 -0
  274. package/lib/services/iauthentication.js +2 -0
  275. package/lib/services/iauthentication.js.map +1 -0
  276. package/lib/services/icryptoservice.d.ts +127 -0
  277. package/lib/services/icryptoservice.d.ts.map +1 -0
  278. package/lib/services/icryptoservice.js +68 -0
  279. package/lib/services/icryptoservice.js.map +1 -0
  280. package/lib/services/imailer.d.ts +17 -0
  281. package/lib/services/imailer.d.ts.map +1 -0
  282. package/lib/services/imailer.js +2 -0
  283. package/lib/services/imailer.js.map +1 -0
  284. package/lib/services/iservice.d.ts +104 -0
  285. package/lib/services/iservice.d.ts.map +1 -0
  286. package/lib/services/iservice.js +63 -0
  287. package/lib/services/iservice.js.map +1 -0
  288. package/lib/services/mailer.service.d.ts +220 -0
  289. package/lib/services/mailer.service.d.ts.map +1 -0
  290. package/lib/services/mailer.service.js +251 -0
  291. package/lib/services/mailer.service.js.map +1 -0
  292. package/lib/services/{notificationservice.d.ts → notificationservice.service.d.ts} +10 -10
  293. package/lib/services/notificationservice.service.d.ts.map +1 -0
  294. package/lib/services/{notificationservice.js → notificationservice.service.js} +24 -12
  295. package/lib/services/notificationservice.service.js.map +1 -0
  296. package/lib/services/oauth.d.ts +58 -31
  297. package/lib/services/oauth.d.ts.map +1 -0
  298. package/lib/services/oauth.js +365 -251
  299. package/lib/services/oauth.js.map +1 -1
  300. package/lib/services/operationstransport.d.ts +65 -0
  301. package/lib/services/operationstransport.d.ts.map +1 -0
  302. package/lib/services/operationstransport.js +103 -0
  303. package/lib/services/operationstransport.js.map +1 -0
  304. package/lib/services/{prometheus.d.ts → prometheus.service.d.ts} +13 -11
  305. package/lib/services/prometheus.service.d.ts.map +1 -0
  306. package/lib/services/prometheus.service.js +203 -0
  307. package/lib/services/prometheus.service.js.map +1 -0
  308. package/lib/services/resource.service.d.ts +121 -0
  309. package/lib/services/resource.service.d.ts.map +1 -0
  310. package/lib/services/resource.service.js +301 -0
  311. package/lib/services/resource.service.js.map +1 -0
  312. package/lib/services/service.d.ts +88 -189
  313. package/lib/services/service.d.ts.map +1 -0
  314. package/lib/services/service.js +407 -432
  315. package/lib/services/service.js.map +1 -1
  316. package/lib/services/servicecommands.d.ts +99 -0
  317. package/lib/services/servicecommands.d.ts.map +1 -0
  318. package/lib/services/servicecommands.js +165 -0
  319. package/lib/services/servicecommands.js.map +1 -0
  320. package/lib/services/serviceparameters.d.ts +33 -0
  321. package/lib/services/serviceparameters.d.ts.map +1 -0
  322. package/lib/services/serviceparameters.js +79 -0
  323. package/lib/services/serviceparameters.js.map +1 -0
  324. package/lib/{utils → session}/cookie.d.ts +32 -18
  325. package/lib/session/cookie.d.ts.map +1 -0
  326. package/lib/{utils → session}/cookie.js +76 -23
  327. package/lib/session/cookie.js.map +1 -0
  328. package/lib/session/manager.model.d.ts +71 -0
  329. package/lib/session/manager.model.d.ts.map +1 -0
  330. package/lib/session/manager.model.js +155 -0
  331. package/lib/session/manager.model.js.map +1 -0
  332. package/lib/session/session.d.ts +57 -0
  333. package/lib/session/session.d.ts.map +1 -0
  334. package/lib/session/session.js +126 -0
  335. package/lib/session/session.js.map +1 -0
  336. package/lib/stores/istore.d.ts +99 -0
  337. package/lib/stores/istore.d.ts.map +1 -0
  338. package/lib/stores/istore.js +26 -0
  339. package/lib/stores/istore.js.map +1 -0
  340. package/lib/stores/memory.service.d.ts +114 -0
  341. package/lib/stores/memory.service.d.ts.map +1 -0
  342. package/lib/stores/memory.service.js +343 -0
  343. package/lib/stores/memory.service.js.map +1 -0
  344. package/lib/stores/store.d.ts +127 -768
  345. package/lib/stores/store.d.ts.map +1 -0
  346. package/lib/stores/store.js +258 -1718
  347. package/lib/stores/store.js.map +1 -1
  348. package/lib/templates/templates.d.ts +39 -0
  349. package/lib/templates/templates.d.ts.map +1 -0
  350. package/lib/templates/templates.js +92 -0
  351. package/lib/templates/templates.js.map +1 -0
  352. package/lib/test/application.d.ts +174 -0
  353. package/lib/test/application.d.ts.map +1 -0
  354. package/lib/test/application.js +288 -0
  355. package/lib/test/application.js.map +1 -0
  356. package/lib/test/asyncstorage.d.ts +16 -0
  357. package/lib/test/asyncstorage.d.ts.map +1 -0
  358. package/lib/test/asyncstorage.js +32 -0
  359. package/lib/test/asyncstorage.js.map +1 -0
  360. package/lib/test/core.d.ts +63 -0
  361. package/lib/test/core.d.ts.map +1 -0
  362. package/lib/test/core.js +190 -0
  363. package/lib/test/core.js.map +1 -0
  364. package/lib/test/index.d.ts +7 -0
  365. package/lib/test/index.d.ts.map +1 -0
  366. package/lib/test/index.js +8 -0
  367. package/lib/test/index.js.map +1 -0
  368. package/lib/test/internal.d.ts +34 -0
  369. package/lib/test/internal.d.ts.map +1 -0
  370. package/lib/test/internal.js +156 -0
  371. package/lib/test/internal.js.map +1 -0
  372. package/lib/test/objects.d.ts +318 -0
  373. package/lib/test/objects.d.ts.map +1 -0
  374. package/lib/test/objects.js +443 -0
  375. package/lib/test/objects.js.map +1 -0
  376. package/lib/utils/abstractdeployer.d.ts +5 -2
  377. package/lib/utils/abstractdeployer.d.ts.map +1 -0
  378. package/lib/utils/abstractdeployer.js +3 -0
  379. package/lib/utils/abstractdeployer.js.map +1 -1
  380. package/package.json +85 -56
  381. package/test/cachedapp/webda.config.json +1 -5
  382. package/test/config-cached.json +1 -5
  383. package/test/config.json +6 -99
  384. package/test/data/.env +1 -0
  385. package/test/my-cnf.json +9 -0
  386. package/webda.module.json +3462 -2231
  387. package/lib/application.d.ts +0 -876
  388. package/lib/application.js +0 -741
  389. package/lib/application.js.map +0 -1
  390. package/lib/application.spec.d.ts +0 -1
  391. package/lib/application.spec.js +0 -234
  392. package/lib/application.spec.js.map +0 -1
  393. package/lib/core.d.ts +0 -740
  394. package/lib/core.js +0 -1310
  395. package/lib/core.js.map +0 -1
  396. package/lib/core.spec.d.ts +0 -1
  397. package/lib/core.spec.js +0 -761
  398. package/lib/core.spec.js.map +0 -1
  399. package/lib/errors.d.ts +0 -65
  400. package/lib/errors.js +0 -113
  401. package/lib/errors.js.map +0 -1
  402. package/lib/errors.spec.d.ts +0 -1
  403. package/lib/errors.spec.js +0 -33
  404. package/lib/errors.spec.js.map +0 -1
  405. package/lib/models/aclmodel.spec.d.ts +0 -1
  406. package/lib/models/aclmodel.spec.js +0 -187
  407. package/lib/models/aclmodel.spec.js.map +0 -1
  408. package/lib/models/coremodel.d.ts +0 -887
  409. package/lib/models/coremodel.js +0 -1208
  410. package/lib/models/coremodel.js.map +0 -1
  411. package/lib/models/coremodel.spec.d.ts +0 -1
  412. package/lib/models/coremodel.spec.js +0 -462
  413. package/lib/models/coremodel.spec.js.map +0 -1
  414. package/lib/models/ident.d.ts +0 -53
  415. package/lib/models/ident.js +0 -40
  416. package/lib/models/ident.js.map +0 -1
  417. package/lib/models/ident.spec.d.ts +0 -1
  418. package/lib/models/ident.spec.js +0 -43
  419. package/lib/models/ident.spec.js.map +0 -1
  420. package/lib/models/ownermodel.d.ts +0 -50
  421. package/lib/models/ownermodel.js +0 -65
  422. package/lib/models/ownermodel.js.map +0 -1
  423. package/lib/models/ownermodel.spec.d.ts +0 -1
  424. package/lib/models/ownermodel.spec.js +0 -191
  425. package/lib/models/ownermodel.spec.js.map +0 -1
  426. package/lib/models/relations.d.ts +0 -181
  427. package/lib/models/relations.js +0 -157
  428. package/lib/models/relations.js.map +0 -1
  429. package/lib/models/relations.spec.d.ts +0 -12
  430. package/lib/models/relations.spec.js +0 -224
  431. package/lib/models/relations.spec.js.map +0 -1
  432. package/lib/models/rolemodel.d.ts +0 -10
  433. package/lib/models/rolemodel.js +0 -35
  434. package/lib/models/rolemodel.js.map +0 -1
  435. package/lib/models/rolemodel.spec.d.ts +0 -1
  436. package/lib/models/rolemodel.spec.js +0 -86
  437. package/lib/models/rolemodel.spec.js.map +0 -1
  438. package/lib/models/user.d.ts +0 -100
  439. package/lib/models/user.js +0 -157
  440. package/lib/models/user.js.map +0 -1
  441. package/lib/models/user.spec.d.ts +0 -1
  442. package/lib/models/user.spec.js +0 -88
  443. package/lib/models/user.spec.js.map +0 -1
  444. package/lib/queues/filequeue.d.ts +0 -58
  445. package/lib/queues/filequeue.js +0 -131
  446. package/lib/queues/filequeue.js.map +0 -1
  447. package/lib/queues/filequeue.spec.d.ts +0 -1
  448. package/lib/queues/filequeue.spec.js +0 -78
  449. package/lib/queues/filequeue.spec.js.map +0 -1
  450. package/lib/queues/memoryqueue.d.ts +0 -45
  451. package/lib/queues/memoryqueue.js +0 -81
  452. package/lib/queues/memoryqueue.js.map +0 -1
  453. package/lib/queues/memoryqueue.spec.d.ts +0 -1
  454. package/lib/queues/memoryqueue.spec.js +0 -192
  455. package/lib/queues/memoryqueue.spec.js.map +0 -1
  456. package/lib/queues/queue.spec.d.ts +0 -5
  457. package/lib/queues/queue.spec.js +0 -55
  458. package/lib/queues/queue.spec.js.map +0 -1
  459. package/lib/router.d.ts +0 -172
  460. package/lib/router.js +0 -419
  461. package/lib/router.js.map +0 -1
  462. package/lib/router.spec.d.ts +0 -1
  463. package/lib/router.spec.js +0 -229
  464. package/lib/router.spec.js.map +0 -1
  465. package/lib/services/asyncevents.d.ts +0 -151
  466. package/lib/services/asyncevents.js +0 -217
  467. package/lib/services/asyncevents.js.map +0 -1
  468. package/lib/services/asyncevents.spec.d.ts +0 -1
  469. package/lib/services/asyncevents.spec.js +0 -118
  470. package/lib/services/asyncevents.spec.js.map +0 -1
  471. package/lib/services/authentication.js +0 -772
  472. package/lib/services/authentication.js.map +0 -1
  473. package/lib/services/authentication.spec.d.ts +0 -1
  474. package/lib/services/authentication.spec.js +0 -458
  475. package/lib/services/authentication.spec.js.map +0 -1
  476. package/lib/services/binary.d.ts +0 -549
  477. package/lib/services/binary.js +0 -986
  478. package/lib/services/binary.js.map +0 -1
  479. package/lib/services/binary.spec.d.ts +0 -44
  480. package/lib/services/binary.spec.js +0 -438
  481. package/lib/services/binary.spec.js.map +0 -1
  482. package/lib/services/cloudbinary.spec.d.ts +0 -13
  483. package/lib/services/cloudbinary.spec.js +0 -192
  484. package/lib/services/cloudbinary.spec.js.map +0 -1
  485. package/lib/services/configuration.js +0 -178
  486. package/lib/services/configuration.js.map +0 -1
  487. package/lib/services/configuration.spec.d.ts +0 -1
  488. package/lib/services/configuration.spec.js +0 -87
  489. package/lib/services/configuration.spec.js.map +0 -1
  490. package/lib/services/cron.d.ts +0 -73
  491. package/lib/services/cron.js +0 -141
  492. package/lib/services/cron.js.map +0 -1
  493. package/lib/services/cron.spec.d.ts +0 -1
  494. package/lib/services/cron.spec.js +0 -76
  495. package/lib/services/cron.spec.js.map +0 -1
  496. package/lib/services/cryptoservice.js +0 -434
  497. package/lib/services/cryptoservice.js.map +0 -1
  498. package/lib/services/cryptoservice.spec.d.ts +0 -1
  499. package/lib/services/cryptoservice.spec.js +0 -177
  500. package/lib/services/cryptoservice.spec.js.map +0 -1
  501. package/lib/services/debugmailer.d.ts +0 -36
  502. package/lib/services/debugmailer.js +0 -52
  503. package/lib/services/debugmailer.js.map +0 -1
  504. package/lib/services/debugmailer.spec.d.ts +0 -1
  505. package/lib/services/debugmailer.spec.js +0 -29
  506. package/lib/services/debugmailer.spec.js.map +0 -1
  507. package/lib/services/domainservice.d.ts +0 -152
  508. package/lib/services/domainservice.js +0 -881
  509. package/lib/services/domainservice.js.map +0 -1
  510. package/lib/services/domainservice.spec.d.ts +0 -1
  511. package/lib/services/domainservice.spec.js +0 -401
  512. package/lib/services/domainservice.spec.js.map +0 -1
  513. package/lib/services/filebinary.d.ts +0 -133
  514. package/lib/services/filebinary.js +0 -371
  515. package/lib/services/filebinary.js.map +0 -1
  516. package/lib/services/filebinary.spec.d.ts +0 -21
  517. package/lib/services/filebinary.spec.js +0 -415
  518. package/lib/services/filebinary.spec.js.map +0 -1
  519. package/lib/services/fileconfiguration.d.ts +0 -22
  520. package/lib/services/fileconfiguration.js +0 -48
  521. package/lib/services/fileconfiguration.js.map +0 -1
  522. package/lib/services/fileconfiguration.spec.d.ts +0 -1
  523. package/lib/services/fileconfiguration.spec.js +0 -177
  524. package/lib/services/fileconfiguration.spec.js.map +0 -1
  525. package/lib/services/invitationservice.d.ts +0 -222
  526. package/lib/services/invitationservice.js +0 -526
  527. package/lib/services/invitationservice.js.map +0 -1
  528. package/lib/services/invitationservice.spec.d.ts +0 -1
  529. package/lib/services/invitationservice.spec.js +0 -516
  530. package/lib/services/invitationservice.spec.js.map +0 -1
  531. package/lib/services/kubernetesconfiguration.d.ts +0 -26
  532. package/lib/services/kubernetesconfiguration.js +0 -54
  533. package/lib/services/kubernetesconfiguration.js.map +0 -1
  534. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -1
  535. package/lib/services/kubernetesconfiguration.spec.js +0 -147
  536. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  537. package/lib/services/mailer.d.ts +0 -165
  538. package/lib/services/mailer.js +0 -176
  539. package/lib/services/mailer.js.map +0 -1
  540. package/lib/services/mailer.spec.d.ts +0 -1
  541. package/lib/services/mailer.spec.js +0 -144
  542. package/lib/services/mailer.spec.js.map +0 -1
  543. package/lib/services/notificationservice.js.map +0 -1
  544. package/lib/services/notificationservice.spec.d.ts +0 -1
  545. package/lib/services/notificationservice.spec.js +0 -78
  546. package/lib/services/notificationservice.spec.js.map +0 -1
  547. package/lib/services/oauth.spec.d.ts +0 -1
  548. package/lib/services/oauth.spec.js +0 -184
  549. package/lib/services/oauth.spec.js.map +0 -1
  550. package/lib/services/prometheus.js +0 -160
  551. package/lib/services/prometheus.js.map +0 -1
  552. package/lib/services/prometheus.spec.d.ts +0 -1
  553. package/lib/services/prometheus.spec.js +0 -57
  554. package/lib/services/prometheus.spec.js.map +0 -1
  555. package/lib/services/resource.d.ts +0 -87
  556. package/lib/services/resource.js +0 -156
  557. package/lib/services/resource.js.map +0 -1
  558. package/lib/services/resource.spec.d.ts +0 -1
  559. package/lib/services/resource.spec.js +0 -122
  560. package/lib/services/resource.spec.js.map +0 -1
  561. package/lib/services/service.spec.d.ts +0 -1
  562. package/lib/services/service.spec.js +0 -268
  563. package/lib/services/service.spec.js.map +0 -1
  564. package/lib/stores/aggregator.d.ts +0 -41
  565. package/lib/stores/aggregator.js +0 -80
  566. package/lib/stores/aggregator.js.map +0 -1
  567. package/lib/stores/aliasstore.d.ts +0 -108
  568. package/lib/stores/aliasstore.js +0 -168
  569. package/lib/stores/aliasstore.js.map +0 -1
  570. package/lib/stores/aliasstore.spec.d.ts +0 -11
  571. package/lib/stores/aliasstore.spec.js +0 -89
  572. package/lib/stores/aliasstore.spec.js.map +0 -1
  573. package/lib/stores/file.d.ts +0 -107
  574. package/lib/stores/file.js +0 -188
  575. package/lib/stores/file.js.map +0 -1
  576. package/lib/stores/file.spec.d.ts +0 -19
  577. package/lib/stores/file.spec.js +0 -232
  578. package/lib/stores/file.spec.js.map +0 -1
  579. package/lib/stores/mapper.d.ts +0 -149
  580. package/lib/stores/mapper.js +0 -293
  581. package/lib/stores/mapper.js.map +0 -1
  582. package/lib/stores/mapper.spec.d.ts +0 -1
  583. package/lib/stores/mapper.spec.js +0 -160
  584. package/lib/stores/mapper.spec.js.map +0 -1
  585. package/lib/stores/memory.d.ts +0 -151
  586. package/lib/stores/memory.js +0 -371
  587. package/lib/stores/memory.js.map +0 -1
  588. package/lib/stores/memory.spec.d.ts +0 -20
  589. package/lib/stores/memory.spec.js +0 -328
  590. package/lib/stores/memory.spec.js.map +0 -1
  591. package/lib/stores/modelmapper.d.ts +0 -61
  592. package/lib/stores/modelmapper.js +0 -199
  593. package/lib/stores/modelmapper.js.map +0 -1
  594. package/lib/stores/store.spec.d.ts +0 -65
  595. package/lib/stores/store.spec.js +0 -906
  596. package/lib/stores/store.spec.js.map +0 -1
  597. package/lib/test.d.ts +0 -162
  598. package/lib/test.js +0 -399
  599. package/lib/test.js.map +0 -1
  600. package/lib/unpackedapplication.d.ts +0 -76
  601. package/lib/unpackedapplication.js +0 -299
  602. package/lib/unpackedapplication.js.map +0 -1
  603. package/lib/utils/abstractdeployer.spec.d.ts +0 -1
  604. package/lib/utils/abstractdeployer.spec.js +0 -21
  605. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  606. package/lib/utils/case.d.ts +0 -7
  607. package/lib/utils/case.js +0 -43
  608. package/lib/utils/case.js.map +0 -1
  609. package/lib/utils/case.spec.d.ts +0 -1
  610. package/lib/utils/case.spec.js +0 -50
  611. package/lib/utils/case.spec.js.map +0 -1
  612. package/lib/utils/context.d.ts +0 -462
  613. package/lib/utils/context.js +0 -732
  614. package/lib/utils/context.js.map +0 -1
  615. package/lib/utils/context.spec.d.ts +0 -9
  616. package/lib/utils/context.spec.js +0 -372
  617. package/lib/utils/context.spec.js.map +0 -1
  618. package/lib/utils/cookie.js.map +0 -1
  619. package/lib/utils/cookie.spec.d.ts +0 -1
  620. package/lib/utils/cookie.spec.js +0 -78
  621. package/lib/utils/cookie.spec.js.map +0 -1
  622. package/lib/utils/esm.d.ts +0 -13
  623. package/lib/utils/esm.js +0 -19
  624. package/lib/utils/esm.js.map +0 -1
  625. package/lib/utils/httpcontext.js.map +0 -1
  626. package/lib/utils/httpcontext.spec.d.ts +0 -4
  627. package/lib/utils/httpcontext.spec.js +0 -77
  628. package/lib/utils/httpcontext.spec.js.map +0 -1
  629. package/lib/utils/logger.d.ts +0 -91
  630. package/lib/utils/logger.js +0 -121
  631. package/lib/utils/logger.js.map +0 -1
  632. package/lib/utils/logger.spec.d.ts +0 -1
  633. package/lib/utils/logger.spec.js +0 -48
  634. package/lib/utils/logger.spec.js.map +0 -1
  635. package/lib/utils/serializers.d.ts +0 -161
  636. package/lib/utils/serializers.js +0 -420
  637. package/lib/utils/serializers.js.map +0 -1
  638. package/lib/utils/serializers.spec.d.ts +0 -1
  639. package/lib/utils/serializers.spec.js +0 -313
  640. package/lib/utils/serializers.spec.js.map +0 -1
  641. package/lib/utils/session.d.ts +0 -126
  642. package/lib/utils/session.js +0 -166
  643. package/lib/utils/session.js.map +0 -1
  644. package/lib/utils/session.spec.d.ts +0 -1
  645. package/lib/utils/session.spec.js +0 -71
  646. package/lib/utils/session.spec.js.map +0 -1
  647. package/lib/utils/throttler.d.ts +0 -102
  648. package/lib/utils/throttler.js +0 -168
  649. package/lib/utils/throttler.js.map +0 -1
  650. package/lib/utils/throttler.spec.d.ts +0 -1
  651. package/lib/utils/throttler.spec.js +0 -55
  652. package/lib/utils/throttler.spec.js.map +0 -1
  653. package/lib/utils/waiter.d.ts +0 -93
  654. package/lib/utils/waiter.js +0 -148
  655. package/lib/utils/waiter.js.map +0 -1
  656. package/lib/utils/waiter.spec.d.ts +0 -1
  657. package/lib/utils/waiter.spec.js +0 -98
  658. package/lib/utils/waiter.spec.js.map +0 -1
  659. package/test/config-file-missing-file-no-default.json +0 -44
  660. package/test/config-file-missing-file.json +0 -55
  661. package/test/config-file-no-reload.json +0 -69
  662. package/test/config-file-reload.json +0 -68
  663. package/test/config-invitation.json +0 -63
  664. package/test/config-kube-reload.json +0 -68
  665. package/test/config-reload.json +0 -66
  666. package/test/config.old.json +0 -152
  667. package/test/jsonutils/mdocs.yaml +0 -56
  668. package/test/jsonutils/test.json +0 -3
  669. package/test/jsonutils/test.yml +0 -5
  670. package/test/moddas/annotatedservice.js +0 -23
  671. package/test/moddas/debugmailer.js +0 -13
  672. package/test/moddas/fakeservice.js +0 -4
  673. package/test/moddas/voidstore.js +0 -66
  674. package/test/models/ident.js +0 -36
  675. package/test/models/task.js +0 -42
@@ -1,906 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { suite, test } from "@testdeck/mocha";
8
- import * as assert from "assert";
9
- import { stub } from "sinon";
10
- import { randomUUID } from "crypto";
11
- import { Ident } from "../../test/models/ident.js";
12
- import { StoreParameters, WebdaError } from "../index.js";
13
- import { CoreModel } from "../models/coremodel.js";
14
- import { WebdaTest } from "../test.js";
15
- import { HttpContext } from "../utils/httpcontext.js";
16
- import { StoreNotFoundError, UpdateConditionFailError } from "./store.js";
17
- /**
18
- * Fake model that refuse the half of the items
19
- */
20
- export class PermissionModel extends CoreModel {
21
- async canAct(ctx, _action) {
22
- if (this.order % 200 < 120) {
23
- return false;
24
- }
25
- return true;
26
- }
27
- }
28
- let StoreParametersTest = class StoreParametersTest {
29
- cov() {
30
- let params = new StoreParameters({ expose: "/plop", lastUpdateField: "bz", creationDateField: "c" }, undefined);
31
- assert.deepStrictEqual(params.expose, {
32
- queryMethod: "GET",
33
- url: "/plop",
34
- restrict: {}
35
- });
36
- assert.throws(() => new StoreParameters({ map: {} }, undefined), Error);
37
- assert.throws(() => new StoreParameters({ index: [] }, undefined), Error);
38
- }
39
- };
40
- __decorate([
41
- test
42
- ], StoreParametersTest.prototype, "cov", null);
43
- StoreParametersTest = __decorate([
44
- suite
45
- ], StoreParametersTest);
46
- class StoreTest extends WebdaTest {
47
- /**
48
- * By default no testing index
49
- * @returns
50
- */
51
- async getIndex() {
52
- return undefined;
53
- }
54
- /**
55
- * Recreate index if needed
56
- */
57
- async recreateIndex() { }
58
- async before() {
59
- await super.before();
60
- await this.getUserStore()?.__clean();
61
- await this.getIdentStore()?.__clean();
62
- await this.recreateIndex();
63
- }
64
- getModelClass() {
65
- return Ident;
66
- }
67
- /**
68
- * Get the base of documents to query
69
- */
70
- getQueryDocuments() {
71
- let docs = [];
72
- for (let i = 0; i < 1000; i++) {
73
- docs.push({
74
- state: ["CA", "OR", "NY", "FL"][i % 4],
75
- states: [["CA", "OR", "NY", "FL"][i % 4], ["CA", "OR", "NY", "FL"][(i + 1) % 4]],
76
- order: i,
77
- team: {
78
- id: i % 20
79
- },
80
- role: i % 10
81
- });
82
- }
83
- return docs;
84
- }
85
- /**
86
- * Fill the Store with data to be queried
87
- */
88
- async fillForQuery() {
89
- let userStore = this.getUserStore();
90
- this.webda.getApplication().getModel("Webda/User").prototype.canAct = async () => true;
91
- userStore._model.prototype.canAct = async () => true;
92
- await Promise.all(this.getQueryDocuments().map(d => userStore.save(d)));
93
- return userStore;
94
- }
95
- async query() {
96
- let userStore = await this.fillForQuery();
97
- const queries = {
98
- 'state = "CA"': 250,
99
- "team.id > 15": 200,
100
- "team.id >= 15": 250,
101
- "team.id <= 14": 750,
102
- 'state IN ["CA", "NY"]': 500,
103
- 'state IN ["CA", "NY", "NV"]': 500,
104
- 'state = "CA" AND team.id > 15': 50,
105
- "team.id < 5 OR team.id > 15": 450,
106
- "role < 5 AND team.id > 10 OR team.id > 15": 400,
107
- "role < 5 AND (team.id > 10 OR team.id > 15)": 200,
108
- 'state LIKE "C_"': 250,
109
- 'state LIKE "C__"': 0,
110
- 'state LIKE "C%"': 250,
111
- 'state != "CA"': 750,
112
- 'states CONTAINS "CA"': 500,
113
- "role = 4": 100,
114
- "": 1000
115
- };
116
- for (let i in queries) {
117
- assert.strictEqual((await userStore.query(i)).results.length, queries[i], `Query: ${i} should return ${queries[i]}`);
118
- }
119
- // Verify pagination system
120
- let offset;
121
- let res;
122
- let i = 0;
123
- do {
124
- res = await userStore.query(`LIMIT 100 ${offset ? 'OFFSET "' + offset + '"' : ""}`);
125
- offset = res.continuationToken;
126
- if (i++ > 9) {
127
- assert.strictEqual(res.results.length, 0, `Query: LIMIT 100 ${offset ? 'OFFSET "' + offset + '"' : ""} should return 0`);
128
- assert.strictEqual(offset, undefined);
129
- }
130
- else {
131
- assert.strictEqual(res.results.length, 100, `Query: LIMIT 100 ${offset ? 'OFFSET "' + offset + '"' : ""} should return 0`);
132
- }
133
- } while (offset !== undefined);
134
- // Verify permission issue and half pagination
135
- userStore.setModel(PermissionModel);
136
- userStore.getParameters().forceModel = true;
137
- if (userStore._cacheStore) {
138
- userStore._cacheStore.getParameters().forceModel = true;
139
- }
140
- let context = await this.newContext();
141
- // Verify pagination system
142
- i = 0;
143
- let total = 0;
144
- let q;
145
- // To ensure we trigger slowQuery
146
- userStore.getParameters().slowQueryThreshold = 0;
147
- do {
148
- q = `team.id > 10 LIMIT 100 ${offset ? 'OFFSET "' + offset + '"' : ""}`;
149
- context.setHttpContext(new HttpContext("test.webda.io", i++ % 2 ? "GET" : "PUT", userStore.getParameters().expose.url + "?q=" + encodeURI(q), "https", 443));
150
- context.getHttpContext().setBody({ q });
151
- context.getParameters().q = q;
152
- // @ts-ignore
153
- await userStore.httpQuery(context);
154
- res = JSON.parse(context.getResponseBody());
155
- offset = res.continuationToken;
156
- total += res.results.length;
157
- } while (offset !== undefined);
158
- assert.strictEqual(total, 180);
159
- q = "BAD QUERY !";
160
- context.setHttpContext(new HttpContext("test.webda.io", "PUT", userStore.getParameters().expose.url, "https", 443));
161
- context.getHttpContext().setBody({ q });
162
- await assert.rejects(() => userStore["httpQuery"](context), (err) => err.getResponseCode() === 400);
163
- let mock = stub(userStore, "query").callsFake(() => {
164
- throw new Error("Plop");
165
- });
166
- try {
167
- await assert.rejects(() => userStore["httpQuery"](context), /Plop/);
168
- }
169
- finally {
170
- mock.restore();
171
- }
172
- return userStore;
173
- }
174
- /**
175
- * Simplify model
176
- * @param model
177
- * @returns
178
- */
179
- mapQueryModel(model) {
180
- return {
181
- order: model.order,
182
- teamId: model.team.id,
183
- state: model.state
184
- };
185
- }
186
- async queryOrder() {
187
- let userStore = await this.fillForQuery();
188
- let model = await userStore.save({
189
- order: 996,
190
- state: "CA",
191
- team: { id: 16 }
192
- });
193
- try {
194
- let res = await userStore.query('state = "CA" ORDER BY order DESC LIMIT 10');
195
- assert.deepStrictEqual(res.results.map((c) => ({
196
- state: c.state,
197
- order: c.order,
198
- teamId: c.team.id
199
- })), [
200
- { state: "CA", order: 996, teamId: 16 },
201
- { state: "CA", order: 996, teamId: 16 },
202
- { state: "CA", order: 992, teamId: 12 },
203
- { state: "CA", order: 988, teamId: 8 },
204
- { state: "CA", order: 984, teamId: 4 },
205
- { state: "CA", order: 980, teamId: 0 },
206
- { state: "CA", order: 976, teamId: 16 },
207
- { state: "CA", order: 972, teamId: 12 },
208
- { state: "CA", order: 968, teamId: 8 },
209
- { state: "CA", order: 964, teamId: 4 }
210
- ]);
211
- res = await userStore.query("order > 980 ORDER BY state ASC, order DESC LIMIT 10");
212
- assert.deepStrictEqual(res.results.map((c) => ({
213
- state: c.state,
214
- order: c.order,
215
- teamId: c.team.id
216
- })), [
217
- { state: "CA", order: 996, teamId: 16 },
218
- { state: "CA", order: 996, teamId: 16 },
219
- { state: "CA", order: 992, teamId: 12 },
220
- { state: "CA", order: 988, teamId: 8 },
221
- { state: "CA", order: 984, teamId: 4 },
222
- { state: "FL", order: 999, teamId: 19 },
223
- { state: "FL", order: 995, teamId: 15 },
224
- { state: "FL", order: 991, teamId: 11 },
225
- { state: "FL", order: 987, teamId: 7 },
226
- { state: "FL", order: 983, teamId: 3 }
227
- ]);
228
- }
229
- finally {
230
- await model.delete();
231
- }
232
- }
233
- async mapper() {
234
- let identStore = this.getIdentStore();
235
- let userStore = this.getUserStore();
236
- let user1, ident1, ident2, user2;
237
- var eventFired = 0;
238
- var events = [
239
- "Store.Save",
240
- "Store.Saved",
241
- "Store.Get",
242
- "Store.Delete",
243
- "Store.Deleted",
244
- "Store.Update",
245
- "Store.Updated",
246
- "Store.Query",
247
- "Store.Queried"
248
- ];
249
- for (let evt in events) {
250
- identStore.on(events[evt], function (evt) {
251
- eventFired++;
252
- });
253
- }
254
- assert.strictEqual(await userStore.get(undefined), undefined);
255
- user1 = (await userStore.save({
256
- name: "test"
257
- })).getUuid();
258
- let user = await userStore.get(user1);
259
- // Save a user and add an ident
260
- assert.notStrictEqual(user, undefined);
261
- user1 = user.getUuid();
262
- ident1 = await identStore.save({
263
- type: "facebook",
264
- _user: user.getUuid()
265
- });
266
- user = await userStore.get(user1);
267
- // Verify the ident is on the user
268
- assert.notStrictEqual(user, undefined);
269
- assert.notStrictEqual(user.idents, undefined);
270
- assert.strictEqual(user.idents.length, 1);
271
- // Retrieve index to verify it is in it too
272
- let index = await this.getIndex();
273
- // Do not force index test for store
274
- if (index) {
275
- assert.notStrictEqual(index[ident1.uuid], undefined);
276
- assert.strictEqual(index[ident1.uuid].type, "facebook");
277
- }
278
- let lastUpdate = user.idents[0]._lastUpdate;
279
- await this.sleep(10);
280
- await identStore.incrementAttribute(ident1.uuid, "counter", 1);
281
- await user.refresh();
282
- assert.notStrictEqual(user.idents[0]._lastUpdate, 0);
283
- this.assertLastUpdateNotEqual(user.idents[0]._lastUpdate, lastUpdate, "lastUpdate on a map after incrementAttribute");
284
- lastUpdate = user.idents[0]._lastUpdate;
285
- await this.sleep(10);
286
- await identStore.upsertItemToCollection(ident1.uuid, "actions", {
287
- uuid: "action_1",
288
- type: "plop",
289
- date: new Date()
290
- });
291
- await user.refresh();
292
- assert.notStrictEqual(user.idents[0]._lastUpdate.length, 0);
293
- this.assertLastUpdateNotEqual(user.idents[0]._lastUpdate, lastUpdate, "lastUpdate on a map after upsertItemToCollection");
294
- lastUpdate = user.idents[0]._lastUpdate;
295
- await this.sleep(10);
296
- await identStore.deleteItemFromCollection(ident1.uuid, "actions", 0, "plop", "type");
297
- await user.refresh();
298
- assert.notStrictEqual(user.idents[0]._lastUpdate.length, 0);
299
- this.assertLastUpdateNotEqual(user.idents[0]._lastUpdate, lastUpdate, "lastUpdate on a map after deleteItemFromCollection");
300
- ident2 = await identStore.save({
301
- type: "google",
302
- _user: user.uuid
303
- });
304
- // Ensure Date is returned
305
- assert.ok(ident2._creationDate instanceof Date);
306
- assert.ok(ident2._lastUpdate instanceof Date);
307
- // Add a second ident and check it is on the user aswell
308
- user = await userStore.get(user1);
309
- assert.strictEqual(user.idents.length, 2);
310
- // Check index
311
- if (index) {
312
- await index.refresh();
313
- assert.notStrictEqual(index[ident2.uuid], undefined);
314
- }
315
- ident2.type = "google2";
316
- // Update ident2 to check mapper update
317
- let res = await identStore.patch({
318
- uuid: ident2.uuid,
319
- type: "google2"
320
- }, true, null);
321
- assert.strictEqual(res.type, "google2");
322
- assert.strictEqual(res._user.toString(), user1);
323
- // Check index
324
- if (index) {
325
- await index.refresh();
326
- assert.strictEqual(index[ident2.uuid].type, "google2");
327
- }
328
- user = await userStore.get(user1);
329
- assert.strictEqual(user.idents.length, 2);
330
- assert.strictEqual(user.idents[1].type, "google2");
331
- await identStore.delete(ident1.uuid);
332
- user = await userStore.get(user1);
333
- assert.strictEqual(user.idents.length, 1);
334
- assert.strictEqual(user.idents[0].type, "google2");
335
- // Add a second user to play
336
- user = await userStore.save({
337
- name: "test2"
338
- });
339
- user2 = user.uuid;
340
- // Move ident2 from user1 to user2
341
- await identStore.patch({
342
- _user: user.uuid,
343
- uuid: ident2.uuid
344
- });
345
- // Check user1 has no more ident
346
- user = await userStore.get(user1);
347
- assert.strictEqual(user.idents.length, 0);
348
- // Check user2 has one ident
349
- user = await userStore.get(user2);
350
- assert.strictEqual(user.idents.length, 1);
351
- assert.strictEqual(user.idents[0].type, "google2");
352
- // Verify you cannot update a collection from patch
353
- await userStore.patch({
354
- idents: []
355
- }, user2);
356
- user = await userStore.get(user2);
357
- assert.strictEqual(user.idents.length, 1);
358
- // Verify you cannot update a collection from update
359
- await userStore.update({
360
- idents: []
361
- }, user2);
362
- user = await userStore.get(user2);
363
- assert.strictEqual(user.idents.length, 1);
364
- assert.strictEqual(user.idents[0].type, "google2");
365
- // Verify delete cascade with empty collection
366
- await userStore.delete(user1);
367
- user = await userStore.get(user2);
368
- assert.strictEqual(user.idents.length, 1);
369
- assert.strictEqual(user.idents[0].type, "google2");
370
- // Verify delete cascade
371
- await userStore.delete(user2);
372
- let ident = await identStore.get(ident2.uuid);
373
- assert.strictEqual(ident.__deleted, true);
374
- // Check index
375
- if (index) {
376
- await index.refresh();
377
- assert.strictEqual(index[ident2.uuid], undefined);
378
- assert.strictEqual(index[ident1.uuid], undefined);
379
- }
380
- assert.strictEqual(eventFired, 9);
381
- // Force sync delete - overriding the asyncDelete parameter
382
- await identStore.forceDelete(ident2.uuid);
383
- ident = await identStore.get(ident2.uuid);
384
- assert.strictEqual(ident, undefined);
385
- assert.strictEqual(eventFired, 11);
386
- }
387
- async collection() {
388
- let identStore = this.getIdentStore();
389
- var ident;
390
- ident = await identStore.save({
391
- test: "plop"
392
- });
393
- await identStore.upsertItemToCollection(ident.uuid, "actions", {
394
- uuid: "action_1",
395
- type: "plop",
396
- date: new Date()
397
- });
398
- await ident.refresh();
399
- assert.notStrictEqual(ident.actions, undefined);
400
- assert.strictEqual(ident.actions.length, 1);
401
- await identStore.upsertItemToCollection(ident.uuid, "actions", {
402
- uuid: "action_2",
403
- type: "plop",
404
- date: new Date()
405
- });
406
- await ident.refresh();
407
- assert.notStrictEqual(ident.actions, undefined);
408
- assert.strictEqual(ident.actions.length, 2);
409
- await identStore.upsertItemToCollection(ident.uuid, "actions", {
410
- uuid: "action_1",
411
- type: "plop2",
412
- date: new Date()
413
- }, 0);
414
- await ident.refresh();
415
- this.log("DEBUG", "Action", ident.actions);
416
- assert.notStrictEqual(ident.actions, undefined);
417
- assert.strictEqual(ident.actions.length, 2);
418
- assert.strictEqual(ident.actions[0].type, "plop2");
419
- assert.strictEqual(ident.actions[0].uuid, "action_1");
420
- await assert.rejects(() => identStore.upsertItemToCollection(ident.uuid, "actions", {
421
- uuid: "action_1",
422
- type: "plop2",
423
- date: new Date()
424
- }, 0, "plop", "type"), err => true);
425
- await assert.rejects(() => identStore.deleteItemFromCollection(ident.uuid, "actions", 0, "action_2"), err => true);
426
- await ident.refresh();
427
- assert.strictEqual(ident.actions.length, 2);
428
- assert.strictEqual(ident.actions[0].type, "plop2");
429
- let lastUpdate = ident._lastUpdate;
430
- await this.sleep(10);
431
- await identStore.upsertItemToCollection(ident.uuid, "actions", {
432
- uuid: "action_1",
433
- type: "plop",
434
- date: new Date()
435
- }, 0, "plop2", "type");
436
- await ident.refresh();
437
- this.assertLastUpdateNotEqual(ident._lastUpdate, lastUpdate, "lastUpdate after upsertItemToColletion failed");
438
- lastUpdate = ident._lastUpdate;
439
- await this.sleep(10);
440
- await identStore.deleteItemFromCollection(ident.uuid, "actions", 0, "plop", "type");
441
- ident = await identStore.get(ident.uuid);
442
- this.assertLastUpdateNotEqual(ident._lastUpdate, lastUpdate, "lastUpdate after deleteItemToColletion failed");
443
- assert.notStrictEqual(ident.actions, undefined);
444
- assert.strictEqual(ident.actions.length, 1);
445
- assert.strictEqual(ident.actions[0].type, "plop");
446
- assert.strictEqual(ident.actions[0].uuid, "action_2");
447
- }
448
- async getAll() {
449
- let userStore = this.getUserStore();
450
- var user1;
451
- var user3;
452
- user1 = await userStore.save({
453
- name: "test1"
454
- });
455
- await userStore.save({
456
- name: "test2"
457
- });
458
- user3 = await userStore.save({
459
- name: "test3"
460
- });
461
- let users = await userStore.getAll();
462
- assert.strictEqual(users.length, 3);
463
- assert.strictEqual(users[0] instanceof userStore._model, true);
464
- assert.strictEqual(users[1] instanceof userStore._model, true);
465
- assert.strictEqual(users[2] instanceof userStore._model, true);
466
- users = await userStore.getAll([user1.uuid, user3.uuid, randomUUID()]);
467
- assert.strictEqual(users.length, 2);
468
- assert.strictEqual(users[0] instanceof userStore._model, true);
469
- assert.strictEqual(users[1] instanceof userStore._model, true);
470
- }
471
- async crud() {
472
- let identStore = this.getIdentStore();
473
- var eventFired = 0;
474
- var events = [
475
- "Store.Save",
476
- "Store.Saved",
477
- "Store.Get",
478
- "Store.Delete",
479
- "Store.Deleted",
480
- "Store.Update",
481
- "Store.Updated",
482
- "Store.PatchUpdate",
483
- "Store.PatchUpdated",
484
- "Store.PartialUpdated",
485
- "Store.Query",
486
- "Store.Queried"
487
- ];
488
- for (let evt in events) {
489
- identStore.on(events[evt], function (e) {
490
- eventFired++;
491
- });
492
- }
493
- this.log("DEBUG", "Save ident");
494
- // Check CREATE - READ
495
- let ident1 = await identStore.save({
496
- test: "plop",
497
- cool: "",
498
- lastUsed: new Date(),
499
- arr: [],
500
- details: {
501
- plop: "plop1",
502
- clean: undefined,
503
- yop: "pouf"
504
- }
505
- });
506
- assert.strictEqual(eventFired, 2);
507
- assert.notStrictEqual(ident1, undefined);
508
- eventFired = 0;
509
- this.log("DEBUG", "Get ident");
510
- let getter = await identStore.get(ident1.uuid);
511
- assert.strictEqual(eventFired, 1);
512
- eventFired = 0;
513
- assert.notStrictEqual(getter, undefined);
514
- assert.notStrictEqual(getter.lastUsed, undefined);
515
- assert.notStrictEqual(getter._lastUpdate, undefined);
516
- assert.strictEqual(getter.uuid, ident1.uuid);
517
- assert.strictEqual(getter.test, ident1.test);
518
- // Check UPDATE
519
- getter.test = "plop2";
520
- getter.details.plop = "plop2";
521
- getter.details.blank = "";
522
- getter.details.bouzouf = undefined;
523
- getter.empty = [];
524
- let object;
525
- this.log("DEBUG", "Update ident");
526
- await identStore.update(getter);
527
- assert.strictEqual(eventFired, 2);
528
- eventFired = 0;
529
- getter = {};
530
- getter.uuid = ident1.uuid;
531
- getter.bouzouf = "test";
532
- this.log("DEBUG", "Patch ident");
533
- await identStore.patch(getter);
534
- assert.strictEqual(eventFired, 2);
535
- eventFired = 0;
536
- this.log("DEBUG", "Get ident to check update");
537
- object = await identStore.get(ident1.uuid);
538
- this.log("DEBUG", "Retrieved object", object);
539
- assert.strictEqual(object.test, "plop2");
540
- assert.strictEqual(object.details.plop, "plop2");
541
- getter = await identStore.get(object.uuid);
542
- assert.strictEqual(eventFired, 2);
543
- assert.strictEqual(getter.test, "plop2");
544
- await this.sleep(10);
545
- this.log("DEBUG", "Increment attribute");
546
- await identStore.incrementAttribute(ident1.uuid, "counter", 1);
547
- let ident = await identStore.get(ident1.uuid);
548
- // Verify lastUpdate is updated too
549
- this.assertLastUpdateNotEqual(ident._lastUpdate, ident1._lastUpdate, "lastUpdate after incrementAttribute failed");
550
- assert.strictEqual(ident.counter, 1);
551
- await identStore.incrementAttribute(ident1.uuid, "counter", 3);
552
- ident1 = await identStore.get(ident1.uuid);
553
- assert.strictEqual(ident1.counter, 4);
554
- await identStore.incrementAttributes(ident1.uuid, [
555
- { property: "counter", value: -6 },
556
- { property: "counter2", value: 10 }
557
- ]);
558
- let res = await identStore.exists(ident1.uuid);
559
- assert.strictEqual(res, true);
560
- // We should be able to verify with the full model
561
- await identStore.exists(ident1);
562
- assert.strictEqual(res, true);
563
- ident1 = await identStore.get(ident1.uuid);
564
- assert.strictEqual(ident1.counter, -2);
565
- // Check DELETE
566
- eventFired = 0;
567
- await identStore.forceDelete(ident1.uuid);
568
- assert.strictEqual(eventFired, 2);
569
- eventFired = 0;
570
- ident = await identStore.get(ident1.uuid);
571
- assert.strictEqual(ident, undefined);
572
- res = await identStore.exists(ident1.uuid);
573
- assert.strictEqual(res, false);
574
- }
575
- assertLastUpdateNotEqual(d1, d2, msg) {
576
- assert.notStrictEqual(d1, d2, msg);
577
- }
578
- async exists() {
579
- let store = this.getIdentStore();
580
- let model = await store.save({});
581
- assert.ok(await store.exists(model.getUuid()));
582
- assert.ok(await store.exists(model));
583
- assert.ok(!(await store.exists(randomUUID())));
584
- }
585
- async incrementAttribute() {
586
- let store = this.getIdentStore();
587
- let model = await store.save({ counter: 0 });
588
- await store.incrementAttribute(model.getUuid(), "counter", 3);
589
- await store.incrementAttribute(model.getUuid(), "counter2", 2);
590
- await model.refresh();
591
- assert.strictEqual(model.counter, 3);
592
- assert.strictEqual(model.counter2, 2);
593
- await assert.rejects(() => store.incrementAttribute(randomUUID(), "counter", 1), StoreNotFoundError);
594
- }
595
- async removeAttribute() {
596
- let store = this.getIdentStore();
597
- let model = await store.save({ counter: 0, counter2: 12, counter3: 13 });
598
- await store.removeAttribute(model.getUuid(), "counter");
599
- await model.refresh();
600
- assert.strictEqual(model.counter, undefined);
601
- await assert.rejects(() => store.removeAttribute(randomUUID(), "counter"), StoreNotFoundError);
602
- await assert.rejects(() => store.removeAttribute(model.getUuid(), "counter2", 10, "counter3"), UpdateConditionFailError);
603
- await model.refresh();
604
- assert.strictEqual(model.counter2, 12);
605
- }
606
- async setAttribute() {
607
- let store = this.getIdentStore();
608
- let model = await store.save({ counter: 0 });
609
- await store.setAttribute(model.getUuid(), "counter", 3);
610
- await store.setAttribute(model.getUuid(), "status", "TESTED");
611
- await model.refresh();
612
- assert.strictEqual(model.counter, 3);
613
- assert.strictEqual(model.status, "TESTED");
614
- await assert.rejects(() => store.setAttribute(randomUUID(), "counter", 4), StoreNotFoundError);
615
- store.on("Store.PatchUpdate", async () => {
616
- model._lastUpdate = new Date(100);
617
- // @ts-ignore
618
- await store._update(model, model.getUuid());
619
- });
620
- await assert.rejects(() => store.setAttribute(model.getUuid(), "counter", 4), UpdateConditionFailError);
621
- store.removeAllListeners("Store.PatchUpdate");
622
- store.on("Store.PatchUpdate", async () => {
623
- // @ts-ignore
624
- await store._delete(model.getUuid());
625
- await this.sleep(1);
626
- });
627
- await assert.rejects(() => store.setAttribute(model.getUuid(), "counter", 4), err => err instanceof StoreNotFoundError || err instanceof UpdateConditionFailError);
628
- await assert.rejects(() => store.setAttribute(randomUUID(), "counter", 4), err => err instanceof StoreNotFoundError || err instanceof UpdateConditionFailError);
629
- }
630
- async deleteAsync() {
631
- let store = this.getIdentStore();
632
- let model = await store.save({ counter: 1 });
633
- // Delete with condition
634
- await assert.rejects(() => store.delete(model.getUuid(), 4, "counter"), UpdateConditionFailError);
635
- await store.delete(model.getUuid(), 1, "counter");
636
- // Test without condition
637
- model = await store.save({ counter: 2 });
638
- await store.delete(model);
639
- // Deleting a non-existing object should be ignored
640
- await store.forceDelete(randomUUID());
641
- }
642
- async delete() {
643
- // UserStore is not supposed to be async
644
- let store = this.getUserStore();
645
- let model = await store.save({ counter: 1 });
646
- // Delete with condition
647
- await assert.rejects(() => store.delete(model.getUuid(), 4, "counter"), UpdateConditionFailError);
648
- await store.delete(model.getUuid(), 1, "counter");
649
- // Test without condition
650
- model = await store.save({ counter: 2 });
651
- await store.delete(model);
652
- // Deleting a non-existing object should be ignored
653
- await store.forceDelete(randomUUID());
654
- }
655
- async deleteConcurrent() {
656
- let store = this.getUserStore();
657
- let model = await store.save({ counter: 1 });
658
- store.addListener("Store.Delete", async () => {
659
- await store.incrementAttribute(model.getUuid(), "counter", 1);
660
- });
661
- await assert.rejects(() => store.delete(model.getUuid(), 1, "counter"), UpdateConditionFailError);
662
- store.removeAllListeners();
663
- await store.delete(model.getUuid(), 2, "counter");
664
- }
665
- async conditionUpdate() {
666
- let store = this.getIdentStore();
667
- let model = await store.save({ counter: 1 });
668
- assert.ok(await store.conditionalPatch(model.getUuid(), {
669
- plop: 12,
670
- counter: 2
671
- }, "counter", 1));
672
- assert.strictEqual((await store.get(model.getUuid())).plop, 12);
673
- assert.ok(!(await store.conditionalPatch(model.getUuid(), {
674
- plop: 13
675
- }, "counter", 1)));
676
- assert.strictEqual((await store.get(model.getUuid())).plop, 12);
677
- // @ts-ignore
678
- stub(store, "_patch").callsFake(() => {
679
- throw new Error("Fake Error");
680
- });
681
- await assert.rejects(() => store.conditionalPatch(model.getUuid(), {
682
- plop: 12,
683
- counter: 2
684
- }, "counter", 1), /Fake Error/);
685
- }
686
- async update(delay = 1) {
687
- let store = this.getIdentStore();
688
- let model = await store.save({ counter: 1 });
689
- model.saveUpdateCompat = true;
690
- await store.save(model, await this.newContext());
691
- model.saveInnerMethod = true;
692
- model.setContext(await this.newContext());
693
- await model.save();
694
- let model2 = await store.get(model.getUuid());
695
- store.on("Store.Update", async () => {
696
- model2._lastUpdate = new Date(100);
697
- // @ts-ignore
698
- await store._update(model2, model2.getUuid());
699
- });
700
- model.plop = "yop";
701
- // Delete with condition
702
- await assert.rejects(() => store.update(model), UpdateConditionFailError);
703
- store.removeAllListeners("Store.Update");
704
- store.on("Store.Update", async () => {
705
- // @ts-ignore
706
- await store._delete(model.getUuid());
707
- await this.sleep(delay);
708
- });
709
- await assert.rejects(() => store.update(model), err => err instanceof StoreNotFoundError || err instanceof UpdateConditionFailError);
710
- await assert.rejects(() => store.update({ uuid: randomUUID(), test: true }), err => err instanceof StoreNotFoundError || err instanceof UpdateConditionFailError);
711
- }
712
- async upsertItem() {
713
- let store = this.getIdentStore();
714
- this.log("DEBUG", "Save empty logs array");
715
- let model = await store.save({ logs: [] });
716
- let ps = [];
717
- this.log("DEBUG", "Upsert 10 lines");
718
- for (let i = 0; i < 10; i++) {
719
- ps.push(store.upsertItemToCollection(model.getUuid(), "logs", `line${i}`));
720
- }
721
- await Promise.all(ps);
722
- await model.refresh();
723
- assert.strictEqual(model.logs.length, 10);
724
- // Depending on the implementation it can be swallowed by the backend
725
- this.log("DEBUG", "Upsert on unknown doc");
726
- await assert.rejects(() => store.upsertItemToCollection(randomUUID(), "logs", `line`), err => err instanceof StoreNotFoundError || err instanceof UpdateConditionFailError);
727
- this.log("DEBUG", "Delete on unknown doc");
728
- await assert.rejects(() => store.deleteItemFromCollection(randomUUID(), "logs", 0, undefined, undefined), err => err instanceof StoreNotFoundError || err instanceof UpdateConditionFailError);
729
- }
730
- async put() {
731
- const store = this.getIdentStore();
732
- const uuid = store.getWebda().getUuid();
733
- if (await store.exists(uuid)) {
734
- await store.delete(uuid);
735
- }
736
- await store.put(uuid, { test: true });
737
- // Verify put acts like a upsert
738
- await store.put(uuid, { test: false });
739
- }
740
- async httpCRUD(url = "/users") {
741
- let eventFired;
742
- let userStore = this.getUserStore();
743
- let ctx, executor;
744
- await userStore.__clean();
745
- ctx = await this.newContext({});
746
- ctx.session.login("PLOP", "fake_ident");
747
- executor = this.getExecutor(ctx, "test.webda.io", "POST", url, {
748
- type: "CRUD",
749
- uuid: "PLOP",
750
- displayName: "Coucou"
751
- });
752
- assert.notStrictEqual(executor, undefined);
753
- await executor.execute(ctx);
754
- ctx.body = undefined;
755
- assert.strictEqual((await userStore.getAll()).length, 1);
756
- await this.getExecutor(ctx, "test.webda.io", "GET", `${url}/PLOP`).execute(ctx);
757
- assert.notStrictEqual(ctx.getResponseBody(), undefined);
758
- assert.strictEqual(ctx.getResponseBody().indexOf("_lastUpdate") >= 0, true);
759
- executor = this.getExecutor(ctx, "test.webda.io", "POST", url, {
760
- type: "CRUD2",
761
- uuid: "PLOP",
762
- displayName: "Coucou 2"
763
- });
764
- await assert.rejects(executor.execute(ctx), (err) => err.getResponseCode() === 409);
765
- // Verify the none overide of UUID
766
- await this.execute(ctx, "test.webda.io", "PUT", `${url}/PLOP`, {
767
- type: "CRUD2",
768
- additional: "field",
769
- uuid: "PLOP2",
770
- user: "fake_user",
771
- displayName: "Coucou 3",
772
- roles: []
773
- });
774
- let user = await userStore.get("PLOP");
775
- assert.strictEqual(user.getUuid(), "PLOP");
776
- assert.strictEqual(user.type, "CRUD2");
777
- assert.strictEqual(user.additional, "field");
778
- assert.strictEqual(user.user, "fake_user");
779
- // Add a role to the user
780
- user.roles.push("plop");
781
- await user.save();
782
- user = await userStore.get("PLOP");
783
- assert.deepStrictEqual(user.roles, ["plop"]);
784
- ctx.resetResponse();
785
- // Check PATH
786
- await this.execute(ctx, "test.webda.io", "PATCH", `${url}/PLOP`, {
787
- type: "CRUD3",
788
- uuid: "PLOP2",
789
- _testor: "_ should not be update by client"
790
- });
791
- user = await userStore.get("PLOP");
792
- assert.strictEqual(user.uuid, "PLOP");
793
- assert.strictEqual(user.type, "CRUD3");
794
- assert.strictEqual(user.additional, "field");
795
- assert.strictEqual(user._testor, undefined);
796
- assert.deepStrictEqual(user.roles, ["plop"]);
797
- executor = this.getExecutor(ctx, "test.webda.io", "PUT", `${url}/PLOP`, {
798
- type: "CRUD3",
799
- uuid: "PLOP2",
800
- _testor: "_ should not be update by client",
801
- displayName: "yep"
802
- });
803
- await executor.execute(ctx);
804
- user = await userStore.get("PLOP");
805
- assert.strictEqual(user.uuid, "PLOP");
806
- assert.strictEqual(user.type, "CRUD3");
807
- assert.strictEqual(user.additional, undefined);
808
- assert.strictEqual(user._testor, undefined);
809
- assert.deepStrictEqual(user.roles, undefined);
810
- await this.getExecutor(ctx, "test.webda.io", "DELETE", `${url}/PLOP`).execute(ctx);
811
- eventFired = 0;
812
- executor = this.getExecutor(ctx, "test.webda.io", "GET", `${url}/PLOP`);
813
- await assert.rejects(() => executor.execute(ctx), WebdaError.NotFound);
814
- eventFired++;
815
- executor = this.getExecutor(ctx, "test.webda.io", "DELETE", `${url}/PLOP`);
816
- await assert.rejects(() => executor.execute(ctx), WebdaError.NotFound);
817
- eventFired++;
818
- executor = this.getExecutor(ctx, "test.webda.io", "PUT", `${url}/PLOP`);
819
- await assert.rejects(() => executor.execute(ctx), WebdaError.NotFound);
820
- eventFired++;
821
- assert.strictEqual(eventFired, 3);
822
- }
823
- async modelActions(url = "/idents") {
824
- let identStore = this.getIdentStore();
825
- assert.notStrictEqual(identStore.getModel(), undefined);
826
- let eventFired = 0;
827
- let executor, ctx;
828
- identStore.on("Store.Action", evt => {
829
- eventFired++;
830
- });
831
- identStore.on("Store.Actioned", evt => {
832
- eventFired++;
833
- });
834
- ctx = await this.newContext({
835
- type: "CRUD",
836
- uuid: "PLOP"
837
- });
838
- executor = this.getExecutor(ctx, "test.webda.io", "PUT", `${url}/coucou/plop`);
839
- assert.notStrictEqual(executor, undefined);
840
- await assert.rejects(executor.execute(ctx), WebdaError.NotFound);
841
- await identStore.save({
842
- uuid: "coucou"
843
- });
844
- await executor.execute(ctx);
845
- // Our fake action is pushing true to _plop
846
- assert.strictEqual(JSON.parse(ctx.getResponseBody())._plop, true);
847
- assert.strictEqual(eventFired, 2);
848
- assert.notStrictEqual(this.getExecutor(ctx, "test.webda.io", "POST", `${url}/coucou/yop`), null);
849
- executor = this.getExecutor(ctx, "test.webda.io", "GET", `${url}/coucou/yop`);
850
- assert.notStrictEqual(executor, null);
851
- // Test with action returning the result instead of writing it
852
- ctx.resetResponse();
853
- await executor.execute(ctx);
854
- assert.strictEqual(ctx.getResponseBody(), "youpi");
855
- }
856
- }
857
- __decorate([
858
- test
859
- ], StoreTest.prototype, "query", null);
860
- __decorate([
861
- test
862
- ], StoreTest.prototype, "queryOrder", null);
863
- __decorate([
864
- test
865
- ], StoreTest.prototype, "mapper", null);
866
- __decorate([
867
- test
868
- ], StoreTest.prototype, "collection", null);
869
- __decorate([
870
- test
871
- ], StoreTest.prototype, "getAll", null);
872
- __decorate([
873
- test
874
- ], StoreTest.prototype, "crud", null);
875
- __decorate([
876
- test
877
- ], StoreTest.prototype, "exists", null);
878
- __decorate([
879
- test
880
- ], StoreTest.prototype, "incrementAttribute", null);
881
- __decorate([
882
- test
883
- ], StoreTest.prototype, "removeAttribute", null);
884
- __decorate([
885
- test
886
- ], StoreTest.prototype, "setAttribute", null);
887
- __decorate([
888
- test
889
- ], StoreTest.prototype, "deleteAsync", null);
890
- __decorate([
891
- test
892
- ], StoreTest.prototype, "delete", null);
893
- __decorate([
894
- test
895
- ], StoreTest.prototype, "conditionUpdate", null);
896
- __decorate([
897
- test
898
- ], StoreTest.prototype, "update", null);
899
- __decorate([
900
- test
901
- ], StoreTest.prototype, "upsertItem", null);
902
- __decorate([
903
- test
904
- ], StoreTest.prototype, "put", null);
905
- export { StoreTest };
906
- //# sourceMappingURL=store.spec.js.map