ember-inspector 4.13.1-alpha.2025.6.9 → 4.13.1-alpha.2025.7.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.
Files changed (70) hide show
  1. package/app/components/component-tree-item.hbs +1 -1
  2. package/app/components/component-tree-toolbar.hbs +14 -0
  3. package/app/controllers/component-tree.js +18 -0
  4. package/app/routes/whats-new.js +1 -1
  5. package/app/services/adapters/web-extension.ts +3 -0
  6. package/app/templates/component-tree.hbs +3 -0
  7. package/dist/bookmarklet/panes-3-16-0/assets/{chunk.524.d19cdd28d1fc1598d913.js → chunk.524.13916f328fdeb048a99e.js} +4 -4
  8. package/dist/{firefox/panes-3-16-0/assets/chunk.582.42737d6df85c0c3f7bb4.js → bookmarklet/panes-3-16-0/assets/chunk.582.c47e2e51db3c6c902ab5.js} +5 -5
  9. package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.js +16 -16
  10. package/dist/bookmarklet/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
  11. package/dist/bookmarklet/panes-3-16-0/assets/vendor.js +12 -10
  12. package/dist/bookmarklet/panes-3-16-0/ember_debug.js +9074 -9419
  13. package/dist/bookmarklet/panes-3-16-0/index.html +2 -2
  14. package/dist/chrome/manifest.json +2 -2
  15. package/dist/{firefox/panes-3-16-0/assets/chunk.524.d19cdd28d1fc1598d913.js → chrome/panes-3-16-0/assets/chunk.524.13916f328fdeb048a99e.js} +4 -4
  16. package/dist/{bookmarklet/panes-3-16-0/assets/chunk.582.42737d6df85c0c3f7bb4.js → chrome/panes-3-16-0/assets/chunk.582.c47e2e51db3c6c902ab5.js} +5 -5
  17. package/dist/chrome/panes-3-16-0/assets/ember-inspector.js +16 -16
  18. package/dist/chrome/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
  19. package/dist/chrome/panes-3-16-0/assets/vendor.js +12 -10
  20. package/dist/chrome/panes-3-16-0/ember_debug.js +9074 -9419
  21. package/dist/chrome/panes-3-16-0/index.html +2 -2
  22. package/dist/firefox/manifest.json +2 -2
  23. package/dist/{chrome/panes-3-16-0/assets/chunk.524.d19cdd28d1fc1598d913.js → firefox/panes-3-16-0/assets/chunk.524.13916f328fdeb048a99e.js} +4 -4
  24. package/dist/{websocket/assets/chunk.582.42737d6df85c0c3f7bb4.js → firefox/panes-3-16-0/assets/chunk.582.c47e2e51db3c6c902ab5.js} +5 -5
  25. package/dist/firefox/panes-3-16-0/assets/ember-inspector.js +16 -16
  26. package/dist/firefox/panes-3-16-0/assets/svg/focus-point-round.svg +9 -0
  27. package/dist/firefox/panes-3-16-0/assets/vendor.js +12 -10
  28. package/dist/firefox/panes-3-16-0/ember_debug.js +9074 -9419
  29. package/dist/firefox/panes-3-16-0/index.html +2 -2
  30. package/dist/websocket/assets/{chunk.524.d19cdd28d1fc1598d913.js → chunk.524.13916f328fdeb048a99e.js} +4 -4
  31. package/dist/{chrome/panes-3-16-0/assets/chunk.582.42737d6df85c0c3f7bb4.js → websocket/assets/chunk.582.c47e2e51db3c6c902ab5.js} +5 -5
  32. package/dist/websocket/assets/ember-inspector.js +16 -16
  33. package/dist/websocket/assets/svg/focus-point-round.svg +9 -0
  34. package/dist/websocket/assets/vendor.js +12 -10
  35. package/dist/websocket/ember_debug.js +9074 -9419
  36. package/dist/websocket/index.html +2 -2
  37. package/ember-cli-build.js +1 -47
  38. package/ember_debug/babel.config.cjs +11 -0
  39. package/ember_debug/libs/render-tree.js +23 -31
  40. package/ember_debug/libs/source-map.js +1 -1
  41. package/ember_debug/libs/view-inspection.js +10 -2
  42. package/ember_debug/object-inspector.js +19 -42
  43. package/ember_debug/package.json +25 -0
  44. package/ember_debug/rollup.config.js +48 -0
  45. package/ember_debug/utils/ember/debug.js +5 -6
  46. package/ember_debug/utils/ember/instrumentation.js +4 -4
  47. package/ember_debug/utils/ember/object/internals.js +5 -10
  48. package/ember_debug/utils/ember/own-runloop.js +1 -1
  49. package/ember_debug/utils/ember/runloop.js +9 -9
  50. package/ember_debug/utils/ember-object-names.js +4 -5
  51. package/ember_debug/utils/ember.js +73 -27
  52. package/ember_debug/utils/rsvp.js +7 -14
  53. package/ember_debug/utils/type-check.js +2 -2
  54. package/ember_debug/vendor/startup-wrapper.js +4 -4
  55. package/ember_debug/view-debug.js +5 -0
  56. package/eslint.config.mjs +1 -0
  57. package/package.json +11 -5
  58. package/pnpm-workspace.yaml +3 -0
  59. package/public/assets/svg/focus-point-round.svg +9 -0
  60. package/skeletons/web-extension/manifest.json +2 -2
  61. package/tests/acceptance/component-tree-test.js +53 -0
  62. package/tests/acceptance/whats-new-test.js +1 -1
  63. package/tests/ember_debug/object-inspector-test.js +10 -5
  64. package/tests/ember_debug/profile-manager-test.js +2 -2
  65. package/tests/ember_debug/profile-node-test.js +1 -1
  66. package/tests/ember_debug/promise-assembler-test.js +1 -1
  67. package/tests/ember_debug/view-debug-test.js +80 -3
  68. package/tests/integration/injection-test.js +1 -1
  69. package/tests/unit/utils/type-check-test.js +1 -1
  70. package/ember_debug/utils/ember/loader.js +0 -22
