@webda/core 4.0.0-beta.2 → 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 (756) 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/{unpackedapplication.d.ts → application/unpackedapplication.d.ts} +43 -23
  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 -58
  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 +44 -19
  63. package/lib/contexts/httpcontext.d.ts.map +1 -0
  64. package/lib/{utils → contexts}/httpcontext.js +95 -27
  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 +82 -53
  119. package/lib/index.d.ts.map +1 -1
  120. package/lib/index.js +81 -62
  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 +20 -76
  155. package/lib/models/aclmodel.d.ts.map +1 -1
  156. package/lib/models/aclmodel.js +27 -203
  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 +1 -1
  167. package/lib/models/deployment.d.ts.map +1 -1
  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.js → rolemodel.model.js} +23 -5
  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.d.ts → memoryqueue.service.d.ts} +26 -13
  197. package/lib/queues/memoryqueue.service.d.ts.map +1 -0
  198. package/lib/queues/{memoryqueue.js → memoryqueue.service.js} +55 -31
  199. package/lib/queues/memoryqueue.service.js.map +1 -0
  200. package/lib/queues/pubsubservice.d.ts +8 -6
  201. package/lib/queues/pubsubservice.d.ts.map +1 -1
  202. package/lib/queues/pubsubservice.js +5 -4
  203. package/lib/queues/pubsubservice.js.map +1 -1
  204. package/lib/queues/queueservice.d.ts +9 -11
  205. package/lib/queues/queueservice.d.ts.map +1 -1
  206. package/lib/queues/queueservice.js +41 -13
  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 -59
  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 +17 -12
  245. package/lib/services/cloudbinary.d.ts.map +1 -1
  246. package/lib/services/cloudbinary.js +23 -17
  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} +75 -141
  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.js → debugmailer.service.js} +25 -10
  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 -11
  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 +52 -28
  297. package/lib/services/oauth.d.ts.map +1 -1
  298. package/lib/services/oauth.js +365 -254
  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 -12
  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.d.ts → resource.service.d.ts} +34 -15
  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 +87 -188
  313. package/lib/services/service.d.ts.map +1 -1
  314. package/lib/services/service.js +407 -422
  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 -19
  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 +126 -626
  345. package/lib/stores/store.d.ts.map +1 -1
  346. package/lib/stores/store.js +257 -1117
  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 +4 -2
  377. package/lib/utils/abstractdeployer.d.ts.map +1 -1
  378. package/lib/utils/abstractdeployer.js +3 -0
  379. package/lib/utils/abstractdeployer.js.map +1 -1
  380. package/package.json +85 -60
  381. package/test/cachedapp/webda.config.json +1 -5
  382. package/test/config-cached.json +1 -5
  383. package/test/config.json +0 -9
  384. package/test/my-cnf.json +9 -0
  385. package/webda.module.json +3463 -2482
  386. package/lib/application.d.ts +0 -888
  387. package/lib/application.d.ts.map +0 -1
  388. package/lib/application.js +0 -768
  389. package/lib/application.js.map +0 -1
  390. package/lib/application.spec.d.ts +0 -2
  391. package/lib/application.spec.d.ts.map +0 -1
  392. package/lib/application.spec.js +0 -248
  393. package/lib/application.spec.js.map +0 -1
  394. package/lib/core.d.ts +0 -743
  395. package/lib/core.d.ts.map +0 -1
  396. package/lib/core.js +0 -1334
  397. package/lib/core.js.map +0 -1
  398. package/lib/core.spec.d.ts +0 -2
  399. package/lib/core.spec.d.ts.map +0 -1
  400. package/lib/core.spec.js +0 -790
  401. package/lib/core.spec.js.map +0 -1
  402. package/lib/errors.d.ts +0 -64
  403. package/lib/errors.d.ts.map +0 -1
  404. package/lib/errors.js +0 -97
  405. package/lib/errors.js.map +0 -1
  406. package/lib/errors.spec.d.ts +0 -2
  407. package/lib/errors.spec.d.ts.map +0 -1
  408. package/lib/errors.spec.js +0 -33
  409. package/lib/errors.spec.js.map +0 -1
  410. package/lib/models/aclmodel.spec.d.ts +0 -2
  411. package/lib/models/aclmodel.spec.d.ts.map +0 -1
  412. package/lib/models/aclmodel.spec.js +0 -187
  413. package/lib/models/aclmodel.spec.js.map +0 -1
  414. package/lib/models/coremodel.d.ts +0 -896
  415. package/lib/models/coremodel.d.ts.map +0 -1
  416. package/lib/models/coremodel.js +0 -1214
  417. package/lib/models/coremodel.js.map +0 -1
  418. package/lib/models/coremodel.spec.d.ts +0 -2
  419. package/lib/models/coremodel.spec.d.ts.map +0 -1
  420. package/lib/models/coremodel.spec.js +0 -464
  421. package/lib/models/coremodel.spec.js.map +0 -1
  422. package/lib/models/ident.d.ts +0 -68
  423. package/lib/models/ident.d.ts.map +0 -1
  424. package/lib/models/ident.js +0 -26
  425. package/lib/models/ident.js.map +0 -1
  426. package/lib/models/ident.spec.d.ts +0 -2
  427. package/lib/models/ident.spec.d.ts.map +0 -1
  428. package/lib/models/ident.spec.js +0 -24
  429. package/lib/models/ident.spec.js.map +0 -1
  430. package/lib/models/ownermodel.d.ts +0 -51
  431. package/lib/models/ownermodel.d.ts.map +0 -1
  432. package/lib/models/ownermodel.js +0 -65
  433. package/lib/models/ownermodel.js.map +0 -1
  434. package/lib/models/ownermodel.spec.d.ts +0 -2
  435. package/lib/models/ownermodel.spec.d.ts.map +0 -1
  436. package/lib/models/ownermodel.spec.js +0 -215
  437. package/lib/models/ownermodel.spec.js.map +0 -1
  438. package/lib/models/relations.d.ts +0 -182
  439. package/lib/models/relations.d.ts.map +0 -1
  440. package/lib/models/relations.js +0 -157
  441. package/lib/models/relations.js.map +0 -1
  442. package/lib/models/relations.spec.d.ts +0 -14
  443. package/lib/models/relations.spec.d.ts.map +0 -1
  444. package/lib/models/relations.spec.js +0 -217
  445. package/lib/models/relations.spec.js.map +0 -1
  446. package/lib/models/rolemodel.d.ts +0 -11
  447. package/lib/models/rolemodel.d.ts.map +0 -1
  448. package/lib/models/rolemodel.js.map +0 -1
  449. package/lib/models/rolemodel.spec.d.ts +0 -2
  450. package/lib/models/rolemodel.spec.d.ts.map +0 -1
  451. package/lib/models/rolemodel.spec.js +0 -90
  452. package/lib/models/rolemodel.spec.js.map +0 -1
  453. package/lib/models/simpleuser.d.ts +0 -47
  454. package/lib/models/simpleuser.d.ts.map +0 -1
  455. package/lib/models/simpleuser.js +0 -84
  456. package/lib/models/simpleuser.js.map +0 -1
  457. package/lib/models/test.d.ts +0 -11
  458. package/lib/models/test.d.ts.map +0 -1
  459. package/lib/models/test.js +0 -7
  460. package/lib/models/test.js.map +0 -1
  461. package/lib/models/user.d.ts +0 -67
  462. package/lib/models/user.d.ts.map +0 -1
  463. package/lib/models/user.js +0 -86
  464. package/lib/models/user.js.map +0 -1
  465. package/lib/models/user.spec.d.ts +0 -2
  466. package/lib/models/user.spec.d.ts.map +0 -1
  467. package/lib/models/user.spec.js +0 -89
  468. package/lib/models/user.spec.js.map +0 -1
  469. package/lib/queues/filequeue.d.ts +0 -59
  470. package/lib/queues/filequeue.d.ts.map +0 -1
  471. package/lib/queues/filequeue.js +0 -131
  472. package/lib/queues/filequeue.js.map +0 -1
  473. package/lib/queues/filequeue.spec.d.ts +0 -2
  474. package/lib/queues/filequeue.spec.d.ts.map +0 -1
  475. package/lib/queues/filequeue.spec.js +0 -84
  476. package/lib/queues/filequeue.spec.js.map +0 -1
  477. package/lib/queues/memoryqueue.d.ts.map +0 -1
  478. package/lib/queues/memoryqueue.js.map +0 -1
  479. package/lib/queues/memoryqueue.spec.d.ts +0 -2
  480. package/lib/queues/memoryqueue.spec.d.ts.map +0 -1
  481. package/lib/queues/memoryqueue.spec.js +0 -203
  482. package/lib/queues/memoryqueue.spec.js.map +0 -1
  483. package/lib/queues/queue.spec.d.ts +0 -6
  484. package/lib/queues/queue.spec.d.ts.map +0 -1
  485. package/lib/queues/queue.spec.js +0 -55
  486. package/lib/queues/queue.spec.js.map +0 -1
  487. package/lib/rest/restdomainservice.d.ts +0 -63
  488. package/lib/rest/restdomainservice.d.ts.map +0 -1
  489. package/lib/rest/restdomainservice.js +0 -687
  490. package/lib/rest/restdomainservice.js.map +0 -1
  491. package/lib/rest/restdomainservice.spec.d.ts +0 -2
  492. package/lib/rest/restdomainservice.spec.d.ts.map +0 -1
  493. package/lib/rest/restdomainservice.spec.js +0 -124
  494. package/lib/rest/restdomainservice.spec.js.map +0 -1
  495. package/lib/rest/router.d.ts +0 -174
  496. package/lib/rest/router.d.ts.map +0 -1
  497. package/lib/rest/router.js +0 -429
  498. package/lib/rest/router.js.map +0 -1
  499. package/lib/rest/router.spec.d.ts +0 -2
  500. package/lib/rest/router.spec.d.ts.map +0 -1
  501. package/lib/rest/router.spec.js +0 -255
  502. package/lib/rest/router.spec.js.map +0 -1
  503. package/lib/services/asyncevents.d.ts +0 -152
  504. package/lib/services/asyncevents.d.ts.map +0 -1
  505. package/lib/services/asyncevents.js +0 -217
  506. package/lib/services/asyncevents.js.map +0 -1
  507. package/lib/services/asyncevents.spec.d.ts +0 -2
  508. package/lib/services/asyncevents.spec.d.ts.map +0 -1
  509. package/lib/services/asyncevents.spec.js +0 -118
  510. package/lib/services/asyncevents.spec.js.map +0 -1
  511. package/lib/services/authentication.d.ts.map +0 -1
  512. package/lib/services/authentication.js +0 -773
  513. package/lib/services/authentication.js.map +0 -1
  514. package/lib/services/authentication.spec.d.ts +0 -2
  515. package/lib/services/authentication.spec.d.ts.map +0 -1
  516. package/lib/services/authentication.spec.js +0 -458
  517. package/lib/services/authentication.spec.js.map +0 -1
  518. package/lib/services/binary.d.ts +0 -477
  519. package/lib/services/binary.d.ts.map +0 -1
  520. package/lib/services/binary.js +0 -617
  521. package/lib/services/binary.js.map +0 -1
  522. package/lib/services/binary.spec.d.ts +0 -41
  523. package/lib/services/binary.spec.d.ts.map +0 -1
  524. package/lib/services/binary.spec.js +0 -151
  525. package/lib/services/binary.spec.js.map +0 -1
  526. package/lib/services/cloudbinary.spec.d.ts +0 -6
  527. package/lib/services/cloudbinary.spec.d.ts.map +0 -1
  528. package/lib/services/cloudbinary.spec.js +0 -66
  529. package/lib/services/cloudbinary.spec.js.map +0 -1
  530. package/lib/services/configuration.d.ts.map +0 -1
  531. package/lib/services/configuration.js +0 -193
  532. package/lib/services/configuration.js.map +0 -1
  533. package/lib/services/configuration.spec.d.ts +0 -2
  534. package/lib/services/configuration.spec.d.ts.map +0 -1
  535. package/lib/services/configuration.spec.js +0 -130
  536. package/lib/services/configuration.spec.js.map +0 -1
  537. package/lib/services/cron.d.ts +0 -74
  538. package/lib/services/cron.d.ts.map +0 -1
  539. package/lib/services/cron.js +0 -141
  540. package/lib/services/cron.js.map +0 -1
  541. package/lib/services/cron.spec.d.ts +0 -2
  542. package/lib/services/cron.spec.d.ts.map +0 -1
  543. package/lib/services/cron.spec.js +0 -76
  544. package/lib/services/cron.spec.js.map +0 -1
  545. package/lib/services/cryptoservice.d.ts.map +0 -1
  546. package/lib/services/cryptoservice.js +0 -433
  547. package/lib/services/cryptoservice.js.map +0 -1
  548. package/lib/services/cryptoservice.spec.d.ts +0 -2
  549. package/lib/services/cryptoservice.spec.d.ts.map +0 -1
  550. package/lib/services/cryptoservice.spec.js +0 -177
  551. package/lib/services/cryptoservice.spec.js.map +0 -1
  552. package/lib/services/debugmailer.d.ts +0 -36
  553. package/lib/services/debugmailer.d.ts.map +0 -1
  554. package/lib/services/debugmailer.js.map +0 -1
  555. package/lib/services/debugmailer.spec.d.ts +0 -2
  556. package/lib/services/debugmailer.spec.d.ts.map +0 -1
  557. package/lib/services/debugmailer.spec.js +0 -32
  558. package/lib/services/debugmailer.spec.js.map +0 -1
  559. package/lib/services/domainservice.d.ts +0 -272
  560. package/lib/services/domainservice.d.ts.map +0 -1
  561. package/lib/services/domainservice.js +0 -651
  562. package/lib/services/domainservice.js.map +0 -1
  563. package/lib/services/domainservice.spec.d.ts +0 -2
  564. package/lib/services/domainservice.spec.d.ts.map +0 -1
  565. package/lib/services/domainservice.spec.js +0 -592
  566. package/lib/services/domainservice.spec.js.map +0 -1
  567. package/lib/services/filebinary.d.ts +0 -136
  568. package/lib/services/filebinary.d.ts.map +0 -1
  569. package/lib/services/filebinary.js +0 -373
  570. package/lib/services/filebinary.js.map +0 -1
  571. package/lib/services/filebinary.spec.d.ts +0 -25
  572. package/lib/services/filebinary.spec.d.ts.map +0 -1
  573. package/lib/services/filebinary.spec.js +0 -428
  574. package/lib/services/filebinary.spec.js.map +0 -1
  575. package/lib/services/fileconfiguration.d.ts +0 -23
  576. package/lib/services/fileconfiguration.d.ts.map +0 -1
  577. package/lib/services/fileconfiguration.js +0 -48
  578. package/lib/services/fileconfiguration.js.map +0 -1
  579. package/lib/services/fileconfiguration.spec.d.ts +0 -2
  580. package/lib/services/fileconfiguration.spec.d.ts.map +0 -1
  581. package/lib/services/fileconfiguration.spec.js +0 -215
  582. package/lib/services/fileconfiguration.spec.js.map +0 -1
  583. package/lib/services/invitationservice.d.ts +0 -223
  584. package/lib/services/invitationservice.d.ts.map +0 -1
  585. package/lib/services/invitationservice.js +0 -529
  586. package/lib/services/invitationservice.js.map +0 -1
  587. package/lib/services/invitationservice.spec.d.ts +0 -2
  588. package/lib/services/invitationservice.spec.d.ts.map +0 -1
  589. package/lib/services/invitationservice.spec.js +0 -567
  590. package/lib/services/invitationservice.spec.js.map +0 -1
  591. package/lib/services/kubernetesconfiguration.d.ts +0 -27
  592. package/lib/services/kubernetesconfiguration.d.ts.map +0 -1
  593. package/lib/services/kubernetesconfiguration.js +0 -52
  594. package/lib/services/kubernetesconfiguration.js.map +0 -1
  595. package/lib/services/kubernetesconfiguration.spec.d.ts +0 -2
  596. package/lib/services/kubernetesconfiguration.spec.d.ts.map +0 -1
  597. package/lib/services/kubernetesconfiguration.spec.js +0 -206
  598. package/lib/services/kubernetesconfiguration.spec.js.map +0 -1
  599. package/lib/services/mailer.d.ts +0 -166
  600. package/lib/services/mailer.d.ts.map +0 -1
  601. package/lib/services/mailer.js +0 -176
  602. package/lib/services/mailer.js.map +0 -1
  603. package/lib/services/mailer.spec.d.ts +0 -2
  604. package/lib/services/mailer.spec.d.ts.map +0 -1
  605. package/lib/services/mailer.spec.js +0 -158
  606. package/lib/services/mailer.spec.js.map +0 -1
  607. package/lib/services/notificationservice.d.ts.map +0 -1
  608. package/lib/services/notificationservice.js.map +0 -1
  609. package/lib/services/notificationservice.spec.d.ts +0 -2
  610. package/lib/services/notificationservice.spec.d.ts.map +0 -1
  611. package/lib/services/notificationservice.spec.js +0 -83
  612. package/lib/services/notificationservice.spec.js.map +0 -1
  613. package/lib/services/oauth.spec.d.ts +0 -2
  614. package/lib/services/oauth.spec.d.ts.map +0 -1
  615. package/lib/services/oauth.spec.js +0 -208
  616. package/lib/services/oauth.spec.js.map +0 -1
  617. package/lib/services/prometheus.d.ts.map +0 -1
  618. package/lib/services/prometheus.js +0 -160
  619. package/lib/services/prometheus.js.map +0 -1
  620. package/lib/services/prometheus.spec.d.ts +0 -2
  621. package/lib/services/prometheus.spec.d.ts.map +0 -1
  622. package/lib/services/prometheus.spec.js +0 -76
  623. package/lib/services/prometheus.spec.js.map +0 -1
  624. package/lib/services/resource.d.ts.map +0 -1
  625. package/lib/services/resource.js +0 -170
  626. package/lib/services/resource.js.map +0 -1
  627. package/lib/services/resource.spec.d.ts +0 -2
  628. package/lib/services/resource.spec.d.ts.map +0 -1
  629. package/lib/services/resource.spec.js +0 -140
  630. package/lib/services/resource.spec.js.map +0 -1
  631. package/lib/services/service.spec.d.ts +0 -2
  632. package/lib/services/service.spec.d.ts.map +0 -1
  633. package/lib/services/service.spec.js +0 -286
  634. package/lib/services/service.spec.js.map +0 -1
  635. package/lib/stores/aggregator.d.ts +0 -48
  636. package/lib/stores/aggregator.d.ts.map +0 -1
  637. package/lib/stores/aggregator.js +0 -80
  638. package/lib/stores/aggregator.js.map +0 -1
  639. package/lib/stores/file.d.ts +0 -108
  640. package/lib/stores/file.d.ts.map +0 -1
  641. package/lib/stores/file.js +0 -188
  642. package/lib/stores/file.js.map +0 -1
  643. package/lib/stores/file.spec.d.ts +0 -13
  644. package/lib/stores/file.spec.d.ts.map +0 -1
  645. package/lib/stores/file.spec.js +0 -138
  646. package/lib/stores/file.spec.js.map +0 -1
  647. package/lib/stores/mapper.d.ts +0 -150
  648. package/lib/stores/mapper.d.ts.map +0 -1
  649. package/lib/stores/mapper.js +0 -293
  650. package/lib/stores/mapper.js.map +0 -1
  651. package/lib/stores/mapper.spec.d.ts +0 -2
  652. package/lib/stores/mapper.spec.d.ts.map +0 -1
  653. package/lib/stores/mapper.spec.js +0 -167
  654. package/lib/stores/mapper.spec.js.map +0 -1
  655. package/lib/stores/memory.d.ts +0 -152
  656. package/lib/stores/memory.d.ts.map +0 -1
  657. package/lib/stores/memory.js +0 -371
  658. package/lib/stores/memory.js.map +0 -1
  659. package/lib/stores/memory.spec.d.ts +0 -14
  660. package/lib/stores/memory.spec.d.ts.map +0 -1
  661. package/lib/stores/memory.spec.js +0 -263
  662. package/lib/stores/memory.spec.js.map +0 -1
  663. package/lib/stores/modelmapper.d.ts +0 -62
  664. package/lib/stores/modelmapper.d.ts.map +0 -1
  665. package/lib/stores/modelmapper.js +0 -197
  666. package/lib/stores/modelmapper.js.map +0 -1
  667. package/lib/stores/store.spec.d.ts +0 -57
  668. package/lib/stores/store.spec.d.ts.map +0 -1
  669. package/lib/stores/store.spec.js +0 -737
  670. package/lib/stores/store.spec.js.map +0 -1
  671. package/lib/test.d.ts +0 -265
  672. package/lib/test.d.ts.map +0 -1
  673. package/lib/test.js +0 -622
  674. package/lib/test.js.map +0 -1
  675. package/lib/unpackedapplication.d.ts.map +0 -1
  676. package/lib/unpackedapplication.js +0 -350
  677. package/lib/unpackedapplication.js.map +0 -1
  678. package/lib/utils/abstractdeployer.spec.d.ts +0 -2
  679. package/lib/utils/abstractdeployer.spec.d.ts.map +0 -1
  680. package/lib/utils/abstractdeployer.spec.js +0 -21
  681. package/lib/utils/abstractdeployer.spec.js.map +0 -1
  682. package/lib/utils/case.d.ts +0 -8
  683. package/lib/utils/case.d.ts.map +0 -1
  684. package/lib/utils/case.js +0 -43
  685. package/lib/utils/case.js.map +0 -1
  686. package/lib/utils/case.spec.d.ts +0 -2
  687. package/lib/utils/case.spec.d.ts.map +0 -1
  688. package/lib/utils/case.spec.js +0 -50
  689. package/lib/utils/case.spec.js.map +0 -1
  690. package/lib/utils/context.d.ts +0 -482
  691. package/lib/utils/context.d.ts.map +0 -1
  692. package/lib/utils/context.js +0 -739
  693. package/lib/utils/context.js.map +0 -1
  694. package/lib/utils/context.spec.d.ts +0 -10
  695. package/lib/utils/context.spec.d.ts.map +0 -1
  696. package/lib/utils/context.spec.js +0 -383
  697. package/lib/utils/context.spec.js.map +0 -1
  698. package/lib/utils/cookie.d.ts.map +0 -1
  699. package/lib/utils/cookie.js.map +0 -1
  700. package/lib/utils/cookie.spec.d.ts +0 -2
  701. package/lib/utils/cookie.spec.d.ts.map +0 -1
  702. package/lib/utils/cookie.spec.js +0 -88
  703. package/lib/utils/cookie.spec.js.map +0 -1
  704. package/lib/utils/esm.d.ts +0 -14
  705. package/lib/utils/esm.d.ts.map +0 -1
  706. package/lib/utils/esm.js +0 -19
  707. package/lib/utils/esm.js.map +0 -1
  708. package/lib/utils/httpcontext.d.ts.map +0 -1
  709. package/lib/utils/httpcontext.js.map +0 -1
  710. package/lib/utils/httpcontext.spec.d.ts +0 -5
  711. package/lib/utils/httpcontext.spec.d.ts.map +0 -1
  712. package/lib/utils/httpcontext.spec.js +0 -77
  713. package/lib/utils/httpcontext.spec.js.map +0 -1
  714. package/lib/utils/logger.d.ts +0 -92
  715. package/lib/utils/logger.d.ts.map +0 -1
  716. package/lib/utils/logger.js +0 -121
  717. package/lib/utils/logger.js.map +0 -1
  718. package/lib/utils/logger.spec.d.ts +0 -2
  719. package/lib/utils/logger.spec.d.ts.map +0 -1
  720. package/lib/utils/logger.spec.js +0 -48
  721. package/lib/utils/logger.spec.js.map +0 -1
  722. package/lib/utils/serializers.d.ts +0 -162
  723. package/lib/utils/serializers.d.ts.map +0 -1
  724. package/lib/utils/serializers.js +0 -420
  725. package/lib/utils/serializers.js.map +0 -1
  726. package/lib/utils/serializers.spec.d.ts +0 -2
  727. package/lib/utils/serializers.spec.d.ts.map +0 -1
  728. package/lib/utils/serializers.spec.js +0 -311
  729. package/lib/utils/serializers.spec.js.map +0 -1
  730. package/lib/utils/session.d.ts +0 -123
  731. package/lib/utils/session.d.ts.map +0 -1
  732. package/lib/utils/session.js +0 -156
  733. package/lib/utils/session.js.map +0 -1
  734. package/lib/utils/session.spec.d.ts +0 -2
  735. package/lib/utils/session.spec.d.ts.map +0 -1
  736. package/lib/utils/session.spec.js +0 -81
  737. package/lib/utils/session.spec.js.map +0 -1
  738. package/lib/utils/throttler.d.ts +0 -99
  739. package/lib/utils/throttler.d.ts.map +0 -1
  740. package/lib/utils/throttler.js +0 -160
  741. package/lib/utils/throttler.js.map +0 -1
  742. package/lib/utils/throttler.spec.d.ts +0 -2
  743. package/lib/utils/throttler.spec.d.ts.map +0 -1
  744. package/lib/utils/throttler.spec.js +0 -53
  745. package/lib/utils/throttler.spec.js.map +0 -1
  746. package/lib/utils/waiter.d.ts +0 -94
  747. package/lib/utils/waiter.d.ts.map +0 -1
  748. package/lib/utils/waiter.js +0 -148
  749. package/lib/utils/waiter.js.map +0 -1
  750. package/lib/utils/waiter.spec.d.ts +0 -2
  751. package/lib/utils/waiter.spec.d.ts.map +0 -1
  752. package/lib/utils/waiter.spec.js +0 -98
  753. package/lib/utils/waiter.spec.js.map +0 -1
  754. package/test/jsonutils/mdocs.yaml +0 -56
  755. package/test/jsonutils/test.json +0 -3
  756. package/test/jsonutils/test.yml +0 -5
