@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,431 @@
1
+ import { WEBDA_STORAGE } from "@webda/models";
2
+ import { useCoreEvents } from "../events/events.js";
3
+ import { Service } from "../services/service.js";
4
+ import { ServiceParameters } from "./serviceparameters.js";
5
+ import { CoreModel } from "../models/coremodel.model.js";
6
+ import { escape, parse, QueryValidator } from "@webda/ql";
7
+ import * as WebdaError from "../errors/errors.js";
8
+ import { useApplication, useModel } from "../application/hooks.js";
9
+ import { useModelMetadata } from "../core/hooks.js";
10
+ import { useContext } from "../contexts/execution.js";
11
+ import { hasSchema, registerSchema } from "../schemas/hooks.js";
12
+ import { parseSubjectKey, registerOperation, serializeSubjectKey } from "../core/operations.js";
13
+ /**
14
+ * Represents a single audit log entry
15
+ */
16
+ export class AuditEntry extends CoreModel {
17
+ operationId;
18
+ success;
19
+ error;
20
+ userId;
21
+ /**
22
+ * Identifier of the model the operation targeted, e.g. `WebdaSample/Post`
23
+ */
24
+ subjectModel;
25
+ /**
26
+ * Canonical primary key of the targeted object (see `serializeSubjectKey`)
27
+ */
28
+ subjectKey;
29
+ get timestamp() {
30
+ return this[WEBDA_STORAGE]["timestamp"];
31
+ }
32
+ set timestamp(value) {
33
+ this[WEBDA_STORAGE]["timestamp"] = value !== undefined && value !== null ? new Date(value) : value;
34
+ }
35
+ /** Generated by @webda/content-mapper: include values held in WEBDA_STORAGE. */
36
+ toJSON() {
37
+ const result = super.toJSON ? super.toJSON() : {};
38
+ for (const key of Object.keys(this)) {
39
+ result[key] = this[key];
40
+ }
41
+ Object.assign(result, this[WEBDA_STORAGE]);
42
+ return result;
43
+ }
44
+ }
45
+ /**
46
+ * Parameters for the AuditService
47
+ */
48
+ export class AuditServiceParameters extends ServiceParameters {
49
+ /**
50
+ * List of operations to include/exclude.
51
+ * Supports wildcards and negation: ["*", "!User.Delete"]
52
+ * @default ["*"]
53
+ */
54
+ operations;
55
+ /**
56
+ * Audit level filter:
57
+ * - "all" — audit everything (default)
58
+ * - "write" — everything except read operations (Get, List, Query)
59
+ * - "failure" — only failed operations
60
+ * @default "all"
61
+ */
62
+ level;
63
+ /**
64
+ * WebdaQL query evaluated against the session, required for global (`Audit.Query`)
65
+ * and other-user (`Audit.Actor`) reads, and for the history of an object that no
66
+ * longer exists. Unset means nobody.
67
+ * @example "roles CONTAINS 'admin'"
68
+ */
69
+ readPermission;
70
+ /**
71
+ * Register the `Audit.Subject`, `Audit.Actor` and `Audit.Query` operations, which
72
+ * the REST/GraphQL transports then expose. Off by default so adding the service
73
+ * never publishes the audit trail by surprise.
74
+ * @default false
75
+ */
76
+ exposeReadOperations;
77
+ /**
78
+ * Parsed exclude list
79
+ * @SchemaIgnore
80
+ */
81
+ excludedOperations;
82
+ /**
83
+ * Load parameters and parse include/exclude lists
84
+ * @param params - the service parameters
85
+ * @returns this for chaining
86
+ */
87
+ load(params = {}) {
88
+ super.load(params);
89
+ this.level ??= "all";
90
+ this.operations ??= ["*"];
91
+ if (this.operations.some(i => i.startsWith("!"))) {
92
+ this.excludedOperations = this.operations.filter(i => i.startsWith("!")).map(i => i.substring(1));
93
+ this.operations = this.operations.filter(i => !i.startsWith("!"));
94
+ if (this.operations.length === 0) {
95
+ this.operations = ["*"];
96
+ }
97
+ }
98
+ this.excludedOperations ??= [];
99
+ return this;
100
+ }
101
+ /**
102
+ * Check if an operation matches a pattern (supports trailing wildcard)
103
+ * @param operationId - the operation identifier
104
+ * @param pattern - the pattern to match against
105
+ * @returns true if the operation matches the pattern
106
+ */
107
+ matchesPattern(operationId, pattern) {
108
+ if (pattern === "*")
109
+ return true;
110
+ if (pattern.endsWith(".*")) {
111
+ return operationId.startsWith(pattern.slice(0, -1));
112
+ }
113
+ return operationId === pattern;
114
+ }
115
+ /**
116
+ * Check if an operation is included by this configuration
117
+ * @param operationId - the operation identifier
118
+ * @returns true if the operation is included
119
+ */
120
+ isIncluded(operationId) {
121
+ if (this.excludedOperations.some(p => this.matchesPattern(operationId, p))) {
122
+ return false;
123
+ }
124
+ return this.operations.some(p => this.matchesPattern(operationId, p));
125
+ }
126
+ }
127
+ /**
128
+ * Read-only operation suffixes excluded from "write" level auditing
129
+ */
130
+ const READ_SUFFIXES = ["Get", "List", "Query"];
131
+ /**
132
+ * The audit log's own read operations, treated as reads by the "write" level
133
+ */
134
+ const AUDIT_READ_OPERATIONS = ["Audit.Subject", "Audit.Actor", "Audit.Query"];
135
+ /**
136
+ * Page size of the audit read operations
137
+ */
138
+ const DEFAULT_PAGE_SIZE = 50;
139
+ const MAX_PAGE_SIZE = 200;
140
+ /**
141
+ * Pagination properties shared by the read operation requests
142
+ */
143
+ const PAGINATION_PROPERTIES = {
144
+ limit: { type: "number" },
145
+ continuationToken: { type: "string" }
146
+ };
147
+ /**
148
+ * Request schemas of the read operations, registered in resolve()
149
+ */
150
+ const AUDIT_SCHEMAS = {
151
+ auditSubjectRequest: {
152
+ type: "object",
153
+ properties: { model: { type: "string" }, key: { type: ["string", "number", "object"] }, ...PAGINATION_PROPERTIES },
154
+ required: ["model", "key"]
155
+ },
156
+ auditActorRequest: {
157
+ type: "object",
158
+ properties: { userId: { type: "string" }, ...PAGINATION_PROPERTIES }
159
+ },
160
+ auditQueryRequest: {
161
+ type: "object",
162
+ properties: { q: { type: "string" }, ...PAGINATION_PROPERTIES }
163
+ }
164
+ };
165
+ /**
166
+ * @WebdaModda AuditService
167
+ *
168
+ * Service that listens to operation success/failure events and records audit entries.
169
+ * Entries are kept in memory (accessible via getEntries()) and saved through the
170
+ * AuditEntry repository (the store the AuditEntry model is mapped to, the default
171
+ * store otherwise).
172
+ *
173
+ * With `exposeReadOperations: true` it also registers the read operations
174
+ * `Audit.Subject` (history of an object), `Audit.Actor` (activity of a user) and
175
+ * `Audit.Query` (whole log), guarded by the object's `canAct("audit")` or the
176
+ * `readPermission` parameter.
177
+ */
178
+ export class AuditService extends Service {
179
+ /**
180
+ * In-memory log of audit entries
181
+ */
182
+ entries = [];
183
+ /**
184
+ * Parsed readPermission
185
+ */
186
+ readPermissionQuery;
187
+ /**
188
+ * Unsubscribe functions of the core event listeners
189
+ */
190
+ unsubscribers = [];
191
+ /**
192
+ * Remove the core event listeners
193
+ */
194
+ unsubscribe() {
195
+ for (const off of this.unsubscribers.splice(0)) {
196
+ off();
197
+ }
198
+ }
199
+ /**
200
+ * Stop recording audit entries
201
+ */
202
+ async stop() {
203
+ this.unsubscribe();
204
+ await super.stop();
205
+ }
206
+ /**
207
+ * Subscribe to operation success and failure events for audit logging
208
+ * @returns this for chaining
209
+ */
210
+ resolve() {
211
+ super.resolve();
212
+ this.unsubscribe();
213
+ this.unsubscribers.push(useCoreEvents("Webda.OperationFailure", async (evt) => {
214
+ await this.addAuditEntry(evt.operationId, evt.context.getCurrentUserId(), evt.error, evt.subject);
215
+ }), useCoreEvents("Webda.OperationSuccess", async (evt) => {
216
+ await this.addAuditEntry(evt.operationId, evt.context.getCurrentUserId(), undefined, evt.subject);
217
+ }));
218
+ if (this.parameters.exposeReadOperations) {
219
+ this.registerReadOperations();
220
+ }
221
+ return this;
222
+ }
223
+ /**
224
+ * Get all in-memory audit entries
225
+ * @returns the list of audit entries
226
+ */
227
+ getEntries() {
228
+ return this.entries;
229
+ }
230
+ /**
231
+ * Determine whether the given operation should be audited
232
+ * based on include/exclude filters and level configuration.
233
+ * @param operationId - the operation identifier
234
+ * @param success - whether the operation succeeded
235
+ * @returns true if this operation should be audited
236
+ */
237
+ shouldAudit(operationId, success) {
238
+ // Check include/exclude filter
239
+ if (!this.parameters.isIncluded(operationId)) {
240
+ return false;
241
+ }
242
+ // Check level filter
243
+ const level = this.parameters.level ?? "all";
244
+ if (level === "failure") {
245
+ return !success;
246
+ }
247
+ if (level === "write") {
248
+ const suffix = operationId.split(".").pop() ?? "";
249
+ return !READ_SUFFIXES.includes(suffix) && !AUDIT_READ_OPERATIONS.includes(operationId);
250
+ }
251
+ return true;
252
+ }
253
+ /**
254
+ * Create and store an audit entry for the given operation context and optional error
255
+ * @param operationId - the operation identifier
256
+ * @param userId - the user identifier (may be undefined for anonymous)
257
+ * @param err - the error if the operation failed
258
+ * @param subject - the object the operation targeted, if any
259
+ */
260
+ async addAuditEntry(operationId, userId, err, subject) {
261
+ const success = err === undefined;
262
+ if (!this.shouldAudit(operationId, success)) {
263
+ return;
264
+ }
265
+ const entry = new AuditEntry();
266
+ entry.operationId = operationId;
267
+ entry.success = success;
268
+ entry.userId = userId;
269
+ entry.timestamp = new Date();
270
+ entry.subjectModel = subject?.model;
271
+ entry.subjectKey = subject?.key;
272
+ if (err) {
273
+ entry.error = err.message;
274
+ }
275
+ this.entries.push(entry);
276
+ await entry.save();
277
+ }
278
+ /**
279
+ * Register the request schemas and the Audit.Subject / Audit.Actor / Audit.Query operations
280
+ */
281
+ registerReadOperations() {
282
+ const appSchemas = useApplication().getSchemas();
283
+ for (const [name, schema] of Object.entries(AUDIT_SCHEMAS)) {
284
+ if (!hasSchema(name)) {
285
+ registerSchema(name, schema);
286
+ }
287
+ appSchemas[name] ??= schema;
288
+ }
289
+ const service = this.getName();
290
+ registerOperation("Audit.Subject", {
291
+ service,
292
+ method: "subjectEntries",
293
+ input: "auditSubjectRequest",
294
+ summary: "Audit entries of an object",
295
+ tags: ["Audit"]
296
+ });
297
+ registerOperation("Audit.Actor", {
298
+ service,
299
+ method: "actorEntries",
300
+ input: "auditActorRequest",
301
+ summary: "Audit entries of a user",
302
+ tags: ["Audit"]
303
+ });
304
+ registerOperation("Audit.Query", {
305
+ service,
306
+ method: "queryEntries",
307
+ input: "auditQueryRequest",
308
+ summary: "Query the audit log",
309
+ tags: ["Audit"]
310
+ });
311
+ }
312
+ /**
313
+ * Check the readPermission query against the current session
314
+ * @param context - the operation context
315
+ * @returns true if the session matches readPermission
316
+ */
317
+ hasReadPermission(context) {
318
+ if (!this.parameters.readPermission) {
319
+ return false;
320
+ }
321
+ this.readPermissionQuery ??= new QueryValidator(this.parameters.readPermission);
322
+ return this.readPermissionQuery.eval(context.getSession() ?? {});
323
+ }
324
+ /**
325
+ * Query the audit entries matching a filter, newest first
326
+ * @param filter - WebdaQL filter (may be empty)
327
+ * @param limit - page size, clamped to 1..200 (default 50)
328
+ * @param continuationToken - token of the previous page
329
+ * @returns the page of entries
330
+ */
331
+ async findEntries(filter, limit, continuationToken) {
332
+ const pageSize = Math.min(Math.max(Math.floor(Number(limit)) || DEFAULT_PAGE_SIZE, 1), MAX_PAGE_SIZE);
333
+ let query = `${filter} ORDER BY timestamp DESC LIMIT ${pageSize}`;
334
+ if (continuationToken) {
335
+ query += escape([" OFFSET ", ""], [continuationToken]);
336
+ }
337
+ const res = await AuditEntry.query(query);
338
+ return { results: res.results, continuationToken: res.continuationToken || undefined };
339
+ }
340
+ /**
341
+ * Audit entries of one object (`Audit.Subject`)
342
+ *
343
+ * Allowed when `subject.canAct(context, "audit")` is true. When the object does not
344
+ * exist (deleted or never created), `readPermission` is required, otherwise 404.
345
+ * @param model - model identifier, e.g. `WebdaSample/Post`
346
+ * @param key - primary key: scalar, object of key fields, or canonical JSON array
347
+ * @param limit - page size
348
+ * @param continuationToken - token of the previous page
349
+ * @returns the page of entries
350
+ */
351
+ async subjectEntries(model, key, limit, continuationToken) {
352
+ const context = useContext();
353
+ let modelClass;
354
+ try {
355
+ modelClass = useModel(model);
356
+ }
357
+ catch {
358
+ throw new WebdaError.NotFound("Object not found");
359
+ }
360
+ const modelId = useApplication().getModelId(modelClass);
361
+ if (!modelId) {
362
+ throw new WebdaError.NotFound("Object not found");
363
+ }
364
+ const pkFields = useModelMetadata(modelClass)?.PrimaryKey ?? ["uuid"];
365
+ const ref = parseSubjectKey(pkFields, key);
366
+ if (ref === undefined) {
367
+ throw new WebdaError.BadRequest("Invalid subject key");
368
+ }
369
+ let instance;
370
+ try {
371
+ instance = await modelClass.ref(ref).get();
372
+ }
373
+ catch {
374
+ // Repositories throw when the object does not exist
375
+ }
376
+ if (instance && !instance.isDeleted?.()) {
377
+ const allowed = typeof instance.canAct === "function" ? await instance.canAct(context, "audit") : false;
378
+ if (allowed !== true) {
379
+ throw new WebdaError.Forbidden(typeof allowed === "string" ? allowed : "Audit not allowed");
380
+ }
381
+ }
382
+ else if (!this.hasReadPermission(context)) {
383
+ throw new WebdaError.NotFound("Object not found");
384
+ }
385
+ return this.findEntries(escape(["subjectModel = ", " AND subjectKey = ", ""], [modelId, serializeSubjectKey(pkFields, ref)]), limit, continuationToken);
386
+ }
387
+ /**
388
+ * Audit entries of one user (`Audit.Actor`)
389
+ *
390
+ * A logged-in user can read their own entries; anyone else needs `readPermission`.
391
+ * @param userId - the user, defaults to the current user
392
+ * @param limit - page size
393
+ * @param continuationToken - token of the previous page
394
+ * @returns the page of entries
395
+ */
396
+ async actorEntries(userId, limit, continuationToken) {
397
+ const context = useContext();
398
+ const current = context.getCurrentUserId();
399
+ const target = userId || current;
400
+ if (!target || (target !== current && !this.hasReadPermission(context))) {
401
+ throw new WebdaError.Forbidden("Audit not allowed");
402
+ }
403
+ return this.findEntries(escape(["userId = ", ""], [target]), limit, continuationToken);
404
+ }
405
+ /**
406
+ * Query the whole audit log (`Audit.Query`), requires `readPermission`
407
+ *
408
+ * Only the filter part of `q` is used; ordering and paging are fixed.
409
+ * @param q - WebdaQL filter over the entry fields
410
+ * @param limit - page size
411
+ * @param continuationToken - token of the previous page
412
+ * @returns the page of entries
413
+ */
414
+ async queryEntries(q, limit, continuationToken) {
415
+ const context = useContext();
416
+ if (!this.hasReadPermission(context)) {
417
+ throw new WebdaError.Forbidden("Audit not allowed");
418
+ }
419
+ let filter = "";
420
+ if (q) {
421
+ try {
422
+ filter = parse(q).filter.toString();
423
+ }
424
+ catch {
425
+ throw new WebdaError.BadRequest("Query syntax error");
426
+ }
427
+ }
428
+ return this.findEntries(filter, limit, continuationToken);
429
+ }
430
+ }
431
+ //# sourceMappingURL=audit.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.model.js","sourceRoot":"","sources":["../../src/services/audit.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAyB,MAAM,uBAAuB,CAAC;AAEvH;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IACvC,WAAW,CAAS;IACpB,OAAO,CAAU;IACjB,KAAK,CAAU;IACf,MAAM,CAAU;IAChB;;OAEG;IACH,YAAY,CAAU;IACtB;;OAEG;IACH,UAAU,CAAU;IACpB,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,SAAS,CAAC,KAA6B;QACzC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAA+B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/H,CAAC;IAED,gFAAgF;IAChF,MAAM;QACJ,MAAM,MAAM,GAAS,KAAK,CAAC,MAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,GAAI,IAAY,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAG,IAAY,CAAC,aAAa,CAAC,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,iBAAiB;IAC3D;;;;OAIG;IACH,UAAU,CAAY;IAEtB;;;;;;OAMG;IACH,KAAK,CAA+B;IAEpC;;;;;OAKG;IACH,cAAc,CAAU;IAExB;;;;;OAKG;IACH,oBAAoB,CAAW;IAE/B;;;OAGG;IACK,kBAAkB,CAAW;IAErC;;;;OAIG;IACH,IAAI,CAAC,MAAM,GAAQ,EAAE;QACnB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;QACrB,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAClG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,kBAAkB,KAAK,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,WAAmB,EAAE,OAAe;QACzD,IAAI,OAAO,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,WAAW,KAAK,OAAO,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,WAAmB;QAC5B,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;CACF;AAED;;GAEG;AACH,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/C;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,eAAe,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;;GAEG;AACH,MAAM,qBAAqB,GAAgC;IACzD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,aAAa,GAAgC;IACjD,mBAAmB,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,qBAAqB,EAAE;QAClH,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;KAC3B;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,qBAAqB,EAAE;KACrE;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,qBAAqB,EAAE;KAChE;CACF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,YAAa,SAAQ,OAA+B;IAC/D;;OAEG;IACO,OAAO,GAAiB,EAAE,CAAC;IAErC;;OAEG;IACO,mBAAmB,CAAkB;IAE/C;;OAEG;IACO,aAAa,GAAmB,EAAE,CAAC;IAE7C;;OAEG;IACO,WAAW;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,EAAE,CAAC;QACR,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,aAAa,CAAC,wBAAwB,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE;YAClD,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACpG,CAAC,CAAC,EACF,aAAa,CAAC,wBAAwB,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE;YAClD,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACpG,CAAC,CAAC,CACH,CAAC;QACF,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;YACzC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,WAAmB,EAAE,OAAgB;QAC/C,+BAA+B;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,qBAAqB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC;QAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,OAAO,CAAC;QAClB,CAAC;QACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAClD,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,MAAe,EAAE,GAAW,EAAE,OAA0B;QAC/F,MAAM,OAAO,GAAG,GAAG,KAAK,SAAS,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;QAC/B,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QACxB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,KAAK,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,KAAK,CAAC,YAAY,GAAG,OAAO,EAAE,KAAK,CAAC;QACpC,KAAK,CAAC,UAAU,GAAG,OAAO,EAAE,GAAG,CAAC;QAChC,IAAI,GAAG,EAAE,CAAC;YACR,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACO,sBAAsB;QAC9B,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC,UAAU,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC/B,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;QAC9B,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,iBAAiB,CAAC,eAAe,EAAE;YACjC,OAAO;YACP,MAAM,EAAE,gBAAgB;YACxB,KAAK,EAAE,qBAAqB;YAC5B,OAAO,EAAE,4BAA4B;YACrC,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC,CAAC;QACH,iBAAiB,CAAC,aAAa,EAAE;YAC/B,OAAO;YACP,MAAM,EAAE,cAAc;YACtB,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE,yBAAyB;YAClC,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC,CAAC;QACH,iBAAiB,CAAC,aAAa,EAAE;YAC/B,OAAO;YACP,MAAM,EAAE,cAAc;YACtB,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE,qBAAqB;YAC9B,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,OAAyB;QACzC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,mBAAmB,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,WAAW,CACzB,MAAc,EACd,KAAc,EACd,iBAA0B;QAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QACtG,IAAI,KAAK,GAAG,GAAG,MAAM,kCAAkC,QAAQ,EAAE,CAAC;QAClE,IAAI,iBAAiB,EAAE,CAAC;YACtB,KAAK,IAAI,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,SAAS,EAAE,CAAC;IACzF,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,GAAY,EAAE,KAAc,EAAE,iBAA0B;QAC1F,MAAM,OAAO,GAAG,UAAU,EAAoB,CAAC;QAC/C,IAAI,UAAe,CAAC;QACpB,IAAI,CAAC;YACH,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,QAAQ,GAAa,gBAAgB,CAAC,UAAU,CAAC,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,CAAC;QAChF,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,QAAa,CAAC;QAClB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;QACD,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxG,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CACrB,MAAM,CAAC,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EACpG,KAAK,EACL,iBAAiB,CAClB,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,YAAY,CAAC,MAAe,EAAE,KAAc,EAAE,iBAA0B;QAC5E,MAAM,OAAO,GAAG,UAAU,EAAoB,CAAC;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC;QACjC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,YAAY,CAAC,CAAU,EAAE,KAAc,EAAE,iBAA0B;QACvE,MAAM,OAAO,GAAG,UAAU,EAAoB,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,UAAU,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,EAAE,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAC5D,CAAC;CACF"}