@webda/core 3.16.4 → 4.0.0-beta.2

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 (452) hide show
  1. package/lib/application.d.ts +29 -8
  2. package/lib/application.d.ts.map +1 -0
  3. package/lib/application.js +65 -38
  4. package/lib/application.js.map +1 -1
  5. package/lib/application.spec.d.ts +1 -0
  6. package/lib/application.spec.d.ts.map +1 -0
  7. package/lib/application.spec.js +57 -43
  8. package/lib/application.spec.js.map +1 -1
  9. package/lib/core.d.ts +16 -12
  10. package/lib/core.d.ts.map +1 -0
  11. package/lib/core.js +105 -80
  12. package/lib/core.js.map +1 -1
  13. package/lib/core.spec.d.ts +1 -0
  14. package/lib/core.spec.d.ts.map +1 -0
  15. package/lib/core.spec.js +96 -67
  16. package/lib/core.spec.js.map +1 -1
  17. package/lib/errors.d.ts +59 -60
  18. package/lib/errors.d.ts.map +1 -0
  19. package/lib/errors.js +92 -108
  20. package/lib/errors.js.map +1 -1
  21. package/lib/errors.spec.d.ts +1 -0
  22. package/lib/errors.spec.d.ts.map +1 -0
  23. package/lib/errors.spec.js +1 -1
  24. package/lib/errors.spec.js.map +1 -1
  25. package/lib/index.d.ts +6 -3
  26. package/lib/index.d.ts.map +1 -0
  27. package/lib/index.js +6 -3
  28. package/lib/index.js.map +1 -1
  29. package/lib/models/aclmodel.d.ts +2 -2
  30. package/lib/models/aclmodel.d.ts.map +1 -0
  31. package/lib/models/aclmodel.js +8 -9
  32. package/lib/models/aclmodel.js.map +1 -1
  33. package/lib/models/aclmodel.spec.d.ts +1 -0
  34. package/lib/models/aclmodel.spec.d.ts.map +1 -0
  35. package/lib/models/aclmodel.spec.js +3 -3
  36. package/lib/models/aclmodel.spec.js.map +1 -1
  37. package/lib/models/coremodel.d.ts +15 -0
  38. package/lib/models/coremodel.d.ts.map +1 -0
  39. package/lib/models/coremodel.js +35 -28
  40. package/lib/models/coremodel.js.map +1 -1
  41. package/lib/models/coremodel.spec.d.ts +1 -0
  42. package/lib/models/coremodel.spec.d.ts.map +1 -0
  43. package/lib/models/coremodel.spec.js +33 -31
  44. package/lib/models/coremodel.spec.js.map +1 -1
  45. package/lib/models/deployment.d.ts +1 -0
  46. package/lib/models/deployment.d.ts.map +1 -0
  47. package/lib/models/ident.d.ts +17 -2
  48. package/lib/models/ident.d.ts.map +1 -0
  49. package/lib/models/ident.js +0 -14
  50. package/lib/models/ident.js.map +1 -1
  51. package/lib/models/ident.spec.d.ts +1 -0
  52. package/lib/models/ident.spec.d.ts.map +1 -0
  53. package/lib/models/ident.spec.js +1 -20
  54. package/lib/models/ident.spec.js.map +1 -1
  55. package/lib/models/ownermodel.d.ts +1 -0
  56. package/lib/models/ownermodel.d.ts.map +1 -0
  57. package/lib/models/ownermodel.spec.d.ts +1 -0
  58. package/lib/models/ownermodel.spec.d.ts.map +1 -0
  59. package/lib/models/ownermodel.spec.js +57 -33
  60. package/lib/models/ownermodel.spec.js.map +1 -1
  61. package/lib/models/relations.d.ts +1 -0
  62. package/lib/models/relations.d.ts.map +1 -0
  63. package/lib/models/relations.js +3 -3
  64. package/lib/models/relations.js.map +1 -1
  65. package/lib/models/relations.spec.d.ts +2 -0
  66. package/lib/models/relations.spec.d.ts.map +1 -0
  67. package/lib/models/relations.spec.js +10 -17
  68. package/lib/models/relations.spec.js.map +1 -1
  69. package/lib/models/rolemodel.d.ts +1 -0
  70. package/lib/models/rolemodel.d.ts.map +1 -0
  71. package/lib/models/rolemodel.js +2 -2
  72. package/lib/models/rolemodel.js.map +1 -1
  73. package/lib/models/rolemodel.spec.d.ts +1 -0
  74. package/lib/models/rolemodel.spec.d.ts.map +1 -0
  75. package/lib/models/rolemodel.spec.js +5 -1
  76. package/lib/models/rolemodel.spec.js.map +1 -1
  77. package/lib/models/simpleuser.d.ts +47 -0
  78. package/lib/models/simpleuser.d.ts.map +1 -0
  79. package/lib/models/simpleuser.js +84 -0
  80. package/lib/models/simpleuser.js.map +1 -0
  81. package/lib/models/test.d.ts +11 -0
  82. package/lib/models/test.d.ts.map +1 -0
  83. package/lib/models/test.js +7 -0
  84. package/lib/models/test.js.map +1 -0
  85. package/lib/models/user.d.ts +2 -35
  86. package/lib/models/user.d.ts.map +1 -0
  87. package/lib/models/user.js +3 -74
  88. package/lib/models/user.js.map +1 -1
  89. package/lib/models/user.spec.d.ts +1 -0
  90. package/lib/models/user.spec.d.ts.map +1 -0
  91. package/lib/models/user.spec.js +7 -6
  92. package/lib/models/user.spec.js.map +1 -1
  93. package/lib/queues/filequeue.d.ts +1 -0
  94. package/lib/queues/filequeue.d.ts.map +1 -0
  95. package/lib/queues/filequeue.js +5 -5
  96. package/lib/queues/filequeue.js.map +1 -1
  97. package/lib/queues/filequeue.spec.d.ts +1 -0
  98. package/lib/queues/filequeue.spec.d.ts.map +1 -0
  99. package/lib/queues/filequeue.spec.js +11 -5
  100. package/lib/queues/filequeue.spec.js.map +1 -1
  101. package/lib/queues/memoryqueue.d.ts +14 -0
  102. package/lib/queues/memoryqueue.d.ts.map +1 -0
  103. package/lib/queues/memoryqueue.js +38 -7
  104. package/lib/queues/memoryqueue.js.map +1 -1
  105. package/lib/queues/memoryqueue.spec.d.ts +1 -0
  106. package/lib/queues/memoryqueue.spec.d.ts.map +1 -0
  107. package/lib/queues/memoryqueue.spec.js +18 -7
  108. package/lib/queues/memoryqueue.spec.js.map +1 -1
  109. package/lib/queues/pubsubservice.d.ts +1 -0
  110. package/lib/queues/pubsubservice.d.ts.map +1 -0
  111. package/lib/queues/queue.spec.d.ts +3 -2
  112. package/lib/queues/queue.spec.d.ts.map +1 -0
  113. package/lib/queues/queue.spec.js +5 -3
  114. package/lib/queues/queue.spec.js.map +1 -1
  115. package/lib/queues/queueservice.d.ts +1 -0
  116. package/lib/queues/queueservice.d.ts.map +1 -0
  117. package/lib/queues/queueservice.js +7 -7
  118. package/lib/queues/queueservice.js.map +1 -1
  119. package/lib/rest/restdomainservice.d.ts +63 -0
  120. package/lib/rest/restdomainservice.d.ts.map +1 -0
  121. package/lib/rest/restdomainservice.js +687 -0
  122. package/lib/rest/restdomainservice.js.map +1 -0
  123. package/lib/rest/restdomainservice.spec.d.ts +2 -0
  124. package/lib/rest/restdomainservice.spec.d.ts.map +1 -0
  125. package/lib/rest/restdomainservice.spec.js +124 -0
  126. package/lib/rest/restdomainservice.spec.js.map +1 -0
  127. package/lib/{router.d.ts → rest/router.d.ts} +6 -4
  128. package/lib/rest/router.d.ts.map +1 -0
  129. package/lib/{router.js → rest/router.js} +33 -23
  130. package/lib/rest/router.js.map +1 -0
  131. package/lib/rest/router.spec.d.ts +2 -0
  132. package/lib/rest/router.spec.d.ts.map +1 -0
  133. package/lib/{router.spec.js → rest/router.spec.js} +54 -28
  134. package/lib/rest/router.spec.js.map +1 -0
  135. package/lib/services/asyncevents.d.ts +1 -0
  136. package/lib/services/asyncevents.d.ts.map +1 -0
  137. package/lib/services/asyncevents.js +4 -4
  138. package/lib/services/asyncevents.js.map +1 -1
  139. package/lib/services/asyncevents.spec.d.ts +1 -0
  140. package/lib/services/asyncevents.spec.d.ts.map +1 -0
  141. package/lib/services/asyncevents.spec.js +10 -10
  142. package/lib/services/asyncevents.spec.js.map +1 -1
  143. package/lib/services/authentication.d.ts +2 -1
  144. package/lib/services/authentication.d.ts.map +1 -0
  145. package/lib/services/authentication.js +26 -25
  146. package/lib/services/authentication.js.map +1 -1
  147. package/lib/services/authentication.spec.d.ts +1 -0
  148. package/lib/services/authentication.spec.d.ts.map +1 -0
  149. package/lib/services/authentication.spec.js +24 -24
  150. package/lib/services/authentication.spec.js.map +1 -1
  151. package/lib/services/binary.d.ts +13 -87
  152. package/lib/services/binary.d.ts.map +1 -0
  153. package/lib/services/binary.js +39 -421
  154. package/lib/services/binary.js.map +1 -1
  155. package/lib/services/binary.spec.d.ts +19 -22
  156. package/lib/services/binary.spec.d.ts.map +1 -0
  157. package/lib/services/binary.spec.js +87 -374
  158. package/lib/services/binary.spec.js.map +1 -1
  159. package/lib/services/cloudbinary.d.ts +3 -2
  160. package/lib/services/cloudbinary.d.ts.map +1 -0
  161. package/lib/services/cloudbinary.js +1 -1
  162. package/lib/services/cloudbinary.js.map +1 -1
  163. package/lib/services/cloudbinary.spec.d.ts +1 -8
  164. package/lib/services/cloudbinary.spec.d.ts.map +1 -0
  165. package/lib/services/cloudbinary.spec.js +4 -130
  166. package/lib/services/cloudbinary.spec.js.map +1 -1
  167. package/lib/services/configuration.d.ts +10 -1
  168. package/lib/services/configuration.d.ts.map +1 -0
  169. package/lib/services/configuration.js +22 -7
  170. package/lib/services/configuration.js.map +1 -1
  171. package/lib/services/configuration.spec.d.ts +1 -0
  172. package/lib/services/configuration.spec.d.ts.map +1 -0
  173. package/lib/services/configuration.spec.js +60 -17
  174. package/lib/services/configuration.spec.js.map +1 -1
  175. package/lib/services/cron.d.ts +2 -1
  176. package/lib/services/cron.d.ts.map +1 -0
  177. package/lib/services/cron.js +10 -10
  178. package/lib/services/cron.js.map +1 -1
  179. package/lib/services/cron.spec.d.ts +1 -0
  180. package/lib/services/cron.spec.d.ts.map +1 -0
  181. package/lib/services/cron.spec.js +2 -2
  182. package/lib/services/cron.spec.js.map +1 -1
  183. package/lib/services/cryptoservice.d.ts +3 -2
  184. package/lib/services/cryptoservice.d.ts.map +1 -0
  185. package/lib/services/cryptoservice.js +29 -30
  186. package/lib/services/cryptoservice.js.map +1 -1
  187. package/lib/services/cryptoservice.spec.d.ts +1 -0
  188. package/lib/services/cryptoservice.spec.d.ts.map +1 -0
  189. package/lib/services/cryptoservice.spec.js +17 -17
  190. package/lib/services/cryptoservice.spec.js.map +1 -1
  191. package/lib/services/debugmailer.d.ts +2 -2
  192. package/lib/services/debugmailer.d.ts.map +1 -0
  193. package/lib/services/debugmailer.js +1 -2
  194. package/lib/services/debugmailer.js.map +1 -1
  195. package/lib/services/debugmailer.spec.d.ts +1 -0
  196. package/lib/services/debugmailer.spec.d.ts.map +1 -0
  197. package/lib/services/debugmailer.spec.js +6 -3
  198. package/lib/services/debugmailer.spec.js.map +1 -1
  199. package/lib/services/domainservice.d.ts +167 -47
  200. package/lib/services/domainservice.d.ts.map +1 -0
  201. package/lib/services/domainservice.js +520 -753
  202. package/lib/services/domainservice.js.map +1 -1
  203. package/lib/services/domainservice.spec.d.ts +1 -0
  204. package/lib/services/domainservice.spec.d.ts.map +1 -0
  205. package/lib/services/domainservice.spec.js +201 -31
  206. package/lib/services/domainservice.spec.js.map +1 -1
  207. package/lib/services/filebinary.d.ts +8 -5
  208. package/lib/services/filebinary.d.ts.map +1 -0
  209. package/lib/services/filebinary.js +34 -32
  210. package/lib/services/filebinary.js.map +1 -1
  211. package/lib/services/filebinary.spec.d.ts +12 -8
  212. package/lib/services/filebinary.spec.d.ts.map +1 -0
  213. package/lib/services/filebinary.spec.js +135 -122
  214. package/lib/services/filebinary.spec.js.map +1 -1
  215. package/lib/services/fileconfiguration.d.ts +2 -1
  216. package/lib/services/fileconfiguration.d.ts.map +1 -0
  217. package/lib/services/fileconfiguration.js +1 -1
  218. package/lib/services/fileconfiguration.js.map +1 -1
  219. package/lib/services/fileconfiguration.spec.d.ts +1 -0
  220. package/lib/services/fileconfiguration.spec.d.ts.map +1 -0
  221. package/lib/services/fileconfiguration.spec.js +65 -27
  222. package/lib/services/fileconfiguration.spec.js.map +1 -1
  223. package/lib/services/invitationservice.d.ts +2 -1
  224. package/lib/services/invitationservice.d.ts.map +1 -0
  225. package/lib/services/invitationservice.js +19 -16
  226. package/lib/services/invitationservice.js.map +1 -1
  227. package/lib/services/invitationservice.spec.d.ts +1 -0
  228. package/lib/services/invitationservice.spec.d.ts.map +1 -0
  229. package/lib/services/invitationservice.spec.js +73 -22
  230. package/lib/services/invitationservice.spec.js.map +1 -1
  231. package/lib/services/kubernetesconfiguration.d.ts +1 -0
  232. package/lib/services/kubernetesconfiguration.d.ts.map +1 -0
  233. package/lib/services/kubernetesconfiguration.js +0 -2
  234. package/lib/services/kubernetesconfiguration.js.map +1 -1
  235. package/lib/services/kubernetesconfiguration.spec.d.ts +1 -0
  236. package/lib/services/kubernetesconfiguration.spec.d.ts.map +1 -0
  237. package/lib/services/kubernetesconfiguration.spec.js +67 -8
  238. package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
  239. package/lib/services/mailer.d.ts +1 -0
  240. package/lib/services/mailer.d.ts.map +1 -0
  241. package/lib/services/mailer.js +3 -3
  242. package/lib/services/mailer.js.map +1 -1
  243. package/lib/services/mailer.spec.d.ts +1 -0
  244. package/lib/services/mailer.spec.d.ts.map +1 -0
  245. package/lib/services/mailer.spec.js +18 -4
  246. package/lib/services/mailer.spec.js.map +1 -1
  247. package/lib/services/notificationservice.d.ts +1 -0
  248. package/lib/services/notificationservice.d.ts.map +1 -0
  249. package/lib/services/notificationservice.js +1 -1
  250. package/lib/services/notificationservice.js.map +1 -1
  251. package/lib/services/notificationservice.spec.d.ts +1 -0
  252. package/lib/services/notificationservice.spec.d.ts.map +1 -0
  253. package/lib/services/notificationservice.spec.js +8 -3
  254. package/lib/services/notificationservice.spec.js.map +1 -1
  255. package/lib/services/oauth.d.ts +6 -3
  256. package/lib/services/oauth.d.ts.map +1 -0
  257. package/lib/services/oauth.js +11 -8
  258. package/lib/services/oauth.js.map +1 -1
  259. package/lib/services/oauth.spec.d.ts +1 -0
  260. package/lib/services/oauth.spec.d.ts.map +1 -0
  261. package/lib/services/oauth.spec.js +39 -15
  262. package/lib/services/oauth.spec.js.map +1 -1
  263. package/lib/services/prometheus.d.ts +1 -0
  264. package/lib/services/prometheus.d.ts.map +1 -0
  265. package/lib/services/prometheus.spec.d.ts +1 -0
  266. package/lib/services/prometheus.spec.d.ts.map +1 -0
  267. package/lib/services/prometheus.spec.js +38 -19
  268. package/lib/services/prometheus.spec.js.map +1 -1
  269. package/lib/services/resource.d.ts +21 -1
  270. package/lib/services/resource.d.ts.map +1 -0
  271. package/lib/services/resource.js +20 -3
  272. package/lib/services/resource.js.map +1 -1
  273. package/lib/services/resource.spec.d.ts +1 -0
  274. package/lib/services/resource.spec.d.ts.map +1 -0
  275. package/lib/services/resource.spec.js +38 -20
  276. package/lib/services/resource.spec.js.map +1 -1
  277. package/lib/services/service.d.ts +2 -2
  278. package/lib/services/service.d.ts.map +1 -0
  279. package/lib/services/service.js +13 -23
  280. package/lib/services/service.js.map +1 -1
  281. package/lib/services/service.spec.d.ts +1 -0
  282. package/lib/services/service.spec.d.ts.map +1 -0
  283. package/lib/services/service.spec.js +58 -40
  284. package/lib/services/service.spec.js.map +1 -1
  285. package/lib/stores/aggregator.d.ts +10 -3
  286. package/lib/stores/aggregator.d.ts.map +1 -0
  287. package/lib/stores/aggregator.js +6 -6
  288. package/lib/stores/aggregator.js.map +1 -1
  289. package/lib/stores/file.d.ts +3 -2
  290. package/lib/stores/file.d.ts.map +1 -0
  291. package/lib/stores/file.js +13 -13
  292. package/lib/stores/file.js.map +1 -1
  293. package/lib/stores/file.spec.d.ts +5 -11
  294. package/lib/stores/file.spec.d.ts.map +1 -0
  295. package/lib/stores/file.spec.js +20 -114
  296. package/lib/stores/file.spec.js.map +1 -1
  297. package/lib/stores/mapper.d.ts +2 -1
  298. package/lib/stores/mapper.d.ts.map +1 -0
  299. package/lib/stores/mapper.js +12 -12
  300. package/lib/stores/mapper.js.map +1 -1
  301. package/lib/stores/mapper.spec.d.ts +1 -0
  302. package/lib/stores/mapper.spec.d.ts.map +1 -0
  303. package/lib/stores/mapper.spec.js +24 -17
  304. package/lib/stores/mapper.spec.js.map +1 -1
  305. package/lib/stores/memory.d.ts +2 -1
  306. package/lib/stores/memory.d.ts.map +1 -0
  307. package/lib/stores/memory.js +15 -15
  308. package/lib/stores/memory.js.map +1 -1
  309. package/lib/stores/memory.spec.d.ts +7 -13
  310. package/lib/stores/memory.spec.d.ts.map +1 -0
  311. package/lib/stores/memory.spec.js +118 -183
  312. package/lib/stores/memory.spec.js.map +1 -1
  313. package/lib/stores/modelmapper.d.ts +1 -0
  314. package/lib/stores/modelmapper.d.ts.map +1 -0
  315. package/lib/stores/modelmapper.js +8 -10
  316. package/lib/stores/modelmapper.js.map +1 -1
  317. package/lib/stores/store.d.ts +4 -145
  318. package/lib/stores/store.d.ts.map +1 -0
  319. package/lib/stores/store.js +54 -654
  320. package/lib/stores/store.js.map +1 -1
  321. package/lib/stores/store.spec.d.ts +11 -19
  322. package/lib/stores/store.spec.d.ts.map +1 -0
  323. package/lib/stores/store.spec.js +99 -268
  324. package/lib/stores/store.spec.js.map +1 -1
  325. package/lib/test.d.ts +109 -6
  326. package/lib/test.d.ts.map +1 -0
  327. package/lib/test.js +245 -22
  328. package/lib/test.js.map +1 -1
  329. package/lib/unpackedapplication.d.ts +3 -2
  330. package/lib/unpackedapplication.d.ts.map +1 -0
  331. package/lib/unpackedapplication.js +29 -16
  332. package/lib/unpackedapplication.js.map +1 -1
  333. package/lib/utils/abstractdeployer.d.ts +1 -0
  334. package/lib/utils/abstractdeployer.d.ts.map +1 -0
  335. package/lib/utils/abstractdeployer.spec.d.ts +1 -0
  336. package/lib/utils/abstractdeployer.spec.d.ts.map +1 -0
  337. package/lib/utils/case.d.ts +1 -0
  338. package/lib/utils/case.d.ts.map +1 -0
  339. package/lib/utils/case.spec.d.ts +1 -0
  340. package/lib/utils/case.spec.d.ts.map +1 -0
  341. package/lib/utils/context.d.ts +37 -17
  342. package/lib/utils/context.d.ts.map +1 -0
  343. package/lib/utils/context.js +53 -42
  344. package/lib/utils/context.js.map +1 -1
  345. package/lib/utils/context.spec.d.ts +1 -0
  346. package/lib/utils/context.spec.d.ts.map +1 -0
  347. package/lib/utils/context.spec.js +21 -14
  348. package/lib/utils/context.spec.js.map +1 -1
  349. package/lib/utils/cookie.d.ts +1 -0
  350. package/lib/utils/cookie.d.ts.map +1 -0
  351. package/lib/utils/cookie.js +2 -2
  352. package/lib/utils/cookie.js.map +1 -1
  353. package/lib/utils/cookie.spec.d.ts +1 -0
  354. package/lib/utils/cookie.spec.d.ts.map +1 -0
  355. package/lib/utils/cookie.spec.js +20 -10
  356. package/lib/utils/cookie.spec.js.map +1 -1
  357. package/lib/utils/esm.d.ts +1 -0
  358. package/lib/utils/esm.d.ts.map +1 -0
  359. package/lib/utils/httpcontext.d.ts +1 -0
  360. package/lib/utils/httpcontext.d.ts.map +1 -0
  361. package/lib/utils/httpcontext.js +7 -7
  362. package/lib/utils/httpcontext.js.map +1 -1
  363. package/lib/utils/httpcontext.spec.d.ts +1 -0
  364. package/lib/utils/httpcontext.spec.d.ts.map +1 -0
  365. package/lib/utils/httpcontext.spec.js +7 -7
  366. package/lib/utils/httpcontext.spec.js.map +1 -1
  367. package/lib/utils/logger.d.ts +1 -0
  368. package/lib/utils/logger.d.ts.map +1 -0
  369. package/lib/utils/logger.spec.d.ts +1 -0
  370. package/lib/utils/logger.spec.d.ts.map +1 -0
  371. package/lib/utils/logger.spec.js +5 -5
  372. package/lib/utils/logger.spec.js.map +1 -1
  373. package/lib/utils/serializers.d.ts +6 -4
  374. package/lib/utils/serializers.d.ts.map +1 -0
  375. package/lib/utils/serializers.js +30 -27
  376. package/lib/utils/serializers.js.map +1 -1
  377. package/lib/utils/serializers.spec.d.ts +1 -0
  378. package/lib/utils/serializers.spec.d.ts.map +1 -0
  379. package/lib/utils/serializers.spec.js +12 -14
  380. package/lib/utils/serializers.spec.js.map +1 -1
  381. package/lib/utils/session.d.ts +2 -5
  382. package/lib/utils/session.d.ts.map +1 -0
  383. package/lib/utils/session.js +1 -11
  384. package/lib/utils/session.js.map +1 -1
  385. package/lib/utils/session.spec.d.ts +1 -0
  386. package/lib/utils/session.spec.d.ts.map +1 -0
  387. package/lib/utils/session.spec.js +22 -12
  388. package/lib/utils/session.spec.js.map +1 -1
  389. package/lib/utils/throttler.d.ts +1 -4
  390. package/lib/utils/throttler.d.ts.map +1 -0
  391. package/lib/utils/throttler.js +1 -9
  392. package/lib/utils/throttler.js.map +1 -1
  393. package/lib/utils/throttler.spec.d.ts +1 -0
  394. package/lib/utils/throttler.spec.d.ts.map +1 -0
  395. package/lib/utils/throttler.spec.js +4 -6
  396. package/lib/utils/throttler.spec.js.map +1 -1
  397. package/lib/utils/waiter.d.ts +1 -0
  398. package/lib/utils/waiter.d.ts.map +1 -0
  399. package/lib/utils/waiter.js +3 -3
  400. package/lib/utils/waiter.js.map +1 -1
  401. package/lib/utils/waiter.spec.d.ts +1 -0
  402. package/lib/utils/waiter.spec.d.ts.map +1 -0
  403. package/lib/utils/waiter.spec.js +6 -6
  404. package/lib/utils/waiter.spec.js.map +1 -1
  405. package/package.json +20 -16
  406. package/test/config.json +6 -90
  407. package/test/data/.env +1 -0
  408. package/webda.module.json +607 -377
  409. package/lib/router.js.map +0 -1
  410. package/lib/router.spec.d.ts +0 -1
  411. package/lib/router.spec.js.map +0 -1
  412. package/lib/stores/aliasstore.d.ts +0 -108
  413. package/lib/stores/aliasstore.js +0 -168
  414. package/lib/stores/aliasstore.js.map +0 -1
  415. package/lib/stores/aliasstore.spec.d.ts +0 -11
  416. package/lib/stores/aliasstore.spec.js +0 -89
  417. package/lib/stores/aliasstore.spec.js.map +0 -1
  418. package/lib/stores/webdaql/WebdaQLLexer.d.ts +0 -54
  419. package/lib/stores/webdaql/WebdaQLLexer.js +0 -295
  420. package/lib/stores/webdaql/WebdaQLLexer.js.map +0 -1
  421. package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +0 -54
  422. package/lib/stores/webdaql/WebdaQLParserLexer.js +0 -295
  423. package/lib/stores/webdaql/WebdaQLParserLexer.js.map +0 -1
  424. package/lib/stores/webdaql/WebdaQLParserListener.d.ts +0 -296
  425. package/lib/stores/webdaql/WebdaQLParserListener.js +0 -3
  426. package/lib/stores/webdaql/WebdaQLParserListener.js.map +0 -1
  427. package/lib/stores/webdaql/WebdaQLParserParser.d.ts +0 -311
  428. package/lib/stores/webdaql/WebdaQLParserParser.js +0 -1807
  429. package/lib/stores/webdaql/WebdaQLParserParser.js.map +0 -1
  430. package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +0 -181
  431. package/lib/stores/webdaql/WebdaQLParserVisitor.js +0 -3
  432. package/lib/stores/webdaql/WebdaQLParserVisitor.js.map +0 -1
  433. package/lib/stores/webdaql/query.d.ts +0 -390
  434. package/lib/stores/webdaql/query.js +0 -702
  435. package/lib/stores/webdaql/query.js.map +0 -1
  436. package/lib/stores/webdaql/query.spec.d.ts +0 -1
  437. package/lib/stores/webdaql/query.spec.js +0 -206
  438. package/lib/stores/webdaql/query.spec.js.map +0 -1
  439. package/test/config-file-missing-file-no-default.json +0 -44
  440. package/test/config-file-missing-file.json +0 -55
  441. package/test/config-file-no-reload.json +0 -69
  442. package/test/config-file-reload.json +0 -68
  443. package/test/config-invitation.json +0 -63
  444. package/test/config-kube-reload.json +0 -68
  445. package/test/config-reload.json +0 -66
  446. package/test/config.old.json +0 -152
  447. package/test/moddas/annotatedservice.js +0 -23
  448. package/test/moddas/debugmailer.js +0 -13
  449. package/test/moddas/fakeservice.js +0 -4
  450. package/test/moddas/voidstore.js +0 -66
  451. package/test/models/ident.js +0 -36
  452. package/test/models/task.js +0 -42
