ember-inspector 4.13.1-alpha.2025.9.9 → 4.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/.editorconfig +19 -0
  2. package/.ember-cli +7 -0
  3. package/.github/ISSUE_TEMPLATE/bug_report.md +30 -0
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. package/.github/dependabot.yml +14 -0
  6. package/.github/pull_request_template.md +4 -0
  7. package/.github/workflows/build.yml +260 -0
  8. package/.github/workflows/plan-release.yml +61 -0
  9. package/.github/workflows/publish.yml +158 -0
  10. package/.prettierignore +14 -0
  11. package/.prettierrc.js +20 -0
  12. package/.release-plan.json +26 -0
  13. package/.stylelintignore +8 -0
  14. package/.stylelintrc.js +12 -0
  15. package/.template-lintrc.js +13 -0
  16. package/.tool-versions +2 -0
  17. package/.watchmanconfig +3 -0
  18. package/CHANGELOG.md +137 -0
  19. package/DEVELOPMENT.md +50 -0
  20. package/PRIVACY.md +3 -0
  21. package/README.md +6 -50
  22. package/RELEASE.md +15 -50
  23. package/app/components/.gitkeep +0 -0
  24. package/app/controllers/.gitkeep +0 -0
  25. package/app/controllers/model-types.js +7 -14
  26. package/app/helpers/.gitkeep +0 -0
  27. package/app/models/.gitkeep +0 -0
  28. package/app/routes/.gitkeep +0 -0
  29. package/app/routes/whats-new.js +6 -4
  30. package/app/services/storage.ts +17 -4
  31. package/app/templates/application.hbs +1 -0
  32. package/dist/bookmarklet/panes-3-16-0/assets/{chunk.524.497b4588088a7fe03056.js → chunk.524.aca67dc376e8cd35b522.js} +4 -4
  33. package/dist/{firefox/panes-3-16-0/assets/chunk.582.3f979b82d5ad515f2254.js → bookmarklet/panes-3-16-0/assets/chunk.582.d3d80e94c4f59dc3b65d.js} +5 -5
  34. package/dist/bookmarklet/panes-3-16-0/assets/ember-inspector.js +23 -24
  35. package/dist/{firefox/panes-3-16-0/basic-DfbgtngO.js → bookmarklet/panes-3-16-0/basic-B1dkgN3d.js} +6 -1
  36. package/dist/bookmarklet/panes-3-16-0/basic-debug.js +9 -5
  37. package/dist/bookmarklet/panes-3-16-0/bookmarklet-BZWtwuX-.js +32 -0
  38. package/dist/bookmarklet/panes-3-16-0/bookmarklet-debug.js +9 -33
  39. package/dist/bookmarklet/panes-3-16-0/chrome-P6FSEUf1.js +10 -0
  40. package/dist/bookmarklet/panes-3-16-0/chrome-debug.js +9 -11
  41. package/dist/bookmarklet/panes-3-16-0/ember.js +101 -50
  42. package/dist/bookmarklet/panes-3-16-0/ember_debug.js +9 -33
  43. package/dist/bookmarklet/panes-3-16-0/firefox-8F84zphP.js +30 -0
  44. package/dist/bookmarklet/panes-3-16-0/firefox-debug.js +9 -31
  45. package/dist/bookmarklet/panes-3-16-0/index.html +2 -2
  46. package/dist/bookmarklet/panes-3-16-0/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
  47. package/dist/bookmarklet/panes-3-16-0/main.js +11 -5
  48. package/dist/bookmarklet/panes-3-16-0/port.js +1 -1
  49. package/dist/{chrome/panes-3-16-0/runloop-CF-Qpqgy.js → bookmarklet/panes-3-16-0/runloop-6_0lpzTA.js} +1 -1
  50. package/dist/bookmarklet/panes-3-16-0/{start-inspector-BPAW_WLv.js → start-inspector-BIYQArZn.js} +32 -74
  51. package/dist/bookmarklet/panes-3-16-0/{web-extension-C3pMNVSY.js → web-extension-OWnXJ_XK.js} +2 -2
  52. package/dist/bookmarklet/panes-3-16-0/websocket-BSUvUqER.js +58 -0
  53. package/dist/bookmarklet/panes-3-16-0/websocket-debug.js +9 -59
  54. package/dist/chrome/devtools.js +1 -1
  55. package/dist/chrome/manifest.json +22 -23
  56. package/dist/{firefox/panes-3-16-0/assets/chunk.524.497b4588088a7fe03056.js → chrome/panes-3-16-0/assets/chunk.524.aca67dc376e8cd35b522.js} +4 -4
  57. package/dist/{bookmarklet/panes-3-16-0/assets/chunk.582.3f979b82d5ad515f2254.js → chrome/panes-3-16-0/assets/chunk.582.d3d80e94c4f59dc3b65d.js} +5 -5
  58. package/dist/chrome/panes-3-16-0/assets/ember-inspector.js +23 -24
  59. package/dist/chrome/panes-3-16-0/{basic-DfbgtngO.js → basic-B1dkgN3d.js} +6 -1
  60. package/dist/chrome/panes-3-16-0/basic-debug.js +9 -5
  61. package/dist/chrome/panes-3-16-0/bookmarklet-BZWtwuX-.js +32 -0
  62. package/dist/chrome/panes-3-16-0/bookmarklet-debug.js +9 -33
  63. package/dist/chrome/panes-3-16-0/chrome-P6FSEUf1.js +10 -0
  64. package/dist/chrome/panes-3-16-0/chrome-debug.js +9 -11
  65. package/dist/chrome/panes-3-16-0/ember.js +101 -50
  66. package/dist/chrome/panes-3-16-0/ember_debug.js +9 -11
  67. package/dist/chrome/panes-3-16-0/firefox-8F84zphP.js +30 -0
  68. package/dist/chrome/panes-3-16-0/firefox-debug.js +9 -31
  69. package/dist/chrome/panes-3-16-0/index.html +2 -2
  70. package/dist/chrome/panes-3-16-0/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
  71. package/dist/chrome/panes-3-16-0/main.js +11 -5
  72. package/dist/chrome/panes-3-16-0/port.js +1 -1
  73. package/dist/{firefox/panes-3-16-0/runloop-CF-Qpqgy.js → chrome/panes-3-16-0/runloop-6_0lpzTA.js} +1 -1
  74. package/dist/{firefox/panes-3-16-0/start-inspector-BPAW_WLv.js → chrome/panes-3-16-0/start-inspector-BIYQArZn.js} +32 -74
  75. package/dist/{firefox/panes-3-16-0/web-extension-C3pMNVSY.js → chrome/panes-3-16-0/web-extension-OWnXJ_XK.js} +2 -2
  76. package/dist/chrome/panes-3-16-0/websocket-BSUvUqER.js +58 -0
  77. package/dist/chrome/panes-3-16-0/websocket-debug.js +9 -59
  78. package/dist/firefox/devtools.js +1 -1
  79. package/dist/firefox/manifest.json +22 -23
  80. package/dist/{websocket/assets/chunk.524.497b4588088a7fe03056.js → firefox/panes-3-16-0/assets/chunk.524.aca67dc376e8cd35b522.js} +4 -4
  81. package/dist/{websocket/assets/chunk.582.3f979b82d5ad515f2254.js → firefox/panes-3-16-0/assets/chunk.582.d3d80e94c4f59dc3b65d.js} +5 -5
  82. package/dist/firefox/panes-3-16-0/assets/ember-inspector.js +23 -24
  83. package/dist/{bookmarklet/panes-3-16-0/basic-DfbgtngO.js → firefox/panes-3-16-0/basic-B1dkgN3d.js} +6 -1
  84. package/dist/firefox/panes-3-16-0/basic-debug.js +9 -5
  85. package/dist/firefox/panes-3-16-0/bookmarklet-BZWtwuX-.js +32 -0
  86. package/dist/firefox/panes-3-16-0/bookmarklet-debug.js +9 -33
  87. package/dist/firefox/panes-3-16-0/chrome-P6FSEUf1.js +10 -0
  88. package/dist/firefox/panes-3-16-0/chrome-debug.js +9 -11
  89. package/dist/firefox/panes-3-16-0/ember.js +101 -50
  90. package/dist/firefox/panes-3-16-0/ember_debug.js +9 -31
  91. package/dist/firefox/panes-3-16-0/firefox-8F84zphP.js +30 -0
  92. package/dist/firefox/panes-3-16-0/firefox-debug.js +9 -31
  93. package/dist/firefox/panes-3-16-0/index.html +2 -2
  94. package/dist/firefox/panes-3-16-0/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
  95. package/dist/firefox/panes-3-16-0/main.js +11 -5
  96. package/dist/firefox/panes-3-16-0/port.js +1 -1
  97. package/dist/{websocket/runloop-CF-Qpqgy.js → firefox/panes-3-16-0/runloop-6_0lpzTA.js} +1 -1
  98. package/dist/{chrome/panes-3-16-0/start-inspector-BPAW_WLv.js → firefox/panes-3-16-0/start-inspector-BIYQArZn.js} +32 -74
  99. package/dist/{websocket/web-extension-C3pMNVSY.js → firefox/panes-3-16-0/web-extension-OWnXJ_XK.js} +2 -2
  100. package/dist/firefox/panes-3-16-0/websocket-BSUvUqER.js +58 -0
  101. package/dist/firefox/panes-3-16-0/websocket-debug.js +9 -59
  102. package/dist/{chrome/panes-3-16-0/assets/chunk.524.497b4588088a7fe03056.js → websocket/assets/chunk.524.aca67dc376e8cd35b522.js} +4 -4
  103. package/dist/{chrome/panes-3-16-0/assets/chunk.582.3f979b82d5ad515f2254.js → websocket/assets/chunk.582.d3d80e94c4f59dc3b65d.js} +5 -5
  104. package/dist/websocket/assets/ember-inspector.js +23 -24
  105. package/dist/websocket/{basic-DfbgtngO.js → basic-B1dkgN3d.js} +6 -1
  106. package/dist/websocket/basic-debug.js +9 -5
  107. package/dist/websocket/bookmarklet-BZWtwuX-.js +32 -0
  108. package/dist/websocket/bookmarklet-debug.js +9 -33
  109. package/dist/websocket/chrome-P6FSEUf1.js +10 -0
  110. package/dist/websocket/chrome-debug.js +9 -11
  111. package/dist/websocket/ember.js +101 -50
  112. package/dist/websocket/ember_debug.js +9 -59
  113. package/dist/websocket/firefox-8F84zphP.js +30 -0
  114. package/dist/websocket/firefox-debug.js +9 -31
  115. package/dist/websocket/index.html +2 -2
  116. package/dist/websocket/load-ember-debug-in-webpage-DCWcJhQm.js +29 -0
  117. package/dist/websocket/main.js +11 -5
  118. package/dist/websocket/port.js +1 -1
  119. package/dist/{bookmarklet/panes-3-16-0/runloop-CF-Qpqgy.js → websocket/runloop-6_0lpzTA.js} +1 -1
  120. package/dist/websocket/{start-inspector-BPAW_WLv.js → start-inspector-BIYQArZn.js} +32 -74
  121. package/dist/{chrome/panes-3-16-0/web-extension-C3pMNVSY.js → websocket/web-extension-OWnXJ_XK.js} +2 -2
  122. package/dist/websocket/websocket-BSUvUqER.js +58 -0
  123. package/dist/websocket/websocket-debug.js +9 -59
  124. package/ember_debug/entrypoints/basic-debug.js +7 -3
  125. package/ember_debug/entrypoints/bookmarklet-debug.js +7 -3
  126. package/ember_debug/entrypoints/chrome-debug.js +7 -3
  127. package/ember_debug/entrypoints/firefox-debug.js +7 -3
  128. package/ember_debug/entrypoints/websocket-debug.js +7 -3
  129. package/ember_debug/lib/get-applications.js +6 -5
  130. package/ember_debug/lib/load-ember-debug-in-webpage.js +2 -0
  131. package/ember_debug/lib/send-version-miss.js +2 -3
  132. package/ember_debug/lib/setup-instance-initializer.js +4 -3
  133. package/ember_debug/lib/start-inspector.js +23 -39
  134. package/ember_debug/object-inspector.js +4 -1
  135. package/ember_debug/utils/ember/runloop.js +1 -1
  136. package/ember_debug/utils/ember-object-names.js +4 -1
  137. package/ember_debug/utils/ember.js +132 -56
  138. package/package.json +5 -5
  139. package/patches/ember-cli-inject-live-reload.patch +16 -0
  140. package/skeletons/web-extension/manifest.json +22 -23
  141. package/tests/acceptance/data-test.js +6 -1
  142. package/tests/acceptance/whats-new-test.js +9 -9
  143. package/tests/ember_debug/container-debug-test.js +1 -10
  144. package/tests/ember_debug/deprecation-debug-test.js +7 -1
  145. package/tests/ember_debug/ember-data-test.js +7 -1
  146. package/tests/ember_debug/ember-debug-test.js +12 -9
  147. package/tests/ember_debug/object-inspector-test.js +7 -1
  148. package/tests/ember_debug/profile-manager-test.js +13 -3
  149. package/tests/ember_debug/profile-node-test.js +6 -2
  150. package/tests/ember_debug/promise-assembler-test.js +6 -1
  151. package/tests/ember_debug/promise-debug-test.js +14 -9
  152. package/tests/ember_debug/render-debug-test.js +8 -1
  153. package/tests/ember_debug/route-debug-test.js +6 -1
  154. package/tests/ember_debug/view-debug-test.js +11 -2
  155. package/tests/helpers/setup-ember-debug-test.js +8 -2
  156. package/tests/integration/injection-test.js +26 -69
  157. package/tests/unit/.gitkeep +0 -0
  158. package/tests/unit/utils/type-check-test.js +7 -2
