ember-inspector 4.13.1-alpha.2024.8.9 → 4.13.1-alpha.2025.10.1
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/PRIVACY.md +3 -0
- package/README.md +10 -2
- 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 +1 -0
- 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 +2 -2
- 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} +9 -20
- 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 +21 -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.3530526ca8a0822af855.js +40 -0
- package/dist/bookmarklet/panes-3-16-0/assets/chunk.582.0ae94a39ca88591dff80.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 +557 -609
- 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-DfbgtngO.js +144 -0
- package/dist/bookmarklet/panes-3-16-0/basic-debug.js +6 -0
- package/dist/bookmarklet/panes-3-16-0/bookmarklet-debug.js +34 -0
- package/dist/bookmarklet/panes-3-16-0/chrome-debug.js +12 -0
- package/dist/bookmarklet/panes-3-16-0/ember.js +115 -0
- package/dist/bookmarklet/panes-3-16-0/ember_debug.js +24 -11011
- package/dist/bookmarklet/panes-3-16-0/evented-BCTya3yE.js +62 -0
- package/dist/bookmarklet/panes-3-16-0/firefox-debug.js +32 -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/main.js +7663 -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-CF-Qpqgy.js +1138 -0
- package/dist/bookmarklet/panes-3-16-0/start-inspector-BPAW_WLv.js +376 -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-C3pMNVSY.js +144 -0
- package/dist/bookmarklet/panes-3-16-0/websocket-debug.js +60 -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 +3 -3
- 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.3530526ca8a0822af855.js +40 -0
- package/dist/chrome/panes-3-16-0/assets/chunk.582.0ae94a39ca88591dff80.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 +557 -609
- 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-DfbgtngO.js +144 -0
- package/dist/chrome/panes-3-16-0/basic-debug.js +6 -0
- package/dist/chrome/panes-3-16-0/bookmarklet-debug.js +34 -0
- package/dist/chrome/panes-3-16-0/chrome-debug.js +12 -0
- package/dist/chrome/panes-3-16-0/ember.js +115 -0
- package/dist/chrome/panes-3-16-0/ember_debug.js +12 -11021
- package/dist/chrome/panes-3-16-0/evented-BCTya3yE.js +62 -0
- package/dist/chrome/panes-3-16-0/firefox-debug.js +32 -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/main.js +7663 -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-CF-Qpqgy.js +1138 -0
- package/dist/chrome/panes-3-16-0/start-inspector-BPAW_WLv.js +376 -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-C3pMNVSY.js +144 -0
- package/dist/chrome/panes-3-16-0/websocket-debug.js +60 -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 +3 -3
- 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.3530526ca8a0822af855.js +40 -0
- package/dist/firefox/panes-3-16-0/assets/chunk.582.0ae94a39ca88591dff80.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 +557 -609
- 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-DfbgtngO.js +144 -0
- package/dist/firefox/panes-3-16-0/basic-debug.js +6 -0
- package/dist/firefox/panes-3-16-0/bookmarklet-debug.js +34 -0
- package/dist/firefox/panes-3-16-0/chrome-debug.js +12 -0
- package/dist/firefox/panes-3-16-0/ember.js +115 -0
- package/dist/firefox/panes-3-16-0/ember_debug.js +27 -11016
- package/dist/firefox/panes-3-16-0/evented-BCTya3yE.js +62 -0
- package/dist/firefox/panes-3-16-0/firefox-debug.js +32 -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/main.js +7663 -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-CF-Qpqgy.js +1138 -0
- package/dist/firefox/panes-3-16-0/start-inspector-BPAW_WLv.js +376 -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-C3pMNVSY.js +144 -0
- package/dist/firefox/panes-3-16-0/websocket-debug.js +60 -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.3530526ca8a0822af855.js +40 -0
- package/dist/websocket/assets/chunk.582.0ae94a39ca88591dff80.js +42 -0
- package/dist/websocket/assets/ember-inspector.css +997 -156
- package/dist/websocket/assets/ember-inspector.js +557 -609
- 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-DfbgtngO.js +144 -0
- package/dist/websocket/basic-debug.js +6 -0
- package/dist/websocket/bookmarklet-debug.js +34 -0
- package/dist/websocket/chrome-debug.js +12 -0
- package/dist/websocket/ember.js +115 -0
- package/dist/websocket/ember_debug.js +48 -11009
- package/dist/websocket/evented-BCTya3yE.js +62 -0
- package/dist/websocket/firefox-debug.js +32 -0
- package/dist/websocket/index.html +4 -23
- package/dist/websocket/internals-CRmXMEzb.js +12 -0
- package/dist/websocket/main.js +7663 -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-CF-Qpqgy.js +1138 -0
- package/dist/websocket/start-inspector-BPAW_WLv.js +376 -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-C3pMNVSY.js +144 -0
- package/dist/websocket/websocket-debug.js +60 -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 +6 -0
- package/ember_debug/entrypoints/bookmarklet-debug.js +6 -0
- package/ember_debug/entrypoints/chrome-debug.js +6 -0
- package/ember_debug/entrypoints/firefox-debug.js +6 -0
- package/ember_debug/entrypoints/websocket-debug.js +6 -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 +27 -0
- package/ember_debug/lib/load-ember-debug-in-webpage.js +30 -0
- package/ember_debug/lib/send-apps.js +14 -0
- package/ember_debug/lib/send-version-miss.js +39 -0
- package/ember_debug/lib/setup-instance-initializer.js +16 -0
- package/ember_debug/lib/start-inspector.js +211 -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 +71 -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 +7 -8
- package/ember_debug/utils/ember.js +120 -14
- 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/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 -3
- 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 +8 -10
- 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 +4 -4
- package/tests/ember_debug/container-debug-test.js +4 -4
- package/tests/ember_debug/deprecation-debug-test.js +8 -5
- package/tests/ember_debug/ember-debug-test.js +1 -4
- package/tests/ember_debug/object-inspector-test.js +108 -49
- package/tests/ember_debug/profile-manager-test.js +142 -169
- package/tests/ember_debug/profile-node-test.js +4 -4
- package/tests/ember_debug/promise-assembler-test.js +13 -10
- package/tests/ember_debug/promise-debug-test.js +5 -6
- package/tests/ember_debug/route-debug-test.js +8 -7
- package/tests/ember_debug/view-debug-test.js +257 -182
- package/tests/helpers/{index.js → index.ts} +6 -5
- package/tests/helpers/setup-ember-debug-test.js +14 -0
- package/tests/index.html +1 -2
- package/tests/integration/injection-test.js +14 -15
- 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 +22 -0
- package/tsconfig.json +3 -1
- package/types/ember-inspector/index.d.ts +2 -1
- package/types/global.d.ts +1 -7
- package/.editorconfig +0 -19
- package/.ember-cli +0 -15
- package/.eslintignore +0 -33
- package/.eslintrc.js +0 -86
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -30
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.github/dependabot.yml +0 -14
- package/.github/pull_request_template.md +0 -4
- package/.github/workflows/build.yml +0 -339
- package/.github/workflows/plan-release.yml +0 -83
- package/.github/workflows/publish.yml +0 -60
- package/.prettierignore +0 -25
- package/.prettierrc.js +0 -14
- package/.release-plan.json +0 -17
- package/.stylelintrc.js +0 -3
- package/.template-lintrc.js +0 -12
- package/.tool-versions +0 -2
- package/.watchmanconfig +0 -3
- package/app/components/.gitkeep +0 -0
- package/app/components/list-content.js +0 -130
- package/app/controllers/.gitkeep +0 -0
- package/app/controllers/promise-tree.js +0 -130
- package/app/helpers/.gitkeep +0 -0
- package/app/libs/promise-assembler.js +0 -169
- package/app/models/.gitkeep +0 -0
- package/app/routes/.gitkeep +0 -0
- 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.143ca772b0b28102c74a.js +0 -28
- package/dist/bookmarklet/panes-3-16-0/assets/chunk.178.b50e140d1ed8777b583e.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.143ca772b0b28102c74a.js +0 -28
- package/dist/chrome/panes-3-16-0/assets/chunk.178.b50e140d1ed8777b583e.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.143ca772b0b28102c74a.js +0 -28
- package/dist/firefox/panes-3-16-0/assets/chunk.178.b50e140d1ed8777b583e.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.143ca772b0b28102c74a.js +0 -28
- package/dist/websocket/assets/chunk.178.b50e140d1ed8777b583e.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/tests/unit/.gitkeep +0 -0
- /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,9 +1,9 @@
|
|
|
1
|
-
import DebugPort from './debug-port';
|
|
2
|
-
import SourceMap from '
|
|
1
|
+
import DebugPort from './debug-port.js';
|
|
2
|
+
import SourceMap from './libs/source-map';
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import { guidFor } from '
|
|
6
|
-
import { cancel, debounce } from '
|
|
4
|
+
import { Debug } from './utils/ember';
|
|
5
|
+
import { guidFor } from './utils/ember/object/internals';
|
|
6
|
+
import { cancel, debounce } from './utils/ember/runloop';
|
|
7
7
|
|
|
8
8
|
export default class extends DebugPort {
|
|
9
9
|
static {
|
|
@@ -32,7 +32,7 @@ export default class extends DebugPort {
|
|
|
32
32
|
let stack = source.stackStr;
|
|
33
33
|
stack = stack.split('\n');
|
|
34
34
|
stack.unshift(
|
|
35
|
-
`Ember Inspector (Deprecation Trace): ${deprecation.message || ''}
|
|
35
|
+
`Ember Inspector (Deprecation Trace): ${deprecation.message || ''}`,
|
|
36
36
|
);
|
|
37
37
|
this.adapter.log(stack.join('\n'));
|
|
38
38
|
});
|
|
@@ -100,8 +100,8 @@ export default class extends DebugPort {
|
|
|
100
100
|
(item) =>
|
|
101
101
|
item.source &&
|
|
102
102
|
!!item.source.match(
|
|
103
|
-
new RegExp(this.emberCliConfig.modulePrefix)
|
|
104
|
-
)
|
|
103
|
+
new RegExp(this.emberCliConfig.modulePrefix),
|
|
104
|
+
),
|
|
105
105
|
);
|
|
106
106
|
|
|
107
107
|
if (source) {
|
|
@@ -114,7 +114,7 @@ export default class extends DebugPort {
|
|
|
114
114
|
}
|
|
115
115
|
},
|
|
116
116
|
null,
|
|
117
|
-
'ember-inspector'
|
|
117
|
+
'ember-inspector',
|
|
118
118
|
);
|
|
119
119
|
} else {
|
|
120
120
|
return Promise.resolve(null);
|
|
@@ -147,7 +147,7 @@ export default class extends DebugPort {
|
|
|
147
147
|
grouped[id] = obj;
|
|
148
148
|
}
|
|
149
149
|
let found = obj.sources.find(
|
|
150
|
-
(s) => s.stackStr === deprecation.stackStr
|
|
150
|
+
(s) => s.stackStr === deprecation.stackStr,
|
|
151
151
|
);
|
|
152
152
|
if (!found) {
|
|
153
153
|
let stackStr = deprecation.stackStr;
|
|
@@ -159,7 +159,7 @@ export default class extends DebugPort {
|
|
|
159
159
|
}
|
|
160
160
|
},
|
|
161
161
|
null,
|
|
162
|
-
'ember-inspector'
|
|
162
|
+
'ember-inspector',
|
|
163
163
|
);
|
|
164
164
|
}
|
|
165
165
|
return promise.then(() => {
|
|
@@ -168,7 +168,7 @@ export default class extends DebugPort {
|
|
|
168
168
|
deprecations.push(obj);
|
|
169
169
|
}
|
|
170
170
|
}, null);
|
|
171
|
-
})
|
|
171
|
+
}),
|
|
172
172
|
);
|
|
173
173
|
|
|
174
174
|
promises.then(() => {
|
|
@@ -194,7 +194,7 @@ export default class extends DebugPort {
|
|
|
194
194
|
}
|
|
195
195
|
|
|
196
196
|
handleDeprecations() {
|
|
197
|
-
registerDeprecationHandler((message, options, next) => {
|
|
197
|
+
Debug.registerDeprecationHandler((message, options, next) => {
|
|
198
198
|
if (!this.adapter) {
|
|
199
199
|
next(message, options);
|
|
200
200
|
return;
|
|
@@ -253,7 +253,7 @@ export default class extends DebugPort {
|
|
|
253
253
|
}
|
|
254
254
|
if (!this._warned) {
|
|
255
255
|
this.adapter.warn(
|
|
256
|
-
'Deprecations were detected, see the Ember Inspector deprecations tab for more details.'
|
|
256
|
+
'Deprecations were detected, see the Ember Inspector deprecations tab for more details.',
|
|
257
257
|
);
|
|
258
258
|
this._warned = true;
|
|
259
259
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import loadEmberDebugInWebpage from '../lib/load-ember-debug-in-webpage';
|
|
2
|
+
import { onEmberReady, startInspector } from '../lib/start-inspector';
|
|
3
|
+
|
|
4
|
+
import adapter from '../adapters/bookmarklet';
|
|
5
|
+
|
|
6
|
+
loadEmberDebugInWebpage(() => onEmberReady(startInspector(adapter)));
|
|
@@ -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,27 @@
|
|
|
1
|
+
/* eslint-disable ember/new-module-imports */
|
|
2
|
+
/**
|
|
3
|
+
* Get all the Ember.Application instances from Ember.Namespace.NAMESPACES
|
|
4
|
+
* and add our own applicationId and applicationName to them
|
|
5
|
+
* @return {*}
|
|
6
|
+
*/
|
|
7
|
+
export default function getApplications(Ember) {
|
|
8
|
+
var namespaces = Ember.A(Ember.Namespace.NAMESPACES);
|
|
9
|
+
|
|
10
|
+
var apps = namespaces.filter(function (namespace) {
|
|
11
|
+
return namespace instanceof Ember.Application;
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
return apps.map(function (app) {
|
|
15
|
+
// Add applicationId and applicationName to the app
|
|
16
|
+
var applicationId = Ember.guidFor(app);
|
|
17
|
+
var applicationName =
|
|
18
|
+
app.name || app.modulePrefix || `(unknown app - ${applicationId})`;
|
|
19
|
+
|
|
20
|
+
Object.assign(app, {
|
|
21
|
+
applicationId,
|
|
22
|
+
applicationName,
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
return app;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
window.addEventListener('Ember', resolve, { once: true });
|
|
28
|
+
});
|
|
29
|
+
waitForEmberLoad.then(callback);
|
|
30
|
+
}
|
|
@@ -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,39 @@
|
|
|
1
|
+
/* eslint-disable ember/new-module-imports */
|
|
2
|
+
let channel = new MessageChannel();
|
|
3
|
+
let port = channel.port1;
|
|
4
|
+
window.postMessage('debugger-client', '*', [channel.port2]);
|
|
5
|
+
|
|
6
|
+
let registeredMiss = false;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* This function is called if the app's Ember version
|
|
10
|
+
* is not supported by this version of the inspector.
|
|
11
|
+
*
|
|
12
|
+
* It sends a message to the inspector app to redirect
|
|
13
|
+
* to an inspector version that supports this Ember version.
|
|
14
|
+
*/
|
|
15
|
+
export default function sendVersionMiss(Ember) {
|
|
16
|
+
if (registeredMiss) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
registeredMiss = true;
|
|
21
|
+
|
|
22
|
+
port.addEventListener('message', (message) => {
|
|
23
|
+
if (message.type === 'check-version') {
|
|
24
|
+
sendVersionMismatch();
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
sendVersionMismatch();
|
|
29
|
+
|
|
30
|
+
port.start();
|
|
31
|
+
|
|
32
|
+
function sendVersionMismatch() {
|
|
33
|
+
port.postMessage({
|
|
34
|
+
name: 'version-mismatch',
|
|
35
|
+
version: Ember.VERSION,
|
|
36
|
+
from: 'inspectedWindow',
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* eslint-disable ember/new-module-imports */
|
|
2
|
+
export default function setupInstanceInitializer(Ember, app, callback) {
|
|
3
|
+
if (!app.__inspector__setup) {
|
|
4
|
+
app.__inspector__setup = true;
|
|
5
|
+
|
|
6
|
+
// We include the app's guid in the initializer name because in Ember versions < 3
|
|
7
|
+
// registering an instance initializer with the same name, even if on a different app,
|
|
8
|
+
// triggers an error because instance initializers seem to be global instead of per app.
|
|
9
|
+
app.instanceInitializer({
|
|
10
|
+
name: 'ember-inspector-app-instance-booted-' + Ember.guidFor(app),
|
|
11
|
+
initialize: function (instance) {
|
|
12
|
+
callback(instance);
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/* eslint-disable ember/new-module-imports, ember/no-test-import-export */
|
|
2
|
+
|
|
3
|
+
import versionTest from './version-test';
|
|
4
|
+
import { EMBER_VERSIONS_SUPPORTED } from './versions';
|
|
5
|
+
import sendApps from './send-apps';
|
|
6
|
+
import getApplications from './get-applications';
|
|
7
|
+
import bootEmberInspector from './boot-ember-inspector';
|
|
8
|
+
import setupInstanceInitializer from './setup-instance-initializer';
|
|
9
|
+
import sendVersionMiss from './send-version-miss';
|
|
10
|
+
|
|
11
|
+
let Ember;
|
|
12
|
+
|
|
13
|
+
function onReady(callback) {
|
|
14
|
+
if (
|
|
15
|
+
document.readyState === 'complete' ||
|
|
16
|
+
document.readyState === 'interactive'
|
|
17
|
+
) {
|
|
18
|
+
setTimeout(completed);
|
|
19
|
+
} else {
|
|
20
|
+
document.addEventListener('DOMContentLoaded', completed, false);
|
|
21
|
+
// For some reason DOMContentLoaded doesn't always work
|
|
22
|
+
window.addEventListener('load', completed, false);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function completed() {
|
|
26
|
+
document.removeEventListener('DOMContentLoaded', completed, false);
|
|
27
|
+
window.removeEventListener('load', completed, false);
|
|
28
|
+
callback();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function onEmberReady(callback) {
|
|
33
|
+
var triggered = false;
|
|
34
|
+
var triggerOnce = function () {
|
|
35
|
+
if (triggered) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (!Ember) {
|
|
40
|
+
try {
|
|
41
|
+
Ember = requireModule('ember/barrel')['default'];
|
|
42
|
+
} catch {
|
|
43
|
+
// noop
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
Ember = Ember || requireModule('ember')['default'];
|
|
47
|
+
} catch {
|
|
48
|
+
Ember = window.Ember;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (!Ember) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
// `Ember.Application` load hook triggers before all of Ember is ready.
|
|
56
|
+
// In this case we ignore and wait for the `Ember` load hook.
|
|
57
|
+
if (!Ember.RSVP) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
triggered = true;
|
|
61
|
+
callback();
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// Newest Ember versions >= 1.10
|
|
65
|
+
|
|
66
|
+
const later = () => setTimeout(triggerOnce, 0);
|
|
67
|
+
window.addEventListener('Ember', later, { once: true });
|
|
68
|
+
// Oldest Ember versions or if this was injected after Ember has loaded.
|
|
69
|
+
onReady(triggerOnce);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export function startInspector(adapter) {
|
|
73
|
+
// There's probably a better way
|
|
74
|
+
// to determine when the application starts
|
|
75
|
+
// but this definitely works
|
|
76
|
+
function onApplicationStart(callback) {
|
|
77
|
+
if (typeof Ember === 'undefined') {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const adapterInstance = new adapter();
|
|
82
|
+
|
|
83
|
+
adapterInstance.onMessageReceived(function (message) {
|
|
84
|
+
if (message.type === 'app-picker-loaded') {
|
|
85
|
+
sendApps(adapterInstance, getApplications(Ember));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (message.type === 'app-selected') {
|
|
89
|
+
let current = window.EmberInspector._application;
|
|
90
|
+
let selected = getApplications(Ember).find(
|
|
91
|
+
(app) => Ember.guidFor(app) === message.applicationId,
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
if (
|
|
95
|
+
selected &&
|
|
96
|
+
current !== selected &&
|
|
97
|
+
selected.__deprecatedInstance__
|
|
98
|
+
) {
|
|
99
|
+
bootEmberInspector(selected.__deprecatedInstance__);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
var apps = getApplications(Ember);
|
|
105
|
+
|
|
106
|
+
sendApps(adapterInstance, apps);
|
|
107
|
+
|
|
108
|
+
function loadInstance(app) {
|
|
109
|
+
const applicationInstances = app._applicationInstances && [
|
|
110
|
+
...app._applicationInstances,
|
|
111
|
+
];
|
|
112
|
+
let instance = app.__deprecatedInstance__ || applicationInstances[0];
|
|
113
|
+
if (instance) {
|
|
114
|
+
// App started
|
|
115
|
+
setupInstanceInitializer(Ember, app, callback);
|
|
116
|
+
callback(instance);
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
var app;
|
|
122
|
+
for (var i = 0, l = apps.length; i < l; i++) {
|
|
123
|
+
app = apps[i];
|
|
124
|
+
// We check for the existance of an application instance because
|
|
125
|
+
// in Ember > 3 tests don't destroy the app when they're done but the app has no booted instances.
|
|
126
|
+
if (app._readinessDeferrals === 0) {
|
|
127
|
+
if (loadInstance(app)) {
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// app already run initializers, but no instance, use _bootPromise and didBecomeReady
|
|
133
|
+
if (app._bootPromise) {
|
|
134
|
+
app._bootPromise.then((app) => {
|
|
135
|
+
loadInstance(app);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
app.reopen({
|
|
140
|
+
didBecomeReady() {
|
|
141
|
+
this._super.apply(this, arguments);
|
|
142
|
+
setTimeout(() => loadInstance(app), 0);
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
Ember.Application.initializer({
|
|
147
|
+
name: 'ember-inspector-booted',
|
|
148
|
+
initialize: function (app) {
|
|
149
|
+
setupInstanceInitializer(app, callback);
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return async function startInspector() {
|
|
155
|
+
// global to prevent injection
|
|
156
|
+
if (window.NO_EMBER_DEBUG) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// If Ember doesn't exist, we should stop here to avoid issues with accessing `Ember.VERSION`
|
|
161
|
+
if (!Ember) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
if (!versionTest(Ember.VERSION, EMBER_VERSIONS_SUPPORTED)) {
|
|
166
|
+
// Wrong inspector version. Redirect to the correct version.
|
|
167
|
+
sendVersionMiss(Ember);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// prevent from injecting twice
|
|
172
|
+
if (!window.EmberInspector) {
|
|
173
|
+
let emberDebugMainModule = (await import('../main')).default;
|
|
174
|
+
if (!emberDebugMainModule) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
window.EmberInspector = emberDebugMainModule;
|
|
178
|
+
window.EmberInspector.Adapter = adapter;
|
|
179
|
+
|
|
180
|
+
onApplicationStart(function appStarted(instance) {
|
|
181
|
+
let app = instance.application;
|
|
182
|
+
if (!('__inspector__booted' in app)) {
|
|
183
|
+
// Watch for app reset/destroy
|
|
184
|
+
app.reopen({
|
|
185
|
+
reset: function () {
|
|
186
|
+
this.__inspector__booted = false;
|
|
187
|
+
this._super.apply(this, arguments);
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
if (instance && !('__inspector__booted' in instance)) {
|
|
193
|
+
instance.reopen({
|
|
194
|
+
// Clean up on instance destruction
|
|
195
|
+
willDestroy() {
|
|
196
|
+
if (window.EmberInspector.owner === instance) {
|
|
197
|
+
window.EmberInspector.destroyContainer();
|
|
198
|
+
window.EmberInspector.clear();
|
|
199
|
+
}
|
|
200
|
+
return this._super.apply(this, arguments);
|
|
201
|
+
},
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
if (!window.EmberInspector._application) {
|
|
205
|
+
setTimeout(() => bootEmberInspector(instance), 0);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
}
|
|
@@ -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 = [];
|