@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,116 +1,69 @@
1
- import { Counter, EventWithContext, Histogram } from "../core.js";
2
- import { ConfigurationProvider, WebdaError } from "../index.js";
3
- import { Constructor, CoreModel, CoreModelDefinition, FilterAttributes } from "../models/coremodel.js";
4
- import { Service, ServiceParameters } from "../services/service.js";
5
- import { OperationContext, WebContext } from "../utils/context.js";
6
- import { HttpMethodType } from "../utils/httpcontext.js";
1
+ import { Counter, Histogram } from "../metrics/metrics.js";
2
+ import * as WebdaError from "../errors/errors.js";
3
+ import { type Model, type ModelClass, type PrimaryKey, type Repository } from "@webda/models";
4
+ import { ServiceParameters } from "../services/serviceparameters.js";
5
+ import { Service } from "../services/service.js";
7
6
  import * as WebdaQL from "@webda/ql";
7
+ import type { WebdaQLString } from "@webda/ql";
8
+ import type { ModelMetadata } from "@webda/compiler";
9
+ /** Error thrown when an item is not found in a store */
8
10
  export declare class StoreNotFoundError extends WebdaError.CodeError {
9
- constructor(uuid: string, storeName: string);
11
+ /** Create a new StoreNotFoundError
12
+ * @param uuid - the item primary key
13
+ * @param storeName - the store name
14
+ */
15
+ constructor(uuid: PrimaryKey<any>, storeName: string);
10
16
  }
17
+ /** Error thrown when a conditional update fails due to a version/condition mismatch */
11
18
  export declare class UpdateConditionFailError extends WebdaError.CodeError {
12
- constructor(uuid: string, conditionField: string, condition: string | Date);
19
+ /** Create a new UpdateConditionFailError
20
+ * @param uuid - the item primary key
21
+ * @param conditionField - the condition field name
22
+ * @param condition - the expected condition value
23
+ */
24
+ constructor(uuid: PrimaryKey<any>, conditionField: string, condition: string | Date);
13
25
  }
14
26
  interface EventStore {
15
27
  /**
16
28
  * Target object
17
29
  */
18
- object: CoreModel;
30
+ object: Model;
19
31
  /**
20
32
  * Object id
21
33
  */
22
- object_id: string;
34
+ object_id: PrimaryKey<any>;
23
35
  /**
24
36
  * Store emitting
25
37
  */
26
38
  store: Store;
27
- /**
28
- * Context of the operation
29
- */
30
- context?: OperationContext;
31
39
  }
32
40
  /**
33
41
  * Event called before save of an object
34
42
  */