@@ -8,7 +8,7 @@
8
8
  <meta name="description" content="">
9
9
  <meta name="viewport" content="width=device-width, initial-scale=1">
10
10
 
11
- <meta name="ember-inspector/config/environment" content="%7B%22modulePrefix%22%3A%22ember-inspector%22%2C%22environment%22%3A%22production%22%2C%22rootURL%22%3A%22%22%2C%22locationType%22%3A%22hash%22%2C%22version%22%3A%224.13.1-alpha.2025.6.9%2Bf3062c3%22%2C%22emberVersionsSupported%22%3A%5B%223.16.0%22%2C%22%22%5D%2C%22previousEmberVersionsSupported%22%3A%5B%220.0.0%22%2C%222.7.0%22%2C%223.4.0%22%5D%2C%22EmberENV%22%3A%7B%22EXTEND_PROTOTYPES%22%3Afalse%2C%22FEATURES%22%3A%7B%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_DEFAULT_ASYNC_OBSERVERS%22%3Atrue%2C%22_JQUERY_INTEGRATION%22%3Afalse%2C%22_NO_IMPLICIT_ROUTE_MODEL%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22name%22%3A%22ember-inspector%22%2C%22version%22%3A%224.13.1-alpha.2025.6.9%2Bf3062c3%2Bf3062c3c%22%7D%7D" />
11
+ <meta name="ember-inspector/config/environment" content="%7B%22modulePrefix%22%3A%22ember-inspector%22%2C%22environment%22%3A%22production%22%2C%22rootURL%22%3A%22%22%2C%22locationType%22%3A%22hash%22%2C%22version%22%3A%224.13.1-alpha.2025.7.2%2Be8dd6fa%22%2C%22emberVersionsSupported%22%3A%5B%223.16.0%22%2C%22%22%5D%2C%22previousEmberVersionsSupported%22%3A%5B%220.0.0%22%2C%222.7.0%22%2C%223.4.0%22%5D%2C%22EmberENV%22%3A%7B%22EXTEND_PROTOTYPES%22%3Afalse%2C%22FEATURES%22%3A%7B%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_DEFAULT_ASYNC_OBSERVERS%22%3Atrue%2C%22_JQUERY_INTEGRATION%22%3Afalse%2C%22_NO_IMPLICIT_ROUTE_MODEL%22%3Atrue%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22name%22%3A%22ember-inspector%22%2C%22version%22%3A%224.13.1-alpha.2025.7.2%2Be8dd6fa%2Be8dd6fa0%22%7D%7D" />
12
12
 
13
13
  <style type="text/css">
