ember-source 7.1.0-alpha.3 → 7.1.0-alpha.5

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 (484) hide show
  1. package/build-metadata.json +3 -3
  2. package/dist/dev/packages/@ember/-internals/container/index.js +4 -401
  3. package/dist/dev/packages/@ember/-internals/deprecations/index.js +1 -1
  4. package/dist/dev/packages/@ember/-internals/environment/index.js +3 -151
  5. package/dist/dev/packages/@ember/-internals/glimmer/index.js +14 -15
  6. package/dist/dev/packages/@ember/-internals/meta/lib/meta.js +0 -1
  7. package/dist/dev/packages/@ember/-internals/metal/index.js +18 -9
  8. package/dist/dev/packages/@ember/-internals/routing/index.js +1 -10
  9. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +10 -12
  10. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -10
  11. package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -10
  12. package/dist/dev/packages/@ember/-internals/string/index.js +0 -1
  13. package/dist/dev/packages/@ember/-internals/utils/index.js +8 -3
  14. package/dist/dev/packages/@ember/-internals/views/lib/compat/fallback-view-registry.js +0 -1
  15. package/dist/dev/packages/@ember/-internals/views/lib/mixins/action_support.js +3 -12
  16. package/dist/dev/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -11
  17. package/dist/dev/packages/@ember/-internals/views/lib/system/utils.js +1 -1
  18. package/dist/dev/packages/@ember/-internals/views/lib/views/core_view.js +1 -18
  19. package/dist/dev/packages/@ember/-internals/views/lib/views/states.js +1 -1
  20. package/dist/dev/packages/@ember/application/index.js +5 -28
  21. package/dist/dev/packages/@ember/application/instance.js +3 -22
  22. package/dist/dev/packages/@ember/application/namespace.js +4 -11
  23. package/dist/dev/packages/@ember/array/index.js +7 -15
  24. package/dist/dev/packages/@ember/array/proxy.js +10 -14
  25. package/dist/dev/packages/@ember/canary-features/index.js +1 -1
  26. package/dist/dev/packages/@ember/component/helper.js +1 -14
  27. package/dist/dev/packages/@ember/component/index.js +1355 -16
  28. package/dist/dev/packages/@ember/component/template-only.js +1 -9
  29. package/dist/dev/packages/@ember/controller/index.js +3 -19
  30. package/dist/dev/packages/@ember/debug/container-debug-adapter.js +0 -19
  31. package/dist/dev/packages/@ember/debug/data-adapter.js +4 -11
  32. package/dist/dev/packages/@ember/debug/index.js +2 -1
  33. package/dist/dev/packages/@ember/debug/lib/deprecate.js +1 -1
  34. package/dist/dev/packages/@ember/engine/index.js +3 -29
  35. package/dist/dev/packages/@ember/engine/instance.js +3 -8
  36. package/dist/dev/packages/@ember/helper/index.js +211 -19
  37. package/dist/dev/packages/@ember/instrumentation/index.js +1 -1
  38. package/dist/dev/packages/@ember/modifier/index.js +2 -16
  39. package/dist/dev/packages/@ember/modifier/on.js +1 -9
  40. package/dist/dev/packages/@ember/object/-internals.js +3 -11
  41. package/dist/dev/packages/@ember/object/compat.js +3 -10
  42. package/dist/dev/packages/@ember/object/computed.js +2 -12
  43. package/dist/dev/packages/@ember/object/core.js +10 -18
  44. package/dist/dev/packages/@ember/object/evented.js +2 -12
  45. package/dist/dev/packages/@ember/object/events.js +1 -11
  46. package/dist/dev/packages/@ember/object/index.js +10 -14
  47. package/dist/dev/packages/@ember/object/internals.js +1 -1
  48. package/dist/dev/packages/@ember/object/lib/computed/computed_macros.js +6 -23
  49. package/dist/dev/packages/@ember/object/lib/computed/reduce_computed_macros.js +3 -12
  50. package/dist/dev/packages/@ember/object/mixin.js +7 -10
  51. package/dist/dev/packages/@ember/object/observable.js +8 -12
  52. package/dist/dev/packages/@ember/object/observers.js +1 -11
  53. package/dist/dev/packages/@ember/object/promise-proxy-mixin.js +3 -13
  54. package/dist/dev/packages/@ember/object/proxy.js +0 -7
  55. package/dist/dev/packages/@ember/reactive/collections.js +589 -1
  56. package/dist/dev/packages/@ember/renderer/index.js +1 -14
  57. package/dist/dev/packages/@ember/routing/-internals.js +1 -10
  58. package/dist/dev/packages/@ember/routing/index.js +614 -14
  59. package/dist/dev/packages/@ember/routing/lib/generate_controller.js +2 -11
  60. package/dist/dev/packages/@ember/routing/lib/routing-service.js +7 -17
  61. package/dist/dev/packages/@ember/routing/lib/utils.js +2 -11
  62. package/dist/dev/packages/@ember/routing/route.js +12 -23
  63. package/dist/dev/packages/@ember/routing/router-service.js +8 -17
  64. package/dist/dev/packages/@ember/routing/router.js +5 -21
  65. package/dist/dev/packages/@ember/runloop/index.js +1 -10
  66. package/dist/dev/packages/@ember/service/index.js +1 -11
  67. package/dist/dev/packages/@ember/template/index.js +1 -14
  68. package/dist/dev/packages/@ember/template-compiler/lib/compile-options.js +14 -15
  69. package/dist/dev/packages/@ember/template-compiler/lib/dasherize-component-name.js +0 -1
  70. package/dist/dev/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.js +13 -42
  71. package/dist/dev/packages/@ember/template-compiler/lib/plugins/index.js +1 -1
  72. package/dist/dev/packages/@ember/template-compiler/lib/plugins/transform-resolutions.js +1 -3
  73. package/dist/dev/packages/@ember/template-compiler/lib/template.js +2 -10
  74. package/dist/dev/packages/@ember/template-factory/index.js +1 -8
  75. package/dist/dev/packages/@ember/utils/lib/compare.js +0 -7
  76. package/dist/dev/packages/@ember/utils/lib/is_empty.js +1 -12
  77. package/dist/dev/packages/@glimmer/manager/index.js +4 -314
  78. package/dist/dev/packages/@glimmer/node/index.js +3 -11
  79. package/dist/dev/packages/@glimmer/opcode-compiler/index.js +5 -7
  80. package/dist/dev/packages/@glimmer/program/index.js +194 -3
  81. package/dist/dev/packages/@glimmer/reference/index.js +4 -5
  82. package/dist/dev/packages/@glimmer/runtime/index.js +17 -10
  83. package/dist/dev/packages/@glimmer/tracking/index.js +2 -11
  84. package/dist/dev/packages/@glimmer/tracking/primitives/cache/index.js +1 -11
  85. package/dist/dev/packages/@glimmer/util/index.js +1 -2
  86. package/dist/dev/packages/@glimmer/validator/index.js +4 -1253
  87. package/dist/dev/packages/@glimmer/vm/index.js +1 -1
  88. package/dist/dev/packages/@glimmer/wire-format/index.js +3 -65
  89. package/dist/dev/packages/ember/version.js +1 -1
  90. package/dist/dev/packages/ember-template-compiler/index.js +7 -7
  91. package/dist/dev/packages/shared-chunks/{alias-CSC0WIbj.js → alias-ZcMQckQV.js} +8 -4
  92. package/dist/dev/packages/shared-chunks/api-AYt3zE12.js +310 -0
  93. package/dist/dev/packages/shared-chunks/{api-BqXkkT0p.js → api-WvJPuo9z.js} +4 -5
  94. package/dist/dev/packages/shared-chunks/{args-proxy-DgXMc9b5.js → args-proxy-BNLuRFlO.js} +2 -4
  95. package/dist/dev/packages/shared-chunks/{array-D8PfjQHi.js → array-Bh_kUjzy.js} +2 -1
  96. package/dist/dev/packages/shared-chunks/cache-B7dqAS38.js +596 -0
  97. package/dist/dev/packages/shared-chunks/{capabilities-O_xc7Yqk.js → capabilities-CZkuOqqC.js} +0 -5
  98. package/dist/dev/packages/shared-chunks/chain-tags-D6tuFUj_.js +190 -0
  99. package/dist/dev/packages/shared-chunks/{collections-D_nY_0UJ.js → collections-DPkjqeA3.js} +0 -1
  100. package/dist/dev/packages/shared-chunks/{compiler-D1leQ3Gl.js → compiler-CXB_8GdR.js} +7043 -234
  101. package/dist/dev/packages/shared-chunks/computed-CJnghmXC.js +980 -0
  102. package/dist/dev/packages/shared-chunks/container-BzzHmCNj.js +404 -0
  103. package/dist/dev/packages/shared-chunks/curly-CvC8E_4-.js +617 -0
  104. package/dist/dev/packages/shared-chunks/{fragment-Cc5k9Oy4.js → curried-BVwSNqpf.js} +5 -288
  105. package/dist/dev/packages/shared-chunks/decorator-B5Uh5NFI.js +135 -0
  106. package/dist/dev/packages/shared-chunks/element-C-QcIABg.js +109 -0
  107. package/dist/dev/packages/shared-chunks/element-builder-kHVx0F__.js +812 -0
  108. package/dist/dev/packages/shared-chunks/env-g-kaAFLN.js +161 -0
  109. package/dist/dev/packages/shared-chunks/events-6aFVjD4k.js +180 -0
  110. package/dist/dev/packages/shared-chunks/get-CpJjYeJO.js +138 -0
  111. package/dist/dev/packages/shared-chunks/get-debug-name-CSniHBsn.js +45 -0
  112. package/dist/dev/packages/shared-chunks/get_properties-CIm8IAtP.js +55 -0
  113. package/dist/dev/packages/shared-chunks/guid-Cbq2sNV_.js +123 -0
  114. package/dist/dev/packages/shared-chunks/hash-D3BENmhU.js +192 -0
  115. package/dist/dev/packages/shared-chunks/helper-DlC4YesW.js +314 -0
  116. package/dist/dev/packages/shared-chunks/index-CTxkmV78.js +2500 -0
  117. package/dist/dev/packages/shared-chunks/index-D-xTBV4B.js +220 -0
  118. package/dist/dev/packages/shared-chunks/{index-BUPd6pkm.js → index-DmGmwWPJ.js} +29 -29
  119. package/dist/dev/packages/shared-chunks/injected_property-B4T-FzZZ.js +70 -0
  120. package/dist/dev/packages/shared-chunks/intern-zquhAEIg.js +51 -0
  121. package/dist/dev/packages/shared-chunks/internal-CbQSKXEm.js +140 -0
  122. package/dist/dev/packages/shared-chunks/internal-helper-Dsl9_7H_.js +7 -0
  123. package/dist/dev/packages/shared-chunks/{invoke-CgfoEtMT.js → invoke-B6j6DdDz.js} +3 -7
  124. package/dist/{prod/packages/shared-chunks/is_proxy-Cr1qlMv_.js → dev/packages/shared-chunks/is_proxy-Bzg0d4m4.js} +1 -1
  125. package/dist/dev/packages/shared-chunks/libraries-CHBwbR72.js +79 -0
  126. package/dist/dev/packages/shared-chunks/mandatory-setter-BpbAMTzV.js +107 -0
  127. package/dist/dev/packages/shared-chunks/meta-BmRXesrk.js +46 -0
  128. package/dist/{prod/packages/shared-chunks/name-C68GLLO3.js → dev/packages/shared-chunks/name-Clp4Vsod.js} +1 -1
  129. package/dist/dev/packages/shared-chunks/{namespace_search-uT8odThF.js → namespace_search-BfvzEQzN.js} +1 -2
  130. package/dist/dev/packages/shared-chunks/normalize-CKySQVU7.js +84 -0
  131. package/dist/dev/packages/shared-chunks/observers-C2DurkLG.js +199 -0
  132. package/dist/dev/packages/shared-chunks/on-D8QwT-eN.js +253 -0
  133. package/dist/dev/packages/shared-chunks/opcode-metadata-9iSW5JGP.js +285 -0
  134. package/dist/dev/packages/shared-chunks/opcodes-CplRyHl_.js +50 -0
  135. package/dist/dev/packages/shared-chunks/or-DBU9Ge4r.js +118 -0
  136. package/dist/{prod/packages/shared-chunks/program-B7SJZ5NF.js → dev/packages/shared-chunks/program-DzAfcWFj.js} +1 -1
  137. package/dist/dev/packages/shared-chunks/{program-context-sJz0oHOA.js → program-context-CqcQMsfa.js} +3 -3
  138. package/dist/dev/packages/shared-chunks/property_get-CIBS9umw.js +139 -0
  139. package/dist/dev/packages/shared-chunks/{property_set-DaoZXGM5.js → property_set-D3PKyisF.js} +4 -2
  140. package/dist/dev/packages/shared-chunks/props-fiqxqhAH.js +85 -0
  141. package/dist/dev/packages/shared-chunks/{reference-C3TKDRnP.js → reference-BoPB2LfI.js} +3 -4
  142. package/dist/dev/packages/shared-chunks/{registers-ylirb0dq.js → registers-DoamZwaG.js} +1 -1
  143. package/dist/{prod/packages/shared-chunks/rehydrate-builder-CUefZL4I.js → dev/packages/shared-chunks/rehydrate-builder-DdzXTaJk.js} +7 -4
  144. package/dist/dev/packages/shared-chunks/{render-C1HzKUcM.js → render-DDdabL30.js} +510 -15
  145. package/dist/{prod/packages/shared-chunks/serialize-builder-DgpXSc2Q.js → dev/packages/shared-chunks/serialize-builder-B3u9Wr3n.js} +2 -7
  146. package/dist/dev/packages/shared-chunks/set_properties-BghuuGJx.js +48 -0
  147. package/dist/dev/packages/shared-chunks/{setup-registry-B7-RknRf.js → setup-registry-XxD0xvgf.js} +34 -14
  148. package/dist/dev/packages/shared-chunks/spec-BXl1reqK.js +16 -0
  149. package/dist/dev/packages/shared-chunks/super-BBBjgF69.js +91 -0
  150. package/dist/dev/packages/shared-chunks/template-BRrQR6KS.js +16 -0
  151. package/dist/dev/packages/shared-chunks/template-only-Yluyu0DY.js +78 -0
  152. package/dist/dev/packages/shared-chunks/textarea-C0Us0PNJ.js +468 -0
  153. package/dist/dev/packages/shared-chunks/tracked-CKE4wnE6.js +148 -0
  154. package/dist/dev/packages/shared-chunks/tracked-data-CGnA4ytZ.js +31 -0
  155. package/dist/dev/packages/shared-chunks/transform-resolutions-h1ik8gqW.js +645 -0
  156. package/dist/dev/packages/shared-chunks/unique-id-A83bjEE-.js +32 -0
  157. package/dist/{prod/packages/shared-chunks/on-CLxdmpmk.js → dev/packages/shared-chunks/untouchable-this-cH6_N2LJ.js} +215 -1397
  158. package/dist/dev/packages/shared-chunks/well-known-_EVO9RaV.js +17 -0
  159. package/dist/prod/packages/@ember/-internals/container/index.js +5 -315
  160. package/dist/prod/packages/@ember/-internals/deprecations/index.js +1 -1
  161. package/dist/prod/packages/@ember/-internals/environment/index.js +3 -148
  162. package/dist/prod/packages/@ember/-internals/glimmer/index.js +14 -13
  163. package/dist/prod/packages/@ember/-internals/meta/lib/meta.js +1 -2
  164. package/dist/prod/packages/@ember/-internals/metal/index.js +19 -13
  165. package/dist/prod/packages/@ember/-internals/routing/index.js +2 -6
  166. package/dist/prod/packages/@ember/-internals/runtime/lib/ext/rsvp.js +1 -1
  167. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +10 -10
  168. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +2 -6
  169. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.js +1 -1
  170. package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -6
  171. package/dist/prod/packages/@ember/-internals/string/index.js +0 -2
  172. package/dist/prod/packages/@ember/-internals/utils/index.js +33 -30
  173. package/dist/prod/packages/@ember/-internals/views/lib/compat/fallback-view-registry.js +0 -2
  174. package/dist/prod/packages/@ember/-internals/views/lib/mixins/action_support.js +2 -6
  175. package/dist/prod/packages/@ember/-internals/views/lib/system/event_dispatcher.js +3 -7
  176. package/dist/prod/packages/@ember/-internals/views/lib/system/utils.js +2 -2
  177. package/dist/prod/packages/@ember/-internals/views/lib/views/core_view.js +1 -14
  178. package/dist/prod/packages/@ember/-internals/views/lib/views/states.js +1 -2
  179. package/dist/prod/packages/@ember/application/index.js +5 -24
  180. package/dist/prod/packages/@ember/application/instance.js +6 -18
  181. package/dist/prod/packages/@ember/application/namespace.js +5 -8
  182. package/dist/prod/packages/@ember/array/index.js +8 -12
  183. package/dist/prod/packages/@ember/array/proxy.js +10 -10
  184. package/dist/prod/packages/@ember/canary-features/index.js +1 -1
  185. package/dist/prod/packages/@ember/component/helper.js +1 -12
  186. package/dist/prod/packages/@ember/component/index.js +1292 -15
  187. package/dist/prod/packages/@ember/component/template-only.js +1 -6
  188. package/dist/prod/packages/@ember/controller/index.js +3 -16
  189. package/dist/prod/packages/@ember/debug/container-debug-adapter.js +1 -15
  190. package/dist/prod/packages/@ember/debug/data-adapter.js +5 -7
  191. package/dist/prod/packages/@ember/debug/index.js +1 -0
  192. package/dist/prod/packages/@ember/debug/lib/deprecate.js +1 -1
  193. package/dist/prod/packages/@ember/engine/index.js +4 -25
  194. package/dist/prod/packages/@ember/engine/instance.js +4 -9
  195. package/dist/prod/packages/@ember/helper/index.js +211 -17
  196. package/dist/prod/packages/@ember/instrumentation/index.js +1 -1
  197. package/dist/prod/packages/@ember/modifier/index.js +2 -14
  198. package/dist/prod/packages/@ember/modifier/on.js +1 -6
  199. package/dist/prod/packages/@ember/object/-internals.js +3 -6
  200. package/dist/prod/packages/@ember/object/compat.js +4 -7
  201. package/dist/prod/packages/@ember/object/computed.js +2 -8
  202. package/dist/prod/packages/@ember/object/core.js +9 -15
  203. package/dist/prod/packages/@ember/object/evented.js +2 -7
  204. package/dist/prod/packages/@ember/object/events.js +1 -6
  205. package/dist/prod/packages/@ember/object/index.js +10 -12
  206. package/dist/prod/packages/@ember/object/internals.js +3 -6
  207. package/dist/prod/packages/@ember/object/lib/computed/computed_macros.js +6 -20
  208. package/dist/prod/packages/@ember/object/lib/computed/reduce_computed_macros.js +3 -9
  209. package/dist/prod/packages/@ember/object/mixin.js +7 -9
  210. package/dist/prod/packages/@ember/object/observable.js +8 -9
  211. package/dist/prod/packages/@ember/object/observers.js +1 -6
  212. package/dist/prod/packages/@ember/object/promise-proxy-mixin.js +3 -9
  213. package/dist/prod/packages/@ember/object/proxy.js +0 -7
  214. package/dist/prod/packages/@ember/reactive/collections.js +589 -1
  215. package/dist/prod/packages/@ember/renderer/index.js +1 -12
  216. package/dist/prod/packages/@ember/routing/history-location.js +1 -1
  217. package/dist/prod/packages/@ember/routing/index.js +581 -12
  218. package/dist/prod/packages/@ember/routing/lib/dsl.js +1 -1
  219. package/dist/prod/packages/@ember/routing/lib/generate_controller.js +2 -6
  220. package/dist/prod/packages/@ember/routing/lib/routing-service.js +5 -14
  221. package/dist/prod/packages/@ember/routing/lib/utils.js +2 -6
  222. package/dist/prod/packages/@ember/routing/none-location.js +1 -1
  223. package/dist/prod/packages/@ember/routing/route.js +12 -21
  224. package/dist/prod/packages/@ember/routing/router-service.js +6 -14
  225. package/dist/prod/packages/@ember/routing/router.js +5 -17
  226. package/dist/prod/packages/@ember/runloop/index.js +2 -6
  227. package/dist/prod/packages/@ember/service/index.js +1 -7
  228. package/dist/prod/packages/@ember/template/index.js +1 -12
  229. package/dist/prod/packages/@ember/template-compiler/lib/compile-options.js +15 -14
  230. package/dist/prod/packages/@ember/template-compiler/lib/dasherize-component-name.js +0 -2
  231. package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-against-attrs.js +1 -1
  232. package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-against-named-outlets.js +1 -1
  233. package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.js +1 -1
  234. package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.js +1 -1
  235. package/dist/prod/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.js +13 -42
  236. package/dist/prod/packages/@ember/template-compiler/lib/plugins/index.js +1 -1
  237. package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-each-track-array.js +1 -1
  238. package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-in-element.js +1 -1
  239. package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-resolutions.js +127 -4
  240. package/dist/prod/packages/@ember/template-compiler/lib/template.js +2 -7
  241. package/dist/prod/packages/@ember/template-factory/index.js +1 -5
  242. package/dist/prod/packages/@ember/utils/lib/compare.js +1 -8
  243. package/dist/prod/packages/@ember/utils/lib/is_empty.js +1 -7
  244. package/dist/prod/packages/@glimmer/manager/index.js +4 -292
  245. package/dist/prod/packages/@glimmer/node/index.js +3 -8
  246. package/dist/prod/packages/@glimmer/opcode-compiler/index.js +5 -5
  247. package/dist/prod/packages/@glimmer/program/index.js +194 -3
  248. package/dist/prod/packages/@glimmer/reference/index.js +4 -4
  249. package/dist/prod/packages/@glimmer/runtime/index.js +16 -8
  250. package/dist/prod/packages/@glimmer/tracking/index.js +2 -7
  251. package/dist/prod/packages/@glimmer/tracking/primitives/cache/index.js +1 -6
  252. package/dist/prod/packages/@glimmer/util/index.js +2 -2
  253. package/dist/prod/packages/@glimmer/validator/index.js +5 -1016
  254. package/dist/prod/packages/@glimmer/vm/index.js +1 -1
  255. package/dist/prod/packages/@glimmer/wire-format/index.js +3 -65
  256. package/dist/prod/packages/ember/version.js +1 -1
  257. package/dist/prod/packages/ember-template-compiler/index.js +5 -7
  258. package/dist/prod/packages/shared-chunks/{alias-BLBQkche.js → alias-CLuFeKoV.js} +8 -6
  259. package/dist/prod/packages/shared-chunks/api-CM1trl_4.js +289 -0
  260. package/dist/prod/packages/shared-chunks/{api-DtWa0ZaF.js → api-zh_k31vb.js} +4 -5
  261. package/dist/prod/packages/shared-chunks/{args-proxy-Dl0A0YWI.js → args-proxy-BDXbXCF9.js} +2 -2
  262. package/dist/prod/packages/shared-chunks/{array-kVQfzrQn.js → array-DHdr4__s.js} +3 -3
  263. package/dist/prod/packages/shared-chunks/assert-CUCJBR2C.js +19 -0
  264. package/dist/prod/packages/shared-chunks/cache-BIlOoPA7.js +371 -0
  265. package/dist/prod/packages/shared-chunks/{capabilities-DXA-L0iT.js → capabilities-_5e35539.js} +0 -3
  266. package/dist/prod/packages/shared-chunks/chain-tags-BJqcuCM1.js +179 -0
  267. package/dist/prod/packages/shared-chunks/{compiler-Bbki2GT_.js → compiler-DjQtTQGk.js} +7045 -193
  268. package/dist/prod/packages/shared-chunks/{namespace_search-Dcdalhj6.js → computed-2Udcmflw.js} +109 -239
  269. package/dist/prod/packages/shared-chunks/container-D5NwW5Fd.js +316 -0
  270. package/dist/prod/packages/shared-chunks/curly-BsqvV8G0.js +546 -0
  271. package/dist/prod/packages/shared-chunks/{fragment-D7nBU9ae.js → curried-BVwSNqpf.js} +6 -303
  272. package/dist/prod/packages/shared-chunks/debug-render-tree-BLtnOSbb.js +2049 -0
  273. package/dist/prod/packages/shared-chunks/{decorator-BdDDBUd2.js → decorator-DBCISop4.js} +1 -1
  274. package/dist/prod/packages/shared-chunks/element-BjFr0tO0.js +101 -0
  275. package/dist/prod/packages/shared-chunks/{element-builder-BmLF0C-1.js → element-builder-BPjq0rxK.js} +109 -88
  276. package/dist/prod/packages/shared-chunks/env-DXxsTFkM.js +158 -0
  277. package/dist/prod/packages/shared-chunks/events-970OxD6Q.js +175 -0
  278. package/dist/prod/packages/shared-chunks/get-D5wxdTkY.js +138 -0
  279. package/dist/prod/packages/shared-chunks/get_properties-BcAC5sGx.js +55 -0
  280. package/dist/prod/packages/shared-chunks/guid-Cbq2sNV_.js +123 -0
  281. package/dist/prod/packages/shared-chunks/hash-DcUe-meU.js +192 -0
  282. package/dist/prod/packages/shared-chunks/helper-Da672z4a.js +299 -0
  283. package/dist/prod/packages/shared-chunks/{index-CjaDF9kC.js → index--2U-v2nf.js} +18 -10
  284. package/dist/prod/packages/shared-chunks/index-D-xTBV4B.js +220 -0
  285. package/dist/prod/packages/shared-chunks/index-D87qoERP.js +2322 -0
  286. package/dist/prod/packages/shared-chunks/{injected_property-CTVs5FPh.js → injected_property-D9B-fPiH.js} +3 -3
  287. package/dist/prod/packages/shared-chunks/intern-zquhAEIg.js +51 -0
  288. package/dist/prod/packages/shared-chunks/internal-DidurjJB.js +137 -0
  289. package/dist/prod/packages/shared-chunks/internal-helper-DIbr1RgC.js +7 -0
  290. package/dist/prod/packages/shared-chunks/{invoke-BdJCXD-b.js → invoke-Dr_CRwA_.js} +3 -5
  291. package/dist/{dev/packages/shared-chunks/is_proxy-B0smdQy8.js → prod/packages/shared-chunks/is_proxy-Bzg0d4m4.js} +1 -1
  292. package/dist/prod/packages/shared-chunks/libraries-DaXpIDYN.js +60 -0
  293. package/dist/prod/packages/shared-chunks/meta-B9mldqPL.js +36 -0
  294. package/dist/{dev/packages/shared-chunks/name-Z7dpqvzn.js → prod/packages/shared-chunks/name-Clp4Vsod.js} +1 -1
  295. package/dist/prod/packages/shared-chunks/namespace_search-BfvzEQzN.js +134 -0
  296. package/dist/prod/packages/shared-chunks/normalize-D9jDJVGg.js +84 -0
  297. package/dist/prod/packages/shared-chunks/observers-Co4JALkS.js +199 -0
  298. package/dist/prod/packages/shared-chunks/on-C3ZQiUUD.js +228 -0
  299. package/dist/prod/packages/shared-chunks/opcode-metadata-9iSW5JGP.js +285 -0
  300. package/dist/prod/packages/shared-chunks/opcodes-CplRyHl_.js +50 -0
  301. package/dist/prod/packages/shared-chunks/or-oTVMuHc8.js +91 -0
  302. package/dist/{dev/packages/shared-chunks/program-DfV0v8aa.js → prod/packages/shared-chunks/program-B7CWdS8W.js} +1 -2
  303. package/dist/prod/packages/shared-chunks/{program-context-DFiwaPMR.js → program-context-CGMN-aQM.js} +3 -3
  304. package/dist/prod/packages/shared-chunks/property_get-hWJ0nGhW.js +122 -0
  305. package/dist/prod/packages/shared-chunks/{property_set-B2sZxeCw.js → property_set-Dj5-ScWk.js} +4 -5
  306. package/dist/prod/packages/shared-chunks/props-fiqxqhAH.js +85 -0
  307. package/dist/prod/packages/shared-chunks/{reference-BNqcwZWH.js → reference-BshxG6wn.js} +3 -3
  308. package/dist/prod/packages/shared-chunks/{registers-ylirb0dq.js → registers-DoamZwaG.js} +1 -1
  309. package/dist/{dev/packages/shared-chunks/rehydrate-builder-CEk2KOIk.js → prod/packages/shared-chunks/rehydrate-builder-BKg2X6Lo.js} +7 -7
  310. package/dist/prod/packages/shared-chunks/{render-BlriW61t.js → render-nx5-PsDW.js} +487 -12
  311. package/dist/{dev/packages/shared-chunks/serialize-builder-CPKxdfiH.js → prod/packages/shared-chunks/serialize-builder-BGbC30SN.js} +2 -10
  312. package/dist/prod/packages/shared-chunks/set_properties-oPyURk67.js +48 -0
  313. package/dist/prod/packages/shared-chunks/{setup-registry-DeObnZ2Z.js → setup-registry-TiaKLj5k.js} +35 -13
  314. package/dist/prod/packages/shared-chunks/spec-BXl1reqK.js +16 -0
  315. package/dist/prod/packages/shared-chunks/super-BBBjgF69.js +91 -0
  316. package/dist/prod/packages/shared-chunks/template-BRrQR6KS.js +16 -0
  317. package/dist/prod/packages/shared-chunks/template-only-BtLl0uH0.js +78 -0
  318. package/dist/prod/packages/shared-chunks/textarea-CPKZ1c_O.js +455 -0
  319. package/dist/prod/packages/shared-chunks/{tracked-Cl5l4v8b.js → tracked-CffAABMz.js} +6 -4
  320. package/dist/prod/packages/shared-chunks/tracked-data-C83f5V5S.js +31 -0
  321. package/dist/prod/packages/shared-chunks/unique-id-CfHImDRV.js +32 -0
  322. package/dist/prod/packages/shared-chunks/well-known-_EVO9RaV.js +17 -0
  323. package/docs/data.json +1368 -1031
  324. package/package.json +1 -1
  325. package/types/stable/@ember/-internals/container/lib/registry.d.ts +1 -1
  326. package/types/stable/@ember/-internals/deprecations/index.d.ts +1 -1
  327. package/types/stable/@ember/-internals/environment/lib/env.d.ts +11 -0
  328. package/types/stable/@ember/-internals/glimmer/index.d.ts +1 -1
  329. package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +1 -1
  330. package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +1 -1
  331. package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +1 -1
  332. package/types/stable/@ember/-internals/glimmer/lib/component-managers/route-template.d.ts +2 -2
  333. package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +9 -7
  334. package/types/stable/@ember/-internals/glimmer/lib/components/abstract-input.d.ts +1 -1
  335. package/types/stable/@ember/-internals/glimmer/lib/dom.d.ts +6 -2
  336. package/types/stable/@ember/-internals/glimmer/lib/environment.d.ts +1 -1
  337. package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +1 -1
  338. package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +3 -3
  339. package/types/stable/@ember/-internals/glimmer/lib/setup-registry.d.ts +1 -1
  340. package/types/stable/@ember/-internals/glimmer/lib/utils/bindings.d.ts +1 -1
  341. package/types/stable/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.d.ts +3 -2
  342. package/types/stable/@ember/-internals/glimmer/lib/utils/iterator.d.ts +1 -1
  343. package/types/stable/@ember/-internals/glimmer/lib/utils/managers.d.ts +2 -1
  344. package/types/stable/@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.d.ts +1 -1
  345. package/types/stable/@ember/-internals/glimmer/lib/utils/string.d.ts +1 -1
  346. package/types/stable/@ember/-internals/meta/lib/meta.d.ts +3 -2
  347. package/types/stable/@ember/-internals/metal/lib/cache.d.ts +1 -1
  348. package/types/stable/@ember/-internals/metal/lib/chain-tags.d.ts +3 -2
  349. package/types/stable/@ember/-internals/metal/lib/computed.d.ts +1 -1
  350. package/types/stable/@ember/-internals/metal/lib/decorator.d.ts +1 -1
  351. package/types/stable/@ember/-internals/metal/lib/deprecate_property.d.ts +1 -1
  352. package/types/stable/@ember/-internals/metal/lib/events.d.ts +1 -1
  353. package/types/stable/@ember/-internals/metal/lib/observer.d.ts +1 -1
  354. package/types/stable/@ember/-internals/metal/lib/properties.d.ts +1 -1
  355. package/types/stable/@ember/-internals/metal/lib/property_events.d.ts +1 -1
  356. package/types/stable/@ember/-internals/metal/lib/tags.d.ts +2 -1
  357. package/types/stable/@ember/-internals/runtime/lib/mixins/container_proxy.d.ts +1 -1
  358. package/types/stable/@ember/-internals/runtime/lib/mixins/registry_proxy.d.ts +1 -1
  359. package/types/stable/@ember/-internals/utils/lib/is_proxy.d.ts +1 -1
  360. package/types/stable/@ember/-internals/utils/lib/mandatory-setter.d.ts +1 -1
  361. package/types/stable/@ember/-internals/views/lib/system/utils.d.ts +1 -1
  362. package/types/stable/@ember/-internals/views/lib/views/core_view.d.ts +2 -2
  363. package/types/stable/@ember/-internals/views/lib/views/states.d.ts +1 -1
  364. package/types/stable/@ember/application/index.d.ts +5 -4
  365. package/types/stable/@ember/application/instance.d.ts +4 -3
  366. package/types/stable/@ember/application/namespace.d.ts +1 -1
  367. package/types/stable/@ember/array/proxy.d.ts +4 -3
  368. package/types/stable/@ember/component/helper.d.ts +1 -1
  369. package/types/stable/@ember/component/index.d.ts +6 -3
  370. package/types/stable/@ember/controller/index.d.ts +2 -2
  371. package/types/stable/@ember/debug/container-debug-adapter.d.ts +1 -1
  372. package/types/stable/@ember/engine/index.d.ts +3 -3
  373. package/types/stable/@ember/engine/instance.d.ts +4 -3
  374. package/types/stable/@ember/helper/index.d.ts +223 -3
  375. package/types/stable/@ember/modifier/index.d.ts +1 -1
  376. package/types/stable/@ember/object/-internals.d.ts +2 -2
  377. package/types/stable/@ember/object/compat.d.ts +2 -2
  378. package/types/stable/@ember/object/computed.d.ts +3 -1
  379. package/types/stable/@ember/object/evented.d.ts +1 -1
  380. package/types/stable/@ember/object/events.d.ts +1 -1
  381. package/types/stable/@ember/object/index.d.ts +8 -2
  382. package/types/stable/@ember/object/lib/computed/computed_macros.d.ts +1 -1
  383. package/types/stable/@ember/object/mixin.d.ts +1 -1
  384. package/types/stable/@ember/object/observers.d.ts +1 -1
  385. package/types/stable/@ember/object/proxy.d.ts +1 -1
  386. package/types/stable/@ember/reactive/collections.d.ts +6 -6
  387. package/types/stable/@ember/renderer/index.d.ts +2 -2
  388. package/types/stable/@ember/routing/index.d.ts +1 -1
  389. package/types/stable/@ember/routing/lib/controller_for.d.ts +2 -2
  390. package/types/stable/@ember/routing/route.d.ts +2 -2
  391. package/types/stable/@ember/routing/router.d.ts +2 -2
  392. package/types/stable/@ember/service/index.d.ts +1 -1
  393. package/types/stable/@ember/template/index.d.ts +1 -1
  394. package/types/stable/@ember/template-compiler/lib/dasherize-component-name.d.ts +1 -1
  395. package/types/stable/@ember/template-compiler/lib/plugins/assert-against-attrs.d.ts +1 -1
  396. package/types/stable/@ember/template-compiler/lib/plugins/assert-against-named-outlets.d.ts +1 -1
  397. package/types/stable/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.d.ts +1 -1
  398. package/types/stable/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.d.ts +1 -1
  399. package/types/stable/@ember/template-compiler/lib/plugins/auto-import-builtins.d.ts +1 -4
  400. package/types/stable/@ember/template-compiler/lib/plugins/transform-action-syntax.d.ts +1 -1
  401. package/types/stable/@ember/template-compiler/lib/plugins/transform-each-in-into-each.d.ts +1 -1
  402. package/types/stable/@ember/template-compiler/lib/plugins/transform-each-track-array.d.ts +1 -1
  403. package/types/stable/@ember/template-compiler/lib/plugins/transform-in-element.d.ts +1 -1
  404. package/types/stable/@ember/template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.d.ts +1 -1
  405. package/types/stable/@ember/template-compiler/lib/plugins/transform-resolutions.d.ts +1 -1
  406. package/types/stable/@ember/template-compiler/lib/plugins/transform-wrap-mount-and-outlet.d.ts +1 -1
  407. package/types/stable/@ember/template-compiler/lib/plugins/utils.d.ts +1 -1
  408. package/types/stable/@ember/template-compiler/lib/system/calculate-location-display.d.ts +1 -1
  409. package/types/stable/@ember/template-compiler/lib/types.d.ts +2 -1
  410. package/types/stable/@ember/template-factory/index.d.ts +1 -1
  411. package/types/stable/@glimmer/compiler/lib/builder/builder-interface.d.ts +2 -2
  412. package/types/stable/@glimmer/compiler/lib/builder/builder.d.ts +2 -2
  413. package/types/stable/@glimmer/compiler/lib/compiler.d.ts +1 -1
  414. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/context.d.ts +2 -1
  415. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/index.d.ts +2 -1
  416. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/impl.d.ts +2 -1
  417. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.d.ts +1 -1
  418. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/dynamic-vars.d.ts +1 -1
  419. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/has-block.d.ts +2 -1
  420. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/if-unless.d.ts +1 -1
  421. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/log.d.ts +1 -1
  422. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/classified.d.ts +1 -1
  423. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/component.d.ts +1 -1
  424. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/simple-element.d.ts +2 -1
  425. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/expressions.d.ts +1 -1
  426. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/statements.d.ts +1 -1
  427. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/strict-mode.d.ts +1 -1
  428. package/types/stable/@glimmer/compiler/lib/passes/2-encoding/expressions.d.ts +1 -1
  429. package/types/stable/@glimmer/compiler/lib/passes/2-encoding/mir.d.ts +3 -1
  430. package/types/stable/@glimmer/compiler/lib/shared/result.d.ts +1 -1
  431. package/types/stable/@glimmer/manager/lib/public/component.d.ts +1 -1
  432. package/types/stable/@glimmer/manager/lib/util/args-proxy.d.ts +1 -1
  433. package/types/stable/@glimmer/manager/lib/util/capabilities.d.ts +1 -1
  434. package/types/stable/@glimmer/node/lib/node-dom-helper.d.ts +1 -1
  435. package/types/stable/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.d.ts +1 -1
  436. package/types/stable/@glimmer/runtime/index.d.ts +9 -4
  437. package/types/stable/@glimmer/runtime/lib/compiled/expressions/concat.d.ts +1 -1
  438. package/types/stable/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.d.ts +4 -3
  439. package/types/stable/@glimmer/runtime/lib/compiled/opcodes/component.d.ts +1 -1
  440. package/types/stable/@glimmer/runtime/lib/compiled/opcodes/dom.d.ts +2 -2
  441. package/types/stable/@glimmer/runtime/lib/compiled/opcodes/vm.d.ts +2 -2
  442. package/types/stable/@glimmer/runtime/lib/component/template-only.d.ts +1 -1
  443. package/types/stable/@glimmer/runtime/lib/curried-value.d.ts +1 -1
  444. package/types/stable/@glimmer/runtime/lib/helpers/and.d.ts +3 -0
  445. package/types/stable/@glimmer/runtime/lib/helpers/eq.d.ts +8 -0
  446. package/types/stable/@glimmer/runtime/lib/helpers/gt.d.ts +8 -0
  447. package/types/stable/@glimmer/runtime/lib/helpers/gte.d.ts +8 -0
  448. package/types/stable/@glimmer/runtime/lib/helpers/invoke.d.ts +1 -1
  449. package/types/stable/@glimmer/runtime/lib/helpers/lt.d.ts +8 -0
  450. package/types/stable/@glimmer/runtime/lib/helpers/lte.d.ts +8 -0
  451. package/types/stable/@glimmer/runtime/lib/helpers/neq.d.ts +8 -0
  452. package/types/stable/@glimmer/runtime/lib/helpers/not.d.ts +3 -0
  453. package/types/stable/@glimmer/runtime/lib/helpers/or.d.ts +3 -0
  454. package/types/stable/@glimmer/runtime/lib/opcodes.d.ts +2 -2
  455. package/types/stable/@glimmer/runtime/lib/references/class-list.d.ts +1 -1
  456. package/types/stable/@glimmer/runtime/lib/references/curry-value.d.ts +1 -1
  457. package/types/stable/@glimmer/runtime/lib/render.d.ts +1 -1
  458. package/types/stable/@glimmer/runtime/lib/scope.d.ts +1 -1
  459. package/types/stable/@glimmer/runtime/lib/vm/append.d.ts +3 -2
  460. package/types/stable/@glimmer/runtime/lib/vm/arguments.d.ts +2 -2
  461. package/types/stable/@glimmer/runtime/lib/vm/content/text.d.ts +1 -1
  462. package/types/stable/@glimmer/runtime/lib/vm/element-builder.d.ts +1 -1
  463. package/types/stable/@glimmer/runtime/lib/vm/low-level.d.ts +2 -1
  464. package/types/stable/@glimmer/runtime/lib/vm/rehydrate-builder.d.ts +1 -1
  465. package/types/stable/@glimmer/runtime/lib/vm/update.d.ts +2 -1
  466. package/types/stable/@glimmer/syntax/lib/keywords.d.ts +2 -2
  467. package/types/stable/@glimmer/tracking/index.d.ts +2 -1
  468. package/types/stable/@glimmer/tracking/primitives/cache.d.ts +1 -1
  469. package/types/stable/index.d.ts +9 -0
  470. package/dist/dev/packages/shared-chunks/constants-p7AL-pog.js +0 -213
  471. package/dist/dev/packages/shared-chunks/dynamic-BfDKO5NI.js +0 -3823
  472. package/dist/dev/packages/shared-chunks/element-builder-DO43ztVP.js +0 -404
  473. package/dist/dev/packages/shared-chunks/index-QZstta6s.js +0 -6306
  474. package/dist/dev/packages/shared-chunks/mandatory-setter-DHZe7-kW.js +0 -425
  475. package/dist/dev/packages/shared-chunks/observers-Bj9qLVau.js +0 -2062
  476. package/dist/dev/packages/shared-chunks/set_properties-kVGzZL_a.js +0 -100
  477. package/dist/dev/packages/shared-chunks/transform-resolutions-D-YtZ0_g.js +0 -7458
  478. package/dist/prod/packages/shared-chunks/constants-2M371WiB.js +0 -210
  479. package/dist/prod/packages/shared-chunks/index-6pnzcm45.js +0 -5931
  480. package/dist/prod/packages/shared-chunks/observers-tZ2aOzr4.js +0 -714
  481. package/dist/prod/packages/shared-chunks/set_properties-C1T46IiN.js +0 -101
  482. package/dist/prod/packages/shared-chunks/super-Cm_a_cLQ.js +0 -275
  483. package/dist/prod/packages/shared-chunks/transform-resolutions-DR4GLmR2.js +0 -6936
  484. package/dist/prod/packages/shared-chunks/{collections-GpG8lT2g.js → collections-C3Y8z_9v.js} +9 -9
