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.
- package/.ember-cli +1 -9
- package/.github/workflows/build.yml +33 -112
- package/.github/workflows/plan-release.yml +26 -48
- package/.github/workflows/publish.yml +129 -31
- package/.prettierignore +2 -13
- package/.prettierrc.js +10 -4
- package/.release-plan.json +13 -4
- package/.stylelintignore +8 -0
- package/.stylelintrc.js +10 -1
- package/.template-lintrc.js +2 -1
- package/.tool-versions +2 -2
- package/.watchmanconfig +1 -1
- package/CHANGELOG.md +137 -0
- package/DEVELOPMENT.md +50 -0
- package/PRIVACY.md +3 -0
- package/README.md +14 -50
- package/RELEASE.md +15 -50
- package/app/components/app-picker.hbs +2 -2
- package/app/components/component-tree-item.hbs +14 -14
- package/app/components/component-tree-toolbar.hbs +17 -3
- package/app/components/{date-property-field.js → date-property-field.ts} +6 -5
- package/app/components/deprecation-item-source.hbs +1 -1
- package/app/components/deprecation-item.hbs +1 -1
- package/app/components/deprecations-toolbar.hbs +1 -1
- package/app/components/item-types.hbs +7 -7
- package/app/components/list-cell.hbs +3 -3
- package/app/components/list-content.hbs +4 -3
- package/app/components/list-content.ts +96 -0
- package/app/components/list.hbs +3 -3
- package/app/components/list.js +7 -7
- package/app/components/model-types-toolbar.hbs +3 -3
- package/app/components/object-inspector/component-parents.hbs +33 -0
- package/app/components/object-inspector/component-parents.js +43 -0
- package/app/components/object-inspector/dependent-keys.hbs +4 -4
- package/app/components/object-inspector/errors.hbs +4 -4
- package/app/components/object-inspector/properties-all.hbs +1 -1
- package/app/components/object-inspector/properties-base.js +2 -0
- package/app/components/object-inspector/properties-grouped.hbs +5 -5
- package/app/components/object-inspector/property.hbs +36 -34
- package/app/components/object-inspector/property.ts +34 -17
- package/app/components/object-inspector/sort-properties.js +12 -4
- package/app/components/object-inspector/toggle.hbs +9 -0
- package/app/components/object-inspector/toggle.js +6 -0
- package/app/components/object-inspector.hbs +11 -9
- package/app/components/object-inspector.js +1 -1
- package/app/components/promise-item.hbs +11 -11
- package/app/components/promise-item.js +8 -6
- package/app/components/promise-tree-toolbar.hbs +5 -5
- package/app/components/records-toolbar.hbs +2 -2
- package/app/components/render-item.hbs +4 -4
- package/app/components/render-item.ts +12 -9
- package/app/components/render-tree-toolbar.hbs +1 -1
- package/app/components/route-cell-name.hbs +1 -1
- package/app/components/route-cell-name.js +3 -2
- package/app/components/route-tree-toolbar.hbs +2 -2
- package/app/components/scroll-container.js +2 -0
- package/app/components/side-nav.hbs +5 -5
- package/app/components/side-nav.js +1 -1
- package/{lib/ui/addon/components → app/components/ui}/drag-handle.hbs +4 -4
- package/{lib/ui/addon/components → app/components/ui}/drag-handle.js +3 -1
- package/{lib/ui/addon/components → app/components/ui}/empty-message.hbs +1 -1
- package/{lib/ui/addon/components → app/components/ui}/error-page.hbs +3 -3
- package/{lib/ui/addon/components → app/components/ui}/resizable-column.js +1 -1
- package/{lib/ui/addon/components → app/components/ui}/toolbar-clear-button.hbs +1 -1
- package/{lib/ui/addon/components → app/components/ui}/toolbar-reload-button.hbs +1 -1
- package/{lib/ui/addon/components → app/components/ui}/toolbar-search-field.hbs +2 -2
- package/app/computed/{debounce.js → debounce.ts} +7 -5
- package/app/config/environment.d.ts +5 -2
- package/app/controllers/app-config.js +1 -0
- package/app/controllers/application.js +36 -71
- package/app/controllers/component-tree.js +26 -7
- package/app/controllers/container-type.js +2 -1
- package/app/controllers/container-types/{index.js → index.ts} +5 -2
- package/app/controllers/container-types.js +3 -6
- package/app/controllers/deprecations.js +16 -11
- package/app/controllers/libraries.js +1 -0
- package/app/controllers/model-types.js +7 -13
- package/app/controllers/promise-tree.ts +149 -0
- package/app/controllers/records.js +18 -26
- package/app/controllers/{render-tree.js → render-tree.ts} +54 -45
- package/app/controllers/route-tree.js +7 -5
- package/app/helpers/build-style.js +1 -1
- package/app/index.html +1 -19
- package/app/initializers/setup.js +1 -1
- package/app/libs/promise-assembler.ts +249 -0
- package/app/libs/resizable-columns.js +10 -10
- package/app/models/{promise.js → promise.ts} +72 -69
- package/app/{router.js → router.ts} +1 -1
- package/app/routes/app-detected.js +3 -5
- package/app/routes/application.js +9 -13
- package/app/routes/deprecations.js +7 -16
- package/app/routes/launch.js +2 -1
- package/app/routes/libraries.js +2 -1
- package/app/routes/model-type.js +2 -3
- package/app/routes/model-types.ts +57 -0
- package/app/routes/promise-tree.ts +63 -0
- package/app/routes/records.ts +78 -0
- package/app/routes/render-tree.ts +93 -0
- package/app/routes/route-tree.js +0 -1
- package/app/routes/{tab.js → tab.ts} +9 -2
- package/app/routes/whats-new.js +6 -4
- package/app/services/adapters/{basic.js → basic.ts} +36 -30
- package/app/services/adapters/{bookmarklet.js → bookmarklet.ts} +17 -24
- package/app/services/adapters/{chrome.js → chrome.ts} +1 -2
- package/app/services/adapters/{web-extension.js → web-extension.ts} +46 -46
- package/app/services/adapters/websocket.ts +40 -0
- package/app/services/layout.ts +124 -0
- package/app/services/port.ts +195 -0
- package/app/services/storage/{local.js → local.ts} +7 -20
- package/app/services/storage/{memory.js → memory.ts} +6 -21
- package/app/services/{storage.js → storage.ts} +25 -23
- package/app/styles/app.scss +1 -0
- package/app/styles/base.scss +6 -2
- package/app/styles/colors.scss +33 -31
- package/app/styles/component_tree.scss +56 -51
- package/app/styles/dropdown.scss +2 -2
- package/app/styles/ember-table.scss +3 -3
- package/app/styles/mixin.scss +26 -26
- package/app/styles/object_inspector.scss +30 -21
- package/{lib/ui/addon/styles → app/styles/ui}/_disclosure-triangle.scss +3 -1
- package/{lib/ui/addon/styles → app/styles/ui}/_drag-handle.scss +7 -7
- package/{lib/ui/addon/styles → app/styles/ui}/_empty-message.scss +1 -1
- package/{lib/ui/addon/styles → app/styles/ui}/_error-page.scss +8 -7
- package/{lib/ui/addon/styles → app/styles/ui}/_list.scss +46 -45
- package/{lib/ui/addon/styles → app/styles/ui}/_nav.scss +29 -27
- package/app/styles/ui/_object-inspector-toggle.scss +4 -0
- package/{lib/ui/addon/styles → app/styles/ui}/_pill.scss +4 -4
- package/{lib/ui/addon/styles → app/styles/ui}/_send-to-console.scss +1 -1
- package/{lib/ui/addon/styles → app/styles/ui}/_split.scss +26 -20
- package/app/styles/ui/_ui.scss +13 -0
- package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_checkbox.scss +5 -5
- package/app/styles/ui/toolbar/_icon-button.scss +80 -0
- package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_index.scss +6 -5
- package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_radio.scss +10 -10
- package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_search.scss +5 -3
- package/app/styles/utils.scss +408 -122
- package/app/templates/application.hbs +22 -19
- package/app/templates/component-tree.hbs +4 -1
- package/app/templates/deprecations.hbs +2 -3
- package/app/templates/info.hbs +10 -10
- package/app/templates/promise-tree.hbs +1 -1
- package/app/templates/render-tree.hbs +1 -1
- package/app/templates/route-tree.hbs +1 -1
- package/app/utils/escape-reg-exp.ts +3 -2
- package/app/utils/nullish.ts +7 -0
- package/app/utils/parse-text.ts +4 -5
- package/app/utils/truncate.js +0 -1
- package/config/ember-cli-update.json +5 -3
- package/config/ember-try.js +117 -72
- package/config/environment.js +1 -1
- package/config/optional-features.json +2 -1
- package/dist/bookmarklet/load_inspector.js +31 -11
- package/dist/bookmarklet/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
- package/dist/bookmarklet/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
- package/dist/bookmarklet/panes-3-16-0/assets/chunk.524.aca67dc376e8cd35b522.js +40 -0
- package/dist/bookmarklet/panes-3-16-0/assets/chunk.582.d3d80e94c4f59dc3b65d.js +42 -0
- package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.css +997 -156
- package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.js +560 -613
- package/dist/bookmarklet/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
- package/dist/bookmarklet/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
- package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
- package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-components.svg +2 -2
- package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-container.svg +1 -1
- package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-data.svg +1 -1
- package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
- package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-info.svg +3 -3
- package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
- package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
- package/dist/bookmarklet/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
- package/dist/bookmarklet/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
- package/dist/bookmarklet/panes-3-16-0/assets/vendor.css +4 -841
- package/dist/bookmarklet/panes-3-16-0/assets/vendor.js +4277 -5152
- package/dist/bookmarklet/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
- package/dist/bookmarklet/panes-3-16-0/basic-B1dkgN3d.js +149 -0
- package/dist/bookmarklet/panes-3-16-0/basic-debug.js +10 -0
- package/dist/bookmarklet/panes-3-16-0/bookmarklet-BZWtwuX-.js +32 -0
- package/dist/bookmarklet/panes-3-16-0/bookmarklet-debug.js +10 -0
- package/dist/bookmarklet/panes-3-16-0/chrome-P6FSEUf1.js +10 -0
- package/dist/bookmarklet/panes-3-16-0/chrome-debug.js +10 -0
- package/dist/bookmarklet/panes-3-16-0/ember.js +166 -0
- package/dist/bookmarklet/panes-3-16-0/ember_debug.js +7 -11018
- package/dist/bookmarklet/panes-3-16-0/evented-BCTya3yE.js +62 -0
- package/dist/bookmarklet/panes-3-16-0/firefox-8F84zphP.js +30 -0
- package/dist/bookmarklet/panes-3-16-0/firefox-debug.js +10 -0
- package/dist/bookmarklet/panes-3-16-0/index.html +4 -23
- package/dist/bookmarklet/panes-3-16-0/internals-CRmXMEzb.js +12 -0
- package/dist/bookmarklet/panes-3-16-0/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
- package/dist/bookmarklet/panes-3-16-0/main.js +7669 -0
- package/dist/bookmarklet/panes-3-16-0/port.js +108 -0
- package/dist/bookmarklet/panes-3-16-0/profile-node.js +60 -0
- package/dist/bookmarklet/panes-3-16-0/promise-assembler.js +218 -0
- package/dist/bookmarklet/panes-3-16-0/runloop-6_0lpzTA.js +1138 -0
- package/dist/bookmarklet/panes-3-16-0/start-inspector-BIYQArZn.js +334 -0
- package/dist/bookmarklet/panes-3-16-0/type-check.js +119 -0
- package/dist/bookmarklet/panes-3-16-0/version.js +90 -0
- package/dist/bookmarklet/panes-3-16-0/versions.js +4 -0
- package/dist/bookmarklet/panes-3-16-0/web-extension-OWnXJ_XK.js +144 -0
- package/dist/bookmarklet/panes-3-16-0/websocket-BSUvUqER.js +58 -0
- package/dist/bookmarklet/panes-3-16-0/websocket-debug.js +10 -0
- package/dist/chrome/background.js +26 -21
- package/dist/chrome/boot.js +1 -1
- package/dist/chrome/content-script.js +12 -11
- package/dist/chrome/devtools.js +12 -3
- package/dist/chrome/manifest.json +4 -2
- package/dist/chrome/options.js +17 -12
- package/dist/chrome/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
- package/dist/chrome/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
- package/dist/chrome/panes-3-16-0/assets/chunk.524.aca67dc376e8cd35b522.js +40 -0
- package/dist/chrome/panes-3-16-0/assets/chunk.582.d3d80e94c4f59dc3b65d.js +42 -0
- package/dist/chrome/panes-3-16-0/assets/ember-inspector.css +997 -156
- package/dist/chrome/panes-3-16-0/assets/ember-inspector.js +560 -613
- package/dist/chrome/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
- package/dist/chrome/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
- package/dist/chrome/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
- package/dist/chrome/panes-3-16-0/assets/svg/nav-components.svg +2 -2
- package/dist/chrome/panes-3-16-0/assets/svg/nav-container.svg +1 -1
- package/dist/chrome/panes-3-16-0/assets/svg/nav-data.svg +1 -1
- package/dist/chrome/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
- package/dist/chrome/panes-3-16-0/assets/svg/nav-info.svg +3 -3
- package/dist/chrome/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
- package/dist/chrome/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
- package/dist/chrome/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
- package/dist/chrome/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
- package/dist/chrome/panes-3-16-0/assets/vendor.css +4 -841
- package/dist/chrome/panes-3-16-0/assets/vendor.js +4277 -5152
- package/dist/chrome/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
- package/dist/chrome/panes-3-16-0/basic-B1dkgN3d.js +149 -0
- package/dist/chrome/panes-3-16-0/basic-debug.js +10 -0
- package/dist/chrome/panes-3-16-0/bookmarklet-BZWtwuX-.js +32 -0
- package/dist/chrome/panes-3-16-0/bookmarklet-debug.js +10 -0
- package/dist/chrome/panes-3-16-0/chrome-P6FSEUf1.js +10 -0
- package/dist/chrome/panes-3-16-0/chrome-debug.js +10 -0
- package/dist/chrome/panes-3-16-0/ember.js +166 -0
- package/dist/chrome/panes-3-16-0/ember_debug.js +7 -11018
- package/dist/chrome/panes-3-16-0/evented-BCTya3yE.js +62 -0
- package/dist/chrome/panes-3-16-0/firefox-8F84zphP.js +30 -0
- package/dist/chrome/panes-3-16-0/firefox-debug.js +10 -0
- package/dist/chrome/panes-3-16-0/index.html +4 -23
- package/dist/chrome/panes-3-16-0/internals-CRmXMEzb.js +12 -0
- package/dist/chrome/panes-3-16-0/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
- package/dist/chrome/panes-3-16-0/main.js +7669 -0
- package/dist/chrome/panes-3-16-0/port.js +108 -0
- package/dist/chrome/panes-3-16-0/profile-node.js +60 -0
- package/dist/chrome/panes-3-16-0/promise-assembler.js +218 -0
- package/dist/chrome/panes-3-16-0/runloop-6_0lpzTA.js +1138 -0
- package/dist/chrome/panes-3-16-0/start-inspector-BIYQArZn.js +334 -0
- package/dist/chrome/panes-3-16-0/type-check.js +119 -0
- package/dist/chrome/panes-3-16-0/version.js +90 -0
- package/dist/chrome/panes-3-16-0/versions.js +4 -0
- package/dist/chrome/panes-3-16-0/web-extension-OWnXJ_XK.js +144 -0
- package/dist/chrome/panes-3-16-0/websocket-BSUvUqER.js +58 -0
- package/dist/chrome/panes-3-16-0/websocket-debug.js +10 -0
- package/dist/chrome/scripts/in-page-script.js +19 -13
- package/dist/firefox/background.js +26 -21
- package/dist/firefox/boot.js +1 -1
- package/dist/firefox/content-script.js +12 -11
- package/dist/firefox/devtools.js +12 -3
- package/dist/firefox/manifest.json +4 -2
- package/dist/firefox/options.js +17 -12
- package/dist/firefox/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js +1135 -0
- package/dist/firefox/panes-3-16-0/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
- package/dist/firefox/panes-3-16-0/assets/chunk.524.aca67dc376e8cd35b522.js +40 -0
- package/dist/firefox/panes-3-16-0/assets/chunk.582.d3d80e94c4f59dc3b65d.js +42 -0
- package/dist/firefox/panes-3-16-0/assets/ember-inspector.css +997 -156
- package/dist/firefox/panes-3-16-0/assets/ember-inspector.js +560 -613
- package/dist/firefox/panes-3-16-0/assets/svg/ellipsis.svg +3 -3
- package/dist/firefox/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
- package/dist/firefox/panes-3-16-0/assets/svg/nav-bug.svg +1 -1
- package/dist/firefox/panes-3-16-0/assets/svg/nav-components.svg +2 -2
- package/dist/firefox/panes-3-16-0/assets/svg/nav-container.svg +1 -1
- package/dist/firefox/panes-3-16-0/assets/svg/nav-data.svg +1 -1
- package/dist/firefox/panes-3-16-0/assets/svg/nav-deprecations.svg +3 -3
- package/dist/firefox/panes-3-16-0/assets/svg/nav-info.svg +3 -3
- package/dist/firefox/panes-3-16-0/assets/svg/nav-promises.svg +2 -2
- package/dist/firefox/panes-3-16-0/assets/svg/nav-render-performance.svg +2 -2
- package/dist/firefox/panes-3-16-0/assets/svg/nav-route-tree.svg +7 -7
- package/dist/firefox/panes-3-16-0/assets/svg/sidebar-toggle-trailing.svg +9 -0
- package/dist/firefox/panes-3-16-0/assets/vendor.css +4 -841
- package/dist/firefox/panes-3-16-0/assets/vendor.js +4277 -5152
- package/dist/firefox/panes-3-16-0/base-object-HAEdWjmg.js +59 -0
- package/dist/firefox/panes-3-16-0/basic-B1dkgN3d.js +149 -0
- package/dist/firefox/panes-3-16-0/basic-debug.js +10 -0
- package/dist/firefox/panes-3-16-0/bookmarklet-BZWtwuX-.js +32 -0
- package/dist/firefox/panes-3-16-0/bookmarklet-debug.js +10 -0
- package/dist/firefox/panes-3-16-0/chrome-P6FSEUf1.js +10 -0
- package/dist/firefox/panes-3-16-0/chrome-debug.js +10 -0
- package/dist/firefox/panes-3-16-0/ember.js +166 -0
- package/dist/firefox/panes-3-16-0/ember_debug.js +7 -11018
- package/dist/firefox/panes-3-16-0/evented-BCTya3yE.js +62 -0
- package/dist/firefox/panes-3-16-0/firefox-8F84zphP.js +30 -0
- package/dist/firefox/panes-3-16-0/firefox-debug.js +10 -0
- package/dist/firefox/panes-3-16-0/index.html +4 -23
- package/dist/firefox/panes-3-16-0/internals-CRmXMEzb.js +12 -0
- package/dist/firefox/panes-3-16-0/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
- package/dist/firefox/panes-3-16-0/main.js +7669 -0
- package/dist/firefox/panes-3-16-0/port.js +108 -0
- package/dist/firefox/panes-3-16-0/profile-node.js +60 -0
- package/dist/firefox/panes-3-16-0/promise-assembler.js +218 -0
- package/dist/firefox/panes-3-16-0/runloop-6_0lpzTA.js +1138 -0
- package/dist/firefox/panes-3-16-0/start-inspector-BIYQArZn.js +334 -0
- package/dist/firefox/panes-3-16-0/type-check.js +119 -0
- package/dist/firefox/panes-3-16-0/version.js +90 -0
- package/dist/firefox/panes-3-16-0/versions.js +4 -0
- package/dist/firefox/panes-3-16-0/web-extension-OWnXJ_XK.js +144 -0
- package/dist/firefox/panes-3-16-0/websocket-BSUvUqER.js +58 -0
- package/dist/firefox/panes-3-16-0/websocket-debug.js +10 -0
- package/dist/firefox/scripts/in-page-script.js +19 -13
- package/dist/websocket/assets/chunk.443.86a005e528b587663b78.js +1135 -0
- package/dist/websocket/assets/chunk.443.86a005e528b587663b78.js.LICENSE.txt +18 -0
- package/dist/websocket/assets/chunk.524.aca67dc376e8cd35b522.js +40 -0
- package/dist/websocket/assets/chunk.582.d3d80e94c4f59dc3b65d.js +42 -0
- package/dist/websocket/assets/ember-inspector.css +997 -156
- package/dist/websocket/assets/ember-inspector.js +560 -613
- package/dist/websocket/assets/svg/ellipsis.svg +3 -3
- package/dist/websocket/assets/svg/focus-point-round.svg +9 -0
- package/dist/websocket/assets/svg/nav-bug.svg +1 -1
- package/dist/websocket/assets/svg/nav-components.svg +2 -2
- package/dist/websocket/assets/svg/nav-container.svg +1 -1
- package/dist/websocket/assets/svg/nav-data.svg +1 -1
- package/dist/websocket/assets/svg/nav-deprecations.svg +3 -3
- package/dist/websocket/assets/svg/nav-info.svg +3 -3
- package/dist/websocket/assets/svg/nav-promises.svg +2 -2
- package/dist/websocket/assets/svg/nav-render-performance.svg +2 -2
- package/dist/websocket/assets/svg/nav-route-tree.svg +7 -7
- package/dist/websocket/assets/svg/sidebar-toggle-trailing.svg +9 -0
- package/dist/websocket/assets/vendor.css +4 -841
- package/dist/websocket/assets/vendor.js +4277 -5152
- package/dist/websocket/base-object-HAEdWjmg.js +59 -0
- package/dist/websocket/basic-B1dkgN3d.js +149 -0
- package/dist/websocket/basic-debug.js +10 -0
- package/dist/websocket/bookmarklet-BZWtwuX-.js +32 -0
- package/dist/websocket/bookmarklet-debug.js +10 -0
- package/dist/websocket/chrome-P6FSEUf1.js +10 -0
- package/dist/websocket/chrome-debug.js +10 -0
- package/dist/websocket/ember.js +166 -0
- package/dist/websocket/ember_debug.js +7 -11018
- package/dist/websocket/evented-BCTya3yE.js +62 -0
- package/dist/websocket/firefox-8F84zphP.js +30 -0
- package/dist/websocket/firefox-debug.js +10 -0
- package/dist/websocket/index.html +4 -23
- package/dist/websocket/internals-CRmXMEzb.js +12 -0
- package/dist/websocket/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
- package/dist/websocket/main.js +7669 -0
- package/dist/websocket/port.js +108 -0
- package/dist/websocket/profile-node.js +60 -0
- package/dist/websocket/promise-assembler.js +218 -0
- package/dist/websocket/runloop-6_0lpzTA.js +1138 -0
- package/dist/websocket/start-inspector-BIYQArZn.js +334 -0
- package/dist/websocket/type-check.js +119 -0
- package/dist/websocket/version.js +90 -0
- package/dist/websocket/versions.js +4 -0
- package/dist/websocket/web-extension-OWnXJ_XK.js +144 -0
- package/dist/websocket/websocket-BSUvUqER.js +58 -0
- package/dist/websocket/websocket-debug.js +10 -0
- package/ember-cli-build.js +31 -140
- package/ember_debug/adapters/basic.js +10 -29
- package/ember_debug/adapters/bookmarklet.js +1 -0
- package/ember_debug/adapters/firefox.js +3 -3
- package/ember_debug/adapters/web-extension.js +6 -5
- package/ember_debug/adapters/websocket.js +2 -2
- package/ember_debug/babel.config.cjs +11 -0
- package/ember_debug/container-debug.js +1 -1
- package/ember_debug/data-debug.js +7 -8
- package/ember_debug/debug-port.js +1 -1
- package/ember_debug/deprecation-debug.js +14 -14
- package/ember_debug/entrypoints/basic-debug.js +10 -0
- package/ember_debug/entrypoints/bookmarklet-debug.js +10 -0
- package/ember_debug/entrypoints/chrome-debug.js +10 -0
- package/ember_debug/entrypoints/firefox-debug.js +10 -0
- package/ember_debug/entrypoints/websocket-debug.js +10 -0
- package/ember_debug/general-debug.js +4 -4
- package/ember_debug/lib/boot-ember-inspector.js +9 -0
- package/ember_debug/lib/get-applications.js +28 -0
- package/ember_debug/lib/load-ember-debug-in-webpage.js +32 -0
- package/ember_debug/lib/send-apps.js +14 -0
- package/ember_debug/lib/send-version-miss.js +38 -0
- package/ember_debug/lib/setup-instance-initializer.js +17 -0
- package/ember_debug/lib/start-inspector.js +195 -0
- package/ember_debug/lib/version-test.js +73 -0
- package/ember_debug/lib/versions.js +3 -0
- package/ember_debug/libs/capture-render-tree.js +1 -2
- package/ember_debug/libs/promise-assembler.js +5 -4
- package/ember_debug/libs/render-tree.js +37 -44
- package/ember_debug/libs/source-map.js +7 -6
- package/ember_debug/libs/view-inspection.js +25 -17
- package/ember_debug/main.js +18 -21
- package/ember_debug/models/profile-manager.js +6 -6
- package/ember_debug/models/profile-node.js +1 -1
- package/ember_debug/models/promise.js +2 -2
- package/ember_debug/object-inspector.js +74 -65
- package/ember_debug/package.json +27 -0
- package/ember_debug/port.js +5 -4
- package/ember_debug/promise-debug.js +5 -5
- package/ember_debug/render-debug.js +5 -5
- package/ember_debug/rollup.config.js +24 -0
- package/ember_debug/route-debug.js +10 -9
- package/ember_debug/services/session.js +2 -2
- package/ember_debug/utils/classify.js +1 -1
- package/ember_debug/utils/ember/object/internals.js +1 -11
- package/ember_debug/utils/ember/own-runloop.js +1 -1
- package/ember_debug/utils/ember/runloop.js +7 -10
- package/ember_debug/utils/ember-object-names.js +11 -9
- package/ember_debug/utils/ember.js +222 -40
- package/ember_debug/utils/evented.js +1 -1
- package/ember_debug/utils/get-object-name.js +3 -3
- package/ember_debug/utils/type-check.js +9 -5
- package/ember_debug/view-debug.js +12 -6
- package/eslint.config.mjs +173 -0
- package/gulpfile.js +1 -1
- package/package.json +97 -95
- package/patches/ember-cli-inject-live-reload.patch +16 -0
- package/pnpm-workspace.yaml +3 -0
- package/public/assets/svg/ellipsis.svg +3 -3
- package/public/assets/svg/focus-point-round.svg +9 -0
- package/public/assets/svg/nav-bug.svg +1 -1
- package/public/assets/svg/nav-components.svg +2 -2
- package/public/assets/svg/nav-container.svg +1 -1
- package/public/assets/svg/nav-data.svg +1 -1
- package/public/assets/svg/nav-deprecations.svg +3 -3
- package/public/assets/svg/nav-info.svg +3 -3
- package/public/assets/svg/nav-promises.svg +2 -2
- package/public/assets/svg/nav-render-performance.svg +2 -2
- package/public/assets/svg/nav-route-tree.svg +7 -7
- package/public/assets/svg/sidebar-toggle-trailing.svg +9 -0
- package/scripts/download-panes.js +1 -1
- package/skeletons/bookmarklet/load_inspector.js +31 -11
- package/skeletons/web-extension/background.js +26 -21
- package/skeletons/web-extension/boot.js +1 -1
- package/skeletons/web-extension/content-script.js +12 -11
- package/skeletons/web-extension/devtools.js +12 -3
- package/skeletons/web-extension/manifest.json +3 -1
- package/skeletons/web-extension/options.js +17 -12
- package/skeletons/web-extension/scripts/in-page-script.js +19 -13
- package/testem.js +0 -1
- package/tests/acceptance/app-picker-test.js +4 -4
- package/tests/acceptance/component-tree-test.js +96 -57
- package/tests/acceptance/container-test.js +0 -2
- package/tests/acceptance/data-test.js +14 -11
- package/tests/acceptance/deprecation-test.js +8 -12
- package/tests/acceptance/info-test.js +2 -2
- package/tests/acceptance/object-inspector-test.js +62 -110
- package/tests/acceptance/promise-test.js +1 -11
- package/tests/acceptance/render-tree-test.js +2 -2
- package/tests/acceptance/route-tree-test.js +12 -14
- package/tests/acceptance/whats-new-test.js +11 -11
- package/tests/ember_debug/container-debug-test.js +5 -14
- package/tests/ember_debug/deprecation-debug-test.js +15 -6
- package/tests/ember_debug/ember-data-test.js +7 -1
- package/tests/ember_debug/ember-debug-test.js +13 -13
- package/tests/ember_debug/object-inspector-test.js +115 -50
- package/tests/ember_debug/profile-manager-test.js +153 -170
- package/tests/ember_debug/profile-node-test.js +9 -5
- package/tests/ember_debug/promise-assembler-test.js +18 -10
- package/tests/ember_debug/promise-debug-test.js +19 -15
- package/tests/ember_debug/render-debug-test.js +8 -1
- package/tests/ember_debug/route-debug-test.js +14 -8
- package/tests/ember_debug/view-debug-test.js +267 -183
- package/tests/helpers/{index.js → index.ts} +6 -5
- package/tests/helpers/setup-ember-debug-test.js +22 -2
- package/tests/index.html +1 -2
- package/tests/integration/injection-test.js +37 -81
- package/tests/test-adapter.js +15 -15
- package/tests/test-helper.js +6 -4
- package/tests/unit/check-current-route-test.js +0 -4
- package/tests/unit/resizable-columns-test.js +53 -51
- package/tests/unit/utils/parse-text-test.js +3 -3
- package/tests/unit/utils/search-match-test.js +5 -5
- package/tests/unit/utils/type-check-test.js +27 -0
- package/tsconfig.json +3 -1
- package/types/ember-inspector/index.d.ts +2 -1
- package/types/global.d.ts +1 -7
- package/.eslintignore +0 -33
- package/.eslintrc.js +0 -86
- package/app/components/list-content.js +0 -130
- package/app/controllers/promise-tree.js +0 -130
- package/app/libs/promise-assembler.js +0 -169
- package/app/routes/model-types.js +0 -47
- package/app/routes/promise-tree.js +0 -48
- package/app/routes/records.js +0 -55
- package/app/routes/render-tree.js +0 -66
- package/app/services/adapters/websocket.js +0 -31
- package/app/services/layout.js +0 -39
- package/app/services/port.js +0 -90
- package/dist/bookmarklet/panes-3-16-0/assets/chunk.143.76a242242ec46a377266.js +0 -28
- package/dist/bookmarklet/panes-3-16-0/assets/chunk.178.b6064b368cf24cc346ec.js +0 -9
- package/dist/bookmarklet/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
- package/dist/bookmarklet/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
- package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
- package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
- package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
- package/dist/bookmarklet/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
- package/dist/chrome/panes-3-16-0/assets/chunk.143.76a242242ec46a377266.js +0 -28
- package/dist/chrome/panes-3-16-0/assets/chunk.178.b6064b368cf24cc346ec.js +0 -9
- package/dist/chrome/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
- package/dist/chrome/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
- package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
- package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
- package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
- package/dist/chrome/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
- package/dist/firefox/panes-3-16-0/assets/chunk.143.76a242242ec46a377266.js +0 -28
- package/dist/firefox/panes-3-16-0/assets/chunk.178.b6064b368cf24cc346ec.js +0 -9
- package/dist/firefox/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
- package/dist/firefox/panes-3-16-0/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
- package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Bold.woff +0 -0
- package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Bold.woff2 +0 -0
- package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Regular.woff +0 -0
- package/dist/firefox/panes-3-16-0/assets/fonts/Inter-Regular.woff2 +0 -0
- package/dist/websocket/assets/chunk.143.76a242242ec46a377266.js +0 -28
- package/dist/websocket/assets/chunk.178.b6064b368cf24cc346ec.js +0 -9
- package/dist/websocket/assets/chunk.359.0be5d21f60d2b5d6d423.js +0 -2620
- package/dist/websocket/assets/chunk.359.0be5d21f60d2b5d6d423.js.LICENSE.txt +0 -67
- package/dist/websocket/assets/fonts/Inter-Bold.woff +0 -0
- package/dist/websocket/assets/fonts/Inter-Bold.woff2 +0 -0
- package/dist/websocket/assets/fonts/Inter-Regular.woff +0 -0
- package/dist/websocket/assets/fonts/Inter-Regular.woff2 +0 -0
- package/ember_debug/.eslintrc.js +0 -13
- package/ember_debug/utils/ember/debug.js +0 -20
- package/ember_debug/utils/ember/instrumentation.js +0 -11
- package/ember_debug/utils/ember/loader.js +0 -22
- package/ember_debug/utils/rsvp.js +0 -20
- package/ember_debug/vendor/loader.js +0 -54
- package/ember_debug/vendor/startup-wrapper.js +0 -399
- package/lib/ui/addon/styles/_object-inspector-toggle.scss +0 -12
- package/lib/ui/addon/styles/addon.scss +0 -13
- package/lib/ui/addon/styles/toolbar/_icon-button.scss +0 -61
- package/lib/ui/app/components/ui/disclosure-triangle.js +0 -1
- package/lib/ui/app/components/ui/disclosure.js +0 -1
- package/lib/ui/app/components/ui/drag-handle.js +0 -1
- package/lib/ui/app/components/ui/draggable-column.js +0 -1
- package/lib/ui/app/components/ui/empty-message.js +0 -1
- package/lib/ui/app/components/ui/error-page.js +0 -1
- package/lib/ui/app/components/ui/open-links-in-new-window.js +0 -1
- package/lib/ui/app/components/ui/resizable-column.js +0 -1
- package/lib/ui/app/components/ui/send-to-console.js +0 -1
- package/lib/ui/app/components/ui/toolbar-clear-button.js +0 -1
- package/lib/ui/app/components/ui/toolbar-divider.js +0 -1
- package/lib/ui/app/components/ui/toolbar-reload-button.js +0 -1
- package/lib/ui/app/components/ui/toolbar-search-field.js +0 -1
- package/lib/ui/app/components/ui/warning-message.js +0 -1
- package/lib/ui/index.js +0 -34
- package/lib/ui/package.json +0 -13
- package/public/assets/fonts/Inter-Bold.woff +0 -0
- package/public/assets/fonts/Inter-Bold.woff2 +0 -0
- package/public/assets/fonts/Inter-Regular.woff +0 -0
- package/public/assets/fonts/Inter-Regular.woff2 +0 -0
- package/tests/helpers/trigger-port.js +0 -6
- /package/app/{app.js → app.ts} +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/disclosure-triangle.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/disclosure.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/disclosure.js +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/draggable-column.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/draggable-column.js +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/open-links-in-new-window.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/open-links-in-new-window.js +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/resizable-column.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/send-to-console.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/toolbar-divider.hbs +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/toolbar-search-field.js +0 -0
- /package/{lib/ui/addon/components → app/components/ui}/warning-message.hbs +0 -0
- /package/app/controllers/{info.js → info.ts} +0 -0
- /package/app/services/adapters/{firefox.js → firefox.ts} +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_goto-source.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/_warning.scss +0 -0
- /package/{lib/ui/addon/styles → app/styles/ui}/toolbar/_divider.scss +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint no-empty:0 */
|
|
2
|
-
import DebugPort from './debug-port';
|
|
2
|
+
import DebugPort from './debug-port.js';
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
import { libraries } from './utils/ember';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Class that handles gathering general information of the inspected app.
|
|
@@ -22,7 +22,7 @@ export default class extends DebugPort {
|
|
|
22
22
|
if (found) {
|
|
23
23
|
try {
|
|
24
24
|
return JSON.parse(unescape(found.getAttribute('content')));
|
|
25
|
-
} catch
|
|
25
|
+
} catch {}
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -88,7 +88,7 @@ export default class extends DebugPort {
|
|
|
88
88
|
*/
|
|
89
89
|
getLibraries() {
|
|
90
90
|
this.sendMessage('libraries', {
|
|
91
|
-
libraries:
|
|
91
|
+
libraries: libraries?._registry,
|
|
92
92
|
});
|
|
93
93
|
},
|
|
94
94
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export default function bootEmberInspector(appInstance) {
|
|
2
|
+
appInstance.application.__inspector__booted = true;
|
|
3
|
+
appInstance.__inspector__booted = true;
|
|
4
|
+
|
|
5
|
+
// Boot the inspector (or re-boot if already booted, for example in tests)
|
|
6
|
+
window.EmberInspector._application = appInstance.application;
|
|
7
|
+
window.EmberInspector.owner = appInstance;
|
|
8
|
+
window.EmberInspector.start(true);
|
|
9
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Application, Namespace, guidFor } from '../utils/ember';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Get all the Ember.Application instances from Ember.Namespace.NAMESPACES
|
|
5
|
+
* and add our own applicationId and applicationName to them
|
|
6
|
+
* @return {*}
|
|
7
|
+
*/
|
|
8
|
+
export default function getApplications() {
|
|
9
|
+
var namespaces = Namespace.NAMESPACES;
|
|
10
|
+
|
|
11
|
+
var apps = namespaces.filter(function (namespace) {
|
|
12
|
+
return namespace instanceof Application;
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
return apps.map(function (app) {
|
|
16
|
+
// Add applicationId and applicationName to the app
|
|
17
|
+
var applicationId = guidFor(app);
|
|
18
|
+
var applicationName =
|
|
19
|
+
app.name || app.modulePrefix || `(unknown app - ${applicationId})`;
|
|
20
|
+
|
|
21
|
+
Object.assign(app, {
|
|
22
|
+
applicationId,
|
|
23
|
+
applicationName,
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
return app;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export default function loadEmberDebugInWebpage(callback) {
|
|
2
|
+
const waitForEmberLoad = new Promise((resolve) => {
|
|
3
|
+
if (window.requireModule) {
|
|
4
|
+
const has =
|
|
5
|
+
window.requireModule.has ||
|
|
6
|
+
function has(id) {
|
|
7
|
+
return !!(
|
|
8
|
+
window.requireModule.entries[id] ||
|
|
9
|
+
window.requireModule.entries[id + '/index']
|
|
10
|
+
);
|
|
11
|
+
};
|
|
12
|
+
if (has('ember')) {
|
|
13
|
+
return resolve();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* NOTE: if the above (for some reason) fails and the consuming app has
|
|
19
|
+
* deprecation-workflow's throwOnUnhandled: true
|
|
20
|
+
* or set \`ember-global\`'s handler to 'throw'
|
|
21
|
+
* and is using at least \`ember-source@3.27\`
|
|
22
|
+
*
|
|
23
|
+
* this will throw an exception in the consuming project
|
|
24
|
+
*/
|
|
25
|
+
if (window.Ember) return resolve();
|
|
26
|
+
|
|
27
|
+
if (globalThis.emberInspectorApps) return resolve();
|
|
28
|
+
|
|
29
|
+
window.addEventListener('Ember', resolve, { once: true });
|
|
30
|
+
});
|
|
31
|
+
waitForEmberLoad.then(callback);
|
|
32
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export default function sendApps(adapter, apps) {
|
|
2
|
+
const serializedApps = apps.map((app) => {
|
|
3
|
+
return {
|
|
4
|
+
applicationName: app.applicationName,
|
|
5
|
+
applicationId: app.applicationId,
|
|
6
|
+
};
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
adapter.sendMessage({
|
|
10
|
+
type: 'apps-loaded',
|
|
11
|
+
apps: serializedApps,
|
|
12
|
+
from: 'inspectedWindow',
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
let channel = new MessageChannel();
|
|
2
|
+
let port = channel.port1;
|
|
3
|
+
window.postMessage('debugger-client', '*', [channel.port2]);
|
|
4
|
+
|
|
5
|
+
let registeredMiss = false;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* This function is called if the app's Ember version
|
|
9
|
+
* is not supported by this version of the inspector.
|
|
10
|
+
*
|
|
11
|
+
* It sends a message to the inspector app to redirect
|
|
12
|
+
* to an inspector version that supports this Ember version.
|
|
13
|
+
*/
|
|
14
|
+
export default function sendVersionMiss(VERSION) {
|
|
15
|
+
if (registeredMiss) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
registeredMiss = true;
|
|
20
|
+
|
|
21
|
+
port.addEventListener('message', (message) => {
|
|
22
|
+
if (message.type === 'check-version') {
|
|
23
|
+
sendVersionMismatch();
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
sendVersionMismatch();
|
|
28
|
+
|
|
29
|
+
port.start();
|
|
30
|
+
|
|
31
|
+
function sendVersionMismatch() {
|
|
32
|
+
port.postMessage({
|
|
33
|
+
name: 'version-mismatch',
|
|
34
|
+
version: VERSION,
|
|
35
|
+
from: 'inspectedWindow',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { guidFor } from '../utils/ember';
|
|
2
|
+
|
|
3
|
+
export default function setupInstanceInitializer(app, callback) {
|
|
4
|
+
if (!app.__inspector__setup) {
|
|
5
|
+
app.__inspector__setup = true;
|
|
6
|
+
|
|
7
|
+
// We include the app's guid in the initializer name because in Ember versions < 3
|
|
8
|
+
// registering an instance initializer with the same name, even if on a different app,
|
|
9
|
+
// triggers an error because instance initializers seem to be global instead of per app.
|
|
10
|
+
app.instanceInitializer({
|
|
11
|
+
name: 'ember-inspector-app-instance-booted-' + guidFor(app),
|
|
12
|
+
initialize: function (instance) {
|
|
13
|
+
callback(instance);
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/* eslint-disable ember/no-test-import-export */
|
|
2
|
+
import versionTest from './version-test';
|
|
3
|
+
import { EMBER_VERSIONS_SUPPORTED } from './versions';
|
|
4
|
+
import sendApps from './send-apps';
|
|
5
|
+
import getApplications from './get-applications';
|
|
6
|
+
import bootEmberInspector from './boot-ember-inspector';
|
|
7
|
+
import setupInstanceInitializer from './setup-instance-initializer';
|
|
8
|
+
import sendVersionMiss from './send-version-miss';
|
|
9
|
+
import { guidFor, Application, VERSION } from '../utils/ember';
|
|
10
|
+
|
|
11
|
+
function onReady(callback) {
|
|
12
|
+
if (
|
|
13
|
+
document.readyState === 'complete' ||
|
|
14
|
+
document.readyState === 'interactive'
|
|
15
|
+
) {
|
|
16
|
+
setTimeout(completed);
|
|
17
|
+
} else {
|
|
18
|
+
document.addEventListener('DOMContentLoaded', completed, false);
|
|
19
|
+
// For some reason DOMContentLoaded doesn't always work
|
|
20
|
+
window.addEventListener('load', completed, false);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function completed() {
|
|
24
|
+
document.removeEventListener('DOMContentLoaded', completed, false);
|
|
25
|
+
window.removeEventListener('load', completed, false);
|
|
26
|
+
callback();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function onEmberReady(callback) {
|
|
31
|
+
var triggered = false;
|
|
32
|
+
var triggerOnce = function () {
|
|
33
|
+
if (triggered) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
triggered = true;
|
|
38
|
+
callback();
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// Newest Ember versions >= 1.10
|
|
42
|
+
|
|
43
|
+
const later = () => setTimeout(triggerOnce, 0);
|
|
44
|
+
window.addEventListener('Ember', later, { once: true });
|
|
45
|
+
// Oldest Ember versions or if this was injected after Ember has loaded.
|
|
46
|
+
onReady(triggerOnce);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function startInspector(adapter) {
|
|
50
|
+
// There's probably a better way
|
|
51
|
+
// to determine when the application starts
|
|
52
|
+
// but this definitely works
|
|
53
|
+
function onApplicationStart(callback) {
|
|
54
|
+
const adapterInstance = new adapter();
|
|
55
|
+
|
|
56
|
+
adapterInstance.onMessageReceived(function (message) {
|
|
57
|
+
if (message.type === 'app-picker-loaded') {
|
|
58
|
+
sendApps(adapterInstance, getApplications());
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (message.type === 'app-selected') {
|
|
62
|
+
let current = window.EmberInspector._application;
|
|
63
|
+
let selected = getApplications().find(
|
|
64
|
+
(app) => guidFor(app) === message.applicationId,
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
if (
|
|
68
|
+
selected &&
|
|
69
|
+
current !== selected &&
|
|
70
|
+
selected.__deprecatedInstance__
|
|
71
|
+
) {
|
|
72
|
+
bootEmberInspector(selected.__deprecatedInstance__);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
var apps = getApplications();
|
|
78
|
+
|
|
79
|
+
sendApps(adapterInstance, apps);
|
|
80
|
+
|
|
81
|
+
function loadInstance(app) {
|
|
82
|
+
const applicationInstances = app._applicationInstances && [
|
|
83
|
+
...app._applicationInstances,
|
|
84
|
+
];
|
|
85
|
+
let instance = app.__deprecatedInstance__ || applicationInstances[0];
|
|
86
|
+
if (instance) {
|
|
87
|
+
// App started
|
|
88
|
+
setupInstanceInitializer(app, callback);
|
|
89
|
+
callback(instance);
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
var app;
|
|
95
|
+
for (var i = 0, l = apps.length; i < l; i++) {
|
|
96
|
+
app = apps[i];
|
|
97
|
+
// We check for the existance of an application instance because
|
|
98
|
+
// in Ember > 3 tests don't destroy the app when they're done but the app has no booted instances.
|
|
99
|
+
if (app._readinessDeferrals === 0) {
|
|
100
|
+
if (loadInstance(app)) {
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// app already run initializers, but no instance, use _bootPromise and didBecomeReady
|
|
106
|
+
if (app._bootPromise) {
|
|
107
|
+
app._bootPromise.then((app) => {
|
|
108
|
+
loadInstance(app);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
app.reopen({
|
|
113
|
+
didBecomeReady() {
|
|
114
|
+
this._super.apply(this, arguments);
|
|
115
|
+
setTimeout(() => loadInstance(app), 0);
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
Application.initializer({
|
|
120
|
+
name: 'ember-inspector-booted',
|
|
121
|
+
initialize: function (app) {
|
|
122
|
+
setupInstanceInitializer(app, callback);
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return async function startInspector() {
|
|
128
|
+
// global to prevent injection
|
|
129
|
+
if (window.NO_EMBER_DEBUG) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* If we don't have a way to know the Ember version at this point
|
|
135
|
+
* because the Ember app has not loaded and provided it somehow,
|
|
136
|
+
* we can't continue (we need the version to know what version of
|
|
137
|
+
* the Inspector to load).
|
|
138
|
+
*/
|
|
139
|
+
if (!VERSION) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* This is used to redirect to an old snapshot of the Inspector if the
|
|
145
|
+
* inspected app uses an older Ember version than supported versions.
|
|
146
|
+
* The code fits the Inspector supporting Ember back to 3.16: any version
|
|
147
|
+
* before 3.16 is necessarily a classic Ember app with Ember defined.
|
|
148
|
+
*/
|
|
149
|
+
if ((VERSION, !versionTest(VERSION, EMBER_VERSIONS_SUPPORTED))) {
|
|
150
|
+
// Wrong inspector version. Redirect to the correct version.
|
|
151
|
+
sendVersionMiss(VERSION);
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// prevent from injecting twice
|
|
156
|
+
if (!window.EmberInspector) {
|
|
157
|
+
let emberDebugMainModule = (await import('../main')).default;
|
|
158
|
+
if (!emberDebugMainModule) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
window.EmberInspector = emberDebugMainModule;
|
|
162
|
+
window.EmberInspector.Adapter = adapter;
|
|
163
|
+
|
|
164
|
+
onApplicationStart(function appStarted(instance) {
|
|
165
|
+
let app = instance.application;
|
|
166
|
+
if (!('__inspector__booted' in app)) {
|
|
167
|
+
// Watch for app reset/destroy
|
|
168
|
+
app.reopen({
|
|
169
|
+
reset: function () {
|
|
170
|
+
this.__inspector__booted = false;
|
|
171
|
+
this._super.apply(this, arguments);
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
if (instance && !('__inspector__booted' in instance)) {
|
|
177
|
+
instance.reopen({
|
|
178
|
+
// Clean up on instance destruction
|
|
179
|
+
willDestroy() {
|
|
180
|
+
if (window.EmberInspector.owner === instance) {
|
|
181
|
+
window.EmberInspector.destroyContainer();
|
|
182
|
+
window.EmberInspector.clear();
|
|
183
|
+
}
|
|
184
|
+
return this._super.apply(this, arguments);
|
|
185
|
+
},
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
if (!window.EmberInspector._application) {
|
|
189
|
+
setTimeout(() => bootEmberInspector(instance), 0);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/* eslint-disable ember/no-test-import-export */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @method compare
|
|
5
|
+
* @param {Number} val
|
|
6
|
+
* @param {Number} number
|
|
7
|
+
* @return {Number}
|
|
8
|
+
* 0: same
|
|
9
|
+
* -1: <
|
|
10
|
+
* 1: >
|
|
11
|
+
*/
|
|
12
|
+
function compare(val, number) {
|
|
13
|
+
if (val === number) {
|
|
14
|
+
return 0;
|
|
15
|
+
} else if (val < number) {
|
|
16
|
+
return -1;
|
|
17
|
+
} else if (val > number) {
|
|
18
|
+
return 1;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Remove -alpha, -beta, etc from versions
|
|
24
|
+
*
|
|
25
|
+
* @param {String} version
|
|
26
|
+
* @return {String} The cleaned up version
|
|
27
|
+
*/
|
|
28
|
+
function cleanupVersion(version) {
|
|
29
|
+
return version.replace(/-.*/g, '');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Compares two Ember versions.
|
|
34
|
+
*
|
|
35
|
+
* Returns:
|
|
36
|
+
* `-1` if version1 < version
|
|
37
|
+
* 0 if version1 == version2
|
|
38
|
+
* 1 if version1 > version2
|
|
39
|
+
*
|
|
40
|
+
* @param {String} version1
|
|
41
|
+
* @param {String} version2
|
|
42
|
+
* @return {Boolean} result of the comparison
|
|
43
|
+
*/
|
|
44
|
+
function compareVersion(version1, version2) {
|
|
45
|
+
let compared, i;
|
|
46
|
+
version1 = cleanupVersion(version1).split('.');
|
|
47
|
+
version2 = cleanupVersion(version2).split('.');
|
|
48
|
+
for (i = 0; i < 3; i++) {
|
|
49
|
+
compared = compare(+version1[i], +version2[i]);
|
|
50
|
+
if (compared !== 0) {
|
|
51
|
+
return compared;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Checks if a version is between two different versions.
|
|
59
|
+
* version should be >= left side, < right side
|
|
60
|
+
*
|
|
61
|
+
* @param {String} version1
|
|
62
|
+
* @param {String} version2
|
|
63
|
+
* @return {Boolean}
|
|
64
|
+
*/
|
|
65
|
+
export default function versionTest(version, between) {
|
|
66
|
+
var fromVersion = between[0];
|
|
67
|
+
var toVersion = between[1];
|
|
68
|
+
|
|
69
|
+
if (compareVersion(version, fromVersion) === -1) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
return !toVersion || compareVersion(version, toVersion) === -1;
|
|
73
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { captureRenderTree, getEnv } from '
|
|
1
|
+
import { captureRenderTree, getEnv } from '../utils/ember';
|
|
2
2
|
|
|
3
|
-
/* eslint-disable no-console, no-inner-declarations */
|
|
4
3
|
let capture = captureRenderTree;
|
|
5
4
|
// Ember 3.14+ comes with debug render tree, but the version in 3.14.0/3.14.1 is buggy
|
|
6
5
|
if (captureRenderTree) {
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
and Yapp Labs (@yapplabs).
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import Promise from '
|
|
9
|
-
import RSVP from '
|
|
10
|
-
import BaseObject from '
|
|
11
|
-
import Evented from '
|
|
8
|
+
import Promise from '../models/promise';
|
|
9
|
+
import { RSVP } from '../utils/ember';
|
|
10
|
+
import BaseObject from '../utils/base-object';
|
|
11
|
+
import Evented from '../utils/evented';
|
|
12
12
|
|
|
13
13
|
class PromiseAssembler extends BaseObject {
|
|
14
14
|
// RSVP lib to debug
|
|
@@ -23,6 +23,7 @@ class PromiseAssembler extends BaseObject {
|
|
|
23
23
|
Evented.applyTo(this);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
// eslint-disable-next-line ember/classic-decorator-hooks
|
|
26
27
|
init() {
|
|
27
28
|
super.init();
|
|
28
29
|
this.all = [];
|
|
@@ -1,41 +1,37 @@
|
|
|
1
|
-
import captureRenderTree from './capture-render-tree';
|
|
2
|
-
import { guidFor } from '
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
1
|
+
import captureRenderTree from './capture-render-tree.js';
|
|
2
|
+
import { guidFor } from '../utils/ember/object/internals';
|
|
3
|
+
import { inspect } from '../utils/type-check';
|
|
4
|
+
import { isInVersionSpecifier } from '../utils/version';
|
|
5
|
+
import {
|
|
6
|
+
VERSION,
|
|
7
|
+
EmberDestroyable,
|
|
8
|
+
GlimmerManager,
|
|
9
|
+
GlimmerReference,
|
|
10
|
+
GlimmerRuntime,
|
|
11
|
+
GlimmerUtil,
|
|
12
|
+
} from '../utils/ember';
|
|
7
13
|
|
|
8
14
|
class InElementSupportProvider {
|
|
9
15
|
constructor(owner) {
|
|
10
16
|
this.nodeMap = new Map();
|
|
11
17
|
this.remoteRoots = [];
|
|
12
|
-
this.runtime =
|
|
13
|
-
this.reference =
|
|
14
|
-
try {
|
|
15
|
-
this.Wormhole = requireModule('ember-wormhole/components/ember-wormhole');
|
|
16
|
-
} catch (e) {
|
|
17
|
-
// nope
|
|
18
|
-
}
|
|
18
|
+
this.runtime = GlimmerRuntime;
|
|
19
|
+
this.reference = GlimmerReference;
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
).
|
|
24
|
-
args.modifier || args.delegate;
|
|
25
|
-
} catch (e) {
|
|
26
|
-
// nope
|
|
21
|
+
if (GlimmerManager) {
|
|
22
|
+
GlimmerManager.CustomModifierManager.prototype.getDebugInstance = (
|
|
23
|
+
args,
|
|
24
|
+
) => args.modifier || args.delegate;
|
|
27
25
|
}
|
|
28
26
|
|
|
29
|
-
this.DESTROY =
|
|
30
|
-
this.registerDestructor =
|
|
31
|
-
emberSafeRequire('@glimmer/destroyable')?.registerDestructor ||
|
|
32
|
-
emberSafeRequire('@ember/destroyable')?.registerDestructor ||
|
|
33
|
-
emberSafeRequire('@ember/runtime')?.registerDestructor;
|
|
27
|
+
this.DESTROY = GlimmerUtil?.DESTROY;
|
|
28
|
+
this.registerDestructor = EmberDestroyable?.registerDestructor;
|
|
34
29
|
|
|
35
30
|
this.debugRenderTree =
|
|
36
31
|
owner.lookup('renderer:-dom')?.debugRenderTree ||
|
|
37
32
|
owner.lookup('service:-glimmer-environment')._debugRenderTree;
|
|
38
|
-
this.NewElementBuilder =
|
|
33
|
+
this.NewElementBuilder =
|
|
34
|
+
this.runtime.NewElementBuilder || this.runtime.NewTreeBuilder;
|
|
39
35
|
|
|
40
36
|
this.patch();
|
|
41
37
|
}
|
|
@@ -56,7 +52,7 @@ class InElementSupportProvider {
|
|
|
56
52
|
!isInVersionSpecifier('>5.9.0', VERSION);
|
|
57
53
|
const hasModifierAndInElementSupport = isInVersionSpecifier(
|
|
58
54
|
'>5.9.0',
|
|
59
|
-
VERSION
|
|
55
|
+
VERSION,
|
|
60
56
|
);
|
|
61
57
|
|
|
62
58
|
function createRef(value) {
|
|
@@ -151,7 +147,7 @@ class InElementSupportProvider {
|
|
|
151
147
|
if (!name) {
|
|
152
148
|
try {
|
|
153
149
|
name = modifier.manager?.getDebugName?.();
|
|
154
|
-
} catch
|
|
150
|
+
} catch {
|
|
155
151
|
// failed
|
|
156
152
|
}
|
|
157
153
|
name = name || 'unknown-modifier';
|
|
@@ -175,12 +171,12 @@ class InElementSupportProvider {
|
|
|
175
171
|
if (!self.reference.createUnboundRef) {
|
|
176
172
|
try {
|
|
177
173
|
named = modifierState?.args?.named?.constructor;
|
|
178
|
-
} catch
|
|
174
|
+
} catch {
|
|
179
175
|
//
|
|
180
176
|
}
|
|
181
177
|
try {
|
|
182
178
|
named = named || modifierState?.args?.named?.map;
|
|
183
|
-
} catch
|
|
179
|
+
} catch {
|
|
184
180
|
//
|
|
185
181
|
}
|
|
186
182
|
}
|
|
@@ -213,7 +209,7 @@ class InElementSupportProvider {
|
|
|
213
209
|
NewElementBuilder.prototype.pushRemoteElement = function (
|
|
214
210
|
element,
|
|
215
211
|
guid,
|
|
216
|
-
insertBefore
|
|
212
|
+
insertBefore,
|
|
217
213
|
) {
|
|
218
214
|
const ref = createRef(element);
|
|
219
215
|
const capturedArgs = {
|
|
@@ -285,16 +281,10 @@ class InElementSupportProvider {
|
|
|
285
281
|
Object.assign(this.debugRenderTree, this.debugRenderTreeFunctions);
|
|
286
282
|
Object.assign(
|
|
287
283
|
this.NewElementBuilder.prototype,
|
|
288
|
-
this.NewElementBuilderFunctions
|
|
284
|
+
this.NewElementBuilderFunctions,
|
|
289
285
|
);
|
|
290
286
|
this.NewElementBuilderFunctions = null;
|
|
291
287
|
}
|
|
292
|
-
|
|
293
|
-
require(req) {
|
|
294
|
-
return requireModule.has(req)
|
|
295
|
-
? requireModule(req)
|
|
296
|
-
: EmberLoader.require(req);
|
|
297
|
-
}
|
|
298
288
|
}
|
|
299
289
|
|
|
300
290
|
export default class RenderTree {
|
|
@@ -412,7 +402,7 @@ export default class RenderTree {
|
|
|
412
402
|
|
|
413
403
|
renderNode = this._matchRenderNodes(
|
|
414
404
|
[...hints, ...remoteRoots, ...this.tree],
|
|
415
|
-
node
|
|
405
|
+
node,
|
|
416
406
|
);
|
|
417
407
|
|
|
418
408
|
if (renderNode) {
|
|
@@ -612,9 +602,11 @@ export default class RenderTree {
|
|
|
612
602
|
this.inElementSupport?.remoteRoots.push(node);
|
|
613
603
|
}
|
|
614
604
|
|
|
605
|
+
// EmberWormhole component from ember-wormhole was used to provide
|
|
606
|
+
// rendering into a given DOM element prior to built-in in-element.
|
|
615
607
|
if (
|
|
616
|
-
|
|
617
|
-
|
|
608
|
+
node.template ===
|
|
609
|
+
'ember-wormhole/templates/components/ember-wormhole.hbs'
|
|
618
610
|
) {
|
|
619
611
|
this.inElementSupport?.remoteRoots.push(node);
|
|
620
612
|
const bounds = node.bounds;
|
|
@@ -642,10 +634,11 @@ export default class RenderTree {
|
|
|
642
634
|
node.args.named[attr.nodeName] = attr.nodeValue;
|
|
643
635
|
});
|
|
644
636
|
// move modifiers and components into the element children
|
|
637
|
+
|
|
645
638
|
parentNode.children.forEach((child) => {
|
|
646
639
|
if (
|
|
647
|
-
child.bounds.parentElement
|
|
648
|
-
child.meta?.parentElement
|
|
640
|
+
node.instance.contains(child.bounds.parentElement) ||
|
|
641
|
+
node.instance.contains(child.meta?.parentElement) ||
|
|
649
642
|
(child.type === 'modifier' &&
|
|
650
643
|
child.bounds.firstNode === node.instance)
|
|
651
644
|
) {
|
|
@@ -672,7 +665,7 @@ export default class RenderTree {
|
|
|
672
665
|
}
|
|
673
666
|
node.instance = this._createSimpleInstance(
|
|
674
667
|
'TemplateOnlyComponent',
|
|
675
|
-
node.args.named
|
|
668
|
+
node.args.named,
|
|
676
669
|
);
|
|
677
670
|
}
|
|
678
671
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import BaseObject from '
|
|
2
|
-
import * as SourceMap from '
|
|
1
|
+
import BaseObject from '../utils/base-object';
|
|
2
|
+
import * as SourceMap from 'source-map-js';
|
|
3
3
|
const notFoundError = new Error('Source map url not found');
|
|
4
4
|
|
|
5
5
|
export default class extends BaseObject {
|
|
6
|
+
// eslint-disable-next-line ember/classic-decorator-hooks
|
|
6
7
|
init() {
|
|
7
8
|
super.init();
|
|
8
9
|
this._lastPromise = Promise.resolve(undefined);
|
|
@@ -62,7 +63,7 @@ export default class extends BaseObject {
|
|
|
62
63
|
function () {
|
|
63
64
|
sourceMaps[url] = null;
|
|
64
65
|
},
|
|
65
|
-
'ember-inspector'
|
|
66
|
+
'ember-inspector',
|
|
66
67
|
);
|
|
67
68
|
}
|
|
68
69
|
}
|
|
@@ -81,7 +82,7 @@ function retrieveSourceMap(source) {
|
|
|
81
82
|
return mapURL;
|
|
82
83
|
},
|
|
83
84
|
null,
|
|
84
|
-
'ember-inspector'
|
|
85
|
+
'ember-inspector',
|
|
85
86
|
)
|
|
86
87
|
.then(retrieveFile, null, 'ember-inspector')
|
|
87
88
|
.then(
|
|
@@ -95,7 +96,7 @@ function retrieveSourceMap(source) {
|
|
|
95
96
|
};
|
|
96
97
|
},
|
|
97
98
|
null,
|
|
98
|
-
'ember-inspector'
|
|
99
|
+
'ember-inspector',
|
|
99
100
|
);
|
|
100
101
|
}
|
|
101
102
|
|
|
@@ -142,7 +143,7 @@ function retrieveSourceMapURL(source) {
|
|
|
142
143
|
return url;
|
|
143
144
|
},
|
|
144
145
|
null,
|
|
145
|
-
'ember-inspector'
|
|
146
|
+
'ember-inspector',
|
|
146
147
|
);
|
|
147
148
|
}
|
|
148
149
|
|