ember-inspector 4.13.1-alpha.2024.8.9 → 4.13.1-alpha.2025.10.2

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 (548) hide show
  1. package/PRIVACY.md +3 -0
  2. package/README.md +10 -2
  3. package/app/components/app-picker.hbs +2 -2
  4. package/app/components/component-tree-item.hbs +14 -14
  5. package/app/components/component-tree-toolbar.hbs +17 -3
  6. package/app/components/{date-property-field.js → date-property-field.ts} +6 -5
  7. package/app/components/deprecation-item-source.hbs +1 -1
  8. package/app/components/deprecation-item.hbs +1 -1
  9. package/app/components/deprecations-toolbar.hbs +1 -1
  10. package/app/components/item-types.hbs +7 -7
  11. package/app/components/list-cell.hbs +3 -3
  12. package/app/components/list-content.hbs +4 -3
  13. package/app/components/list-content.ts +96 -0
  14. package/app/components/list.hbs +3 -3
  15. package/app/components/list.js +7 -7
  16. package/app/components/model-types-toolbar.hbs +3 -3
  17. package/app/components/object-inspector/component-parents.hbs +33 -0
  18. package/app/components/object-inspector/component-parents.js +43 -0
  19. package/app/components/object-inspector/dependent-keys.hbs +4 -4
  20. package/app/components/object-inspector/errors.hbs +4 -4
  21. package/app/components/object-inspector/properties-all.hbs +1 -1
  22. package/app/components/object-inspector/properties-base.js +2 -0
  23. package/app/components/object-inspector/properties-grouped.hbs +5 -5
  24. package/app/components/object-inspector/property.hbs +36 -34
  25. package/app/components/object-inspector/property.ts +34 -17
  26. package/app/components/object-inspector/sort-properties.js +12 -4
  27. package/app/components/object-inspector/toggle.hbs +9 -0
  28. package/app/components/object-inspector/toggle.js +6 -0
  29. package/app/components/object-inspector.hbs +11 -9
  30. package/app/components/object-inspector.js +1 -1
  31. package/app/components/promise-item.hbs +11 -11
  32. package/app/components/promise-item.js +8 -6
  33. package/app/components/promise-tree-toolbar.hbs +5 -5
  34. package/app/components/records-toolbar.hbs +2 -2
  35. package/app/components/render-item.hbs +4 -4
  36. package/app/components/render-item.ts +12 -9
  37. package/app/components/render-tree-toolbar.hbs +1 -1
  38. package/app/components/route-cell-name.hbs +1 -1
  39. package/app/components/route-cell-name.js +3 -2
  40. package/app/components/route-tree-toolbar.hbs +2 -2
  41. package/app/components/scroll-container.js +2 -0
  42. package/app/components/side-nav.hbs +5 -5
  43. package/app/components/side-nav.js +1 -1
  44. package/{lib/ui/addon/components → app/components/ui}/drag-handle.hbs +4 -4
  45. package/{lib/ui/addon/components → app/components/ui}/drag-handle.js +3 -1
  46. package/{lib/ui/addon/components → app/components/ui}/empty-message.hbs +1 -1
  47. package/{lib/ui/addon/components → app/components/ui}/error-page.hbs +3 -3
  48. package/{lib/ui/addon/components → app/components/ui}/resizable-column.js +1 -1
  49. package/{lib/ui/addon/components → app/components/ui}/toolbar-clear-button.hbs +1 -1
  50. package/{lib/ui/addon/components → app/components/ui}/toolbar-reload-button.hbs +1 -1
  51. package/{lib/ui/addon/components → app/components/ui}/toolbar-search-field.hbs +2 -2
  52. package/app/computed/{debounce.js → debounce.ts} +7 -5
  53. package/app/config/environment.d.ts +5 -2
  54. package/app/controllers/app-config.js +1 -0
  55. package/app/controllers/application.js +36 -71
  56. package/app/controllers/component-tree.js +26 -7
  57. package/app/controllers/container-type.js +2 -1
  58. package/app/controllers/container-types/{index.js → index.ts} +5 -2
  59. package/app/controllers/container-types.js +3 -6
  60. package/app/controllers/deprecations.js +16 -11
  61. package/app/controllers/libraries.js +1 -0
  62. package/app/controllers/model-types.js +1 -0
  63. package/app/controllers/promise-tree.ts +149 -0
  64. package/app/controllers/records.js +18 -26
  65. package/app/controllers/{render-tree.js → render-tree.ts} +54 -45
  66. package/app/controllers/route-tree.js +7 -5
  67. package/app/helpers/build-style.js +1 -1
  68. package/app/index.html +1 -19
  69. package/app/initializers/setup.js +1 -1
  70. package/app/libs/promise-assembler.ts +249 -0
  71. package/app/libs/resizable-columns.js +10 -10
  72. package/app/models/{promise.js → promise.ts} +72 -69
  73. package/app/{router.js → router.ts} +1 -1
  74. package/app/routes/app-detected.js +3 -5
  75. package/app/routes/application.js +9 -13
  76. package/app/routes/deprecations.js +7 -16
  77. package/app/routes/launch.js +2 -1
  78. package/app/routes/libraries.js +2 -1
  79. package/app/routes/model-type.js +2 -3
  80. package/app/routes/model-types.ts +57 -0
  81. package/app/routes/promise-tree.ts +63 -0
  82. package/app/routes/records.ts +78 -0
  83. package/app/routes/render-tree.ts +93 -0
  84. package/app/routes/route-tree.js +0 -1
  85. package/app/routes/{tab.js → tab.ts} +9 -2
  86. package/app/routes/whats-new.js +2 -2
  87. package/app/services/adapters/{basic.js → basic.ts} +36 -30
  88. package/app/services/adapters/{bookmarklet.js → bookmarklet.ts} +17 -24
  89. package/app/services/adapters/{chrome.js → chrome.ts} +1 -2
  90. package/app/services/adapters/{web-extension.js → web-extension.ts} +46 -46
  91. package/app/services/adapters/websocket.ts +40 -0
  92. package/app/services/layout.ts +124 -0
  93. package/app/services/port.ts +195 -0
  94. package/app/services/storage/{local.js → local.ts} +7 -20
  95. package/app/services/storage/{memory.js → memory.ts} +6 -21
  96. package/app/services/{storage.js → storage.ts} +9 -20
  97. package/app/styles/app.scss +1 -0
  98. package/app/styles/base.scss +6 -2
  99. package/app/styles/colors.scss +33 -31
  100. package/app/styles/component_tree.scss +56 -51
  101. package/app/styles/dropdown.scss +2 -2
  102. package/app/styles/ember-table.scss +3 -3
  103. package/app/styles/mixin.scss +26 -26
  104. package/app/styles/object_inspector.scss +30 -21
  105. package/{lib/ui/addon/styles → app/styles/ui}/_disclosure-triangle.scss +3 -1
  106. package/{lib/ui/addon/styles → app/styles/ui}/_drag-handle.scss +7 -7
  107. package/{lib/ui/addon/styles → app/styles/ui}/_empty-message.scss +1 -1
  108. package/{lib/ui/addon/styles → app/styles/ui}/_error-page.scss +8 -7
  109. package/{lib/ui/addon/styles → app/styles/ui}/_list.scss +46 -45
  110. package/{lib/ui/addon/styles → app/styles/ui}/_nav.scss +29 -27
  111. package/app/styles/ui/_object-inspector-toggle.scss +4 -0
  112. package/{lib/ui/addon/styles → app/styles/ui}/_pill.scss +4 -4
  113. package/{lib/ui/addon/styles → app/styles/ui}/_send-to-console.scss +1 -1
  114. package/{lib/ui/addon/styles → app/styles/ui}/_split.scss +26 -20
  115. package/app/styles/ui/_ui.scss +13 -0
  116. package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_checkbox.scss +5 -5
  117. package/app/styles/ui/toolbar/_icon-button.scss +80 -0
  118. package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_index.scss +6 -5
  119. package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_radio.scss +10 -10
  120. package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_search.scss +5 -3
  121. package/app/styles/utils.scss +408 -122
  122. package/app/templates/application.hbs +21 -19
  123. package/app/templates/component-tree.hbs +4 -1
  124. package/app/templates/deprecations.hbs +2 -3
  125. package/app/templates/info.hbs +10 -10
  126. package/app/templates/promise-tree.hbs +1 -1
  127. package/app/templates/render-tree.hbs +1 -1
  128. package/app/templates/route-tree.hbs +1 -1
  129. package/app/utils/escape-reg-exp.ts +3 -2
  130. package/app/utils/nullish.ts +7 -0
  131. package/app/utils/parse-text.ts +4 -5
  132. package/app/utils/truncate.js +0 -1
  133. package/config/ember-cli-update.json +5 -3
  134. package/config/ember-try.js +117 -72
  135. package/config/environment.js +1 -1
  136. package/config/optional-features.json +2 -1
  137. package/dist/bookmarklet/load_inspector.js +31 -11
  138. package/dist/bookmarklet/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  139. package/dist/bookmarklet/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  140. package/dist/bookmarklet/panes-3-16-0/assets/chunk.524.25304d5512b5af001d54.js +40 -0
  141. package/dist/bookmarklet/panes-3-16-0/assets/chunk.582.8b244c3850a8429bac52.js +42 -0
  142. package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.css +997 -156
  143. package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.js +557 -609
  144. package/dist/bookmarklet/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
  145. package/dist/bookmarklet/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
  146. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
  147. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-components.svg +2 -2
  148. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-container.svg +1 -1
  149. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-data.svg +1 -1
  150. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
  151. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-info.svg +3 -3
  152. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
  153. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
  154. package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
  155. package/dist/bookmarklet/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
  156. package/dist/bookmarklet/panes-3-16-0/assets/vendor.css +4 -841
  157. package/dist/bookmarklet/panes-3-16-0/assets/vendor.js +4277 -5152
  158. package/dist/bookmarklet/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
  159. package/dist/bookmarklet/panes-3-16-0/basic-DfbgtngO.js +144 -0
  160. package/dist/bookmarklet/panes-3-16-0/basic-debug.js +6 -0
  161. package/dist/bookmarklet/panes-3-16-0/bookmarklet-debug.js +34 -0
  162. package/dist/bookmarklet/panes-3-16-0/chrome-debug.js +12 -0
  163. package/dist/bookmarklet/panes-3-16-0/ember.js +115 -0
  164. package/dist/bookmarklet/panes-3-16-0/ember_debug.js +24 -11011
  165. package/dist/bookmarklet/panes-3-16-0/evented-BCTya3yE.js +62 -0
  166. package/dist/bookmarklet/panes-3-16-0/firefox-debug.js +32 -0
  167. package/dist/bookmarklet/panes-3-16-0/index.html +4 -23
  168. package/dist/bookmarklet/panes-3-16-0/internals-CRmXMEzb.js +12 -0
  169. package/dist/bookmarklet/panes-3-16-0/main.js +7663 -0
  170. package/dist/bookmarklet/panes-3-16-0/port.js +108 -0
  171. package/dist/bookmarklet/panes-3-16-0/profile-node.js +60 -0
  172. package/dist/bookmarklet/panes-3-16-0/promise-assembler.js +218 -0
  173. package/dist/bookmarklet/panes-3-16-0/runloop-CF-Qpqgy.js +1138 -0
  174. package/dist/bookmarklet/panes-3-16-0/start-inspector-BPAW_WLv.js +376 -0
  175. package/dist/bookmarklet/panes-3-16-0/type-check.js +119 -0
  176. package/dist/bookmarklet/panes-3-16-0/version.js +90 -0
  177. package/dist/bookmarklet/panes-3-16-0/versions.js +4 -0
  178. package/dist/bookmarklet/panes-3-16-0/web-extension-C3pMNVSY.js +144 -0
  179. package/dist/bookmarklet/panes-3-16-0/websocket-debug.js +60 -0
  180. package/dist/chrome/background.js +26 -21
  181. package/dist/chrome/boot.js +1 -1
  182. package/dist/chrome/content-script.js +12 -11
  183. package/dist/chrome/devtools.js +12 -3
  184. package/dist/chrome/manifest.json +3 -3
  185. package/dist/chrome/options.js +17 -12
  186. package/dist/chrome/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  187. package/dist/chrome/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  188. package/dist/chrome/panes-3-16-0/assets/chunk.524.25304d5512b5af001d54.js +40 -0
  189. package/dist/chrome/panes-3-16-0/assets/chunk.582.8b244c3850a8429bac52.js +42 -0
  190. package/dist/chrome/panes-3-16-0/assets/ember-inspector.css +997 -156
  191. package/dist/chrome/panes-3-16-0/assets/ember-inspector.js +557 -609
  192. package/dist/chrome/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
  193. package/dist/chrome/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
  194. package/dist/chrome/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
  195. package/dist/chrome/panes-3-16-0/assets/svg/nav-components.svg +2 -2
  196. package/dist/chrome/panes-3-16-0/assets/svg/nav-container.svg +1 -1
  197. package/dist/chrome/panes-3-16-0/assets/svg/nav-data.svg +1 -1
  198. package/dist/chrome/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
  199. package/dist/chrome/panes-3-16-0/assets/svg/nav-info.svg +3 -3
  200. package/dist/chrome/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
  201. package/dist/chrome/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
  202. package/dist/chrome/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
  203. package/dist/chrome/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
  204. package/dist/chrome/panes-3-16-0/assets/vendor.css +4 -841
  205. package/dist/chrome/panes-3-16-0/assets/vendor.js +4277 -5152
  206. package/dist/chrome/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
  207. package/dist/chrome/panes-3-16-0/basic-DfbgtngO.js +144 -0
  208. package/dist/chrome/panes-3-16-0/basic-debug.js +6 -0
  209. package/dist/chrome/panes-3-16-0/bookmarklet-debug.js +34 -0
  210. package/dist/chrome/panes-3-16-0/chrome-debug.js +12 -0
  211. package/dist/chrome/panes-3-16-0/ember.js +115 -0
  212. package/dist/chrome/panes-3-16-0/ember_debug.js +12 -11021
  213. package/dist/chrome/panes-3-16-0/evented-BCTya3yE.js +62 -0
  214. package/dist/chrome/panes-3-16-0/firefox-debug.js +32 -0
  215. package/dist/chrome/panes-3-16-0/index.html +4 -23
  216. package/dist/chrome/panes-3-16-0/internals-CRmXMEzb.js +12 -0
  217. package/dist/chrome/panes-3-16-0/main.js +7663 -0
  218. package/dist/chrome/panes-3-16-0/port.js +108 -0
  219. package/dist/chrome/panes-3-16-0/profile-node.js +60 -0
  220. package/dist/chrome/panes-3-16-0/promise-assembler.js +218 -0
  221. package/dist/chrome/panes-3-16-0/runloop-CF-Qpqgy.js +1138 -0
  222. package/dist/chrome/panes-3-16-0/start-inspector-BPAW_WLv.js +376 -0
  223. package/dist/chrome/panes-3-16-0/type-check.js +119 -0
  224. package/dist/chrome/panes-3-16-0/version.js +90 -0
  225. package/dist/chrome/panes-3-16-0/versions.js +4 -0
  226. package/dist/chrome/panes-3-16-0/web-extension-C3pMNVSY.js +144 -0
  227. package/dist/chrome/panes-3-16-0/websocket-debug.js +60 -0
  228. package/dist/chrome/scripts/in-page-script.js +19 -13
  229. package/dist/firefox/background.js +26 -21
  230. package/dist/firefox/boot.js +1 -1
  231. package/dist/firefox/content-script.js +12 -11
  232. package/dist/firefox/devtools.js +12 -3
  233. package/dist/firefox/manifest.json +3 -3
  234. package/dist/firefox/options.js +17 -12
  235. package/dist/firefox/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  236. package/dist/firefox/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  237. package/dist/firefox/panes-3-16-0/assets/chunk.524.25304d5512b5af001d54.js +40 -0
  238. package/dist/firefox/panes-3-16-0/assets/chunk.582.8b244c3850a8429bac52.js +42 -0
  239. package/dist/firefox/panes-3-16-0/assets/ember-inspector.css +997 -156
  240. package/dist/firefox/panes-3-16-0/assets/ember-inspector.js +557 -609
  241. package/dist/firefox/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
  242. package/dist/firefox/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
  243. package/dist/firefox/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
  244. package/dist/firefox/panes-3-16-0/assets/svg/nav-components.svg +2 -2
  245. package/dist/firefox/panes-3-16-0/assets/svg/nav-container.svg +1 -1
  246. package/dist/firefox/panes-3-16-0/assets/svg/nav-data.svg +1 -1
  247. package/dist/firefox/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
  248. package/dist/firefox/panes-3-16-0/assets/svg/nav-info.svg +3 -3
  249. package/dist/firefox/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
  250. package/dist/firefox/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
  251. package/dist/firefox/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
  252. package/dist/firefox/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
  253. package/dist/firefox/panes-3-16-0/assets/vendor.css +4 -841
  254. package/dist/firefox/panes-3-16-0/assets/vendor.js +4277 -5152
  255. package/dist/firefox/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
  256. package/dist/firefox/panes-3-16-0/basic-DfbgtngO.js +144 -0
  257. package/dist/firefox/panes-3-16-0/basic-debug.js +6 -0
  258. package/dist/firefox/panes-3-16-0/bookmarklet-debug.js +34 -0
  259. package/dist/firefox/panes-3-16-0/chrome-debug.js +12 -0
  260. package/dist/firefox/panes-3-16-0/ember.js +115 -0
  261. package/dist/firefox/panes-3-16-0/ember_debug.js +27 -11016
  262. package/dist/firefox/panes-3-16-0/evented-BCTya3yE.js +62 -0
  263. package/dist/firefox/panes-3-16-0/firefox-debug.js +32 -0
  264. package/dist/firefox/panes-3-16-0/index.html +4 -23
  265. package/dist/firefox/panes-3-16-0/internals-CRmXMEzb.js +12 -0
  266. package/dist/firefox/panes-3-16-0/main.js +7663 -0
  267. package/dist/firefox/panes-3-16-0/port.js +108 -0
  268. package/dist/firefox/panes-3-16-0/profile-node.js +60 -0
  269. package/dist/firefox/panes-3-16-0/promise-assembler.js +218 -0
  270. package/dist/firefox/panes-3-16-0/runloop-CF-Qpqgy.js +1138 -0
  271. package/dist/firefox/panes-3-16-0/start-inspector-BPAW_WLv.js +376 -0
  272. package/dist/firefox/panes-3-16-0/type-check.js +119 -0
  273. package/dist/firefox/panes-3-16-0/version.js +90 -0
  274. package/dist/firefox/panes-3-16-0/versions.js +4 -0
  275. package/dist/firefox/panes-3-16-0/web-extension-C3pMNVSY.js +144 -0
  276. package/dist/firefox/panes-3-16-0/websocket-debug.js +60 -0
  277. package/dist/firefox/scripts/in-page-script.js +19 -13
  278. package/dist/websocket/assets/chunk.443.86a005e528b587663b78.js +1135 -0
  279. package/dist/websocket/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
  280. package/dist/websocket/assets/chunk.524.25304d5512b5af001d54.js +40 -0
  281. package/dist/websocket/assets/chunk.582.8b244c3850a8429bac52.js +42 -0
  282. package/dist/websocket/assets/ember-inspector.css +997 -156
  283. package/dist/websocket/assets/ember-inspector.js +557 -609
  284. package/dist/websocket/assets/svg/ellipsis.svg +3 -3
  285. package/dist/websocket/assets/svg/focus-point-round.svg +9 -0
  286. package/dist/websocket/assets/svg/nav-bug.svg +1 -1
  287. package/dist/websocket/assets/svg/nav-components.svg +2 -2
  288. package/dist/websocket/assets/svg/nav-container.svg +1 -1
  289. package/dist/websocket/assets/svg/nav-data.svg +1 -1
  290. package/dist/websocket/assets/svg/nav-deprecations.svg +3 -3
  291. package/dist/websocket/assets/svg/nav-info.svg +3 -3
  292. package/dist/websocket/assets/svg/nav-promises.svg +2 -2
  293. package/dist/websocket/assets/svg/nav-render-performance.svg +2 -2
  294. package/dist/websocket/assets/svg/nav-route-tree.svg +7 -7
  295. package/dist/websocket/assets/svg/sidebar-toggle-trailing.svg +9 -0
  296. package/dist/websocket/assets/vendor.css +4 -841
  297. package/dist/websocket/assets/vendor.js +4277 -5152
  298. package/dist/websocket/base-object-HAEdWjmg.js +59 -0
  299. package/dist/websocket/basic-DfbgtngO.js +144 -0
  300. package/dist/websocket/basic-debug.js +6 -0
  301. package/dist/websocket/bookmarklet-debug.js +34 -0
  302. package/dist/websocket/chrome-debug.js +12 -0
  303. package/dist/websocket/ember.js +115 -0
  304. package/dist/websocket/ember_debug.js +48 -11009
  305. package/dist/websocket/evented-BCTya3yE.js +62 -0
  306. package/dist/websocket/firefox-debug.js +32 -0
  307. package/dist/websocket/index.html +4 -23
  308. package/dist/websocket/internals-CRmXMEzb.js +12 -0
  309. package/dist/websocket/main.js +7663 -0
  310. package/dist/websocket/port.js +108 -0
  311. package/dist/websocket/profile-node.js +60 -0
  312. package/dist/websocket/promise-assembler.js +218 -0
  313. package/dist/websocket/runloop-CF-Qpqgy.js +1138 -0
  314. package/dist/websocket/start-inspector-BPAW_WLv.js +376 -0
  315. package/dist/websocket/type-check.js +119 -0
  316. package/dist/websocket/version.js +90 -0
  317. package/dist/websocket/versions.js +4 -0
  318. package/dist/websocket/web-extension-C3pMNVSY.js +144 -0
  319. package/dist/websocket/websocket-debug.js +60 -0
  320. package/ember-cli-build.js +31 -140
  321. package/ember_debug/adapters/basic.js +10 -29
  322. package/ember_debug/adapters/bookmarklet.js +1 -0
  323. package/ember_debug/adapters/firefox.js +3 -3
  324. package/ember_debug/adapters/web-extension.js +6 -5
  325. package/ember_debug/adapters/websocket.js +2 -2
  326. package/ember_debug/babel.config.cjs +11 -0
  327. package/ember_debug/container-debug.js +1 -1
  328. package/ember_debug/data-debug.js +7 -8
  329. package/ember_debug/debug-port.js +1 -1
  330. package/ember_debug/deprecation-debug.js +14 -14
  331. package/ember_debug/entrypoints/basic-debug.js +6 -0
  332. package/ember_debug/entrypoints/bookmarklet-debug.js +6 -0
  333. package/ember_debug/entrypoints/chrome-debug.js +6 -0
  334. package/ember_debug/entrypoints/firefox-debug.js +6 -0
  335. package/ember_debug/entrypoints/websocket-debug.js +6 -0
  336. package/ember_debug/general-debug.js +4 -4
  337. package/ember_debug/lib/boot-ember-inspector.js +9 -0
  338. package/ember_debug/lib/get-applications.js +27 -0
  339. package/ember_debug/lib/load-ember-debug-in-webpage.js +30 -0
  340. package/ember_debug/lib/send-apps.js +14 -0
  341. package/ember_debug/lib/send-version-miss.js +39 -0
  342. package/ember_debug/lib/setup-instance-initializer.js +16 -0
  343. package/ember_debug/lib/start-inspector.js +211 -0
  344. package/ember_debug/lib/version-test.js +73 -0
  345. package/ember_debug/lib/versions.js +3 -0
  346. package/ember_debug/libs/capture-render-tree.js +1 -2
  347. package/ember_debug/libs/promise-assembler.js +5 -4
  348. package/ember_debug/libs/render-tree.js +37 -44
  349. package/ember_debug/libs/source-map.js +7 -6
  350. package/ember_debug/libs/view-inspection.js +25 -17
  351. package/ember_debug/main.js +18 -21
  352. package/ember_debug/models/profile-manager.js +6 -6
  353. package/ember_debug/models/profile-node.js +1 -1
  354. package/ember_debug/models/promise.js +2 -2
  355. package/ember_debug/object-inspector.js +71 -65
  356. package/ember_debug/package.json +27 -0
  357. package/ember_debug/port.js +5 -4
  358. package/ember_debug/promise-debug.js +5 -5
  359. package/ember_debug/render-debug.js +5 -5
  360. package/ember_debug/rollup.config.js +24 -0
  361. package/ember_debug/route-debug.js +10 -9
  362. package/ember_debug/services/session.js +2 -2
  363. package/ember_debug/utils/classify.js +1 -1
  364. package/ember_debug/utils/ember/object/internals.js +1 -11
  365. package/ember_debug/utils/ember/own-runloop.js +1 -1
  366. package/ember_debug/utils/ember/runloop.js +7 -10
  367. package/ember_debug/utils/ember-object-names.js +7 -8
  368. package/ember_debug/utils/ember.js +120 -14
  369. package/ember_debug/utils/evented.js +1 -1
  370. package/ember_debug/utils/get-object-name.js +3 -3
  371. package/ember_debug/utils/type-check.js +9 -5
  372. package/ember_debug/view-debug.js +12 -6
  373. package/eslint.config.mjs +173 -0
  374. package/gulpfile.js +1 -1
  375. package/package.json +97 -95
  376. package/pnpm-workspace.yaml +3 -0
  377. package/public/assets/svg/ellipsis.svg +3 -3
  378. package/public/assets/svg/focus-point-round.svg +9 -0
  379. package/public/assets/svg/nav-bug.svg +1 -1
  380. package/public/assets/svg/nav-components.svg +2 -2
  381. package/public/assets/svg/nav-container.svg +1 -1
  382. package/public/assets/svg/nav-data.svg +1 -1
  383. package/public/assets/svg/nav-deprecations.svg +3 -3
  384. package/public/assets/svg/nav-info.svg +3 -3
  385. package/public/assets/svg/nav-promises.svg +2 -2
  386. package/public/assets/svg/nav-render-performance.svg +2 -2
  387. package/public/assets/svg/nav-route-tree.svg +7 -7
  388. package/public/assets/svg/sidebar-toggle-trailing.svg +9 -0
  389. package/scripts/download-panes.js +1 -1
  390. package/skeletons/bookmarklet/load_inspector.js +31 -11
  391. package/skeletons/web-extension/background.js +26 -21
  392. package/skeletons/web-extension/boot.js +1 -1
  393. package/skeletons/web-extension/content-script.js +12 -11
  394. package/skeletons/web-extension/devtools.js +12 -3
  395. package/skeletons/web-extension/manifest.json +3 -3
  396. package/skeletons/web-extension/options.js +17 -12
  397. package/skeletons/web-extension/scripts/in-page-script.js +19 -13
  398. package/testem.js +0 -1
  399. package/tests/acceptance/app-picker-test.js +4 -4
  400. package/tests/acceptance/component-tree-test.js +96 -57
  401. package/tests/acceptance/container-test.js +0 -2
  402. package/tests/acceptance/data-test.js +8 -10
  403. package/tests/acceptance/deprecation-test.js +8 -12
  404. package/tests/acceptance/info-test.js +2 -2
  405. package/tests/acceptance/object-inspector-test.js +62 -110
  406. package/tests/acceptance/promise-test.js +1 -11
  407. package/tests/acceptance/render-tree-test.js +2 -2
  408. package/tests/acceptance/route-tree-test.js +12 -14
  409. package/tests/acceptance/whats-new-test.js +4 -4
  410. package/tests/ember_debug/container-debug-test.js +4 -4
  411. package/tests/ember_debug/deprecation-debug-test.js +8 -5
  412. package/tests/ember_debug/ember-debug-test.js +1 -4
  413. package/tests/ember_debug/object-inspector-test.js +108 -49
  414. package/tests/ember_debug/profile-manager-test.js +142 -169
  415. package/tests/ember_debug/profile-node-test.js +4 -4
  416. package/tests/ember_debug/promise-assembler-test.js +13 -10
  417. package/tests/ember_debug/promise-debug-test.js +5 -6
  418. package/tests/ember_debug/route-debug-test.js +8 -7
  419. package/tests/ember_debug/view-debug-test.js +257 -182
  420. package/tests/helpers/{index.js → index.ts} +6 -5
  421. package/tests/helpers/setup-ember-debug-test.js +14 -0
  422. package/tests/index.html +1 -2
  423. package/tests/integration/injection-test.js +14 -15
  424. package/tests/test-adapter.js +15 -15
  425. package/tests/test-helper.js +6 -4
  426. package/tests/unit/check-current-route-test.js +0 -4
  427. package/tests/unit/resizable-columns-test.js +53 -51
  428. package/tests/unit/utils/parse-text-test.js +3 -3
  429. package/tests/unit/utils/search-match-test.js +5 -5
  430. package/tests/unit/utils/type-check-test.js +22 -0
  431. package/tsconfig.json +3 -1
  432. package/types/ember-inspector/index.d.ts +2 -1
  433. package/types/global.d.ts +1 -7
  434. package/.editorconfig +0 -19
  435. package/.ember-cli +0 -15
  436. package/.eslintignore +0 -33
  437. package/.eslintrc.js +0 -86
  438. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -30
  439. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  440. package/.github/dependabot.yml +0 -14
  441. package/.github/pull_request_template.md +0 -4
  442. package/.github/workflows/build.yml +0 -339
  443. package/.github/workflows/plan-release.yml +0 -83
  444. package/.github/workflows/publish.yml +0 -60
  445. package/.prettierignore +0 -25
  446. package/.prettierrc.js +0 -14
  447. package/.release-plan.json +0 -17
  448. package/.stylelintrc.js +0 -3
  449. package/.template-lintrc.js +0 -12
  450. package/.tool-versions +0 -2
  451. package/.watchmanconfig +0 -3
  452. package/app/components/.gitkeep +0 -0
  453. package/app/components/list-content.js +0 -130
  454. package/app/controllers/.gitkeep +0 -0
  455. package/app/controllers/promise-tree.js +0 -130
  456. package/app/helpers/.gitkeep +0 -0
  457. package/app/libs/promise-assembler.js +0 -169
  458. package/app/models/.gitkeep +0 -0
  459. package/app/routes/.gitkeep +0 -0
  460. package/app/routes/model-types.js +0 -47
  461. package/app/routes/promise-tree.js +0 -48
  462. package/app/routes/records.js +0 -55
  463. package/app/routes/render-tree.js +0 -66
  464. package/app/services/adapters/websocket.js +0 -31
  465. package/app/services/layout.js +0 -39
  466. package/app/services/port.js +0 -90
  467. package/dist/bookmarklet/panes-3-16-0/assets/chunk.143.143ca772b0b28102c74a.js +0 -28
  468. package/dist/bookmarklet/panes-3-16-0/assets/chunk.178.b50e140d1ed8777b583e.js +0 -9
  469. package/dist/bookmarklet/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  470. package/dist/bookmarklet/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  471. package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
  472. package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
  473. package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
  474. package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
  475. package/dist/chrome/panes-3-16-0/assets/chunk.143.143ca772b0b28102c74a.js +0 -28
  476. package/dist/chrome/panes-3-16-0/assets/chunk.178.b50e140d1ed8777b583e.js +0 -9
  477. package/dist/chrome/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  478. package/dist/chrome/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  479. package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
  480. package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
  481. package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
  482. package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
  483. package/dist/firefox/panes-3-16-0/assets/chunk.143.143ca772b0b28102c74a.js +0 -28
  484. package/dist/firefox/panes-3-16-0/assets/chunk.178.b50e140d1ed8777b583e.js +0 -9
  485. package/dist/firefox/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  486. package/dist/firefox/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  487. package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
  488. package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
  489. package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
  490. package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
  491. package/dist/websocket/assets/chunk.143.143ca772b0b28102c74a.js +0 -28
  492. package/dist/websocket/assets/chunk.178.b50e140d1ed8777b583e.js +0 -9
  493. package/dist/websocket/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
  494. package/dist/websocket/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
  495. package/dist/websocket/assets/fonts/Inter-Bold.woff +0 -0
  496. package/dist/websocket/assets/fonts/Inter-Bold.woff2 +0 -0
  497. package/dist/websocket/assets/fonts/Inter-Regular.woff +0 -0
  498. package/dist/websocket/assets/fonts/Inter-Regular.woff2 +0 -0
  499. package/ember_debug/.eslintrc.js +0 -13
  500. package/ember_debug/utils/ember/debug.js +0 -20
  501. package/ember_debug/utils/ember/instrumentation.js +0 -11
  502. package/ember_debug/utils/ember/loader.js +0 -22
  503. package/ember_debug/utils/rsvp.js +0 -20
  504. package/ember_debug/vendor/loader.js +0 -54
  505. package/ember_debug/vendor/startup-wrapper.js +0 -399
  506. package/lib/ui/addon/styles/_object-inspector-toggle.scss +0 -12
  507. package/lib/ui/addon/styles/addon.scss +0 -13
  508. package/lib/ui/addon/styles/toolbar/_icon-button.scss +0 -61
  509. package/lib/ui/app/components/ui/disclosure-triangle.js +0 -1
  510. package/lib/ui/app/components/ui/disclosure.js +0 -1
  511. package/lib/ui/app/components/ui/drag-handle.js +0 -1
  512. package/lib/ui/app/components/ui/draggable-column.js +0 -1
  513. package/lib/ui/app/components/ui/empty-message.js +0 -1
  514. package/lib/ui/app/components/ui/error-page.js +0 -1
  515. package/lib/ui/app/components/ui/open-links-in-new-window.js +0 -1
  516. package/lib/ui/app/components/ui/resizable-column.js +0 -1
  517. package/lib/ui/app/components/ui/send-to-console.js +0 -1
  518. package/lib/ui/app/components/ui/toolbar-clear-button.js +0 -1
  519. package/lib/ui/app/components/ui/toolbar-divider.js +0 -1
  520. package/lib/ui/app/components/ui/toolbar-reload-button.js +0 -1
  521. package/lib/ui/app/components/ui/toolbar-search-field.js +0 -1
  522. package/lib/ui/app/components/ui/warning-message.js +0 -1
  523. package/lib/ui/index.js +0 -34
  524. package/lib/ui/package.json +0 -13
  525. package/public/assets/fonts/Inter-Bold.woff +0 -0
  526. package/public/assets/fonts/Inter-Bold.woff2 +0 -0
  527. package/public/assets/fonts/Inter-Regular.woff +0 -0
  528. package/public/assets/fonts/Inter-Regular.woff2 +0 -0
  529. package/tests/helpers/trigger-port.js +0 -6
  530. package/tests/unit/.gitkeep +0 -0
  531. /package/app/{app.js → app.ts} +0 -0
  532. /package/{lib/ui/addon/components → app/components/ui}/disclosure-triangle.hbs +0 -0
  533. /package/{lib/ui/addon/components → app/components/ui}/disclosure.hbs +0 -0
  534. /package/{lib/ui/addon/components → app/components/ui}/disclosure.js +0 -0
  535. /package/{lib/ui/addon/components → app/components/ui}/draggable-column.hbs +0 -0
  536. /package/{lib/ui/addon/components → app/components/ui}/draggable-column.js +0 -0
  537. /package/{lib/ui/addon/components → app/components/ui}/open-links-in-new-window.hbs +0 -0
  538. /package/{lib/ui/addon/components → app/components/ui}/open-links-in-new-window.js +0 -0
  539. /package/{lib/ui/addon/components → app/components/ui}/resizable-column.hbs +0 -0
  540. /package/{lib/ui/addon/components → app/components/ui}/send-to-console.hbs +0 -0
  541. /package/{lib/ui/addon/components → app/components/ui}/toolbar-divider.hbs +0 -0
  542. /package/{lib/ui/addon/components → app/components/ui}/toolbar-search-field.js +0 -0
  543. /package/{lib/ui/addon/components → app/components/ui}/warning-message.hbs +0 -0
  544. /package/app/controllers/{info.js → info.ts} +0 -0
  545. /package/app/services/adapters/{firefox.js → firefox.ts} +0 -0
  546. /package/{lib/ui/addon/styles → app/styles/ui}/_goto-source.scss +0 -0
  547. /package/{lib/ui/addon/styles → app/styles/ui}/_warning.scss +0 -0
  548. /package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_divider.scss +0 -0
