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
@@ -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
  }
@@ -14,8 +14,7 @@ function checkStatus(response) {
14
14
  }
15
15
 
16
16
  function getLatestEntry(doc) {
17
- const regex =
18
- /^#{2} (?:v(\d{1,2}(?:\.\d{1,2})?(?:\.\d{1,2})?)|(?:\[v?(.+)]))/gm;
17
+ const regex = /^## Release /gm;
19
18
  const latest = regex.exec(doc);
20
19
  const previous = regex.exec(doc);
21
20
 
@@ -42,9 +41,12 @@ export default class WhatsNewRoute extends TabRoute {
42
41
  model() {
43
42
  let { version } = this.config;
44
43
 
45
- let ref = version.indexOf('alpha') === -1 ? `v${version}` : 'main';
44
+ let ref =
45
+ version.indexOf('alpha') === -1
46
+ ? `v${version}-ember-inspector`
47
+ : 'release-preview';
46
48
  let url = `https://raw.githubusercontent.com/emberjs/ember-inspector/${encodeURIComponent(
47
- ref
49
+ ref,
48
50
  )}/CHANGELOG.md`;
49
51
 
50
52
  return fetch(url)
@@ -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
  }
@@ -1,11 +1,10 @@
1
- /* globals chrome */
2
- import { computed } from '@ember/object';
3
1
  import { tracked } from '@glimmer/tracking';
4
2
 
5
3
  import BasicAdapter from './basic';
6
4
  import config from 'ember-inspector/config/environment';
5
+ import type { Message } from '../port';
7
6
 
8
- let emberDebug = null;
7
+ let emberDebug: string | null = null;
9
8
 
10
9
  export default class WebExtension extends BasicAdapter {
11
10
  @tracked canOpenResource = false;
@@ -13,27 +12,30 @@ export default class WebExtension extends BasicAdapter {
13
12
 
14
13
  /**
15
14
  * Called when the adapter is created.
16
- *
17
- * @method init
18
15
  */
19
- init() {
16
+ constructor(...args: unknown[]) {
17
+ // @ts-expect-error ignore
18
+ super(...args);
19
+
20
20
  this._connect();
21
21
  this._handleReload();
22
22
  this._setThemeColors();
23
23
 
24
- Promise.resolve().then(() => this._sendEmberDebug());
25
-
26
- return super.init(...arguments);
24
+ void Promise.resolve().then(() => this._sendEmberDebug());
27
25
  }
28
26
 
29
- sendMessage(options) {
30
- options = options || {};
31
- this._chromePort.postMessage(options);
27
+ sendMessage(message?: Partial<Message>) {
28
+ if (message) {
29
+ message.tabId = chrome.devtools.inspectedWindow.tabId;
30
+ }
31
+ this._chromePort.postMessage(message ?? {});
32
32
  }
33
33
 
34
34
  _sendEmberDebug() {
35
- let minimumVersion = config.emberVersionsSupported[0].replace(/\./g, '-');
36
- let url = chrome.runtime.getURL(`/panes-${minimumVersion}/ember_debug.js`);
35
+ const minimumVersion = config.emberVersionsSupported[0].replace(/\./g, '-');
36
+ const url = chrome.runtime.getURL(
37
+ `/panes-${minimumVersion}/ember_debug.js`,
38
+ );
37
39
  // first send to all frames in current tab
38
40
  this.sendMessage({
39
41
  from: 'devtools',
@@ -44,23 +46,23 @@ export default class WebExtension extends BasicAdapter {
44
46
  this.onMessageReceived((message, sender) => {
45
47
  if (message === 'ember-content-script-ready') {
46
48
  this.sendMessage({
49
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment
50
+ frameId: sender.frameId,
47
51
  from: 'devtools',
52
+ tabId: chrome.devtools.inspectedWindow.tabId,
48
53
  type: 'inject-ember-debug',
49
54
  value: url,
50
- tabId: chrome.devtools.inspectedWindow.tabId,
51
- frameId: sender.frameId,
52
55
  });
53
56
  }
54
57
  });
55
58
  }
56
59
 
57
- @computed
58
60
  get _chromePort() {
59
61
  return chrome.runtime.connect();
60
62
  }
61
63
 
62
64
  _connect() {
63
- let chromePort = this._chromePort;
65
+ const chromePort = this._chromePort;
64
66
  chromePort.postMessage({ appId: chrome.devtools.inspectedWindow.tabId });
65
67
 
66
68
  chromePort.onMessage.addListener((...args) => {
@@ -68,36 +70,38 @@ export default class WebExtension extends BasicAdapter {
68
70
  });
69
71
 
70
72
  chromePort.onDisconnect.addListener(() => {
71
- this.notifyPropertyChange('_chromePort');
72
73
  this._connect();
73
74
  });
74
75
  }
75
76
 
76
77
  _handleReload() {
77
- let self = this;
78
- chrome.devtools.network.onNavigated.addListener(function () {
79
- self._injectDebugger();
80
- location.reload(true);
78
+ chrome.devtools.network.onNavigated.addListener(() => {
79
+ this._injectDebugger();
80
+ location.reload();
81
81
  });
82
82
  }
83
83
 
84
84
  _injectDebugger() {
85
- loadEmberDebug().then((emberDebug) => {
86
- chrome.devtools.inspectedWindow.eval(emberDebug, (success, error) => {
87
- if (success === undefined && error) {
88
- throw error;
89
- }
90
- });
85
+ void loadEmberDebug().then((emberDebug) => {
86
+ chrome.devtools.inspectedWindow.eval(
87
+ emberDebug as string,
88
+ (success, error) => {
89
+ if (success === undefined && error) {
90
+ // eslint-disable-next-line @typescript-eslint/only-throw-error
91
+ throw error;
92
+ }
93
+ },
94
+ );
91
95
  });
92
96
  }
93
97
 
94
98
  _setThemeColors() {
95
99
  // Remove old theme colors to ensure switching themes works
96
- document.body.classList.remove('theme--light', 'theme--dark');
100
+ document.body.classList.remove('theme-light', 'theme-dark');
97
101
 
98
- let theme = 'theme--light';
102
+ let theme = 'theme-light';
99
103
  if (chrome.devtools.panels.themeName === 'dark') {
100
- theme = 'theme--dark';
104
+ theme = 'theme-dark';
101
105
  }
102
106
  document.body.classList.add(theme);
103
107
  }
@@ -108,11 +112,8 @@ export default class WebExtension extends BasicAdapter {
108
112
 
109
113
  /**
110
114
  * Open the devtools "Elements" or "Sources" tab and select a specific DOM node or function.
111
- *
112
- * @method inspectJSValue
113
- * @param {String} name
114
115
  */
115
- inspectJSValue(name) {
116
+ inspectJSValue(name: string) {
116
117
  chrome.devtools.inspectedWindow.eval(`
117
118
  inspect(window[${JSON.stringify(name)}]);
118
119
  delete window[${JSON.stringify(name)}];
@@ -121,14 +122,11 @@ export default class WebExtension extends BasicAdapter {
121
122
 
122
123
  /**
123
124
  * Redirect to the correct inspector version.
124
- *
125
- * @method onVersionMismatch
126
- * @param {String} goToVersion
127
125
  */
128
- onVersionMismatch(goToVersion) {
126
+ onVersionMismatch(goToVersion: string) {
129
127
  window.location.href = `../panes-${goToVersion.replace(
130
128
  /\./g,
131
- '-'
129
+ '-',
132
130
  )}/index.html`;
133
131
  }
134
132
 
@@ -137,22 +135,24 @@ export default class WebExtension extends BasicAdapter {
137
135
  scripts as soon as possible into the new page.
138
136
  */
139
137
  reloadTab() {
140
- loadEmberDebug().then((emberDebug) => {
141
- chrome.devtools.inspectedWindow.reload({ injectedScript: emberDebug });
138
+ void loadEmberDebug().then((emberDebug) => {
139
+ chrome.devtools.inspectedWindow.reload({
140
+ injectedScript: emberDebug as string,
141
+ });
142
142
  });
143
143
  }
144
144
  }
145
145
 
146
146
  function loadEmberDebug() {
147
- let minimumVersion = config.emberVersionsSupported[0].replace(/\./g, '-');
148
- let xhr;
147
+ const minimumVersion = config.emberVersionsSupported[0].replace(/\./g, '-');
148
+ let xhr: XMLHttpRequest;
149
149
 
150
150
  return new Promise((resolve) => {
151
151
  if (!emberDebug) {
152
152
  xhr = new XMLHttpRequest();
153
153
  xhr.open(
154
154
  'GET',
155
- chrome.runtime.getURL(`/panes-${minimumVersion}/ember_debug.js`)
155
+ chrome.runtime.getURL(`/panes-${minimumVersion}/ember_debug.js`),
156
156
  );
157
157
  xhr.onload = function () {
158
158
  if (xhr.readyState === 4) {
@@ -0,0 +1,40 @@
1
+ /* eslint-disable @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access */
2
+ import { run } from '@ember/runloop';
3
+ import BasicAdapter from './basic';
4
+ import type { Message } from '../port';
5
+
6
+ export default class Websocket extends BasicAdapter {
7
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
+ socket: any;
9
+
10
+ constructor() {
11
+ // @ts-expect-error Using ...arguments is fine.
12
+ // eslint-disable-next-line prefer-rest-params
13
+ super(...arguments);
14
+ // @ts-expect-error TODO: figure out how to type this stuff
15
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
16
+ this.socket = window.EMBER_INSPECTOR_CONFIG.remoteDebugSocket;
17
+ this._connect();
18
+ }
19
+
20
+ sendMessage(message?: Partial<Message>) {
21
+ this.socket.emit('emberInspectorMessage', message ?? {});
22
+ }
23
+
24
+ _connect() {
25
+ this.socket.on('emberInspectorMessage', (message: Message) => {
26
+ // eslint-disable-next-line ember/no-runloop
27
+ run(() => {
28
+ this._messageReceived(message);
29
+ });
30
+ });
31
+ }
32
+
33
+ _disconnect() {
34
+ this.socket.removeAllListeners('emberInspectorMessage');
35
+ }
36
+
37
+ willDestroy() {
38
+ this._disconnect();
39
+ }
40
+ }