ember-inspector 4.13.1-alpha.2024.8.9 → 4.13.1-alpha.2025.10.2
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.25304d5512b5af001d54.js +40 -0
- package/dist/bookmarklet/panes-3-16-0/assets/chunk.582.8b244c3850a8429bac52.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.25304d5512b5af001d54.js +40 -0
- package/dist/chrome/panes-3-16-0/assets/chunk.582.8b244c3850a8429bac52.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.25304d5512b5af001d54.js +40 -0
- package/dist/firefox/panes-3-16-0/assets/chunk.582.8b244c3850a8429bac52.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.25304d5512b5af001d54.js +40 -0
- package/dist/websocket/assets/chunk.582.8b244c3850a8429bac52.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
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
import { EMBER_VERSIONS_SUPPORTED } from './versions.js';
|
|
2
|
+
|
|
3
|
+
function loadEmberDebugInWebpage(callback) {
|
|
4
|
+
const waitForEmberLoad = new Promise(resolve => {
|
|
5
|
+
if (window.requireModule) {
|
|
6
|
+
const has = window.requireModule.has || function has(id) {
|
|
7
|
+
return !!(window.requireModule.entries[id] || window.requireModule.entries[id + '/index']);
|
|
8
|
+
};
|
|
9
|
+
if (has('ember')) {
|
|
10
|
+
return resolve();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* NOTE: if the above (for some reason) fails and the consuming app has
|
|
16
|
+
* deprecation-workflow's throwOnUnhandled: true
|
|
17
|
+
* or set \`ember-global\`'s handler to 'throw'
|
|
18
|
+
* and is using at least \`ember-source@3.27\`
|
|
19
|
+
*
|
|
20
|
+
* this will throw an exception in the consuming project
|
|
21
|
+
*/
|
|
22
|
+
if (window.Ember) return resolve();
|
|
23
|
+
window.addEventListener('Ember', resolve, {
|
|
24
|
+
once: true
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
waitForEmberLoad.then(callback);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* eslint-disable ember/no-test-import-export */
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @method compare
|
|
34
|
+
* @param {Number} val
|
|
35
|
+
* @param {Number} number
|
|
36
|
+
* @return {Number}
|
|
37
|
+
* 0: same
|
|
38
|
+
* -1: <
|
|
39
|
+
* 1: >
|
|
40
|
+
*/
|
|
41
|
+
function compare(val, number) {
|
|
42
|
+
if (val === number) {
|
|
43
|
+
return 0;
|
|
44
|
+
} else if (val < number) {
|
|
45
|
+
return -1;
|
|
46
|
+
} else if (val > number) {
|
|
47
|
+
return 1;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Remove -alpha, -beta, etc from versions
|
|
53
|
+
*
|
|
54
|
+
* @param {String} version
|
|
55
|
+
* @return {String} The cleaned up version
|
|
56
|
+
*/
|
|
57
|
+
function cleanupVersion(version) {
|
|
58
|
+
return version.replace(/-.*/g, '');
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Compares two Ember versions.
|
|
63
|
+
*
|
|
64
|
+
* Returns:
|
|
65
|
+
* `-1` if version1 < version
|
|
66
|
+
* 0 if version1 == version2
|
|
67
|
+
* 1 if version1 > version2
|
|
68
|
+
*
|
|
69
|
+
* @param {String} version1
|
|
70
|
+
* @param {String} version2
|
|
71
|
+
* @return {Boolean} result of the comparison
|
|
72
|
+
*/
|
|
73
|
+
function compareVersion(version1, version2) {
|
|
74
|
+
let compared, i;
|
|
75
|
+
version1 = cleanupVersion(version1).split('.');
|
|
76
|
+
version2 = cleanupVersion(version2).split('.');
|
|
77
|
+
for (i = 0; i < 3; i++) {
|
|
78
|
+
compared = compare(+version1[i], +version2[i]);
|
|
79
|
+
if (compared !== 0) {
|
|
80
|
+
return compared;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return 0;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Checks if a version is between two different versions.
|
|
88
|
+
* version should be >= left side, < right side
|
|
89
|
+
*
|
|
90
|
+
* @param {String} version1
|
|
91
|
+
* @param {String} version2
|
|
92
|
+
* @return {Boolean}
|
|
93
|
+
*/
|
|
94
|
+
function versionTest(version, between) {
|
|
95
|
+
var fromVersion = between[0];
|
|
96
|
+
var toVersion = between[1];
|
|
97
|
+
if (compareVersion(version, fromVersion) === -1) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
return !toVersion || compareVersion(version, toVersion) === -1;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function sendApps(adapter, apps) {
|
|
104
|
+
const serializedApps = apps.map(app => {
|
|
105
|
+
return {
|
|
106
|
+
applicationName: app.applicationName,
|
|
107
|
+
applicationId: app.applicationId
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
adapter.sendMessage({
|
|
111
|
+
type: 'apps-loaded',
|
|
112
|
+
apps: serializedApps,
|
|
113
|
+
from: 'inspectedWindow'
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* eslint-disable ember/new-module-imports */
|
|
118
|
+
/**
|
|
119
|
+
* Get all the Ember.Application instances from Ember.Namespace.NAMESPACES
|
|
120
|
+
* and add our own applicationId and applicationName to them
|
|
121
|
+
* @return {*}
|
|
122
|
+
*/
|
|
123
|
+
function getApplications(Ember) {
|
|
124
|
+
var namespaces = Ember.A(Ember.Namespace.NAMESPACES);
|
|
125
|
+
var apps = namespaces.filter(function (namespace) {
|
|
126
|
+
return namespace instanceof Ember.Application;
|
|
127
|
+
});
|
|
128
|
+
return apps.map(function (app) {
|
|
129
|
+
// Add applicationId and applicationName to the app
|
|
130
|
+
var applicationId = Ember.guidFor(app);
|
|
131
|
+
var applicationName = app.name || app.modulePrefix || `(unknown app - ${applicationId})`;
|
|
132
|
+
Object.assign(app, {
|
|
133
|
+
applicationId,
|
|
134
|
+
applicationName
|
|
135
|
+
});
|
|
136
|
+
return app;
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function bootEmberInspector(appInstance) {
|
|
141
|
+
appInstance.application.__inspector__booted = true;
|
|
142
|
+
appInstance.__inspector__booted = true;
|
|
143
|
+
|
|
144
|
+
// Boot the inspector (or re-boot if already booted, for example in tests)
|
|
145
|
+
window.EmberInspector._application = appInstance.application;
|
|
146
|
+
window.EmberInspector.owner = appInstance;
|
|
147
|
+
window.EmberInspector.start(true);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* eslint-disable ember/new-module-imports */
|
|
151
|
+
function setupInstanceInitializer(Ember, app, callback) {
|
|
152
|
+
if (!app.__inspector__setup) {
|
|
153
|
+
app.__inspector__setup = true;
|
|
154
|
+
|
|
155
|
+
// We include the app's guid in the initializer name because in Ember versions < 3
|
|
156
|
+
// registering an instance initializer with the same name, even if on a different app,
|
|
157
|
+
// triggers an error because instance initializers seem to be global instead of per app.
|
|
158
|
+
app.instanceInitializer({
|
|
159
|
+
name: 'ember-inspector-app-instance-booted-' + Ember.guidFor(app),
|
|
160
|
+
initialize: function (instance) {
|
|
161
|
+
callback(instance);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/* eslint-disable ember/new-module-imports */
|
|
168
|
+
let channel = new MessageChannel();
|
|
169
|
+
let port = channel.port1;
|
|
170
|
+
window.postMessage('debugger-client', '*', [channel.port2]);
|
|
171
|
+
let registeredMiss = false;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* This function is called if the app's Ember version
|
|
175
|
+
* is not supported by this version of the inspector.
|
|
176
|
+
*
|
|
177
|
+
* It sends a message to the inspector app to redirect
|
|
178
|
+
* to an inspector version that supports this Ember version.
|
|
179
|
+
*/
|
|
180
|
+
function sendVersionMiss(Ember) {
|
|
181
|
+
if (registeredMiss) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
registeredMiss = true;
|
|
185
|
+
port.addEventListener('message', message => {
|
|
186
|
+
if (message.type === 'check-version') {
|
|
187
|
+
sendVersionMismatch();
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
sendVersionMismatch();
|
|
191
|
+
port.start();
|
|
192
|
+
function sendVersionMismatch() {
|
|
193
|
+
port.postMessage({
|
|
194
|
+
name: 'version-mismatch',
|
|
195
|
+
version: Ember.VERSION,
|
|
196
|
+
from: 'inspectedWindow'
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/* eslint-disable ember/new-module-imports, ember/no-test-import-export */
|
|
202
|
+
|
|
203
|
+
let Ember;
|
|
204
|
+
function onReady(callback) {
|
|
205
|
+
if (document.readyState === 'complete' || document.readyState === 'interactive') {
|
|
206
|
+
setTimeout(completed);
|
|
207
|
+
} else {
|
|
208
|
+
document.addEventListener('DOMContentLoaded', completed, false);
|
|
209
|
+
// For some reason DOMContentLoaded doesn't always work
|
|
210
|
+
window.addEventListener('load', completed, false);
|
|
211
|
+
}
|
|
212
|
+
function completed() {
|
|
213
|
+
document.removeEventListener('DOMContentLoaded', completed, false);
|
|
214
|
+
window.removeEventListener('load', completed, false);
|
|
215
|
+
callback();
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
function onEmberReady(callback) {
|
|
219
|
+
var triggered = false;
|
|
220
|
+
var triggerOnce = function () {
|
|
221
|
+
if (triggered) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
if (!Ember) {
|
|
225
|
+
try {
|
|
226
|
+
Ember = requireModule('ember/barrel')['default'];
|
|
227
|
+
} catch {
|
|
228
|
+
// noop
|
|
229
|
+
}
|
|
230
|
+
try {
|
|
231
|
+
Ember = Ember || requireModule('ember')['default'];
|
|
232
|
+
} catch {
|
|
233
|
+
Ember = window.Ember;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
if (!Ember) {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
// `Ember.Application` load hook triggers before all of Ember is ready.
|
|
240
|
+
// In this case we ignore and wait for the `Ember` load hook.
|
|
241
|
+
if (!Ember.RSVP) {
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
triggered = true;
|
|
245
|
+
callback();
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
// Newest Ember versions >= 1.10
|
|
249
|
+
|
|
250
|
+
const later = () => setTimeout(triggerOnce, 0);
|
|
251
|
+
window.addEventListener('Ember', later, {
|
|
252
|
+
once: true
|
|
253
|
+
});
|
|
254
|
+
// Oldest Ember versions or if this was injected after Ember has loaded.
|
|
255
|
+
onReady(triggerOnce);
|
|
256
|
+
}
|
|
257
|
+
function startInspector(adapter) {
|
|
258
|
+
// There's probably a better way
|
|
259
|
+
// to determine when the application starts
|
|
260
|
+
// but this definitely works
|
|
261
|
+
function onApplicationStart(callback) {
|
|
262
|
+
if (typeof Ember === 'undefined') {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
const adapterInstance = new adapter();
|
|
266
|
+
adapterInstance.onMessageReceived(function (message) {
|
|
267
|
+
if (message.type === 'app-picker-loaded') {
|
|
268
|
+
sendApps(adapterInstance, getApplications(Ember));
|
|
269
|
+
}
|
|
270
|
+
if (message.type === 'app-selected') {
|
|
271
|
+
let current = window.EmberInspector._application;
|
|
272
|
+
let selected = getApplications(Ember).find(app => Ember.guidFor(app) === message.applicationId);
|
|
273
|
+
if (selected && current !== selected && selected.__deprecatedInstance__) {
|
|
274
|
+
bootEmberInspector(selected.__deprecatedInstance__);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
var apps = getApplications(Ember);
|
|
279
|
+
sendApps(adapterInstance, apps);
|
|
280
|
+
function loadInstance(app) {
|
|
281
|
+
const applicationInstances = app._applicationInstances && [...app._applicationInstances];
|
|
282
|
+
let instance = app.__deprecatedInstance__ || applicationInstances[0];
|
|
283
|
+
if (instance) {
|
|
284
|
+
// App started
|
|
285
|
+
setupInstanceInitializer(Ember, app, callback);
|
|
286
|
+
callback(instance);
|
|
287
|
+
return true;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
var app;
|
|
291
|
+
for (var i = 0, l = apps.length; i < l; i++) {
|
|
292
|
+
app = apps[i];
|
|
293
|
+
// We check for the existance of an application instance because
|
|
294
|
+
// in Ember > 3 tests don't destroy the app when they're done but the app has no booted instances.
|
|
295
|
+
if (app._readinessDeferrals === 0) {
|
|
296
|
+
if (loadInstance(app)) {
|
|
297
|
+
break;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
// app already run initializers, but no instance, use _bootPromise and didBecomeReady
|
|
302
|
+
if (app._bootPromise) {
|
|
303
|
+
app._bootPromise.then(app => {
|
|
304
|
+
loadInstance(app);
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
app.reopen({
|
|
308
|
+
didBecomeReady() {
|
|
309
|
+
this._super.apply(this, arguments);
|
|
310
|
+
setTimeout(() => loadInstance(app), 0);
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
Ember.Application.initializer({
|
|
315
|
+
name: 'ember-inspector-booted',
|
|
316
|
+
initialize: function (app) {
|
|
317
|
+
setupInstanceInitializer(app, callback);
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
return async function startInspector() {
|
|
322
|
+
// global to prevent injection
|
|
323
|
+
if (window.NO_EMBER_DEBUG) {
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
// If Ember doesn't exist, we should stop here to avoid issues with accessing `Ember.VERSION`
|
|
328
|
+
if (!Ember) {
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
if (!versionTest(Ember.VERSION, EMBER_VERSIONS_SUPPORTED)) {
|
|
332
|
+
// Wrong inspector version. Redirect to the correct version.
|
|
333
|
+
sendVersionMiss(Ember);
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
// prevent from injecting twice
|
|
338
|
+
if (!window.EmberInspector) {
|
|
339
|
+
let emberDebugMainModule = (await import('./main.js')).default;
|
|
340
|
+
if (!emberDebugMainModule) {
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
window.EmberInspector = emberDebugMainModule;
|
|
344
|
+
window.EmberInspector.Adapter = adapter;
|
|
345
|
+
onApplicationStart(function appStarted(instance) {
|
|
346
|
+
let app = instance.application;
|
|
347
|
+
if (!('__inspector__booted' in app)) {
|
|
348
|
+
// Watch for app reset/destroy
|
|
349
|
+
app.reopen({
|
|
350
|
+
reset: function () {
|
|
351
|
+
this.__inspector__booted = false;
|
|
352
|
+
this._super.apply(this, arguments);
|
|
353
|
+
}
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
if (instance && !('__inspector__booted' in instance)) {
|
|
357
|
+
instance.reopen({
|
|
358
|
+
// Clean up on instance destruction
|
|
359
|
+
willDestroy() {
|
|
360
|
+
if (window.EmberInspector.owner === instance) {
|
|
361
|
+
window.EmberInspector.destroyContainer();
|
|
362
|
+
window.EmberInspector.clear();
|
|
363
|
+
}
|
|
364
|
+
return this._super.apply(this, arguments);
|
|
365
|
+
}
|
|
366
|
+
});
|
|
367
|
+
if (!window.EmberInspector._application) {
|
|
368
|
+
setTimeout(() => bootEmberInspector(instance), 0);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
export { loadEmberDebugInWebpage as l, onEmberReady as o, startInspector as s };
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { EmberObject, inspect as inspect$1, Debug, meta, ComputedProperty, InternalsMetal } from './ember.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Check if given key on the passed object is a computed property
|
|
5
|
+
* @param object
|
|
6
|
+
* @param key
|
|
7
|
+
* @return {boolean|*}
|
|
8
|
+
*/
|
|
9
|
+
function isComputed(object, key) {
|
|
10
|
+
// Ember > 3.10
|
|
11
|
+
if (Debug.isComputed && Debug.isComputed(object, key)) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
if (meta(object) && meta(object).peekDescriptors(key)) {
|
|
15
|
+
return !!meta(object).peekDescriptors(key)._getter;
|
|
16
|
+
}
|
|
17
|
+
if (getDescriptorFor(object, key) instanceof ComputedProperty) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* This allows us to pass in a COMPUTED_DECORATOR function and get the descriptor for it.
|
|
24
|
+
* It should be implemented Ember side eventually.
|
|
25
|
+
* @param {EmberObject} object The object we are inspecting
|
|
26
|
+
* @param {String} key The key for the property on the object
|
|
27
|
+
*/
|
|
28
|
+
function getDescriptorFor(object, key) {
|
|
29
|
+
if (object[key]?.isDescriptor) {
|
|
30
|
+
return object[key];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// exists longer than ember 3.10
|
|
34
|
+
if (Debug.isComputed) {
|
|
35
|
+
const {
|
|
36
|
+
descriptorForDecorator,
|
|
37
|
+
descriptorForProperty
|
|
38
|
+
} = InternalsMetal || {};
|
|
39
|
+
return descriptorForDecorator?.(object[key]) || descriptorForProperty?.(object, key);
|
|
40
|
+
}
|
|
41
|
+
return object[key];
|
|
42
|
+
}
|
|
43
|
+
function typeOf(obj) {
|
|
44
|
+
return Object.prototype.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
|
|
45
|
+
}
|
|
46
|
+
function inspect(value) {
|
|
47
|
+
if (typeof value === 'function') {
|
|
48
|
+
return `${value.name || 'function'}() { ... }`;
|
|
49
|
+
} else if (value instanceof EmberObject) {
|
|
50
|
+
return value.toString();
|
|
51
|
+
} else if (value instanceof HTMLElement) {
|
|
52
|
+
return `<${value.tagName.toLowerCase()}>`;
|
|
53
|
+
} else if (typeOf(value) === 'array') {
|
|
54
|
+
if (value.length === 0) {
|
|
55
|
+
return '[]';
|
|
56
|
+
} else if (value.length === 1) {
|
|
57
|
+
return `[ ${inspect(value[0])} ]`;
|
|
58
|
+
} else {
|
|
59
|
+
return `[ ${inspect(value[0])}, ... ]`;
|
|
60
|
+
}
|
|
61
|
+
} else if (value instanceof Error) {
|
|
62
|
+
return `Error: ${value.message}`;
|
|
63
|
+
} else if (value === null) {
|
|
64
|
+
return 'null';
|
|
65
|
+
} else if (typeOf(value) === 'date') {
|
|
66
|
+
return value.toString();
|
|
67
|
+
} else if (typeof value === 'object') {
|
|
68
|
+
// `Ember.inspect` is able to handle this use case,
|
|
69
|
+
// but it is very slow as it loops over all props,
|
|
70
|
+
// so summarize to just first 2 props
|
|
71
|
+
// if it defines a toString, we use that instead
|
|
72
|
+
if (typeof value.toString === 'function' && value.toString !== Object.prototype.toString && value.toString !== Function.prototype.toString) {
|
|
73
|
+
try {
|
|
74
|
+
return `<Object:${value.toString()}>`;
|
|
75
|
+
} catch {
|
|
76
|
+
//
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
let ret = [];
|
|
80
|
+
let v;
|
|
81
|
+
let count = 0;
|
|
82
|
+
let broken = false;
|
|
83
|
+
for (let key in value) {
|
|
84
|
+
if (!('hasOwnProperty' in value) || value.hasOwnProperty(key)) {
|
|
85
|
+
if (count++ > 1) {
|
|
86
|
+
broken = true;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
v = value[key];
|
|
90
|
+
if (v === 'toString') {
|
|
91
|
+
continue;
|
|
92
|
+
} // ignore useless items
|
|
93
|
+
if (typeOf(v).includes('function')) {
|
|
94
|
+
v = `function ${v.name}() { ... }`;
|
|
95
|
+
}
|
|
96
|
+
if (typeOf(v) === 'array') {
|
|
97
|
+
v = `[Array : ${v.length}]`;
|
|
98
|
+
}
|
|
99
|
+
if (typeOf(v) === 'object') {
|
|
100
|
+
v = '[Object]';
|
|
101
|
+
}
|
|
102
|
+
// to avoid TypeError: Cannot convert a Symbol value to a string
|
|
103
|
+
if (typeOf(v) === 'symbol') {
|
|
104
|
+
v = v.toString();
|
|
105
|
+
}
|
|
106
|
+
ret.push(`${key}: ${v}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
let suffix = ' }';
|
|
110
|
+
if (broken) {
|
|
111
|
+
suffix = ' ...}';
|
|
112
|
+
}
|
|
113
|
+
return `{ ${ret.join(', ')}${suffix}`;
|
|
114
|
+
} else {
|
|
115
|
+
return inspect$1(value);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export { getDescriptorFor, inspect, isComputed, typeOf };
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compares two Ember versions.
|
|
3
|
+
*
|
|
4
|
+
* Returns:
|
|
5
|
+
* `-1` if version1 < version
|
|
6
|
+
* 0 if version1 == version2
|
|
7
|
+
* 1 if version1 > version2
|
|
8
|
+
*
|
|
9
|
+
* @param {String} version1
|
|
10
|
+
* @param {String} version2
|
|
11
|
+
* @return {Boolean} result of the comparison
|
|
12
|
+
*/
|
|
13
|
+
function compareVersion(version1, version2) {
|
|
14
|
+
let compared, i;
|
|
15
|
+
version1 = cleanupVersion(version1).split('.');
|
|
16
|
+
version2 = cleanupVersion(version2).split('.');
|
|
17
|
+
for (i = 0; i < 3; i++) {
|
|
18
|
+
compared = compare(+version1[i], +version2[i]);
|
|
19
|
+
if (compared !== 0) {
|
|
20
|
+
return compared;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return 0;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* @param specifier e.g. ^5.12.0
|
|
29
|
+
* @param version 5.13
|
|
30
|
+
* @return {boolean}
|
|
31
|
+
*/
|
|
32
|
+
function isInVersionSpecifier(specifier, version) {
|
|
33
|
+
let compared, i, version2;
|
|
34
|
+
let operator = specifier[0];
|
|
35
|
+
if (Number.isNaN(+operator)) {
|
|
36
|
+
specifier = specifier.slice(1);
|
|
37
|
+
}
|
|
38
|
+
specifier = cleanupVersion(specifier).split('.');
|
|
39
|
+
version2 = cleanupVersion(version).split('.');
|
|
40
|
+
if (operator === '~' && specifier[1] !== version2[1]) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
if (operator === '^' && specifier[0] !== version2[0]) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (operator === '>' && specifier[0] > version2[0]) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
for (i = 0; i < 3; i++) {
|
|
50
|
+
compared = compare(+specifier[i], +version2[i]);
|
|
51
|
+
if (compared < 0) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
if (compared > 0) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Remove -alpha, -beta, etc from versions
|
|
63
|
+
*
|
|
64
|
+
* @param {String} version
|
|
65
|
+
* @return {String} The cleaned up version
|
|
66
|
+
*/
|
|
67
|
+
function cleanupVersion(version) {
|
|
68
|
+
return version.replace(/-.*/g, '');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @method compare
|
|
73
|
+
* @param {Number} val
|
|
74
|
+
* @param {Number} number
|
|
75
|
+
* @return {Number}
|
|
76
|
+
* 0: same
|
|
77
|
+
* -1: <
|
|
78
|
+
* 1: >
|
|
79
|
+
*/
|
|
80
|
+
function compare(val, number) {
|
|
81
|
+
if (val === number) {
|
|
82
|
+
return 0;
|
|
83
|
+
} else if (val < number) {
|
|
84
|
+
return -1;
|
|
85
|
+
} else if (val > number) {
|
|
86
|
+
return 1;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export { compareVersion, isInVersionSpecifier };
|