35
- export interface EventStoreSave extends EventStore {
36
- }
37
- /**
38
- * Event called after save of an object
39
- */
40
- export interface EventStoreSaved extends EventStoreSave {
41
- }
42
- /**
43
- * Event called before delete of an object
44
- */
45
- export interface EventStoreDelete extends EventStore {
43
+ export interface EventStoreCreated extends EventStore {
46
44
  }
47
45
  /**
48
46
  * Event called after delete of an object
49
47
  */
50
- export interface EventStoreDeleted extends EventStoreDelete {
51
- }
52
- /**
53
- * Event called on retrieval of an object
54
- */
55
- export interface EventStoreGet extends EventStore {
48
+ export interface EventStoreDeleted extends EventStore {
56
49
  }
57
50
  /**
58
- * Event called before action on an object
59
- */
60
- export interface EventStoreAction extends EventWithContext {
61
- /**
62
- * Name of the action
63
- */
64
- action: string;
65
- /**
66
- * Target object unless it is a global action
67
- */
68
- object?: CoreModel;
69
- /**
70
- * Model of the object if global action
71
- */
72
- model?: CoreModelDefinition;
73
- /**
74
- * Emitting store
75
- */
76
- store: Store;
77
- }
78
- /**
79
- * Event called after action on an object
80
- */
81
- export interface EventStoreActioned extends EventStoreAction {
82
- /**
83
- * Result of the action
84
- */
85
- result: any;
86
- }
87
- /**
88
- * Event called before update of an object
51
+ * Event called after update of an object
89
52
  */
90
- export interface EventStoreUpdate extends EventStore {
53
+ export interface EventStoreUpdated extends EventStore {
91
54
  /**
92
55
  * Update content
93
56
  */
94
57
  update: any;
95
- }
96
- /**
97
- * Event called after update of an object
98
- */
99
- export interface EventStoreUpdated extends EventStoreUpdate {
100
58
  /**
101
59
  * Object uuid
102
60
  */
103
- object_id: string;
61
+ object_id: PrimaryKey<any>;
104
62
  /**
105
63
  * Object before update
106
64
  */
107
65
  previous: any;
108
66
  }
109
- /**
110
- * Event called before patch update of an object
111
- */
112
- export interface EventStorePatchUpdate extends EventStoreUpdate {
113
- }
114
67
  /**
115
68
  * Event called after patch update of an object
116
69
  */
@@ -119,15 +72,15 @@ export interface EventStorePatchUpdated extends EventStoreUpdated {
119
72
  /**
120
73
  * Event called after partial update of an object
121
74
  */
122
- export interface EventStorePartialUpdated<T extends CoreModel = CoreModel> {
75
+ export interface EventStorePartialUpdated<T extends Model = Model> {
123
76
  /**
124
77
  * Object uuid
125
78
  */
126
- object_id: string;
79
+ object_id: PrimaryKey<any>;
127
80
  /**
128
81
  * Emitting store
129
82
  */
130
- store: Store<T>;
83
+ store: Store<any>;
131
84
  /**
132
85
  * Update date
133
86
  */
@@ -186,169 +139,10 @@ export interface EventStorePartialUpdated<T extends CoreModel = CoreModel> {
186
139
  deleteAttribute?: string;
187
140
  };
188
141
  }
189
- /**
190
- * Event sent when a query on the store is emitted
191
- */
192
- export interface EventStoreQuery {
193
- /**
194
- * Request sent
195
- */
196
- query: string;
197
- /**
198
- * Emitting store
199
- */
200
- store: Store;
201
- /**
202
- * The parsed query by our grammar
203
- */
204
- parsedQuery: WebdaQL.Query;
205
- /**
206
- * Context in which the query was run
207
- */
208
- context: OperationContext;
209
- }
210
- /**
211
- * Event sent when query is resolved
212
- */
213
- export interface EventStoreQueried extends EventStoreQuery {
214
- /**
215
- * Results from the query
216
- */
217
- results: CoreModel[];
218
- /**
219
- * The next continuation token
220
- */
221
- continuationToken: string;
222
- }
223
- /**
224
- * Event sent when object is created via POST request
225
- */
226
- export interface EventStoreWebCreate extends EventWithContext {
227
- /**
228
- * Properties for the object
229
- */
230
- values: any;
231
- /**
232
- * Target object
233
- */
234
- object: CoreModel;
235
- /**
236
- * Object id
237
- */
238
- object_id: string;
239
- /**
240
- * Emitting store
241
- */
242
- store: Store;
243
- }
244
- /**
245
- * Event sent when object is retrieved via GET request
246
- */
247
- export interface EventStoreWebGet extends EventWithContext {
248
- /**
249
- * Emitting store
250
- */
251
- store: Store;
252
- /**
253
- * Target object
254
- */
255
- object: CoreModel;
256
- }
257
- /**
258
- * Event sent when object is retrieved via GET request
259
- */
260
- export interface EventStoreWebGetNotFound extends EventWithContext {
261
- /**
262
- * Emitting store
263
- */
264
- store: Store;
265
- /**
266
- * Target object
267
- */
268
- uuid: string;
269
- }
270
- /**
271
- * Event sent when object is updated via PUT request
272
- */
273
- export interface EventStoreWebUpdate extends EventWithContext {
274
- /**
275
- * Type of update
276
- */
277
- method: "PATCH" | "PUT";
278
- /**
279
- * Updates to do on the object
280
- */
281
- updates: any;
282
- /**
283
- * Target object
284
- */
285
- object: CoreModel;
286
- /**
287
- * Emitting store
288
- */
289
- store: Store;
290
- }
291
- /**
292
- * Event sent when object is deleted via DELETE request
293
- */
294
- export interface EventStoreWebDelete extends EventWithContext {
295
- /**
296
- * Object uuid
297
- */
298
- object_id: string;
299
- /**
300
- * Emitting store
301
- */
302
- store: Store;
303
- }
304
- /**
305
- * @deprecated Store should not be exposed directly anymore
306
- * You should use the DomainService instead
307
- */
308
- export type StoreExposeParameters = {
309
- /**
310
- * URL endpoint to use to expose REST Resources API
311
- *
312
- * @default service.getName().toLowerCase()
313
- */
314
- url?: string;
315
- /**
316
- * You can restrict any part of the CRUD
317
- *
318
- * @default {}
319
- */
320
- restrict?: {
321
- /**
322
- * Do not expose the POST
323
- */
324
- create?: boolean;
325
- /**
326
- * Do not expose the PUT and PATCH
327
- */
328
- update?: boolean;
329
- /**
330
- * Do not expose the GET
331
- */
332
- get?: boolean;
333
- /**
334
- * Do not expose the DELETE
335
- */
336
- delete?: boolean;
337
- /**
338
- * Do not expose the query endpoint
339
- */
340
- query?: boolean;
341
- };
342
- /**
343
- * For confidentiality sometimes you might prefer to expose query through PUT
344
- * To avoid GET logging
345
- *
346
- * @default "GET"
347
- */
348
- queryMethod?: "PUT" | "GET";
349
- };
350
142
  /**
351
143
  * Represent a query result on the Store
144
+ *
145
+ * @internal — Store-internal type. App code queries via `Model.query()` / `useRepository(Model).query()`.
352
146
  */
353
147
  export interface StoreFindResult<T> {
354
148
  /**
@@ -368,34 +162,44 @@ export interface StoreFindResult<T> {
368
162
  */
369
163
  filter?: WebdaQL.Expression | true;
370
164
  }
165
+ /**
166
+ * A Store is low-level storage service
167
+ *
168
+ * It does not handle any business logic, only CRUD operations
169
+ *
170
+ * @internal — Store-internal contract. App code uses `Repository<T>` from `@webda/models`.
171
+ */
172
+ export interface StoreInterface<T = any> {
173
+ create(uuid: PrimaryKey<any>, object: any): Promise<any>;
174
+ get(uuid: PrimaryKey<any>): Promise<any>;
175
+ update(uuid: PrimaryKey<any>, object: any): Promise<any>;
176
+ delete(uuid: PrimaryKey<any>): Promise<void>;
177
+ exists(uuid: PrimaryKey<any>): Promise<boolean>;
178
+ setAttribute(uuid: PrimaryKey<any>, attribute: string, value: any): Promise<void>;
179
+ removeAttribute(uuid: PrimaryKey<any>, attribute: string): Promise<void>;
180
+ upsertItemToCollection(uuid: PrimaryKey<any>, collection: string, item: any, index?: number, itemWriteConditionField?: string, itemWriteCondition?: any): Promise<void>;
181
+ deleteItemFromCollection(uuid: PrimaryKey<any>, collection: string, index: number, itemWriteConditionField?: string, itemWriteCondition?: any): Promise<void>;
182
+ find(query: WebdaQLString<T>): Promise<StoreFindResult<any>>;
183
+ query(query: WebdaQLString<T>): Promise<StoreFindResult<any>>;
184
+ iterate(query: WebdaQLString<T>): AsyncGenerator;
185
+ incrementAttributes(uuid: PrimaryKey<any>, info: {
186
+ property: string;
187
+ value?: number;
188
+ }[]): Promise<Date>;
189
+ }
371
190
  /**
372
191
  * Store parameter
192
+ *
193
+ * @internal — Store configuration schema. Authored in `webda.config`/deployment
194
+ * files; not consumed by app code directly.
373
195
  */
374
196
  export declare class StoreParameters extends ServiceParameters {
375
197
  /**
376
- * Webda model to use within the Store
198
+ * Models managed by this Store.
377
199
  *
378
- * @default "Webda/CoreModel"
200
+ * @default ["Webda/RegistryEntry"]
379
201
  */
380
- model?: string;
381
- /**
382
- * Additional models
383
- *
384
- * Allow this store to manage other models
385
- *
386
- * @default []
387
- */
388
- additionalModels?: string[];
389
- /**
390
- * async delete
391
- */
392
- asyncDelete: boolean;
393
- /**
394
- * Expose the service to an urls
395
- *
396
- * @deprecated will probably be removed in 4.0 in favor of Expose annotation
397
- */
398
- expose?: StoreExposeParameters;
202
+ models?: string[];
399
203
  /**
400
204
  * Allow to load object that does not have the type data
401
205
  *
@@ -434,42 +238,28 @@ export declare class StoreParameters extends ServiceParameters {
434
238
  * Disable default memory cache
435
239
  */
436
240
  noCache?: boolean;
437
- constructor(params: any, service: Service<any>);
241
+ /**
242
+ * Load store parameters with defaults for model type, strict mode, and aliases
243
+ * @param params - the service parameters
244
+ * @returns the result
245
+ */
246
+ load(params: any): this;
438
247
  }
248
+ /**
249
+ * Aggregate `Store.*` event map.
250
+ *
251
+ * @internal — Store-internal type. App code listens on typed repository events
252
+ * via `useRepository(Model).on("Created" | "Updated" | ...)`.
253
+ */
439
254
  export type StoreEvents = {
440
255
  "Store.PartialUpdated": EventStorePartialUpdated;
441
- "Store.Save": EventStoreSave;
442
- "Store.Saved": EventStoreSaved;
443
- "Store.PatchUpdate": EventStorePatchUpdate;
256
+ "Store.Created": EventStoreCreated;
444
257
  "Store.PatchUpdated": EventStorePatchUpdated;
445
- "Store.Update": EventStoreUpdate;
446
258
  "Store.Updated": EventStoreUpdated;
447
- "Store.Delete": EventStoreDelete;
448
259
  "Store.Deleted": EventStoreDeleted;
449
- "Store.Get": EventStoreGet;
450
- "Store.Query": EventStoreQuery;
451
- "Store.Queried": EventStoreQueried;
452
- "Store.WebCreate": EventStoreWebCreate;
453
- "Store.Action": EventStoreAction;
454
- "Store.Actioned": EventStoreActioned;
455
- "Store.WebUpdate": EventStoreWebUpdate;
456
- "Store.WebGetNotFound": EventStoreWebGetNotFound;
457
- "Store.WebGet": EventStoreWebGet;
458
- "Store.WebDelete": EventStoreWebDelete;
459
260
  };
460
- /**
461
- * A mapping service allow to link two object together
462
- *
463
- * Therefore they need to handle the cascadeDelete
464
- */
465
- export interface MappingService<T = any> {
466
- newModel(object: any): T;
467
- }
468
261
  /**
469
262
  * This class handle NoSQL storage and mapping (duplication) between NoSQL object
470
- * TODO Create the mapping documentation
471
- *
472
- * It use basic CRUD, and can expose those 4 to through HTTP
473
263
  *
474
264
  * It emits events :
475
265
  * Store.Save: Before saving the object
@@ -482,526 +272,95 @@ export interface MappingService<T = any> {
482
272
  * Store.Action: When an action will be done on an object
483
273
  * Store.Actioned: When an action has been done on an object
484
274
  *
485
- * Mapping:
486
- *
487
- *
488
- * Parameters
489
- *
490
- * map: { ... }
491
- * expose: { // Enable the HTTP exposure
492
- * url: '', // The url to expose to by default it is service name in lowercase ( users for example )
493
- * restrict: {
494
- * create: true, // Don't expose the POST /users
495
- * update: true, // Don't expose the PUT /users/{uuid}
496
- * delete: true, // Don't expose the DELETE /users/{uuid}
497
- * get: true // Don't expose the GET /users/{uuid}
498
- * }
499
- * }
275
+ * @internal — Subclassed by store packages only. App code never references a
276
+ * Store directly: use `useRepository(Model)` or static model methods
277
+ * (`Model.create()`, `Model.query()`, `Model.ref()`).
500
278
  * @category CoreServices
501
279
  */
502
- declare abstract class Store<T extends CoreModel = CoreModel, K extends StoreParameters = StoreParameters, E extends StoreEvents = StoreEvents> extends Service<K, E> implements ConfigurationProvider, MappingService<T> {
503
- /**
504
- * Cache store
505
- */
506
- _cacheStore: Store<T>;
507
- /**
508
- * Contain the reverse map
509
- */
510
- _reverseMap: {
511
- mapper: MappingService;
512
- property: string;
513
- }[];
514
- /**
515
- * Contains the current model
516
- */
517
- _model: CoreModelDefinition<T>;
518
- /**
519
- * Store teh manager hierarchy with their depth
520
- */
280
+ declare abstract class Store<K extends StoreParameters = StoreParameters, E extends StoreEvents = StoreEvents> extends Service<K, E> {
281
+ /** All model classes managed by this store. Index 0 is the legacy "primary" model. */
282
+ _models: ModelClass[];
283
+ /** Metadata for each model in `_models`, keyed by Identifier. */
284
+ _modelMetadatas: Map<string, ModelMetadata>;
285
+ /** Store the manager hierarchy with their depth */
521
286
  _modelsHierarchy: {
522
287
  [key: string]: number;
523
288
  };
524
289
  /**
525
- * Contains the current model type
526
- */
527
- _modelType: string;
528
- /**
529
- * Contain the model uuid field
290
+ * Override the resolved model class for this store at runtime. Used by
291
+ * the abstract `StoreTest` harness so test fixtures can substitute a
292
+ * subclass with extra fields in place of the configured model. In
293
+ * production this is a no-op the framework never calls.
294
+ * @param model - the substitute model class
530
295
  */
531
- protected _uuidField: string;
296
+ setModelDefinitionHelper(model: ModelClass): void;
532
297
  /**
533
298
  * Add metrics counter
534
299
  * ' UNION SELECT name, tbl_name as email, "" as col1, "" as col2, "" as col3, "" as col4, "" as col5, "" as col6, "" as col7, "" as col8 FROM sqlite_master --
535
300
  * {"email":"' UNION SELECT name as profileImage, tbl_name as email, '' AS column3 FROM sqlite_master --","password":"we"}
536
301
  */
537
302
  metrics: {
538
- cache_invalidations: Counter;
539
303
  operations_total: Counter;
540
304
  slow_queries_total: Counter;
541
- cache_hits: Counter;
542
305
  queries: Histogram;
543
306
  };
544
307
  /**
545
- * Load the parameters for a service
308
+ * Compute and register repositories for all known models based on available stores.
309
+ *
310
+ * Called from `Store.init()` so each store's init triggers a recompute.
311
+ * Cannot be cached: the FIRST store to init (typically `Registry`) would
312
+ * claim every model with its fallback repository, and subsequent
313
+ * stores wouldn't get a chance to claim their configured models.
314
+ * Re-running is idempotent — `registerRepository` overwrites map entries
315
+ * in place, and the resolution loop is deterministic per current
316
+ * service/model state.
546
317
  */
547
- abstract loadParameters(params: any): StoreParameters;
318
+ static computeStores(): void;
548
319
  /**
549
- * Retrieve the Model
320
+ * Retrieve the Models and build the models hierarchy map.
550
321
  *
551
- * @throws Error if model is not found
322
+ * Walks `parameters.models[]` (the canonical flat list introduced in Task 1).
323
+ * If the list is empty or contains only the default "Webda/RegistryEntry"
324
+ * fallback, the hierarchy stays empty and the store will not claim any model
325
+ * — preserving the pre-migration fallback behaviour for test-only or
326
+ * misconfigured stores.
552
327
  */
553
328
  computeParameters(): void;
329
+ /**
330
+ * Log a slow query (placeholder for future implementation)
331
+ * @param _query - the query to execute
332
+ * @param _reason - the reason
333
+ * @param _time - the time
334
+ */
554
335
  logSlowQuery(_query: string, _reason: string, _time: number): void;
555
336
  /**
556
- * Invalidate a cache entry
557
- * @param uid
337
+ * Initialize the store
338
+ * @returns this for chaining
558
339
  */
559
- invalidateCache(uid: string): Promise<void>;
340
+ init(): Promise<this>;
560
341
  /**
561
342
  * @override
562
343
  */
563
344
  initMetrics(): void;
564
345
  /**
565
- * Return Store current model
566
- * @returns
346
+ * All models managed by this store.
347
+ * @returns the array of model classes managed by this store
567
348
  */
568
- getModel(): CoreModelDefinition;
349
+ getModels(): ModelClass[];
569
350
  /**
570
351
  * Return if a model is handled by the store
571
- * @param model
352
+ * @param model - the model to use
572
353
  * @return distance from the managed class -1 means not managed, 0 manage exactly this model, >0 manage an ancestor model
573
354
  *
355
+ * @returns the result number
574
356
  */
575
- handleModel(model: Constructor<CoreModel> | CoreModel): number;
576
- /**
577
- * Get From Cache or main
578
- * @param uuid
579
- * @param raiseIfNotFound
580
- * @returns
581
- */
582
- _getFromCache(uuid: string, raiseIfNotFound?: boolean): Promise<T>;
583
- /**
584
- * Get object from store
585
- * @param uid
586
- * @returns
587
- */
588
- getObject(uid: string): Promise<T>;
589
- /**
590
- * @override
591
- */
592
- getUrl(url: string, methods: HttpMethodType[]): string;
593
- static getOpenAPI(): void;
594
- /**
595
- * @inheritdoc
596
- */
597
- initRoutes(): void;
598
- /**
599
- * OVerwrite the model
600
- * Used mainly in test
601
- */
602
- setModel(model: CoreModelDefinition<T>): void;
603
- /**
604
- * We should ignore exception from the store
605
- */
606
- cacheStorePatchException(): void;
607
- /**
608
- * Init a model from the current stored data
609
- *
610
- * Initial the reverse map as well
611
- *
612
- * @param object
613
- * @returns
614
- */
615
- protected initModel(object?: any): T;
616
- /**
617
- * Get a new model with this data preloaded
618
- * @param object
619
- * @returns
620
- */
621
- newModel(object?: any): T;
622
- /**
623
- * Add reverse map information
624
- *
625
- * @param prop
626
- * @param cascade
627
- * @param store
628
- */
629
- addReverseMap(prop: string, store: MappingService): void;
630
- /**
631
- * Increment attributes of an object
632
- *
633
- * @param uid
634
- * @param info
635
- * @returns
636
- */
637
- incrementAttributes<FK extends FilterAttributes<T, number>>(uid: string, info: {
638
- property: FK;
639
- value: number;
640
- }[]): Promise<Date>;
641
- /**
642
- * Helper function that call incrementAttributes
643
- * @param uid
644
- * @param prop
645
- * @param value
646
- * @returns
647
- */
648
- incrementAttribute<FK extends FilterAttributes<T, number>>(uid: string, prop: FK, value: number): Promise<Date>;
649
- /**
650
- * Add or update an item to an array in the model
651
- *
652
- * @param uid of the model
653
- * @param prop of the model to add in
654
- * @param item to add in the array
655
- * @param index if specified update item in this index
656
- * @param itemWriteCondition value of the condition to test (in case of update)
657
- * @param itemWriteConditionField field to read the condition from (in case of update)
658
- */
659
- upsertItemToCollection<FK extends FilterAttributes<T, Array<any>>>(uid: string, prop: FK, item: any, index?: number, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<Date>;
660
- /**
661
- * Remove an item from an array in the model
662
- *
663
- * @param uid of the model
664
- * @param prop of the model to remove from
665
- * @param index of the item to remove in the array
666
- * @param itemWriteCondition value of the condition
667
- * @param itemWriteConditionField field to read the condition from
668
- */
669
- deleteItemFromCollection<FK extends FilterAttributes<T, Array<any>>>(uid: string, prop: FK, index: number, itemWriteCondition: any, itemWriteConditionField?: string): Promise<Date>;
670
- /**
671
- * Iterate through the results
672
- *
673
- * This can be resource consuming
674
- *
675
- * @param query
676
- * @param context
677
- */
678
- iterate(query?: string, context?: OperationContext): AsyncGenerator<T>;
679
- /**
680
- * Query all the results
681
- *
682
- *
683
- * @param query
684
- * @param context
685
- * @returns
686
- * @deprecated use iterate instead
687
- */
688
- queryAll(query: string, context?: OperationContext): Promise<T[]>;
689
- /**
690
- * Check that __type Comparison is only used with = and CONTAINS
691
- * If CONTAINS is used, move __type to __types
692
- * If __type = store._model, remove it
693
- */
694
- queryTypeUpdater(query: WebdaQL.Query): WebdaQL.Query;
695
- /**
696
- * Query store with WebdaQL
697
- * @param query
698
- * @param context to apply permission
699
- */
700
- query(query: string, context?: OperationContext): Promise<{
701
- results: T[];
702
- continuationToken?: string;
703
- }>;
704
- /**
705
- * Expose query to http
706
- */
707
- httpQuery(ctx: WebContext): Promise<void>;
708
- /**
709
- * Handle StoreEvent and update cache based on it
710
- * Then emit the event, it allows the cache to be updated
711
- * before listeners are called
712
- *
713
- * @param event
714
- * @param data
715
- */
716
- emitStoreEvent<Key extends keyof StoreEvents>(event: Key, data: E[Key] & {
717
- emitterId?: string;
718
- }): Promise<void>;
719
- /**
720
- * Save an object
721
- *
722
- * @param {Object} Object to save
723
- * @param {String} Uuid to use, if not specified take the object.uuid or generate one if not found
724
- * @return {Promise} with saved object
725
- *
726
- * Might want to rename to create
727
- */
728
- save(object: any, ctx?: OperationContext): Promise<T>;
729
- /**
730
- *
731
- * @param object
732
- * @param ctx
733
- * @returns
734
- */
735
- create(object: any, ctx?: OperationContext): Promise<any>;
736
- /**
737
- * Patch an object
738
- *
739
- * @param object
740
- * @param reverseMap
741
- * @returns
742
- */
743
- patch<FK extends keyof T>(object: Partial<T>, reverseMap?: boolean, conditionField?: FK | null, conditionValue?: any): Promise<T | undefined>;
744
- /**
745
- * Check if an UpdateCondition is met
746
- * @param model
747
- * @param conditionField
748
- * @param condition
749
- * @param uid
750
- */
751
- checkUpdateCondition<CK extends keyof T>(model: T, conditionField?: CK, condition?: any, uid?: string): void;
752
- /**
753
- * Check if an UpdateCondition is met
754
- * @param model
755
- * @param conditionField
756
- * @param condition
757
- * @param uid
758
- */
759
- checkCollectionUpdateCondition<FK extends FilterAttributes<T, Array<any>>, CK extends keyof T>(model: T, collection: FK, conditionField?: CK, condition?: any, index?: number): void;
760
- /**
761
- * Update conditionally
762
- * @param uuid
763
- * @param updates
764
- * @param conditionField
765
- * @param condition
766
- */
767
- conditionalPatch<CK extends keyof T>(uuid: string, updates: Partial<T>, conditionField: CK, condition: any): Promise<boolean>;
768
- /**
769
- *
770
- * @param model
771
- * @param prop
772
- * @param item
773
- * @param index
774
- * @param itemWriteCondition
775
- * @param itemWriteConditionField
776
- * @param updateDate
777
- */
778
- simulateUpsertItemToCollection<FK extends FilterAttributes<T, Array<any>>>(model: T, prop: FK, item: any, updateDate: Date, index?: number, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<void>;
779
- /**
780
- * Update an object
781
- *
782
- * If no attribute can be updated then return undefined
783
- *
784
- * @param {Object} Object to save
785
- * @param {Boolean} reverseMap internal use only, for disable map resolution
786
- * @return {Promise} with saved object
787
- */
788
- update<CK extends keyof T>(object: any, reverseMap?: boolean, partial?: boolean, conditionField?: CK | null, conditionValue?: any): Promise<T | undefined>;
789
- /**
790
- * Manage the store migration for __type case sensitivity
791
- */
792
- v3Migration(): Promise<void>;
793
- /**
794
- *
795
- */
796
- recomputeTypeShortId(): Promise<void>;
797
- /**
798
- * Ensure model aliases are not used in this store
799
- *
800
- * So alias can be cleaned
801
- */
802
- cleanModelAliases(): Promise<void>;
803
- /**
804
- * Recompute type case
805
- */
806
- recomputeTypeCase(): Promise<void>;
357
+ handleModel(model: ModelClass | Model): number;
807
358
  /**
808
- * Recompute the __types for all objects (storeMigration.Registry.typesCompute)
359
+ * Check that keys are valid
360
+ * All keys of model stored in a Store must have the same type of primary key
809
361
  */
810
- recomputeTypes(): Promise<void>;
811
- /**
812
- * Delete a migration
813
- * @param name
814
- */
815
- cancelMigration(name: string): Promise<void>;
816
- /**
817
- * Get a migration
818
- * @param name
819
- */
820
- getMigration(name: string): Promise<any>;
821
- /**
822
- * Add a migration mechanism to store
823
- * @param name
824
- * @param patcher
825
- */
826
- migration(name: string, patcher: (object: T) => Promise<Partial<T> | (() => Promise<void>) | undefined>, batchSize?: number): Promise<void>;
827
- /**
828
- * Remove an attribute from an object
829
- *
830
- * @param uuid
831
- * @param attribute
832
- * @returns
833
- */
834
- removeAttribute<CK extends keyof T>(uuid: string, attribute: CK, itemWriteCondition?: any, itemWriteConditionField?: CK): Promise<void>;
835
- /**
836
- * Cascade delete a related object
837
- *
838
- * @param obj
839
- * @param uuid
840
- * @returns
841
- */
842
- cascadeDelete(obj: CoreModel, _uuid: string): Promise<any>;
843
- /**
844
- * Delete an object from the store without condition nor async
845
- * @param uid to delete
846
- * @returns
847
- */
848
- forceDelete(uid: string): Promise<void>;
849
- /**
850
- * Delete an object
851
- *
852
- * @param {String} uuid to delete
853
- * @param {Boolean} delete sync even if asyncDelete is active
854
- * @return {Promise} the deletion promise
855
- */
856
- delete<CK extends keyof T>(uid: string | T, writeCondition?: any, writeConditionField?: CK, sync?: boolean): Promise<void>;
857
- /**
858
- * By default we cannot know if the store will trigger or not
859
- *
860
- * @param id
861
- * @param callback
862
- */
863
- canTriggerConfiguration(_id: string, _callback: () => void): boolean;
864
- /**
865
- * Provide a way to store configuration in store
866
- * @param {string} id
867
- * @returns {Promise<Map<string, any>>}
868
- */
869
- getConfiguration(id: string): Promise<{
870
- [key: string]: any;
871
- }>;
872
- /**
873
- * Upsert the uuid object
874
- * @param uuid
875
- * @param data
876
- */
877
- put(uuid: string, data: Partial<T>): Promise<T>;
878
- /**
879
- * Get an object
880
- *
881
- * @param {String} uuid to get
882
- * @return {Promise} the object retrieved ( can be undefined if not found )
883
- */
884
- get(uid: string, ctx?: OperationContext, defaultValue?: any): Promise<T>;
885
- /**
886
- * Set one attribute in an object
887
- *
888
- * this is an helper function that calls patch
889
- *
890
- * @param uid of the object
891
- * @param property to update1
892
- * @param value new value
893
- * @returns
894
- */
895
- setAttribute<CK extends keyof T>(uid: string, property: CK, value: any): Promise<void>;
896
- /**
897
- * @override
898
- */
899
- protected simulateFind(query: WebdaQL.Query, uuids: string[]): Promise<StoreFindResult<T>>;
900
- getOpenApiReplacements(): {
901
- modelName: string;
902
- };
903
- /**
904
- * Handle POST
905
- * @param ctx
906
- */
907
- httpCreate(ctx: WebContext): Promise<void>;
908
- /**
909
- * Create a new object based on the context
910
- * @param ctx
911
- * @param model
912
- */
913
- operationCreate(ctx: OperationContext, model: string): Promise<void>;
914
- /**
915
- * Handle obect action
916
- * @param ctx
917
- */
918
- httpAction(ctx: WebContext, actionMethod?: string): Promise<void>;
919
- /**
920
- * Handle collection action
921
- * @param ctx
922
- */
923
- httpGlobalAction(ctx: WebContext, model?: CoreModelDefinition): Promise<void>;
924
- /**
925
- * Handle HTTP Update for an object
926
- *
927
- * @param ctx context of the request
928
- */
929
- httpUpdate(ctx: WebContext): Promise<void>;
930
- /**
931
- * Handle GET on object
932
- *
933
- * @param ctx context of the request
934
- */
935
- httpGet(ctx: WebContext): Promise<void>;
936
- /**
937
- * Handle HTTP request
938
- *
939
- * @param ctx context of the request
940
- * @returns
941
- */
942
- httpDelete(ctx: WebContext): Promise<void>;
943
- /**
944
- * Return the model uuid field
945
- */
946
- getUuidField(): string;
947
- /**
948
- * Check if an object exists
949
- * @abstract
950
- * @params {String} uuid of the object or the object
951
- */
952
- exists(uid: string | CoreModel): Promise<boolean>;
953
- /**
954
- * Search within the store
955
- */
956
- abstract find(query: WebdaQL.Query): Promise<StoreFindResult<T>>;
957
- /**
958
- * Check if an object exists
959
- * @abstract
960
- */
961
- abstract _exists(uid: string): Promise<boolean>;
962
- /**
963
- * The underlying store should recheck writeCondition only if it does not require
964
- * another get()
965
- *
966
- * @param uid
967
- * @param writeCondition
968
- * @param itemWriteConditionField
969
- */
970
- protected abstract _delete(uid: string, writeCondition?: any, itemWriteConditionField?: string): Promise<void>;
971
- /**
972
- * Retrieve an element from the store
973
- *
974
- * @param uid to retrieve
975
- * @param raiseIfNotFound raise an StoreNotFound exception if not found
976
- */
977
- protected abstract _get(uid: string, raiseIfNotFound?: boolean): Promise<T>;
978
- /**
979
- * Get an object
980
- *
981
- * @param {Array} uuid to gets if undefined then retrieve the all table
982
- * @return {Promise} the objects retrieved ( can be [] if not found )
983
- */
984
- abstract getAll(list?: string[]): Promise<T[]>;
985
- protected abstract _update(object: any, uid: string, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<any>;
986
- protected abstract _patch(object: any, uid: string, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<any>;
987
- protected abstract _removeAttribute(uuid: string, attribute: string, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<void>;
988
- /**
989
- * Save within the store
990
- * @param object
991
- */
992
- protected abstract _save(object: T): Promise<any>;
993
- /**
994
- * Increment the attribute
995
- * @param uid
996
- * @param prop
997
- * @param value
998
- * @param updateDate
999
- */
1000
- protected abstract _incrementAttributes(uid: string, params: {
1001
- property: string;
1002
- value: number;
1003
- }[], updateDate: Date): Promise<any>;
1004
- protected abstract _upsertItemToCollection(uid: string, prop: string, item: any, index: number, itemWriteCondition: any, itemWriteConditionField: string, updateDate: Date): Promise<any>;
1005
- protected abstract _deleteItemFromCollection(uid: string, prop: string, index: number, itemWriteCondition: any, itemWriteConditionField: string, updateDate: Date): Promise<any>;
362
+ checkKeys(): void;
363
+ abstract getRepository<T extends ModelClass>(model: T): Repository<T>;
1006
364
  }
1007
365
  export { Store };
366
+ //# sourceMappingURL=store.d.ts.map