@@ -0,0 +1,808 @@
1
+ import { Readable } from "stream";
2
+ import * as WebdaError from "../errors/errors.js";
3
+ import { Service } from "./service.js";
4
+ import { ServiceParameters } from "./serviceparameters.js";
5
+ import { Counter } from "../metrics/metrics.js";
6
+ import { IOperationContext } from "../contexts/icontext.js";
7
+ import { IStore } from "../core/icore.js";
8
+ import { MappingService } from "../stores/istore.js";
9
+ import { type Model, type Storable, WEBDA_STORAGE } from "@webda/models";
10
+ /**
11
+ * Represent basic EventBinary
12
+ */
13
+ export interface EventBinary {
14
+ object: BinaryFileInfo;
15
+ service: BinaryService;
16
+ }
17
+ export interface EventBinaryUploadSuccess<T extends Storable = Storable> extends EventBinary {
18
+ target: T;
19
+ }
20
+ /**
21
+ * Sent before metadata are updated to allow alteration of the modification
22
+ */
23
+ export interface EventBinaryMetadataUpdate<T extends Storable = Storable> extends EventBinaryUploadSuccess<T> {
24
+ target: T;
25
+ metadata: BinaryMetadata;
26
+ }
27
+ /**
28
+ * Emitted if binary does not exist
29
+ */
30
+ export declare class BinaryNotFoundError extends WebdaError.CodeError {
31
+ /** Create a new BinaryNotFoundError
32
+ * @param hash - the binary hash
33
+ * @param storeName - the binary service name
34
+ */
35
+ constructor(hash: string, storeName: string);
36
+ }
37
+ export interface BinaryFileInfo<T extends object = {}> {
38
+ /**
39
+ * Hash of the binary
40
+ */
41
+ hash?: string;
42
+ /**
43
+ * Will be computed by the service
44
+ *
45
+ * hash of the content prefixed by 'WEBDA'
46
+ */
47
+ challenge?: string;
48
+ /**
49
+ * Size of the file
50
+ */
51
+ size: number;
52
+ /**
53
+ * Name of the file
54
+ */
55
+ name: string;
56
+ /**
57
+ * Mimetype
58
+ */
59
+ mimetype: string;
60
+ /**
61
+ * Metadatas stored along with the binary
62
+ */
63
+ metadata?: T;
64
+ }
65
+ /**
66
+ * Represent files attached to a model
67
+ */
68
+ export type BinaryFiles<T extends object = {}> = BinaryFileInfo<T>[];
69
+ /**
70
+ * Represent a file to store
71
+ * @WebdaSchema
72
+ */
73
+ export declare abstract class BinaryFile<T extends object = {}> implements BinaryFileInfo<T> {
74
+ /**
75
+ * Current name
76
+ */
77
+ name: string;
78
+ /**
79
+ * Original name
80
+ */
81
+ originalname?: string;
82
+ /**
83
+ * Size of the binary
84
+ */
85
+ size: number;
86
+ /**
87
+ * Mimetype of the binary
88
+ */
89
+ mimetype: string;
90
+ /**
91
+ * Will be computed by the service
92
+ *
93
+ * hash of the content prefixed by 'WEBDA'
94
+ */
95
+ challenge?: string;
96
+ /**
97
+ * Will be computed by the service
98
+ *
99
+ * hash of the content
100
+ */
101
+ hash?: string;
102
+ /**
103
+ * Metadatas stored along with the binary
104
+ */
105
+ metadata?: T;
106
+ /** Create a new BinaryFile
107
+ * @param info - the binary file information
108
+ */
109
+ constructor(info: BinaryFileInfo<T>);
110
+ /**
111
+ * Set the information
112
+ * @param info - the information object
113
+ */
114
+ set(info: BinaryFileInfo<T>): void;
115
+ /**
116
+ * Retrieve a plain BinaryFileInfo object
117
+ * @returns the result
118
+ */
119
+ toBinaryFileInfo(): BinaryFileInfo<T>;
120
+ abstract get(): Promise<Readable>;
121
+ /**
122
+ * Create hashes
123
+ * @param buffer - the buffer
124
+ * @returns the result
125
+ */
126
+ getHashes(): Promise<{
127
+ hash: string;
128
+ challenge: string;
129
+ }>;
130
+ }
131
+ /** BinaryFile backed by a local filesystem path */
132
+ export declare class LocalBinaryFile extends BinaryFile {
133
+ /**
134
+ * Path on the hard drive
135
+ */
136
+ path: string;
137
+ /** Create a new LocalBinaryFile
138
+ * @param filePath - path to the local file
139
+ */
140
+ constructor(filePath: string);
141
+ /**
142
+ * @override
143
+ */
144
+ get(): Promise<Readable>;
145
+ }
146
+ /** BinaryFile backed by an in-memory Buffer */
147
+ export declare class MemoryBinaryFile extends BinaryFile {
148
+ /**
149
+ * Content
150
+ */
151
+ buffer: Buffer;
152
+ /** Create a new MemoryBinaryFile
153
+ * @param buffer - the binary content
154
+ * @param info - optional file information
155
+ */
156
+ constructor(buffer: Buffer | string, info?: Partial<BinaryFileInfo>);
157
+ /**
158
+ * @override
159
+ */
160
+ get(): Promise<Readable>;
161
+ }
162
+ /**
163
+ * Define the metadata for a Binary
164
+ */
165
+ export type BinaryMetadata = any;
166
+ /**
167
+ * This is a map used to retrieve binary
168
+ *
169
+ * @class BinaryMap
170
+ */
171
+ export declare class BinaryMap<T extends object = {}> extends BinaryFile<T> {
172
+ /**
173
+ * Link to the binary store
174
+ */
175
+ [WEBDA_STORAGE]: {
176
+ service: BinaryService;
177
+ };
178
+ /** Create a new BinaryMap
179
+ * @param service - the binary service
180
+ * @param obj - the binary file information
181
+ */
182
+ constructor(service: BinaryService, obj: BinaryFileInfo<T>);
183
+ /**
184
+ * Get the binary data
185
+ *
186
+ * @returns the result
187
+ */
188
+ get(): Promise<Readable>;
189
+ /**
190
+ * Get into a buffer
191
+ * @returns the result
192
+ */
193
+ getAsBuffer(): Promise<Buffer>;
194
+ /**
195
+ * Download the binary to a path
196
+ *
197
+ * Shortcut to call {@link Binary.downloadTo} with current object
198
+ *
199
+ * @param filename - the filename
200
+ * @returns the result
201
+ */
202
+ downloadTo(filename: string): Promise<void>;
203
+ }
204
+ /**
205
+ * One Binary instance — single-cardinality binary attribute on a CoreModel.
206
+ *
207
+ * Tagged as a Behavior so the compiler picks it up via the same path as every
208
+ * other `@WebdaBehavior` class. Its `@Action`-decorated methods are exposed
209
+ * as model-scoped operations (`<Model>.<Attribute>.<Action>`) and routed by
210
+ * `RESTOperationsTransport.exposeBehaviorRoutes`.
211
+ *
212
+ * Constructor takes no required arguments because the transformer-emitted
213
+ * `__hydrateBehaviors` calls `new Binary()` with zero args before stamping
214
+ * the parent reference into `WEBDA_STORAGE["__parent__"]`. Legacy 2-arg
215
+ * usage (`new Binary(attribute, model)`) is still supported for direct
216
+ * callers and tests; when present, the constructor eagerly resolves the
217
+ * service and copies the existing model attribute value so callers can call
218
+ * `isEmpty()` and `hash`/`size` immediately.
219
+ *
220
+ * @readOnly
221
+ * @WebdaBehavior Webda/Binary
222
+ */
223
+ export declare class Binary<T extends object = {}> extends BinaryMap<T> {
224
+ /** Create a new Binary.
225
+ *
226
+ * Callable with no arguments (the Behavior-hydration path the transformer
227
+ * emits) or with the legacy `(attribute, model)` pair for direct
228
+ * instantiation in tests / non-hydrated code.
229
+ * @param attribute - the model attribute name (legacy form)
230
+ * @param model - the parent model (legacy form)
231
+ */
232
+ constructor(attribute?: string, model?: Model);
233
+ /**
234
+ * Resolve the BinaryService lazily via the Behavior parent reference.
235
+ *
236
+ * The transformer-emitted `__hydrateBehaviors` writes
237
+ * `WEBDA_STORAGE["__parent__"]` after construction, and the per-Behavior
238
+ * `parent` getter (also emitted by the transformer) surfaces it as
239
+ * `this.parent`. We resolve the service on first call and cache it on the
240
+ * storage slot so subsequent calls don't re-walk the binary registry.
241
+ *
242
+ * @returns the BinaryService that owns this Binary's parent attribute
243
+ */
244
+ protected getService(): BinaryService;
245
+ /**
246
+ * Read the Behavior parent reference. The transformer-emitted `parent`
247
+ * getter on `@WebdaBehavior` classes returns the same slot, but Binary
248
+ * may also be used in code paths where the transformer hasn't run (e.g.
249
+ * unit tests that hand-roll instances), so we read the slot directly.
250
+ *
251
+ * @returns the parent reference or undefined
252
+ */
253
+ protected getParent(): {
254
+ instance: Storable;
255
+ attribute: string;
256
+ } | undefined;
257
+ /**
258
+ * isEmpty
259
+ * @returns the result
260
+ */
261
+ isEmpty(): any;
262
+ /**
263
+ * Ensure empty is set correctly.
264
+ *
265
+ * `BinaryFile`'s constructor calls `this.set(info)` before subclass class-field
266
+ * initializers run, so `this[WEBDA_STORAGE]` is still `undefined` the first
267
+ * time we get here when constructing a fresh `new Binary()` (the no-args
268
+ * path used by the transformer's `__hydrateBehaviors`). Initialize the
269
+ * slot lazily on the first set call to keep that boot path crash-free —
270
+ * the class-field initializer on `BinaryMap` will then OVERWRITE this on
271
+ * its way back from super, but that's fine because it preserves the
272
+ * shape `{ service?, empty?, ... }` and we've passed through `set` only
273
+ * once at this point.
274
+ *
275
+ * @param info - the information object
276
+ */
277
+ set(info: BinaryFileInfo<T>): void;
278
+ /**
279
+ * Replace the binary by uploading a new file. Direct programmatic use
280
+ * (non-HTTP). Equivalent to the `attach(...)` HTTP action minus the
281
+ * context handling.
282
+ * @param file - the binary file to upload
283
+ * @returns the result
284
+ */
285
+ upload(file: BinaryFile<T>): Promise<void>;
286
+ /**
287
+ * Delete this binary from storage and clear local state.
288
+ *
289
+ * Exposed as a Behavior `@Action` (DELETE on `{uuid}/<attribute>/{hash}`).
290
+ * The URL `{hash}` must match the current binary's hash; this guards
291
+ * against accidental deletes when the client raced a metadata update.
292
+ *
293
+ * Migrated from `DomainService.binaryAction` (action="delete",
294
+ * single-cardinality branch).
295
+ * @param hash - the URL-supplied hash; must match `this.hash`
296
+ */
297
+ delete(hash: string): Promise<void>;
298
+ /**
299
+ * Direct (multipart / raw) upload from an HTTP request.
300
+ *
301
+ * `POST /<plural>/{uuid}/<attribute>` — accepts the binary content as the
302
+ * request body, hashes it, stores it on the BinaryService, and updates
303
+ * this Binary's metadata. Returns early if the new content's hash matches
304
+ * what we already hold (idempotent on duplicate uploads).
305
+ *
306
+ * Migrated from `DomainService.binaryPut`; the parent-loading step is
307
+ * unnecessary here because the Behavior is already attached to its parent
308
+ * by `__hydrateBehaviors`.
309
+ */
310
+ attach(): Promise<void>;
311
+ /**
312
+ * Challenge-based upload handshake.
313
+ *
314
+ * `PUT /<plural>/{uuid}/<attribute>` — the client sends `{ hash, challenge,
315
+ * size?, name?, mimetype?, metadata? }`; we ask the BinaryService for a
316
+ * pre-signed upload URL (or a "done" flag if dedup matched) and return it.
317
+ *
318
+ * Migrated from `DomainService.binaryChallenge`.
319
+ * @param body - the challenge body forwarded by `resolveArguments`; falls
320
+ * back to `context.getInput()` when undefined.
321
+ * @returns `{ url?, method?, headers?, done, md5 }`
322
+ */
323
+ attachChallenge(body?: BinaryFileInfo & {
324
+ hash: string;
325
+ challenge: string;
326
+ }): Promise<any>;
327
+ /**
328
+ * Stream the binary to the response, or 302-redirect to a signed URL.
329
+ *
330
+ * `GET /<plural>/{uuid}/<attribute>` — if the underlying BinaryService
331
+ * supports redirect URLs (e.g. S3) we 302 to the signed URL; otherwise we
332
+ * pipe the bytes directly through the response.
333
+ *
334
+ * Named `download` (not `get`) so the parent `BinaryMap.get(): Readable`
335
+ * accessor isn't shadowed — Behavior @Action methods can't change the
336
+ * parent type's contract, and a plain `get()` overload that returns
337
+ * `void` would break callers that consume the Readable.
338
+ *
339
+ * Migrated from `DomainService.binaryGet` (single-cardinality branch).
340
+ */
341
+ download(): Promise<void>;
342
+ /**
343
+ * Return a JSON `{ Location, Map }` describing where to fetch the binary.
344
+ *
345
+ * `GET /<plural>/{uuid}/<attribute>/url` — variant of `download()` that
346
+ * returns the URL as JSON instead of redirecting. Used by clients that
347
+ * want to discover the URL without following the redirect.
348
+ *
349
+ * Migrated from `DomainService.binaryGet`'s `returnUrl` branch.
350
+ * @returns `{ Location, Map }`
351
+ */
352
+ downloadUrl(): Promise<{
353
+ Location: string | undefined;
354
+ Map: BinaryMap<T>;
355
+ }>;
356
+ /**
357
+ * Update the metadata sidecar attached to this binary.
358
+ *
359
+ * `PUT /<plural>/{uuid}/<attribute>/{hash}` — verifies the URL `{hash}`
360
+ * matches the current binary, applies the new metadata, and persists via
361
+ * `parent.instance.patch(...)`. Metadata payload is capped at 4 KB to
362
+ * mirror the existing `DomainService.binaryAction` rule.
363
+ *
364
+ * Migrated from `DomainService.binaryAction` (action="metadata" branch).
365
+ * @param hash - the URL-supplied hash; must match `this.hash`
366
+ * @param metadata - the new metadata blob (≤ 4 KB JSON)
367
+ */
368
+ setMetadata(hash: string, metadata: T): Promise<void>;
369
+ /**
370
+ * Return undefined at runtime if no hash; the type annotation deliberately
371
+ * narrows to the populated shape so the schema generator follows
372
+ * `BinaryFileInfo<T>` for the Output/Stored schemas.
373
+ * @returns the result
374
+ */
375
+ toJSON(): BinaryFileInfo<T>;
376
+ get parent(): any;
377
+ }
378
+ /**
379
+ * Define a Binary map stored in a Binaries collection
380
+ */
381
+ export declare class BinariesItem<T extends object = {}> extends BinaryMap<T> {
382
+ [WEBDA_STORAGE]: {
383
+ service: BinaryService;
384
+ parent: BinariesImpl<T>;
385
+ };
386
+ /** Create a new BinariesItem
387
+ * @param parent - the parent binaries collection
388
+ * @param info - the binary file information
389
+ */
390
+ constructor(parent: BinariesImpl<T>, info: BinaryFileInfo<T>);
391
+ /**
392
+ * Replace the binary
393
+ * @param id - the identifier
394
+ * @param ctx - the operation context
395
+ * @param file - the file path
396
+ * @returns the result
397
+ */
398
+ upload(file: BinaryFile<T>): Promise<void>;
399
+ /**
400
+ * Delete the binary, if you need to replace just use upload
401
+ * @returns the result
402
+ */
403
+ delete(): Promise<void>;
404
+ }
405
+ /**
406
+ * Define a collection of Binary — many-cardinality binary attribute.
407
+ *
408
+ * Tagged as a Behavior so its `@Action` methods register as
409
+ * `<Model>.<Attribute>.<Action>` operations alongside Single-Binary ones.
410
+ * Inherits from `Array<BinariesItem<T>>` so it preserves array semantics
411
+ * (iteration, indexed access, JSON.stringify-as-array). The transformer
412
+ * detects this Array-subclass shape and emits a push-based hydration
413
+ * coercion — see `behaviors.ts:createHydrationBlock`.
414
+ *
415
+ * @readOnly
416
+ * @WebdaBehavior Webda/BinariesImpl
417
+ */
418
+ export declare class BinariesImpl<T extends object = {}> extends Array<BinariesItem<T>> {
419
+ protected [WEBDA_STORAGE]: {
420
+ service?: BinaryService;
421
+ [key: string]: any;
422
+ };
423
+ /**
424
+ * Bind this collection to a model and attribute, populating from existing binary data.
425
+ *
426
+ * Legacy entry-point used by code that constructs a `BinariesImpl()`
427
+ * directly (tests, manual instantiation). The Behavior-hydration path the
428
+ * transformer emits writes `WEBDA_STORAGE["__parent__"]` instead and
429
+ * never calls `assign`.
430
+ *
431
+ * @param model - the model to use
432
+ * @param attribute - the attribute name
433
+ * @returns this for chaining
434
+ */
435
+ assign(model: Model, attribute: string): this;
436
+ /**
437
+ * Resolve the BinaryService lazily via the Behavior parent reference.
438
+ *
439
+ * Mirrors `Binary.getService()`. The transformer-emitted parent slot
440
+ * (`WEBDA_STORAGE["__parent__"]`) is the source of truth.
441
+ *
442
+ * @returns the BinaryService for this collection's parent attribute
443
+ */
444
+ protected getService(): BinaryService;
445
+ /**
446
+ * Read the Behavior parent reference. Mirrors `Binary.getParent()`.
447
+ * @returns the parent reference or undefined
448
+ */
449
+ protected getParent(): {
450
+ instance: Storable;
451
+ attribute: string;
452
+ } | undefined;
453
+ /** @throws Readonly collection */
454
+ pop(): BinariesItem<T>;
455
+ /** @throws Readonly collection */
456
+ slice(): BinariesItem<T>[];
457
+ /** @throws Readonly collection */
458
+ unshift(): number;
459
+ /** @throws Readonly collection */
460
+ shift(): BinariesItem<T>;
461
+ /**
462
+ * Add binary items, wrapping plain objects in BinariesItem
463
+ * @param args - additional arguments
464
+ * @returns the result number
465
+ */
466
+ push(...args: any[]): number;
467
+ /**
468
+ * Upload a file to this model. Direct programmatic API (non-HTTP).
469
+ * @param file - the file path
470
+ * @param replace - whether to replace existing
471
+ */
472
+ upload(file: BinaryFile<T>, replace?: BinariesItem<T>): Promise<void>;
473
+ /**
474
+ * Delete an item by reference or index. Direct programmatic API (non-HTTP).
475
+ * @param item - the item to delete
476
+ */
477
+ delete(item: BinariesItem<T>): Promise<void>;
478
+ /**
479
+ * Direct (multipart / raw) upload from an HTTP request. Pushes a new item
480
+ * onto the collection.
481
+ *
482
+ * `POST /<plural>/{uuid}/<attribute>` — same shape as `Binary.attach` but
483
+ * pushes the new file rather than replacing the existing one.
484
+ * Migrated from `DomainService.binaryPut` (MANY-cardinality branch).
485
+ */
486
+ attach(): Promise<void>;
487
+ /**
488
+ * Challenge-based upload handshake for the next item.
489
+ *
490
+ * `PUT /<plural>/{uuid}/<attribute>` — request a pre-signed upload URL
491
+ * for a new item identified by `{ hash, challenge, ... }`. Returns the
492
+ * URL or a `done` flag if dedup matched.
493
+ *
494
+ * Migrated from `DomainService.binaryChallenge` (MANY-cardinality branch).
495
+ * @param body - the challenge body; falls back to `context.getInput()`
496
+ * @returns `{ url?, method?, headers?, done, md5 }`
497
+ */
498
+ attachChallenge(body?: BinaryFileInfo & {
499
+ hash: string;
500
+ challenge: string;
501
+ }): Promise<any>;
502
+ /**
503
+ * Stream a single item to the response, or 302-redirect to a signed URL.
504
+ *
505
+ * `GET /<plural>/{uuid}/<attribute>/{index}` — locates the item by `index`
506
+ * and behaves like `Binary.get` for that single entry.
507
+ *
508
+ * Migrated from `DomainService.binaryGet` (MANY-cardinality branch).
509
+ * @param index - the item position in the collection
510
+ */
511
+ get(index: number): Promise<void>;
512
+ /**
513
+ * Return a `{ Location, Map }` JSON for a single item.
514
+ *
515
+ * `GET /<plural>/{uuid}/<attribute>/{index}/url` — variant of `get` that
516
+ * returns the URL as JSON instead of redirecting / streaming.
517
+ *
518
+ * Migrated from `DomainService.binaryGet`'s `returnUrl` branch
519
+ * (MANY-cardinality).
520
+ * @param index - the item position in the collection
521
+ * @returns `{ Location, Map }`
522
+ */
523
+ getUrl(index: number): Promise<{
524
+ Location: string | undefined;
525
+ Map: BinaryMap<T>;
526
+ }>;
527
+ /**
528
+ * Delete a single item by `(index, hash)`.
529
+ *
530
+ * `DELETE /<plural>/{uuid}/<attribute>/{index}/{hash}` — the URL `{hash}`
531
+ * must match the item at `{index}`. Removes from storage and from the
532
+ * in-memory collection.
533
+ *
534
+ * Migrated from `DomainService.binaryAction` (action="delete",
535
+ * MANY-cardinality branch).
536
+ * @param index - the item position
537
+ * @param hash - the URL-supplied hash; must match `this[index].hash`
538
+ */
539
+ deleteAt(index: number, hash: string): Promise<void>;
540
+ /**
541
+ * Update the metadata sidecar of a single item.
542
+ *
543
+ * `PUT /<plural>/{uuid}/<attribute>/{index}/{hash}` — verifies the hash,
544
+ * applies the new metadata, and persists via `parent.instance.patch(...)`.
545
+ * Metadata payload capped at 4 KB.
546
+ *
547
+ * Migrated from `DomainService.binaryAction` (action="metadata",
548
+ * MANY-cardinality branch).
549
+ * @param index - the item position
550
+ * @param hash - the URL-supplied hash; must match `this[index].hash`
551
+ * @param metadata - the new metadata blob (≤ 4 KB JSON)
552
+ */
553
+ setMetadata(index: number, hash: string, metadata?: T): Promise<void>;
554
+ /**
555
+ * Native array serialization. The transformer adds a Behavior-style
556
+ * `toJSON` to every Behavior class unless the author defines one;
557
+ * we override it explicitly so JSON.stringify produces a plain array of
558
+ * items rather than an object keyed by indices.
559
+ * @returns the result array
560
+ */
561
+ toJSON(): BinariesItem<T>[];
562
+ get parent(): any;
563
+ }
564
+ /**
565
+ * Type-level alias for `BinariesImpl<T>`.
566
+ *
567
+ * Models declare `photos: Binaries<...>` rather than the more verbose
568
+ * `photos: BinariesImpl<...>`; the compiler resolves this alias to the
569
+ * `BinariesImpl` class declaration, picks up the `@WebdaBehavior` JSDoc
570
+ * tag there, and registers the attribute as a Behavior. The runtime
571
+ * shape (push/splice/index access plus `attach`, `attachChallenge`, `get`,
572
+ * `getUrl`, `deleteAt`, `setMetadata`, `upload`) comes from
573
+ * `BinariesImpl` directly.
574
+ */
575
+ export type Binaries<T extends object = {}> = BinariesImpl<T>;
576
+ /** Parameters for BinaryService, defining model mappings and max upload size */
577
+ export declare class BinaryParameters extends ServiceParameters {
578
+ /**
579
+ * max file size
580
+ */
581
+ protected _maxFileSize: number;
582
+ /**
583
+ * Define the map of models
584
+ * * indicates all models
585
+ *
586
+ * key is a Store name
587
+ * the string[] represent all valids attributes to store files in * indicates all attributes
588
+ */
589
+ models: {
590
+ [key: string]: string[];
591
+ };
592
+ /**
593
+ * Define the maximum filesize to accept as direct upload
594
+ *
595
+ * @default 10 MB
596
+ */
597
+ set maxFileSize(value: number | string);
598
+ /**
599
+ * Get the max file size in bytes
600
+ * @returns the result number
601
+ */
602
+ get maxFileSize(): number;
603
+ /**
604
+ * Load parameters with defaults for model mappings and max file size
605
+ * @param params - the service parameters
606
+ * @returns this for chaining
607
+ */
608
+ load(params?: any): this;
609
+ }
610
+ export type BinaryEvents = {
611
+ /**
612
+ * Emitted when someone download a binary
613
+ */
614
+ "Binary.Get": EventBinary;
615
+ "Binary.UploadSuccess": EventBinaryUploadSuccess;
616
+ "Binary.MetadataUpdate": EventBinaryMetadataUpdate;
617
+ "Binary.MetadataUpdated": EventBinaryUploadSuccess;
618
+ "Binary.Create": EventBinaryUploadSuccess;
619
+ "Binary.Delete": EventBinary;
620
+ };
621
+ /**
622
+ * Define a BinaryModel with infinite field for binary map
623
+ */
624
+ export type CoreModelWithBinary<T = {
625
+ [key: string]: BinaryMap[] | BinaryMap;
626
+ }> = Model & T;
627
+ /**
628
+ * This is an abstract service to represent a storage of files
629
+ * The binary allow you to expose this service as HTTP
630
+ *
631
+ * It supports two modes:
632
+ * - attached to a CoreModel (attach, detach, reattach)
633
+ * - pure storage with no managed id (read, write, delete)
634
+ *
635
+ * As we have deduplication builtin you can get some stats
636
+ * - getUsageCount(hash)
637
+ * - getUsageCountForRaw()
638
+ * - getUsageCountForMap()
639
+ *
640
+ * The Binary storage should store only once a binary and reference every object that are used by this binary, so it can be cleaned.
641
+ *
642
+ *
643
+ * @see FileBinary
644
+ * @see S3Binary
645
+ *
646
+ * @exports
647
+ * @abstract
648
+ * @WebdaModda Binary
649
+ */
650
+ export declare abstract class BinaryService<T extends BinaryParameters = BinaryParameters, E extends BinaryEvents = BinaryEvents> extends Service<T, E> implements MappingService<BinaryMap> {
651
+ _lowercaseMaps: any;
652
+ metrics: {
653
+ upload: Counter;
654
+ download: Counter;
655
+ delete: Counter;
656
+ metadataUpdate: Counter;
657
+ };
658
+ /**
659
+ * @override
660
+ */
661
+ initMetrics(): void;
662
+ /**
663
+ * Get a UrlFromObject
664
+ *
665
+ * @param binaryMap - the binary map definition
666
+ * @param _context - the execution context
667
+ * @param _expires - the expiration time
668
+ * @returns the result
669
+ */
670
+ getRedirectUrlFromObject(binaryMap: BinaryMap, _context: IOperationContext, _expires?: number): Promise<null | string>;
671
+ /**
672
+ * Define if binary is managed by the store
673
+ * @param modelName - the model name
674
+ * @param attribute - the attribute name
675
+ * @returns -1 if not managed, 0 if managed but by default, 1 if managed and in the map, 2 if explicit with attribute and model
676
+ */
677
+ handleBinary(modelName: string, attribute: string): -1 | 0 | 1 | 2;
678
+ /**
679
+ * When you store a binary to be able to retrieve it you need to store the information into another object
680
+ *
681
+ * If you have a User object define like this : User = {'name': 'Remi', 'uuid': 'Loopingz'}
682
+ * You will call the `store(userStore, 'Loopingz', 'images', filedata, {'type':'profile'})`
683
+ * After a successful call the object will look like
684
+ * ```
685
+ * User = {
686
+ * 'name': 'Remi',
687
+ * 'uuid': 'Loopingz',
688
+ * 'images': [
689
+ * {'type':'profile','hash':'a12545...','size':1245,'mime':'application/octet'}
690
+ * ]
691
+ * }
692
+ * ```
693
+ *
694
+ *
695
+ * @param {CoreModel} object The object uuid to get from the store
696
+ * @param {String} property The object property to add the file to
697
+ * @param {Object} file The file by itself
698
+ * @param {Object} metadata to add to the binary object
699
+ * @emits 'binaryCreate'
700
+ */
701
+ abstract store(object: Storable, property: string, file: BinaryFile, metadata?: BinaryMetadata): Promise<void>;
702
+ /**
703
+ * The store can retrieve how many time a binary has been used
704
+ */
705
+ abstract getUsageCount(hash: string): Promise<number>;
706
+ /**
707
+ * Delete a binary
708
+ *
709
+ * @param {CoreModel} object The object uuid to get from the store
710
+ * @param {String} property The object property to add the file to
711
+ * @param {Number} index The index of the file to change in the property
712
+ * @emits 'binaryDelete'
713
+ */
714
+ abstract delete(object: Storable, property: string, index?: number): Promise<void>;
715
+ /**
716
+ * Get a binary
717
+ *
718
+ * @param {Object} info The reference stored in your target object
719
+ * @emits 'binaryGet'
720
+ * @returns the result
721
+ */
722
+ get(info: BinaryMap): Promise<Readable>;
723
+ /**
724
+ * Download a binary to a file
725
+ *
726
+ * @param {Object} info The reference stored in your target object
727
+ * @param {String} filepath to save the binary to
728
+ * @param filename - the filename
729
+ */
730
+ downloadTo(info: BinaryMap, filename: any): Promise<void>;
731
+ abstract _get(info: BinaryMap): Promise<Readable>;
732
+ /**
733
+ * Based on the raw Map init a BinaryMap
734
+ * @param obj - the target object
735
+ * @returns the result map
736
+ */
737
+ newModel(obj: any): BinaryMap;
738
+ /**
739
+ * Read a stream to a buffer
740
+ *
741
+ * @param stream - the stream
742
+ * @returns the result
743
+ */
744
+ static streamToBuffer(stream: Readable): Promise<Buffer>;
745
+ /**
746
+ * Check if a map is defined
747
+ *
748
+ * @param name - the name to use
749
+ * @param property - the property name
750
+ * @param object - the target object
751
+ */
752
+ protected checkMap(object: Model, property: string): void;
753
+ /**
754
+ * Ensure events are sent correctly after an upload and update the BinaryFileInfo in targetted object
755
+ * @param object - the target object
756
+ * @param property - the property name
757
+ * @param fileInfo - the file information
758
+ */
759
+ uploadSuccess(object: CoreModelWithBinary, property: string, fileInfo: BinaryFileInfo | {
760
+ toBinaryFileInfo: () => BinaryFileInfo;
761
+ }): Promise<void>;
762
+ /**
763
+ * Cascade delete the object
764
+ *
765
+ * @param info of the map
766
+ * @param uuid of the object
767
+ */
768
+ abstract cascadeDelete(info: BinaryMap, uuid: string): Promise<void>;
769
+ /**
770
+ *
771
+ * @param targetStore - the target store
772
+ * @param object - the target object
773
+ * @param property - the property name
774
+ * @param index - the index
775
+ * @returns the result
776
+ */
777
+ deleteSuccess(object: CoreModelWithBinary, property: string, index?: number): Promise<void>;
778
+ /**
779
+ * Get file either from multipart post or raw
780
+ * @param req - the request
781
+ * @returns the result
782
+ */
783
+ getFile(req: IOperationContext): Promise<BinaryFile>;
784
+ /**
785
+ * Return the name of the service for OpenAPI
786
+ * @returns the result string
787
+ */
788
+ protected getOperationName(): string;
789
+ /**
790
+ * Based on the request parameter verify it match a known mapping
791
+ * @param ctx - the operation context
792
+ * @returns the result
793
+ */
794
+ protected verifyMapAndStore(ctx: IOperationContext): IStore;
795
+ /**
796
+ * By default no challenge is managed so throws 404
797
+ *
798
+ * @param args - additional arguments
799
+ */
800
+ putRedirectUrl(...args: any): Promise<{
801
+ url: string;
802
+ method?: string;
803
+ headers?: {
804
+ [key: string]: string;
805
+ };
806
+ }>;
807
+ }
808
+ //# sourceMappingURL=binary.service.d.ts.map