ember-inspector 4.13.1 → 4.15.0

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 (564) hide show
  1. package/.ember-cli +1 -9
  2. package/.github/workflows/build.yml +33 -112
  3. package/.github/workflows/plan-release.yml +26 -48
  4. package/.github/workflows/publish.yml +129 -31
  5. package/.prettierignore +2 -13
  6. package/.prettierrc.js +10 -4
  7. package/.release-plan.json +13 -4
  8. package/.stylelintignore +8 -0
  9. package/.stylelintrc.js +10 -1
  10. package/.template-lintrc.js +2 -1
  11. package/.tool-versions +2 -2
  12. package/.watchmanconfig +1 -1
  13. package/CHANGELOG.md +137 -0
  14. package/DEVELOPMENT.md +50 -0
  15. package/PRIVACY.md +3 -0
  16. package/README.md +14 -50
  17. package/RELEASE.md +15 -50
  18. package/app/components/app-picker.hbs +2 -2
  19. package/app/components/component-tree-item.hbs +14 -14
  20. package/app/components/component-tree-toolbar.hbs +17 -3
  21. package/app/components/{date-property-field.js → date-property-field.ts} +6 -5
  22. package/app/components/deprecation-item-source.hbs +1 -1
  23. package/app/components/deprecation-item.hbs +1 -1
  24. package/app/components/deprecations-toolbar.hbs +1 -1
  25. package/app/components/item-types.hbs +7 -7
  26. package/app/components/list-cell.hbs +3 -3
  27. package/app/components/list-content.hbs +4 -3
  28. package/app/components/list-content.ts +96 -0
  29. package/app/components/list.hbs +3 -3
  30. package/app/components/list.js +7 -7
  31. package/app/components/model-types-toolbar.hbs +3 -3
  32. package/app/components/object-inspector/component-parents.hbs +33 -0
  33. package/app/components/object-inspector/component-parents.js +43 -0
  34. package/app/components/object-inspector/dependent-keys.hbs +4 -4
  35. package/app/components/object-inspector/errors.hbs +4 -4
  36. package/app/components/object-inspector/properties-all.hbs +1 -1
  37. package/app/components/object-inspector/properties-base.js +2 -0
  38. package/app/components/object-inspector/properties-grouped.hbs +5 -5
  39. package/app/components/object-inspector/property.hbs +36 -34
  40. package/app/components/object-inspector/property.ts +34 -17
  41. package/app/components/object-inspector/sort-properties.js +12 -4
  42. package/app/components/object-inspector/toggle.hbs +9 -0
  43. package/app/components/object-inspector/toggle.js +6 -0
  44. package/app/components/object-inspector.hbs +11 -9
  45. package/app/components/object-inspector.js +1 -1
  46. package/app/components/promise-item.hbs +11 -11
  47. package/app/components/promise-item.js +8 -6
  48. package/app/components/promise-tree-toolbar.hbs +5 -5
  49. package/app/components/records-toolbar.hbs +2 -2
  50. package/app/components/render-item.hbs +4 -4
  51. package/app/components/render-item.ts +12 -9
  52. package/app/components/render-tree-toolbar.hbs +1 -1
  53. package/app/components/route-cell-name.hbs +1 -1
  54. package/app/components/route-cell-name.js +3 -2
  55. package/app/components/route-tree-toolbar.hbs +2 -2
  56. package/app/components/scroll-container.js +2 -0
  57. package/app/components/side-nav.hbs +5 -5
  58. package/app/components/side-nav.js +1 -1
  59. package/{lib/ui/addon/components → app/components/ui}/drag-handle.hbs +4 -4
  60. package/{lib/ui/addon/components → app/components/ui}/drag-handle.js +3 -1
  61. package/{lib/ui/addon/components → app/components/ui}/empty-message.hbs +1 -1
  62. package/{lib/ui/addon/components → app/components/ui}/error-page.hbs +3 -3
  63. package/{lib/ui/addon/components → app/components/ui}/resizable-column.js +1 -1
  64. package/{lib/ui/addon/components → app/components/ui}/toolbar-clear-button.hbs +1 -1
  65. package/{lib/ui/addon/components → app/components/ui}/toolbar-reload-button.hbs +1 -1
  66. package/{lib/ui/addon/components → app/components/ui}/toolbar-search-field.hbs +2 -2
  67. package/app/computed/{debounce.js → debounce.ts} +7 -5
  68. package/app/config/environment.d.ts +5 -2
  69. package/app/controllers/app-config.js +1 -0
  70. package/app/controllers/application.js +36 -71
  71. package/app/controllers/component-tree.js +26 -7
  72. package/app/controllers/container-type.js +2 -1
  73. package/app/controllers/container-types/{index.js → index.ts} +5 -2
  74. package/app/controllers/container-types.js +3 -6
  75. package/app/controllers/deprecations.js +16 -11
  76. package/app/controllers/libraries.js +1 -0
  77. package/app/controllers/model-types.js +7 -13
  78. package/app/controllers/promise-tree.ts +149 -0
  79. package/app/controllers/records.js +18 -26
  80. package/app/controllers/{render-tree.js → render-tree.ts} +54 -45
  81. package/app/controllers/route-tree.js +7 -5
  82. package/app/helpers/build-style.js +1 -1
  83. package/app/index.html +1 -19
  84. package/app/initializers/setup.js +1 -1
  85. package/app/libs/promise-assembler.ts +249 -0
  86. package/app/libs/resizable-columns.js +10 -10
  87. package/app/models/{promise.js → promise.ts} +72 -69
  88. package/app/{router.js → router.ts} +1 -1
  89. package/app/routes/app-detected.js +3 -5
  90. package/app/routes/application.js +9 -13
  91. package/app/routes/deprecations.js +7 -16
  92. package/app/routes/launch.js +2 -1
  93. package/app/routes/libraries.js +2 -1
  94. package/app/routes/model-type.js +2 -3
  95. package/app/routes/model-types.ts +57 -0
  96. package/app/routes/promise-tree.ts +63 -0
  97. package/app/routes/records.ts +78 -0
  98. package/app/routes/render-tree.ts +93 -0
  99. package/app/routes/route-tree.js +0 -1
  100. package/app/routes/{tab.js → tab.ts} +9 -2
  101. package/app/routes/whats-new.js +6 -4
  102. package/app/services/adapters/{basic.js → basic.ts} +36 -30
  103. package/app/services/adapters/{bookmarklet.js → bookmarklet.ts} +17 -24
  104. package/app/services/adapters/{chrome.js → chrome.ts} +1 -2
  105. package/app/services/adapters/{web-extension.js → web-extension.ts} +46 -46
  106. package/app/services/adapters/websocket.ts +40 -0
  107. package/app/services/layout.ts +124 -0
  108. package/app/services/port.ts +195 -0
  109. package/app/services/storage/{local.js → local.ts} +7 -20
  110. package/app/services/storage/{memory.js → memory.ts} +6 -21
  111. package/app/services/{storage.js → storage.ts} +25 -23
  112. package/app/styles/app.scss +1 -0
  113. package/app/styles/base.scss +6 -2
  114. package/app/styles/colors.scss +33 -31
  115. package/app/styles/component_tree.scss +56 -51
  116. package/app/styles/dropdown.scss +2 -2
  117. package/app/styles/ember-table.scss +3 -3
  118. package/app/styles/mixin.scss +26 -26
  119. package/app/styles/object_inspector.scss +30 -21
  120. package/{lib/ui/addon/styles → app/styles/ui}/_disclosure-triangle.scss +3 -1
  121. package/{lib/ui/addon/styles → app/styles/ui}/_drag-handle.scss +7 -7
  122. package/{lib/ui/addon/styles → app/styles/ui}/_empty-message.scss +1 -1
  123. package/{lib/ui/addon/styles → app/styles/ui}/_error-page.scss +8 -7
  124. package/{lib/ui/addon/styles → app/styles/ui}/_list.scss +46 -45
  125. package/{lib/ui/addon/styles → app/styles/ui}/_nav.scss +29 -27
  126. package/app/styles/ui/_object-inspector-toggle.scss +4 -0
  127. package/{lib/ui/addon/styles → app/styles/ui}/_pill.scss +4 -4
  128. package/{lib/ui/addon/styles → app/styles/ui}/_send-to-console.scss +1 -1
  129. package/{lib/ui/addon/styles → app/styles/ui}/_split.scss +26 -20
  130. package/app/styles/ui/_ui.scss +13 -0
  131. package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_checkbox.scss +5 -5
  132. package/app/styles/ui/toolbar/_icon-button.scss +80 -0
  133. package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_index.scss +6 -5
  134. package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_radio.scss +10 -10
  135. package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_search.scss +5 -3
  136. package/app/styles/utils.scss +408 -122
  137. package/app/templates/application.hbs +22 -19
  138. package/app/templates/component-tree.hbs +4 -1
  139. package/app/templates/deprecations.hbs +2 -3
  140. package/app/templates/info.hbs +10 -10
  141. package/app/templates/promise-tree.hbs +1 -1
  142. package/app/templates/render-tree.hbs +1 -1
  143. package/app/templates/route-tree.hbs +1 -1
  144. package/app/utils/escape-reg-exp.ts +3 -2
  145. package/app/utils/nullish.ts +7 -0
  146. package/app/utils/parse-text.ts +4 -5
  147. package/app/utils/truncate.js +0 -1
  148. package/config/ember-cli-update.json +5 -3
  149. package/config/ember-try.js +117 -72
  150. package/config/environment.js +1 -1
  151. package/config/optional-features.json +2 -1
  152. package/dist/bookmarklet/load_inspector.js +31 -11
  153. package/dist/bookmarklet/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  154. package/dist/bookmarklet/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  155. package/dist/bookmarklet/panes-3-16-0/assets/chunk.524.aca67dc376e8cd35b522.js +40 -0
  156. package/dist/bookmarklet/panes-3-16-0/assets/chunk.582.d3d80e94c4f59dc3b65d.js +42 -0
  157. package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.css +997 -156
  158. package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.js +560 -613
  159. package/dist/bookmarklet/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
  160. package/dist/bookmarklet/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
  161. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
  162. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-components.svg +2 -2
  163. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-container.svg +1 -1
  164. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-data.svg +1 -1
  165. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
  166. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-info.svg +3 -3
  167. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
  168. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
  169. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
  170. package/dist/bookmarklet/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
  171. package/dist/bookmarklet/panes-3-16-0/assets/vendor.css +4 -841
  172. package/dist/bookmarklet/panes-3-16-0/assets/vendor.js +4277 -5152
  173. package/dist/bookmarklet/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
  174. package/dist/bookmarklet/panes-3-16-0/basic-B1dkgN3d.js +149 -0
  175. package/dist/bookmarklet/panes-3-16-0/basic-debug.js +10 -0
  176. package/dist/bookmarklet/panes-3-16-0/bookmarklet-BZWtwuX-.js +32 -0
  177. package/dist/bookmarklet/panes-3-16-0/bookmarklet-debug.js +10 -0
  178. package/dist/bookmarklet/panes-3-16-0/chrome-P6FSEUf1.js +10 -0
  179. package/dist/bookmarklet/panes-3-16-0/chrome-debug.js +10 -0
  180. package/dist/bookmarklet/panes-3-16-0/ember.js +166 -0
  181. package/dist/bookmarklet/panes-3-16-0/ember_debug.js +7 -11018
  182. package/dist/bookmarklet/panes-3-16-0/evented-BCTya3yE.js +62 -0
  183. package/dist/bookmarklet/panes-3-16-0/firefox-8F84zphP.js +30 -0
  184. package/dist/bookmarklet/panes-3-16-0/firefox-debug.js +10 -0
  185. package/dist/bookmarklet/panes-3-16-0/index.html +4 -23
  186. package/dist/bookmarklet/panes-3-16-0/internals-CRmXMEzb.js +12 -0
  187. package/dist/bookmarklet/panes-3-16-0/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
  188. package/dist/bookmarklet/panes-3-16-0/main.js +7669 -0
  189. package/dist/bookmarklet/panes-3-16-0/port.js +108 -0
  190. package/dist/bookmarklet/panes-3-16-0/profile-node.js +60 -0
  191. package/dist/bookmarklet/panes-3-16-0/promise-assembler.js +218 -0
  192. package/dist/bookmarklet/panes-3-16-0/runloop-6_0lpzTA.js +1138 -0
  193. package/dist/bookmarklet/panes-3-16-0/start-inspector-BIYQArZn.js +334 -0
  194. package/dist/bookmarklet/panes-3-16-0/type-check.js +119 -0
  195. package/dist/bookmarklet/panes-3-16-0/version.js +90 -0
  196. package/dist/bookmarklet/panes-3-16-0/versions.js +4 -0
  197. package/dist/bookmarklet/panes-3-16-0/web-extension-OWnXJ_XK.js +144 -0
  198. package/dist/bookmarklet/panes-3-16-0/websocket-BSUvUqER.js +58 -0
  199. package/dist/bookmarklet/panes-3-16-0/websocket-debug.js +10 -0
  200. package/dist/chrome/background.js +26 -21
  201. package/dist/chrome/boot.js +1 -1
  202. package/dist/chrome/content-script.js +12 -11
  203. package/dist/chrome/devtools.js +12 -3
  204. package/dist/chrome/manifest.json +4 -2
  205. package/dist/chrome/options.js +17 -12
  206. package/dist/chrome/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  207. package/dist/chrome/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  208. package/dist/chrome/panes-3-16-0/assets/chunk.524.aca67dc376e8cd35b522.js +40 -0
  209. package/dist/chrome/panes-3-16-0/assets/chunk.582.d3d80e94c4f59dc3b65d.js +42 -0
  210. package/dist/chrome/panes-3-16-0/assets/ember-inspector.css +997 -156
  211. package/dist/chrome/panes-3-16-0/assets/ember-inspector.js +560 -613
  212. package/dist/chrome/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
  213. package/dist/chrome/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
  214. package/dist/chrome/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
  215. package/dist/chrome/panes-3-16-0/assets/svg/nav-components.svg +2 -2
  216. package/dist/chrome/panes-3-16-0/assets/svg/nav-container.svg +1 -1
  217. package/dist/chrome/panes-3-16-0/assets/svg/nav-data.svg +1 -1
  218. package/dist/chrome/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
  219. package/dist/chrome/panes-3-16-0/assets/svg/nav-info.svg +3 -3
  220. package/dist/chrome/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
  221. package/dist/chrome/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
  222. package/dist/chrome/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
  223. package/dist/chrome/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
  224. package/dist/chrome/panes-3-16-0/assets/vendor.css +4 -841
  225. package/dist/chrome/panes-3-16-0/assets/vendor.js +4277 -5152
  226. package/dist/chrome/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
  227. package/dist/chrome/panes-3-16-0/basic-B1dkgN3d.js +149 -0
  228. package/dist/chrome/panes-3-16-0/basic-debug.js +10 -0
  229. package/dist/chrome/panes-3-16-0/bookmarklet-BZWtwuX-.js +32 -0
  230. package/dist/chrome/panes-3-16-0/bookmarklet-debug.js +10 -0
  231. package/dist/chrome/panes-3-16-0/chrome-P6FSEUf1.js +10 -0
  232. package/dist/chrome/panes-3-16-0/chrome-debug.js +10 -0
  233. package/dist/chrome/panes-3-16-0/ember.js +166 -0
  234. package/dist/chrome/panes-3-16-0/ember_debug.js +7 -11018
  235. package/dist/chrome/panes-3-16-0/evented-BCTya3yE.js +62 -0
  236. package/dist/chrome/panes-3-16-0/firefox-8F84zphP.js +30 -0
  237. package/dist/chrome/panes-3-16-0/firefox-debug.js +10 -0
  238. package/dist/chrome/panes-3-16-0/index.html +4 -23
  239. package/dist/chrome/panes-3-16-0/internals-CRmXMEzb.js +12 -0
  240. package/dist/chrome/panes-3-16-0/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
  241. package/dist/chrome/panes-3-16-0/main.js +7669 -0
  242. package/dist/chrome/panes-3-16-0/port.js +108 -0
  243. package/dist/chrome/panes-3-16-0/profile-node.js +60 -0
  244. package/dist/chrome/panes-3-16-0/promise-assembler.js +218 -0
  245. package/dist/chrome/panes-3-16-0/runloop-6_0lpzTA.js +1138 -0
  246. package/dist/chrome/panes-3-16-0/start-inspector-BIYQArZn.js +334 -0
  247. package/dist/chrome/panes-3-16-0/type-check.js +119 -0
  248. package/dist/chrome/panes-3-16-0/version.js +90 -0
  249. package/dist/chrome/panes-3-16-0/versions.js +4 -0
  250. package/dist/chrome/panes-3-16-0/web-extension-OWnXJ_XK.js +144 -0
  251. package/dist/chrome/panes-3-16-0/websocket-BSUvUqER.js +58 -0
  252. package/dist/chrome/panes-3-16-0/websocket-debug.js +10 -0
  253. package/dist/chrome/scripts/in-page-script.js +19 -13
  254. package/dist/firefox/background.js +26 -21
  255. package/dist/firefox/boot.js +1 -1
  256. package/dist/firefox/content-script.js +12 -11
  257. package/dist/firefox/devtools.js +12 -3
  258. package/dist/firefox/manifest.json +4 -2
  259. package/dist/firefox/options.js +17 -12
  260. package/dist/firefox/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  261. package/dist/firefox/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  262. package/dist/firefox/panes-3-16-0/assets/chunk.524.aca67dc376e8cd35b522.js +40 -0
  263. package/dist/firefox/panes-3-16-0/assets/chunk.582.d3d80e94c4f59dc3b65d.js +42 -0
  264. package/dist/firefox/panes-3-16-0/assets/ember-inspector.css +997 -156
  265. package/dist/firefox/panes-3-16-0/assets/ember-inspector.js +560 -613
  266. package/dist/firefox/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
  267. package/dist/firefox/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
  268. package/dist/firefox/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
  269. package/dist/firefox/panes-3-16-0/assets/svg/nav-components.svg +2 -2
  270. package/dist/firefox/panes-3-16-0/assets/svg/nav-container.svg +1 -1
  271. package/dist/firefox/panes-3-16-0/assets/svg/nav-data.svg +1 -1
  272. package/dist/firefox/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
  273. package/dist/firefox/panes-3-16-0/assets/svg/nav-info.svg +3 -3
  274. package/dist/firefox/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
  275. package/dist/firefox/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
  276. package/dist/firefox/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
  277. package/dist/firefox/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
  278. package/dist/firefox/panes-3-16-0/assets/vendor.css +4 -841
  279. package/dist/firefox/panes-3-16-0/assets/vendor.js +4277 -5152
  280. package/dist/firefox/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
  281. package/dist/firefox/panes-3-16-0/basic-B1dkgN3d.js +149 -0
  282. package/dist/firefox/panes-3-16-0/basic-debug.js +10 -0
  283. package/dist/firefox/panes-3-16-0/bookmarklet-BZWtwuX-.js +32 -0
  284. package/dist/firefox/panes-3-16-0/bookmarklet-debug.js +10 -0
  285. package/dist/firefox/panes-3-16-0/chrome-P6FSEUf1.js +10 -0
  286. package/dist/firefox/panes-3-16-0/chrome-debug.js +10 -0
  287. package/dist/firefox/panes-3-16-0/ember.js +166 -0
  288. package/dist/firefox/panes-3-16-0/ember_debug.js +7 -11018
  289. package/dist/firefox/panes-3-16-0/evented-BCTya3yE.js +62 -0
  290. package/dist/firefox/panes-3-16-0/firefox-8F84zphP.js +30 -0
  291. package/dist/firefox/panes-3-16-0/firefox-debug.js +10 -0
  292. package/dist/firefox/panes-3-16-0/index.html +4 -23
  293. package/dist/firefox/panes-3-16-0/internals-CRmXMEzb.js +12 -0
  294. package/dist/firefox/panes-3-16-0/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
  295. package/dist/firefox/panes-3-16-0/main.js +7669 -0
  296. package/dist/firefox/panes-3-16-0/port.js +108 -0
  297. package/dist/firefox/panes-3-16-0/profile-node.js +60 -0
  298. package/dist/firefox/panes-3-16-0/promise-assembler.js +218 -0
  299. package/dist/firefox/panes-3-16-0/runloop-6_0lpzTA.js +1138 -0
  300. package/dist/firefox/panes-3-16-0/start-inspector-BIYQArZn.js +334 -0
  301. package/dist/firefox/panes-3-16-0/type-check.js +119 -0
  302. package/dist/firefox/panes-3-16-0/version.js +90 -0
  303. package/dist/firefox/panes-3-16-0/versions.js +4 -0
  304. package/dist/firefox/panes-3-16-0/web-extension-OWnXJ_XK.js +144 -0
  305. package/dist/firefox/panes-3-16-0/websocket-BSUvUqER.js +58 -0
  306. package/dist/firefox/panes-3-16-0/websocket-debug.js +10 -0
  307. package/dist/firefox/scripts/in-page-script.js +19 -13
  308. package/dist/websocket/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  309. package/dist/websocket/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  310. package/dist/websocket/assets/chunk.524.aca67dc376e8cd35b522.js +40 -0
  311. package/dist/websocket/assets/chunk.582.d3d80e94c4f59dc3b65d.js +42 -0
  312. package/dist/websocket/assets/ember-inspector.css +997 -156
  313. package/dist/websocket/assets/ember-inspector.js +560 -613
  314. package/dist/websocket/assets/svg/ellipsis.svg +3 -3
  315. package/dist/websocket/assets/svg/focus-point-round.svg +9 -0
  316. package/dist/websocket/assets/svg/nav-bug.svg +1 -1
  317. package/dist/websocket/assets/svg/nav-components.svg +2 -2
  318. package/dist/websocket/assets/svg/nav-container.svg +1 -1
  319. package/dist/websocket/assets/svg/nav-data.svg +1 -1
  320. package/dist/websocket/assets/svg/nav-deprecations.svg +3 -3
  321. package/dist/websocket/assets/svg/nav-info.svg +3 -3
  322. package/dist/websocket/assets/svg/nav-promises.svg +2 -2
  323. package/dist/websocket/assets/svg/nav-render-performance.svg +2 -2
  324. package/dist/websocket/assets/svg/nav-route-tree.svg +7 -7
  325. package/dist/websocket/assets/svg/sidebar-toggle-trailing.svg +9 -0
  326. package/dist/websocket/assets/vendor.css +4 -841
  327. package/dist/websocket/assets/vendor.js +4277 -5152
  328. package/dist/websocket/base-object-HAEdWjmg.js +59 -0
  329. package/dist/websocket/basic-B1dkgN3d.js +149 -0
  330. package/dist/websocket/basic-debug.js +10 -0
  331. package/dist/websocket/bookmarklet-BZWtwuX-.js +32 -0
  332. package/dist/websocket/bookmarklet-debug.js +10 -0
  333. package/dist/websocket/chrome-P6FSEUf1.js +10 -0
  334. package/dist/websocket/chrome-debug.js +10 -0
  335. package/dist/websocket/ember.js +166 -0
  336. package/dist/websocket/ember_debug.js +7 -11018
  337. package/dist/websocket/evented-BCTya3yE.js +62 -0
  338. package/dist/websocket/firefox-8F84zphP.js +30 -0
  339. package/dist/websocket/firefox-debug.js +10 -0
  340. package/dist/websocket/index.html +4 -23
  341. package/dist/websocket/internals-CRmXMEzb.js +12 -0
  342. package/dist/websocket/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
  343. package/dist/websocket/main.js +7669 -0
  344. package/dist/websocket/port.js +108 -0
  345. package/dist/websocket/profile-node.js +60 -0
  346. package/dist/websocket/promise-assembler.js +218 -0
  347. package/dist/websocket/runloop-6_0lpzTA.js +1138 -0
  348. package/dist/websocket/start-inspector-BIYQArZn.js +334 -0
  349. package/dist/websocket/type-check.js +119 -0
  350. package/dist/websocket/version.js +90 -0
  351. package/dist/websocket/versions.js +4 -0
  352. package/dist/websocket/web-extension-OWnXJ_XK.js +144 -0
  353. package/dist/websocket/websocket-BSUvUqER.js +58 -0
  354. package/dist/websocket/websocket-debug.js +10 -0
  355. package/ember-cli-build.js +31 -140
  356. package/ember_debug/adapters/basic.js +10 -29
  357. package/ember_debug/adapters/bookmarklet.js +1 -0
  358. package/ember_debug/adapters/firefox.js +3 -3
  359. package/ember_debug/adapters/web-extension.js +6 -5
  360. package/ember_debug/adapters/websocket.js +2 -2
  361. package/ember_debug/babel.config.cjs +11 -0
  362. package/ember_debug/container-debug.js +1 -1
  363. package/ember_debug/data-debug.js +7 -8
  364. package/ember_debug/debug-port.js +1 -1
  365. package/ember_debug/deprecation-debug.js +14 -14
  366. package/ember_debug/entrypoints/basic-debug.js +10 -0
  367. package/ember_debug/entrypoints/bookmarklet-debug.js +10 -0
  368. package/ember_debug/entrypoints/chrome-debug.js +10 -0
  369. package/ember_debug/entrypoints/firefox-debug.js +10 -0
  370. package/ember_debug/entrypoints/websocket-debug.js +10 -0
  371. package/ember_debug/general-debug.js +4 -4
  372. package/ember_debug/lib/boot-ember-inspector.js +9 -0
  373. package/ember_debug/lib/get-applications.js +28 -0
  374. package/ember_debug/lib/load-ember-debug-in-webpage.js +32 -0
  375. package/ember_debug/lib/send-apps.js +14 -0
  376. package/ember_debug/lib/send-version-miss.js +38 -0
  377. package/ember_debug/lib/setup-instance-initializer.js +17 -0
  378. package/ember_debug/lib/start-inspector.js +195 -0
  379. package/ember_debug/lib/version-test.js +73 -0
  380. package/ember_debug/lib/versions.js +3 -0
  381. package/ember_debug/libs/capture-render-tree.js +1 -2
  382. package/ember_debug/libs/promise-assembler.js +5 -4
  383. package/ember_debug/libs/render-tree.js +37 -44
  384. package/ember_debug/libs/source-map.js +7 -6
  385. package/ember_debug/libs/view-inspection.js +25 -17
  386. package/ember_debug/main.js +18 -21
  387. package/ember_debug/models/profile-manager.js +6 -6
  388. package/ember_debug/models/profile-node.js +1 -1
  389. package/ember_debug/models/promise.js +2 -2
  390. package/ember_debug/object-inspector.js +74 -65
  391. package/ember_debug/package.json +27 -0
  392. package/ember_debug/port.js +5 -4
  393. package/ember_debug/promise-debug.js +5 -5
  394. package/ember_debug/render-debug.js +5 -5
  395. package/ember_debug/rollup.config.js +24 -0
  396. package/ember_debug/route-debug.js +10 -9
  397. package/ember_debug/services/session.js +2 -2
  398. package/ember_debug/utils/classify.js +1 -1
  399. package/ember_debug/utils/ember/object/internals.js +1 -11
  400. package/ember_debug/utils/ember/own-runloop.js +1 -1
  401. package/ember_debug/utils/ember/runloop.js +7 -10
  402. package/ember_debug/utils/ember-object-names.js +11 -9
  403. package/ember_debug/utils/ember.js +222 -40
  404. package/ember_debug/utils/evented.js +1 -1
  405. package/ember_debug/utils/get-object-name.js +3 -3
  406. package/ember_debug/utils/type-check.js +9 -5
  407. package/ember_debug/view-debug.js +12 -6
  408. package/eslint.config.mjs +173 -0
  409. package/gulpfile.js +1 -1
  410. package/package.json +97 -95
  411. package/patches/ember-cli-inject-live-reload.patch +16 -0
  412. package/pnpm-workspace.yaml +3 -0
  413. package/public/assets/svg/ellipsis.svg +3 -3
  414. package/public/assets/svg/focus-point-round.svg +9 -0
  415. package/public/assets/svg/nav-bug.svg +1 -1
  416. package/public/assets/svg/nav-components.svg +2 -2
  417. package/public/assets/svg/nav-container.svg +1 -1
  418. package/public/assets/svg/nav-data.svg +1 -1
  419. package/public/assets/svg/nav-deprecations.svg +3 -3
  420. package/public/assets/svg/nav-info.svg +3 -3
  421. package/public/assets/svg/nav-promises.svg +2 -2
  422. package/public/assets/svg/nav-render-performance.svg +2 -2
  423. package/public/assets/svg/nav-route-tree.svg +7 -7
  424. package/public/assets/svg/sidebar-toggle-trailing.svg +9 -0
  425. package/scripts/download-panes.js +1 -1
  426. package/skeletons/bookmarklet/load_inspector.js +31 -11
  427. package/skeletons/web-extension/background.js +26 -21
  428. package/skeletons/web-extension/boot.js +1 -1
  429. package/skeletons/web-extension/content-script.js +12 -11
  430. package/skeletons/web-extension/devtools.js +12 -3
  431. package/skeletons/web-extension/manifest.json +3 -1
  432. package/skeletons/web-extension/options.js +17 -12
  433. package/skeletons/web-extension/scripts/in-page-script.js +19 -13
  434. package/testem.js +0 -1
  435. package/tests/acceptance/app-picker-test.js +4 -4
  436. package/tests/acceptance/component-tree-test.js +96 -57
  437. package/tests/acceptance/container-test.js +0 -2
  438. package/tests/acceptance/data-test.js +14 -11
  439. package/tests/acceptance/deprecation-test.js +8 -12
  440. package/tests/acceptance/info-test.js +2 -2
  441. package/tests/acceptance/object-inspector-test.js +62 -110
  442. package/tests/acceptance/promise-test.js +1 -11
  443. package/tests/acceptance/render-tree-test.js +2 -2
  444. package/tests/acceptance/route-tree-test.js +12 -14
  445. package/tests/acceptance/whats-new-test.js +11 -11
  446. package/tests/ember_debug/container-debug-test.js +5 -14
  447. package/tests/ember_debug/deprecation-debug-test.js +15 -6
  448. package/tests/ember_debug/ember-data-test.js +7 -1
  449. package/tests/ember_debug/ember-debug-test.js +13 -13
  450. package/tests/ember_debug/object-inspector-test.js +115 -50
  451. package/tests/ember_debug/profile-manager-test.js +153 -170
  452. package/tests/ember_debug/profile-node-test.js +9 -5
  453. package/tests/ember_debug/promise-assembler-test.js +18 -10
  454. package/tests/ember_debug/promise-debug-test.js +19 -15
  455. package/tests/ember_debug/render-debug-test.js +8 -1
  456. package/tests/ember_debug/route-debug-test.js +14 -8
  457. package/tests/ember_debug/view-debug-test.js +267 -183
  458. package/tests/helpers/{index.js → index.ts} +6 -5
  459. package/tests/helpers/setup-ember-debug-test.js +22 -2
  460. package/tests/index.html +1 -2
  461. package/tests/integration/injection-test.js +37 -81
  462. package/tests/test-adapter.js +15 -15
  463. package/tests/test-helper.js +6 -4
  464. package/tests/unit/check-current-route-test.js +0 -4
  465. package/tests/unit/resizable-columns-test.js +53 -51
  466. package/tests/unit/utils/parse-text-test.js +3 -3
  467. package/tests/unit/utils/search-match-test.js +5 -5
  468. package/tests/unit/utils/type-check-test.js +27 -0
  469. package/tsconfig.json +3 -1
  470. package/types/ember-inspector/index.d.ts +2 -1
  471. package/types/global.d.ts +1 -7
  472. package/.eslintignore +0 -33
  473. package/.eslintrc.js +0 -86
  474. package/app/components/list-content.js +0 -130
  475. package/app/controllers/promise-tree.js +0 -130
  476. package/app/libs/promise-assembler.js +0 -169
  477. package/app/routes/model-types.js +0 -47
  478. package/app/routes/promise-tree.js +0 -48
  479. package/app/routes/records.js +0 -55
  480. package/app/routes/render-tree.js +0 -66
  481. package/app/services/adapters/websocket.js +0 -31
  482. package/app/services/layout.js +0 -39
  483. package/app/services/port.js +0 -90
  484. package/dist/bookmarklet/panes-3-16-0/assets/chunk.143.76a242242ec46a377266.js +0 -28
  485. package/dist/bookmarklet/panes-3-16-0/assets/chunk.178.b6064b368cf24cc346ec.js +0 -9
  486. package/dist/bookmarklet/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  487. package/dist/bookmarklet/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  488. package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
  489. package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
  490. package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
  491. package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
  492. package/dist/chrome/panes-3-16-0/assets/chunk.143.76a242242ec46a377266.js +0 -28
  493. package/dist/chrome/panes-3-16-0/assets/chunk.178.b6064b368cf24cc346ec.js +0 -9
  494. package/dist/chrome/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  495. package/dist/chrome/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  496. package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
  497. package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
  498. package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
  499. package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
  500. package/dist/firefox/panes-3-16-0/assets/chunk.143.76a242242ec46a377266.js +0 -28
  501. package/dist/firefox/panes-3-16-0/assets/chunk.178.b6064b368cf24cc346ec.js +0 -9
  502. package/dist/firefox/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  503. package/dist/firefox/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  504. package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
  505. package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
  506. package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
  507. package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
  508. package/dist/websocket/assets/chunk.143.76a242242ec46a377266.js +0 -28
  509. package/dist/websocket/assets/chunk.178.b6064b368cf24cc346ec.js +0 -9
  510. package/dist/websocket/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  511. package/dist/websocket/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  512. package/dist/websocket/assets/fonts/Inter-Bold.woff +0 -0
  513. package/dist/websocket/assets/fonts/Inter-Bold.woff2 +0 -0
  514. package/dist/websocket/assets/fonts/Inter-Regular.woff +0 -0
  515. package/dist/websocket/assets/fonts/Inter-Regular.woff2 +0 -0
  516. package/ember_debug/.eslintrc.js +0 -13
  517. package/ember_debug/utils/ember/debug.js +0 -20
  518. package/ember_debug/utils/ember/instrumentation.js +0 -11
  519. package/ember_debug/utils/ember/loader.js +0 -22
  520. package/ember_debug/utils/rsvp.js +0 -20
  521. package/ember_debug/vendor/loader.js +0 -54
  522. package/ember_debug/vendor/startup-wrapper.js +0 -399
  523. package/lib/ui/addon/styles/_object-inspector-toggle.scss +0 -12
  524. package/lib/ui/addon/styles/addon.scss +0 -13
  525. package/lib/ui/addon/styles/toolbar/_icon-button.scss +0 -61
  526. package/lib/ui/app/components/ui/disclosure-triangle.js +0 -1
  527. package/lib/ui/app/components/ui/disclosure.js +0 -1
  528. package/lib/ui/app/components/ui/drag-handle.js +0 -1
  529. package/lib/ui/app/components/ui/draggable-column.js +0 -1
  530. package/lib/ui/app/components/ui/empty-message.js +0 -1
  531. package/lib/ui/app/components/ui/error-page.js +0 -1
  532. package/lib/ui/app/components/ui/open-links-in-new-window.js +0 -1
  533. package/lib/ui/app/components/ui/resizable-column.js +0 -1
  534. package/lib/ui/app/components/ui/send-to-console.js +0 -1
  535. package/lib/ui/app/components/ui/toolbar-clear-button.js +0 -1
  536. package/lib/ui/app/components/ui/toolbar-divider.js +0 -1
  537. package/lib/ui/app/components/ui/toolbar-reload-button.js +0 -1
  538. package/lib/ui/app/components/ui/toolbar-search-field.js +0 -1
  539. package/lib/ui/app/components/ui/warning-message.js +0 -1
  540. package/lib/ui/index.js +0 -34
  541. package/lib/ui/package.json +0 -13
  542. package/public/assets/fonts/Inter-Bold.woff +0 -0
  543. package/public/assets/fonts/Inter-Bold.woff2 +0 -0
  544. package/public/assets/fonts/Inter-Regular.woff +0 -0
  545. package/public/assets/fonts/Inter-Regular.woff2 +0 -0
  546. package/tests/helpers/trigger-port.js +0 -6
  547. /package/app/{app.js → app.ts} +0 -0
  548. /package/{lib/ui/addon/components → app/components/ui}/disclosure-triangle.hbs +0 -0
  549. /package/{lib/ui/addon/components → app/components/ui}/disclosure.hbs +0 -0
  550. /package/{lib/ui/addon/components → app/components/ui}/disclosure.js +0 -0
  551. /package/{lib/ui/addon/components → app/components/ui}/draggable-column.hbs +0 -0
  552. /package/{lib/ui/addon/components → app/components/ui}/draggable-column.js +0 -0
  553. /package/{lib/ui/addon/components → app/components/ui}/open-links-in-new-window.hbs +0 -0
  554. /package/{lib/ui/addon/components → app/components/ui}/open-links-in-new-window.js +0 -0
  555. /package/{lib/ui/addon/components → app/components/ui}/resizable-column.hbs +0 -0
  556. /package/{lib/ui/addon/components → app/components/ui}/send-to-console.hbs +0 -0
  557. /package/{lib/ui/addon/components → app/components/ui}/toolbar-divider.hbs +0 -0
  558. /package/{lib/ui/addon/components → app/components/ui}/toolbar-search-field.js +0 -0
  559. /package/{lib/ui/addon/components → app/components/ui}/warning-message.hbs +0 -0
  560. /package/app/controllers/{info.js → info.ts} +0 -0
  561. /package/app/services/adapters/{firefox.js → firefox.ts} +0 -0
  562. /package/{lib/ui/addon/styles → app/styles/ui}/_goto-source.scss +0 -0
  563. /package/{lib/ui/addon/styles → app/styles/ui}/_warning.scss +0 -0
  564. /package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_divider.scss +0 -0
