@visactor/vrender-core 0.19.4-alpha.5 → 0.19.4

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 (772) hide show
  1. package/cjs/allocator/bounds-allocate.js +1 -1
  2. package/cjs/allocator/bounds-allocate.js.map +1 -1
  3. package/cjs/allocator/canvas-allocate.js +11 -9
  4. package/cjs/allocator/canvas-allocate.js.map +1 -1
  5. package/cjs/allocator/graphic-allocate.js +5 -9
  6. package/cjs/allocator/graphic-allocate.js.map +1 -1
  7. package/cjs/allocator/matrix-allocate.js +2 -6
  8. package/cjs/allocator/matrix-allocate.js.map +1 -1
  9. package/cjs/animate/Ticker/default-ticker.js +25 -14
  10. package/cjs/animate/Ticker/default-ticker.js.map +1 -1
  11. package/cjs/animate/animate.js +8 -7
  12. package/cjs/animate/animate.js.map +1 -1
  13. package/cjs/animate/custom-animate.js +54 -51
  14. package/cjs/animate/custom-animate.js.map +1 -1
  15. package/cjs/animate/easing.js +19 -8
  16. package/cjs/animate/easing.js.map +1 -1
  17. package/cjs/animate/morphing.js +20 -23
  18. package/cjs/animate/morphing.js.map +1 -1
  19. package/cjs/application.js +7 -1
  20. package/cjs/application.js.map +1 -1
  21. package/cjs/canvas/conical-gradient.js +12 -5
  22. package/cjs/canvas/conical-gradient.js.map +1 -1
  23. package/cjs/canvas/contributions/base-canvas.js +19 -7
  24. package/cjs/canvas/contributions/base-canvas.js.map +1 -1
  25. package/cjs/color-string/interpolate.js +5 -3
  26. package/cjs/color-string/interpolate.js.map +1 -1
  27. package/cjs/color-string/store.js +3 -1
  28. package/cjs/color-string/store.js.map +1 -1
  29. package/cjs/common/bounds-context.js +1 -0
  30. package/cjs/common/bounds-context.js.map +1 -1
  31. package/cjs/common/canvas-utils.js +3 -6
  32. package/cjs/common/canvas-utils.js.map +1 -1
  33. package/cjs/common/contribution-provider.js +3 -0
  34. package/cjs/common/contribution-provider.js.map +1 -1
  35. package/cjs/common/custom-path2d.js +7 -1
  36. package/cjs/common/custom-path2d.js.map +1 -1
  37. package/cjs/common/generator.js +2 -1
  38. package/cjs/common/generator.js.map +1 -1
  39. package/cjs/common/inversify/binding.js +12 -0
  40. package/cjs/common/inversify/binding.js.map +1 -1
  41. package/cjs/common/inversify/container.js +4 -0
  42. package/cjs/common/inversify/container.js.map +1 -1
  43. package/cjs/common/inversify/cotainer-module.js +2 -0
  44. package/cjs/common/inversify/cotainer-module.js.map +1 -1
  45. package/cjs/common/inversify/meta-data.js +2 -0
  46. package/cjs/common/inversify/meta-data.js.map +1 -1
  47. package/cjs/common/inversify/syntax/binding_in_syntax.js +1 -0
  48. package/cjs/common/inversify/syntax/binding_in_syntax.js.map +1 -1
  49. package/cjs/common/inversify/syntax/binding_to_syntax.js +1 -0
  50. package/cjs/common/inversify/syntax/binding_to_syntax.js.map +1 -1
  51. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js +1 -0
  52. package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js.map +1 -1
  53. package/cjs/common/inversify-lite/bindings/binding.js +14 -0
  54. package/cjs/common/inversify-lite/bindings/binding.js.map +1 -1
  55. package/cjs/common/inversify-lite/container/container.js +22 -46
  56. package/cjs/common/inversify-lite/container/container.js.map +1 -1
  57. package/cjs/common/inversify-lite/container/container_module.js +4 -0
  58. package/cjs/common/inversify-lite/container/container_module.js.map +1 -1
  59. package/cjs/common/inversify-lite/container/lookup.js +1 -0
  60. package/cjs/common/inversify-lite/container/lookup.js.map +1 -1
  61. package/cjs/common/inversify-lite/planning/context.js +4 -0
  62. package/cjs/common/inversify-lite/planning/context.js.map +1 -1
  63. package/cjs/common/inversify-lite/planning/metadata.js +2 -0
  64. package/cjs/common/inversify-lite/planning/metadata.js.map +1 -1
  65. package/cjs/common/inversify-lite/planning/plan.js +2 -0
  66. package/cjs/common/inversify-lite/planning/plan.js.map +1 -1
  67. package/cjs/common/inversify-lite/planning/queryable_string.js +1 -0
  68. package/cjs/common/inversify-lite/planning/queryable_string.js.map +1 -1
  69. package/cjs/common/inversify-lite/planning/request.js +8 -0
  70. package/cjs/common/inversify-lite/planning/request.js.map +1 -1
  71. package/cjs/common/inversify-lite/planning/target.js +7 -0
  72. package/cjs/common/inversify-lite/planning/target.js.map +1 -1
  73. package/cjs/common/inversify-lite/resolution/instantiation.js +16 -42
  74. package/cjs/common/inversify-lite/resolution/instantiation.js.map +1 -1
  75. package/cjs/common/inversify-lite/scope/scope.js +3 -29
  76. package/cjs/common/inversify-lite/scope/scope.js.map +1 -1
  77. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js +1 -0
  78. package/cjs/common/inversify-lite/syntax/binding_in_syntax.js.map +1 -1
  79. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js +3 -0
  80. package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +1 -1
  81. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js +1 -0
  82. package/cjs/common/inversify-lite/syntax/binding_on_syntax.js.map +1 -1
  83. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js +1 -0
  84. package/cjs/common/inversify-lite/syntax/binding_to_syntax.js.map +1 -1
  85. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js +2 -0
  86. package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js.map +1 -1
  87. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js +1 -0
  88. package/cjs/common/inversify-lite/syntax/binding_when_syntax.js.map +1 -1
  89. package/cjs/common/polygon.js +1 -2
  90. package/cjs/common/polygon.js.map +1 -1
  91. package/cjs/common/render-area.js +2 -3
  92. package/cjs/common/render-area.js.map +1 -1
  93. package/cjs/common/render-curve.js +4 -8
  94. package/cjs/common/render-curve.js.map +1 -1
  95. package/cjs/common/seg-context.js +12 -3
  96. package/cjs/common/seg-context.js.map +1 -1
  97. package/cjs/common/segment/basis.js +13 -0
  98. package/cjs/common/segment/basis.js.map +1 -1
  99. package/cjs/common/segment/common.js +2 -2
  100. package/cjs/common/segment/common.js.map +1 -1
  101. package/cjs/common/segment/curve/arc.js +2 -2
  102. package/cjs/common/segment/curve/arc.js.map +1 -1
  103. package/cjs/common/segment/curve/base.js +4 -0
  104. package/cjs/common/segment/curve/base.js.map +1 -1
  105. package/cjs/common/segment/curve/cubic-bezier.js +2 -2
  106. package/cjs/common/segment/curve/cubic-bezier.js.map +1 -1
  107. package/cjs/common/segment/curve/curve-context.js +4 -0
  108. package/cjs/common/segment/curve/curve-context.js.map +1 -1
  109. package/cjs/common/segment/curve/ellipse.js +3 -3
  110. package/cjs/common/segment/curve/ellipse.js.map +1 -1
  111. package/cjs/common/segment/curve/line.js +2 -1
  112. package/cjs/common/segment/curve/line.js.map +1 -1
  113. package/cjs/common/segment/curve/move.js +2 -1
  114. package/cjs/common/segment/curve/move.js.map +1 -1
  115. package/cjs/common/segment/curve/path.js +2 -0
  116. package/cjs/common/segment/curve/path.js.map +1 -1
  117. package/cjs/common/segment/curve/quadratic-bezier.js +2 -2
  118. package/cjs/common/segment/curve/quadratic-bezier.js.map +1 -1
  119. package/cjs/common/segment/linear-closed.js.map +1 -1
  120. package/cjs/common/segment/linear.js +10 -0
  121. package/cjs/common/segment/linear.js.map +1 -1
  122. package/cjs/common/segment/monotone.js +13 -0
  123. package/cjs/common/segment/monotone.js.map +1 -1
  124. package/cjs/common/segment/step.js +13 -2
  125. package/cjs/common/segment/step.js.map +1 -1
  126. package/cjs/common/sort.js +3 -34
  127. package/cjs/common/sort.js.map +1 -1
  128. package/cjs/common/split-path.js +4 -11
  129. package/cjs/common/split-path.js.map +1 -1
  130. package/cjs/common/utils.d.ts +1 -1
  131. package/cjs/common/utils.js +10 -6
  132. package/cjs/common/utils.js.map +1 -1
  133. package/cjs/common/xml/parser.js +3 -2
  134. package/cjs/common/xml/parser.js.map +1 -1
  135. package/cjs/core/camera.js +11 -4
  136. package/cjs/core/camera.js.map +1 -1
  137. package/cjs/core/contributions/env/base-contribution.js +6 -0
  138. package/cjs/core/contributions/env/base-contribution.js.map +1 -1
  139. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +20 -11
  140. package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  141. package/cjs/core/contributions/layerHandler/empty-contribution.js +8 -8
  142. package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  143. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +5 -6
  144. package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  145. package/cjs/core/contributions/textMeasure/AtextMeasure.js +11 -8
  146. package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  147. package/cjs/core/contributions/textMeasure/layout.js +3 -0
  148. package/cjs/core/contributions/textMeasure/layout.js.map +1 -1
  149. package/cjs/core/contributions/window/base-contribution.js +2 -0
  150. package/cjs/core/contributions/window/base-contribution.js.map +1 -1
  151. package/cjs/core/global.js +8 -0
  152. package/cjs/core/global.js.map +1 -1
  153. package/cjs/core/graphic-utils.js +16 -5
  154. package/cjs/core/graphic-utils.js.map +1 -1
  155. package/cjs/core/layer-service.js +7 -7
  156. package/cjs/core/layer-service.js.map +1 -1
  157. package/cjs/core/layer.js +7 -9
  158. package/cjs/core/layer.js.map +1 -1
  159. package/cjs/core/stage.js +79 -35
  160. package/cjs/core/stage.js.map +1 -1
  161. package/cjs/core/window.js +16 -13
  162. package/cjs/core/window.js.map +1 -1
  163. package/cjs/event/event-manager.js +152 -143
  164. package/cjs/event/event-manager.js.map +1 -1
  165. package/cjs/event/event-system.js +60 -43
  166. package/cjs/event/event-system.js.map +1 -1
  167. package/cjs/event/event-target.js +1 -3
  168. package/cjs/event/event-target.js.map +1 -1
  169. package/cjs/event/federated-event/base-event.js +43 -15
  170. package/cjs/event/federated-event/base-event.js.map +1 -1
  171. package/cjs/event/federated-event/mouse-event.js +27 -18
  172. package/cjs/event/federated-event/mouse-event.js.map +1 -1
  173. package/cjs/event/federated-event/pointer-event.js +13 -8
  174. package/cjs/event/federated-event/pointer-event.js.map +1 -1
  175. package/cjs/event/federated-event/wheel-event.js +14 -10
  176. package/cjs/event/federated-event/wheel-event.js.map +1 -1
  177. package/cjs/graphic/arc.js +10 -5
  178. package/cjs/graphic/arc.js.map +1 -1
  179. package/cjs/graphic/arc3d.js +7 -4
  180. package/cjs/graphic/arc3d.js.map +1 -1
  181. package/cjs/graphic/area.js +14 -9
  182. package/cjs/graphic/area.js.map +1 -1
  183. package/cjs/graphic/builtin-symbol/arrow.js +2 -3
  184. package/cjs/graphic/builtin-symbol/arrow.js.map +1 -1
  185. package/cjs/graphic/builtin-symbol/arrow2-down.js +2 -3
  186. package/cjs/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  187. package/cjs/graphic/builtin-symbol/arrow2-left.js +2 -3
  188. package/cjs/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  189. package/cjs/graphic/builtin-symbol/arrow2-right.js +2 -3
  190. package/cjs/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  191. package/cjs/graphic/builtin-symbol/arrow2-up.js +2 -3
  192. package/cjs/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  193. package/cjs/graphic/builtin-symbol/circle.js +2 -3
  194. package/cjs/graphic/builtin-symbol/circle.js.map +1 -1
  195. package/cjs/graphic/builtin-symbol/close.js +2 -3
  196. package/cjs/graphic/builtin-symbol/close.js.map +1 -1
  197. package/cjs/graphic/builtin-symbol/cross.js +2 -3
  198. package/cjs/graphic/builtin-symbol/cross.js.map +1 -1
  199. package/cjs/graphic/builtin-symbol/diamond.js +2 -3
  200. package/cjs/graphic/builtin-symbol/diamond.js.map +1 -1
  201. package/cjs/graphic/builtin-symbol/line-h.js +2 -3
  202. package/cjs/graphic/builtin-symbol/line-h.js.map +1 -1
  203. package/cjs/graphic/builtin-symbol/line-v.js +2 -3
  204. package/cjs/graphic/builtin-symbol/line-v.js.map +1 -1
  205. package/cjs/graphic/builtin-symbol/rect.js +2 -3
  206. package/cjs/graphic/builtin-symbol/rect.js.map +1 -1
  207. package/cjs/graphic/builtin-symbol/square.js +2 -3
  208. package/cjs/graphic/builtin-symbol/square.js.map +1 -1
  209. package/cjs/graphic/builtin-symbol/star.js +2 -3
  210. package/cjs/graphic/builtin-symbol/star.js.map +1 -1
  211. package/cjs/graphic/builtin-symbol/stroke.js +2 -3
  212. package/cjs/graphic/builtin-symbol/stroke.js.map +1 -1
  213. package/cjs/graphic/builtin-symbol/thin-triangle.js +2 -3
  214. package/cjs/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  215. package/cjs/graphic/builtin-symbol/triangle-down.js +2 -3
  216. package/cjs/graphic/builtin-symbol/triangle-down.js.map +1 -1
  217. package/cjs/graphic/builtin-symbol/triangle-left.js +2 -3
  218. package/cjs/graphic/builtin-symbol/triangle-left.js.map +1 -1
  219. package/cjs/graphic/builtin-symbol/triangle-right.js +2 -3
  220. package/cjs/graphic/builtin-symbol/triangle-right.js.map +1 -1
  221. package/cjs/graphic/builtin-symbol/triangle-up.js +2 -3
  222. package/cjs/graphic/builtin-symbol/triangle-up.js.map +1 -1
  223. package/cjs/graphic/builtin-symbol/triangle.js +1 -3
  224. package/cjs/graphic/builtin-symbol/triangle.js.map +1 -1
  225. package/cjs/graphic/builtin-symbol/utils.js +6 -1
  226. package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
  227. package/cjs/graphic/builtin-symbol/wedge.js +2 -3
  228. package/cjs/graphic/builtin-symbol/wedge.js.map +1 -1
  229. package/cjs/graphic/builtin-symbol/wye.js +2 -3
  230. package/cjs/graphic/builtin-symbol/wye.js.map +1 -1
  231. package/cjs/graphic/circle.js +8 -6
  232. package/cjs/graphic/circle.js.map +1 -1
  233. package/cjs/graphic/config.js +59 -32
  234. package/cjs/graphic/config.js.map +1 -1
  235. package/cjs/graphic/glyph.js +10 -9
  236. package/cjs/graphic/glyph.js.map +1 -1
  237. package/cjs/graphic/graphic-service/graphic-service.js +12 -8
  238. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  239. package/cjs/graphic/graphic.d.ts +1 -0
  240. package/cjs/graphic/graphic.js +32 -42
  241. package/cjs/graphic/graphic.js.map +1 -1
  242. package/cjs/graphic/group.js +9 -5
  243. package/cjs/graphic/group.js.map +1 -1
  244. package/cjs/graphic/image.js +18 -16
  245. package/cjs/graphic/image.js.map +1 -1
  246. package/cjs/graphic/line.js +11 -6
  247. package/cjs/graphic/line.js.map +1 -1
  248. package/cjs/graphic/node-tree.js +25 -44
  249. package/cjs/graphic/node-tree.js.map +1 -1
  250. package/cjs/graphic/path.js +12 -6
  251. package/cjs/graphic/path.js.map +1 -1
  252. package/cjs/graphic/polygon.js +7 -4
  253. package/cjs/graphic/polygon.js.map +1 -1
  254. package/cjs/graphic/pyramid3d.js +4 -3
  255. package/cjs/graphic/pyramid3d.js.map +1 -1
  256. package/cjs/graphic/rect.js +7 -3
  257. package/cjs/graphic/rect.js.map +1 -1
  258. package/cjs/graphic/rect3d.js +5 -4
  259. package/cjs/graphic/rect3d.js.map +1 -1
  260. package/cjs/graphic/richtext/frame.js +19 -0
  261. package/cjs/graphic/richtext/frame.js.map +1 -1
  262. package/cjs/graphic/richtext/icon.js +14 -6
  263. package/cjs/graphic/richtext/icon.js.map +1 -1
  264. package/cjs/graphic/richtext/line.js +14 -2
  265. package/cjs/graphic/richtext/line.js.map +1 -1
  266. package/cjs/graphic/richtext/paragraph.js +22 -0
  267. package/cjs/graphic/richtext/paragraph.js.map +1 -1
  268. package/cjs/graphic/richtext/utils.js +1 -2
  269. package/cjs/graphic/richtext/utils.js.map +1 -1
  270. package/cjs/graphic/richtext/wrapper.js +12 -0
  271. package/cjs/graphic/richtext/wrapper.js.map +1 -1
  272. package/cjs/graphic/richtext.js +38 -45
  273. package/cjs/graphic/richtext.js.map +1 -1
  274. package/cjs/graphic/shadow-root.js +2 -1
  275. package/cjs/graphic/shadow-root.js.map +1 -1
  276. package/cjs/graphic/symbol.js +12 -5
  277. package/cjs/graphic/symbol.js.map +1 -1
  278. package/cjs/graphic/text.js +45 -45
  279. package/cjs/graphic/text.js.map +1 -1
  280. package/cjs/graphic/theme.js +4 -0
  281. package/cjs/graphic/theme.js.map +1 -1
  282. package/cjs/graphic/tools.js +16 -44
  283. package/cjs/graphic/tools.js.map +1 -1
  284. package/cjs/graphic/wrap-text.js +7 -7
  285. package/cjs/graphic/wrap-text.js.map +1 -1
  286. package/cjs/interface/global.d.ts +2 -1
  287. package/cjs/interface/global.js.map +1 -1
  288. package/cjs/interface/graphic.d.ts +1 -0
  289. package/cjs/interface/graphic.js.map +1 -1
  290. package/cjs/picker/global-picker-service.js +1 -0
  291. package/cjs/picker/global-picker-service.js.map +1 -1
  292. package/cjs/picker/pick-interceptor.js +5 -15
  293. package/cjs/picker/pick-interceptor.js.map +1 -1
  294. package/cjs/picker/picker-service.js +5 -5
  295. package/cjs/picker/picker-service.js.map +1 -1
  296. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js +26 -20
  297. package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  298. package/cjs/plugins/builtin-plugin/auto-render-plugin.js +5 -4
  299. package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  300. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +5 -4
  301. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  302. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +11 -8
  303. package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  304. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +28 -19
  305. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  306. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js +12 -8
  307. package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  308. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js +6 -7
  309. package/cjs/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  310. package/cjs/plugins/plugin-service.js +1 -0
  311. package/cjs/plugins/plugin-service.js.map +1 -1
  312. package/cjs/render/contributions/render/arc-render.js +6 -4
  313. package/cjs/render/contributions/render/arc-render.js.map +1 -1
  314. package/cjs/render/contributions/render/arc3d-render.js +5 -7
  315. package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
  316. package/cjs/render/contributions/render/area-render.js +21 -23
  317. package/cjs/render/contributions/render/area-render.js.map +1 -1
  318. package/cjs/render/contributions/render/base-render.js +5 -0
  319. package/cjs/render/contributions/render/base-render.js.map +1 -1
  320. package/cjs/render/contributions/render/circle-render.js +6 -4
  321. package/cjs/render/contributions/render/circle-render.js.map +1 -1
  322. package/cjs/render/contributions/render/contributions/arc-contribution-render.js +3 -4
  323. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  324. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js +6 -9
  325. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -1
  326. package/cjs/render/contributions/render/contributions/base-contribution-render.js +10 -8
  327. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  328. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js +4 -4
  329. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  330. package/cjs/render/contributions/render/contributions/circle-contribution-render.js +3 -4
  331. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  332. package/cjs/render/contributions/render/contributions/group-contribution-render.js +1 -3
  333. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  334. package/cjs/render/contributions/render/contributions/image-contribution-render.js +1 -3
  335. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  336. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +11 -14
  337. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  338. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +3 -4
  339. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  340. package/cjs/render/contributions/render/contributions/text-contribution-render.js +6 -8
  341. package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  342. package/cjs/render/contributions/render/draw-contribution.js +12 -14
  343. package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
  344. package/cjs/render/contributions/render/draw-interceptor.js +11 -21
  345. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  346. package/cjs/render/contributions/render/glyph-render.js +2 -3
  347. package/cjs/render/contributions/render/glyph-render.js.map +1 -1
  348. package/cjs/render/contributions/render/graphic-render.js +4 -1
  349. package/cjs/render/contributions/render/graphic-render.js.map +1 -1
  350. package/cjs/render/contributions/render/group-render.js +7 -3
  351. package/cjs/render/contributions/render/group-render.js.map +1 -1
  352. package/cjs/render/contributions/render/image-render.js +4 -2
  353. package/cjs/render/contributions/render/image-render.js.map +1 -1
  354. package/cjs/render/contributions/render/incremental-area-render.js +1 -3
  355. package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
  356. package/cjs/render/contributions/render/incremental-draw-contribution.js +80 -109
  357. package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  358. package/cjs/render/contributions/render/incremental-line-render.js +1 -3
  359. package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
  360. package/cjs/render/contributions/render/line-render.js +12 -16
  361. package/cjs/render/contributions/render/line-render.js.map +1 -1
  362. package/cjs/render/contributions/render/path-render.js +8 -7
  363. package/cjs/render/contributions/render/path-render.js.map +1 -1
  364. package/cjs/render/contributions/render/polygon-render.js +6 -4
  365. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  366. package/cjs/render/contributions/render/pyramid3d-render.js +3 -5
  367. package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
  368. package/cjs/render/contributions/render/rect-render.js +8 -7
  369. package/cjs/render/contributions/render/rect-render.js.map +1 -1
  370. package/cjs/render/contributions/render/rect3d-render.js +5 -7
  371. package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
  372. package/cjs/render/contributions/render/richtext-render.js +4 -3
  373. package/cjs/render/contributions/render/richtext-render.js.map +1 -1
  374. package/cjs/render/contributions/render/symbol-render.js +11 -14
  375. package/cjs/render/contributions/render/symbol-render.js.map +1 -1
  376. package/cjs/render/contributions/render/text-render.js +8 -8
  377. package/cjs/render/contributions/render/text-render.js.map +1 -1
  378. package/cjs/render/contributions/render/utils.js +1 -1
  379. package/cjs/render/contributions/render/utils.js.map +1 -1
  380. package/cjs/render/render-service.js +11 -2
  381. package/cjs/render/render-service.js.map +1 -1
  382. package/cjs/resource-loader/loader.js +13 -16
  383. package/cjs/resource-loader/loader.js.map +1 -1
  384. package/cjs/tapable/Hook.js +3 -0
  385. package/cjs/tapable/Hook.js.map +1 -1
  386. package/dist/index.es.js +28908 -0
  387. package/es/allocator/bounds-allocate.js +1 -1
  388. package/es/allocator/bounds-allocate.js.map +1 -1
  389. package/es/allocator/canvas-allocate.js +11 -9
  390. package/es/allocator/canvas-allocate.js.map +1 -1
  391. package/es/allocator/graphic-allocate.js +5 -9
  392. package/es/allocator/graphic-allocate.js.map +1 -1
  393. package/es/allocator/matrix-allocate.js +2 -6
  394. package/es/allocator/matrix-allocate.js.map +1 -1
  395. package/es/animate/Ticker/default-ticker.js +25 -14
  396. package/es/animate/Ticker/default-ticker.js.map +1 -1
  397. package/es/animate/animate.js +7 -8
  398. package/es/animate/animate.js.map +1 -1
  399. package/es/animate/custom-animate.js +52 -50
  400. package/es/animate/custom-animate.js.map +1 -1
  401. package/es/animate/easing.js +18 -8
  402. package/es/animate/easing.js.map +1 -1
  403. package/es/animate/morphing.js +20 -23
  404. package/es/animate/morphing.js.map +1 -1
  405. package/es/application.js +7 -1
  406. package/es/application.js.map +1 -1
  407. package/es/canvas/conical-gradient.js +12 -6
  408. package/es/canvas/conical-gradient.js.map +1 -1
  409. package/es/canvas/contributions/base-canvas.js +19 -7
  410. package/es/canvas/contributions/base-canvas.js.map +1 -1
  411. package/es/color-string/interpolate.js +5 -3
  412. package/es/color-string/interpolate.js.map +1 -1
  413. package/es/color-string/store.js +2 -2
  414. package/es/color-string/store.js.map +1 -1
  415. package/es/common/bounds-context.js +1 -0
  416. package/es/common/bounds-context.js.map +1 -1
  417. package/es/common/canvas-utils.js +3 -6
  418. package/es/common/canvas-utils.js.map +1 -1
  419. package/es/common/contribution-provider.js +3 -0
  420. package/es/common/contribution-provider.js.map +1 -1
  421. package/es/common/custom-path2d.js +7 -1
  422. package/es/common/custom-path2d.js.map +1 -1
  423. package/es/common/generator.js +1 -2
  424. package/es/common/generator.js.map +1 -1
  425. package/es/common/inversify/binding.js +12 -0
  426. package/es/common/inversify/binding.js.map +1 -1
  427. package/es/common/inversify/container.js +4 -0
  428. package/es/common/inversify/container.js.map +1 -1
  429. package/es/common/inversify/cotainer-module.js +2 -0
  430. package/es/common/inversify/cotainer-module.js.map +1 -1
  431. package/es/common/inversify/meta-data.js +2 -0
  432. package/es/common/inversify/meta-data.js.map +1 -1
  433. package/es/common/inversify/syntax/binding_in_syntax.js +1 -0
  434. package/es/common/inversify/syntax/binding_in_syntax.js.map +1 -1
  435. package/es/common/inversify/syntax/binding_to_syntax.js +1 -0
  436. package/es/common/inversify/syntax/binding_to_syntax.js.map +1 -1
  437. package/es/common/inversify-lite/annotation/lazy_service_identifier.js +1 -0
  438. package/es/common/inversify-lite/annotation/lazy_service_identifier.js.map +1 -1
  439. package/es/common/inversify-lite/bindings/binding.js +14 -0
  440. package/es/common/inversify-lite/bindings/binding.js.map +1 -1
  441. package/es/common/inversify-lite/container/container.js +22 -48
  442. package/es/common/inversify-lite/container/container.js.map +1 -1
  443. package/es/common/inversify-lite/container/container_module.js +4 -0
  444. package/es/common/inversify-lite/container/container_module.js.map +1 -1
  445. package/es/common/inversify-lite/container/lookup.js +1 -0
  446. package/es/common/inversify-lite/container/lookup.js.map +1 -1
  447. package/es/common/inversify-lite/planning/context.js +4 -0
  448. package/es/common/inversify-lite/planning/context.js.map +1 -1
  449. package/es/common/inversify-lite/planning/metadata.js +2 -0
  450. package/es/common/inversify-lite/planning/metadata.js.map +1 -1
  451. package/es/common/inversify-lite/planning/plan.js +2 -0
  452. package/es/common/inversify-lite/planning/plan.js.map +1 -1
  453. package/es/common/inversify-lite/planning/queryable_string.js +1 -0
  454. package/es/common/inversify-lite/planning/queryable_string.js.map +1 -1
  455. package/es/common/inversify-lite/planning/request.js +8 -0
  456. package/es/common/inversify-lite/planning/request.js.map +1 -1
  457. package/es/common/inversify-lite/planning/target.js +7 -0
  458. package/es/common/inversify-lite/planning/target.js.map +1 -1
  459. package/es/common/inversify-lite/resolution/instantiation.js +16 -44
  460. package/es/common/inversify-lite/resolution/instantiation.js.map +1 -1
  461. package/es/common/inversify-lite/scope/scope.js +3 -29
  462. package/es/common/inversify-lite/scope/scope.js.map +1 -1
  463. package/es/common/inversify-lite/syntax/binding_in_syntax.js +1 -0
  464. package/es/common/inversify-lite/syntax/binding_in_syntax.js.map +1 -1
  465. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js +3 -0
  466. package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +1 -1
  467. package/es/common/inversify-lite/syntax/binding_on_syntax.js +1 -0
  468. package/es/common/inversify-lite/syntax/binding_on_syntax.js.map +1 -1
  469. package/es/common/inversify-lite/syntax/binding_to_syntax.js +1 -0
  470. package/es/common/inversify-lite/syntax/binding_to_syntax.js.map +1 -1
  471. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js +2 -0
  472. package/es/common/inversify-lite/syntax/binding_when_on_syntax.js.map +1 -1
  473. package/es/common/inversify-lite/syntax/binding_when_syntax.js +1 -0
  474. package/es/common/inversify-lite/syntax/binding_when_syntax.js.map +1 -1
  475. package/es/common/polygon.js +1 -2
  476. package/es/common/polygon.js.map +1 -1
  477. package/es/common/render-area.js +2 -3
  478. package/es/common/render-area.js.map +1 -1
  479. package/es/common/render-curve.js +4 -8
  480. package/es/common/render-curve.js.map +1 -1
  481. package/es/common/seg-context.js +12 -3
  482. package/es/common/seg-context.js.map +1 -1
  483. package/es/common/segment/basis.js +13 -0
  484. package/es/common/segment/basis.js.map +1 -1
  485. package/es/common/segment/common.js +1 -1
  486. package/es/common/segment/common.js.map +1 -1
  487. package/es/common/segment/curve/arc.js +2 -1
  488. package/es/common/segment/curve/arc.js.map +1 -1
  489. package/es/common/segment/curve/base.js +4 -0
  490. package/es/common/segment/curve/base.js.map +1 -1
  491. package/es/common/segment/curve/cubic-bezier.js +2 -2
  492. package/es/common/segment/curve/cubic-bezier.js.map +1 -1
  493. package/es/common/segment/curve/curve-context.js +4 -0
  494. package/es/common/segment/curve/curve-context.js.map +1 -1
  495. package/es/common/segment/curve/ellipse.js +3 -3
  496. package/es/common/segment/curve/ellipse.js.map +1 -1
  497. package/es/common/segment/curve/line.js +2 -1
  498. package/es/common/segment/curve/line.js.map +1 -1
  499. package/es/common/segment/curve/move.js +2 -1
  500. package/es/common/segment/curve/move.js.map +1 -1
  501. package/es/common/segment/curve/path.js +2 -0
  502. package/es/common/segment/curve/path.js.map +1 -1
  503. package/es/common/segment/curve/quadratic-bezier.js +2 -2
  504. package/es/common/segment/curve/quadratic-bezier.js.map +1 -1
  505. package/es/common/segment/linear-closed.js.map +1 -1
  506. package/es/common/segment/linear.js +10 -0
  507. package/es/common/segment/linear.js.map +1 -1
  508. package/es/common/segment/monotone.js +13 -0
  509. package/es/common/segment/monotone.js.map +1 -1
  510. package/es/common/segment/step.js +12 -1
  511. package/es/common/segment/step.js.map +1 -1
  512. package/es/common/sort.js +3 -34
  513. package/es/common/sort.js.map +1 -1
  514. package/es/common/split-path.js +4 -11
  515. package/es/common/split-path.js.map +1 -1
  516. package/es/common/utils.d.ts +1 -1
  517. package/es/common/utils.js +9 -7
  518. package/es/common/utils.js.map +1 -1
  519. package/es/common/xml/parser.js +2 -2
  520. package/es/common/xml/parser.js.map +1 -1
  521. package/es/core/camera.js +11 -4
  522. package/es/core/camera.js.map +1 -1
  523. package/es/core/contributions/env/base-contribution.js +6 -0
  524. package/es/core/contributions/env/base-contribution.js.map +1 -1
  525. package/es/core/contributions/layerHandler/canvas2d-contribution.js +20 -11
  526. package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
  527. package/es/core/contributions/layerHandler/empty-contribution.js +8 -8
  528. package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
  529. package/es/core/contributions/layerHandler/offscreen2d-contribution.js +5 -6
  530. package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
  531. package/es/core/contributions/textMeasure/AtextMeasure.js +11 -8
  532. package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
  533. package/es/core/contributions/textMeasure/layout.js +3 -0
  534. package/es/core/contributions/textMeasure/layout.js.map +1 -1
  535. package/es/core/contributions/window/base-contribution.js +2 -0
  536. package/es/core/contributions/window/base-contribution.js.map +1 -1
  537. package/es/core/global.js +8 -0
  538. package/es/core/global.js.map +1 -1
  539. package/es/core/graphic-utils.js +16 -5
  540. package/es/core/graphic-utils.js.map +1 -1
  541. package/es/core/layer-service.js +7 -7
  542. package/es/core/layer-service.js.map +1 -1
  543. package/es/core/layer.js +7 -9
  544. package/es/core/layer.js.map +1 -1
  545. package/es/core/stage.js +79 -35
  546. package/es/core/stage.js.map +1 -1
  547. package/es/core/window.js +16 -14
  548. package/es/core/window.js.map +1 -1
  549. package/es/event/event-manager.js +152 -143
  550. package/es/event/event-manager.js.map +1 -1
  551. package/es/event/event-system.js +60 -43
  552. package/es/event/event-system.js.map +1 -1
  553. package/es/event/event-target.js +1 -3
  554. package/es/event/event-target.js.map +1 -1
  555. package/es/event/federated-event/base-event.js +43 -15
  556. package/es/event/federated-event/base-event.js.map +1 -1
  557. package/es/event/federated-event/mouse-event.js +27 -18
  558. package/es/event/federated-event/mouse-event.js.map +1 -1
  559. package/es/event/federated-event/pointer-event.js +13 -8
  560. package/es/event/federated-event/pointer-event.js.map +1 -1
  561. package/es/event/federated-event/wheel-event.js +13 -11
  562. package/es/event/federated-event/wheel-event.js.map +1 -1
  563. package/es/graphic/arc.js +9 -6
  564. package/es/graphic/arc.js.map +1 -1
  565. package/es/graphic/arc3d.js +6 -5
  566. package/es/graphic/arc3d.js.map +1 -1
  567. package/es/graphic/area.js +13 -10
  568. package/es/graphic/area.js.map +1 -1
  569. package/es/graphic/builtin-symbol/arrow.js +2 -3
  570. package/es/graphic/builtin-symbol/arrow.js.map +1 -1
  571. package/es/graphic/builtin-symbol/arrow2-down.js +2 -3
  572. package/es/graphic/builtin-symbol/arrow2-down.js.map +1 -1
  573. package/es/graphic/builtin-symbol/arrow2-left.js +2 -3
  574. package/es/graphic/builtin-symbol/arrow2-left.js.map +1 -1
  575. package/es/graphic/builtin-symbol/arrow2-right.js +2 -3
  576. package/es/graphic/builtin-symbol/arrow2-right.js.map +1 -1
  577. package/es/graphic/builtin-symbol/arrow2-up.js +2 -3
  578. package/es/graphic/builtin-symbol/arrow2-up.js.map +1 -1
  579. package/es/graphic/builtin-symbol/circle.js +2 -3
  580. package/es/graphic/builtin-symbol/circle.js.map +1 -1
  581. package/es/graphic/builtin-symbol/close.js +2 -3
  582. package/es/graphic/builtin-symbol/close.js.map +1 -1
  583. package/es/graphic/builtin-symbol/cross.js +2 -3
  584. package/es/graphic/builtin-symbol/cross.js.map +1 -1
  585. package/es/graphic/builtin-symbol/diamond.js +2 -3
  586. package/es/graphic/builtin-symbol/diamond.js.map +1 -1
  587. package/es/graphic/builtin-symbol/line-h.js +2 -3
  588. package/es/graphic/builtin-symbol/line-h.js.map +1 -1
  589. package/es/graphic/builtin-symbol/line-v.js +2 -3
  590. package/es/graphic/builtin-symbol/line-v.js.map +1 -1
  591. package/es/graphic/builtin-symbol/rect.js +2 -3
  592. package/es/graphic/builtin-symbol/rect.js.map +1 -1
  593. package/es/graphic/builtin-symbol/square.js +2 -3
  594. package/es/graphic/builtin-symbol/square.js.map +1 -1
  595. package/es/graphic/builtin-symbol/star.js +2 -3
  596. package/es/graphic/builtin-symbol/star.js.map +1 -1
  597. package/es/graphic/builtin-symbol/stroke.js +2 -3
  598. package/es/graphic/builtin-symbol/stroke.js.map +1 -1
  599. package/es/graphic/builtin-symbol/thin-triangle.js +2 -3
  600. package/es/graphic/builtin-symbol/thin-triangle.js.map +1 -1
  601. package/es/graphic/builtin-symbol/triangle-down.js +2 -3
  602. package/es/graphic/builtin-symbol/triangle-down.js.map +1 -1
  603. package/es/graphic/builtin-symbol/triangle-left.js +2 -3
  604. package/es/graphic/builtin-symbol/triangle-left.js.map +1 -1
  605. package/es/graphic/builtin-symbol/triangle-right.js +2 -3
  606. package/es/graphic/builtin-symbol/triangle-right.js.map +1 -1
  607. package/es/graphic/builtin-symbol/triangle-up.js +2 -3
  608. package/es/graphic/builtin-symbol/triangle-up.js.map +1 -1
  609. package/es/graphic/builtin-symbol/triangle.js +1 -3
  610. package/es/graphic/builtin-symbol/triangle.js.map +1 -1
  611. package/es/graphic/builtin-symbol/utils.js +6 -2
  612. package/es/graphic/builtin-symbol/utils.js.map +1 -1
  613. package/es/graphic/builtin-symbol/wedge.js +2 -3
  614. package/es/graphic/builtin-symbol/wedge.js.map +1 -1
  615. package/es/graphic/builtin-symbol/wye.js +2 -3
  616. package/es/graphic/builtin-symbol/wye.js.map +1 -1
  617. package/es/graphic/circle.js +7 -6
  618. package/es/graphic/circle.js.map +1 -1
  619. package/es/graphic/config.js +73 -44
  620. package/es/graphic/config.js.map +1 -1
  621. package/es/graphic/glyph.js +9 -9
  622. package/es/graphic/glyph.js.map +1 -1
  623. package/es/graphic/graphic-service/graphic-service.js +12 -8
  624. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  625. package/es/graphic/graphic.d.ts +1 -0
  626. package/es/graphic/graphic.js +32 -42
  627. package/es/graphic/graphic.js.map +1 -1
  628. package/es/graphic/group.js +8 -5
  629. package/es/graphic/group.js.map +1 -1
  630. package/es/graphic/image.js +17 -16
  631. package/es/graphic/image.js.map +1 -1
  632. package/es/graphic/line.js +10 -7
  633. package/es/graphic/line.js.map +1 -1
  634. package/es/graphic/node-tree.js +25 -44
  635. package/es/graphic/node-tree.js.map +1 -1
  636. package/es/graphic/path.js +11 -7
  637. package/es/graphic/path.js.map +1 -1
  638. package/es/graphic/polygon.js +6 -4
  639. package/es/graphic/polygon.js.map +1 -1
  640. package/es/graphic/pyramid3d.js +3 -3
  641. package/es/graphic/pyramid3d.js.map +1 -1
  642. package/es/graphic/rect.js +6 -4
  643. package/es/graphic/rect.js.map +1 -1
  644. package/es/graphic/rect3d.js +4 -4
  645. package/es/graphic/rect3d.js.map +1 -1
  646. package/es/graphic/richtext/frame.js +19 -0
  647. package/es/graphic/richtext/frame.js.map +1 -1
  648. package/es/graphic/richtext/icon.js +14 -6
  649. package/es/graphic/richtext/icon.js.map +1 -1
  650. package/es/graphic/richtext/line.js +14 -2
  651. package/es/graphic/richtext/line.js.map +1 -1
  652. package/es/graphic/richtext/paragraph.js +22 -0
  653. package/es/graphic/richtext/paragraph.js.map +1 -1
  654. package/es/graphic/richtext/utils.js +1 -2
  655. package/es/graphic/richtext/utils.js.map +1 -1
  656. package/es/graphic/richtext/wrapper.js +12 -0
  657. package/es/graphic/richtext/wrapper.js.map +1 -1
  658. package/es/graphic/richtext.js +37 -46
  659. package/es/graphic/richtext.js.map +1 -1
  660. package/es/graphic/shadow-root.js +2 -1
  661. package/es/graphic/shadow-root.js.map +1 -1
  662. package/es/graphic/symbol.js +11 -6
  663. package/es/graphic/symbol.js.map +1 -1
  664. package/es/graphic/text.js +39 -40
  665. package/es/graphic/text.js.map +1 -1
  666. package/es/graphic/theme.js +4 -0
  667. package/es/graphic/theme.js.map +1 -1
  668. package/es/graphic/tools.js +16 -44
  669. package/es/graphic/tools.js.map +1 -1
  670. package/es/graphic/wrap-text.js +6 -6
  671. package/es/graphic/wrap-text.js.map +1 -1
  672. package/es/interface/global.d.ts +2 -1
  673. package/es/interface/global.js.map +1 -1
  674. package/es/interface/graphic.d.ts +1 -0
  675. package/es/interface/graphic.js.map +1 -1
  676. package/es/picker/global-picker-service.js +1 -0
  677. package/es/picker/global-picker-service.js.map +1 -1
  678. package/es/picker/pick-interceptor.js +5 -15
  679. package/es/picker/pick-interceptor.js.map +1 -1
  680. package/es/picker/picker-service.js +5 -5
  681. package/es/picker/picker-service.js.map +1 -1
  682. package/es/plugins/builtin-plugin/3dview-transform-plugin.js +26 -20
  683. package/es/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
  684. package/es/plugins/builtin-plugin/auto-render-plugin.js +5 -4
  685. package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
  686. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +5 -4
  687. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  688. package/es/plugins/builtin-plugin/flex-layout-plugin.js +11 -8
  689. package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
  690. package/es/plugins/builtin-plugin/html-attribute-plugin.js +28 -17
  691. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  692. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js +12 -8
  693. package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
  694. package/es/plugins/builtin-plugin/react-attribute-plugin.js +6 -6
  695. package/es/plugins/builtin-plugin/react-attribute-plugin.js.map +1 -1
  696. package/es/plugins/plugin-service.js +1 -0
  697. package/es/plugins/plugin-service.js.map +1 -1
  698. package/es/render/contributions/render/arc-render.js +6 -4
  699. package/es/render/contributions/render/arc-render.js.map +1 -1
  700. package/es/render/contributions/render/arc3d-render.js +5 -7
  701. package/es/render/contributions/render/arc3d-render.js.map +1 -1
  702. package/es/render/contributions/render/area-render.js +21 -23
  703. package/es/render/contributions/render/area-render.js.map +1 -1
  704. package/es/render/contributions/render/base-render.js +5 -0
  705. package/es/render/contributions/render/base-render.js.map +1 -1
  706. package/es/render/contributions/render/circle-render.js +6 -4
  707. package/es/render/contributions/render/circle-render.js.map +1 -1
  708. package/es/render/contributions/render/contributions/arc-contribution-render.js +3 -3
  709. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  710. package/es/render/contributions/render/contributions/area-texture-contribution-render.js +2 -5
  711. package/es/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -1
  712. package/es/render/contributions/render/contributions/base-contribution-render.js +10 -7
  713. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  714. package/es/render/contributions/render/contributions/base-texture-contribution-render.js +4 -3
  715. package/es/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -1
  716. package/es/render/contributions/render/contributions/circle-contribution-render.js +3 -3
  717. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  718. package/es/render/contributions/render/contributions/group-contribution-render.js +1 -3
  719. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  720. package/es/render/contributions/render/contributions/image-contribution-render.js +1 -3
  721. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  722. package/es/render/contributions/render/contributions/rect-contribution-render.js +11 -11
  723. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  724. package/es/render/contributions/render/contributions/symbol-contribution-render.js +3 -3
  725. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  726. package/es/render/contributions/render/contributions/text-contribution-render.js +6 -8
  727. package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
  728. package/es/render/contributions/render/draw-contribution.js +12 -14
  729. package/es/render/contributions/render/draw-contribution.js.map +1 -1
  730. package/es/render/contributions/render/draw-interceptor.js +11 -21
  731. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  732. package/es/render/contributions/render/glyph-render.js +2 -3
  733. package/es/render/contributions/render/glyph-render.js.map +1 -1
  734. package/es/render/contributions/render/graphic-render.js +4 -1
  735. package/es/render/contributions/render/graphic-render.js.map +1 -1
  736. package/es/render/contributions/render/group-render.js +7 -3
  737. package/es/render/contributions/render/group-render.js.map +1 -1
  738. package/es/render/contributions/render/image-render.js +5 -2
  739. package/es/render/contributions/render/image-render.js.map +1 -1
  740. package/es/render/contributions/render/incremental-area-render.js +1 -3
  741. package/es/render/contributions/render/incremental-area-render.js.map +1 -1
  742. package/es/render/contributions/render/incremental-draw-contribution.js +80 -109
  743. package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
  744. package/es/render/contributions/render/incremental-line-render.js +1 -3
  745. package/es/render/contributions/render/incremental-line-render.js.map +1 -1
  746. package/es/render/contributions/render/line-render.js +12 -16
  747. package/es/render/contributions/render/line-render.js.map +1 -1
  748. package/es/render/contributions/render/path-render.js +8 -6
  749. package/es/render/contributions/render/path-render.js.map +1 -1
  750. package/es/render/contributions/render/polygon-render.js +6 -4
  751. package/es/render/contributions/render/polygon-render.js.map +1 -1
  752. package/es/render/contributions/render/pyramid3d-render.js +3 -5
  753. package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
  754. package/es/render/contributions/render/rect-render.js +8 -6
  755. package/es/render/contributions/render/rect-render.js.map +1 -1
  756. package/es/render/contributions/render/rect3d-render.js +5 -7
  757. package/es/render/contributions/render/rect3d-render.js.map +1 -1
  758. package/es/render/contributions/render/richtext-render.js +4 -3
  759. package/es/render/contributions/render/richtext-render.js.map +1 -1
  760. package/es/render/contributions/render/symbol-render.js +11 -14
  761. package/es/render/contributions/render/symbol-render.js.map +1 -1
  762. package/es/render/contributions/render/text-render.js +9 -8
  763. package/es/render/contributions/render/text-render.js.map +1 -1
  764. package/es/render/contributions/render/utils.js +1 -1
  765. package/es/render/contributions/render/utils.js.map +1 -1
  766. package/es/render/render-service.js +11 -2
  767. package/es/render/render-service.js.map +1 -1
  768. package/es/resource-loader/loader.js +12 -17
  769. package/es/resource-loader/loader.js.map +1 -1
  770. package/es/tapable/Hook.js +3 -0
  771. package/es/tapable/Hook.js.map +1 -1
  772. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/inversify/meta-data.ts"],"names":[],"mappings":";;;AAAA,mDAA4C;AAE5C,MAAa,QAAQ;IAInB,YAAY,GAA6B,EAAE,KAAc;QACvD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,GAAG,KAAK,yBAAS,EAAE;YAC1B,OAAO,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC;SACnD;QACD,OAAO,iBAAiB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAChF,CAAC;CACF;AAfD,4BAeC","file":"meta-data.js","sourcesContent":["import { NAMED_TAG } from './metadata_keys';\n\nexport class Metadata {\n key: string | number | symbol;\n value: unknown;\n\n constructor(key: string | number | symbol, value: unknown) {\n this.key = key;\n this.value = value;\n }\n\n toString() {\n if (this.key === NAMED_TAG) {\n return `named: ${String(this.value).toString()} `;\n }\n return `tagged: { key:${this.key.toString()}, value: ${String(this.value)} }`;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/inversify/meta-data.ts"],"names":[],"mappings":";;;AAAA,mDAA4C;AAE5C,MAAa,QAAQ;IACnB,GAAG,CAA2B;IAC9B,KAAK,CAAU;IAEf,YAAY,GAA6B,EAAE,KAAc;QACvD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,GAAG,KAAK,yBAAS,EAAE;YAC1B,OAAO,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC;SACnD;QACD,OAAO,iBAAiB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAChF,CAAC;CACF;AAfD,4BAeC","file":"meta-data.js","sourcesContent":["import { NAMED_TAG } from './metadata_keys';\n\nexport class Metadata {\n key: string | number | symbol;\n value: unknown;\n\n constructor(key: string | number | symbol, value: unknown) {\n this.key = key;\n this.value = value;\n }\n\n toString() {\n if (this.key === NAMED_TAG) {\n return `named: ${String(this.value).toString()} `;\n }\n return `tagged: { key:${this.key.toString()}, value: ${String(this.value)} }`;\n }\n}\n"]}
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const literal_types_1 = require("../literal_types"), constraint_helpers_1 = require("./constraint_helpers");
8
8
 
9
9
  class BindingInSyntax {
10
+ _binding;
10
11
  constructor(binding) {
11
12
  this._binding = binding;
12
13
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/inversify/syntax/binding_in_syntax.ts"],"names":[],"mappings":";;;AACA,oDAAoD;AACpD,6DAAuD;AAEvD,MAAM,eAAe;IAGnB,YAAY,OAA8B;QACxC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,cAAc;QAGZ,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,IAA8B;QAC5C,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAA,oCAAe,EAAC,IAAI,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAEQ,0CAAe","file":"binding_in_syntax.js","sourcesContent":["import type { interfaces } from '../interfaces';\nimport { BindingScopeEnum } from '../literal_types';\nimport { namedConstraint } from './constraint_helpers';\n\nclass BindingInSyntax<T> implements interfaces.BindingInSyntax<T> {\n private _binding: interfaces.Binding<T>;\n\n constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n inRequestScope(): interfaces.BindingInSyntax<T> {\n // this._binding.scope = BindingScopeEnum.Request;\n // return new BindingWhenOnSyntax<T>(this._binding);\n throw new Error('暂未实现');\n }\n\n inSingletonScope(): interfaces.BindingInSyntax<T> {\n this._binding.scope = BindingScopeEnum.Singleton;\n return this;\n }\n\n inTransientScope(): interfaces.BindingInSyntax<T> {\n this._binding.scope = BindingScopeEnum.Transient;\n return this;\n }\n\n whenTargetNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = namedConstraint(name);\n return this;\n }\n}\n\nexport { BindingInSyntax };\n"]}
1
+ {"version":3,"sources":["../src/common/inversify/syntax/binding_in_syntax.ts"],"names":[],"mappings":";;;AACA,oDAAoD;AACpD,6DAAuD;AAEvD,MAAM,eAAe;IACX,QAAQ,CAAwB;IAExC,YAAY,OAA8B;QACxC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,cAAc;QAGZ,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,IAA8B;QAC5C,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAA,oCAAe,EAAC,IAAI,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAEQ,0CAAe","file":"binding_in_syntax.js","sourcesContent":["import type { interfaces } from '../interfaces';\nimport { BindingScopeEnum } from '../literal_types';\nimport { namedConstraint } from './constraint_helpers';\n\nclass BindingInSyntax<T> implements interfaces.BindingInSyntax<T> {\n private _binding: interfaces.Binding<T>;\n\n constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n inRequestScope(): interfaces.BindingInSyntax<T> {\n // this._binding.scope = BindingScopeEnum.Request;\n // return new BindingWhenOnSyntax<T>(this._binding);\n throw new Error('暂未实现');\n }\n\n inSingletonScope(): interfaces.BindingInSyntax<T> {\n this._binding.scope = BindingScopeEnum.Singleton;\n return this;\n }\n\n inTransientScope(): interfaces.BindingInSyntax<T> {\n this._binding.scope = BindingScopeEnum.Transient;\n return this;\n }\n\n whenTargetNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = namedConstraint(name);\n return this;\n }\n}\n\nexport { BindingInSyntax };\n"]}
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const literal_types_1 = require("../literal_types"), binding_in_syntax_1 = require("./binding_in_syntax");
8
8
 
9
9
  class BindingToSyntax {
10
+ _binding;
10
11
  constructor(binding) {
11
12
  this._binding = binding;
12
13
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/inversify/syntax/binding_to_syntax.ts"],"names":[],"mappings":";;;AACA,oDAAqE;AACrE,2DAAsD;AAEtD,MAAM,eAAe;IAMnB,YAAY,OAA8B;QACxC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,EAAE,CAAC,WAAkC;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,+BAAe,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,WAAW,CAAC;QAC/C,OAAO,IAAI,mCAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC7C,OAAO,IAAI,CAAC,EAAE,CAAC,IAAW,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc,CAAC,IAAgC;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,+BAAe,CAAC,YAAY,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACxC,OAAO,IAAI,mCAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,eAAe,CAAC,KAAQ;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,+BAAe,CAAC,aAAa,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,mCAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAK,OAAsC;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,+BAAe,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,mCAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,OAAyE;QACjF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAI,OAAO,CAAC,CAAC,CAAC;IACpE,CAAC;CACF;AAEQ,0CAAe","file":"binding_to_syntax.js","sourcesContent":["import type { interfaces } from '../interfaces';\nimport { BindingScopeEnum, BindingTypeEnum } from '../literal_types';\nimport { BindingInSyntax } from './binding_in_syntax';\n\nclass BindingToSyntax<T> implements interfaces.BindingToSyntax<T> {\n // TODO: Implement an internal type `_BindingToSyntax<T>` wherein this member\n // can be public. Let `BindingToSyntax<T>` be the presentational type that\n // depends on it, and does not expose this member as public.\n private _binding: interfaces.Binding<T>;\n\n constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n to(constructor: interfaces.Newable<T>): interfaces.BindingInWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Instance;\n this._binding.implementationType = constructor;\n return new BindingInSyntax<T>(this._binding);\n }\n\n toSelf(): interfaces.BindingInWhenOnSyntax<T> {\n const self = this._binding.serviceIdentifier;\n return this.to(self as any);\n }\n\n toDynamicValue(func: interfaces.DynamicValue<T>): interfaces.BindingInWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.DynamicValue;\n this._binding.cache = null;\n this._binding.dynamicValue = func;\n this._binding.implementationType = null;\n return new BindingInSyntax<T>(this._binding);\n }\n\n toConstantValue(value: T): interfaces.BindingInSyntax<T> {\n this._binding.type = BindingTypeEnum.ConstantValue;\n this._binding.cache = value;\n this._binding.dynamicValue = null;\n this._binding.implementationType = null;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingInSyntax<T>(this._binding);\n }\n\n toFactory<T2>(factory: interfaces.FactoryCreator<T2>): interfaces.BindingInWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Factory;\n this._binding.factory = factory;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingInSyntax<T>(this._binding);\n }\n\n toService(service: string | symbol | interfaces.Newable<T> | interfaces.Abstract<T>): void {\n this.toDynamicValue(context => context.container.get<T>(service));\n }\n}\n\nexport { BindingToSyntax };\n"]}
1
+ {"version":3,"sources":["../src/common/inversify/syntax/binding_to_syntax.ts"],"names":[],"mappings":";;;AACA,oDAAqE;AACrE,2DAAsD;AAEtD,MAAM,eAAe;IAIX,QAAQ,CAAwB;IAExC,YAAY,OAA8B;QACxC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,EAAE,CAAC,WAAkC;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,+BAAe,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,WAAW,CAAC;QAC/C,OAAO,IAAI,mCAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC7C,OAAO,IAAI,CAAC,EAAE,CAAC,IAAW,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc,CAAC,IAAgC;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,+BAAe,CAAC,YAAY,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACxC,OAAO,IAAI,mCAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,eAAe,CAAC,KAAQ;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,+BAAe,CAAC,aAAa,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,mCAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAK,OAAsC;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,+BAAe,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gCAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,mCAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,OAAyE;QACjF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAI,OAAO,CAAC,CAAC,CAAC;IACpE,CAAC;CACF;AAEQ,0CAAe","file":"binding_to_syntax.js","sourcesContent":["import type { interfaces } from '../interfaces';\nimport { BindingScopeEnum, BindingTypeEnum } from '../literal_types';\nimport { BindingInSyntax } from './binding_in_syntax';\n\nclass BindingToSyntax<T> implements interfaces.BindingToSyntax<T> {\n // TODO: Implement an internal type `_BindingToSyntax<T>` wherein this member\n // can be public. Let `BindingToSyntax<T>` be the presentational type that\n // depends on it, and does not expose this member as public.\n private _binding: interfaces.Binding<T>;\n\n constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n to(constructor: interfaces.Newable<T>): interfaces.BindingInWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Instance;\n this._binding.implementationType = constructor;\n return new BindingInSyntax<T>(this._binding);\n }\n\n toSelf(): interfaces.BindingInWhenOnSyntax<T> {\n const self = this._binding.serviceIdentifier;\n return this.to(self as any);\n }\n\n toDynamicValue(func: interfaces.DynamicValue<T>): interfaces.BindingInWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.DynamicValue;\n this._binding.cache = null;\n this._binding.dynamicValue = func;\n this._binding.implementationType = null;\n return new BindingInSyntax<T>(this._binding);\n }\n\n toConstantValue(value: T): interfaces.BindingInSyntax<T> {\n this._binding.type = BindingTypeEnum.ConstantValue;\n this._binding.cache = value;\n this._binding.dynamicValue = null;\n this._binding.implementationType = null;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingInSyntax<T>(this._binding);\n }\n\n toFactory<T2>(factory: interfaces.FactoryCreator<T2>): interfaces.BindingInWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Factory;\n this._binding.factory = factory;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingInSyntax<T>(this._binding);\n }\n\n toService(service: string | symbol | interfaces.Newable<T> | interfaces.Abstract<T>): void {\n this.toDynamicValue(context => context.container.get<T>(service));\n }\n}\n\nexport { BindingToSyntax };\n"]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  }), exports.LazyServiceIdentifer = void 0;
6
6
 
7
7
  class LazyServiceIdentifer {
8
+ _cb;
8
9
  constructor(cb) {
9
10
  this._cb = cb;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/inversify-lite/annotation/lazy_service_identifier.ts"],"names":[],"mappings":";;;AAIA,MAAa,oBAAoB;IAE/B,YAAY,EAAyC;QACnD,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;CACF;AATD,oDASC","file":"lazy_service_identifier.js","sourcesContent":["import type { interfaces } from '../interfaces/interfaces';\n\nexport type ServiceIdentifierOrFunc<T> = interfaces.ServiceIdentifier<T> | LazyServiceIdentifer<T>;\n\nexport class LazyServiceIdentifer<T = unknown> {\n private _cb: () => interfaces.ServiceIdentifier<T>;\n constructor(cb: () => interfaces.ServiceIdentifier<T>) {\n this._cb = cb;\n }\n\n unwrap() {\n return this._cb();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/inversify-lite/annotation/lazy_service_identifier.ts"],"names":[],"mappings":";;;AAIA,MAAa,oBAAoB;IACvB,GAAG,CAAwC;IACnD,YAAY,EAAyC;QACnD,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;CACF;AATD,oDASC","file":"lazy_service_identifier.js","sourcesContent":["import type { interfaces } from '../interfaces/interfaces';\n\nexport type ServiceIdentifierOrFunc<T> = interfaces.ServiceIdentifier<T> | LazyServiceIdentifer<T>;\n\nexport class LazyServiceIdentifer<T = unknown> {\n private _cb: () => interfaces.ServiceIdentifier<T>;\n constructor(cb: () => interfaces.ServiceIdentifier<T>) {\n this._cb = cb;\n }\n\n unwrap() {\n return this._cb();\n }\n}\n"]}
@@ -7,6 +7,20 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const literal_types_1 = require("../constants/literal_types"), id_1 = require("../utils/id");
8
8
 
9
9
  class Binding {
10
+ id;
11
+ moduleId;
12
+ activated;
13
+ serviceIdentifier;
14
+ implementationType;
15
+ cache;
16
+ dynamicValue;
17
+ scope;
18
+ type;
19
+ factory;
20
+ provider;
21
+ constraint;
22
+ onActivation;
23
+ onDeactivation;
10
24
  constructor(serviceIdentifier, scope) {
11
25
  this.id = (0, id_1.id)(), this.activated = !1, this.serviceIdentifier = serviceIdentifier,
12
26
  this.scope = scope, this.type = literal_types_1.BindingTypeEnum.Invalid, this.constraint = request => !0,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/inversify-lite/bindings/binding.ts"],"names":[],"mappings":";;;AAAA,8DAA+E;AAE/E,oCAAiC;AAEjC,MAAM,OAAO;IA0CX,YAAY,iBAA2D,EAAE,KAA8B;QACrG,IAAI,CAAC,EAAE,GAAG,IAAA,OAAE,GAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,+BAAe,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,CAAC,OAAkC,EAAE,EAAE,CAAC,IAAI,CAAC;QAC/D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,KAAK,gCAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QACtF,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAEQ,0BAAO","file":"binding.js","sourcesContent":["import { BindingScopeEnum, BindingTypeEnum } from '../constants/literal_types';\nimport type { interfaces } from '../interfaces/interfaces';\nimport { id } from '../utils/id';\n\nclass Binding<TActivated> implements interfaces.Binding<TActivated> {\n id: number;\n moduleId!: interfaces.ContainerModuleBase['id'];\n\n // Determines weather the bindings has been already activated\n // The activation action takes place when an instance is resolved\n // If the scope is singleton it only happens once\n activated: boolean;\n\n // A runtime identifier because at runtime we don't have interfaces\n serviceIdentifier: interfaces.ServiceIdentifier<TActivated>;\n\n // constructor from binding to or toConstructor\n implementationType: interfaces.Newable<TActivated> | TActivated | null;\n\n // Cache used to allow singleton scope and BindingType.ConstantValue bindings\n cache: TActivated | Promise<TActivated> | null;\n\n // Cache used to allow BindingType.DynamicValue bindings\n dynamicValue: interfaces.DynamicValue<TActivated> | null;\n\n // The scope mode to be used\n scope: interfaces.BindingScope;\n\n // The kind of binding\n type: interfaces.BindingType;\n\n // A factory method used in BindingType.Factory bindings\n factory: interfaces.FactoryCreator<unknown> | null;\n\n // An async factory method used in BindingType.Provider bindings\n provider: interfaces.ProviderCreator<unknown> | null;\n\n // A constraint used to limit the contexts in which this binding is applicable\n constraint: interfaces.ConstraintFunction;\n\n // On activation handler (invoked just before an instance is added to cache and injected)\n onActivation: interfaces.BindingActivation<TActivated> | null;\n\n // On deactivation handler (invoked just before an instance is unbinded and removed from container)\n onDeactivation: interfaces.BindingDeactivation<TActivated> | null;\n\n constructor(serviceIdentifier: interfaces.ServiceIdentifier<TActivated>, scope: interfaces.BindingScope) {\n this.id = id();\n this.activated = false;\n this.serviceIdentifier = serviceIdentifier;\n this.scope = scope;\n this.type = BindingTypeEnum.Invalid;\n this.constraint = (request: interfaces.Request | null) => true;\n this.implementationType = null;\n this.cache = null;\n this.factory = null;\n this.provider = null;\n this.onActivation = null;\n this.onDeactivation = null;\n this.dynamicValue = null;\n }\n\n clone(): interfaces.Binding<TActivated> {\n const clone = new Binding(this.serviceIdentifier, this.scope);\n clone.activated = clone.scope === BindingScopeEnum.Singleton ? this.activated : false;\n clone.implementationType = this.implementationType;\n clone.dynamicValue = this.dynamicValue;\n clone.scope = this.scope;\n clone.type = this.type;\n clone.factory = this.factory;\n clone.provider = this.provider;\n clone.constraint = this.constraint;\n clone.onActivation = this.onActivation;\n clone.onDeactivation = this.onDeactivation;\n clone.cache = this.cache;\n return clone;\n }\n}\n\nexport { Binding };\n"]}
1
+ {"version":3,"sources":["../src/common/inversify-lite/bindings/binding.ts"],"names":[],"mappings":";;;AAAA,8DAA+E;AAE/E,oCAAiC;AAEjC,MAAM,OAAO;IACX,EAAE,CAAS;IACX,QAAQ,CAAwC;IAKhD,SAAS,CAAU;IAGnB,iBAAiB,CAA2C;IAG5D,kBAAkB,CAAqD;IAGvE,KAAK,CAA0C;IAG/C,YAAY,CAA6C;IAGzD,KAAK,CAA0B;IAG/B,IAAI,CAAyB;IAG7B,OAAO,CAA4C;IAGnD,QAAQ,CAA6C;IAGrD,UAAU,CAAgC;IAG1C,YAAY,CAAkD;IAG9D,cAAc,CAAoD;IAElE,YAAY,iBAA2D,EAAE,KAA8B;QACrG,IAAI,CAAC,EAAE,GAAG,IAAA,OAAE,GAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,+BAAe,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,CAAC,OAAkC,EAAE,EAAE,CAAC,IAAI,CAAC;QAC/D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,KAAK,gCAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QACtF,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAEQ,0BAAO","file":"binding.js","sourcesContent":["import { BindingScopeEnum, BindingTypeEnum } from '../constants/literal_types';\nimport type { interfaces } from '../interfaces/interfaces';\nimport { id } from '../utils/id';\n\nclass Binding<TActivated> implements interfaces.Binding<TActivated> {\n id: number;\n moduleId!: interfaces.ContainerModuleBase['id'];\n\n // Determines weather the bindings has been already activated\n // The activation action takes place when an instance is resolved\n // If the scope is singleton it only happens once\n activated: boolean;\n\n // A runtime identifier because at runtime we don't have interfaces\n serviceIdentifier: interfaces.ServiceIdentifier<TActivated>;\n\n // constructor from binding to or toConstructor\n implementationType: interfaces.Newable<TActivated> | TActivated | null;\n\n // Cache used to allow singleton scope and BindingType.ConstantValue bindings\n cache: TActivated | Promise<TActivated> | null;\n\n // Cache used to allow BindingType.DynamicValue bindings\n dynamicValue: interfaces.DynamicValue<TActivated> | null;\n\n // The scope mode to be used\n scope: interfaces.BindingScope;\n\n // The kind of binding\n type: interfaces.BindingType;\n\n // A factory method used in BindingType.Factory bindings\n factory: interfaces.FactoryCreator<unknown> | null;\n\n // An async factory method used in BindingType.Provider bindings\n provider: interfaces.ProviderCreator<unknown> | null;\n\n // A constraint used to limit the contexts in which this binding is applicable\n constraint: interfaces.ConstraintFunction;\n\n // On activation handler (invoked just before an instance is added to cache and injected)\n onActivation: interfaces.BindingActivation<TActivated> | null;\n\n // On deactivation handler (invoked just before an instance is unbinded and removed from container)\n onDeactivation: interfaces.BindingDeactivation<TActivated> | null;\n\n constructor(serviceIdentifier: interfaces.ServiceIdentifier<TActivated>, scope: interfaces.BindingScope) {\n this.id = id();\n this.activated = false;\n this.serviceIdentifier = serviceIdentifier;\n this.scope = scope;\n this.type = BindingTypeEnum.Invalid;\n this.constraint = (request: interfaces.Request | null) => true;\n this.implementationType = null;\n this.cache = null;\n this.factory = null;\n this.provider = null;\n this.onActivation = null;\n this.onDeactivation = null;\n this.dynamicValue = null;\n }\n\n clone(): interfaces.Binding<TActivated> {\n const clone = new Binding(this.serviceIdentifier, this.scope);\n clone.activated = clone.scope === BindingScopeEnum.Singleton ? this.activated : false;\n clone.implementationType = this.implementationType;\n clone.dynamicValue = this.dynamicValue;\n clone.scope = this.scope;\n clone.type = this.type;\n clone.factory = this.factory;\n clone.provider = this.provider;\n clone.constraint = this.constraint;\n clone.onActivation = this.onActivation;\n clone.onDeactivation = this.onDeactivation;\n clone.cache = this.cache;\n return clone;\n }\n}\n\nexport { Binding };\n"]}
@@ -23,30 +23,6 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
23
23
  var result = {};
24
24
  if (null != mod) for (var k in mod) "default" !== k && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k);
25
25
  return __setModuleDefault(result, mod), result;
26
- }, __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
27
- return new (P || (P = Promise))((function(resolve, reject) {
28
- function fulfilled(value) {
29
- try {
30
- step(generator.next(value));
31
- } catch (e) {
32
- reject(e);
33
- }
34
- }
35
- function rejected(value) {
36
- try {
37
- step(generator.throw(value));
38
- } catch (e) {
39
- reject(e);
40
- }
41
- }
42
- function step(result) {
43
- var value;
44
- result.done ? resolve(result.value) : (value = result.value, value instanceof P ? value : new P((function(resolve) {
45
- resolve(value);
46
- }))).then(fulfilled, rejected);
47
- }
48
- step((generator = generator.apply(thisArg, _arguments || [])).next());
49
- }));
50
26
  }, __importDefault = this && this.__importDefault || function(mod) {
51
27
  return mod && mod.__esModule ? mod : {
52
28
  default: mod
@@ -60,6 +36,11 @@ Object.defineProperty(exports, "__esModule", {
60
36
  const binding_1 = require("../bindings/binding"), ERROR_MSGS = __importStar(require("../constants/error_msgs")), literal_types_1 = require("../constants/literal_types"), METADATA_KEY = __importStar(require("../constants/metadata_keys")), metadata_reader_1 = require("../planning/metadata_reader"), planner_1 = require("../planning/planner"), resolver_1 = require("../resolution/resolver"), binding_to_syntax_1 = require("../syntax/binding_to_syntax"), async_1 = require("../utils/async"), id_1 = require("../utils/id"), serialization_1 = require("../utils/serialization"), lookup_1 = require("./lookup"), Reflect_metadata_1 = __importDefault(require("../../Reflect-metadata"));
61
37
 
62
38
  class Container {
39
+ id;
40
+ parent;
41
+ options;
42
+ _bindingDictionary;
43
+ _metadataReader;
63
44
  static merge(container1, container2, ...containers) {
64
45
  const container = new Container, targetContainers = [ container1, container2, ...containers ].map((targetContainer => (0,
65
46
  planner_1.getBindingDictionary)(targetContainer))), bindingDictionary = (0, planner_1.getBindingDictionary)(container);
@@ -144,11 +125,9 @@ class Container {
144
125
  const getArgs = this._getNotAllArgs(serviceIdentifier, !1);
145
126
  return this._getButThrowIfAsync(getArgs);
146
127
  }
147
- getAsync(serviceIdentifier) {
148
- return __awaiter(this, void 0, void 0, (function*() {
149
- const getArgs = this._getNotAllArgs(serviceIdentifier, !1);
150
- return this._get(getArgs);
151
- }));
128
+ async getAsync(serviceIdentifier) {
129
+ const getArgs = this._getNotAllArgs(serviceIdentifier, !1);
130
+ return this._get(getArgs);
152
131
  }
153
132
  getTagged(serviceIdentifier, key, value) {
154
133
  const getArgs = this._getNotAllArgs(serviceIdentifier, !1, key, value);
@@ -175,9 +154,9 @@ class Container {
175
154
  return isBound || this.unbind(constructorFunction), resolved;
176
155
  }
177
156
  _preDestroy(constructor, instance) {
178
- var _a, _b;
179
157
  if (Reflect_metadata_1.default.hasMetadata(METADATA_KEY.PRE_DESTROY, constructor)) {
180
- return null === (_b = (_a = instance)[Reflect_metadata_1.default.getMetadata(METADATA_KEY.PRE_DESTROY, constructor).value]) || void 0 === _b ? void 0 : _b.call(_a);
158
+ const data = Reflect_metadata_1.default.getMetadata(METADATA_KEY.PRE_DESTROY, constructor);
159
+ return instance[data.value]?.();
181
160
  }
182
161
  }
183
162
  _removeModuleBindings(moduleId) {
@@ -192,14 +171,12 @@ class Container {
192
171
  if (ex instanceof Error) throw new Error(ERROR_MSGS.ON_DEACTIVATION_ERROR(constructor.name, ex.message));
193
172
  }
194
173
  }
195
- _handleDeactivationError(asyncResult, constructor) {
196
- return __awaiter(this, void 0, void 0, (function*() {
197
- try {
198
- yield asyncResult;
199
- } catch (ex) {
200
- if (ex instanceof Error) throw new Error(ERROR_MSGS.ON_DEACTIVATION_ERROR(constructor.name, ex.message));
201
- }
202
- }));
174
+ async _handleDeactivationError(asyncResult, constructor) {
175
+ try {
176
+ await asyncResult;
177
+ } catch (ex) {
178
+ if (ex instanceof Error) throw new Error(ERROR_MSGS.ON_DEACTIVATION_ERROR(constructor.name, ex.message));
179
+ }
203
180
  }
204
181
  _getContainerModuleHelpersFactory() {
205
182
  const setModuleId = (bindingToSyntax, moduleId) => {
@@ -220,10 +197,11 @@ class Container {
220
197
  });
221
198
  }
222
199
  _get(getArgs) {
223
- const planAndResolveArgs = Object.assign(Object.assign({}, getArgs), {
200
+ const planAndResolveArgs = {
201
+ ...getArgs,
224
202
  contextInterceptor: context => context,
225
203
  targetType: literal_types_1.TargetTypeEnum.Variable
226
- });
204
+ };
227
205
  return this._planAndResolve()(planAndResolveArgs);
228
206
  }
229
207
  _getButThrowIfAsync(getArgs) {
@@ -278,11 +256,9 @@ class Container {
278
256
  }
279
257
  return this._preDestroy(constructor, instance);
280
258
  }
281
- _bindingDeactivationAndPreDestroyAsync(binding, instance, constructor) {
282
- return __awaiter(this, void 0, void 0, (function*() {
283
- "function" == typeof binding.onDeactivation && (yield binding.onDeactivation(instance)),
284
- yield this._preDestroy(constructor, instance);
285
- }));
259
+ async _bindingDeactivationAndPreDestroyAsync(binding, instance, constructor) {
260
+ "function" == typeof binding.onDeactivation && await binding.onDeactivation(instance),
261
+ await this._preDestroy(constructor, instance);
286
262
  }
287
263
  }
288
264
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/inversify-lite/container/container.ts"],"names":[],"mappings":"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","file":"container.js","sourcesContent":["import { Binding } from '../bindings/binding';\nimport * as ERROR_MSGS from '../constants/error_msgs';\nimport { BindingScopeEnum, TargetTypeEnum } from '../constants/literal_types';\nimport * as METADATA_KEY from '../constants/metadata_keys';\nimport type { interfaces } from '../interfaces/interfaces';\nimport { MetadataReader } from '../planning/metadata_reader';\nimport { createMockRequest, getBindingDictionary, plan } from '../planning/planner';\nimport { resolve } from '../resolution/resolver';\nimport { BindingToSyntax } from '../syntax/binding_to_syntax';\nimport { isPromise, isPromiseOrContainsPromise } from '../utils/async';\nimport { id } from '../utils/id';\nimport { getServiceIdentifierAsString } from '../utils/serialization';\nimport { Lookup } from './lookup';\nimport Reflect from '../../Reflect-metadata';\n// import { ModuleActivationStore } from './module_activation_store';\n\ntype GetArgs<T> = Omit<interfaces.NextArgs<T>, 'contextInterceptor' | 'targetType'>;\n\nclass Container implements interfaces.Container {\n id: number;\n parent: interfaces.Container | null;\n readonly options: interfaces.ContainerOptions;\n // private _middleware: interfaces.Next | null;\n private _bindingDictionary: interfaces.Lookup<interfaces.Binding<unknown>>;\n // private _activations: interfaces.Lookup<interfaces.BindingActivation<unknown>>;\n // private _deactivations: interfaces.Lookup<interfaces.BindingDeactivation<unknown>>;\n private _metadataReader: interfaces.MetadataReader;\n // private _moduleActivationStore: interfaces.ModuleActivationStore;\n\n static merge(\n container1: interfaces.Container,\n container2: interfaces.Container,\n ...containers: interfaces.Container[]\n ): interfaces.Container {\n const container = new Container();\n const targetContainers: interfaces.Lookup<interfaces.Binding<unknown>>[] = [\n container1,\n container2,\n ...containers\n ].map(targetContainer => getBindingDictionary(targetContainer));\n const bindingDictionary: interfaces.Lookup<interfaces.Binding<unknown>> = getBindingDictionary(container);\n\n function copyDictionary(\n origin: interfaces.Lookup<interfaces.Binding<unknown>>,\n destination: interfaces.Lookup<interfaces.Binding<unknown>>\n ) {\n origin.traverse((_key, value) => {\n value.forEach(binding => {\n destination.add(binding.serviceIdentifier, binding.clone());\n });\n });\n }\n\n targetContainers.forEach(targetBindingDictionary => {\n copyDictionary(targetBindingDictionary, bindingDictionary);\n });\n\n return container;\n }\n\n constructor(containerOptions?: interfaces.ContainerOptions) {\n const options = containerOptions || {};\n if (typeof options !== 'object') {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT}`);\n }\n\n if (options.defaultScope === undefined) {\n options.defaultScope = BindingScopeEnum.Transient;\n } else if (\n options.defaultScope !== BindingScopeEnum.Singleton &&\n options.defaultScope !== BindingScopeEnum.Transient &&\n options.defaultScope !== BindingScopeEnum.Request\n ) {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE}`);\n }\n\n if (options.autoBindInjectable === undefined) {\n options.autoBindInjectable = false;\n } else if (typeof options.autoBindInjectable !== 'boolean') {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE}`);\n }\n\n if (options.skipBaseClassChecks === undefined) {\n options.skipBaseClassChecks = false;\n } else if (typeof options.skipBaseClassChecks !== 'boolean') {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK}`);\n }\n\n this.options = {\n autoBindInjectable: options.autoBindInjectable,\n defaultScope: options.defaultScope,\n skipBaseClassChecks: options.skipBaseClassChecks\n };\n\n this.id = id();\n this._bindingDictionary = new Lookup<interfaces.Binding<unknown>>();\n // this._middleware = null;\n // this._activations = new Lookup<interfaces.BindingActivation<unknown>>();\n // this._deactivations = new Lookup<interfaces.BindingDeactivation<unknown>>();\n this.parent = null;\n this._metadataReader = new MetadataReader();\n // this._moduleActivationStore = new ModuleActivationStore();\n }\n\n load(...modules: interfaces.ContainerModule[]) {\n const getHelpers = this._getContainerModuleHelpersFactory();\n\n for (const currentModule of modules) {\n const containerModuleHelpers = getHelpers(currentModule.id);\n\n currentModule.registry(\n containerModuleHelpers.bindFunction as interfaces.Bind,\n containerModuleHelpers.unbindFunction,\n containerModuleHelpers.isboundFunction,\n containerModuleHelpers.rebindFunction as interfaces.Rebind\n // containerModuleHelpers.unbindAsyncFunction,\n // containerModuleHelpers.onActivationFunction as interfaces.Container['onActivation'],\n // containerModuleHelpers.onDeactivationFunction as interfaces.Container['onDeactivation']\n );\n }\n }\n\n unload(...modules: interfaces.ContainerModuleBase[]): void {\n modules.forEach(module => {\n const deactivations = this._removeModuleBindings(module.id);\n this._deactivateSingletons(deactivations);\n\n // this._removeModuleHandlers(module.id);\n });\n }\n\n // Registers a type binding\n bind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T> {\n const scope = this.options.defaultScope || BindingScopeEnum.Transient;\n const binding = new Binding<T>(serviceIdentifier, scope);\n this._bindingDictionary.add(serviceIdentifier, binding as Binding<unknown>);\n return new BindingToSyntax<T>(binding);\n }\n\n rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T> {\n this.unbind(serviceIdentifier);\n return this.bind(serviceIdentifier);\n }\n\n // public async rebindAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>\n // ): Promise<interfaces.BindingToSyntax<T>> {\n // await this.unbindAsync(serviceIdentifier);\n // return this.bind(serviceIdentifier);\n // }\n\n // Removes a type binding from the registry by its key\n unbind(serviceIdentifier: interfaces.ServiceIdentifier): void {\n if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n const bindings = this._bindingDictionary.get(serviceIdentifier);\n\n this._deactivateSingletons(bindings);\n }\n\n this._removeServiceFromDictionary(serviceIdentifier);\n }\n\n // public async unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise<void> {\n // if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n // const bindings = this._bindingDictionary.get(serviceIdentifier);\n\n // await this._deactivateSingletonsAsync(bindings);\n // }\n\n // this._removeServiceFromDictionary(serviceIdentifier);\n // }\n\n // Removes all the type bindings from the registry\n unbindAll(): void {\n this._bindingDictionary.traverse((_key, value) => {\n this._deactivateSingletons(value);\n });\n\n this._bindingDictionary = new Lookup<Binding<unknown>>();\n }\n\n // public async unbindAllAsync(): Promise<void> {\n // const promises: Promise<void>[] = [];\n\n // this._bindingDictionary.traverse((_key, value) => {\n // promises.push(this._deactivateSingletonsAsync(value));\n // });\n\n // await Promise.all(promises);\n\n // this._bindingDictionary = new Lookup<Binding<unknown>>();\n // }\n\n // public onActivation<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // onActivation: interfaces.BindingActivation<T>\n // ) {\n // this._activations.add(serviceIdentifier, onActivation as interfaces.BindingActivation<unknown>);\n // }\n\n // public onDeactivation<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // onDeactivation: interfaces.BindingDeactivation<T>\n // ) {\n // this._deactivations.add(serviceIdentifier, onDeactivation as interfaces.BindingDeactivation<unknown>);\n // }\n\n // Allows to check if there are bindings available for serviceIdentifier\n isBound(serviceIdentifier: interfaces.ServiceIdentifier<unknown>): boolean {\n let bound = this._bindingDictionary.hasKey(serviceIdentifier);\n if (!bound && this.parent) {\n bound = this.parent.isBound(serviceIdentifier);\n }\n return bound;\n }\n\n // check binding dependency only in current container\n isCurrentBound<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): boolean {\n return this._bindingDictionary.hasKey(serviceIdentifier);\n }\n\n isBoundNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): boolean {\n return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // Check if a binding with a complex constraint is available without throwing a error. Ancestors are also verified.\n isBoundTagged(\n serviceIdentifier: interfaces.ServiceIdentifier,\n key: string | number | symbol,\n value: unknown\n ): boolean {\n let bound = false;\n\n // verify if there are bindings available for serviceIdentifier on current binding dictionary\n if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n const bindings = this._bindingDictionary.get(serviceIdentifier);\n const request = createMockRequest(this, serviceIdentifier, key, value);\n bound = bindings.some(b => b.constraint(request));\n }\n\n // verify if there is a parent container that could solve the request\n if (!bound && this.parent) {\n bound = this.parent.isBoundTagged(serviceIdentifier, key, value);\n }\n\n return bound;\n }\n\n applyCustomMetadataReader(metadataReader: interfaces.MetadataReader) {\n this._metadataReader = metadataReader;\n }\n\n // Resolves a dependency by its runtime identifier\n // The runtime identifier must be associated with only one binding\n // use getAll when the runtime identifier is associated with multiple bindings\n get<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T {\n // if (!window.aaa) {\n // window.aaa = 0;\n // }\n // const t = performance.now();\n const getArgs = this._getNotAllArgs(serviceIdentifier, false);\n // const getArgs = {\n // avoidConstraints: false,\n // isMultiInject: false,\n // serviceIdentifier\n // };\n\n const data = this._getButThrowIfAsync<T>(getArgs) as T;\n // const delta = performance.now() - t;\n // window.aaa += delta;\n\n return data;\n }\n\n async getAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T> {\n const getArgs = this._getNotAllArgs(serviceIdentifier, false);\n\n return this._get<T>(getArgs) as Promise<T> | T;\n }\n\n getTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T {\n const getArgs = this._getNotAllArgs(serviceIdentifier, false, key, value);\n\n return this._getButThrowIfAsync<T>(getArgs) as T;\n }\n\n // public async getTaggedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // key: string | number | symbol,\n // value: unknown\n // ): Promise<T> {\n // const getArgs = this._getNotAllArgs(serviceIdentifier, false, key, value);\n\n // return this._get<T>(getArgs) as Promise<T> | T;\n // }\n\n getNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T {\n return this.getTagged<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // public getNamedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // named: string | number | symbol\n // ): Promise<T> {\n // return this.getTaggedAsync<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n // }\n\n // Resolves a dependency by its runtime identifier\n // The runtime identifier can be associated with one or multiple bindings\n getAll<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T[] {\n const getArgs = this._getAllArgs(serviceIdentifier);\n\n return this._getButThrowIfAsync<T>(getArgs) as T[];\n }\n\n // public getAllAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T[]> {\n // const getArgs = this._getAllArgs(serviceIdentifier);\n\n // return this._getAll(getArgs);\n // }\n\n getAllTagged<T>(\n serviceIdentifier: interfaces.ServiceIdentifier<T>,\n key: string | number | symbol,\n value: unknown\n ): T[] {\n const getArgs = this._getNotAllArgs(serviceIdentifier, true, key, value);\n\n return this._getButThrowIfAsync<T>(getArgs) as T[];\n }\n\n // public getAllTaggedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // key: string | number | symbol,\n // value: unknown\n // ): Promise<T[]> {\n // const getArgs = this._getNotAllArgs(serviceIdentifier, true, key, value);\n\n // return this._getAll(getArgs);\n // }\n\n getAllNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T[] {\n return this.getAllTagged<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // public getAllNamedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // named: string | number | symbol\n // ): Promise<T[]> {\n // return this.getAllTaggedAsync<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n // }\n\n resolve<T>(constructorFunction: interfaces.Newable<T>) {\n const isBound = this.isBound(constructorFunction);\n if (!isBound) {\n this.bind<T>(constructorFunction).toSelf();\n }\n const resolved = this.get<T>(constructorFunction);\n if (!isBound) {\n this.unbind(constructorFunction);\n }\n return resolved;\n }\n\n private _preDestroy<T>(constructor: NewableFunction, instance: T): Promise<void> | void {\n if ((Reflect as any).hasMetadata(METADATA_KEY.PRE_DESTROY, constructor)) {\n const data: interfaces.Metadata = (Reflect as any).getMetadata(METADATA_KEY.PRE_DESTROY, constructor);\n return (instance as interfaces.Instance<T>)[data.value as string]?.();\n }\n }\n // private _removeModuleHandlers(moduleId: number): void {\n // const moduleActivationsHandlers = this._moduleActivationStore.remove(moduleId);\n\n // this._activations.removeIntersection(moduleActivationsHandlers.onActivations);\n // this._deactivations.removeIntersection(moduleActivationsHandlers.onDeactivations);\n // }\n\n private _removeModuleBindings(moduleId: number): interfaces.Binding<unknown>[] {\n return this._bindingDictionary.removeByCondition(binding => binding.moduleId === moduleId);\n }\n\n private _deactivate<T>(binding: Binding<T>, instance: T): void | Promise<void> {\n const constructor: NewableFunction = Object.getPrototypeOf(instance).constructor;\n try {\n // if (this._deactivations.hasKey(binding.serviceIdentifier)) {\n // const result = this._deactivateContainer(instance, this._deactivations.get(binding.serviceIdentifier).values());\n\n // if (isPromise(result)) {\n // return this._handleDeactivationError(\n // result.then(() =>\n // this._propagateContainerDeactivationThenBindingAndPreDestroyAsync(binding, instance, constructor)\n // ),\n // constructor\n // );\n // }\n // }\n\n const propagateDeactivationResult = this._propagateContainerDeactivationThenBindingAndPreDestroy(\n binding,\n instance,\n constructor\n );\n\n if (isPromise(propagateDeactivationResult)) {\n return this._handleDeactivationError(propagateDeactivationResult, constructor);\n }\n } catch (ex) {\n if (ex instanceof Error) {\n throw new Error(ERROR_MSGS.ON_DEACTIVATION_ERROR(constructor.name, ex.message));\n }\n }\n }\n\n private async _handleDeactivationError(asyncResult: Promise<void>, constructor: NewableFunction): Promise<void> {\n try {\n await asyncResult;\n } catch (ex) {\n if (ex instanceof Error) {\n throw new Error(ERROR_MSGS.ON_DEACTIVATION_ERROR(constructor.name, ex.message));\n }\n }\n }\n\n // private _deactivateContainer<T>(\n // instance: T,\n // deactivationsIterator: IterableIterator<interfaces.BindingDeactivation<unknown>>\n // ): void | Promise<void> {\n // let deactivation = deactivationsIterator.next();\n\n // while (deactivation.value) {\n // const result = deactivation.value(instance);\n\n // if (isPromise(result)) {\n // return result.then(() => this._deactivateContainerAsync(instance, deactivationsIterator));\n // }\n\n // deactivation = deactivationsIterator.next();\n // }\n // }\n\n // private async _deactivateContainerAsync<T>(\n // instance: T,\n // deactivationsIterator: IterableIterator<interfaces.BindingDeactivation<unknown>>\n // ): Promise<void> {\n // let deactivation = deactivationsIterator.next();\n\n // while (deactivation.value) {\n // await deactivation.value(instance);\n // deactivation = deactivationsIterator.next();\n // }\n // }\n\n private _getContainerModuleHelpersFactory() {\n const setModuleId = (\n bindingToSyntax: interfaces.BindingToSyntax<unknown>,\n moduleId: interfaces.ContainerModuleBase['id']\n ) => {\n // TODO: Implement an internal type `_BindingToSyntax<T>` wherein this member\n // can be public. Let `BindingToSyntax<T>` be the presentational type that\n // depends on it, and does not expose this member as public.\n (\n bindingToSyntax as unknown as { _binding: { moduleId: interfaces.ContainerModuleBase['id'] } }\n )._binding.moduleId = moduleId;\n };\n\n const getBindFunction =\n <T>(moduleId: interfaces.ContainerModuleBase['id']) =>\n (serviceIdentifier: interfaces.ServiceIdentifier) => {\n const bindingToSyntax = this.bind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax as BindingToSyntax<T>;\n };\n\n const getUnbindFunction = () => (serviceIdentifier: interfaces.ServiceIdentifier) => {\n return this.unbind(serviceIdentifier);\n };\n\n const getUnbindAsyncFunction = () => (serviceIdentifier: interfaces.ServiceIdentifier) => {\n return null as any;\n // return this.unbindAsync(serviceIdentifier);\n };\n\n const getIsboundFunction = () => (serviceIdentifier: interfaces.ServiceIdentifier) => {\n return this.isBound(serviceIdentifier);\n };\n\n const getRebindFunction =\n <T = unknown>(moduleId: interfaces.ContainerModuleBase['id']) =>\n (serviceIdentifier: interfaces.ServiceIdentifier) => {\n const bindingToSyntax = this.rebind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax as BindingToSyntax<T>;\n };\n\n // const getOnActivationFunction =\n // (moduleId: interfaces.ContainerModuleBase['id']) =>\n // (serviceIdentifier: interfaces.ServiceIdentifier, onActivation: interfaces.BindingActivation) => {\n // this._moduleActivationStore.addActivation(moduleId, serviceIdentifier, onActivation);\n // this.onActivation(serviceIdentifier, onActivation);\n // };\n\n // const getOnDeactivationFunction =\n // (moduleId: interfaces.ContainerModuleBase['id']) =>\n // (serviceIdentifier: interfaces.ServiceIdentifier, onDeactivation: interfaces.BindingDeactivation) => {\n // this._moduleActivationStore.addDeactivation(moduleId, serviceIdentifier, onDeactivation);\n // this.onDeactivation(serviceIdentifier, onDeactivation);\n // };\n\n return (mId: interfaces.ContainerModuleBase['id']) => ({\n bindFunction: getBindFunction(mId),\n isboundFunction: getIsboundFunction(),\n // onActivationFunction: getOnActivationFunction(mId),\n // onDeactivationFunction: getOnDeactivationFunction(mId),\n rebindFunction: getRebindFunction(mId),\n unbindFunction: getUnbindFunction(),\n unbindAsyncFunction: getUnbindAsyncFunction()\n });\n }\n // private _getAll<T>(getArgs: GetArgs<T>): Promise<T[]> {\n // return Promise.all(this._get<T>(getArgs) as (Promise<T> | T)[]);\n // }\n // Prepares arguments required for resolution and\n // delegates resolution to _middleware if available\n // otherwise it delegates resolution to _planAndResolve\n private _get<T>(getArgs: GetArgs<T>): interfaces.ContainerResolution<T> {\n const planAndResolveArgs: interfaces.NextArgs<T> = {\n ...getArgs,\n contextInterceptor: context => context,\n targetType: TargetTypeEnum.Variable\n };\n // if (this._middleware) {\n // const middlewareResult = this._middleware(planAndResolveArgs);\n // if (middlewareResult === undefined || middlewareResult === null) {\n // throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN);\n // }\n // return middlewareResult as interfaces.ContainerResolution<T>;\n // }\n\n return this._planAndResolve<T>()(planAndResolveArgs);\n }\n\n private _getButThrowIfAsync<T>(getArgs: GetArgs<T>): T | T[] {\n // console.count('_getButThrowIfAsync');\n const result = this._get<T>(getArgs);\n\n // if (isPromiseOrContainsPromise<T>(result)) {\n // throw new Error(ERROR_MSGS.LAZY_IN_SYNC(getArgs.serviceIdentifier));\n // }\n\n return result as T | T[];\n }\n\n private _getAllArgs<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): GetArgs<T> {\n const getAllArgs: GetArgs<T> = {\n avoidConstraints: true,\n isMultiInject: true,\n serviceIdentifier\n };\n\n return getAllArgs;\n }\n\n private _getNotAllArgs<T>(\n serviceIdentifier: interfaces.ServiceIdentifier<T>,\n isMultiInject: boolean,\n key?: string | number | symbol | undefined,\n value?: unknown\n ): GetArgs<T> {\n const getNotAllArgs: GetArgs<T> = {\n avoidConstraints: false,\n isMultiInject,\n serviceIdentifier,\n key,\n value\n };\n\n return getNotAllArgs;\n }\n\n // Planner creates a plan and Resolver resolves a plan\n // one of the jobs of the Container is to links the Planner\n // with the Resolver and that is what this function is about\n private _planAndResolve<T = unknown>(): (args: interfaces.NextArgs<T>) => interfaces.ContainerResolution<T> {\n return (args: interfaces.NextArgs<T>) => {\n // create a plan\n // if (!window.aaa) {\n // window.aaa = 0;\n // }\n // const t = performance.now();\n // debugger;\n let context = plan(\n this._metadataReader,\n this,\n args.isMultiInject,\n args.targetType,\n args.serviceIdentifier,\n args.key,\n args.value,\n args.avoidConstraints\n );\n\n // apply context interceptor\n context = args.contextInterceptor(context);\n // window.aaa += performance.now() - t;\n // resolve plan\n const result = resolve<T>(context);\n\n return result;\n };\n }\n\n private _deactivateIfSingleton(binding: Binding<unknown>): Promise<void> | void {\n if (!binding.activated) {\n return;\n }\n\n if (isPromise(binding.cache)) {\n return binding.cache.then(resolved => this._deactivate(binding, resolved));\n }\n\n return this._deactivate(binding, binding.cache);\n }\n\n private _deactivateSingletons(bindings: Binding<unknown>[]): void {\n for (const binding of bindings) {\n const result = this._deactivateIfSingleton(binding);\n\n if (isPromise(result)) {\n throw new Error(ERROR_MSGS.ASYNC_UNBIND_REQUIRED);\n }\n }\n }\n\n // private async _deactivateSingletonsAsync(bindings: Binding<unknown>[]): Promise<void> {\n // await Promise.all(bindings.map(b => this._deactivateIfSingleton(b)));\n // }\n\n private _propagateContainerDeactivationThenBindingAndPreDestroy<T>(\n binding: Binding<T>,\n instance: T,\n constructor: NewableFunction\n ): void | Promise<void> {\n if (this.parent) {\n return this._deactivate.bind(this.parent)(binding, instance);\n }\n return this._bindingDeactivationAndPreDestroy(binding, instance, constructor);\n }\n\n // private async _propagateContainerDeactivationThenBindingAndPreDestroyAsync<T>(\n // binding: Binding<T>,\n // instance: T,\n // constructor: NewableFunction\n // ): Promise<void> {\n // if (this.parent) {\n // await this._deactivate.bind(this.parent)(binding, instance);\n // } else {\n // await this._bindingDeactivationAndPreDestroyAsync(binding, instance, constructor);\n // }\n // }\n\n private _removeServiceFromDictionary(serviceIdentifier: interfaces.ServiceIdentifier): void {\n try {\n this._bindingDictionary.remove(serviceIdentifier);\n } catch (e) {\n throw new Error(`${ERROR_MSGS.CANNOT_UNBIND} ${getServiceIdentifierAsString(serviceIdentifier)}`);\n }\n }\n\n private _bindingDeactivationAndPreDestroy<T>(\n binding: Binding<T>,\n instance: T,\n constructor: NewableFunction\n ): void | Promise<void> {\n if (typeof binding.onDeactivation === 'function') {\n const result = binding.onDeactivation(instance);\n\n if (isPromise(result)) {\n return result.then(() => this._preDestroy(constructor, instance));\n }\n }\n\n return this._preDestroy(constructor, instance);\n }\n\n private async _bindingDeactivationAndPreDestroyAsync<T>(\n binding: Binding<T>,\n instance: T,\n constructor: NewableFunction\n ): Promise<void> {\n if (typeof binding.onDeactivation === 'function') {\n await binding.onDeactivation(instance);\n }\n\n await this._preDestroy(constructor, instance);\n }\n}\n\nexport { Container };\n"]}
1
+ {"version":3,"sources":["../src/common/inversify-lite/container/container.ts"],"names":[],"mappings":"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","file":"container.js","sourcesContent":["import { Binding } from '../bindings/binding';\nimport * as ERROR_MSGS from '../constants/error_msgs';\nimport { BindingScopeEnum, TargetTypeEnum } from '../constants/literal_types';\nimport * as METADATA_KEY from '../constants/metadata_keys';\nimport type { interfaces } from '../interfaces/interfaces';\nimport { MetadataReader } from '../planning/metadata_reader';\nimport { createMockRequest, getBindingDictionary, plan } from '../planning/planner';\nimport { resolve } from '../resolution/resolver';\nimport { BindingToSyntax } from '../syntax/binding_to_syntax';\nimport { isPromise, isPromiseOrContainsPromise } from '../utils/async';\nimport { id } from '../utils/id';\nimport { getServiceIdentifierAsString } from '../utils/serialization';\nimport { Lookup } from './lookup';\nimport Reflect from '../../Reflect-metadata';\n// import { ModuleActivationStore } from './module_activation_store';\n\ntype GetArgs<T> = Omit<interfaces.NextArgs<T>, 'contextInterceptor' | 'targetType'>;\n\nclass Container implements interfaces.Container {\n id: number;\n parent: interfaces.Container | null;\n readonly options: interfaces.ContainerOptions;\n // private _middleware: interfaces.Next | null;\n private _bindingDictionary: interfaces.Lookup<interfaces.Binding<unknown>>;\n // private _activations: interfaces.Lookup<interfaces.BindingActivation<unknown>>;\n // private _deactivations: interfaces.Lookup<interfaces.BindingDeactivation<unknown>>;\n private _metadataReader: interfaces.MetadataReader;\n // private _moduleActivationStore: interfaces.ModuleActivationStore;\n\n static merge(\n container1: interfaces.Container,\n container2: interfaces.Container,\n ...containers: interfaces.Container[]\n ): interfaces.Container {\n const container = new Container();\n const targetContainers: interfaces.Lookup<interfaces.Binding<unknown>>[] = [\n container1,\n container2,\n ...containers\n ].map(targetContainer => getBindingDictionary(targetContainer));\n const bindingDictionary: interfaces.Lookup<interfaces.Binding<unknown>> = getBindingDictionary(container);\n\n function copyDictionary(\n origin: interfaces.Lookup<interfaces.Binding<unknown>>,\n destination: interfaces.Lookup<interfaces.Binding<unknown>>\n ) {\n origin.traverse((_key, value) => {\n value.forEach(binding => {\n destination.add(binding.serviceIdentifier, binding.clone());\n });\n });\n }\n\n targetContainers.forEach(targetBindingDictionary => {\n copyDictionary(targetBindingDictionary, bindingDictionary);\n });\n\n return container;\n }\n\n constructor(containerOptions?: interfaces.ContainerOptions) {\n const options = containerOptions || {};\n if (typeof options !== 'object') {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT}`);\n }\n\n if (options.defaultScope === undefined) {\n options.defaultScope = BindingScopeEnum.Transient;\n } else if (\n options.defaultScope !== BindingScopeEnum.Singleton &&\n options.defaultScope !== BindingScopeEnum.Transient &&\n options.defaultScope !== BindingScopeEnum.Request\n ) {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE}`);\n }\n\n if (options.autoBindInjectable === undefined) {\n options.autoBindInjectable = false;\n } else if (typeof options.autoBindInjectable !== 'boolean') {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE}`);\n }\n\n if (options.skipBaseClassChecks === undefined) {\n options.skipBaseClassChecks = false;\n } else if (typeof options.skipBaseClassChecks !== 'boolean') {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK}`);\n }\n\n this.options = {\n autoBindInjectable: options.autoBindInjectable,\n defaultScope: options.defaultScope,\n skipBaseClassChecks: options.skipBaseClassChecks\n };\n\n this.id = id();\n this._bindingDictionary = new Lookup<interfaces.Binding<unknown>>();\n // this._middleware = null;\n // this._activations = new Lookup<interfaces.BindingActivation<unknown>>();\n // this._deactivations = new Lookup<interfaces.BindingDeactivation<unknown>>();\n this.parent = null;\n this._metadataReader = new MetadataReader();\n // this._moduleActivationStore = new ModuleActivationStore();\n }\n\n load(...modules: interfaces.ContainerModule[]) {\n const getHelpers = this._getContainerModuleHelpersFactory();\n\n for (const currentModule of modules) {\n const containerModuleHelpers = getHelpers(currentModule.id);\n\n currentModule.registry(\n containerModuleHelpers.bindFunction as interfaces.Bind,\n containerModuleHelpers.unbindFunction,\n containerModuleHelpers.isboundFunction,\n containerModuleHelpers.rebindFunction as interfaces.Rebind\n // containerModuleHelpers.unbindAsyncFunction,\n // containerModuleHelpers.onActivationFunction as interfaces.Container['onActivation'],\n // containerModuleHelpers.onDeactivationFunction as interfaces.Container['onDeactivation']\n );\n }\n }\n\n unload(...modules: interfaces.ContainerModuleBase[]): void {\n modules.forEach(module => {\n const deactivations = this._removeModuleBindings(module.id);\n this._deactivateSingletons(deactivations);\n\n // this._removeModuleHandlers(module.id);\n });\n }\n\n // Registers a type binding\n bind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T> {\n const scope = this.options.defaultScope || BindingScopeEnum.Transient;\n const binding = new Binding<T>(serviceIdentifier, scope);\n this._bindingDictionary.add(serviceIdentifier, binding as Binding<unknown>);\n return new BindingToSyntax<T>(binding);\n }\n\n rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T> {\n this.unbind(serviceIdentifier);\n return this.bind(serviceIdentifier);\n }\n\n // public async rebindAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>\n // ): Promise<interfaces.BindingToSyntax<T>> {\n // await this.unbindAsync(serviceIdentifier);\n // return this.bind(serviceIdentifier);\n // }\n\n // Removes a type binding from the registry by its key\n unbind(serviceIdentifier: interfaces.ServiceIdentifier): void {\n if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n const bindings = this._bindingDictionary.get(serviceIdentifier);\n\n this._deactivateSingletons(bindings);\n }\n\n this._removeServiceFromDictionary(serviceIdentifier);\n }\n\n // public async unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise<void> {\n // if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n // const bindings = this._bindingDictionary.get(serviceIdentifier);\n\n // await this._deactivateSingletonsAsync(bindings);\n // }\n\n // this._removeServiceFromDictionary(serviceIdentifier);\n // }\n\n // Removes all the type bindings from the registry\n unbindAll(): void {\n this._bindingDictionary.traverse((_key, value) => {\n this._deactivateSingletons(value);\n });\n\n this._bindingDictionary = new Lookup<Binding<unknown>>();\n }\n\n // public async unbindAllAsync(): Promise<void> {\n // const promises: Promise<void>[] = [];\n\n // this._bindingDictionary.traverse((_key, value) => {\n // promises.push(this._deactivateSingletonsAsync(value));\n // });\n\n // await Promise.all(promises);\n\n // this._bindingDictionary = new Lookup<Binding<unknown>>();\n // }\n\n // public onActivation<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // onActivation: interfaces.BindingActivation<T>\n // ) {\n // this._activations.add(serviceIdentifier, onActivation as interfaces.BindingActivation<unknown>);\n // }\n\n // public onDeactivation<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // onDeactivation: interfaces.BindingDeactivation<T>\n // ) {\n // this._deactivations.add(serviceIdentifier, onDeactivation as interfaces.BindingDeactivation<unknown>);\n // }\n\n // Allows to check if there are bindings available for serviceIdentifier\n isBound(serviceIdentifier: interfaces.ServiceIdentifier<unknown>): boolean {\n let bound = this._bindingDictionary.hasKey(serviceIdentifier);\n if (!bound && this.parent) {\n bound = this.parent.isBound(serviceIdentifier);\n }\n return bound;\n }\n\n // check binding dependency only in current container\n isCurrentBound<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): boolean {\n return this._bindingDictionary.hasKey(serviceIdentifier);\n }\n\n isBoundNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): boolean {\n return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // Check if a binding with a complex constraint is available without throwing a error. Ancestors are also verified.\n isBoundTagged(\n serviceIdentifier: interfaces.ServiceIdentifier,\n key: string | number | symbol,\n value: unknown\n ): boolean {\n let bound = false;\n\n // verify if there are bindings available for serviceIdentifier on current binding dictionary\n if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n const bindings = this._bindingDictionary.get(serviceIdentifier);\n const request = createMockRequest(this, serviceIdentifier, key, value);\n bound = bindings.some(b => b.constraint(request));\n }\n\n // verify if there is a parent container that could solve the request\n if (!bound && this.parent) {\n bound = this.parent.isBoundTagged(serviceIdentifier, key, value);\n }\n\n return bound;\n }\n\n applyCustomMetadataReader(metadataReader: interfaces.MetadataReader) {\n this._metadataReader = metadataReader;\n }\n\n // Resolves a dependency by its runtime identifier\n // The runtime identifier must be associated with only one binding\n // use getAll when the runtime identifier is associated with multiple bindings\n get<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T {\n // if (!window.aaa) {\n // window.aaa = 0;\n // }\n // const t = performance.now();\n const getArgs = this._getNotAllArgs(serviceIdentifier, false);\n // const getArgs = {\n // avoidConstraints: false,\n // isMultiInject: false,\n // serviceIdentifier\n // };\n\n const data = this._getButThrowIfAsync<T>(getArgs) as T;\n // const delta = performance.now() - t;\n // window.aaa += delta;\n\n return data;\n }\n\n async getAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T> {\n const getArgs = this._getNotAllArgs(serviceIdentifier, false);\n\n return this._get<T>(getArgs) as Promise<T> | T;\n }\n\n getTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T {\n const getArgs = this._getNotAllArgs(serviceIdentifier, false, key, value);\n\n return this._getButThrowIfAsync<T>(getArgs) as T;\n }\n\n // public async getTaggedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // key: string | number | symbol,\n // value: unknown\n // ): Promise<T> {\n // const getArgs = this._getNotAllArgs(serviceIdentifier, false, key, value);\n\n // return this._get<T>(getArgs) as Promise<T> | T;\n // }\n\n getNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T {\n return this.getTagged<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // public getNamedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // named: string | number | symbol\n // ): Promise<T> {\n // return this.getTaggedAsync<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n // }\n\n // Resolves a dependency by its runtime identifier\n // The runtime identifier can be associated with one or multiple bindings\n getAll<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T[] {\n const getArgs = this._getAllArgs(serviceIdentifier);\n\n return this._getButThrowIfAsync<T>(getArgs) as T[];\n }\n\n // public getAllAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T[]> {\n // const getArgs = this._getAllArgs(serviceIdentifier);\n\n // return this._getAll(getArgs);\n // }\n\n getAllTagged<T>(\n serviceIdentifier: interfaces.ServiceIdentifier<T>,\n key: string | number | symbol,\n value: unknown\n ): T[] {\n const getArgs = this._getNotAllArgs(serviceIdentifier, true, key, value);\n\n return this._getButThrowIfAsync<T>(getArgs) as T[];\n }\n\n // public getAllTaggedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // key: string | number | symbol,\n // value: unknown\n // ): Promise<T[]> {\n // const getArgs = this._getNotAllArgs(serviceIdentifier, true, key, value);\n\n // return this._getAll(getArgs);\n // }\n\n getAllNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T[] {\n return this.getAllTagged<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // public getAllNamedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // named: string | number | symbol\n // ): Promise<T[]> {\n // return this.getAllTaggedAsync<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n // }\n\n resolve<T>(constructorFunction: interfaces.Newable<T>) {\n const isBound = this.isBound(constructorFunction);\n if (!isBound) {\n this.bind<T>(constructorFunction).toSelf();\n }\n const resolved = this.get<T>(constructorFunction);\n if (!isBound) {\n this.unbind(constructorFunction);\n }\n return resolved;\n }\n\n private _preDestroy<T>(constructor: NewableFunction, instance: T): Promise<void> | void {\n if ((Reflect as any).hasMetadata(METADATA_KEY.PRE_DESTROY, constructor)) {\n const data: interfaces.Metadata = (Reflect as any).getMetadata(METADATA_KEY.PRE_DESTROY, constructor);\n return (instance as interfaces.Instance<T>)[data.value as string]?.();\n }\n }\n // private _removeModuleHandlers(moduleId: number): void {\n // const moduleActivationsHandlers = this._moduleActivationStore.remove(moduleId);\n\n // this._activations.removeIntersection(moduleActivationsHandlers.onActivations);\n // this._deactivations.removeIntersection(moduleActivationsHandlers.onDeactivations);\n // }\n\n private _removeModuleBindings(moduleId: number): interfaces.Binding<unknown>[] {\n return this._bindingDictionary.removeByCondition(binding => binding.moduleId === moduleId);\n }\n\n private _deactivate<T>(binding: Binding<T>, instance: T): void | Promise<void> {\n const constructor: NewableFunction = Object.getPrototypeOf(instance).constructor;\n try {\n // if (this._deactivations.hasKey(binding.serviceIdentifier)) {\n // const result = this._deactivateContainer(instance, this._deactivations.get(binding.serviceIdentifier).values());\n\n // if (isPromise(result)) {\n // return this._handleDeactivationError(\n // result.then(() =>\n // this._propagateContainerDeactivationThenBindingAndPreDestroyAsync(binding, instance, constructor)\n // ),\n // constructor\n // );\n // }\n // }\n\n const propagateDeactivationResult = this._propagateContainerDeactivationThenBindingAndPreDestroy(\n binding,\n instance,\n constructor\n );\n\n if (isPromise(propagateDeactivationResult)) {\n return this._handleDeactivationError(propagateDeactivationResult, constructor);\n }\n } catch (ex) {\n if (ex instanceof Error) {\n throw new Error(ERROR_MSGS.ON_DEACTIVATION_ERROR(constructor.name, ex.message));\n }\n }\n }\n\n private async _handleDeactivationError(asyncResult: Promise<void>, constructor: NewableFunction): Promise<void> {\n try {\n await asyncResult;\n } catch (ex) {\n if (ex instanceof Error) {\n throw new Error(ERROR_MSGS.ON_DEACTIVATION_ERROR(constructor.name, ex.message));\n }\n }\n }\n\n // private _deactivateContainer<T>(\n // instance: T,\n // deactivationsIterator: IterableIterator<interfaces.BindingDeactivation<unknown>>\n // ): void | Promise<void> {\n // let deactivation = deactivationsIterator.next();\n\n // while (deactivation.value) {\n // const result = deactivation.value(instance);\n\n // if (isPromise(result)) {\n // return result.then(() => this._deactivateContainerAsync(instance, deactivationsIterator));\n // }\n\n // deactivation = deactivationsIterator.next();\n // }\n // }\n\n // private async _deactivateContainerAsync<T>(\n // instance: T,\n // deactivationsIterator: IterableIterator<interfaces.BindingDeactivation<unknown>>\n // ): Promise<void> {\n // let deactivation = deactivationsIterator.next();\n\n // while (deactivation.value) {\n // await deactivation.value(instance);\n // deactivation = deactivationsIterator.next();\n // }\n // }\n\n private _getContainerModuleHelpersFactory() {\n const setModuleId = (\n bindingToSyntax: interfaces.BindingToSyntax<unknown>,\n moduleId: interfaces.ContainerModuleBase['id']\n ) => {\n // TODO: Implement an internal type `_BindingToSyntax<T>` wherein this member\n // can be public. Let `BindingToSyntax<T>` be the presentational type that\n // depends on it, and does not expose this member as public.\n (\n bindingToSyntax as unknown as { _binding: { moduleId: interfaces.ContainerModuleBase['id'] } }\n )._binding.moduleId = moduleId;\n };\n\n const getBindFunction =\n <T>(moduleId: interfaces.ContainerModuleBase['id']) =>\n (serviceIdentifier: interfaces.ServiceIdentifier) => {\n const bindingToSyntax = this.bind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax as BindingToSyntax<T>;\n };\n\n const getUnbindFunction = () => (serviceIdentifier: interfaces.ServiceIdentifier) => {\n return this.unbind(serviceIdentifier);\n };\n\n const getUnbindAsyncFunction = () => (serviceIdentifier: interfaces.ServiceIdentifier) => {\n return null as any;\n // return this.unbindAsync(serviceIdentifier);\n };\n\n const getIsboundFunction = () => (serviceIdentifier: interfaces.ServiceIdentifier) => {\n return this.isBound(serviceIdentifier);\n };\n\n const getRebindFunction =\n <T = unknown>(moduleId: interfaces.ContainerModuleBase['id']) =>\n (serviceIdentifier: interfaces.ServiceIdentifier) => {\n const bindingToSyntax = this.rebind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax as BindingToSyntax<T>;\n };\n\n // const getOnActivationFunction =\n // (moduleId: interfaces.ContainerModuleBase['id']) =>\n // (serviceIdentifier: interfaces.ServiceIdentifier, onActivation: interfaces.BindingActivation) => {\n // this._moduleActivationStore.addActivation(moduleId, serviceIdentifier, onActivation);\n // this.onActivation(serviceIdentifier, onActivation);\n // };\n\n // const getOnDeactivationFunction =\n // (moduleId: interfaces.ContainerModuleBase['id']) =>\n // (serviceIdentifier: interfaces.ServiceIdentifier, onDeactivation: interfaces.BindingDeactivation) => {\n // this._moduleActivationStore.addDeactivation(moduleId, serviceIdentifier, onDeactivation);\n // this.onDeactivation(serviceIdentifier, onDeactivation);\n // };\n\n return (mId: interfaces.ContainerModuleBase['id']) => ({\n bindFunction: getBindFunction(mId),\n isboundFunction: getIsboundFunction(),\n // onActivationFunction: getOnActivationFunction(mId),\n // onDeactivationFunction: getOnDeactivationFunction(mId),\n rebindFunction: getRebindFunction(mId),\n unbindFunction: getUnbindFunction(),\n unbindAsyncFunction: getUnbindAsyncFunction()\n });\n }\n // private _getAll<T>(getArgs: GetArgs<T>): Promise<T[]> {\n // return Promise.all(this._get<T>(getArgs) as (Promise<T> | T)[]);\n // }\n // Prepares arguments required for resolution and\n // delegates resolution to _middleware if available\n // otherwise it delegates resolution to _planAndResolve\n private _get<T>(getArgs: GetArgs<T>): interfaces.ContainerResolution<T> {\n const planAndResolveArgs: interfaces.NextArgs<T> = {\n ...getArgs,\n contextInterceptor: context => context,\n targetType: TargetTypeEnum.Variable\n };\n // if (this._middleware) {\n // const middlewareResult = this._middleware(planAndResolveArgs);\n // if (middlewareResult === undefined || middlewareResult === null) {\n // throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN);\n // }\n // return middlewareResult as interfaces.ContainerResolution<T>;\n // }\n\n return this._planAndResolve<T>()(planAndResolveArgs);\n }\n\n private _getButThrowIfAsync<T>(getArgs: GetArgs<T>): T | T[] {\n // console.count('_getButThrowIfAsync');\n const result = this._get<T>(getArgs);\n\n // if (isPromiseOrContainsPromise<T>(result)) {\n // throw new Error(ERROR_MSGS.LAZY_IN_SYNC(getArgs.serviceIdentifier));\n // }\n\n return result as T | T[];\n }\n\n private _getAllArgs<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): GetArgs<T> {\n const getAllArgs: GetArgs<T> = {\n avoidConstraints: true,\n isMultiInject: true,\n serviceIdentifier\n };\n\n return getAllArgs;\n }\n\n private _getNotAllArgs<T>(\n serviceIdentifier: interfaces.ServiceIdentifier<T>,\n isMultiInject: boolean,\n key?: string | number | symbol | undefined,\n value?: unknown\n ): GetArgs<T> {\n const getNotAllArgs: GetArgs<T> = {\n avoidConstraints: false,\n isMultiInject,\n serviceIdentifier,\n key,\n value\n };\n\n return getNotAllArgs;\n }\n\n // Planner creates a plan and Resolver resolves a plan\n // one of the jobs of the Container is to links the Planner\n // with the Resolver and that is what this function is about\n private _planAndResolve<T = unknown>(): (args: interfaces.NextArgs<T>) => interfaces.ContainerResolution<T> {\n return (args: interfaces.NextArgs<T>) => {\n // create a plan\n // if (!window.aaa) {\n // window.aaa = 0;\n // }\n // const t = performance.now();\n // debugger;\n let context = plan(\n this._metadataReader,\n this,\n args.isMultiInject,\n args.targetType,\n args.serviceIdentifier,\n args.key,\n args.value,\n args.avoidConstraints\n );\n\n // apply context interceptor\n context = args.contextInterceptor(context);\n // window.aaa += performance.now() - t;\n // resolve plan\n const result = resolve<T>(context);\n\n return result;\n };\n }\n\n private _deactivateIfSingleton(binding: Binding<unknown>): Promise<void> | void {\n if (!binding.activated) {\n return;\n }\n\n if (isPromise(binding.cache)) {\n return binding.cache.then(resolved => this._deactivate(binding, resolved));\n }\n\n return this._deactivate(binding, binding.cache);\n }\n\n private _deactivateSingletons(bindings: Binding<unknown>[]): void {\n for (const binding of bindings) {\n const result = this._deactivateIfSingleton(binding);\n\n if (isPromise(result)) {\n throw new Error(ERROR_MSGS.ASYNC_UNBIND_REQUIRED);\n }\n }\n }\n\n // private async _deactivateSingletonsAsync(bindings: Binding<unknown>[]): Promise<void> {\n // await Promise.all(bindings.map(b => this._deactivateIfSingleton(b)));\n // }\n\n private _propagateContainerDeactivationThenBindingAndPreDestroy<T>(\n binding: Binding<T>,\n instance: T,\n constructor: NewableFunction\n ): void | Promise<void> {\n if (this.parent) {\n return this._deactivate.bind(this.parent)(binding, instance);\n }\n return this._bindingDeactivationAndPreDestroy(binding, instance, constructor);\n }\n\n // private async _propagateContainerDeactivationThenBindingAndPreDestroyAsync<T>(\n // binding: Binding<T>,\n // instance: T,\n // constructor: NewableFunction\n // ): Promise<void> {\n // if (this.parent) {\n // await this._deactivate.bind(this.parent)(binding, instance);\n // } else {\n // await this._bindingDeactivationAndPreDestroyAsync(binding, instance, constructor);\n // }\n // }\n\n private _removeServiceFromDictionary(serviceIdentifier: interfaces.ServiceIdentifier): void {\n try {\n this._bindingDictionary.remove(serviceIdentifier);\n } catch (e) {\n throw new Error(`${ERROR_MSGS.CANNOT_UNBIND} ${getServiceIdentifierAsString(serviceIdentifier)}`);\n }\n }\n\n private _bindingDeactivationAndPreDestroy<T>(\n binding: Binding<T>,\n instance: T,\n constructor: NewableFunction\n ): void | Promise<void> {\n if (typeof binding.onDeactivation === 'function') {\n const result = binding.onDeactivation(instance);\n\n if (isPromise(result)) {\n return result.then(() => this._preDestroy(constructor, instance));\n }\n }\n\n return this._preDestroy(constructor, instance);\n }\n\n private async _bindingDeactivationAndPreDestroyAsync<T>(\n binding: Binding<T>,\n instance: T,\n constructor: NewableFunction\n ): Promise<void> {\n if (typeof binding.onDeactivation === 'function') {\n await binding.onDeactivation(instance);\n }\n\n await this._preDestroy(constructor, instance);\n }\n}\n\nexport { Container };\n"]}
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const id_1 = require("../utils/id");
8
8
 
9
9
  class ContainerModule {
10
+ id;
11
+ registry;
10
12
  constructor(registry) {
11
13
  this.id = (0, id_1.id)(), this.registry = registry;
12
14
  }
@@ -15,6 +17,8 @@ class ContainerModule {
15
17
  exports.ContainerModule = ContainerModule;
16
18
 
17
19
  class AsyncContainerModule {
20
+ id;
21
+ registry;
18
22
  constructor(registry) {
19
23
  this.id = (0, id_1.id)(), this.registry = registry;
20
24
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/inversify-lite/container/container_module.ts"],"names":[],"mappings":";;;AACA,oCAAiC;AAEjC,MAAa,eAAe;IAI1B,YAAY,QAA4C;QACtD,IAAI,CAAC,EAAE,GAAG,IAAA,OAAE,GAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AARD,0CAQC;AAED,MAAa,oBAAoB;IAI/B,YAAY,QAAiD;QAC3D,IAAI,CAAC,EAAE,GAAG,IAAA,OAAE,GAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AARD,oDAQC","file":"container_module.js","sourcesContent":["import type { interfaces } from '../interfaces/interfaces';\nimport { id } from '../utils/id';\n\nexport class ContainerModule implements interfaces.ContainerModule {\n id: number;\n registry: interfaces.ContainerModuleCallBack;\n\n constructor(registry: interfaces.ContainerModuleCallBack) {\n this.id = id();\n this.registry = registry;\n }\n}\n\nexport class AsyncContainerModule implements interfaces.AsyncContainerModule {\n id: number;\n registry: interfaces.AsyncContainerModuleCallBack;\n\n constructor(registry: interfaces.AsyncContainerModuleCallBack) {\n this.id = id();\n this.registry = registry;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/common/inversify-lite/container/container_module.ts"],"names":[],"mappings":";;;AACA,oCAAiC;AAEjC,MAAa,eAAe;IAC1B,EAAE,CAAS;IACX,QAAQ,CAAqC;IAE7C,YAAY,QAA4C;QACtD,IAAI,CAAC,EAAE,GAAG,IAAA,OAAE,GAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AARD,0CAQC;AAED,MAAa,oBAAoB;IAC/B,EAAE,CAAS;IACX,QAAQ,CAA0C;IAElD,YAAY,QAAiD;QAC3D,IAAI,CAAC,EAAE,GAAG,IAAA,OAAE,GAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AARD,oDAQC","file":"container_module.js","sourcesContent":["import type { interfaces } from '../interfaces/interfaces';\nimport { id } from '../utils/id';\n\nexport class ContainerModule implements interfaces.ContainerModule {\n id: number;\n registry: interfaces.ContainerModuleCallBack;\n\n constructor(registry: interfaces.ContainerModuleCallBack) {\n this.id = id();\n this.registry = registry;\n }\n}\n\nexport class AsyncContainerModule implements interfaces.AsyncContainerModule {\n id: number;\n registry: interfaces.AsyncContainerModuleCallBack;\n\n constructor(registry: interfaces.AsyncContainerModuleCallBack) {\n this.id = id();\n this.registry = registry;\n }\n}\n"]}
@@ -32,6 +32,7 @@ Object.defineProperty(exports, "__esModule", {
32
32
  const ERROR_MSGS = __importStar(require("../constants/error_msgs")), clonable_1 = require("../utils/clonable");
33
33
 
34
34
  class Lookup {
35
+ _map;
35
36
  constructor() {
36
37
  this._map = new Map;
37
38
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/inversify-lite/container/lookup.ts"],"names":[],"mappings":"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","file":"lookup.js","sourcesContent":["import * as ERROR_MSGS from '../constants/error_msgs';\nimport type { interfaces } from '../interfaces/interfaces';\nimport { isClonable } from '../utils/clonable';\n\nclass Lookup<T> implements interfaces.Lookup<T> {\n // dictionary used store multiple values for each key <key>\n private _map: Map<interfaces.ServiceIdentifier, T[]>;\n\n constructor() {\n this._map = new Map<interfaces.ServiceIdentifier, T[]>();\n }\n\n getMap() {\n return this._map;\n }\n\n // adds a new entry to _map\n add(serviceIdentifier: interfaces.ServiceIdentifier, value: T): void {\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n if (value === null || value === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n const entry = this._map.get(serviceIdentifier);\n if (entry !== undefined) {\n entry.push(value);\n } else {\n this._map.set(serviceIdentifier, [value]);\n }\n }\n\n // gets the value of a entry by its key (serviceIdentifier)\n get(serviceIdentifier: interfaces.ServiceIdentifier): T[] {\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n const entry = this._map.get(serviceIdentifier);\n\n if (entry !== undefined) {\n return entry;\n }\n throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\n }\n\n // removes a entry from _map by its key (serviceIdentifier)\n remove(serviceIdentifier: interfaces.ServiceIdentifier): void {\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n if (!this._map.delete(serviceIdentifier)) {\n throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\n }\n }\n\n removeIntersection(lookup: interfaces.Lookup<T>): void {\n this.traverse((serviceIdentifier: interfaces.ServiceIdentifier<unknown>, value: T[]) => {\n const lookupActivations = lookup.hasKey(serviceIdentifier) ? lookup.get(serviceIdentifier) : undefined;\n if (lookupActivations !== undefined) {\n const filteredValues = value.filter(\n lookupValue => !lookupActivations.some(moduleActivation => lookupValue === moduleActivation)\n );\n\n this._setValue(serviceIdentifier, filteredValues);\n }\n });\n }\n\n removeByCondition(condition: (item: T) => boolean): T[] {\n const removals: T[] = [];\n this._map.forEach((entries, key) => {\n const updatedEntries: T[] = [];\n\n for (const entry of entries) {\n const remove = condition(entry);\n if (remove) {\n removals.push(entry);\n } else {\n updatedEntries.push(entry);\n }\n }\n\n this._setValue(key, updatedEntries);\n });\n\n return removals;\n }\n\n // returns true if _map contains a key (serviceIdentifier)\n hasKey(serviceIdentifier: interfaces.ServiceIdentifier): boolean {\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n return this._map.has(serviceIdentifier);\n }\n\n // returns a new Lookup instance; note: this is not a deep clone, only Lookup related data structure (dictionary) is\n // cloned, content remains the same\n clone(): interfaces.Lookup<T> {\n const copy = new Lookup<T>();\n\n this._map.forEach((value, key) => {\n value.forEach(b => copy.add(key, isClonable<T>(b) ? b.clone() : b));\n });\n\n return copy;\n }\n\n traverse(func: (key: interfaces.ServiceIdentifier, value: T[]) => void): void {\n this._map.forEach((value, key) => {\n func(key, value);\n });\n }\n\n private _setValue(serviceIdentifier: interfaces.ServiceIdentifier<unknown>, value: T[]): void {\n if (value.length > 0) {\n this._map.set(serviceIdentifier, value);\n } else {\n this._map.delete(serviceIdentifier);\n }\n }\n}\n\nexport { Lookup };\n"]}
1
+ {"version":3,"sources":["../src/common/inversify-lite/container/lookup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAsD;AAEtD,gDAA+C;AAE/C,MAAM,MAAM;IAEF,IAAI,CAAyC;IAErD;QACE,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC3D,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAGD,GAAG,CAAC,iBAA+C,EAAE,KAAQ;QAC3D,IAAI,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACjE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SAC3C;QAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SAC3C;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnB;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3C;IACH,CAAC;IAGD,GAAG,CAAC,iBAA+C;QACjD,IAAI,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACjE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SAC3C;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE/C,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;QACD,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IAGD,MAAM,CAAC,iBAA+C;QACpD,IAAI,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACjE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SAC3C;IACH,CAAC;IAED,kBAAkB,CAAC,MAA4B;QAC7C,IAAI,CAAC,QAAQ,CAAC,CAAC,iBAAwD,EAAE,KAAU,EAAE,EAAE;YACrF,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvG,IAAI,iBAAiB,KAAK,SAAS,EAAE;gBACnC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CACjC,WAAW,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,WAAW,KAAK,gBAAgB,CAAC,CAC7F,CAAC;gBAEF,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;aACnD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,SAA+B;QAC/C,MAAM,QAAQ,GAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YACjC,MAAM,cAAc,GAAQ,EAAE,CAAC;YAE/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,MAAM,EAAE;oBACV,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACtB;qBAAM;oBACL,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC5B;aACF;YAED,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAGD,MAAM,CAAC,iBAA+C;QACpD,IAAI,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,SAAS,EAAE;YACjE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;SAC3C;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC1C,CAAC;IAID,KAAK;QACH,MAAM,IAAI,GAAG,IAAI,MAAM,EAAK,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC/B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAA,qBAAU,EAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,IAA6D;QACpE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC/B,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,iBAAwD,EAAE,KAAU;QACpF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;SACzC;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;SACrC;IACH,CAAC;CACF;AAEQ,wBAAM","file":"lookup.js","sourcesContent":["import * as ERROR_MSGS from '../constants/error_msgs';\nimport type { interfaces } from '../interfaces/interfaces';\nimport { isClonable } from '../utils/clonable';\n\nclass Lookup<T> implements interfaces.Lookup<T> {\n // dictionary used store multiple values for each key <key>\n private _map: Map<interfaces.ServiceIdentifier, T[]>;\n\n constructor() {\n this._map = new Map<interfaces.ServiceIdentifier, T[]>();\n }\n\n getMap() {\n return this._map;\n }\n\n // adds a new entry to _map\n add(serviceIdentifier: interfaces.ServiceIdentifier, value: T): void {\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n if (value === null || value === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n const entry = this._map.get(serviceIdentifier);\n if (entry !== undefined) {\n entry.push(value);\n } else {\n this._map.set(serviceIdentifier, [value]);\n }\n }\n\n // gets the value of a entry by its key (serviceIdentifier)\n get(serviceIdentifier: interfaces.ServiceIdentifier): T[] {\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n const entry = this._map.get(serviceIdentifier);\n\n if (entry !== undefined) {\n return entry;\n }\n throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\n }\n\n // removes a entry from _map by its key (serviceIdentifier)\n remove(serviceIdentifier: interfaces.ServiceIdentifier): void {\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n if (!this._map.delete(serviceIdentifier)) {\n throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\n }\n }\n\n removeIntersection(lookup: interfaces.Lookup<T>): void {\n this.traverse((serviceIdentifier: interfaces.ServiceIdentifier<unknown>, value: T[]) => {\n const lookupActivations = lookup.hasKey(serviceIdentifier) ? lookup.get(serviceIdentifier) : undefined;\n if (lookupActivations !== undefined) {\n const filteredValues = value.filter(\n lookupValue => !lookupActivations.some(moduleActivation => lookupValue === moduleActivation)\n );\n\n this._setValue(serviceIdentifier, filteredValues);\n }\n });\n }\n\n removeByCondition(condition: (item: T) => boolean): T[] {\n const removals: T[] = [];\n this._map.forEach((entries, key) => {\n const updatedEntries: T[] = [];\n\n for (const entry of entries) {\n const remove = condition(entry);\n if (remove) {\n removals.push(entry);\n } else {\n updatedEntries.push(entry);\n }\n }\n\n this._setValue(key, updatedEntries);\n });\n\n return removals;\n }\n\n // returns true if _map contains a key (serviceIdentifier)\n hasKey(serviceIdentifier: interfaces.ServiceIdentifier): boolean {\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\n }\n\n return this._map.has(serviceIdentifier);\n }\n\n // returns a new Lookup instance; note: this is not a deep clone, only Lookup related data structure (dictionary) is\n // cloned, content remains the same\n clone(): interfaces.Lookup<T> {\n const copy = new Lookup<T>();\n\n this._map.forEach((value, key) => {\n value.forEach(b => copy.add(key, isClonable<T>(b) ? b.clone() : b));\n });\n\n return copy;\n }\n\n traverse(func: (key: interfaces.ServiceIdentifier, value: T[]) => void): void {\n this._map.forEach((value, key) => {\n func(key, value);\n });\n }\n\n private _setValue(serviceIdentifier: interfaces.ServiceIdentifier<unknown>, value: T[]): void {\n if (value.length > 0) {\n this._map.set(serviceIdentifier, value);\n } else {\n this._map.delete(serviceIdentifier);\n }\n }\n}\n\nexport { Lookup };\n"]}
@@ -7,6 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const id_1 = require("../utils/id");
8
8
 
9
9
  class Context {
10
+ id;
11
+ container;
12
+ plan;
13
+ currentRequest;
10
14
  constructor(container) {
11
15
  this.id = (0, id_1.id)(), this.container = container;
12
16
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/inversify-lite/planning/context.ts"],"names":[],"mappings":";;;AACA,oCAAiC;AAEjC,MAAM,OAAO;IAMX,YAAY,SAA+B;QACzC,IAAI,CAAC,EAAE,GAAG,IAAA,OAAE,GAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,IAAqB;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,iBAAiB,CAAC,cAAkC;QAClD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;CACF;AAEQ,0BAAO","file":"context.js","sourcesContent":["import type { interfaces } from '../interfaces/interfaces';\nimport { id } from '../utils/id';\n\nclass Context implements interfaces.Context {\n id: number;\n container: interfaces.Container;\n plan!: interfaces.Plan;\n currentRequest!: interfaces.Request;\n\n constructor(container: interfaces.Container) {\n this.id = id();\n this.container = container;\n }\n\n addPlan(plan: interfaces.Plan) {\n this.plan = plan;\n }\n\n setCurrentRequest(currentRequest: interfaces.Request) {\n this.currentRequest = currentRequest;\n }\n}\n\nexport { Context };\n"]}
1
+ {"version":3,"sources":["../src/common/inversify-lite/planning/context.ts"],"names":[],"mappings":";;;AACA,oCAAiC;AAEjC,MAAM,OAAO;IACX,EAAE,CAAS;IACX,SAAS,CAAuB;IAChC,IAAI,CAAmB;IACvB,cAAc,CAAsB;IAEpC,YAAY,SAA+B;QACzC,IAAI,CAAC,EAAE,GAAG,IAAA,OAAE,GAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,IAAqB;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,iBAAiB,CAAC,cAAkC;QAClD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;CACF;AAEQ,0BAAO","file":"context.js","sourcesContent":["import type { interfaces } from '../interfaces/interfaces';\nimport { id } from '../utils/id';\n\nclass Context implements interfaces.Context {\n id: number;\n container: interfaces.Container;\n plan!: interfaces.Plan;\n currentRequest!: interfaces.Request;\n\n constructor(container: interfaces.Container) {\n this.id = id();\n this.container = container;\n }\n\n addPlan(plan: interfaces.Plan) {\n this.plan = plan;\n }\n\n setCurrentRequest(currentRequest: interfaces.Request) {\n this.currentRequest = currentRequest;\n }\n}\n\nexport { Context };\n"]}
@@ -32,6 +32,8 @@ Object.defineProperty(exports, "__esModule", {
32
32
  const METADATA_KEY = __importStar(require("../constants/metadata_keys"));
33
33
 
34
34
  class Metadata {
35
+ key;
36
+ value;
35
37
  constructor(key, value) {
36
38
  this.key = key, this.value = value;
37
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/inversify-lite/planning/metadata.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAA2D;AAG3D,MAAM,QAAQ;IAIZ,YAAY,GAA6B,EAAE,KAAc;QACvD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,GAAG,KAAK,YAAY,CAAC,SAAS,EAAE;YACvC,OAAO,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC;SACnD;QACD,OAAO,iBAAiB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAChF,CAAC;CACF;AAEQ,4BAAQ","file":"metadata.js","sourcesContent":["import * as METADATA_KEY from '../constants/metadata_keys';\nimport type { interfaces } from '../interfaces/interfaces';\n\nclass Metadata implements interfaces.Metadata {\n key: string | number | symbol;\n value: unknown;\n\n constructor(key: string | number | symbol, value: unknown) {\n this.key = key;\n this.value = value;\n }\n\n toString() {\n if (this.key === METADATA_KEY.NAMED_TAG) {\n return `named: ${String(this.value).toString()} `;\n }\n return `tagged: { key:${this.key.toString()}, value: ${String(this.value)} }`;\n }\n}\n\nexport { Metadata };\n"]}
1
+ {"version":3,"sources":["../src/common/inversify-lite/planning/metadata.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAA2D;AAG3D,MAAM,QAAQ;IACZ,GAAG,CAA2B;IAC9B,KAAK,CAAU;IAEf,YAAY,GAA6B,EAAE,KAAc;QACvD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,GAAG,KAAK,YAAY,CAAC,SAAS,EAAE;YACvC,OAAO,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC;SACnD;QACD,OAAO,iBAAiB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAChF,CAAC;CACF;AAEQ,4BAAQ","file":"metadata.js","sourcesContent":["import * as METADATA_KEY from '../constants/metadata_keys';\nimport type { interfaces } from '../interfaces/interfaces';\n\nclass Metadata implements interfaces.Metadata {\n key: string | number | symbol;\n value: unknown;\n\n constructor(key: string | number | symbol, value: unknown) {\n this.key = key;\n this.value = value;\n }\n\n toString() {\n if (this.key === METADATA_KEY.NAMED_TAG) {\n return `named: ${String(this.value).toString()} `;\n }\n return `tagged: { key:${this.key.toString()}, value: ${String(this.value)} }`;\n }\n}\n\nexport { Metadata };\n"]}
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  }), exports.Plan = void 0;
6
6
 
7
7
  class Plan {
8
+ parentContext;
9
+ rootRequest;
8
10
  constructor(parentContext, rootRequest) {
9
11
  this.parentContext = parentContext, this.rootRequest = rootRequest;
10
12
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/inversify-lite/planning/plan.ts"],"names":[],"mappings":";;;AAEA,MAAM,IAAI;IAIR,YAAY,aAAiC,EAAE,WAA+B;QAC5E,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAEQ,oBAAI","file":"plan.js","sourcesContent":["import type { interfaces } from '../interfaces/interfaces';\n\nclass Plan implements interfaces.Plan {\n parentContext: interfaces.Context;\n rootRequest: interfaces.Request;\n\n constructor(parentContext: interfaces.Context, rootRequest: interfaces.Request) {\n this.parentContext = parentContext;\n this.rootRequest = rootRequest;\n }\n}\n\nexport { Plan };\n"]}
1
+ {"version":3,"sources":["../src/common/inversify-lite/planning/plan.ts"],"names":[],"mappings":";;;AAEA,MAAM,IAAI;IACR,aAAa,CAAqB;IAClC,WAAW,CAAqB;IAEhC,YAAY,aAAiC,EAAE,WAA+B;QAC5E,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAEQ,oBAAI","file":"plan.js","sourcesContent":["import type { interfaces } from '../interfaces/interfaces';\n\nclass Plan implements interfaces.Plan {\n parentContext: interfaces.Context;\n rootRequest: interfaces.Request;\n\n constructor(parentContext: interfaces.Context, rootRequest: interfaces.Request) {\n this.parentContext = parentContext;\n this.rootRequest = rootRequest;\n }\n}\n\nexport { Plan };\n"]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  }), exports.QueryableString = void 0;
6
6
 
7
7
  class QueryableString {
8
+ str;
8
9
  constructor(str) {
9
10
  this.str = str;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/inversify-lite/planning/queryable_string.ts"],"names":[],"mappings":";;;AAEA,MAAM,eAAe;IAGnB,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAaD,QAAQ,CAAC,YAAoB;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,aAAqB;QAC1B,OAAO,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC;IACpC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF;AAEQ,0CAAe","file":"queryable_string.js","sourcesContent":["import type { interfaces } from '../interfaces/interfaces';\n\nclass QueryableString implements interfaces.QueryableString {\n private str: string;\n\n constructor(str: string) {\n this.str = str;\n }\n\n // startsWith(searchString: string): boolean {\n // return this.str.indexOf(searchString) === 0;\n // }\n\n // endsWith(searchString: string): boolean {\n // let reverseString = '';\n // const reverseSearchString = searchString.split('').reverse().join('');\n // reverseString = this.str.split('').reverse().join('');\n // return this.startsWith.call({ str: reverseString }, reverseSearchString);\n // }\n\n contains(searchString: string): boolean {\n return this.str.indexOf(searchString) !== -1;\n }\n\n equals(compareString: string): boolean {\n return this.str === compareString;\n }\n\n value(): string {\n return this.str;\n }\n}\n\nexport { QueryableString };\n"]}
1
+ {"version":3,"sources":["../src/common/inversify-lite/planning/queryable_string.ts"],"names":[],"mappings":";;;AAEA,MAAM,eAAe;IACX,GAAG,CAAS;IAEpB,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAaD,QAAQ,CAAC,YAAoB;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,aAAqB;QAC1B,OAAO,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC;IACpC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF;AAEQ,0CAAe","file":"queryable_string.js","sourcesContent":["import type { interfaces } from '../interfaces/interfaces';\n\nclass QueryableString implements interfaces.QueryableString {\n private str: string;\n\n constructor(str: string) {\n this.str = str;\n }\n\n // startsWith(searchString: string): boolean {\n // return this.str.indexOf(searchString) === 0;\n // }\n\n // endsWith(searchString: string): boolean {\n // let reverseString = '';\n // const reverseSearchString = searchString.split('').reverse().join('');\n // reverseString = this.str.split('').reverse().join('');\n // return this.startsWith.call({ str: reverseString }, reverseSearchString);\n // }\n\n contains(searchString: string): boolean {\n return this.str.indexOf(searchString) !== -1;\n }\n\n equals(compareString: string): boolean {\n return this.str === compareString;\n }\n\n value(): string {\n return this.str;\n }\n}\n\nexport { QueryableString };\n"]}
@@ -7,6 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const id_1 = require("../utils/id");
8
8
 
9
9
  class Request {
10
+ id;
11
+ serviceIdentifier;
12
+ parentContext;
13
+ parentRequest;
14
+ bindings;
15
+ childRequests;
16
+ target;
17
+ requestScope;
10
18
  constructor(serviceIdentifier, parentContext, parentRequest, bindings, target) {
11
19
  this.id = (0, id_1.id)(), this.serviceIdentifier = serviceIdentifier, this.parentContext = parentContext,
12
20
  this.parentRequest = parentRequest, this.target = target, this.childRequests = [],