@@ -27,12 +27,15 @@ const emberNames = new Map([
27
27
  [NativeArray, 'NativeArray Mixin'],
28
28
  [Observable, 'Observable Mixin'],
29
29
  [ControllerMixin, 'Controller Mixin'],
30
- [ActionHandler, 'ActionHandler Mixin'],
31
30
  [CoreObject, 'CoreObject'],
32
31
  [EmberObject, 'EmberObject'],
33
32
  [Component, 'Component'],
34
33
  ]);
35
34
 
35
+ if (ActionHandler) {
36
+ emberNames.set(ActionHandler, 'ActionHandler Mixin');
37
+ }
38
+
36
39
  if (compareVersion(VERSION, '3.27.0') === -1) {
37
40
  const TargetActionSupport = InternalsRuntime?.TargetActionSupport;
38
41
  emberNames.set(TargetActionSupport, 'TargetActionSupport Mixin');
@@ -29,21 +29,38 @@ export function emberSafeRequire(id) {
29
29
  }
30
30
  }
31
31
 
32
- let ArrayProxy,
32
+ let Application,
33
+ ApplicationModule,
33
34
  Namespace,
34
35
  ActionHandler,
35
36
  ControllerMixin,
36
37
  CoreObject,
37
- Application,
38
- MutableArray,
38
+ Debug,
39
39
  MutableEnumerable,
