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,124 @@
1
+ /**
2
+ * Layout service used to broadcast changes to the application's
3
+ * layout due to resizing of the main nav or the object inspector toggling.
4
+ *
5
+ * Whenever something resizes it triggers an event on this service. For example
6
+ * when the main nav is resized.
7
+ * Elements dependant on the app's layout listen to events on this service. For
8
+ * example the `list` component.
9
+ */
10
+ import Service from '@ember/service';
11
+ import { action } from '@ember/object';
12
+ import { tracked } from '@glimmer/tracking';
13
+ import { addListener, removeListener, sendEvent } from '@ember/object/events';
14
+ import type { AnyFn } from '@ember/-internals/utility-types';
15
+ import { schedule } from '@ember/runloop';
16
+
17
+ export default class LayoutService extends Service {
18
+ @tracked inspectorExpanded = false;
19
+
20
+ /**
21
+ * Stores the app's content height. This property is kept up-to-date
22
+ * by the `monitor-content-height` component.
23
+ */
24
+ @tracked contentHeight: number | null = null;
25
+
26
+ /**
27
+ * This is called by `monitor-content-height` whenever a window resize is detected
28
+ * and the app's content height has changed. We therefore update the
29
+ * `contentHeight` property and notify all listeners (mostly lists).
30
+ *
31
+ * @param height The new app content height
32
+ */
33
+ updateContentHeight(height: number) {
34
+ this.contentHeight = height;
35
+ this.trigger('content-height-update', height);
36
+ }
37
+
38
+ // Manually implement Evented functionality, so we can move away from the mixin
39
+
40
+ on(eventName: string, method: AnyFn): void;
41
+ on(eventName: string, target: unknown, method: AnyFn): void;
42
+
43
+ @action
44
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
45
+ on(eventName: string, targetOrMethod: unknown | AnyFn, method?: AnyFn): void {
46
+ if (typeof targetOrMethod === 'function') {
47
+ // If we did not pass a target, default to `this`
48
+ addListener(this, eventName, this, targetOrMethod as AnyFn);
49
+ } else {
50
+ addListener(this, eventName, targetOrMethod as object, method);
51
+ }
52
+ }
53
+
54
+ one(eventName: string, method: AnyFn): void;
55
+ one(eventName: string, target: unknown, method: AnyFn): void;
56
+
57
+ @action
58
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
59
+ one(eventName: string, targetOrMethod: unknown | AnyFn, method?: AnyFn) {
60
+ if (typeof targetOrMethod === 'function') {
61
+ // If we did not pass a target, default to `this`
62
+ addListener(this, eventName, this, targetOrMethod as AnyFn, true);
63
+ } else {
64
+ addListener(this, eventName, targetOrMethod as object, method, true);
65
+ }
66
+ }
67
+
68
+ off(eventName: string, method: AnyFn): void;
69
+ off(eventName: string, target: unknown, method: AnyFn): void;
70
+
71
+ @action
72
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
73
+ off(eventName: string, targetOrMethod: unknown | AnyFn, method?: AnyFn) {
74
+ try {
75
+ if (typeof targetOrMethod === 'function') {
76
+ // If we did not pass a target, default to `this`
77
+ removeListener(this, eventName, this, targetOrMethod as AnyFn);
78
+ } else {
79
+ removeListener(this, eventName, targetOrMethod as object, method);
80
+ }
81
+ } catch (e) {
82
+ console.error(e);
83
+ }
84
+ }
85
+
86
+ @action
87
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
88
+ trigger(eventName: string, ...args: Array<any>) {
89
+ sendEvent(this, eventName, args);
90
+ }
91
+
92
+ @action
93
+ showInspector() {
94
+ if (this.inspectorExpanded === false) {
95
+ this.inspectorExpanded = true;
96
+ // Broadcast that tables have been resized (used by `x-list`).
97
+ // eslint-disable-next-line ember/no-runloop
98
+ schedule('afterRender', () => {
99
+ this.trigger('resize', { source: 'object-inspector' });
100
+ });
101
+ }
102
+ }
103
+
104
+ @action
105
+ hideInspector() {
106
+ if (this.inspectorExpanded === true) {
107
+ this.inspectorExpanded = false;
108
+ // Broadcast that tables have been resized (used by `x-list`).
109
+ // eslint-disable-next-line ember/no-runloop
110
+ schedule('afterRender', () => {
111
+ this.trigger('resize', { source: 'object-inspector' });
112
+ });
113
+ }
114
+ }
115
+
116
+ @action
117
+ toggleInspector() {
118
+ if (this.inspectorExpanded) {
119
+ this.hideInspector();
120
+ } else {
121
+ this.showInspector();
122
+ }
123
+ }
124
+ }
@@ -0,0 +1,195 @@
1
+ import { action, set, setProperties } from '@ember/object';
2
+ import { addListener, removeListener, sendEvent } from '@ember/object/events';
3
+ import { hasListeners } from '@ember/-internals/metal';
4
+ import Service, { inject as service } from '@ember/service';
5
+ import type RouterService from '@ember/routing/router-service';
6
+
7
+ import type WebExtension from './adapters/web-extension';
8
+ import type { AnyFn } from '@ember/-internals/utility-types';
9
+
10
+ export interface ModelType {
11
+ columns: Array<{ name: string; desc: string }>;
12
+ count: number;
13
+ name: string;
14
+ objectId: string;
15
+ }
16
+
17
+ export interface RecordType {
18
+ color: string;
19
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
+ columnValues: any;
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
+ filterValues: any;
23
+ objectId: string;
24
+ searchIndex: number;
25
+ }
26
+
27
+ /**
28
+ * This interface is a catch-all of a bunch of things we
29
+ * pass around via messages.
30
+ */
31
+ export interface Message {
32
+ applicationId: string;
33
+ applicationName: string;
34
+ count: number;
35
+ filters: Array<unknown>;
36
+ frameId?: string;
37
+ from: string;
38
+ index: number;
39
+ instrumentWithStack?: boolean;
40
+ modelTypes: Array<ModelType>;
41
+ name?: string;
42
+ objectId?: string;
43
+ promiseId?: string;
44
+ records: Array<RecordType>;
45
+ shouldHighlightRender?: boolean;
46
+ tabId?: number;
47
+ type: string;
48
+ unloading?: boolean;
49
+ value: string;
50
+ version?: string;
51
+ }
52
+
53
+ export default class PortService extends Service {
54
+ @service declare adapter: WebExtension;
55
+ @service declare router: RouterService;
56
+
57
+ applicationId?: string;
58
+ applicationName?: string;
59
+ detectedApplications: { [key: string]: string };
60
+
61
+ constructor() {
62
+ // eslint-disable-next-line prefer-rest-params
63
+ super(...arguments);
64
+
65
+ /*
66
+ * A dictionary of the form:
67
+ * { applicationId: applicationName }
68
+ */
69
+ this.detectedApplications = {};
70
+ this.applicationId = undefined;
71
+ this.applicationName = undefined;
72
+
73
+ this.adapter.onMessageReceived(
74
+ (message: Message & { apps: Array<Message> }) => {
75
+ if (message.type === 'apps-loaded') {
76
+ message.apps.forEach(
77
+ ({ applicationId, applicationName }: Message) => {
78
+ set(this.detectedApplications, applicationId, applicationName);
79
+ },
80
+ );
81
+
82
+ return;
83
+ }
84
+
85
+ const { applicationId, applicationName } = message;
86
+
87
+ if (!applicationId) {
88
+ return;
89
+ }
90
+
91
+ // save the application, in case we haven't seen it yet
92
+ set(this.detectedApplications, applicationId, applicationName);
93
+
94
+ if (!this.applicationId) {
95
+ this.selectApplication(applicationId);
96
+ }
97
+
98
+ if (this.applicationId === applicationId) {
99
+ if (!hasListeners(this, message.type)) {
100
+ throw new Error('unknown message type ' + message.type);
101
+ }
102
+ this.trigger(message.type, message, applicationId);
103
+ }
104
+ },
105
+ );
106
+
107
+ addListener(
108
+ this,
109
+ 'view:inspectJSValue',
110
+ this,
111
+ ({ name }: { name: string }) => this.adapter.inspectJSValue(name),
112
+ );
113
+ }
114
+
115
+ selectApplication(applicationId: string) {
116
+ if (
117
+ applicationId in this.detectedApplications &&
118
+ applicationId !== this.applicationId
119
+ ) {
120
+ const applicationName = this.detectedApplications[
121
+ applicationId
122
+ ] as string;
123
+ const currentApplication = this.applicationId;
124
+ setProperties(this, { applicationId, applicationName });
125
+ if (currentApplication) {
126
+ // this is only required when switching apps
127
+ this.router.transitionTo('app-detected');
128
+ }
129
+ this.send('app-selected', { applicationId, applicationName });
130
+ }
131
+ }
132
+
133
+ @action
134
+ send(type: string, message?: Partial<Message>) {
135
+ message = message || {};
136
+ message.type = type;
137
+ message.from = 'devtools';
138
+ message.applicationId = this.applicationId as string;
139
+ message.applicationName = this.applicationName as string;
140
+ this.adapter.sendMessage(message);
141
+ }
142
+
143
+ // Manually implement Evented functionality, so we can move away from the mixin
144
+
145
+ on(eventName: string, method: AnyFn): void;
146
+ on(eventName: string, target: unknown, method: AnyFn): void;
147
+
148
+ @action
149
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
150
+ on(eventName: string, targetOrMethod: unknown | AnyFn, method?: AnyFn): void {
151
+ if (typeof targetOrMethod === 'function') {
152
+ // If we did not pass a target, default to `this`
153
+ addListener(this, eventName, this, targetOrMethod as AnyFn);
154
+ } else {
155
+ addListener(this, eventName, targetOrMethod as object, method);
156
+ }
157
+ }
158
+
159
+ one(eventName: string, method: AnyFn): void;
160
+ one(eventName: string, target: unknown, method: AnyFn): void;
161
+
162
+ @action
163
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
164
+ one(eventName: string, targetOrMethod: unknown | AnyFn, method?: AnyFn) {
165
+ if (typeof targetOrMethod === 'function') {
166
+ // If we did not pass a target, default to `this`
167
+ addListener(this, eventName, this, targetOrMethod as AnyFn, true);
168
+ } else {
169
+ addListener(this, eventName, targetOrMethod as object, method, true);
170
+ }
171
+ }
172
+
173
+ off(eventName: string, method: AnyFn): void;
174
+ off(eventName: string, target: unknown, method: AnyFn): void;
175
+
176
+ @action
177
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
178
+ off(eventName: string, targetOrMethod: unknown | AnyFn, method?: AnyFn) {
179
+ try {
180
+ if (typeof targetOrMethod === 'function') {
181
+ // If we did not pass a target, default to `this`
182
+ removeListener(this, eventName, this, targetOrMethod as AnyFn);
183
+ } else {
184
+ removeListener(this, eventName, targetOrMethod as object, method);
185
+ }
186
+ } catch (e) {
187
+ console.error(e);
188
+ }
189
+ }
190
+
191
+ @action
192
+ trigger(eventName: string, ...args: Array<unknown>) {
193
+ sendEvent(this, eventName, args);
194
+ }
195
+ }
@@ -6,51 +6,38 @@ export let LOCAL_STORAGE_SUPPORTED = false;
6
6
  * Service that wraps local storage. Only store strings. This