@@ -1,17 +1,24 @@
1
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
2
+ // @ts-expect-error This does not seem to be typed
1
3
  import { observes } from '@ember-decorators/object';
2
- import { or, equal, not } from '@ember/object/computed';
3
4
  import { once } from '@ember/runloop';
4
- import { typeOf, isEmpty } from '@ember/utils';
5
- // eslint-disable-next-line ember/no-observers
5
+ import { typeOf } from '@ember/utils';
6
+
7
+ // eslint-disable-next-line ember/no-computed-properties-in-native-classes
6
8
  import EmberObject, { computed } from '@ember/object';
7
- import escapeRegExp from 'ember-inspector/utils/escape-reg-exp';
9
+ import { tracked } from '@glimmer/tracking';
10
+
11
+ import { TrackedArray } from 'tracked-built-ins';
12
+
13
+ import escapeRegExp from '../utils/escape-reg-exp';
14
+ import { isNullish } from '../utils/nullish';
8
15
 
9
16
  const dateComputed = function () {
10
17
  return computed({
11
18
  get() {
12
19
  return null;
13
20
  },
14
- set(key, date) {
21
+ set(_key, date: Date | number | string) {
15
22
  if (typeOf(date) === 'date') {
16
23
  return date;
17
24
  } else if (typeof date === 'number' || typeof date === 'string') {
@@ -22,61 +29,63 @@ const dateComputed = function () {
22
29
  });
23
30
  };
24
31
 
25
- export default class Promise extends EmberObject {
26
- @dateComputed()
27
- createdAt;
28
-
29
- @dateComputed()
30
- settledAt;
31
-
32
- parent = null;
33
-
34
- @computed('parent.level')
35
- get level() {
36
- let parent = this.parent;
32
+ export default class PromiseModel extends EmberObject {
33
+ children = new TrackedArray<PromiseModel>([]);
34
+ declare label?: string;
35
+ declare guid: string;
36
+ declare state: string;
37
+ // @ts-expect-error TODO: figure out types for this
38
+ @dateComputed() createdAt;
39
+ // @ts-expect-error TODO: figure out types for this
40
+ @dateComputed() settledAt;
41
+
42
+ @tracked branchLabel = '';
43
+ @tracked isExpanded = false;
44
+ @tracked isManuallyExpanded?: boolean = undefined;
45
+ @tracked parent: PromiseModel | null = null;
46
+
47
+ get level(): number {
48
+ const parent = this.parent;
37
49
  if (!parent) {
38
50
  return 0;
39
51
  }
40
- return parent.get('level') + 1;
52
+ return parent.level + 1;
41
53
  }
42
54
 
43
- @or('isFulfilled', 'isRejected')
44
- isSettled;
45
-
46
- @equal('state', 'fulfilled')
47
- isFulfilled;
55
+ get isSettled() {
56
+ return this.isFulfilled || this.isRejected;
57
+ }
48
58
 
49
- @equal('state', 'rejected')
50
- isRejected;
59
+ get isFulfilled() {
60
+ return this.state === 'fulfilled';
61
+ }
51
62
 
52
- @not('isSettled')
53
- isPending;
63
+ get isRejected() {
64
+ return this.state === 'rejected';
65
+ }
54
66
 
55
- get children() {
56
- return [];
67
+ get isPending() {
68
+ return !this.isSettled;
57
69
  }
58
70
 
59
- @computed('isPending', 'children.@each.pendingBranch')
60
71
  get pendingBranch() {
61
72
  return this.recursiveState('isPending', 'pendingBranch');
62
73
  }
63
74
 
64
- @computed('isRejected', 'children.@each.rejectedBranch')
65
75
  get rejectedBranch() {
66
76
  return this.recursiveState('isRejected', 'rejectedBranch');
67
77
  }
68
78
 
69
- @computed('isFulfilled', 'children.@each.fulfilledBranch')
70
79
  get fulfilledBranch() {
71
80
  return this.recursiveState('isFulfilled', 'fulfilledBranch');
72
81
  }
73
82
 
74
- recursiveState(prop, cp) {
75
- if (this.get(prop)) {
83
+ recursiveState(prop: keyof PromiseModel, cp: keyof PromiseModel) {
84
+ if (this[prop]) {
76
85
  return true;
77
86
  }
78
- for (let i = 0; i < this.get('children.length'); i++) {
79
- if (this.children.objectAt(i).get(cp)) {
87
+ for (let i = 0; i < this.children.length; i++) {
88
+ if (this.children.at(i)?.[cp]) {
80
89
  return true;
81
90
  }
82
91
  }
@@ -92,9 +101,9 @@ export default class Promise extends EmberObject {
92
101
  return;
93
102
  }
94
103
  if (
95
- (this.pendingBranch && !this.get('parent.pendingBranch')) ||
96
- (this.fulfilledBranch && !this.get('parent.fulfilledBranch')) ||
97
- (this.rejectedBranch && !this.get('parent.rejectedBranch'))
104
+ (this.pendingBranch && !this.parent.pendingBranch) ||
105
+ (this.fulfilledBranch && !this.parent.fulfilledBranch) ||
106
+ (this.rejectedBranch && !this.parent.rejectedBranch)
98
107
  ) {
99
108
  this.parent.notifyPropertyChange('fulfilledBranch');
100
109
  this.parent.notifyPropertyChange('rejectedBranch');
@@ -108,31 +117,29 @@ export default class Promise extends EmberObject {
108
117
  this.addBranchLabel(this.label, true);
109
118
  }
110
119
 
111
- addBranchLabel(label, replace) {
112
- if (isEmpty(label)) {
120
+ addBranchLabel(label?: string, replace?: boolean) {
121
+ if (isNullish(label)) {
113
122
  return;
114
123
  }
115
124
  if (replace) {
116
- this.set('branchLabel', label);
125
+ this.branchLabel = label;
117
126
  } else {
118
- this.set('branchLabel', `${this.branchLabel} ${label}`);
127
+ this.branchLabel = `${this.branchLabel} ${label}`;
119
128
  }
120
129
 
121
- let parent = this.parent;
130
+ const parent = this.parent;
122
131
  if (parent) {
123
132
  parent.addBranchLabel(label);
124
133
  }
125
134
  }
126
135
 
127
- branchLabel = '';
128
-
129
- matches(val) {
136
+ matches(val: string) {
130
137
  return !!this.branchLabel
131
138
  .toLowerCase()
132
139
  .match(new RegExp(`.*${escapeRegExp(val.toLowerCase())}.*`));
133
140
  }
134
141
 
135
- matchesExactly(val) {
142
+ matchesExactly(val: string) {
136
143
  return !!(this.label || '')
137
144
  .toLowerCase()
138
145
  .match(new RegExp(`.*${escapeRegExp(val.toLowerCase())}.*`));
@@ -140,21 +147,18 @@ export default class Promise extends EmberObject {
140
147
 
141
148
  // EXPANDED / COLLAPSED PROMISES
142
149
 
143
- isExpanded = false;
144
-
145
- isManuallyExpanded = undefined;
146
-
147
150
  // eslint-disable-next-line ember/no-observers
148
151
  @observes('isPending', 'isFulfilled', 'isRejected', 'parent')
149
152
  stateOrParentChanged() {
150
- let parent = this.parent;
153
+ const parent = this.parent;
151
154
  if (parent) {
155
+ // eslint-disable-next-line ember/no-runloop
152
156
  once(parent, 'recalculateExpanded');
153
157
  }
154
158
  }
155
159
 
156
- _findTopParent() {
157
- let parent = this.parent;
160
+ _findTopParent(): PromiseModel {
161
+ const parent = this.parent;
158
162
  if (!parent) {
159
163
  return this;
160
164
  } else {
@@ -167,36 +171,35 @@ export default class Promise extends EmberObject {
167
171
  if (this.isManuallyExpanded !== undefined) {
168
172
  isExpanded = this.isManuallyExpanded;
169
173
  } else {
170
- let children = this._allChildren();
171
- for (let i = 0, l = children.length; i < l; i++) {
172
- let child = children[i];
173
- if (child.get('isRejected')) {
174
+ const children = this._allChildren();
175
+ for (let i = 0; i < children.length; i++) {
176
+ const child = children[i] as PromiseModel;
177
+ if (child.isRejected) {
174
178
  isExpanded = true;
175
179
  }
176
- if (child.get('isPending') && !child.get('parent.isPending')) {
180
+ if (child.isPending && !child.parent!.isPending) {
177
181
  isExpanded = true;
178
182
  }
179
183
  if (isExpanded) {
180
184
  break;
181
185
  }
182
186
  }
183
- let parents = this._allParents();
187
+ const parents = this._allParents();
184
188
  if (isExpanded) {
185
189
  parents.forEach((parent) => {
186
190
  parent.set('isExpanded', true);
187
191
  });
188
- } else if (this.get('parent.isExpanded')) {
192
+ } else if (this.parent?.isExpanded) {
189
193
  this.parent.recalculateExpanded();
190
194
  }
191
195
  }
192
- this.set('isExpanded', isExpanded);
196
+ this.isExpanded = isExpanded;
193
197
  return isExpanded;
194
198
  }
195
199
 
196
- @computed('parent.{isExpanded,isVisible}', 'parent')
197
- get isVisible() {
200
+ get isVisible(): boolean {
198
201
  if (this.parent) {
199
- return this.get('parent.isExpanded') && this.get('parent.isVisible');
202
+ return this.parent.isExpanded && this.parent.isVisible;
200
203
  }
201
204
  return true;
202
205
  }
@@ -204,13 +207,13 @@ export default class Promise extends EmberObject {
204
207
  _allChildren() {
205
208
  let children = [...this.children];
206
209
  children.forEach((item) => {
207
- children = [...children, item._allChildren()];
210
+ children = [...children, ...item._allChildren()];
208
211
  });
209
212
  return children;
210
213
  }
211
214
 
212
- _allParents() {
213
- let parent = this.parent;
215
+ _allParents(): Array<PromiseModel> {
216
+ const parent = this.parent;
214
217
  if (parent) {
215
218
  return [parent, ...parent._allParents()];
216
219
  } else {
@@ -19,7 +19,7 @@ Router.map(function () {
19
19
  { path: '/:type_id', resetNamespace: true },
20
20
  function () {
21
21
  this.route('records', { resetNamespace: true });
22
- }
22
+ },
23
23
  );
24
24
  });
25
25
  });
@@ -16,18 +16,16 @@ export default class AppDetectedRoute extends Route {
16
16
  * @return {Promise}
17
17
  */
18
18
  model() {
19
- let port = this.port;
20
-
21
19
  return new Promise((resolve) => {
22
20
  this.applicationBooted = ({ booted }) => {
23
21
  if (booted) {
24
- port.off('general:applicationBooted', this.applicationBooted);
22
+ this.port.off('general:applicationBooted', this.applicationBooted);
25
23
  this.applicationBooted = null;
26
24
  resolve();
27
25
  }
28
26
  };
29
- port.on('general:applicationBooted', this.applicationBooted);
30
- port.send('general:applicationBooted');
27
+ this.port.on('general:applicationBooted', this.applicationBooted);
28
+ this.port.send('general:applicationBooted');
31
29
  });
32
30
  }
33
31
 
@@ -1,3 +1,4 @@
1
+ /* eslint-disable ember/no-controller-access-in-routes */
1
2
  import { inject as service } from '@ember/service';
2
3
  import { action, set } from '@ember/object';
3
4
  import Route from '@ember/routing/route';
@@ -8,9 +9,11 @@ export default class ApplicationRoute extends Route {
8
9
  @service adapter;
9
10
  @service port;
10
11
  @service router;
12
+ @service layout;
11
13
 
12
14
  setupController(controller) {
13
15
  controller.set('mixinStack', []);
16
+
14
17
  let port = this.port;
15
18
  port.on('objectInspector:updateObject', this, this.updateObject);
16
19
  port.on('objectInspector:updateProperty', this, this.updateProperty);
@@ -54,7 +57,6 @@ export default class ApplicationRoute extends Route {
54
57
  NativeArray.apply(details);
55
58
  details.forEach(arrayize);
56
59
 
57
- // eslint-disable-next-line ember/no-controller-access-in-routes
58
60
  let controller = this.controller;
59
61
 
60
62
  if (options.parentObject) {
@@ -63,23 +65,17 @@ export default class ApplicationRoute extends Route {
63
65
  controller.activateMixinDetails(name, objectId, details, errors);
64
66
  }
65
67
 
66
- // eslint-disable-next-line ember/no-controller-access-in-routes
67
- this.controller.showInspector();
68
+ this.layout.showInspector();
68
69
  }
69
70
 
70
71
  setDeprecationCount(message) {
71
- // eslint-disable-next-line ember/no-controller-access-in-routes
72
72
  this.controller.set('deprecationCount', message.count);
73
73
  }
74
74
 
75
- // eslint-enable ember/no-controller-access-in-routes
76
-
77
75
  updateProperty(options) {
78
- if (this.get('controller.mixinDetails.mixins')) {
79
- const detail = this.get('controller.mixinDetails.mixins').objectAt(
80
- options.mixinIndex
81
- );
82
- let property = detail.properties.findBy('name', options.property);
76
+ if (this.controller.mixinDetails?.mixins) {
77
+ const detail = this.controller.mixinDetails.mixins.at(options.mixinIndex);
78
+ let property = detail.properties.find((x) => x.name === options.property);
83
79
  if (!property) return;
84
80
  set(property, 'value', options.value);
85
81
  if (options.dependentKeys) {
@@ -89,7 +85,8 @@ export default class ApplicationRoute extends Route {
89
85
  }
90
86
 
91
87
  updateErrors(options) {
92
- let mixinDetails = this.get('controller.mixinDetails');
88
+ let mixinDetails = this.controller.mixinDetails;
89
+
93
90
  if (mixinDetails) {
94
91
  if (mixinDetails.objectId === options.objectId) {
95
92
  set(mixinDetails, 'errors', options.errors);
@@ -98,7 +95,6 @@ export default class ApplicationRoute extends Route {
98
95
  }
99
96
 
100
97
  droppedObject(message) {
101
- // eslint-disable-next-line ember/no-controller-access-in-routes
102
98
  this.controller.droppedObject(message.objectId);
103
99
  }
104
100
 
@@ -1,6 +1,6 @@
1
1
  import { inject as service } from '@ember/service';
2
2
  import { Promise } from 'rsvp';
3
- import { action, setProperties } from '@ember/object';
3
+ import { setProperties } from '@ember/object';
4
4
  import TabRoute from 'ember-inspector/routes/tab';
5
5
 
6
6
  export default class DeprecationsRoute extends TabRoute {
@@ -32,30 +32,21 @@ export default class DeprecationsRoute extends TabRoute {
32
32
  this.port.off(
33
33
  'deprecation:deprecationsAdded',
34
34
  this,
35
- this.deprecationsAdded
35
+ this.deprecationsAdded,
36
36
  );
37
37
  }
38
38
 
39
39
  deprecationsAdded(message) {
40
- // eslint-disable-next-line ember/no-controller-access-in-routes
41
- let { deprecations } = this.controller;
42
-
43
40
  message.deprecations.forEach((item) => {
44
- let record = deprecations.findBy('id', item.id);
41
+ let record = this.controller.deprecations.find(
42
+ (deprecation) => deprecation.id === item.id,
43
+ );
44
+
45
45
  if (record) {
46
46
  setProperties(record, item);
47
47
  } else {
48
- deprecations.pushObject(item);
48
+ this.controller.deprecations.push(item);
49
49
  }
50
50
  });
51
51
  }
52
-
53
- @action
54
- clear() {
55
- // eslint-disable-next-line ember/no-controller-access-in-routes
56
- let { deprecations } = this.controller;
57
-
58
- this.port.send('deprecation:clear');
59
- deprecations.clear();
60
- }
61
52
  }
@@ -1,4 +1,5 @@
1
1
  import { inject as service } from '@ember/service';
2
+ // eslint-disable-next-line ember/no-computed-properties-in-native-classes
2
3
  import { readOnly } from '@ember/object/computed';
3
4
  import Route from '@ember/routing/route';
4
5
  import RSVP from 'rsvp';
@@ -54,7 +55,7 @@ export default class LaunchRoute extends Route {
54
55
  },
55
56
  function () {
56
57
  resolve();
57
- }
58
+ },
58
59
  );
59
60
  });
60
61
  } else {
@@ -1,4 +1,5 @@
1
1
  import { inject as service } from '@ember/service';
2
+ // eslint-disable-next-line ember/no-computed-properties-in-native-classes
2
3
  import { readOnly } from '@ember/object/computed';
3
4
  import { Promise } from 'rsvp';
4
5
  import TabRoute from 'ember-inspector/routes/tab';
@@ -14,7 +15,7 @@ export default class LibrariesRoute extends TabRoute {
14
15
  const port = this.port;
15
16
  return new Promise((resolve) => {
16
17
  port.one('general:libraries', (message) => {
17
- message.libraries.insertAt(0, {
18
+ message.libraries.splice(0, 0, {
18
19
  name: 'Ember Inspector',
19
20
  version,
20
21
  });
@@ -7,9 +7,8 @@ export default class ModelTypeRoute extends Route {
7
7
 
8
8
  model(params) {
9
9
  return new Promise((resolve) => {
10
- const type = this.modelFor('model-types').findBy(
11
- 'name',
12
- decodeURIComponent(params.type_id)
10
+ const type = this.modelFor('model-types').find(
11
+ (x) => x.name === decodeURIComponent(params.type_id),
13
12
  );
14
13
  if (type) {
15
14
  resolve(type);
@@ -0,0 +1,57 @@
1
+ import type Controller from '@ember/controller';
2
+ import { inject as service } from '@ember/service';
3
+ import { set } from '@ember/object';
4
+ import type Transition from '@ember/routing/transition';
5
+
6
+ import { TrackedArray } from 'tracked-built-ins';
7
+
8
+ import type PortService from '../services/port';
9
+ import TabRoute from '../routes/tab';
10
+ import type { Message, ModelType } from '../services/port';
11
+
12
+ export default class ModelTypesRoute extends TabRoute {
13
+ @service declare port: PortService;
14
+
15
+ model() {
16
+ return new Promise<TrackedArray<ModelType>>((resolve) => {
17
+ this.port.one('data:modelTypesAdded', function (message: Message) {
18
+ resolve(new TrackedArray(message.modelTypes));
19
+ });
20
+ this.port.send('data:getModelTypes');
21
+ });
22
+ }
23
+
24
+ setupController(
25
+ controller: Controller,
26
+ model: unknown,
27
+ transition: Transition,
28
+ ) {
29
+ super.setupController(controller, model, transition);
30
+
31
+ this.port.on('data:modelTypesAdded', this, this.addModelTypes);
32
+ this.port.on('data:modelTypesUpdated', this, this.updateModelTypes);
33
+ }
34
+
35
+ deactivate() {
36
+ this.port.off('data:modelTypesAdded', this, this.addModelTypes);
37
+ this.port.off('data:modelTypesUpdated', this, this.updateModelTypes);
38
+ this.port.send('data:releaseModelTypes');
39
+ }
40
+
41
+ get _currentModel(): Array<ModelType> {
42
+ return this.modelFor(this.routeName) as Array<ModelType>;
43
+ }
44
+
45
+ addModelTypes = (message: Message) => {
46
+ this._currentModel.push(...message.modelTypes);
47
+ };
48
+
49
+ updateModelTypes = (message: Message) => {
50
+ message.modelTypes.forEach((modelType) => {
51
+ const currentType = this._currentModel.find(
52
+ (x) => x.objectId === modelType.objectId,
53
+ );
54
+ set(currentType as ModelType, 'count', modelType.count);
55
+ });
56
+ };
57
+ }
@@ -0,0 +1,63 @@
1
+ import { inject as service } from '@ember/service';
2
+ import { Promise } from 'rsvp';
3
+ import type Transition from '@ember/routing/transition';
4
+
5
+ import PromiseAssembler from '../libs/promise-assembler';
6
+ import type PortService from '../services/port';
7
+ import TabRoute from '../routes/tab';
8
+ import type PromiseTreeController from '../controllers/promise-tree';
9
+
10
+ export default class PromiseTreeRoute extends TabRoute {
11
+ @service declare port: PortService;
12
+
13
+ assembler: PromiseAssembler;
14
+ declare controller: PromiseTreeController;
15
+
16
+ constructor() {
17
+ // eslint-disable-next-line prefer-rest-params
18
+ super(...arguments);
19
+
20
+ this.assembler = PromiseAssembler.create({
21
+ port: this.port,
22
+ });
23
+ }
24
+
25
+ model() {
26
+ // block rendering until first batch arrives
27
+ // Helps prevent flashing of "please refresh the page"
28
+ return new Promise((resolve) => {
29
+ this.assembler.one('firstMessageReceived', () => {
30
+ resolve(this.assembler.topSort);
31
+ });
32
+ this.assembler.start();
33
+ });
34
+ }
35
+
36
+ setupController(
37
+ controller: PromiseTreeController,
38
+ model: unknown,
39
+ transition: Transition,
40
+ ) {
41
+ super.setupController(controller, model, transition);
42
+
43
+ this.port.on(
44
+ 'promise:instrumentWithStack',
45
+ this,
46
+ this.setInstrumentWithStack,
47
+ );
48
+ this.port.send('promise:getInstrumentWithStack');
49
+ }
50
+
51
+ deactivate() {
52
+ this.assembler.stop();
53
+ this.port.off(
54
+ 'promise:instrumentWithStack',
55
+ this,
56
+ this.setInstrumentWithStack,
57
+ );
58
+ }
59
+
60
+ setInstrumentWithStack = (message: { instrumentWithStack: boolean }) => {
61
+ this.controller.instrumentWithStack = message.instrumentWithStack;
62
+ };
63
+ }
@@ -0,0 +1,78 @@
1
+ import type Controller from '@ember/controller';
2
+ import type Transition from '@ember/routing/transition';
3
+ import { inject as service } from '@ember/service';
4
+ import { set } from '@ember/object';
5
+
6
+ import { TrackedArray } from 'tracked-built-ins';
7
+
8
+ import type PortService from '../services/port';
9
+ import type { Message, ModelType, RecordType } from '../services/port';
10
+ import TabRoute from '../routes/tab';
11
+ // @ts-expect-error TODO: not yet typed
12
+ import type RecordsController from '../controllers/records';
13
+
14
+ export default class RecordsRoute extends TabRoute {
15
+ @service declare port: PortService;
16
+
17
+ declare controller: RecordsController;
18
+
19
+ model() {
20
+ return new TrackedArray([]);
21
+ }
22
+
23
+ setupController(
24
+ controller: Controller,
25
+ model: unknown,
26
+ transition: Transition,
27
+ ) {
28
+ super.setupController(controller, model, transition);
29
+
30
+ const type = this.modelFor('model_type') as ModelType;
31
+
32
+ // @ts-expect-error TODO this should be resolved when we type the controller
33
+ controller.modelType = type;
34
+
35
+ this.port.on('data:recordsAdded', this, this.addRecords);
36
+ this.port.on('data:recordsUpdated', this, this.updateRecords);
37
+ this.port.on('data:recordsRemoved', this, this.removeRecords);
38
+ this.port.one('data:filters', this, (message: Message) => {
39
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
40
+ this.controller.filters = new TrackedArray(message.filters);
41
+ });
42
+ this.port.send('data:getFilters');
43
+ this.port.send('data:getRecords', { objectId: type.objectId });
44
+ }
45
+
46
+ deactivate() {
47
+ this.port.off('data:recordsAdded', this, this.addRecords);
48
+ this.port.off('data:recordsUpdated', this, this.updateRecords);
49
+ this.port.off('data:recordsRemoved', this, this.removeRecords);
50
+ this.port.send('data:releaseRecords');
51
+ }
52
+
53
+ get _currentModel(): Array<RecordType> {
54
+ return this.modelFor(this.routeName) as Array<RecordType>;
55
+ }
56
+
57
+ addRecords = (message: Message) => {
58
+ this._currentModel.push(...message.records);
59
+ };
60
+
61
+ removeRecords = (message: Message) => {
62
+ this._currentModel.splice(message.index, message.count);
63
+ };
64
+
65
+ updateRecords = (message: Message) => {
66
+ message.records.forEach((record) => {
67
+ const currentRecord = this._currentModel.find(
68
+ (x) => x.objectId === record.objectId,
69
+ );
70
+ if (currentRecord) {
71
+ set(currentRecord, 'columnValues', record.columnValues);
72
+ set(currentRecord, 'filterValues', record.filterValues);
73
+ set(currentRecord, 'searchIndex', record.searchIndex);
74
+ set(currentRecord, 'color', record.color);
75
+ }
76
+ });
77
+ };
78
+ }