40
40
  NativeArray,
41
+ ArrayProxy,
42
+ MutableArray,
41
43
  Component,
42
44
  Observable,
43
45
  Evented,
44
46
  PromiseProxyMixin,
45
47
  Service,
46
48
  ObjectProxy,
49
+ InternalsMetal,
50
+ InternalsRuntime,
51
+ InternalsUtils,
52
+ InternalsViews,
53
+ EmberDestroyable,
54
+ ObjectInternals,
55
+ Instrumentation,
56
+ Runloop,
57
+ GlimmerComponent,
58
+ GlimmerManager,
59
+ GlimmerReference,
60
+ GlimmerRuntime,
61
+ GlimmerUtil,
62
+ GlimmerValidator,
63
+ RSVP,
47
64
  VERSION,
48
65
  ComputedProperty,
49
66
  meta,
@@ -51,30 +68,83 @@ let ArrayProxy,
51
68
  set,
52
69
  computed,
53
70
  EmberObject,
71
+ Owner,
54
72
  captureRenderTree,
55
73
  getEnv,
56
74
  getOwner;
57
75
 
58
- let Debug = emberSafeRequire('@ember/debug');
59
- let InternalsMetal = emberSafeRequire('@ember/-internals/metal');
60
- let InternalsRuntime = emberSafeRequire('@ember/-internals/runtime');
61
- let InternalsUtils = emberSafeRequire('@ember/-internals/utils');
62
- let InternalsViews = emberSafeRequire('@ember/-internals/views');
63
- let EmberDestroyable = emberSafeRequire('@ember/destroyable');
64
- let ObjectInternals = emberSafeRequire('@ember/object/internals');
65
- let Instrumentation = emberSafeRequire('@ember/instrumentation');
66
- let Runloop = emberSafeRequire('@ember/runloop');
76
+ // This global is defined in Embroider to bring Vite support to the Inspector.
77
+ // Having it defined is enough to assert the inspected app runs with Vite.
78
+ if (globalThis.emberInspectorApps) {
79
+ // emberInspectorApps has been implemented as an array to support multiple
80
+ // apps in the future. So far, the inspector has supported only one app, so
81
+ // we rely on the first item in the array to keep the current behavior.
82
+ const appLoader = globalThis.emberInspectorApps[0];
83
+ const internalEmberModules = await appLoader.loadCompatInspector();
67
84
 
68
- let RSVP = emberSafeRequire('rsvp');
85
+ Application = internalEmberModules.Application.default;
86
+ ApplicationModule = internalEmberModules.Application;
87
+ Namespace = internalEmberModules.ApplicationNamespace.default;
88
+ NativeArray = internalEmberModules.Array.NativeArray;
89
+ MutableArray = internalEmberModules.ArrayMutable.default;
90
+ ArrayProxy = internalEmberModules.ArrayProxy.default;
91
+ Component = internalEmberModules.Component.default;
92
+ ControllerMixin = internalEmberModules.Controller.ControllerMixin;
93
+ Debug = internalEmberModules.Debug;
94
+ CoreObject = internalEmberModules.ObjectCore.default;
95
+ MutableEnumerable = internalEmberModules.EnumerableMutable.default;
96
+ getEnv = internalEmberModules.InternalsEnvironment?.getENV;
97
+ meta = internalEmberModules.InternalsMeta?.meta;
98
+ InternalsMetal = internalEmberModules.InternalsMetal;
99
+ ComputedProperty = InternalsMetal?.ComputedProperty;
100
+ InternalsRuntime = internalEmberModules.InternalsRuntime;
101
+ InternalsUtils = internalEmberModules.InternalsUtils;
102
+ InternalsViews = internalEmberModules.InternalsViews;
103
+ ObjectInternals = internalEmberModules.ObjectInternals;
104
+ Instrumentation = internalEmberModules.Instrumentation;
105
+ captureRenderTree = internalEmberModules.Debug.captureRenderTree;
106
+ ObjectProxy = internalEmberModules.ObjectProxy.default;
107
+ Observable = internalEmberModules.ObjectObservable.default;
108
+ Evented = internalEmberModules.ObjectEvented.default;
109
+ PromiseProxyMixin = internalEmberModules.ObjectPromiseProxyMixin.default;
110
+ Runloop = internalEmberModules.Runloop;
111
+ Service = internalEmberModules.Service.default;
112
+ EmberDestroyable = internalEmberModules.EmberDestroyable;
113
+ EmberObject = internalEmberModules.Object.default;
114
+ VERSION = internalEmberModules.VERSION.default;
115
+ set = internalEmberModules.Object.set;
116
+ get = internalEmberModules.Object.get;
117
+ RSVP = internalEmberModules.RSVP;
118
+ GlimmerComponent = internalEmberModules.GlimmerComponent;
119
+ GlimmerManager = internalEmberModules.GlimmerManager;
120
+ GlimmerReference = internalEmberModules.GlimmerReference;
121
+ GlimmerRuntime = internalEmberModules.GlimmerRuntime;
122
+ GlimmerUtil = internalEmberModules.GlimmerUtil;
123
+ GlimmerValidator = internalEmberModules.GlimmerValidator;
124
+ // owner was not available in all versions of ember that we support
125
+ Owner = internalEmberModules.Owner;
126
+ }
69
127
 