14
14
  @font-face {
@@ -38,7 +38,7 @@
38
38
 
39
39
  <script src="assets/vendor.js"></script>
40
40
  <script src="assets/chunk.443.86a005e528b587663b78.js"></script>
41
- <script src="assets/chunk.524.d19cdd28d1fc1598d913.js"></script>
41
+ <script src="assets/chunk.524.13916f328fdeb048a99e.js"></script>
42
42
  <script src="assets/ember-inspector.js"></script>
43
43
 
44
44
 
@@ -7,13 +7,7 @@ const concatFiles = require('broccoli-concat');
7
7
  const stew = require('broccoli-stew');
8
8
  const writeFile = require('broccoli-file-creator');
9
9
  const replace = require('broccoli-string-replace');
10
- const Babel = require('broccoli-babel-transpiler');
11
- const moduleResolver = require('amd-name-resolver').resolveModules({
12
- throwOnRootAccess: false,
13
- });
14
10
  const Funnel = require('broccoli-funnel');
15
- const ensurePosix = require('ensure-posix-path');
16
- const path = require('path');
17
11
  const packageJson = require('./package.json');
18
12
  const { map, mv } = stew;
19
13
 
@@ -33,16 +27,6 @@ const options = {
33
27
  options.minifyJS = { enabled: false };
34
28
  options.minifyCSS = { enabled: false };
35
29
 
36
- // Stolen from relative-module-paths.js in ember-cli-babel
37
- function getRelativeModulePath(modulePath) {
38
- return ensurePosix(path.relative(process.cwd(), modulePath));
39
- }
40
-
41
- // Stolen from relative-module-paths.js in ember-cli-babel
42
- function resolveRelativeModulePath(name, child) {
43
- return moduleResolver(name, getRelativeModulePath(child));
44
- }
45
-
46
30
  module.exports = function (defaults) {
47
31
  let checker = new VersionChecker(defaults);
48
32
  let emberChecker = checker.for('ember-source');
@@ -100,41 +84,11 @@ module.exports = function (defaults) {
100
84
  app.import('node_modules/compare-versions/index.js');
101
85
  app.import('node_modules/normalize.css/normalize.css');
102
86
 
103
- // Ember Debug
104
-
105
- let emberDebug = 'ember_debug';
106
-
107
- let sourceMap = new Funnel('node_modules/source-map-js', {
108
- files: ['**/*.js'],
109
- destDir: 'ember-debug/deps',
110
- });
111
-
112
- sourceMap = new Babel(sourceMap, {
113
- plugins: ['transform-commonjs'],
114
- });
115
-
116
- const backburner = new Funnel('node_modules/backburner.js/dist/es6', {
117
- files: ['backburner.js'],
118
- destDir: 'ember-debug/deps',
119
- });
87
+ let emberDebug = 'ember_debug/dist';
120
88
 
121
89
  emberDebug = new Funnel(emberDebug, {
122
90
  destDir: 'ember-debug',
123
91
  include: ['**/*.js'],
124
- exclude: ['vendor/startup-wrapper.js', 'vendor/loader.js'],
125
- });
126
-
127
- emberDebug = mergeTrees([sourceMap, backburner, emberDebug]);
128
-
129
- emberDebug = new Babel(emberDebug, {
130
- moduleIds: true,
131
- getModuleId: getRelativeModulePath,
132
- plugins: [
133
- ['@babel/plugin-transform-class-properties'],
134
- ['@babel/plugin-transform-class-static-block'],
135
- ['module-resolver', { resolvePath: resolveRelativeModulePath }],
136
- ['@babel/plugin-transform-modules-amd', { noInterop: true }],
137
- ],
138
92
  });
139
93
 
140
94
  const previousEmberVersionsSupportedString = `[${packageJson.previousEmberVersionsSupported
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ plugins: [
3
+ ['@babel/plugin-proposal-decorators', { version: 'legacy' }],
4
+ ['@babel/plugin-transform-class-properties'],
5
+ ['@babel/plugin-transform-class-static-block'],
6
+ ],
7
+
8
+ generatorOpts: {
9
+ compact: false,
10
+ },
11
+ };
@@ -1,36 +1,31 @@
1
1
  import captureRenderTree from './capture-render-tree';
2
2
  import { guidFor } from 'ember-debug/utils/ember/object/internals';
3
- import { EmberLoader, emberSafeRequire } from 'ember-debug/utils/ember/loader';
4
3
  import { inspect } from 'ember-debug/utils/type-check';
5
4
  import { isInVersionSpecifier } from 'ember-debug/utils/version';
6
- import { VERSION } from 'ember-debug/utils/ember';
5
+ import {
6
+ VERSION,
7
+ EmberDestroyable,
8
+ GlimmerManager,
9
+ GlimmerReference,
10
+ GlimmerRuntime,
11
+ GlimmerUtil,
12
+ } from 'ember-debug/utils/ember';
7
13
 
8
14
  class InElementSupportProvider {
9
15
  constructor(owner) {
10
16
  this.nodeMap = new Map();
11
17
  this.remoteRoots = [];
12
- this.runtime = this.require('@glimmer/runtime');
13
- this.reference = this.require('@glimmer/reference');
14
- try {
15
- this.Wormhole = requireModule('ember-wormhole/components/ember-wormhole');
16
- } catch {
17
- // nope
18
- }
18
+ this.runtime = GlimmerRuntime;
19
+ this.reference = GlimmerReference;
19
20
 
20
- try {
21
- requireModule(
22
- '@glimmer/manager',
23
- ).CustomModifierManager.prototype.getDebugInstance = (args) =>
24
- args.modifier || args.delegate;
25
- } catch {
26
- // nope
21
+ if (GlimmerManager) {
22
+ GlimmerManager.CustomModifierManager.prototype.getDebugInstance = (
23
+ args,
24
+ ) => args.modifier || args.delegate;
27
25
  }
28
26
 
29
- this.DESTROY = emberSafeRequire('@glimmer/util')?.DESTROY;
30
- this.registerDestructor =
31
- emberSafeRequire('@glimmer/destroyable')?.registerDestructor ||
32
- emberSafeRequire('@ember/destroyable')?.registerDestructor ||
33
- emberSafeRequire('@ember/runtime')?.registerDestructor;
27
+ this.DESTROY = GlimmerUtil?.DESTROY;
28
+ this.registerDestructor = EmberDestroyable?.registerDestructor;
34
29
 
35
30
  this.debugRenderTree =
36
31
  owner.lookup('renderer:-dom')?.debugRenderTree ||
@@ -290,12 +285,6 @@ class InElementSupportProvider {
290
285
  );
291
286
  this.NewElementBuilderFunctions = null;
292
287
  }
293
-
294
- require(req) {
295
- return requireModule.has(req)
296
- ? requireModule(req)
297
- : EmberLoader.require(req);
298
- }
299
288
  }
300
289
 
301
290
  export default class RenderTree {
@@ -613,9 +602,11 @@ export default class RenderTree {
613
602
  this.inElementSupport?.remoteRoots.push(node);
614
603
  }
615
604
 
605
+ // EmberWormhole component from ember-wormhole was used to provide
606
+ // rendering into a given DOM element prior to built-in in-element.
616
607
  if (
617
- this.inElementSupport?.Wormhole &&
618
- node.instance instanceof this.inElementSupport.Wormhole.default
608
+ node.template ===
609
+ 'ember-wormhole/templates/components/ember-wormhole.hbs'
619
610
  ) {
620
611
  this.inElementSupport?.remoteRoots.push(node);
621
612
  const bounds = node.bounds;
@@ -643,10 +634,11 @@ export default class RenderTree {
643
634
  node.args.named[attr.nodeName] = attr.nodeValue;
644
635
  });
645
636
  // move modifiers and components into the element children
637
+
646
638
  parentNode.children.forEach((child) => {
647
639
  if (
648
- child.bounds.parentElement === node.instance ||
649
- child.meta?.parentElement === node.instance ||
640
+ node.instance.contains(child.bounds.parentElement) ||
641
+ node.instance.contains(child.meta?.parentElement) ||
650
642
  (child.type === 'modifier' &&
651
643
  child.bounds.firstNode === node.instance)
652
644
  ) {
@@ -1,5 +1,5 @@
1
1
  import BaseObject from 'ember-debug/utils/base-object';
2
- import * as SourceMap from 'ember-debug/deps/source-map';
2
+ import * as SourceMap from 'source-map-js';
3
3
  const notFoundError = new Error('Source map url not found');
4
4
 
5
5
  export default class extends BaseObject {
@@ -317,7 +317,11 @@ export default class ViewInspection {
317
317
  onMouseMove(event) {
318
318
  event.preventDefault();
319
319
  event.stopPropagation();
320
- this.inspectNearest(event.target, false);
320
+ let target = event.target;
321
+ if (target.shadowRoot) {
322
+ target = target.shadowRoot.elementFromPoint(event.x, event.y) || target;
323
+ }
324
+ this.inspectNearest(target, false);
321
325
  }
322
326
 
323
327
  onKeyDown(event) {
@@ -342,7 +346,11 @@ export default class ViewInspection {
342
346
  } else if (this.isInspecting && event.button === 0) {
343
347
  event.preventDefault();
344
348
  event.stopPropagation();
345
- this.inspectNearest(event.target, true);
349
+ let target = event.target;
350
+ if (target.shadowRoot) {
351
+ target = target.shadowRoot.elementFromPoint(event.x, event.y) || target;
352
+ }
353
+ this.inspectNearest(target, true);
346
354
  this.stop(false);
347
355
  }
348
356
  }
@@ -16,28 +16,24 @@ import {
16
16
  ObjectProxy,
17
17
  ArrayProxy,
18
18
  Service,
19
+ InternalsMetal,
19
20
  Component,
21
+ GlimmerComponent,
22
+ GlimmerReference,
23
+ GlimmerValidator,
20
24
  } from 'ember-debug/utils/ember';
21
25
  import { cacheFor, guidFor } from 'ember-debug/utils/ember/object/internals';
22
26
  import { _backburner, join } from 'ember-debug/utils/ember/runloop';
23
27
  import emberNames from './utils/ember-object-names';
24
28
  import getObjectName from './utils/get-object-name';
25
- import { EmberLoader } from 'ember-debug/utils/ember/loader';
26
-
27
- const GlimmerComponent = (() => {
28
- try {
29
- return EmberLoader.require('@glimmer/component').default;
30
- } catch {
31
- // ignore, return undefined
32
- }
33
- })();
34
29
 
35
30
  let tagValue, tagValidate, track, tagForProperty;
36
31
 
37
- try {
38
- // Try to load the most recent library
39
- let GlimmerValidator = EmberLoader.require('@glimmer/validator');
32
+ const GlimmerDebugComponent = (() => GlimmerComponent?.default)();
40
33
 
34
+ // Try to use the most recent library (GlimmerValidator), else
35
+ // fallback on the previous implementation (GlimmerReference).
36
+ if (GlimmerValidator) {
41
37
  tagValue = GlimmerValidator.value || GlimmerValidator.valueForTag;
42
38
  tagValidate = GlimmerValidator.validate || GlimmerValidator.validateTag;
43
39
  track = GlimmerValidator.track;
@@ -70,26 +66,15 @@ try {
70
66
  }
71
67
  return r;
72
68
  };
73
- } catch {
74
- try {
75
- // Fallback to the previous implementation
76
- let GlimmerReference = EmberLoader.require('@glimmer/reference');
77
-
78
- tagValue = GlimmerReference.value;
79
- tagValidate = GlimmerReference.validate;
80
- } catch {
81
- // ignore
82
- }
69
+ } else if (GlimmerReference) {
70
+ tagValue = GlimmerReference.value;
71
+ tagValidate = GlimmerReference.validate;
83
72
  }
84
73
 
85
- try {
86
- let metal = EmberLoader.require('@ember/-internals/metal');
87
-
88
- tagForProperty = metal.tagForProperty;
74
+ if (InternalsMetal) {
75
+ tagForProperty = InternalsMetal.tagForProperty;
89
76
  // If track was not already loaded, use metal's version (the previous version)
90
- track = track || metal.track;
91
- } catch {
92
- // ignore
77
+ track = track || InternalsMetal.track;
93
78
  }
94
79
 
95
80
  const HAS_GLIMMER_TRACKING = tagValue && tagValidate && track && tagForProperty;
@@ -914,18 +899,7 @@ function addProperties(properties, hash) {
914
899
  let options = { isMandatorySetter: isMandatorySetter(desc) };
915
900
 
916
901
  if (typeof hash[prop] === 'object' && hash[prop] !== null) {
917
- options.isService =
918
- !('type' in hash[prop]) && hash[prop].type === 'service';
919
-
920
- if (!options.isService) {
921
- if (hash[prop].constructor) {
922
- options.isService = hash[prop].constructor.isServiceFactory;
923
- }
924
- }
925
-
926
- if (!options.isService) {
927
- options.isService = desc.value instanceof Service;
928
- }
902
+ options.isService = desc.value instanceof Service;
929
903
  }
930
904
  if (options.isService) {
931
905
  replaceProperty(properties, prop, inspectValue(hash, prop), options);
@@ -1127,6 +1101,9 @@ function calculateCPs(
1127
1101
  item.code = '';
1128
1102
  }
1129
1103
  }
1104
+ if (value instanceof Service) {
1105
+ item.isService = true;
1106
+ }
1130
1107
  }
1131
1108
  }
1132
1109
  });
@@ -1285,7 +1262,7 @@ function getDebugInfo(object) {
1285
1262
  'element',
1286
1263
  'targetObject',
1287
1264
  );
1288
- } else if (GlimmerComponent && object instanceof GlimmerComponent) {
1265
+ } else if (GlimmerDebugComponent && object instanceof GlimmerDebugComponent) {
1289
1266
  // These properties don't really exist on Glimmer Components, but
1290
1267
  // reading their values trigger a development mode assertion. The
1291
1268
  // more correct long term fix is to make getters lazy (shows "..."
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "ember-debug",
3
+ "private": true,
4
+ "type": "module",
5
+ "scripts": {
6
+ "watch": "pnpm build --watch",
7
+ "build": "rollup --config",
8
+ "prepare": "pnpm build"
9
+ },
10
+ "devDependencies": {
11
+ "@babel/plugin-proposal-decorators": "^7.25.9",
12
+ "@babel/plugin-transform-class-properties": "^7.25.9",
13
+ "@babel/plugin-transform-class-static-block": "^7.26.0",
14
+ "@rollup/plugin-babel": "^6.0.4",
15
+ "@rollup/plugin-commonjs": "^28.0.3",
16
+ "@rollup/plugin-node-resolve": "^16.0.1",
17
+ "backburner.js": "^2.8.0",
18
+ "glob": "^11.0.2",
19
+ "rollup": "^4.39.0",
20
+ "source-map-js": "^1.2.1"
21
+ },
22
+ "exports": {
23
+ "./*": "./*.js"
24
+ }
25
+ }
@@ -0,0 +1,48 @@
1
+ import { nodeResolve } from '@rollup/plugin-node-resolve';
2
+ import commonjs from '@rollup/plugin-commonjs';
3
+ import { babel } from '@rollup/plugin-babel';
4
+ import { globSync } from 'glob';
5
+
6
+ export default {
7
+ input: [
8
+ 'main.js',
9
+ ...globSync('adapters/**/*.js'),
10
+ 'utils/version.js',
11
+ 'port.js',
12
+ 'utils/ember.js',
13
+ 'models/profile-node.js',
14
+ 'libs/promise-assembler.js',
15
+ ],
16
+ output: {
17
+ format: 'amd',
18
+ amd: {
19
+ autoId: true,
20
+ // id: 'ember-debug/[name]',
21
+ basePath: 'ember-debug',
22
+ },
23
+ chunkFileNames: '[name].js',
24
+ dir: 'dist',
25
+ },
26
+
27
+ plugins: [
28
+ babel(),
29
+ nodeResolve(),
30
+ commonjs(),
31
+ /**
32
+ * this plugin forces each of the intenral dependencies for each of the chunks to be prefixed with ember-debug
33
+ */
34
+ {
35
+ name: 'rollup-plugin-name-amd-modules',
36
+ renderChunk(code) {
37
+ let splitCode = code.split('\n');
38
+
39
+ splitCode[0] = splitCode[0].replaceAll(
40
+ /'\.\/([^']*)'/g,
41
+ `'ember-debug/$1'`,
42
+ );
43
+
44
+ return splitCode.join('\n');
45
+ },
46
+ },
47
+ ],
48
+ };
@@ -1,13 +1,12 @@
1
- import Ember from '../ember';
1
+ import Ember, { Debug, InternalsUtils } from '../ember';
2
2
 
3
3
  let module;
4
-
5
4
  export let inspect;
6
5
 
7
- try {
8
- module = requireModule('@ember/debug');
9
- inspect = module.inspect || requireModule('@ember/-internals/utils').inspect;
10
- } catch {
6
+ if (Debug) {
7
+ module = Debug;
8
+ inspect = Debug.inspect || InternalsUtils.inspect;
9
+ } else {
11
10
  module = Ember.Debug;
12
11
  // eslint-disable-next-line ember/new-module-imports
13
12
  inspect = Ember.inspect;
@@ -1,10 +1,10 @@
1
- import Ember from '../ember';
1
+ import Ember, { Instrumentation } from '../ember';
2
2
 
3
3
  let module;
4
4
 
5
- try {
6
- module = requireModule('@ember/instrumentation');
7
- } catch {
5
+ if (Instrumentation) {
6
+ module = Instrumentation;
7
+ } else {
8
8
  module = Ember;
9
9
  }
10
10
 
@@ -1,14 +1,9 @@
1
- import Ember from '../../ember';
1
+ import Ember, { ObjectInternals } from '../../ember';
2
2
 
3
- let module;
4
-
5
- try {
6
- module = requireModule('@ember/object/internals');
7
- } catch {
8
- module = Ember;
9
- }
10
-
11
- let { cacheFor, guidFor: emberGuidFor } = module;
3
+ // eslint-disable-next-line ember/new-module-imports
4
+ let cacheFor = ObjectInternals?.cacheFor ?? Ember.cacheFor;
5
+ // eslint-disable-next-line ember/new-module-imports
6
+ let emberGuidFor = ObjectInternals?.guidFor ?? Ember.guidFor;
12
7
 
13
8
  // it can happen that different ember apps/iframes have the same id for different objects
14
9
  // since the implementation is just a counter, so we add a prefix per iframe & app
@@ -1,4 +1,4 @@
1
- import Backburner from 'ember-debug/deps/backburner';
1
+ import Backburner from 'backburner.js';
2
2
 
3
3
  let currentRunLoop = null;
4
4
  export function _getCurrentRunLoop() {
@@ -1,21 +1,21 @@
1
- import Ember from '../ember';
1
+ import Ember, { Runloop as EmberRunloop } from '../ember';
2
2
  import * as runloop from './own-runloop';
3
3
 
4
+ // it could happen that runloop is available but _backburner is not exported (dead code)
5
+ // then we need to use our own.
4
6
  let module = runloop;
5
7
  let _backburner = runloop._backburner;
6
8
 
7
9
  const keys = ['cancel', 'debounce', 'join', 'later', 'scheduleOnce'];
8
10
 
9
- try {
10
- module = requireModule('@ember/runloop');
11
- // it could happen that runloop is available but _backburner is not exported (dead code)
12
- // then we need to use our own
13
- _backburner = module._backburner;
14
- } catch {
15
- // eslint-disable-next-line ember/new-module-imports
16
- _backburner = Ember?.run?.backburner || module._backburner;
11
+ if (EmberRunloop) {
12
+ module = EmberRunloop;
13
+ _backburner = EmberRunloop._backburner || EmberRunloop.backburner;
14
+ } else {
17
15
  // eslint-disable-next-line ember/new-module-imports
18
16
  module = Ember?.run || module;
17
+ // eslint-disable-next-line ember/new-module-imports
18
+ _backburner = Ember?.run?.backburner || _backburner;
19
19
  }
20
20
 
21
21
  if (!keys.every((k) => k in module)) {
@@ -1,5 +1,4 @@
1
1
  import { compareVersion } from 'ember-debug/utils/version';
2
- import { emberSafeRequire } from 'ember-debug/utils/ember/loader';
3
2
  import {
4
3
  VERSION,
5
4
  ActionHandler,
@@ -10,6 +9,8 @@ import {
10
9
  MutableArray,
11
10
  Component,
12
11
  Evented,
12
+ InternalsRuntime,
13
+ InternalsViews,
13
14
  PromiseProxyMixin,
14
15
  EmberObject,
15
16
  Observable,
@@ -33,14 +34,12 @@ const emberNames = new Map([
33
34
  ]);
34
35
 
35
36
  if (compareVersion(VERSION, '3.27.0') === -1) {
36
- const TargetActionSupport = emberSafeRequire(
37
- '@ember/-internals/runtime',
38
- )?.TargetActionSupport;
37
+ const TargetActionSupport = InternalsRuntime?.TargetActionSupport;
39
38
  emberNames.set(TargetActionSupport, 'TargetActionSupport Mixin');
40
39
  }
41
40
 
42
41
  try {
43
- const Views = emberSafeRequire('@ember/-internals/views') || {};
42
+ const Views = InternalsViews || {};
44
43
  emberNames.set(Views.ViewStateSupport, 'ViewStateSupport Mixin');
45
44
  emberNames.set(Views.ViewMixin, 'View Mixin');
46
45
  emberNames.set(Views.ActionSupport, 'ActionSupport Mixin');