@@ -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
+ }
@@ -0,0 +1,93 @@
1
+ import EmberObject, { set } from '@ember/object';
2
+ import { inject as service } from '@ember/service';
3
+ import { Promise } from 'rsvp';
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 type RenderTreeController from '../controllers/render-tree';
10
+ import TabRoute from './tab';
11
+
12
+ export interface Profile {
13
+ children: Array<Profile>;
14
+ name: string;
15
+ }
16
+
17
+ export interface RenderTreeModel {
18
+ isHighlightSupported: boolean;
19
+ profiles: Array<Profile>;
20
+ }
21
+
22
+ export default class RenderTreeRoute extends TabRoute {
23
+ @service declare port: PortService;
24
+
25
+ declare controller: RenderTreeController;
26
+
27
+ model() {
28
+ return new Promise((resolve) => {
29
+ this.port.one(
30
+ 'render:profilesAdded',
31
+ function ({ profiles, isHighlightSupported }: RenderTreeModel) {
32
+ resolve(
33
+ EmberObject.create({
34
+ // @ts-expect-error TODO: fix this
35
+ profiles: new TrackedArray(profiles),
36
+ isHighlightSupported,
37
+ }),
38
+ );
39
+ },
40
+ );
41
+ this.port.send('render:watchProfiles');
42
+ });
43
+ }
44
+
45
+ setupController(
46
+ controller: RenderTreeController,
47
+ model: RenderTreeModel,
48
+ transition: Transition,
49
+ ) {
50
+ super.setupController(controller, model, transition);
51
+
52
+ if (model.profiles.length === 0) {
53
+ controller.initialEmpty = true;
54
+ }
55
+
56
+ this.port.on('render:profilesUpdated', this, this.profilesUpdated);
57
+ this.port.on('render:profilesAdded', this, this.profilesAdded);
58
+ }
59
+
60
+ deactivate(transition: Transition) {
61
+ super.deactivate(transition);
62
+
63
+ this.port.off('render:profilesUpdated', this, this.profilesUpdated);
64
+ this.port.off('render:profilesAdded', this, this.profilesAdded);
65
+ this.port.send('render:releaseProfiles');
66
+ }
67
+
68
+ profilesUpdated = (message: RenderTreeModel) => {
69
+ set(this.controller.model, 'profiles', message.profiles);
70
+ };
71
+
72
+ profilesAdded = (message: RenderTreeModel) => {
73
+ const currentProfiles = this.controller.model.profiles;
74
+ const profiles = message.profiles;
75
+ if (
76
+ message.isHighlightSupported !== undefined &&
77
+ message.isHighlightSupported !==
78
+ this.controller.model.isHighlightSupported
79
+ ) {
80
+ set(
81
+ this.controller.model,
82
+ 'isHighlightSupported',
83
+ message.isHighlightSupported,
84
+ );
85
+ }
86
+
87
+ // @ts-expect-error TODO: fix this type error
88
+ currentProfiles.push(profiles);
89
+ if (currentProfiles.length > 100) {
90
+ set(this.controller.model, 'profiles', currentProfiles.slice(0, 100));
91
+ }
92
+ };
93
+ }
@@ -20,7 +20,6 @@ export default class RouteTreeRoute extends TabRoute {
20
20
  }