70
- let GlimmerComponent = emberSafeRequire('@glimmer/component');
71
- let GlimmerManager = emberSafeRequire('@glimmer/manager');
72
- let GlimmerReference = emberSafeRequire('@glimmer/reference');
73
- let GlimmerRuntime = emberSafeRequire('@glimmer/runtime');
74
- let GlimmerUtil = emberSafeRequire('@glimmer/util');
75
- let GlimmerValidator = emberSafeRequire('@glimmer/validator');
76
- let EmberOwner = emberSafeRequire('@ember/owner');
77
- let EmberApplication = emberSafeRequire('@ember/application');
128
+ Debug = Debug ?? emberSafeRequire('@ember/debug');
129
+ InternalsMetal = InternalsMetal ?? emberSafeRequire('@ember/-internals/metal');
130
+ InternalsRuntime =
131
+ InternalsRuntime ?? emberSafeRequire('@ember/-internals/runtime');
132
+ InternalsUtils = InternalsUtils ?? emberSafeRequire('@ember/-internals/utils');
133
+ InternalsViews = InternalsViews ?? emberSafeRequire('@ember/-internals/views');
134
+ EmberDestroyable = EmberDestroyable ?? emberSafeRequire('@ember/destroyable');
135
+ ObjectInternals =
136
+ ObjectInternals ?? emberSafeRequire('@ember/object/internals');
137
+ Instrumentation = Instrumentation ?? emberSafeRequire('@ember/instrumentation');
138
+ Runloop = Runloop ?? emberSafeRequire('@ember/runloop');
139
+ RSVP = RSVP ?? emberSafeRequire('rsvp');
140
+ GlimmerComponent = GlimmerComponent ?? emberSafeRequire('@glimmer/component');
141
+ GlimmerManager = GlimmerManager ?? emberSafeRequire('@glimmer/manager');
142
+ GlimmerReference = GlimmerReference ?? emberSafeRequire('@glimmer/reference');
143
+ GlimmerRuntime = GlimmerRuntime ?? emberSafeRequire('@glimmer/runtime');
144
+ GlimmerUtil = GlimmerUtil ?? emberSafeRequire('@glimmer/util');
145
+ GlimmerValidator = GlimmerValidator ?? emberSafeRequire('@glimmer/validator');
146
+ Owner = Owner ?? emberSafeRequire('@ember/owner');
147
+ ApplicationModule = ApplicationModule ?? emberSafeRequire('@ember/application');
78
148
 