7
7
  * is not intended to be used directly, use StorageServeice
8
8
  * instead.
9
- *
10
- * @class LocalStorageService
11
- * @extends Service
12
9
  */
13
10
  export default class LocalStorageService extends Service {
14
11
  /**
15
12
  * Reads a stored string for a give key, if any.
16
13
  *
17
- * @method getItem
18
- * @param {String} key
19
14
  * @return {Option<String>} The value, if found
20
15
  */
21
- getItem(key) {
16
+ getItem(key: string) {
22
17
  return localStorage.getItem(key);
23
18
  }
24
19
 
25
20
  /**
26
21
  * Store a string for a given key.
27
- *
28
- * @method setItem
29
- * @param {String} key
30
- * @param {String} value
31
22
  */
32
- setItem(key, value) {
23
+ setItem(key: string, value: string) {
33
24
  localStorage.setItem(key, value);
34
25
  }
35
26
 
36
27
  /**
37
28
  * Deletes the stored string for a given key.
38
- *
39
- * @method removeItem
40
- * @param {String} key
41
29
  */
42
- removeItem(key) {
30
+ removeItem(key: string) {
43
31
  localStorage.removeItem(key);
44
32
  }
45
33
 
46
34
  /**
47
35
  * Returns the list of stored keys.
48
36
  *
49
- * @method keys
50
- * @return {Array<String>} The array of keys
37
+ * @return The array of keys
51
38
  */
52
39
  keys() {
53
- let keys = [];
40
+ const keys = [];
54
41
  for (let i = 0; i < localStorage.length; i++) {
55
42
  keys.push(localStorage.key(i));
56
43
  }
@@ -61,12 +48,12 @@ export default class LocalStorageService extends Service {
61
48
  try {
62
49
  localStorage.setItem('test', 'testing');
63
50
  LOCAL_STORAGE_SUPPORTED = localStorage.getItem('test') === 'testing';
64
- } catch (e) {
51
+ } catch {
65
52
  // ignore
66
53
  } finally {
67
54
  try {
68
55
  localStorage.removeItem('test');
69
- } catch (e) {
56
+ } catch {
70
57
  // ignore
71
58
  }
72
59
  }
@@ -4,29 +4,22 @@ import Service from '@ember/service';
4
4
  * Service that wraps an in-memory object with the same APIs as
5
5
  * the LocalStorageService, usually as a fallback. Only store
6
6
  * strings. This is not intended to be used directly, use
7
- * StorageServeice instead.
8
- *
9
- * @class MemoryStorageService
10
- * @extends Service
7
+ * StorageService instead.
11
8
  */
12
9
  export default class MemoryStorageService extends Service {
13
10
  /**
14
11
  * Where data is stored.
15
12
  *
16
- * @property store
17
- * @type {Object}
18
13
  * @private
19
14
  */
20
- store = Object.create(null);
15
+ store = Object.create(null) as Record<string, unknown>;
21
16
 
22
17
  /**
23
18
  * Reads a stored string for a give key, if any.
24
19
  *
25
- * @method getItem
26
- * @param {String} key
27
20
  * @return {Option<String>} The value, if found
28
21
  */
29
- getItem(key) {
22
+ getItem(key: keyof object) {
30
23
  if (key in this.store) {
31
24
  return this.store[key];
32
25
  } else {
@@ -36,30 +29,22 @@ export default class MemoryStorageService extends Service {
36
29
 
37
30
  /**
38
31
  * Store a string for a given key.
39
- *
40
- * @method setItem
41
- * @param {String} key
42
- * @param {String} value
43
32
  */
44
- setItem(key, value) {
33
+ setItem(key: keyof object, value: unknown) {
45
34
  this.store[key] = value;
46
35
  }
47
36
 
48
37
  /**
49
38
  * Deletes the stored string for a given key.
50
- *
51
- * @method removeItem
52
- * @param {String} key
53
39
  */
54
- removeItem(key) {
40
+ removeItem(key: keyof object) {
55
41
  delete this.store[key];
56
42
  }
57
43
 
58
44
  /**
59
45
  * Returns the list of stored keys.
60
46
  *
61
- * @method keys
62
- * @return {Array<String>} The array of keys
47
+ * @return The array of keys
63
48
  */
64
49
  keys() {
65
50
  return Object.keys(this.store);
@@ -1,70 +1,72 @@
1
1
  import Service, { inject as service } from '@ember/service';
2
2
  import { LOCAL_STORAGE_SUPPORTED } from './storage/local';
3
+ import type LocalStorageService from './storage/local';
4
+ import type MemoryStorageService from './storage/memory';
5
+ import { tracked } from '@glimmer/tracking';
3
6
 
4
7
  /**
5
8
  * Service that wraps either the LocalStorageService or
6
9
  * MemoryStorageService (depending on availability) and
7
10
  * provide support for storing (JSON-serializable) objects
8
11
  * on top of the lower level backends.
9
- *
10
- * @class StorageService
11
- * @extends Service
12
12
  */
13
13
  export default class StorageService extends Service {
14
14
  @service(LOCAL_STORAGE_SUPPORTED ? 'storage/local' : 'storage/memory')
15
- backend;
15
+ declare backend: LocalStorageService | MemoryStorageService;
16
+ @tracked trackedBackend = {
17
+ setItem: (k: keyof object, v: string) => {
18
+ this.backend.setItem(k, v);
19
+ this.trackedBackend = { ...this.trackedBackend };
20
+ },
21
+ removeItem: (k: keyof object) => {
22
+ this.backend.removeItem(k);
23
+ this.trackedBackend = { ...this.trackedBackend };
24
+ },
25
+ getItem: (k: keyof object) => this.backend.getItem(k),
26
+ keys: () => this.backend.keys(),
27
+ };
16
28
 
17
29
  /**
18
30
  * Reads a stored object for a give key, if any.
19
31
  *
20
- * @method getItem
21
- * @param {String} key
22
32
  * @return {Option<String>} The value, if found
23
33
  */
24
- getItem(key) {
25
- let serialized = this.backend.getItem(key);
34
+ getItem(key: keyof object) {
35
+ const serialized = this.trackedBackend.getItem(key);
26
36
 
27
37
  if (serialized === null) {
28
38
  // Actual `null` values would have been serialized as `"null"`
29
39
  return undefined;
30
40
  } else {
31
- return JSON.parse(serialized);
41
+ return JSON.parse(serialized as string) as string;
32
42
  }
33
43
  }
34
44
 
35
45
  /**
36
46
  * Store a string for a given key.
37
- *
38
- * @method setItem
39
- * @param {String} key
40
- * @param {String} value
41
47
  */
42
- setItem(key, value) {
48
+ setItem(key: keyof object, value: string) {
43
49
  if (value === undefined) {
44
50
  this.removeItem(key);
45
51
  } else {
46
- let serialized = JSON.stringify(value);
47
- this.backend.setItem(key, serialized);
52
+ const serialized = JSON.stringify(value);
53
+ this.trackedBackend.setItem(key, serialized);
48
54
  }
49
55
  }
50
56
 
51
57
  /**
52
58
  * Deletes the stored string for a given key.
53
- *
54
- * @method removeItem
55
- * @param {String} key
56
59
  */
57
- removeItem(key) {
58
- this.backend.removeItem(key);
60
+ removeItem(key: keyof object) {
61
+ this.trackedBackend.removeItem(key);
59
62
  }
60
63
 
61
64
  /**
62
65
  * Returns the list of stored keys.
63
66
  *
64
- * @method keys
65
67
  * @return {Array<String>} The array of keys
66
68
  */
67
69
  keys() {
68
- return this.backend.keys();
70
+ return this.trackedBackend.keys();
69
71
  }
70
72
  }
@@ -9,3 +9,4 @@
9
9
  @import "route_tree";
10
10
  @import "whats-new";
11
11
  @import "ember-table";
12
+ @import "ui/ui";
@@ -1,8 +1,12 @@
1
1
  :root {
2
2
  /* stylelint-disable value-keyword-case */
3
- --font-sans-serif: "Inter", -apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Cantarell', 'Oxygen', 'Ubuntu', 'Helvetica Neue', helvetica, arial, sans-serif;
4
- --font-monospace: 'SF Mono', Menlo, Monaco, monospace;
3
+ --font-sans-serif: system-ui, sans-serif, "Apple Color Emoji",
4
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
5
+ --font-monospace: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo,
6
+ Consolas, "DejaVu Sans Mono", monospace, "Apple Color Emoji",
7
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
5
8
  /* stylelint-enable value-keyword-case */
9
+
6
10
  --inherit: inherit;
7
11
  --unit0: 0;
8
12
  --unit1: 4px;
@@ -1,4 +1,4 @@
1
- .theme--light {
1
+ .theme-light {
2
2
  // Base
3
3
  --base00: #ffffff;
4
4
  --base01: #f3f3f3;
@@ -16,12 +16,13 @@
16
16
  --base13: #404040;
17
17
  --base14: #333333;
18
18
  --base15: #222222;
19
+
19
20
  // Spec
20
21
  --spec00: #fffec2;
21
22
  --spec01: #ff0000;
22
23
  --spec02: #990000;
23
24
  --spec03: #000099;
24
- --spec04: #3F81EE;
25
+ --spec04: #3f81ee;
25
26
  --spec05: #7c027c;
26
27
  --spec06: #ecf1fa;
27
28
  --spec07: #cd61a7;
@@ -30,58 +31,59 @@
30
31
  --white: #ffffff;
31
32
  --inherit: inherit;
32
33
  --transparent: transparent;
33
- --focus: #3F81EE;
34
+ --focus: #3f81ee;
34
35
  --focus-text: var(--white);
35
- --component-name: #1171E8;
36
- --component-brackets-selected: rgba(255, 255, 255, 0.4);
37
- --component-attr: #DB00A9;
38
- --component-highlighted-bg: #F2F2F3;
39
- --pill-bg: rgba(0, 0, 0, 0.1);
40
- --pill-bg-active: rgba(255, 255, 255, 0.3);
36
+ --component-name: #1171e8;
37
+ --component-brackets-selected: rgb(255 255 255 / 40%);
38
+ --component-attr: #db00a9;
39
+ --component-highlighted-bg: #f2f2f3;
40
+ --pill-bg: rgb(0 0 0 / 10%);
41
+ --pill-bg-active: rgb(255 255 255 / 30%);
41
42
  --warning-text: #735c0f;
42
43
  --tracked-icon-bg: var(--spec03);
43
44
  }
44
45
 
45
- .theme--dark {
46
+ .theme-dark {
46
47
  // Base
47
48
  --base00: #242424;
48
49
  --base01: #242424;
49
50
  --base02: #121212;
50
51
  --base03: #292929;
51
- --base04: #2E2E2E;
52
+ --base04: #2e2e2e;
52
53
  --base05: #353535;
53
- --base06: #4C4C4C;
54
- --base07: #5C5C5C;
54
+ --base06: #4c4c4c;
55
+ --base07: #5c5c5c;
55
56
  --base08: #777777;
56
57
  --base09: #888888;
57
- --base10: #8C8C8C;
58
+ --base10: #8c8c8c;
58
59
  --base11: #989898;
59
- --base12: #AAAAAA;
60
- --base13: #BFBFBF;
61
- --base14: #CCCCCC;
62
- --base15: #DDDDDD;
60
+ --base12: #aaaaaa;
61
+ --base13: #bfbfbf;
62
+ --base14: #cccccc;
63
+ --base15: #dddddd;
64
+
63
65
  // Spec
64
- --spec00: #00013D;
65
- --spec01: #00FFFF;
66
- --spec02: #66FFFF;
67
- --spec03: #FFFF66;
68
- --spec04: #C07E11;
69
- --spec05: #83FD83;
70
- --spec06: #130E05;
66
+ --spec00: #00013d;
67
+ --spec01: #00ffff;
68
+ --spec02: #66ffff;
69
+ --spec03: #ffff66;
70
+ --spec04: #c07e11;
71
+ --spec05: #83fd83;
72
+ --spec06: #130e05;
71
73
  --spec07: #cd61a7;
72
74
  --spec08: #7fb56d;
73
75
  --spec09: #328509;
74
76
  --white: #ffffff;
75
77
  --inherit: inherit;
76
78
  --transparent: transparent;
77
- --focus: #2270EC;
79
+ --focus: #2270ec;
78
80
  --focus-text: var(--white);
79
- --component-name: #77BEFF;
80
- --component-brackets-selected: rgba(255, 255, 255, 0.4);
81
- --component-attr: #FE7AE9;
81
+ --component-name: #77beff;
82
+ --component-brackets-selected: rgb(255 255 255 / 40%);
83
+ --component-attr: #fe7ae9;
82
84
  --component-highlighted-bg: #333333;
83
- --pill-bg: rgba(255, 255, 255, 0.2);
84
- --pill-bg-active: rgba(255, 255, 255, 0.3);
85
+ --pill-bg: rgb(255 255 255 / 20%);
86
+ --pill-bg-active: rgb(255 255 255 / 30%);
85
87
  --warning-text: #8ca3f0;
86
88
  --tracked-icon-bg: #5e5eb5;
87
89
  }