21
21
 
22
22
  setCurrentRoute(message) {
23
- // eslint-disable-next-line ember/no-controller-access-in-routes
24
23
  this.controller.set('currentRoute', message);
25
24
  }
26
25
 
@@ -1,14 +1,21 @@
1
+ import type Controller from '@ember/controller';
1
2
  import Route from '@ember/routing/route';
2
3
  import { scheduleOnce } from '@ember/runloop';
4
+ import type Transition from '@ember/routing/transition';
3
5
 
4
6
  export default class TabRoute extends Route {
5
- setupController(controller) {
6
- super.setupController(...arguments);
7
+ setupController(
8
+ controller: Controller,
9
+ model: unknown,
10
+ transition: Transition,
11
+ ) {
12
+ super.setupController(controller, model, transition);
7
13
 
8
14
  function setToolbarContainer() {
9
15
  controller.set('toolbarContainer', document.querySelector('#toolbar'));
10
16
  }
11
17
 
18
+ // eslint-disable-next-line ember/no-runloop
12
19
  scheduleOnce('afterRender', this, setToolbarContainer);
13
20
  }
14
21
  }
@@ -44,8 +44,8 @@ export default class WhatsNewRoute extends TabRoute {
44
44
 
45
45
  let ref = version.indexOf('alpha') === -1 ? `v${version}` : 'main';
46
46
  let url = `https://raw.githubusercontent.com/emberjs/ember-inspector/${encodeURIComponent(
47
- ref
48
- )}/CHANGELOG.md`;
47
+ ref,
48
+ )}-ember-inspector/CHANGELOG.md`;
49
49
 
50
50
  return fetch(url)
51
51
  .then(checkStatus)
@@ -14,22 +14,27 @@
14
14
  import Service, { inject as service } from '@ember/service';
15
15
  import { action } from '@ember/object';
16
16
  import { tracked } from '@glimmer/tracking';
17
+ import type { AnyFn } from '@ember/-internals/utility-types';
17
18
  import config from 'ember-inspector/config/environment';
19
+ import type PortService from '../port';
20
+ import type { Message } from '../port';
18
21
 
19
22
  export default class Basic extends Service {
20
- @service port;
23
+ @service declare port: PortService;
21
24
 
22
- @tracked canOpenResource = false;
25
+ _messageCallbacks: Array<AnyFn>;
23
26
  name = 'basic';
24
27
 
28
+ @tracked canOpenResource = false;
29
+
25
30
  /**
26
31
  * Called when the adapter is created (when
27
32
  * the inspector app boots).
28
- *
29
- * @method init
30
33
  */
31
- init() {
32
- super.init(...arguments);
34
+ constructor() {
35
+ // eslint-disable-next-line prefer-rest-params
36
+ super(...arguments);
37
+
33
38
  this._messageCallbacks = [];
34
39
  this._checkVersion();
35
40
  }
@@ -41,20 +46,22 @@ export default class Basic extends Service {
41
46
  * Ember version and needs to switch to an inspector version
42
47
  * that does.
43
48
  *
44
- * @method _checkVersion
45
49
  * @private
46
50
  */
47
51
  _checkVersion() {
48
- this.onMessageReceived((message) => {
49
- let { name, version } = message;
52
+ this.onMessageReceived((message: Message) => {
53
+ const { name, version } = message;
50
54
  if (name === 'version-mismatch') {
51
- let previousVersions = config.previousEmberVersionsSupported;
52
- let [fromVersion, tillVersion] = config.emberVersionsSupported;
55
+ const previousVersions = config.previousEmberVersionsSupported;
56
+ const [fromVersion, tillVersion] = config.emberVersionsSupported;
53
57
  let neededVersion;
54
58
 
55
- if (compareVersion(version, fromVersion) === -1) {
59
+ if (compareVersion(version as string, fromVersion) === -1) {
56
60
  neededVersion = previousVersions[previousVersions.length - 1];
57
- } else if (tillVersion && compareVersion(version, tillVersion) !== -1) {
61
+ } else if (
62
+ tillVersion &&
63
+ compareVersion(version as string, tillVersion) !== -1
64
+ ) {
58
65
  neededVersion = tillVersion;
59
66
  } else {
60
67
  return;
@@ -73,35 +80,35 @@ export default class Basic extends Service {
73
80
  * to switch to an older/new inspector version
74
81
  * that supports this Ember version.
75
82
  *
76
- * @method onVersionMismatch
77
- * @param {String} neededVersion (The version to go to)
83
+ * @param _neededVersion (The version to go to)
78
84
  */
79
- onVersionMismatch() {}
85
+ onVersionMismatch(_neededVersion?: string) {}
80
86
 
81
87
  /**
82
88
  Used to send messages to EmberDebug
83
89
 
84
- @param type {Object} the message to the send
90
+ @param _message the message to send
85
91
  **/
86
- sendMessage() {}
92
+ sendMessage(_message: Partial<Message>) {}
87
93
 
88
94
  /**
89
95
  Register functions to be called
90
96
  when a message from EmberDebug is received
91
97
  **/
92
- onMessageReceived(callback) {
98
+ onMessageReceived(callback: AnyFn) {
93
99
  this._messageCallbacks.push(callback);
94
100
  }
95
101
 
96
- _messageReceived(...args) {
102
+ _messageReceived(...args: Array<unknown>) {
97
103
  this._messageCallbacks.forEach((callback) => {
98
104
  callback(...args);
99
105
  });
100
106
  }
101
107
 
108
+ reloadTab?(): void;
102
109
  // Called when the "Reload" is clicked by the user
103
110
  willReload() {}
104
- openResource /* file, line */() {}
111
+ openResource(_file: string, _line: number) {}
105
112
 
106
113
  @action
107
114
  refreshPage() {
@@ -126,15 +133,14 @@ export default class Basic extends Service {
126
133
  * 0 if version1 == version2
127
134
  * 1 if version1 > version2
128
135
  *
129
- * @param {String} version1
130
- * @param {String} version2
131
- * @return {Boolean} result of the comparison
136
+ * @return result of the comparison
132
137
  */
133
- function compareVersion(version1, version2) {
134
- version1 = cleanupVersion(version1).split('.');
135
- version2 = cleanupVersion(version2).split('.');
138
+ function compareVersion(version1: string, version2: string) {
139
+ const v1 = cleanupVersion(version1).split('.');
140
+ const v2 = cleanupVersion(version2).split('.');
136
141
  for (let i = 0; i < 3; i++) {
137
- let compared = compare(+version1[i], +version2[i]);
142
+ // @ts-expect-error TODO: refactor this to make TS happy
143
+ const compared = compare(+v1[i], +v2[i]);
138
144
  if (compared !== 0) {
139
145
  return compared;
140
146
  }
@@ -143,11 +149,11 @@ function compareVersion(version1, version2) {
143
149
  }
144
150
 
145
151
  /* Remove -alpha, -beta, etc from versions */
146
- function cleanupVersion(version) {
152
+ function cleanupVersion(version: string) {
147
153
  return version.replace(/-.*/g, '');
148
154
  }
149
155
 
150
- function compare(val, number) {
156
+ function compare(val: number, number: number) {
151
157
  if (val === number) {
152
158
  return 0;
153
159
  } else if (val < number) {
@@ -1,53 +1,46 @@
1
- /* eslint-disable no-useless-escape */
2
- import { computed } from '@ember/object';
3
-
4
1
  import BasicAdapter from './basic';
2
+ import type { Message } from '../port';
5
3
 
6
4
  export default class Bookmarklet extends BasicAdapter {
7
5
  name = 'bookmarklet';
8
6
 
9
7
  /**
10
8
  * Called when the adapter is created.
11
- *
12
- * @method init
13
9
  */
14
- init() {
10
+ constructor() {
11
+ // @ts-expect-error Using ...arguments is fine.
12
+ // eslint-disable-next-line prefer-rest-params
13
+ super(...arguments);
14
+
15
15
  this._connect();
16
- return super.init(...arguments);
17
16
  }
18
17
 
19
- @computed
20
18
  get inspectedWindow() {
21
- return window.opener || window.parent;
19
+ return (window.opener as Window | undefined) || window.parent;
22
20
  }
23
21
 
24
- @computed
25
22
  get inspectedWindowURL() {
26
23
  return loadPageVar('inspectedWindowURL');
27
24
  }
28
25
 
29
- sendMessage(options) {
30
- options = options || {};
31
- this.inspectedWindow.postMessage(options, this.inspectedWindowURL);
26
+ sendMessage(message?: Partial<Message>) {
27
+ this.inspectedWindow.postMessage(message ?? {}, this.inspectedWindowURL);
32
28
  }
33
29
 
34
30
  /**
35
31
  * Redirect to the correct inspector version.
36
- *
37
- * @method onVersionMismatch
38
- * @param {String} goToVersion
39
32
  */
40
- onVersionMismatch(goToVersion) {
33
+ onVersionMismatch(goToVersion: string) {
41
34
  this.sendMessage({ name: 'version-mismatch', version: goToVersion });
42
35
  window.location.href = `../panes-${goToVersion.replace(
43
36
  /\./g,
44
- '-'
37
+ '-',
45
38
  )}/index.html${window.location.search}`;
46
39
  }
47
40
 
48
41
  _connect() {
49
42
  window.addEventListener('message', (e) => {
50
- let message = e.data;
43
+ const message = e.data as Message;
51
44
  if (e.origin !== this.inspectedWindowURL) {
52
45
  return;
53
46
  }
@@ -62,17 +55,17 @@ export default class Bookmarklet extends BasicAdapter {
62
55
  }
63
56
  }
64
57
 
65
- function loadPageVar(sVar) {
58
+ function loadPageVar(sVar: string) {
66
59
  return decodeURI(
67
60
  window.location.search.replace(
68
61
  new RegExp(
69
62
  `^(?:.*[&\\?]${encodeURI(sVar).replace(
70
63
  /[\.\+\*]/g,
71
- '\\$&'
64
+ '\\$&',
72
65
  )}(?:\\=([^&]*))?)?.*$`,
73
- 'i'
66
+ 'i',
74
67
  ),
75
- '$1'
76
- )
68
+ '$1',
69
+ ),
77
70
  );
78
71
  }
@@ -5,8 +5,7 @@ export default class Chrome extends WebExtension {
5
5
  name = 'chrome';
6
6
  @tracked canOpenResource = true;
7
7
 
8
- openResource(file, line) {
9
- /*global chrome */
8
+ openResource(file: string, line: number) {
10
9
  // For some reason it opens the line after the one specified
11
10
  chrome.devtools.panels.openResource(file, line - 1);
12
11
  }