79
149
  let inspect = Debug?.inspect || InternalsUtils?.inspect;
80
150
  let subscribe = Instrumentation?.subscribe;
@@ -83,29 +153,29 @@ let guidFor = ObjectInternals?.guidFor;
83
153
  let libraries = InternalsMetal?.libraries;
84
154
 
85
155
  if (Ember) {
86
- captureRenderTree = Ember._captureRenderTree;
87
- getEnv = () => Ember.ENV;
156
+ Application = Ember.Application;
157
+ Namespace = Ember.Namespace;
88
158
  ArrayProxy = Ember.ArrayProxy;
89
- ObjectProxy = Ember.ObjectProxy;
90
159
  MutableArray = Ember.MutableArray;
91
- Namespace = Ember.Namespace;
92
160
  MutableEnumerable = Ember.MutableEnumerable;
93
161
  NativeArray = Ember.NativeArray;
94
162
  ControllerMixin = Ember.ControllerMixin;
95
163
  CoreObject = Ember.CoreObject;
96
- Application = Ember.Application;
97
164
  Component = Ember.Component;
98
165
  Observable = Ember.Observable;
99
166
  Evented = Ember.Evented;
100
167
  PromiseProxyMixin = Ember.PromiseProxyMixin;
101
168
  Service = Ember.Service;
102
- EmberObject = Ember.Object;
169
+ ObjectProxy = Ember.ObjectProxy;
103
170
  VERSION = Ember.VERSION;
104
171
  ComputedProperty = Ember.ComputedProperty;
105
172
  meta = Ember.meta;
106
173
  get = Ember.get;
107
174
  set = Ember.set;
108
175
  computed = Ember.computed;
176
+ EmberObject = Ember.Object;
177
+ captureRenderTree = Ember._captureRenderTree;
178
+ getEnv = () => Ember.ENV;
109
179
  ActionHandler = Ember.ActionHandler;
110
180
  Debug = Debug ?? Ember.Debug;
111
181
  inspect = inspect ?? Ember.inspect;
@@ -117,38 +187,44 @@ if (Ember) {
117
187
  guidFor = guidFor ?? Ember.guidFor;
118
188
  libraries = libraries ?? Ember.libraries;
119
189
  } else {
120
- captureRenderTree = emberSafeRequire('@ember/debug')?.captureRenderTree;
121
- getEnv = emberSafeRequire('@ember/-internals/environment')?.getENV;
122
- ArrayProxy = emberSafeRequire('@ember/array/proxy')?.default;
123
- ObjectProxy = emberSafeRequire('@ember/object/proxy')?.default;
124
- MutableArray = emberSafeRequire('@ember/array/mutable')?.default;
125
- Namespace = emberSafeRequire('@ember/application/namespace')?.default;
126
- MutableEnumerable = emberSafeRequire('@ember/enumerable/mutable')?.default;
127
- NativeArray = emberSafeRequire('@ember/array')?.NativeArray;
128
- ControllerMixin = emberSafeRequire('@ember/controller')?.ControllerMixin;
129
- CoreObject = emberSafeRequire('@ember/object/core')?.default;
130
- Application = emberSafeRequire('@ember/application')?.default;
131
- Component = emberSafeRequire('@ember/component')?.default;
132
- Observable = emberSafeRequire('@ember/object/observable')?.default;
133
- Evented = emberSafeRequire('@ember/object/evented')?.default;
134
- PromiseProxyMixin = emberSafeRequire(
135
- '@ember/object/promise-proxy-mixin',
136
- )?.default;
137
- Service = emberSafeRequire('@ember/service')?.default;
138
- EmberObject = emberSafeRequire('@ember/object')?.default;
139
- VERSION = emberSafeRequire('ember/version')?.default;
140
- ComputedProperty = emberSafeRequire(
141
- '@ember/-internals/metal',
142
- )?.ComputedProperty;
143
- meta = emberSafeRequire('@ember/-internals/meta')?.meta;
144
- set = emberSafeRequire('@ember/object')?.set;
145
- get = emberSafeRequire('@ember/object')?.get;
190
+ captureRenderTree =
191
+ captureRenderTree ?? emberSafeRequire('@ember/debug')?.captureRenderTree;
192
+ getEnv = getEnv ?? emberSafeRequire('@ember/-internals/environment')?.getENV;
193
+ ArrayProxy = ArrayProxy ?? emberSafeRequire('@ember/array/proxy')?.default;
194
+ ObjectProxy = ObjectProxy ?? emberSafeRequire('@ember/object/proxy')?.default;
195
+ MutableArray =
196
+ MutableArray ?? emberSafeRequire('@ember/array/mutable')?.default;
197
+ Namespace =
198
+ Namespace ?? emberSafeRequire('@ember/application/namespace')?.default;
199
+ MutableEnumerable =
200
+ MutableEnumerable ?? emberSafeRequire('@ember/enumerable/mutable')?.default;
201
+ NativeArray = NativeArray ?? emberSafeRequire('@ember/array')?.NativeArray;
202
+ ControllerMixin =
203
+ ControllerMixin ?? emberSafeRequire('@ember/controller')?.ControllerMixin;
204
+ CoreObject = CoreObject ?? emberSafeRequire('@ember/object/core')?.default;
205
+ Application = Application ?? emberSafeRequire('@ember/application')?.default;
206
+ Component = Component ?? emberSafeRequire('@ember/component')?.default;
207
+ Observable =
208
+ Observable ?? emberSafeRequire('@ember/object/observable')?.default;
209
+ Evented = Evented ?? emberSafeRequire('@ember/object/evented')?.default;
210
+ PromiseProxyMixin =
211
+ PromiseProxyMixin ??
212
+ emberSafeRequire('@ember/object/promise-proxy-mixin')?.default;
213
+ Service = Service ?? emberSafeRequire('@ember/service')?.default;
214
+ EmberObject = EmberObject ?? emberSafeRequire('@ember/object')?.default;
215
+ VERSION = VERSION ?? emberSafeRequire('ember/version')?.default;
216
+ ComputedProperty =
217
+ ComputedProperty ??
218
+ emberSafeRequire('@ember/-internals/metal')?.ComputedProperty;
219
+ meta = meta ?? emberSafeRequire('@ember/-internals/meta')?.meta;
220
+ set = set ?? emberSafeRequire('@ember/object')?.set;
221
+ get = get ?? emberSafeRequire('@ember/object')?.get;
146
222
  }
147
223
 
148
- if (EmberOwner) {
149
- getOwner = EmberOwner.getOwner;
224
+ if (Owner) {
225
+ getOwner = Owner.getOwner;
150
226
  } else {
151
- getOwner = EmberApplication.getOwner;
227
+ getOwner = ApplicationModule?.getOwner;
152
228
  }
153
229
 
154
230
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-inspector",
3
- "version": "4.13.1-alpha.2025.9.9+81c8dfd",
3
+ "version": "4.15.0",
4
4
  "description": "Extends developer tools to allow you to better inspect your Ember.js apps.",
5
5
  "repository": "https://github.com/emberjs/ember-inspector",
6
6
  "license": "MIT",
@@ -115,7 +115,7 @@
115
115
  "qunit-dom": "^3.4.0",
116
116
  "release-it": "^15.11.0",
117
117
  "release-it-lerna-changelog": "^5.0.0",
118
- "release-plan": "^0.16.0",
118
+ "release-plan": "^0.17.0",
119
119
  "sass": "^1.79.4",
120
120
  "source-map-js": "^1.2.1",
121
121
  "stylelint": "^16.13.2",
@@ -189,11 +189,11 @@
189
189
  "start": "ember serve",
190
190
  "test": "concurrently \"pnpm:lint\" \"pnpm:test:*\" --names \"lint,test:\" --prefixColors auto",
191
191
  "test:ember": "pnpm build:ember-debug && COVERAGE=true ember test",
192
+ "watch": "pnpm '/watch:/'",
192
193
  "watch-test": "pnpm '/watch-test:/'",
193
194
  "watch-test:ember-debug": "pnpm --filter ember-debug watch",
194
195
  "watch-test:inspector-ui": "ember test --serv",
195
- "watch": "pnpm '/watch:/'",
196
- "watch:inspector-ui": "ember build --watch",
197
- "watch:ember-debug": "pnpm --filter ember-debug watch"
196
+ "watch:ember-debug": "pnpm --filter ember-debug watch",
197
+ "watch:inspector-ui": "ember build --watch"
198
198
  }
199
199
  }