@@ -0,0 +1,687 @@
1
+ import { QueryValidator } from "@webda/ql";
2
+ import { DomainServiceParameters, ModelsOperationsService } from "../services/domainservice.js";
3
+ import { WebdaError } from "../index.js";
4
+ /**
5
+ * Swagger static html
6
+ */
7
+ const SWAGGER_HTML = `
8
+ <html>
9
+ <head>
10
+ <meta charset="UTF-8">
11
+ <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/{{VERSION}}/swagger-ui.css" >
12
+ <style>
13
+ .topbar {
14
+ display: none;
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div id="swagger-ui"></div>
21
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/{{VERSION}}/swagger-ui-bundle.js"> </script>
22
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/{{VERSION}}/swagger-ui-standalone-preset.js"> </script>
23
+ <script>
24
+ const spec = {{OPENAPI}};
25
+ window.onload = function() {
26
+ const ui = SwaggerUIBundle({
27
+ spec: spec,
28
+ dom_id: '#swagger-ui',
29
+ deepLinking: true,
30
+ presets: [
31
+ SwaggerUIBundle.presets.apis,
32
+ SwaggerUIStandalonePreset
33
+ ],
34
+ plugins: [
35
+ SwaggerUIBundle.plugins.DownloadUrl
36
+ ],
37
+ layout: "StandaloneLayout"
38
+ })
39
+
40
+ window.ui = ui
41
+ }
42
+ </script>
43
+ </body>
44
+ </html>
45
+ `;
46
+ /**
47
+ *
48
+ */
49
+ export class RESTDomainServiceParameters extends DomainServiceParameters {
50
+ /**
51
+ * Set default url to /
52
+ * @param params
53
+ */
54
+ constructor(params) {
55
+ super(params);
56
+ this.url ?? (this.url = "/");
57
+ this.swaggerVersion ?? (this.swaggerVersion = "3.19.5");
58
+ }
59
+ }
60
+ /**
61
+ * Expose all models via a REST API
62
+ * @WebdaModda
63
+ */
64
+ export class RESTDomainService extends ModelsOperationsService {
65
+ /**
66
+ * Override to fallback on isDebug for exposeOpenAPI
67
+ * @returns
68
+ */
69
+ resolve() {
70
+ var _a;
71
+ (_a = this.parameters).exposeOpenAPI ?? (_a.exposeOpenAPI = this.getWebda().isDebug());
72
+ super.resolve();
73
+ if (this.parameters.exposeOpenAPI) {
74
+ this.addRoute(".", ["GET"], this.openapi, { hidden: true });
75
+ }
76
+ return this;
77
+ }
78
+ /**
79
+ * @override
80
+ */
81
+ loadParameters(params) {
82
+ return new RESTDomainServiceParameters(params);
83
+ }
84
+ /**
85
+ * Handle one model and expose it based on the service
86
+ * @param model
87
+ * @param name
88
+ * @param context
89
+ * @returns
90
+ */
91
+ handleModel(model, name, context) {
92
+ const depth = context.depth || 0;
93
+ const relations = model.getRelations();
94
+ const injectAttribute = relations?.parent?.attribute;
95
+ const app = this.getWebda().getApplication();
96
+ // Update prefix
97
+ const prefix = (context.prefix || (this.parameters.url.endsWith("/") ? this.parameters.url : this.parameters.url + "/")) +
98
+ this.transformName(name);
99
+ context.prefix = prefix + `/{pid.${depth}}/`;
100
+ const shortId = model.getIdentifier(true);
101
+ const plurial = app.getModelPlural(model.getIdentifier(false));
102
+ // Register the model url
103
+ this.getWebda().getRouter().registerModelUrl(app.getModelName(model), prefix);
104
+ let openapi = {
105
+ [this.parameters.queryMethod.toLowerCase()]: {
106
+ tags: [name],
107
+ summary: `Query ${name}`,
108
+ operationId: `query${name}`,
109
+ requestBody: this.parameters.queryMethod === "GET"
110
+ ? undefined
111
+ : {
112
+ content: {
113
+ "application/json": {
114
+ schema: {
115
+ properties: {
116
+ q: {
117
+ type: "string"
118
+ }
119
+ }
120
+ }
121
+ }
122
+ }
123
+ },
124
+ parameters: this.parameters.queryMethod === "GET"
125
+ ? [
126
+ {
127
+ name: "q",
128
+ in: "query",
129
+ description: "Query to execute",
130
+ schema: {
131
+ type: "string"
132
+ }
133
+ }
134
+ ]
135
+ : [],
136
+ responses: {
137
+ "200": {
138
+ description: "Operation success",
139
+ content: {
140
+ "application/json": {
141
+ schema: {
142
+ properties: {
143
+ continuationToken: {
144
+ type: "string"
145
+ },
146
+ results: {
147
+ type: "array",
148
+ items: {
149
+ $ref: `#/components/schemas/${model.getIdentifier()}`
150
+ }
151
+ }
152
+ }
153
+ }
154
+ }
155
+ }
156
+ },
157
+ "400": {
158
+ description: "Query is invalid"
159
+ },
160
+ "403": {
161
+ description: "You don't have permissions"
162
+ }
163
+ }
164
+ }
165
+ };
166
+ // Add query route
167
+ if (!model.Expose.restrict.query) {
168
+ this.addRoute(`${prefix}${this.parameters.queryMethod === "GET" ? "{?q?}" : ""}`, [this.parameters.queryMethod], async (context) => {
169
+ let queryString = "";
170
+ const parentId = `pid.${depth - 1}`;
171
+ if (context.getHttpContext().getMethod() === "PUT") {
172
+ queryString = (await context.getInput()).q ?? "";
173
+ context.clearInput();
174
+ }
175
+ else {
176
+ queryString = context.parameter("q", "");
177
+ }
178
+ let query;
179
+ try {
180
+ query = new QueryValidator(queryString);
181
+ }
182
+ catch (err) {
183
+ throw new WebdaError.BadRequest(`Invalid query ${queryString}`);
184
+ }
185
+ // Inject parent attribute
186
+ if (injectAttribute) {
187
+ query.merge(`${injectAttribute} = '${context.parameter(parentId)}'`);
188
+ }
189
+ context.getParameters().query = query.toString();
190
+ return this._webda.callOperation(context, `${plurial}.Query`);
191
+ }, openapi);
192
+ }
193
+ openapi = {
194
+ post: {
195
+ tags: [name],
196
+ summary: `Create ${name}`,
197
+ operationId: `create${name}`,
198
+ requestBody: {
199
+ content: {
200
+ "application/json": {
201
+ schema: {
202
+ $ref: `#/components/schemas/${model.getIdentifier()}`
203
+ }
204
+ }
205
+ }
206
+ },
207
+ responses: {
208
+ "201": {
209
+ description: "Operation success",
210
+ content: {
211
+ "application/json": {
212
+ schema: {
213
+ $ref: `#/components/schemas/${model.getIdentifier()}`
214
+ }
215
+ }
216
+ }
217
+ },
218
+ "400": {
219
+ description: "Invalid input"
220
+ },
221
+ "403": {
222
+ description: "You don't have permissions"
223
+ },
224
+ "409": {
225
+ description: "Object already exists"
226
+ }
227
+ }
228
+ }
229
+ };
230
+ if (!model.Expose.restrict.create) {
231
+ this.addRoute(`${prefix}`, ["POST"], async (context) => {
232
+ // Inject the parent attribute
233
+ if (injectAttribute) {
234
+ (await context.getInput())[injectAttribute] = context.parameter(`pid.${depth - 1}`);
235
+ }
236
+ await this._webda.callOperation(context, `${shortId}.Create`);
237
+ // https://www.rfc-editor.org/rfc/rfc9110#status.201
238
+ if (context.getResponseHeaders().Location) {
239
+ context.writeHead(201, {
240
+ Location: `${context.getHttpContext().getAbsoluteUrl()}/${context.getResponseHeaders().Location}`
241
+ });
242
+ }
243
+ }, openapi);
244
+ }
245
+ openapi = {
246
+ delete: {
247
+ tags: [name],
248
+ operationId: `delete${name}`,
249
+ description: `Delete ${name} if the permissions allow`,
250
+ summary: `Delete a ${name}`,
251
+ responses: {
252
+ "204": {
253
+ description: "Operation success"
254
+ },
255
+ "403": {
256
+ description: "You don't have permissions"
257
+ },
258
+ "404": {
259
+ description: "Unknown object"
260
+ }
261
+ }
262
+ }
263
+ };
264
+ if (!model.Expose.restrict.delete) {
265
+ this.addRoute(`${prefix}/{uuid}`, ["DELETE"], (context) => this._webda.callOperation(context, `${shortId}.Delete`), openapi);
266
+ }
267
+ const openapiInfo = {
268
+ tags: [name],
269
+ operationId: `update${name}`,
270
+ description: `Update ${name} if the permissions allow`,
271
+ summary: `Update a ${name}`,
272
+ requestBody: {
273
+ content: {
274
+ "application/json": {
275
+ schema: {
276
+ $ref: `#/components/schemas/${model.getIdentifier()}`
277
+ }
278
+ }
279
+ }
280
+ },
281
+ responses: {
282
+ "204": {
283
+ description: "Operation success"
284
+ },
285
+ "400": {
286
+ description: "Invalid input"
287
+ },
288
+ "403": {
289
+ description: "You don't have permissions"
290
+ },
291
+ "404": {
292
+ description: "Unknown object"
293
+ }
294
+ }
295
+ };
296
+ openapi = {
297
+ put: openapiInfo,
298
+ patch: openapiInfo
299
+ };
300
+ if (!model.Expose.restrict.update) {
301
+ this.addRoute(`${prefix}/{uuid}`, ["PUT", "PATCH"], (context) => {
302
+ if (context.getHttpContext().getMethod() === "PUT") {
303
+ return this._webda.callOperation(context, `${shortId}.Update`);
304
+ }
305
+ else {
306
+ return this._webda.callOperation(context, `${shortId}.Patch`);
307
+ }
308
+ }, openapi);
309
+ }
310
+ openapi = {
311
+ get: {
312
+ tags: [name],
313
+ description: `Retrieve ${name} model if permissions allow`,
314
+ summary: `Retrieve a ${name}`,
315
+ operationId: `get${name}`,
316
+ responses: {
317
+ "200": {
318
+ content: {
319
+ "application/json": {
320
+ schema: {
321
+ $ref: `#/components/schemas/${model.getIdentifier()}`
322
+ }
323
+ }
324
+ }
325
+ },
326
+ "400": {
327
+ description: "Object is invalid"
328
+ },
329
+ "403": {
330
+ description: "You don't have permissions"
331
+ },
332
+ "404": {
333
+ description: "Unknown object"
334
+ }
335
+ }
336
+ }
337
+ };
338
+ if (!model.Expose.restrict.get) {
339
+ this.addRoute(`${prefix}/{uuid}`, ["GET"], (context) => this._webda.callOperation(context, `${shortId}.Get`), openapi);
340
+ }
341
+ // Add all actions
342
+ // Actions cannot be restricted as its purpose is to be exposed
343
+ const actions = model.getActions();
344
+ Object.keys(actions).forEach(actionName => {
345
+ const action = actions[actionName];
346
+ openapi = {
347
+ ...action.openapi
348
+ };
349
+ (action.methods || ["PUT"]).forEach(method => {
350
+ openapi[method.toLowerCase()] = {
351
+ tags: [name],
352
+ ...(action.openapi?.[method.toLowerCase()] ?? {})
353
+ };
354
+ });
355
+ if (app.hasSchema(`${model.getIdentifier(false)}.${actionName}.input`)) {
356
+ Object.keys(openapi)
357
+ .filter(k => ["get", "post", "put", "patch", "delete"].includes(k))
358
+ .forEach(k => {
359
+ openapi[k].requestBody = {
360
+ content: {
361
+ "application/json": {
362
+ schema: {
363
+ $ref: `#/components/schemas/${model.getIdentifier(false)}.${actionName}.input`
364
+ }
365
+ }
366
+ }
367
+ };
368
+ });
369
+ }
370
+ if (app.hasSchema(`${model.getIdentifier(false)}.${actionName}.output`)) {
371
+ Object.keys(openapi)
372
+ .filter(k => ["get", "post", "put", "patch", "delete"].includes(k))
373
+ .forEach(k => {
374
+ var _a, _b;
375
+ (_a = openapi[k]).responses ?? (_a.responses = {});
376
+ (_b = openapi[k].responses)["200"] ?? (_b["200"] = {});
377
+ openapi[k].responses["200"].content = {
378
+ "application/json": {
379
+ schema: {
380
+ $ref: `#/components/schemas/${model.getIdentifier(false)}.${actionName}.output`
381
+ }
382
+ }
383
+ };
384
+ });
385
+ }
386
+ this.addRoute(action.global ? `${prefix}/${actionName}` : `${prefix}/{uuid}/${actionName}`, action.methods || ["PUT"], async (context) => {
387
+ const actionOperationName = actionName.substring(0, 1).toUpperCase() + actionName.substring(1);
388
+ if (injectAttribute) {
389
+ context.getParameters()[injectAttribute] = context.parameter(`pid.${depth - 1}`);
390
+ context.getParameters()[`pid.${depth - 1}`] = undefined;
391
+ }
392
+ await this._webda.callOperation(context, `${shortId}.${actionOperationName}`);
393
+ }, openapi);
394
+ });
395
+ /*
396
+ Binaries should expose several methods
397
+ If cardinality is ONE
398
+ GET to download the binary
399
+ POST to upload a binary directly
400
+ PUT to upload a binary with challenge
401
+ DELETE /{hash} to delete a binary
402
+ PUT /{hash} to update metadata
403
+ GET /url to get a signed url
404
+
405
+ If cardinality is MANY
406
+ GET /{index} to download the binary
407
+ GET /{index}/url to get a signed url
408
+ POST to upload a binary directly
409
+ PUT to upload a binary with challenge
410
+ DELETE /{index}/{hash} to delete a binary
411
+ PUT /{index}/{hash} to update metadata
412
+ */
413
+ (relations.binaries || []).forEach(binary => {
414
+ const modelInjector = async (context) => {
415
+ context.getParameters().model = model.getIdentifier();
416
+ context.getParameters().property = binary.attribute;
417
+ let action = "SetMetadata";
418
+ if (context.getHttpContext().getMethod() === "POST") {
419
+ action = "Attach";
420
+ const params = context.getParameters();
421
+ params["mimetype"] = context.getHttpContext().getUniqueHeader("Content-Type", "application/octet-stream");
422
+ params["name"] = context.getHttpContext().getUniqueHeader("X-Filename");
423
+ params["size"] = context.getHttpContext().getUniqueHeader("Content-Length");
424
+ }
425
+ else if (context.getHttpContext().getMethod() === "DELETE") {
426
+ action = "Delete";
427
+ }
428
+ const attribute = binary.attribute.substring(0, 1).toUpperCase() + binary.attribute.substring(1);
429
+ return this._webda.callOperation(context, `${shortId}.${attribute}.${action}`);
430
+ };
431
+ const modelInjectorChallenge = async (context) => {
432
+ const attribute = binary.attribute.substring(0, 1).toUpperCase() + binary.attribute.substring(1);
433
+ return this._webda.callOperation(context, `${shortId}.${attribute}.AttachChallenge`);
434
+ };
435
+ const modelInjectorGet = async (context) => {
436
+ const attribute = binary.attribute.substring(0, 1).toUpperCase() + binary.attribute.substring(1);
437
+ if (binary.cardinality === "MANY") {
438
+ context.getParameters().index = parseInt(context.parameter("index"));
439
+ }
440
+ return this._webda.callOperation(context, `${shortId}.${attribute}.Get${context.getHttpContext().getUrl().endsWith("url") ? "Url" : ""}`);
441
+ };
442
+ openapi = {
443
+ put: {
444
+ tags: [name],
445
+ summary: `Upload ${binary.attribute} of ${name} after challenge`,
446
+ description: `You will need to call the challenge method first to get a signed url to upload the content\nIf the data is already known then done is returned`,
447
+ operationId: `upload${name}${binary.attribute}`,
448
+ requestBody: {
449
+ content: {
450
+ "application/octet-stream": {
451
+ schema: {
452
+ type: "object",
453
+ required: ["hash", "challenge"],
454
+ properties: {
455
+ hash: {
456
+ type: "string",
457
+ description: "md5(data)"
458
+ },
459
+ challenge: {
460
+ type: "string",
461
+ description: "md5('Webda' + data)"
462
+ },
463
+ size: {
464
+ type: "number",
465
+ description: "Size of the data"
466
+ },
467
+ name: {
468
+ type: "string",
469
+ description: "Name of the file"
470
+ },
471
+ mimetype: {
472
+ type: "string",
473
+ description: "Mimetype of the file"
474
+ },
475
+ metadata: {
476
+ type: "object",
477
+ description: "Metadata to add to the binary"
478
+ }
479
+ }
480
+ }
481
+ }
482
+ }
483
+ },
484
+ responses: {
485
+ "200": {
486
+ description: "Operation success",
487
+ content: {
488
+ "application/octet-stream": {
489
+ schema: {
490
+ type: "object",
491
+ properties: {
492
+ done: {
493
+ type: "boolean"
494
+ },
495
+ url: {
496
+ type: "string"
497
+ },
498
+ method: {
499
+ type: "string"
500
+ },
501
+ md5: {
502
+ type: "string",
503
+ description: "base64 md5 of the data\nThe next request requires Content-MD5 to be added with this one along with Content-Type: 'application/octet-stream'"
504
+ }
505
+ }
506
+ }
507
+ }
508
+ }
509
+ },
510
+ "403": {
511
+ description: "You don't have permissions"
512
+ },
513
+ "404": {
514
+ description: "Unknown object"
515
+ }
516
+ }
517
+ }
518
+ };
519
+ this.addRoute(`${prefix}/{uuid}/${binary.attribute}`, ["PUT"], modelInjectorChallenge, openapi);
520
+ openapi = {
521
+ post: {
522
+ tags: [name],
523
+ summary: `Upload ${binary.attribute} of ${name} directly`,
524
+ description: `You can upload the content directly to the server\nThis is not the recommended way as it wont be able to optimize network traffic`,
525
+ operationId: `upload${name}${binary.attribute}`,
526
+ requestBody: {
527
+ content: {
528
+ "application/octet-stream": {
529
+ schema: {
530
+ type: "string",
531
+ format: "binary"
532
+ }
533
+ }
534
+ }
535
+ },
536
+ responses: {
537
+ "204": {
538
+ description: ""
539
+ },
540
+ "403": {
541
+ description: "You don't have permissions"
542
+ },
543
+ "404": {
544
+ description: "Object does not exist or attachment does not exist"
545
+ }
546
+ }
547
+ }
548
+ };
549
+ this.addRoute(`${prefix}/{uuid}/${binary.attribute}`, ["POST"], modelInjector, openapi);
550
+ let rootUrl = `${prefix}/{uuid}/${binary.attribute}`;
551
+ if (binary.cardinality === "MANY") {
552
+ rootUrl += "/{index}";
553
+ }
554
+ openapi = {
555
+ get: {
556
+ tags: [name],
557
+ summary: `Download ${binary.attribute} of ${name}`,
558
+ operationId: `download${name}${binary.attribute}`,
559
+ responses: {
560
+ "200": {
561
+ description: "Operation success",
562
+ content: {
563
+ "application/octet-stream": {
564
+ schema: {
565
+ type: "string",
566
+ format: "binary"
567
+ }
568
+ }
569
+ }
570
+ },
571
+ "302": {
572
+ description: "Redirect to the binary"
573
+ },
574
+ "403": {
575
+ description: "You don't have permissions"
576
+ },
577
+ "404": {
578
+ description: "Unknown object"
579
+ }
580
+ }
581
+ }
582
+ };
583
+ this.addRoute(`${rootUrl}`, ["GET"], modelInjectorGet, openapi);
584
+ openapi = {
585
+ delete: {
586
+ tags: [name],
587
+ summary: `Delete ${binary.attribute} of ${name}`,
588
+ responses: {
589
+ "204": {
590
+ description: ""
591
+ },
592
+ "403": {
593
+ description: "You don't have permissions"
594
+ },
595
+ "404": {
596
+ description: "Object does not exist or attachment does not exist"
597
+ },
598
+ "412": {
599
+ description: "Provided hash does not match"
600
+ }
601
+ }
602
+ }
603
+ };
604
+ this.addRoute(`${rootUrl}/{hash}`, ["DELETE"], modelInjector, openapi);
605
+ openapi = {
606
+ put: {
607
+ tags: [name],
608
+ summary: `Update metadata of ${binary.attribute} of ${name}`,
609
+ operationId: `update${name}${binary.attribute}`,
610
+ requestBody: {
611
+ content: {
612
+ "application/json": {
613
+ schema: {
614
+ type: "object",
615
+ description: "Metadata to add to the binary",
616
+ additionalProperties: true
617
+ }
618
+ }
619
+ }
620
+ },
621
+ responses: {
622
+ "204": {
623
+ description: ""
624
+ },
625
+ "400": {
626
+ description: "Invalid input: metadata are limited to 4kb"
627
+ },
628
+ "403": {
629
+ description: "You don't have permissions"
630
+ },
631
+ "404": {
632
+ description: "Object does not exist or attachment does not exist"
633
+ },
634
+ "412": {
635
+ description: "Provided hash does not match"
636
+ }
637
+ }
638
+ }
639
+ };
640
+ this.addRoute(`${rootUrl}/{hash}`, ["PUT"], modelInjector, openapi);
641
+ openapi = {
642
+ get: {
643
+ tags: [name],
644
+ summary: `Get a signed url to download ${binary.attribute} of ${name} with a limited lifetime`,
645
+ responses: {
646
+ "200": {
647
+ description: "Operation success",
648
+ content: {
649
+ "application/json": {
650
+ schema: {
651
+ type: "object",
652
+ properties: {
653
+ Location: {
654
+ type: "string",
655
+ description: "Signed url to download the binary"
656
+ },
657
+ Map: {
658
+ $ref: "#/components/schemas/BinaryMap"
659
+ }
660
+ }
661
+ }
662
+ }
663
+ }
664
+ },
665
+ "403": {
666
+ description: "You don't have permissions"
667
+ },
668
+ "404": {
669
+ description: "Object does not exist or attachment does not exist"
670
+ }
671
+ }
672
+ }
673
+ };
674
+ this.addRoute(`${rootUrl}/url`, ["GET"], modelInjectorGet, openapi);
675
+ });
676
+ return true;
677
+ }
678
+ /**
679
+ * Serve the openapi with the swagger-ui
680
+ * @param ctx
681
+ */
682
+ async openapi(ctx) {
683
+ this.openapiContent ?? (this.openapiContent = SWAGGER_HTML.replace(/\{\{VERSION}}/g, this.parameters.swaggerVersion).replace("{{OPENAPI}}", JSON.stringify(this.getWebda().exportOpenAPI(true))));
684
+ ctx.write(this.openapiContent);
685
+ }
686
+ }
687
+ //# sourceMappingURL=restdomainservice.js.map