@@ -0,0 +1,404 @@
1
+ import { setOwner } from '../@ember/-internals/owner/index.js';
2
+ import { m as makeDictionary } from './dictionary-gc5gpyOG.js';
3
+ import '../@ember/debug/index.js';
4
+ import { assert } from '../@ember/debug/lib/assert.js';
5
+
6
+ // node exposes this. I'm not pulling in the whole @types/node because it
7
+ // doesn't work with isolatedModules
8
+
9
+ let leakTracking;
10
+ let containers;
11
+ {
12
+ // requires v8
13
+ // chrome --js-flags="--allow-natives-syntax --expose-gc"
14
+ // node --allow-natives-syntax --expose-gc
15
+ try {
16
+ if (typeof gc === 'function') {
17
+ leakTracking = (() => {
18
+ // avoid syntax errors when --allow-natives-syntax not present
19
+ let GetWeakSetValues = new Function('weakSet', 'return %GetWeakSetValues(weakSet, 0)');
20
+ containers = new WeakSet();
21
+ return {
22
+ hasContainers() {
23
+ gc();
24
+ return GetWeakSetValues(containers).length > 0;
25
+ },
26
+ reset() {
27
+ let values = GetWeakSetValues(containers);
28
+ for (let i = 0; i < values.length; i++) {
29
+ containers.delete(values[i]);
30
+ }
31
+ }
32
+ };
33
+ })();
34
+ }
35
+ } catch (_e) {
36
+ // ignore
37
+ }
38
+ }
39
+ /**
40
+ A container used to instantiate and cache objects.
41
+
42
+ Every `Container` must be associated with a `Registry`, which is referenced
43
+ to determine the factory and options that should be used to instantiate
44
+ objects.
45
+
46
+ The public API for `Container` is still in flux and should not be considered
47
+ stable.
48
+
49
+ @private
50
+ @class Container
51
+ */
52
+ class Container {
53
+ static _leakTracking;
54
+ owner;
55
+ registry;
56
+ cache;
57
+ factoryManagerCache;
58
+ validationCache;
59
+ isDestroyed;
60
+ isDestroying;
61
+ constructor(registry, options = {}) {
62
+ this.registry = registry;
63
+ this.owner = options.owner || null;
64
+ this.cache = makeDictionary(options.cache || null);
65
+ this.factoryManagerCache = makeDictionary(options.factoryManagerCache || null);
66
+ this.isDestroyed = false;
67
+ this.isDestroying = false;
68
+ {
69
+ this.validationCache = makeDictionary(options.validationCache || null);
70
+ if (containers !== undefined) {
71
+ containers.add(this);
72
+ }
73
+ }
74
+ }
75
+
76
+ /**
77
+ @private
78
+ @property registry
79
+ @type Registry
80
+ @since 1.11.0
81
+ */
82
+
83
+ /**
84
+ @private
85
+ @property cache
86
+ @type InheritingDict
87
+ */
88
+
89
+ /**
90
+ @private
91
+ @property validationCache
92
+ @type InheritingDict
93
+ */
94
+
95
+ /**
96
+ Given a fullName return a corresponding instance.
97
+ The default behavior is for lookup to return a singleton instance.
98
+ The singleton is scoped to the container, allowing multiple containers
99
+ to all have their own locally scoped singletons.
100
+ ```javascript
101
+ let registry = new Registry();
102
+ let container = registry.container();
103
+ registry.register('api:twitter', Twitter);
104
+ let twitter = container.lookup('api:twitter');
105
+ twitter instanceof Twitter; // => true
106
+ // by default the container will return singletons
107
+ let twitter2 = container.lookup('api:twitter');
108
+ twitter2 instanceof Twitter; // => true
109
+ twitter === twitter2; //=> true
110
+ ```
111
+ If singletons are not wanted, an optional flag can be provided at lookup.
112
+ ```javascript
113
+ let registry = new Registry();
114
+ let container = registry.container();
115
+ registry.register('api:twitter', Twitter);
116
+ let twitter = container.lookup('api:twitter', { singleton: false });
117
+ let twitter2 = container.lookup('api:twitter', { singleton: false });
118
+ twitter === twitter2; //=> false
119
+ ```
120
+ @private
121
+ @method lookup
122
+ @param {String} fullName
123
+ @param {RegisterOptions} [options]
124
+ @return {any}
125
+ */
126
+ lookup(fullName, options) {
127
+ if (this.isDestroyed) {
128
+ throw new Error(`Cannot call \`.lookup('${fullName}')\` after the owner has been destroyed`);
129
+ }
130
+ (!(this.registry.isValidFullName(fullName)) && assert('fullName must be a proper full name', this.registry.isValidFullName(fullName)));
131
+ return lookup(this, this.registry.normalize(fullName), options);
132
+ }
133
+
134
+ /**
135
+ A depth first traversal, destroying the container, its descendant containers and all
136
+ their managed objects.
137
+ @private
138
+ @method destroy
139
+ */
140
+ destroy() {
141
+ this.isDestroying = true;
142
+ destroyDestroyables(this);
143
+ }
144
+ finalizeDestroy() {
145
+ resetCache(this);
146
+ this.isDestroyed = true;
147
+ }
148
+
149
+ /**
150
+ Clear either the entire cache or just the cache for a particular key.
151
+ @private
152
+ @method reset
153
+ @param {String} fullName optional key to reset; if missing, resets everything
154
+ */
155
+ reset(fullName) {
156
+ if (this.isDestroyed) return;
157
+ if (fullName === undefined) {
158
+ destroyDestroyables(this);
159
+ resetCache(this);
160
+ } else {
161
+ resetMember(this, this.registry.normalize(fullName));
162
+ }
163
+ }
164
+
165
+ /**
166
+ Returns an object that can be used to provide an owner to a
167
+ manually created instance.
168
+ @private
169
+ @method ownerInjection
170
+ @returns { Object }
171
+ */
172
+ ownerInjection() {
173
+ let injection = {};
174
+ setOwner(injection, this.owner);
175
+ return injection;
176
+ }
177
+
178
+ /**
179
+ Given a fullName, return the corresponding factory. The consumer of the factory
180
+ is responsible for the destruction of any factory instances, as there is no
181
+ way for the container to ensure instances are destroyed when it itself is
182
+ destroyed.
183
+ @public
184
+ @method factoryFor
185
+ @param {String} fullName
186
+ @return {any}
187
+ */
188
+ factoryFor(fullName) {
189
+ if (this.isDestroyed) {
190
+ throw new Error(`Cannot call \`.factoryFor('${fullName}')\` after the owner has been destroyed`);
191
+ }
192
+ let normalizedName = this.registry.normalize(fullName);
193
+ (!(this.registry.isValidFullName(normalizedName)) && assert('fullName must be a proper full name', this.registry.isValidFullName(normalizedName)));
194
+ return factoryFor(this, normalizedName, fullName);
195
+ }
196
+ }
197
+ {
198
+ Container._leakTracking = leakTracking;
199
+ }
200
+
201
+ /*
202
+ * Wrap a factory manager in a proxy which will not permit properties to be
203
+ * set on the manager.
204
+ */
205
+ function wrapManagerInDeprecationProxy(manager) {
206
+ let validator = {
207
+ set(_obj, prop) {
208
+ throw new Error(`You attempted to set "${String(prop)}" on a factory manager created by container#factoryFor. A factory manager is a read-only construct.`);
209
+ }
210
+ };
211
+
212
+ // Note:
213
+ // We have to proxy access to the manager here so that private property
214
+ // access doesn't cause the above errors to occur.
215
+ let m = manager;
216
+ let proxiedManager = {
217
+ class: m.class,
218
+ create(props) {
219
+ return m.create(props);
220
+ }
221
+ };
222
+ return new Proxy(proxiedManager, validator);
223
+ }
224
+ function isSingleton(container, fullName) {
225
+ return container.registry.getOption(fullName, 'singleton') !== false;
226
+ }
227
+ function isInstantiatable(container, fullName) {
228
+ return container.registry.getOption(fullName, 'instantiate') !== false;
229
+ }
230
+ function lookup(container, fullName, options = {}) {
231
+ let normalizedName = fullName;
232
+ if (options.singleton === true || options.singleton === undefined && isSingleton(container, fullName)) {
233
+ let cached = container.cache[normalizedName];
234
+ if (cached !== undefined) {
235
+ return cached;
236
+ }
237
+ }
238
+ return instantiateFactory(container, normalizedName, fullName, options);
239
+ }
240
+ function factoryFor(container, normalizedName, fullName) {
241
+ let cached = container.factoryManagerCache[normalizedName];
242
+ if (cached !== undefined) {
243
+ return cached;
244
+ }
245
+ let factory = container.registry.resolve(normalizedName);
246
+ if (factory === undefined) {
247
+ return;
248
+ }
249
+ if (factory && typeof factory._onLookup === 'function') {
250
+ factory._onLookup(fullName);
251
+ }
252
+ let manager = new InternalFactoryManager(container, factory, fullName, normalizedName);
253
+ {
254
+ manager = wrapManagerInDeprecationProxy(manager);
255
+ }
256
+ container.factoryManagerCache[normalizedName] = manager;
257
+ return manager;
258
+ }
259
+ function isSingletonClass(container, fullName, {
260
+ instantiate,
261
+ singleton
262
+ }) {
263
+ return singleton !== false && !instantiate && isSingleton(container, fullName) && !isInstantiatable(container, fullName);
264
+ }
265
+ function isSingletonInstance(container, fullName, {
266
+ instantiate,
267
+ singleton
268
+ }) {
269
+ return singleton !== false && instantiate !== false && (singleton === true || isSingleton(container, fullName)) && isInstantiatable(container, fullName);
270
+ }
271
+ function isFactoryClass(container, fullname, {
272
+ instantiate,
273
+ singleton
274
+ }) {
275
+ return instantiate === false && (singleton === false || !isSingleton(container, fullname)) && !isInstantiatable(container, fullname);
276
+ }
277
+ function isFactoryInstance(container, fullName, {
278
+ instantiate,
279
+ singleton
280
+ }) {
281
+ return instantiate !== false && (singleton === false || !isSingleton(container, fullName)) && isInstantiatable(container, fullName);
282
+ }
283
+ function instantiateFactory(container, normalizedName, fullName, options) {
284
+ let factoryManager = factoryFor(container, normalizedName, fullName);
285
+ if (factoryManager === undefined) {
286
+ return;
287
+ }
288
+
289
+ // SomeClass { singleton: true, instantiate: true } | { singleton: true } | { instantiate: true } | {}
290
+ // By default majority of objects fall into this case
291
+ if (isSingletonInstance(container, fullName, options)) {
292
+ let instance = container.cache[normalizedName] = factoryManager.create();
293
+
294
+ // if this lookup happened _during_ destruction (emits a deprecation, but
295
+ // is still possible) ensure that it gets destroyed
296
+ if (container.isDestroying) {
297
+ if (typeof instance.destroy === 'function') {
298
+ instance.destroy();
299
+ }
300
+ }
301
+ return instance;
302
+ }
303
+
304
+ // SomeClass { singleton: false, instantiate: true }
305
+ if (isFactoryInstance(container, fullName, options)) {
306
+ return factoryManager.create();
307
+ }
308
+
309
+ // SomeClass { singleton: true, instantiate: false } | { instantiate: false } | { singleton: false, instantiation: false }
310
+ if (isSingletonClass(container, fullName, options) || isFactoryClass(container, fullName, options)) {
311
+ return factoryManager.class;
312
+ }
313
+ throw new Error('Could not create factory');
314
+ }
315
+ function destroyDestroyables(container) {
316
+ let cache = container.cache;
317
+ let keys = Object.keys(cache);
318
+ for (let key of keys) {
319
+ let value = cache[key];
320
+ (!(value) && assert('has cached value', value));
321
+ if (value.destroy) {
322
+ value.destroy();
323
+ }
324
+ }
325
+ }
326
+ function resetCache(container) {
327
+ container.cache = makeDictionary(null);
328
+ container.factoryManagerCache = makeDictionary(null);
329
+ }
330
+ function resetMember(container, fullName) {
331
+ let member = container.cache[fullName];
332
+ delete container.factoryManagerCache[fullName];
333
+ if (member) {
334
+ delete container.cache[fullName];
335
+ if (member.destroy) {
336
+ member.destroy();
337
+ }
338
+ }
339
+ }
340
+ const INIT_FACTORY = Symbol('INIT_FACTORY');
341
+ function getFactoryFor(obj) {
342
+ // SAFETY: since we know `obj` is an `object`, we also know we can safely ask
343
+ // whether a key is set on it.
344
+ return obj[INIT_FACTORY];
345
+ }
346
+ function setFactoryFor(obj, factory) {
347
+ // SAFETY: since we know `obj` is an `object`, we also know we can safely set
348
+ // a key it safely at this location. (The only way this could be blocked is if
349
+ // someone has gone out of their way to use `Object.defineProperty()` with our
350
+ // internal-only symbol and made it `writable: false`.)
351
+ obj[INIT_FACTORY] = factory;
352
+ }
353
+ class InternalFactoryManager {
354
+ container;
355
+ owner;
356
+ class;
357
+ fullName;
358
+ normalizedName;
359
+ madeToString;
360
+ injections;
361
+ constructor(container, factory, fullName, normalizedName) {
362
+ this.container = container;
363
+ this.owner = container.owner;
364
+ this.class = factory;
365
+ this.fullName = fullName;
366
+ this.normalizedName = normalizedName;
367
+ this.madeToString = undefined;
368
+ this.injections = undefined;
369
+ }
370
+ toString() {
371
+ if (this.madeToString === undefined) {
372
+ this.madeToString = this.container.registry.makeToString(this.class, this.fullName);
373
+ }
374
+ return this.madeToString;
375
+ }
376
+ create(options) {
377
+ let {
378
+ container
379
+ } = this;
380
+ if (container.isDestroyed) {
381
+ throw new Error(`Cannot create new instances after the owner has been destroyed (you attempted to create ${this.fullName})`);
382
+ }
383
+ let props = options ? {
384
+ ...options
385
+ } : {};
386
+ setOwner(props, container.owner);
387
+ setFactoryFor(props, this);
388
+ {
389
+ let lazyInjections;
390
+ let validationCache = this.container.validationCache;
391
+ // Ensure that all lazy injections are valid at instantiation time
392
+ if (!validationCache[this.fullName] && this.class && typeof this.class._lazyInjections === 'function') {
393
+ lazyInjections = this.class._lazyInjections();
394
+ lazyInjections = this.container.registry.normalizeInjectionsHash(lazyInjections);
395
+ this.container.registry.validateInjections(lazyInjections);
396
+ }
397
+ validationCache[this.fullName] = true;
398
+ (!(typeof this.class.create === 'function') && assert(`Failed to create an instance of '${this.normalizedName}'. Most likely an improperly defined class or an invalid module export.`, typeof this.class.create === 'function'));
399
+ }
400
+ return this.class.create(props);
401
+ }
402
+ }
403
+
404
+ export { Container as C, INIT_FACTORY as I, getFactoryFor as g, setFactoryFor as s };