@@ -0,0 +1,16 @@
1
+ diff --git a/CHANGELOG.md b/CHANGELOG.md
2
+ deleted file mode 100644
3
+ index 6b246174165e3519b57dbb1fdd16a05731175763..0000000000000000000000000000000000000000
4
+ diff --git a/lib/index.js b/lib/index.js
5
+ index f28830e01df9778fcef712ccd546566bfc34a0cc..cd38a87d6b90ebe0d7154d6a8d5a27d011098a64 100644
6
+ --- a/lib/index.js
7
+ +++ b/lib/index.js
8
+ @@ -48,7 +48,7 @@ module.exports = {
9
+
10
+ let self = this;
11
+ // maintaining `baseURL` for backwards compatibility. See: http://emberjs.com/blog/2016/04/28/baseURL.html
12
+ - let baseURL = options.liveReloadBaseUrl || options.rootURL || options.baseURL;
13
+ + let baseURL = options.liveReloadBaseUrl || options.rootURL;
14
+ if (this.parent) {
15
+ let checker = new VersionChecker(this.parent);
16
+ let depedency = checker.for('ember-cli');
@@ -1,50 +1,46 @@
1
1
  {
2
2
  "manifest_version": 3,
3
- "name": "Ember Inspector (Nightly)",
3
+
4
+ "name": "Ember Inspector",
4
5
  "description": "Tool for debugging Ember applications.",
5
- "version": "2025.9.9",
6
+ "version": "{{EMBER_INSPECTOR_VERSION}}",
7
+
6
8
  "icons": {
7
9
  "16": "{{PANE_ROOT}}/assets/images/icon16.png",
8
10
  "38": "{{PANE_ROOT}}/assets/images/icon38.png",
9
11
  "48": "{{PANE_ROOT}}/assets/images/icon48.png",
10
12
  "128": "{{PANE_ROOT}}/assets/images/icon128.png"
11
13
  },
12
- "permissions": [
13
- "storage",
14
- "contextMenus"
15
- ],
16
- "host_permissions": [
17
- "<all_urls>"
18
- ],
14
+
15
+ "permissions": ["storage", "contextMenus"],
16
+ "host_permissions": ["<all_urls>"],
17
+
19
18
  "content_security_policy": {
20
19
  "extension_pages": "script-src 'self'; object-src 'self'"
21
20
  },
21
+
22
22
  "content_scripts": [
23
23
  {
24
- "matches": [
25
- "<all_urls>"
26
- ],
27
- "js": [
28
- "boot.js"
29
- ],
24
+ "matches": ["<all_urls>"],
25
+ "js": ["boot.js"],
30
26
  "world": "MAIN",
31
27
  "run_at": "document_start",
32
28
  "match_about_blank": true,
29
+ "match_origin_as_fallback": true,
33
30
  "all_frames": true
34
31
  },
35
32
  {
36
- "matches": [
37
- "<all_urls>"
38
- ],
39
- "js": [
40
- "content-script.js"
41
- ],
33
+ "matches": ["<all_urls>"],
34
+ "js": ["content-script.js"],
42
35
  "run_at": "document_end",
43
36
  "match_about_blank": true,
37
+ "match_origin_as_fallback": true,
44
38
  "all_frames": true
45
39
  }
46
40
  ],
41
+
47
42
  "devtools_page": "devtools.html",
43
+
48
44
  "action": {
49
45
  "default_icon": {
50
46
  "19": "{{PANE_ROOT}}/assets/images/icon19_grey.png",
@@ -52,17 +48,21 @@
52
48
  },
53
49
  "default_title": "This webpage is not running Ember.js"
54
50
  },
51
+
55
52
  "background": {
56
53
  "service_worker": "background.js"
57
54
  },
55
+
58
56
  "browser_specific_settings": {
59
57
  "gecko": {
60
58
  "id": "ember-inspector@emberjs.com"
61
59
  }
62
60
  },
61
+
63
62
  "options_ui": {
64
63
  "page": "options-dialog.html"
65
64
  },
65
+
66
66
  "web_accessible_resources": [
67
67
  {
68
68
  "resources": [
@@ -73,6 +73,5 @@
73
73
  "*://*/*"
74
74
  ]
75
75
  }
76
- ],
77
- "version_name": "4.13.1 (nightly build 2025.9.9 / 81c8dfd)"
76
+ ]
78
77
  }
@@ -91,11 +91,16 @@ module('Data Tab', function (outer) {
91
91
  test('Model types are successfully listed and bound', async function (assert) {
92
92
  respondWith('data:getModelTypes', {
93
93
  type: 'data:modelTypesAdded',
94
- modelTypes: getModelTypes(),
94
+ modelTypes: [],
95
95
  });
96
96
 
97
97
  await visit('/data/model-types');
98
98
 
99
+ await sendMessage({
100
+ type: 'data:modelTypesAdded',
101
+ modelTypes: getModelTypes(),
102
+ });
103
+
99
104
  assert.dom('.js-model-type').exists({ count: 2 });
100
105
 
101
106
  // they should be sorted alphabetically
@@ -7,7 +7,7 @@ import { setupTestAdapter } from '../test-adapter';
7
7
  function urlFor(ref) {
8
8
  return `https://raw.githubusercontent.com/emberjs/ember-inspector/${encodeURIComponent(
9
9
  ref,
10
- )}-ember-inspector/CHANGELOG.md`;
10
+ )}/CHANGELOG.md`;
11
11
  }
12
12
 
13
13
  function generateContent(main = false) {
@@ -17,7 +17,7 @@ function generateContent(main = false) {
17
17
 
18
18
  if (main) {
19
19
  content.push(`
20
- ## [Unreleased](https://github.com/emberjs/ember-inspector/tree/HEAD)
20
+ ## Release [Unreleased](https://github.com/emberjs/ember-inspector/tree/HEAD)
21
21
 
22
22
  **Merged pull requests:**
23
23
 
@@ -25,7 +25,7 @@ function generateContent(main = false) {
25
25
  }
26
26
 
27
27
  content.push(`
28
- ## v4.5.3 (2021-11-18)
28
+ ## Release (2021-11-18)
29
29
 
30
30
  [Full Changelog](https://emberjs.com)
31
31
 
@@ -33,7 +33,7 @@ function generateContent(main = false) {
33
33
 
34
34
  - Stuff
35
35
 
36
- ## v4.5.2 (2021-11-17)
36
+ ## Release (2021-11-17)
37
37
 
38
38
  [Full Changelog](https://emberjs.com)
39
39
 
@@ -76,7 +76,7 @@ module('Whats New', function (outer) {
76
76
 
77
77
  test('Changelog is parsed and displayed', async function (assert) {
78
78
  this.server = new Pretender(function () {
79
- this.get(urlFor('v4.5.3'), () => [
79
+ this.get(urlFor('v4.5.3-ember-inspector'), () => [
80
80
  200,
81
81
  { 'Content-Type': 'text/plain' },
82
82
  generateContent(),
@@ -91,14 +91,14 @@ module('Whats New', function (outer) {
91
91
 
92
92
  assert.strictEqual(
93
93
  find('.whats-new h2').textContent,
94
- 'v4.5.3 (2021-11-18)',
94
+ 'Release (2021-11-18)',
95
95
  'correct section of markdown is rendered',
96
96
  );
97
97
  });
98
98
 
99
99
  test('Error message is displayed on request failure', async function (assert) {
100
100
  this.server = new Pretender(function () {
101
- this.get(urlFor('v4.5.3'), () => [404, {}, '']);
101
+ this.get(urlFor('v4.5.3-ember-inspector'), () => [404, {}, '']);
102
102
  });
103
103
 
104
104
  await visit('/info/whats-new');
@@ -116,7 +116,7 @@ module('Whats New', function (outer) {
116
116
 
117
117
  test('Changelog is parsed and displayed', async function (assert) {
118
118
  this.server = new Pretender(function () {
119
- this.get(urlFor('main'), () => [
119
+ this.get(urlFor('release-preview'), () => [
120
120
  200,
121
121
  { 'Content-Type': 'text/plain' },
122
122
  generateContent(true),
@@ -138,7 +138,7 @@ module('Whats New', function (outer) {
138
138
 
139
139
  test('Error message is displayed on request failure', async function (assert) {
140
140
  this.server = new Pretender(function () {
141
- this.get(urlFor('main'), () => [404, {}, '']);
141
+ this.get(urlFor('release-preview'), () => [404, {}, '']);
142
142
  });
143
143
 
144
144
  await visit('/info/whats-new');
@@ -3,22 +3,13 @@ import { settled, visit, waitUntil } from '@ember/test-helpers';
3
3
  import { A as emberA } from '@ember/array';
4
4
 
5
5
  import EmberDebug from 'ember-debug/main';
6
- import Port from 'ember-debug/port';
7
6
  import setupEmberDebugTest from '../helpers/setup-ember-debug-test';
8
7
 
9
8
  // TODO: Figure out why these tests are flaky and enable them again
10
9
  module('Ember Debug - Container', function (hooks) {
11
10
  let name, message;
12
11
 
13
- setupEmberDebugTest(hooks, {
14
- Port: class extends Port {
15
- init() {}
16
- send(n, m) {
17
- name = n;
18
- message = m;
19
- }
20
- },
21
- });
12
+ setupEmberDebugTest(hooks);
22
13
 
23
14
  skip('#getTypes', async function t(assert) {
24
15
  await visit('/simple');
@@ -4,10 +4,16 @@ import Route from '@ember/routing/route';
4
4
  import RSVP from 'rsvp';
5
5
  import { run } from '@ember/runloop';
6
6
  import { module, test } from 'qunit';
7
- import EmberDebug from 'ember-debug/main';
8
7
  import setupEmberDebugTest from '../helpers/setup-ember-debug-test';
9
8
 
9
+ import EmberDebugImport from 'ember-debug/main';
10
+ let EmberDebug;
11
+
10
12
  module('Ember Debug - Deprecation', function (hooks) {
13
+ hooks.before(async function () {
14
+ EmberDebug = (await EmberDebugImport).default;
15
+ });
16
+
11
17
  setupEmberDebugTest(hooks);
12
18
 
13
19
  hooks.beforeEach(async function () {
@@ -1,8 +1,10 @@
1
1
  import { module, test } from 'qunit';
2
- import EmberDebug from 'ember-debug/main';
3
2
  import { setupApplicationTest } from 'ember-qunit';
4
3
  import EmberObject from '@ember/object';
5
4
 
5
+ import EmberDebugImport from 'ember-debug/main';
6
+ let EmberDebug = EmberDebugImport;
7
+
6
8
  class Adapter extends EmberObject {
7
9
  watchModelTypes() {}
8
10
  }
@@ -10,6 +12,10 @@ class Adapter extends EmberObject {
10
12
  module('Ember Debug - Data', function (hooks) {
11
13
  setupApplicationTest(hooks);
12
14
 
15
+ hooks.before(async function () {
16
+ EmberDebug = (await EmberDebug).default;
17
+ });
18
+
13
19
  hooks.beforeEach(function () {
14
20
  this.owner.register('data-adapter:main', Adapter);
15
21
  EmberDebug.isTesting = true;
@@ -1,24 +1,27 @@
1
1
  import EmberObject from '@ember/object';
2
2
  import { module, test } from 'qunit';
3
3
  import setupEmberDebugTest from '../helpers/setup-ember-debug-test';
4
- import EmberDebug from 'ember-debug/main';
5
- import Port from 'ember-debug/port';
6
4
  import { settled } from '@ember/test-helpers';
7
5
 
6
+ import EmberDebugImport from 'ember-debug/main';
7
+ let EmberDebug;
8
+
8
9
  module('Ember Debug', function (hooks) {
9
10
  let name, adapter;
10
11
 
11
- setupEmberDebugTest(hooks, {
12
- Port: class extends Port {
13
- init() {}
14
- send(n) {
15
- name = n;
16
- }
17
- },
12
+ hooks.before(async function () {
13
+ EmberDebug = (await EmberDebugImport).default;
18
14
  });
19
15
 
16
+ setupEmberDebugTest(hooks);
17
+
20
18
  hooks.beforeEach(async function () {
21
19
  adapter = EmberDebug.port.adapter;
20
+ EmberDebug.port.reopen({
21
+ send(n) {
22
+ name = n;
23
+ },
24
+ });
22
25
  });
23
26
 
24
27
  function cantSend(obj, assert) {
@@ -19,12 +19,14 @@ import { hbs } from 'ember-cli-htmlbars';
19
19
  import require from 'require';
20
20
  import hasEmberVersion from '@ember/test-helpers/has-ember-version';
21
21
  import { compareVersion } from 'ember-debug/version';
22
- import EmberDebug from 'ember-debug/main';
23
22
  import setupEmberDebugTest from '../helpers/setup-ember-debug-test';
24
23
  import EmberRoute from '@ember/routing/route';
25
24
  import Controller from '@ember/controller';
26
25
  import { setOwner } from '@ember/application';
27
26
 
27
+ import EmberDebugImport from 'ember-debug/main';
28
+ let EmberDebug = EmberDebugImport;
29
+
28
30
  const GlimmerComponent = (function () {
29
31
  try {
30
32
  return require('@glimmer/component').default;
@@ -77,6 +79,10 @@ async function inspectObject(object) {
77
79
  }
78
80
 
79
81
  module('Ember Debug - Object Inspector', function (hooks) {
82
+ hooks.before(async function () {
83
+ EmberDebug = (await EmberDebugImport).default;
84
+ });
85
+
80
86
  setupEmberDebugTest(hooks, {
81
87
  routes() {
82
88
  this.route('simple');