ember-source 7.1.0-alpha.4 → 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 (481) 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 -161
  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 +1 -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 +169 -21
  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 +12 -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 -60
  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-BQMslHhq.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/{neq-DujMPv1k.js → invoke-B6j6DdDz.js} +4 -32
  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/{prod/packages/shared-chunks/program-context-DFiwaPMR.js → dev/packages/shared-chunks/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-D3t52iGR.js → dev/packages/shared-chunks/rehydrate-builder-DdzXTaJk.js} +7 -4
  144. package/dist/dev/packages/shared-chunks/{render-DCchifOK.js → render-DDdabL30.js} +510 -15
  145. package/dist/{prod/packages/shared-chunks/serialize-builder-iXiRs1Pg.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-DxchCIL2.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-CersD7PL.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 -158
  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 -1
  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 +169 -19
  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 +13 -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 -60
  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-B5UrgITK.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-CzXb9l1W.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/{neq-BqdovTuC.js → invoke-Dr_CRwA_.js} +4 -24
  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/{dev/packages/shared-chunks/program-context-sJz0oHOA.js → prod/packages/shared-chunks/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-BRH0p0wA.js → prod/packages/shared-chunks/rehydrate-builder-BKg2X6Lo.js} +7 -7
  310. package/dist/prod/packages/shared-chunks/{render-D78XHdek.js → render-nx5-PsDW.js} +487 -12
  311. package/dist/{dev/packages/shared-chunks/serialize-builder-DiO7Ak9_.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-Cs-7NIJU.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 +1263 -1029
  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/glimmer/index.d.ts +1 -1
  328. package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +1 -1
  329. package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +1 -1
  330. package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +1 -1
  331. package/types/stable/@ember/-internals/glimmer/lib/component-managers/route-template.d.ts +2 -2
  332. package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +9 -7
  333. package/types/stable/@ember/-internals/glimmer/lib/components/abstract-input.d.ts +1 -1
  334. package/types/stable/@ember/-internals/glimmer/lib/dom.d.ts +6 -2
  335. package/types/stable/@ember/-internals/glimmer/lib/environment.d.ts +1 -1
  336. package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +1 -1
  337. package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +3 -3
  338. package/types/stable/@ember/-internals/glimmer/lib/setup-registry.d.ts +1 -1
  339. package/types/stable/@ember/-internals/glimmer/lib/utils/bindings.d.ts +1 -1
  340. package/types/stable/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.d.ts +3 -2
  341. package/types/stable/@ember/-internals/glimmer/lib/utils/iterator.d.ts +1 -1
  342. package/types/stable/@ember/-internals/glimmer/lib/utils/managers.d.ts +2 -1
  343. package/types/stable/@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.d.ts +1 -1
  344. package/types/stable/@ember/-internals/glimmer/lib/utils/string.d.ts +1 -1
  345. package/types/stable/@ember/-internals/meta/lib/meta.d.ts +3 -2
  346. package/types/stable/@ember/-internals/metal/lib/cache.d.ts +1 -1
  347. package/types/stable/@ember/-internals/metal/lib/chain-tags.d.ts +3 -2
  348. package/types/stable/@ember/-internals/metal/lib/computed.d.ts +1 -1
  349. package/types/stable/@ember/-internals/metal/lib/decorator.d.ts +1 -1
  350. package/types/stable/@ember/-internals/metal/lib/deprecate_property.d.ts +1 -1
  351. package/types/stable/@ember/-internals/metal/lib/events.d.ts +1 -1
  352. package/types/stable/@ember/-internals/metal/lib/observer.d.ts +1 -1
  353. package/types/stable/@ember/-internals/metal/lib/properties.d.ts +1 -1
  354. package/types/stable/@ember/-internals/metal/lib/property_events.d.ts +1 -1
  355. package/types/stable/@ember/-internals/metal/lib/tags.d.ts +2 -1
  356. package/types/stable/@ember/-internals/runtime/lib/mixins/container_proxy.d.ts +1 -1
  357. package/types/stable/@ember/-internals/runtime/lib/mixins/registry_proxy.d.ts +1 -1
  358. package/types/stable/@ember/-internals/utils/lib/is_proxy.d.ts +1 -1
  359. package/types/stable/@ember/-internals/utils/lib/mandatory-setter.d.ts +1 -1
  360. package/types/stable/@ember/-internals/views/lib/system/utils.d.ts +1 -1
  361. package/types/stable/@ember/-internals/views/lib/views/core_view.d.ts +2 -2
  362. package/types/stable/@ember/-internals/views/lib/views/states.d.ts +1 -1
  363. package/types/stable/@ember/application/index.d.ts +5 -4
  364. package/types/stable/@ember/application/instance.d.ts +4 -3
  365. package/types/stable/@ember/application/namespace.d.ts +1 -1
  366. package/types/stable/@ember/array/proxy.d.ts +4 -3
  367. package/types/stable/@ember/component/helper.d.ts +1 -1
  368. package/types/stable/@ember/component/index.d.ts +6 -3
  369. package/types/stable/@ember/controller/index.d.ts +2 -2
  370. package/types/stable/@ember/debug/container-debug-adapter.d.ts +1 -1
  371. package/types/stable/@ember/engine/index.d.ts +3 -3
  372. package/types/stable/@ember/engine/instance.d.ts +4 -3
  373. package/types/stable/@ember/helper/index.d.ts +177 -5
  374. package/types/stable/@ember/modifier/index.d.ts +1 -1
  375. package/types/stable/@ember/object/-internals.d.ts +2 -2
  376. package/types/stable/@ember/object/compat.d.ts +2 -2
  377. package/types/stable/@ember/object/computed.d.ts +3 -1
  378. package/types/stable/@ember/object/evented.d.ts +1 -1
  379. package/types/stable/@ember/object/events.d.ts +1 -1
  380. package/types/stable/@ember/object/index.d.ts +8 -2
  381. package/types/stable/@ember/object/lib/computed/computed_macros.d.ts +1 -1
  382. package/types/stable/@ember/object/mixin.d.ts +1 -1
  383. package/types/stable/@ember/object/observers.d.ts +1 -1
  384. package/types/stable/@ember/object/proxy.d.ts +1 -1
  385. package/types/stable/@ember/reactive/collections.d.ts +6 -6
  386. package/types/stable/@ember/renderer/index.d.ts +2 -2
  387. package/types/stable/@ember/routing/index.d.ts +1 -1
  388. package/types/stable/@ember/routing/lib/controller_for.d.ts +2 -2
  389. package/types/stable/@ember/routing/route.d.ts +2 -2
  390. package/types/stable/@ember/routing/router.d.ts +2 -2
  391. package/types/stable/@ember/service/index.d.ts +1 -1
  392. package/types/stable/@ember/template/index.d.ts +1 -1
  393. package/types/stable/@ember/template-compiler/lib/dasherize-component-name.d.ts +1 -1
  394. package/types/stable/@ember/template-compiler/lib/plugins/assert-against-attrs.d.ts +1 -1
  395. package/types/stable/@ember/template-compiler/lib/plugins/assert-against-named-outlets.d.ts +1 -1
  396. package/types/stable/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.d.ts +1 -1
  397. package/types/stable/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.d.ts +1 -1
  398. package/types/stable/@ember/template-compiler/lib/plugins/auto-import-builtins.d.ts +1 -4
  399. package/types/stable/@ember/template-compiler/lib/plugins/transform-action-syntax.d.ts +1 -1
  400. package/types/stable/@ember/template-compiler/lib/plugins/transform-each-in-into-each.d.ts +1 -1
  401. package/types/stable/@ember/template-compiler/lib/plugins/transform-each-track-array.d.ts +1 -1
  402. package/types/stable/@ember/template-compiler/lib/plugins/transform-in-element.d.ts +1 -1
  403. package/types/stable/@ember/template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.d.ts +1 -1
  404. package/types/stable/@ember/template-compiler/lib/plugins/transform-resolutions.d.ts +1 -1
  405. package/types/stable/@ember/template-compiler/lib/plugins/transform-wrap-mount-and-outlet.d.ts +1 -1
  406. package/types/stable/@ember/template-compiler/lib/plugins/utils.d.ts +1 -1
  407. package/types/stable/@ember/template-compiler/lib/system/calculate-location-display.d.ts +1 -1
  408. package/types/stable/@ember/template-compiler/lib/types.d.ts +2 -1
  409. package/types/stable/@ember/template-factory/index.d.ts +1 -1
  410. package/types/stable/@glimmer/compiler/lib/builder/builder-interface.d.ts +2 -2
  411. package/types/stable/@glimmer/compiler/lib/builder/builder.d.ts +2 -2
  412. package/types/stable/@glimmer/compiler/lib/compiler.d.ts +1 -1
  413. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/context.d.ts +2 -1
  414. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/index.d.ts +2 -1
  415. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/impl.d.ts +2 -1
  416. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.d.ts +1 -1
  417. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/dynamic-vars.d.ts +1 -1
  418. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/has-block.d.ts +2 -1
  419. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/if-unless.d.ts +1 -1
  420. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/log.d.ts +1 -1
  421. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/classified.d.ts +1 -1
  422. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/component.d.ts +1 -1
  423. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/simple-element.d.ts +2 -1
  424. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/expressions.d.ts +1 -1
  425. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/statements.d.ts +1 -1
  426. package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/strict-mode.d.ts +1 -1
  427. package/types/stable/@glimmer/compiler/lib/passes/2-encoding/expressions.d.ts +1 -1
  428. package/types/stable/@glimmer/compiler/lib/passes/2-encoding/mir.d.ts +3 -1
  429. package/types/stable/@glimmer/compiler/lib/shared/result.d.ts +1 -1
  430. package/types/stable/@glimmer/manager/lib/public/component.d.ts +1 -1
  431. package/types/stable/@glimmer/manager/lib/util/args-proxy.d.ts +1 -1
  432. package/types/stable/@glimmer/manager/lib/util/capabilities.d.ts +1 -1
  433. package/types/stable/@glimmer/node/lib/node-dom-helper.d.ts +1 -1
  434. package/types/stable/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.d.ts +1 -1
  435. package/types/stable/@glimmer/runtime/index.d.ts +7 -4
  436. package/types/stable/@glimmer/runtime/lib/compiled/expressions/concat.d.ts +1 -1
  437. package/types/stable/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.d.ts +4 -3
  438. package/types/stable/@glimmer/runtime/lib/compiled/opcodes/component.d.ts +1 -1
  439. package/types/stable/@glimmer/runtime/lib/compiled/opcodes/dom.d.ts +2 -2
  440. package/types/stable/@glimmer/runtime/lib/compiled/opcodes/vm.d.ts +2 -2
  441. package/types/stable/@glimmer/runtime/lib/component/template-only.d.ts +1 -1
  442. package/types/stable/@glimmer/runtime/lib/curried-value.d.ts +1 -1
  443. package/types/stable/@glimmer/runtime/lib/helpers/and.d.ts +3 -0
  444. package/types/stable/@glimmer/runtime/lib/helpers/gt.d.ts +8 -0
  445. package/types/stable/@glimmer/runtime/lib/helpers/gte.d.ts +8 -0
  446. package/types/stable/@glimmer/runtime/lib/helpers/invoke.d.ts +1 -1
  447. package/types/stable/@glimmer/runtime/lib/helpers/lt.d.ts +8 -0
  448. package/types/stable/@glimmer/runtime/lib/helpers/lte.d.ts +8 -0
  449. package/types/stable/@glimmer/runtime/lib/helpers/not.d.ts +3 -0
  450. package/types/stable/@glimmer/runtime/lib/helpers/or.d.ts +3 -0
  451. package/types/stable/@glimmer/runtime/lib/opcodes.d.ts +2 -2
  452. package/types/stable/@glimmer/runtime/lib/references/class-list.d.ts +1 -1
  453. package/types/stable/@glimmer/runtime/lib/references/curry-value.d.ts +1 -1
  454. package/types/stable/@glimmer/runtime/lib/render.d.ts +1 -1
  455. package/types/stable/@glimmer/runtime/lib/scope.d.ts +1 -1
  456. package/types/stable/@glimmer/runtime/lib/vm/append.d.ts +3 -2
  457. package/types/stable/@glimmer/runtime/lib/vm/arguments.d.ts +2 -2
  458. package/types/stable/@glimmer/runtime/lib/vm/content/text.d.ts +1 -1
  459. package/types/stable/@glimmer/runtime/lib/vm/element-builder.d.ts +1 -1
  460. package/types/stable/@glimmer/runtime/lib/vm/low-level.d.ts +2 -1
  461. package/types/stable/@glimmer/runtime/lib/vm/rehydrate-builder.d.ts +1 -1
  462. package/types/stable/@glimmer/runtime/lib/vm/update.d.ts +2 -1
  463. package/types/stable/@glimmer/syntax/lib/keywords.d.ts +2 -2
  464. package/types/stable/@glimmer/tracking/index.d.ts +2 -1
  465. package/types/stable/@glimmer/tracking/primitives/cache.d.ts +1 -1
  466. package/types/stable/index.d.ts +7 -0
  467. package/dist/dev/packages/shared-chunks/constants-BbdWMvgs.js +0 -213
  468. package/dist/dev/packages/shared-chunks/dynamic-CgX8M02_.js +0 -3823
  469. package/dist/dev/packages/shared-chunks/element-builder-BpJIoi99.js +0 -404
  470. package/dist/dev/packages/shared-chunks/index-RzG0Jvjx.js +0 -6306
  471. package/dist/dev/packages/shared-chunks/mandatory-setter-DHZe7-kW.js +0 -425
  472. package/dist/dev/packages/shared-chunks/observers-Bj9qLVau.js +0 -2062
  473. package/dist/dev/packages/shared-chunks/set_properties-kVGzZL_a.js +0 -100
  474. package/dist/dev/packages/shared-chunks/transform-resolutions-D-YtZ0_g.js +0 -7458
  475. package/dist/prod/packages/shared-chunks/constants-DThhT5fu.js +0 -210
  476. package/dist/prod/packages/shared-chunks/index-r-Dz_hzt.js +0 -5931
  477. package/dist/prod/packages/shared-chunks/observers-tZ2aOzr4.js +0 -714
  478. package/dist/prod/packages/shared-chunks/set_properties-C1T46IiN.js +0 -101
  479. package/dist/prod/packages/shared-chunks/super-Cm_a_cLQ.js +0 -275
  480. package/dist/prod/packages/shared-chunks/transform-resolutions-DR4GLmR2.js +0 -6936
  481. package/dist/prod/packages/shared-chunks/{collections-GpG8lT2g.js → collections-C3Y8z_9v.js} +9 -9
@@ -1 +1,589 @@
1
- export { trackedArray, trackedMap, trackedObject, trackedSet, trackedWeakMap, trackedWeakSet } from '../../@glimmer/validator/index.js';
1
+ import { k as consumeTag, n as createUpdatableTag, D as DIRTY_TAG } from '../../shared-chunks/cache-B7dqAS38.js';
2
+
3
+ /* eslint-disable @typescript-eslint/no-explicit-any */
4
+ // Unfortunately, TypeScript's ability to do inference *or* type-checking in a
5
+ // `Proxy`'s body is very limited, so we have to use a number of casts `as any`
6
+ // to make the internal accesses work. The type safety of these is guaranteed at
7
+ // the *call site* instead of within the body: you cannot do `Array.blah` in TS,
8
+ // and it will blow up in JS in exactly the same way, so it is safe to assume
9
+ // that properties within the getter have the correct type in TS.
10
+
11
+ const ARRAY_GETTER_METHODS = new Set([Symbol.iterator, 'concat', 'entries', 'every', 'filter', 'find', 'findIndex', 'flat', 'flatMap', 'forEach', 'includes', 'indexOf', 'join', 'keys', 'lastIndexOf', 'map', 'reduce', 'reduceRight', 'slice', 'some', 'values']);
12
+
13
+ // For these methods, `Array` itself immediately gets the `.length` to return
14
+ // after invoking them.
15
+ const ARRAY_WRITE_THEN_READ_METHODS = new Set(['fill', 'push', 'unshift']);
16
+ function convertToInt(prop) {
17
+ if (typeof prop === 'symbol') return null;
18
+ const num = Number(prop);
19
+ if (isNaN(num)) return null;
20
+ return num % 1 === 0 ? num : null;
21
+ }
22
+
23
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
24
+ class TrackedArray {
25
+ #options;
26
+ constructor(arr, options) {
27
+ this.#options = options;
28
+ const clone = arr.slice();
29
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
30
+ const self = this;
31
+ const boundFns = new Map();
32
+
33
+ /**
34
+ Flag to track whether we have *just* intercepted a call to `.push()` or
35
+ `.unshift()`, since in those cases (and only those cases!) the `Array`
36
+ itself checks `.length` to return from the function call.
37
+ */
38
+ let nativelyAccessingLengthFromWriteMethod = false;
39
+ return new Proxy(clone, {
40
+ get(target, prop /*, _receiver */) {
41
+ const index = convertToInt(prop);
42
+ if (index !== null) {
43
+ self.#readStorageFor(index);
44
+ consumeTag(self.#collection);
45
+ return target[index];
46
+ }
47
+ if (prop === 'length') {
48
+ // If we are reading `.length`, it may be a normal user-triggered
49
+ // read, or it may be a read triggered by Array itself. In the latter
50
+ // case, it is because we have just done `.push()` or `.unshift()`; in
51
+ // that case it is safe not to mark this as a *read* operation, since
52
+ // calling `.push()` or `.unshift()` cannot otherwise be part of a
53
+ // "read" operation safely, and if done during an *existing* read
54
+ // (e.g. if the user has already checked `.length` *prior* to this),
55
+ // that will still trigger the mutation-after-consumption assertion.
56
+ if (nativelyAccessingLengthFromWriteMethod) {
57
+ nativelyAccessingLengthFromWriteMethod = false;
58
+ } else {
59
+ consumeTag(self.#collection);
60
+ }
61
+ return target[prop];
62
+ }
63
+
64
+ // Here, track that we are doing a `.push()` or `.unshift()` by setting
65
+ // the flag to `true` so that when the `.length` is read by `Array` (see
66
+ // immediately above), it knows not to dirty the collection.
67
+ if (ARRAY_WRITE_THEN_READ_METHODS.has(prop)) {
68
+ nativelyAccessingLengthFromWriteMethod = true;
69
+ }
70
+ if (ARRAY_GETTER_METHODS.has(prop)) {
71
+ let fn = boundFns.get(prop);
72
+ if (fn === undefined) {
73
+ fn = (...args) => {
74
+ consumeTag(self.#collection);
75
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
76
+ return target[prop](...args);
77
+ };
78
+ boundFns.set(prop, fn);
79
+ }
80
+ return fn;
81
+ }
82
+
83
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access
84
+ return target[prop];
85
+ },
86
+ set(target, prop, value /*, _receiver */) {
87
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument
88
+ let isUnchanged = self.#options.equals(target[prop], value);
89
+ if (isUnchanged) return true;
90
+
91
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
92
+ target[prop] = value;
93
+ const index = convertToInt(prop);
94
+ if (index !== null) {
95
+ self.#dirtyStorageFor(index);
96
+ self.#dirtyCollection();
97
+ } else if (prop === 'length') {
98
+ self.#dirtyCollection();
99
+ }
100
+ return true;
101
+ },
102
+ getPrototypeOf() {
103
+ return TrackedArray.prototype;
104
+ }
105
+ });
106
+ }
107
+ #collection = createUpdatableTag();
108
+ #storages = new Map();
109
+ #readStorageFor(index) {
110
+ let storage = this.#storages.get(index);
111
+ if (storage === undefined) {
112
+ storage = createUpdatableTag();
113
+ this.#storages.set(index, storage);
114
+ }
115
+ consumeTag(storage);
116
+ }
117
+ #dirtyStorageFor(index) {
118
+ const storage = this.#storages.get(index);
119
+ if (storage) {
120
+ DIRTY_TAG(storage);
121
+ }
122
+ }
123
+ #dirtyCollection() {
124
+ DIRTY_TAG(this.#collection);
125
+ this.#storages.clear();
126
+ }
127
+ }
128
+
129
+ // This rule is correct in the general case, but it doesn't understand
130
+ // declaration merging, which is how we're using the interface here. This says
131
+ // `TrackedArray` acts just like `Array<T>`, but also has the properties
132
+ // declared via the `class` declaration above -- but without the cost of a
133
+ // subclass, which is much slower that the proxied array behavior. That is: a
134
+ // `TrackedArray` *is* an `Array`, just with a proxy in front of accessors and
135
+ // setters, rather than a subclass of an `Array` which would be de-optimized by
136
+ // the browsers.
137
+ //
138
+
139
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
140
+
141
+ // Ensure instanceof works correctly
142
+ Object.setPrototypeOf(TrackedArray.prototype, Array.prototype);
143
+ function trackedArray(data, options) {
144
+ return new TrackedArray(data ?? [], {
145
+ equals: options?.equals ?? Object.is,
146
+ description: options?.description
147
+ });
148
+ }
149
+
150
+ /* eslint-disable @typescript-eslint/no-explicit-any */
151
+ // Using a Proxy-based approach so that any new methods added to the Map
152
+ // interface (like getOrInsert, getOrInsertComputed, etc.) are automatically
153
+ // supported without needing to manually re-implement each one.
154
+
155
+ function trackedMap(data, options) {
156
+ const equals = options?.equals ?? Object.is;
157
+ // TypeScript doesn't correctly resolve the overloads for calling the `Map`
158
+ // constructor for the no-value constructor. This resolves that.
159
+ const target = data instanceof Map ? new Map(data.entries()) : new Map(data ?? []);
160
+ const collection = createUpdatableTag();
161
+ const storages = new Map();
162
+ function storageFor(key) {
163
+ let storage = storages.get(key);
164
+ if (storage === undefined) {
165
+ storage = createUpdatableTag();
166
+ storages.set(key, storage);
167
+ }
168
+ return storage;
169
+ }
170
+ function dirtyStorageFor(key) {
171
+ const storage = storages.get(key);
172
+ if (storage) {
173
+ DIRTY_TAG(storage);
174
+ }
175
+ }
176
+ const proxy = new Proxy(target, {
177
+ get(target, prop, receiver) {
178
+ if (prop === 'set') {
179
+ return function (key, value) {
180
+ const hasExisting = target.has(key);
181
+ if (hasExisting) {
182
+ const isUnchanged = equals(target.get(key), value);
183
+ if (isUnchanged) return proxy;
184
+ }
185
+ dirtyStorageFor(key);
186
+ DIRTY_TAG(collection);
187
+ target.set(key, value);
188
+ return proxy;
189
+ };
190
+ }
191
+ if (prop === 'delete') {
192
+ return function (key) {
193
+ if (!target.has(key)) return false;
194
+ dirtyStorageFor(key);
195
+ DIRTY_TAG(collection);
196
+ storages.delete(key);
197
+ return target.delete(key);
198
+ };
199
+ }
200
+ if (prop === 'clear') {
201
+ return function () {
202
+ if (target.size === 0) return;
203
+ storages.forEach(s => DIRTY_TAG(s));
204
+ storages.clear();
205
+ DIRTY_TAG(collection);
206
+ target.clear();
207
+ };
208
+ }
209
+ if (prop === 'get') {
210
+ return function (key) {
211
+ consumeTag(storageFor(key));
212
+ return target.get(key);
213
+ };
214
+ }
215
+ if (prop === 'has') {
216
+ return function (key) {
217
+ consumeTag(storageFor(key));
218
+ return target.has(key);
219
+ };
220
+ }
221
+ if (prop === 'size') {
222
+ consumeTag(collection);
223
+ return target.size;
224
+ }
225
+
226
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
227
+ const value = Reflect.get(target, prop, receiver);
228
+ if (typeof value === 'function') {
229
+ return function (...args) {
230
+ consumeTag(collection);
231
+
232
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
233
+ return value.apply(target, args);
234
+ };
235
+ }
236
+
237
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
238
+ return value;
239
+ }
240
+ });
241
+ return proxy;
242
+ }
243
+
244
+ class TrackedObject {
245
+ #options;
246
+ #storages = new Map();
247
+ #collection = createUpdatableTag();
248
+ #readStorageFor(key) {
249
+ let storage = this.#storages.get(key);
250
+ if (storage === undefined) {
251
+ storage = createUpdatableTag();
252
+ this.#storages.set(key, storage);
253
+ }
254
+ consumeTag(storage);
255
+ }
256
+ #dirtyStorageFor(key) {
257
+ const storage = this.#storages.get(key);
258
+ if (storage) {
259
+ DIRTY_TAG(storage);
260
+ }
261
+ }
262
+ #dirtyCollection() {
263
+ DIRTY_TAG(this.#collection);
264
+ }
265
+
266
+ /**
267
+ * This implementation of trackedObject is far too dynamic for TS to be happy with
268
+ */
269
+ constructor(obj, options) {
270
+ this.#options = options;
271
+
272
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
273
+ const proto = Object.getPrototypeOf(obj);
274
+ const descs = Object.getOwnPropertyDescriptors(obj);
275
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
276
+ const clone = Object.create(proto);
277
+ for (const prop in descs) {
278
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
279
+ Object.defineProperty(clone, prop, descs[prop]);
280
+ }
281
+
282
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
283
+ const self = this;
284
+ return new Proxy(clone, {
285
+ get(target, prop) {
286
+ self.#readStorageFor(prop);
287
+ return target[prop];
288
+ },
289
+ has(target, prop) {
290
+ self.#readStorageFor(prop);
291
+ return prop in target;
292
+ },
293
+ ownKeys(target) {
294
+ consumeTag(self.#collection);
295
+ return Reflect.ownKeys(target);
296
+ },
297
+ set(target, prop, value) {
298
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
299
+ let isUnchanged = self.#options.equals(target[prop], value);
300
+ if (isUnchanged) {
301
+ return true;
302
+ }
303
+
304
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
305
+ target[prop] = value;
306
+ self.#dirtyStorageFor(prop);
307
+ self.#dirtyCollection();
308
+ return true;
309
+ },
310
+ deleteProperty(target, prop) {
311
+ if (prop in target) {
312
+ delete target[prop];
313
+ self.#dirtyStorageFor(prop);
314
+ self.#storages.delete(prop);
315
+ self.#dirtyCollection();
316
+ }
317
+ return true;
318
+ },
319
+ getPrototypeOf() {
320
+ return TrackedObject.prototype;
321
+ }
322
+ });
323
+ }
324
+ }
325
+ function trackedObject(data, options) {
326
+ return new TrackedObject(data ?? {}, {
327
+ equals: options?.equals ?? Object.is,
328
+ description: options?.description
329
+ /**
330
+ * SAFETY: we are trying to mimic the same behavior as a plain object, so if anything about
331
+ * the object that is returned behaves differently from a native object in a surprising
332
+ * way, we should fix that and make the behavior match native objects.
333
+ */
334
+ });
335
+ }
336
+
337
+ /* eslint-disable @typescript-eslint/no-explicit-any */
338
+ // Using a Proxy-based approach so that any new methods added to the Set
339
+ // interface are automatically supported without needing to manually
340
+ // re-implement each one.
341
+
342
+ function trackedSet(data, options) {
343
+ const equals = options?.equals ?? Object.is;
344
+ const target = new Set(data ?? []);
345
+ const collection = createUpdatableTag();
346
+ const storages = new Map();
347
+ function storageFor(key) {
348
+ let storage = storages.get(key);
349
+ if (storage === undefined) {
350
+ storage = createUpdatableTag();
351
+ storages.set(key, storage);
352
+ }
353
+ return storage;
354
+ }
355
+ function dirtyStorageFor(key) {
356
+ const storage = storages.get(key);
357
+ if (storage) {
358
+ DIRTY_TAG(storage);
359
+ }
360
+ }
361
+ const proxy = new Proxy(target, {
362
+ get(target, prop, receiver) {
363
+ if (prop === 'add') {
364
+ return function (value) {
365
+ if (target.has(value)) {
366
+ const isUnchanged = equals(value, value);
367
+ if (isUnchanged) return proxy;
368
+ } else {
369
+ DIRTY_TAG(collection);
370
+ }
371
+ dirtyStorageFor(value);
372
+ target.add(value);
373
+ return proxy;
374
+ };
375
+ }
376
+ if (prop === 'delete') {
377
+ return function (value) {
378
+ if (!target.has(value)) return false;
379
+ dirtyStorageFor(value);
380
+ DIRTY_TAG(collection);
381
+ storages.delete(value);
382
+ return target.delete(value);
383
+ };
384
+ }
385
+ if (prop === 'clear') {
386
+ return function () {
387
+ if (target.size === 0) return;
388
+ storages.forEach(s => DIRTY_TAG(s));
389
+ DIRTY_TAG(collection);
390
+ storages.clear();
391
+ target.clear();
392
+ };
393
+ }
394
+ if (prop === 'has') {
395
+ return function (value) {
396
+ consumeTag(storageFor(value));
397
+ return target.has(value);
398
+ };
399
+ }
400
+ if (prop === 'size') {
401
+ consumeTag(collection);
402
+ return target.size;
403
+ }
404
+
405
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
406
+ const value = Reflect.get(target, prop, receiver);
407
+ if (typeof value === 'function') {
408
+ return function (...args) {
409
+ consumeTag(collection);
410
+
411
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
412
+ return value.apply(target, args);
413
+ };
414
+ }
415
+
416
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
417
+ return value;
418
+ }
419
+ });
420
+ return proxy;
421
+ }
422
+
423
+ // Using a Proxy-based approach so that any new methods added to the WeakMap
424
+ // interface (like getOrInsert, getOrInsertComputed, etc.) are automatically
425
+ // supported without needing to manually re-implement each one.
426
+
427
+ function trackedWeakMap(data, options) {
428
+ const equals = options?.equals ?? Object.is;
429
+ const existing = data ?? [];
430
+ /**
431
+ * SAFETY: note that when passing in an existing weak map, we can't
432
+ * clone it as it is not iterable and not a supported type of structuredClone
433
+ */
434
+ const target = existing instanceof WeakMap ? existing : new WeakMap(existing);
435
+ const storages = new WeakMap();
436
+ function storageFor(key) {
437
+ let storage = storages.get(key);
438
+ if (storage === undefined) {
439
+ storage = createUpdatableTag();
440
+ storages.set(key, storage);
441
+ }
442
+ return storage;
443
+ }
444
+ function dirtyStorageFor(key) {
445
+ const storage = storages.get(key);
446
+ if (storage) {
447
+ DIRTY_TAG(storage);
448
+ }
449
+ }
450
+ const proxy = new Proxy(target, {
451
+ get(target, prop, receiver) {
452
+ if (prop === 'set') {
453
+ return function (key, value) {
454
+ const hasExisting = target.has(key);
455
+ if (hasExisting) {
456
+ const isUnchanged = equals(target.get(key), value);
457
+ if (isUnchanged) return proxy;
458
+ }
459
+ dirtyStorageFor(key);
460
+ target.set(key, value);
461
+ return proxy;
462
+ };
463
+ }
464
+ if (prop === 'delete') {
465
+ return function (key) {
466
+ if (!target.has(key)) return false;
467
+ dirtyStorageFor(key);
468
+ storages.delete(key);
469
+ return target.delete(key);
470
+ };
471
+ }
472
+ if (prop === 'get') {
473
+ return function (key) {
474
+ consumeTag(storageFor(key));
475
+ return target.get(key);
476
+ };
477
+ }
478
+ if (prop === 'has') {
479
+ return function (key) {
480
+ consumeTag(storageFor(key));
481
+ return target.has(key);
482
+ };
483
+ }
484
+
485
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
486
+ const value = Reflect.get(target, prop, receiver);
487
+ if (typeof value === 'function') {
488
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
489
+ return value.bind(target);
490
+ }
491
+
492
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
493
+ return value;
494
+ }
495
+ });
496
+ return proxy;
497
+ }
498
+
499
+ // Using a Proxy-based approach so that any new methods added to the WeakSet
500
+ // interface are automatically supported without needing to manually
501
+ // re-implement each one.
502
+
503
+ /**
504
+ * NOTE: we cannot pass a WeakSet because WeakSets are not iterable
505
+ */
506
+ /**
507
+ * Creates an instanceof WeakSet from an optional list of entries
508
+ *
509
+ */
510
+ function trackedWeakSet(data, options) {
511
+ const equals = options?.equals ?? Object.is;
512
+ const target = new WeakSet(data ?? []);
513
+ const storages = new WeakMap();
514
+ function storageFor(key) {
515
+ let storage = storages.get(key);
516
+ if (storage === undefined) {
517
+ storage = createUpdatableTag();
518
+ storages.set(key, storage);
519
+ }
520
+ return storage;
521
+ }
522
+ function dirtyStorageFor(key) {
523
+ const storage = storages.get(key);
524
+ if (storage) {
525
+ DIRTY_TAG(storage);
526
+ }
527
+ }
528
+ const proxy = new Proxy(target, {
529
+ get(target, prop, receiver) {
530
+ if (prop === 'add') {
531
+ return function (value) {
532
+ /**
533
+ * In a WeakSet, there is no `.get()`, but if there was,
534
+ * we could assume it's the same value as what we passed.
535
+ *
536
+ * So for a WeakSet, if we try to add something that already exists
537
+ * we no-op.
538
+ *
539
+ * WeakSet already does this internally for us,
540
+ * but we want the ability for the reactive behavior to reflect the same behavior.
541
+ *
542
+ * i.e.: doing weakSet.add(value) should never dirty with the defaults
543
+ * if the `value` is already in the weakSet
544
+ */
545
+ if (target.has(value)) {
546
+ /**
547
+ * This looks a little silly, where a always will === b,
548
+ * but see the note above.
549
+ */
550
+ const isUnchanged = equals(value, value);
551
+ if (isUnchanged) return proxy;
552
+ }
553
+
554
+ // Add to vals first to get better error message
555
+ target.add(value);
556
+ dirtyStorageFor(value);
557
+ return proxy;
558
+ };
559
+ }
560
+ if (prop === 'delete') {
561
+ return function (value) {
562
+ if (!target.has(value)) return false;
563
+ dirtyStorageFor(value);
564
+ storages.delete(value);
565
+ return target.delete(value);
566
+ };
567
+ }
568
+ if (prop === 'has') {
569
+ return function (value) {
570
+ consumeTag(storageFor(value));
571
+ return target.has(value);
572
+ };
573
+ }
574
+
575
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
576
+ const value = Reflect.get(target, prop, receiver);
577
+ if (typeof value === 'function') {
578
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
579
+ return value.bind(target);
580
+ }
581
+
582
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
583
+ return value;
584
+ }
585
+ });
586
+ return proxy;
587
+ }
588
+
589
+ export { trackedArray, trackedMap, trackedObject, trackedSet, trackedWeakMap, trackedWeakSet };
@@ -1,14 +1 @@
1
- import '../../shared-chunks/fragment-Cc5k9Oy4.js';
2
- import '../../shared-chunks/debug-to-string-CFb7h0lY.js';
3
- import '../../@glimmer/global-context/index.js';
4
- import '../../@glimmer/validator/index.js';
5
- import '../../shared-chunks/reference-C3TKDRnP.js';
6
- import '../../shared-chunks/index-BUPd6pkm.js';
7
- import '../../@glimmer/destroyable/index.js';
8
- import '../../shared-chunks/capabilities-O_xc7Yqk.js';
9
- export { f as renderComponent, r as renderSettled } from '../../shared-chunks/index-RzG0Jvjx.js';
10
- import '../-internals/container/index.js';
11
- import '../debug/index.js';
12
- import '../../shared-chunks/dynamic-CgX8M02_.js';
13
- import '../../shared-chunks/constants-BbdWMvgs.js';
14
- import '../runloop/index.js';
1
+ export { a as renderComponent, r as renderSettled } from '../../shared-chunks/index-CTxkmV78.js';
@@ -5,17 +5,8 @@ export { default as generateController, generateControllerFactory } from './lib/
5
5
  export { default as BucketCache } from './lib/cache.js';
6
6
  export { default as DSL } from './lib/dsl.js';
7
7
  export { default as controllerFor } from './lib/controller_for.js';
8
- import '../-internals/meta/lib/meta.js';
9
- import '../../shared-chunks/mandatory-setter-DHZe7-kW.js';
8
+ import '../../shared-chunks/property_get-CIBS9umw.js';
10
9
  import '../debug/index.js';
11
- import '../../@glimmer/destroyable/index.js';
12
- import '../../@glimmer/validator/index.js';
13
- import '../../shared-chunks/debug-to-string-CFb7h0lY.js';
14
- import '../../@glimmer/global-context/index.js';
15
- import '../../shared-chunks/reference-C3TKDRnP.js';
16
- import '../../shared-chunks/capabilities-O_xc7Yqk.js';
17
- import '../../shared-chunks/observers-Bj9qLVau.js';
18
- import '../-internals/environment/index.js';
19
10
  import '../engine/instance.js';
20
11
  import '../../route-recognizer/index.js';
21
12
  import '../../shared-chunks/rsvp-CnCSY930.js';