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,334 @@
1
+ import { EMBER_VERSIONS_SUPPORTED } from './versions.js';
2
+ import { Namespace, Application, guidFor, VERSION } from './ember.js';
3
+
4
+ /* eslint-disable ember/no-test-import-export */
5
+
6
+ /**
7
+ * @method compare
8
+ * @param {Number} val
9
+ * @param {Number} number
10
+ * @return {Number}
11
+ * 0: same
12
+ * -1: <
13
+ * 1: >
14
+ */
15
+ function compare(val, number) {
16
+ if (val === number) {
17
+ return 0;
18
+ } else if (val < number) {
19
+ return -1;
20
+ } else if (val > number) {
21
+ return 1;
22
+ }
23
+ }
24
+
25
+ /**
26
+ * Remove -alpha, -beta, etc from versions
27
+ *
28
+ * @param {String} version
29
+ * @return {String} The cleaned up version
30
+ */
31
+ function cleanupVersion(version) {
32
+ return version.replace(/-.*/g, '');
33
+ }
34
+
35
+ /**
36
+ * Compares two Ember versions.
37
+ *
38
+ * Returns:
39
+ * `-1` if version1 < version
40
+ * 0 if version1 == version2
41
+ * 1 if version1 > version2
42
+ *
43
+ * @param {String} version1
44
+ * @param {String} version2
45
+ * @return {Boolean} result of the comparison
46
+ */
47
+ function compareVersion(version1, version2) {
48
+ let compared, i;
49
+ version1 = cleanupVersion(version1).split('.');
50
+ version2 = cleanupVersion(version2).split('.');
51
+ for (i = 0; i < 3; i++) {
52
+ compared = compare(+version1[i], +version2[i]);
53
+ if (compared !== 0) {
54
+ return compared;
55
+ }
56
+ }
57
+ return 0;
58
+ }
59
+
60
+ /**
61
+ * Checks if a version is between two different versions.
62
+ * version should be >= left side, < right side
63
+ *
64
+ * @param {String} version1
65
+ * @param {String} version2
66
+ * @return {Boolean}
67
+ */
68
+ function versionTest(version, between) {
69
+ var fromVersion = between[0];
70
+ var toVersion = between[1];
71
+ if (compareVersion(version, fromVersion) === -1) {
72
+ return false;
73
+ }
74
+ return !toVersion || compareVersion(version, toVersion) === -1;
75
+ }
76
+
77
+ function sendApps(adapter, apps) {
78
+ const serializedApps = apps.map(app => {
79
+ return {
80
+ applicationName: app.applicationName,
81
+ applicationId: app.applicationId
82
+ };
83
+ });
84
+ adapter.sendMessage({
85
+ type: 'apps-loaded',
86
+ apps: serializedApps,
87
+ from: 'inspectedWindow'
88
+ });
89
+ }
90
+
91
+ /**
92
+ * Get all the Ember.Application instances from Ember.Namespace.NAMESPACES
93
+ * and add our own applicationId and applicationName to them
94
+ * @return {*}
95
+ */
96
+ function getApplications() {
97
+ var namespaces = Namespace.NAMESPACES;
98
+ var apps = namespaces.filter(function (namespace) {
99
+ return namespace instanceof Application;
100
+ });
101
+ return apps.map(function (app) {
102
+ // Add applicationId and applicationName to the app
103
+ var applicationId = guidFor(app);
104
+ var applicationName = app.name || app.modulePrefix || `(unknown app - ${applicationId})`;
105
+ Object.assign(app, {
106
+ applicationId,
107
+ applicationName
108
+ });
109
+ return app;
110
+ });
111
+ }
112
+
113
+ function bootEmberInspector(appInstance) {
114
+ appInstance.application.__inspector__booted = true;
115
+ appInstance.__inspector__booted = true;
116
+
117
+ // Boot the inspector (or re-boot if already booted, for example in tests)
118
+ window.EmberInspector._application = appInstance.application;
119
+ window.EmberInspector.owner = appInstance;
120
+ window.EmberInspector.start(true);
121
+ }
122
+
123
+ function setupInstanceInitializer(app, callback) {
124
+ if (!app.__inspector__setup) {
125
+ app.__inspector__setup = true;
126
+
127
+ // We include the app's guid in the initializer name because in Ember versions < 3
128
+ // registering an instance initializer with the same name, even if on a different app,
129
+ // triggers an error because instance initializers seem to be global instead of per app.
130
+ app.instanceInitializer({
131
+ name: 'ember-inspector-app-instance-booted-' + guidFor(app),
132
+ initialize: function (instance) {
133
+ callback(instance);
134
+ }
135
+ });
136
+ }
137
+ }
138
+
139
+ let channel = new MessageChannel();
140
+ let port = channel.port1;
141
+ window.postMessage('debugger-client', '*', [channel.port2]);
142
+ let registeredMiss = false;
143
+
144
+ /**
145
+ * This function is called if the app's Ember version
146
+ * is not supported by this version of the inspector.
147
+ *
148
+ * It sends a message to the inspector app to redirect
149
+ * to an inspector version that supports this Ember version.
150
+ */
151
+ function sendVersionMiss(VERSION) {
152
+ if (registeredMiss) {
153
+ return;
154
+ }
155
+ registeredMiss = true;
156
+ port.addEventListener('message', message => {
157
+ if (message.type === 'check-version') {
158
+ sendVersionMismatch();
159
+ }
160
+ });
161
+ sendVersionMismatch();
162
+ port.start();
163
+ function sendVersionMismatch() {
164
+ port.postMessage({
165
+ name: 'version-mismatch',
166
+ version: VERSION,
167
+ from: 'inspectedWindow'
168
+ });
169
+ }
170
+ }
171
+
172
+ /* eslint-disable ember/no-test-import-export */
173
+ function onReady(callback) {
174
+ if (document.readyState === 'complete' || document.readyState === 'interactive') {
175
+ setTimeout(completed);
176
+ } else {
177
+ document.addEventListener('DOMContentLoaded', completed, false);
178
+ // For some reason DOMContentLoaded doesn't always work
179
+ window.addEventListener('load', completed, false);
180
+ }
181
+ function completed() {
182
+ document.removeEventListener('DOMContentLoaded', completed, false);
183
+ window.removeEventListener('load', completed, false);
184
+ callback();
185
+ }
186
+ }
187
+ function onEmberReady(callback) {
188
+ var triggered = false;
189
+ var triggerOnce = function () {
190
+ if (triggered) {
191
+ return;
192
+ }
193
+ triggered = true;
194
+ callback();
195
+ };
196
+
197
+ // Newest Ember versions >= 1.10
198
+
199
+ const later = () => setTimeout(triggerOnce, 0);
200
+ window.addEventListener('Ember', later, {
201
+ once: true
202
+ });
203
+ // Oldest Ember versions or if this was injected after Ember has loaded.
204
+ onReady(triggerOnce);
205
+ }
206
+ function startInspector(adapter) {
207
+ // There's probably a better way
208
+ // to determine when the application starts
209
+ // but this definitely works
210
+ function onApplicationStart(callback) {
211
+ const adapterInstance = new adapter();
212
+ adapterInstance.onMessageReceived(function (message) {
213
+ if (message.type === 'app-picker-loaded') {
214
+ sendApps(adapterInstance, getApplications());
215
+ }
216
+ if (message.type === 'app-selected') {
217
+ let current = window.EmberInspector._application;
218
+ let selected = getApplications().find(app => guidFor(app) === message.applicationId);
219
+ if (selected && current !== selected && selected.__deprecatedInstance__) {
220
+ bootEmberInspector(selected.__deprecatedInstance__);
221
+ }
222
+ }
223
+ });
224
+ var apps = getApplications();
225
+ sendApps(adapterInstance, apps);
226
+ function loadInstance(app) {
227
+ const applicationInstances = app._applicationInstances && [...app._applicationInstances];
228
+ let instance = app.__deprecatedInstance__ || applicationInstances[0];
229
+ if (instance) {
230
+ // App started
231
+ setupInstanceInitializer(app, callback);
232
+ callback(instance);
233
+ return true;
234
+ }
235
+ }
236
+ var app;
237
+ for (var i = 0, l = apps.length; i < l; i++) {
238
+ app = apps[i];
239
+ // We check for the existance of an application instance because
240
+ // in Ember > 3 tests don't destroy the app when they're done but the app has no booted instances.
241
+ if (app._readinessDeferrals === 0) {
242
+ if (loadInstance(app)) {
243
+ break;
244
+ }
245
+ }
246
+
247
+ // app already run initializers, but no instance, use _bootPromise and didBecomeReady
248
+ if (app._bootPromise) {
249
+ app._bootPromise.then(app => {
250
+ loadInstance(app);
251
+ });
252
+ }
253
+ app.reopen({
254
+ didBecomeReady() {
255
+ this._super.apply(this, arguments);
256
+ setTimeout(() => loadInstance(app), 0);
257
+ }
258
+ });
259
+ }
260
+ Application.initializer({
261
+ name: 'ember-inspector-booted',
262
+ initialize: function (app) {
263
+ setupInstanceInitializer(app, callback);
264
+ }
265
+ });
266
+ }
267
+ return async function startInspector() {
268
+ // global to prevent injection
269
+ if (window.NO_EMBER_DEBUG) {
270
+ return;
271
+ }
272
+
273
+ /**
274
+ * If we don't have a way to know the Ember version at this point
275
+ * because the Ember app has not loaded and provided it somehow,
276
+ * we can't continue (we need the version to know what version of
277
+ * the Inspector to load).
278
+ */
279
+ if (!VERSION) {
280
+ return;
281
+ }
282
+
283
+ /**
284
+ * This is used to redirect to an old snapshot of the Inspector if the
285
+ * inspected app uses an older Ember version than supported versions.
286
+ * The code fits the Inspector supporting Ember back to 3.16: any version
287
+ * before 3.16 is necessarily a classic Ember app with Ember defined.
288
+ */
289
+ if (!versionTest(VERSION, EMBER_VERSIONS_SUPPORTED)) {
290
+ // Wrong inspector version. Redirect to the correct version.
291
+ sendVersionMiss(VERSION);
292
+ return;
293
+ }
294
+
295
+ // prevent from injecting twice
296
+ if (!window.EmberInspector) {
297
+ let emberDebugMainModule = (await import('./main.js')).default;
298
+ if (!emberDebugMainModule) {
299
+ return;
300
+ }
301
+ window.EmberInspector = emberDebugMainModule;
302
+ window.EmberInspector.Adapter = adapter;
303
+ onApplicationStart(function appStarted(instance) {
304
+ let app = instance.application;
305
+ if (!('__inspector__booted' in app)) {
306
+ // Watch for app reset/destroy
307
+ app.reopen({
308
+ reset: function () {
309
+ this.__inspector__booted = false;
310
+ this._super.apply(this, arguments);
311
+ }
312
+ });
313
+ }
314
+ if (instance && !('__inspector__booted' in instance)) {
315
+ instance.reopen({
316
+ // Clean up on instance destruction
317
+ willDestroy() {
318
+ if (window.EmberInspector.owner === instance) {
319
+ window.EmberInspector.destroyContainer();
320
+ window.EmberInspector.clear();
321
+ }
322
+ return this._super.apply(this, arguments);
323
+ }
324
+ });
325
+ if (!window.EmberInspector._application) {
326
+ setTimeout(() => bootEmberInspector(instance), 0);
327
+ }
328
+ }
329
+ });
330
+ }
331
+ };
332
+ }
333
+
334
+ export { onEmberReady, startInspector };
@@ -0,0 +1,119 @@
1
+ import { EmberObject, inspect as inspect$1, Debug, meta, ComputedProperty, InternalsMetal } from './ember.js';
2
+
3
+ /**
4
+ * Check if given key on the passed object is a computed property
5
+ * @param object
6
+ * @param key
7
+ * @return {boolean|*}
8
+ */
9
+ function isComputed(object, key) {
10
+ // Ember > 3.10
11
+ if (Debug.isComputed && Debug.isComputed(object, key)) {
12
+ return true;
13
+ }
14
+ if (meta(object) && meta(object).peekDescriptors(key)) {
15
+ return !!meta(object).peekDescriptors(key)._getter;
16
+ }
17
+ if (getDescriptorFor(object, key) instanceof ComputedProperty) {
18
+ return true;
19
+ }
20
+ }
21
+
22
+ /**
23
+ * This allows us to pass in a COMPUTED_DECORATOR function and get the descriptor for it.
24
+ * It should be implemented Ember side eventually.
25
+ * @param {EmberObject} object The object we are inspecting
26
+ * @param {String} key The key for the property on the object
27
+ */
28
+ function getDescriptorFor(object, key) {
29
+ if (object[key]?.isDescriptor) {
30
+ return object[key];
31
+ }
32
+
33
+ // exists longer than ember 3.10
34
+ if (Debug.isComputed) {
35
+ const {
36
+ descriptorForDecorator,
37
+ descriptorForProperty
38
+ } = InternalsMetal || {};
39
+ return descriptorForDecorator?.(object[key]) || descriptorForProperty?.(object, key);
40
+ }
41
+ return object[key];
42
+ }
43
+ function typeOf(obj) {
44
+ return Object.prototype.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
45
+ }
46
+ function inspect(value) {
47
+ if (typeof value === 'function') {
48
+ return `${value.name || 'function'}() { ... }`;
49
+ } else if (value instanceof EmberObject) {
50
+ return value.toString();
51
+ } else if (value instanceof HTMLElement) {
52
+ return `<${value.tagName.toLowerCase()}>`;
53
+ } else if (typeOf(value) === 'array') {
54
+ if (value.length === 0) {
55
+ return '[]';
56
+ } else if (value.length === 1) {
57
+ return `[ ${inspect(value[0])} ]`;
58
+ } else {
59
+ return `[ ${inspect(value[0])}, ... ]`;
60
+ }
61
+ } else if (value instanceof Error) {
62
+ return `Error: ${value.message}`;
63
+ } else if (value === null) {
64
+ return 'null';
65
+ } else if (typeOf(value) === 'date') {
66
+ return value.toString();
67
+ } else if (typeof value === 'object') {
68
+ // `Ember.inspect` is able to handle this use case,
69
+ // but it is very slow as it loops over all props,
70
+ // so summarize to just first 2 props
71
+ // if it defines a toString, we use that instead
72
+ if (typeof value.toString === 'function' && value.toString !== Object.prototype.toString && value.toString !== Function.prototype.toString) {
73
+ try {
74
+ return `<Object:${value.toString()}>`;
75
+ } catch {
76
+ //
77
+ }
78
+ }
79
+ let ret = [];
80
+ let v;
81
+ let count = 0;
82
+ let broken = false;
83
+ for (let key in value) {
84
+ if (!('hasOwnProperty' in value) || value.hasOwnProperty(key)) {
85
+ if (count++ > 1) {
86
+ broken = true;
87
+ break;
88
+ }
89
+ v = value[key];
90
+ if (v === 'toString') {
91
+ continue;
92
+ } // ignore useless items
93
+ if (typeOf(v).includes('function')) {
94
+ v = `function ${v.name}() { ... }`;
95
+ }
96
+ if (typeOf(v) === 'array') {
97
+ v = `[Array : ${v.length}]`;
98
+ }
99
+ if (typeOf(v) === 'object') {
100
+ v = '[Object]';
101
+ }
102
+ // to avoid TypeError: Cannot convert a Symbol value to a string
103
+ if (typeOf(v) === 'symbol') {
104
+ v = v.toString();
105
+ }
106
+ ret.push(`${key}: ${v}`);
107
+ }
108
+ }
109
+ let suffix = ' }';
110
+ if (broken) {
111
+ suffix = ' ...}';
112
+ }
113
+ return `{ ${ret.join(', ')}${suffix}`;
114
+ } else {
115
+ return inspect$1(value);
116
+ }
117
+ }
118
+
119
+ export { getDescriptorFor, inspect, isComputed, typeOf };
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Compares two Ember versions.
3
+ *
4
+ * Returns:
5
+ * `-1` if version1 < version
6
+ * 0 if version1 == version2
7
+ * 1 if version1 > version2
8
+ *
9
+ * @param {String} version1
10
+ * @param {String} version2
11
+ * @return {Boolean} result of the comparison
12
+ */
13
+ function compareVersion(version1, version2) {
14
+ let compared, i;
15
+ version1 = cleanupVersion(version1).split('.');
16
+ version2 = cleanupVersion(version2).split('.');
17
+ for (i = 0; i < 3; i++) {
18
+ compared = compare(+version1[i], +version2[i]);
19
+ if (compared !== 0) {
20
+ return compared;
21
+ }
22
+ }
23
+ return 0;
24
+ }
25
+
26
+ /**
27
+ *
28
+ * @param specifier e.g. ^5.12.0
29
+ * @param version 5.13
30
+ * @return {boolean}
31
+ */
32
+ function isInVersionSpecifier(specifier, version) {
33
+ let compared, i, version2;
34
+ let operator = specifier[0];
35
+ if (Number.isNaN(+operator)) {
36
+ specifier = specifier.slice(1);
37
+ }
38
+ specifier = cleanupVersion(specifier).split('.');
39
+ version2 = cleanupVersion(version).split('.');
40
+ if (operator === '~' && specifier[1] !== version2[1]) {
41
+ return false;
42
+ }
43
+ if (operator === '^' && specifier[0] !== version2[0]) {
44
+ return false;
45
+ }
46
+ if (operator === '>' && specifier[0] > version2[0]) {
47
+ return false;
48
+ }
49
+ for (i = 0; i < 3; i++) {
50
+ compared = compare(+specifier[i], +version2[i]);
51
+ if (compared < 0) {
52
+ return true;
53
+ }
54
+ if (compared > 0) {
55
+ return false;
56
+ }
57
+ }
58
+ return true;
59
+ }
60
+
61
+ /**
62
+ * Remove -alpha, -beta, etc from versions
63
+ *
64
+ * @param {String} version
65
+ * @return {String} The cleaned up version
66
+ */
67
+ function cleanupVersion(version) {
68
+ return version.replace(/-.*/g, '');
69
+ }
70
+
71
+ /**
72
+ * @method compare
73
+ * @param {Number} val
74
+ * @param {Number} number
75
+ * @return {Number}
76
+ * 0: same
77
+ * -1: <
78
+ * 1: >
79
+ */
80
+ function compare(val, number) {
81
+ if (val === number) {
82
+ return 0;
83
+ } else if (val < number) {
84
+ return -1;
85
+ } else if (val > number) {
86
+ return 1;
87
+ }
88
+ }
89
+
90
+ export { compareVersion, isInVersionSpecifier };
@@ -0,0 +1,4 @@
1
+ const EMBER_VERSIONS_SUPPORTED = ['3.16.0', ''];
2
+ const PREVIOUS_EMBER_VERSIONS_SUPPORTED = ['0.0.0', '2.7.0', '3.4.0'];
3
+
4
+ export { EMBER_VERSIONS_SUPPORTED, PREVIOUS_EMBER_VERSIONS_SUPPORTED };
@@ -0,0 +1,144 @@
1
+ import { B as BasicAdapter } from './basic-B1dkgN3d.js';
2
+ import { typeOf } from './type-check.js';
3
+ import { getEnv } from './ember.js';
4
+ import { r as run } from './runloop-6_0lpzTA.js';
5
+
6
+ const {
7
+ isArray
8
+ } = Array;
9
+ const {
10
+ keys
11
+ } = Object;
12
+ class WebExtension extends BasicAdapter {
13
+ // eslint-disable-next-line ember/classic-decorator-hooks
14
+ init() {
15
+ this._channel = new MessageChannel();
16
+ this._chromePort = this._channel?.port1;
17
+ super.init();
18
+ }
19
+ connect() {
20
+ const channel = this._channel;
21
+ return super.connect().then(() => {
22
+ window.postMessage('debugger-client', '*', [channel.port2]);
23
+ this._listen();
24
+ }, null);
25
+ }
26
+ sendMessage(options = {}) {
27
+ // If prototype extensions are disabled, `Ember.A()` arrays
28
+ // would not be considered native arrays, so it's not possible to
29
+ // "clone" them through postMessage unless they are converted to a
30
+ // native array.
31
+ options = deepClone(options);
32
+ try {
33
+ this._chromePort.postMessage(options);
34
+ } catch (e) {
35
+ console.log('failed to send message', e);
36
+ }
37
+ }
38
+
39
+ /**
40
+ * Open the devtools "Elements" and select an DOM node.
41
+ *
42
+ * @param {Node|Function} value The DOM node to select
43
+ */
44
+ inspectValue(value) {
45
+ // NOTE:
46
+ //
47
+ // Basically, we are just trying to call `inspect(node)` here.
48
+ // However, `inspect` is a special function that is in the global
49
+ // scope but not on the global object (i.e. `window.inspect`) does
50
+ // not work. This sometimes causes problems, because, e.g. if the
51
+ // page has a div with the ID `inspect`, `window.inspect` will point
52
+ // to that div and shadow the "global" inspect function with no way
53
+ // to get it back. That causes "`inspect` is not a function" errors.
54
+ //
55
+ // As it turns out, however, when the extension page evals, the
56
+ // `inspect` function does not get shadowed. So, we can ask the
57
+ // inspector extension page to call that function for us, using
58
+ // `inspected.Window.eval('inspect(node)')`.
59
+ //
60
+ // However, since we cannot just send the DOM node directly to the
61
+ // extension, we will have to store it in a temporary global variable
62
+ // so that the extension can find it.
63
+
64
+ let name = `__EMBER_INSPECTOR_${(Math.random() * 100000000).toFixed(0)}`;
65
+ window[name] = value;
66
+ this.namespace.port.send('view:inspectJSValue', {
67
+ name
68
+ });
69
+ }
70
+ _listen() {
71
+ let chromePort = this._chromePort;
72
+ chromePort.addEventListener('message', event => {
73
+ const message = event.data;
74
+
75
+ // We should generally not be run-wrapping here. Starting a runloop in
76
+ // ember-debug will cause the inspected app to revalidate/rerender. We
77
+ // are generally not intending to cause changes to the rendered output
78
+ // of the app, so this is generally unnecessary, and in big apps this
79
+ // could be quite slow. There is nothing special about the `view:*`
80
+ // messages – I (GC) just happened to have reviewed all of them recently
81
+ // and can be quite sure that they don't need the runloop. We should
82
+ // audit the rest of them and see if we can remove the else branch. I
83
+ // think we most likely can. In the limited cases (if any) where the
84
+ // runloop is needed, the callback code should just do the wrapping
85
+ // themselves.
86
+ if (message.type.startsWith('view:')) {
87
+ this._messageReceived(message);
88
+ } else {
89
+ run(() => {
90
+ this._messageReceived(message);
91
+ });
92
+ }
93
+ });
94
+ chromePort.start();
95
+ }
96
+ }
97
+
98
+ // On some older Ember version `Ember.ENV.EXTEND_PROTOTYPES` is not
99
+ // guarenteed to be an object. While this code only support 3.4+ (all
100
+ // of which normalizes `EXTEND_PROTOTYPES` for us), startup-wrapper.js
101
+ // eagerly require/load ember-debug modules, which ultimately causes
102
+ // this top-level code to run, even we are going to pick a different
103
+ // adapter later. See GH #1114.
104
+ const HAS_ARRAY_PROTOTYPE_EXTENSIONS = (() => {
105
+ try {
106
+ return getEnv().EXTEND_PROTOTYPES.Array === true;
107
+ } catch {
108
+ return false;
109
+ }
110
+ })();
111
+ let deepClone;
112
+ if (HAS_ARRAY_PROTOTYPE_EXTENSIONS) {
113
+ deepClone = function deepClone(item) {
114
+ return item;
115
+ };
116
+ } else {
117
+ /**
118
+ * Recursively clones all arrays. Needed because Chrome
119
+ * refuses to clone Ember Arrays when extend prototypes is disabled.
120
+ *
121
+ * If the item passed is an array, a clone of the array is returned.
122
+ * If the item is an object or an array, or array properties/items are cloned.
123
+ *
124
+ * @param {Mixed} item The item to clone
125
+ * @return {Mixed}
126
+ */
127
+ deepClone = function deepClone(item) {
128
+ let clone = item;
129
+ if (isArray(item)) {
130
+ clone = new Array(item.length);
131
+ item.forEach((child, key) => {
132
+ clone[key] = deepClone(child);
133
+ });
134
+ } else if (item && typeOf(item) === 'object') {
135
+ clone = {};
136
+ keys(item).forEach(key => {
137
+ clone[key] = deepClone(item[key]);
138
+ });
139
+ }
140
+ return clone;
141
+ };
142
+ }
143
+
144
+ export { WebExtension as W };