@vscode/component-explorer-cli 0.2.1-5 → 0.2.1-51

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 (197) hide show
  1. package/README.md +6 -6
  2. package/dist/WorktreePool.d.ts +5 -4
  3. package/dist/WorktreePool.d.ts.map +1 -1
  4. package/dist/WorktreePool.js +3 -3
  5. package/dist/WorktreePool.js.map +1 -1
  6. package/dist/_virtual/_build-info.js +1 -1
  7. package/dist/browserPage.d.ts +50 -0
  8. package/dist/browserPage.d.ts.map +1 -1
  9. package/dist/browserPage.js +78 -0
  10. package/dist/browserPage.js.map +1 -1
  11. package/dist/commands/acceptCommand.d.ts +1 -1
  12. package/dist/commands/acceptCommand.d.ts.map +1 -1
  13. package/dist/commands/acceptCommand.js +15 -8
  14. package/dist/commands/acceptCommand.js.map +1 -1
  15. package/dist/commands/checkStabilityCommand.d.ts +2 -0
  16. package/dist/commands/checkStabilityCommand.d.ts.map +1 -1
  17. package/dist/commands/checkStabilityCommand.js +19 -2
  18. package/dist/commands/checkStabilityCommand.js.map +1 -1
  19. package/dist/commands/compareCommand.d.ts +1 -1
  20. package/dist/commands/compareCommand.d.ts.map +1 -1
  21. package/dist/commands/compareCommand.js +24 -15
  22. package/dist/commands/compareCommand.js.map +1 -1
  23. package/dist/commands/inputArg.d.ts +33 -0
  24. package/dist/commands/inputArg.d.ts.map +1 -0
  25. package/dist/commands/inputArg.js +103 -0
  26. package/dist/commands/inputArg.js.map +1 -0
  27. package/dist/commands/mcpCommand.d.ts +0 -2
  28. package/dist/commands/mcpCommand.d.ts.map +1 -1
  29. package/dist/commands/mcpCommand.js +136 -68
  30. package/dist/commands/mcpCommand.js.map +1 -1
  31. package/dist/commands/renderCommand.d.ts +9 -1
  32. package/dist/commands/renderCommand.d.ts.map +1 -1
  33. package/dist/commands/renderCommand.js +308 -21
  34. package/dist/commands/renderCommand.js.map +1 -1
  35. package/dist/commands/serveCommand.d.ts +1 -0
  36. package/dist/commands/serveCommand.d.ts.map +1 -1
  37. package/dist/commands/serveCommand.js +11 -6
  38. package/dist/commands/serveCommand.js.map +1 -1
  39. package/dist/commands/serviceDiffCommitsCommand.d.ts +1 -0
  40. package/dist/commands/serviceDiffCommitsCommand.d.ts.map +1 -1
  41. package/dist/commands/serviceDiffCommitsCommand.js +34 -28
  42. package/dist/commands/serviceDiffCommitsCommand.js.map +1 -1
  43. package/dist/commands/watchCommand.d.ts +1 -0
  44. package/dist/commands/watchCommand.d.ts.map +1 -1
  45. package/dist/commands/watchCommand.js +24 -13
  46. package/dist/commands/watchCommand.js.map +1 -1
  47. package/dist/comparison.d.ts +4 -3
  48. package/dist/comparison.d.ts.map +1 -1
  49. package/dist/comparison.js +17 -14
  50. package/dist/comparison.js.map +1 -1
  51. package/dist/component-explorer-config.schema.json +55 -2
  52. package/dist/componentExplorer.d.ts +106 -11
  53. package/dist/componentExplorer.d.ts.map +1 -1
  54. package/dist/componentExplorer.js +159 -16
  55. package/dist/componentExplorer.js.map +1 -1
  56. package/dist/config.d.ts +33 -4
  57. package/dist/config.d.ts.map +1 -1
  58. package/dist/config.js +64 -27
  59. package/dist/config.js.map +1 -1
  60. package/dist/coverage.d.ts +64 -0
  61. package/dist/coverage.d.ts.map +1 -0
  62. package/dist/coverage.js +212 -0
  63. package/dist/coverage.js.map +1 -0
  64. package/dist/daemon/DaemonService.d.ts +14 -5
  65. package/dist/daemon/DaemonService.d.ts.map +1 -1
  66. package/dist/daemon/DaemonService.js +39 -15
  67. package/dist/daemon/DaemonService.js.map +1 -1
  68. package/dist/daemon/approvalStore.d.ts +2 -1
  69. package/dist/daemon/approvalStore.d.ts.map +1 -1
  70. package/dist/daemon/approvalStore.js +4 -3
  71. package/dist/daemon/approvalStore.js.map +1 -1
  72. package/dist/daemon/inProcessClient.js +2 -2
  73. package/dist/daemon/lifecycle.d.ts +4 -1
  74. package/dist/daemon/lifecycle.d.ts.map +1 -1
  75. package/dist/daemon/lifecycle.js +1 -1
  76. package/dist/daemon/lifecycle.js.map +1 -1
  77. package/dist/daemon/pipeClient.d.ts +2 -0
  78. package/dist/daemon/pipeClient.d.ts.map +1 -1
  79. package/dist/daemon/pipeClient.js +21 -3
  80. package/dist/daemon/pipeClient.js.map +1 -1
  81. package/dist/daemon/pipeName.d.ts +3 -3
  82. package/dist/daemon/pipeName.d.ts.map +1 -1
  83. package/dist/daemon/pipeName.js +1 -2
  84. package/dist/daemon/pipeName.js.map +1 -1
  85. package/dist/daemon/pipeServer.js +2 -2
  86. package/dist/daemon/version.d.ts +1 -1
  87. package/dist/daemon/version.js +1 -1
  88. package/dist/dependencyInstaller.d.ts +2 -1
  89. package/dist/dependencyInstaller.d.ts.map +1 -1
  90. package/dist/dependencyInstaller.js +4 -4
  91. package/dist/dependencyInstaller.js.map +1 -1
  92. package/dist/external/vscode-observables/observables/dist/observableInternal/debugLocation.js +3 -2
  93. package/dist/external/vscode-observables/observables/dist/observableInternal/debugLocation.js.map +1 -1
  94. package/dist/external/vscode-observables/observables/dist/observableInternal/experimental/manualObserver.js +85 -0
  95. package/dist/external/vscode-observables/observables/dist/observableInternal/experimental/manualObserver.js.map +1 -0
  96. package/dist/external/vscode-observables/observables/dist/observableInternal/index.js +3 -3
  97. package/dist/external/vscode-observables/observables/dist/observableInternal/index.js.map +1 -1
  98. package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js +171 -28
  99. package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js.map +1 -1
  100. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js +9 -6
  101. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js.map +1 -1
  102. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/derivedImpl.js +11 -8
  103. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/derivedImpl.js.map +1 -1
  104. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/observableValue.js +7 -5
  105. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/observableValue.js.map +1 -1
  106. package/dist/external/vscode-observables/observables/dist/observableInternal/reactions/autorunImpl.js +16 -0
  107. package/dist/external/vscode-observables/observables/dist/observableInternal/reactions/autorunImpl.js.map +1 -1
  108. package/dist/git/gitCommitResolver.d.ts +2 -1
  109. package/dist/git/gitCommitResolver.d.ts.map +1 -1
  110. package/dist/git/gitCommitResolver.js +2 -2
  111. package/dist/git/gitCommitResolver.js.map +1 -1
  112. package/dist/git/gitIndexResolver.d.ts +2 -1
  113. package/dist/git/gitIndexResolver.d.ts.map +1 -1
  114. package/dist/git/gitIndexResolver.js +1 -1
  115. package/dist/git/gitIndexResolver.js.map +1 -1
  116. package/dist/git/gitService.d.ts +5 -4
  117. package/dist/git/gitService.d.ts.map +1 -1
  118. package/dist/git/gitService.js.map +1 -1
  119. package/dist/git/gitUtils.d.ts +6 -5
  120. package/dist/git/gitUtils.d.ts.map +1 -1
  121. package/dist/git/gitUtils.js +5 -4
  122. package/dist/git/gitUtils.js.map +1 -1
  123. package/dist/git/gitWorktreeManager.d.ts +15 -14
  124. package/dist/git/gitWorktreeManager.d.ts.map +1 -1
  125. package/dist/git/gitWorktreeManager.js +10 -11
  126. package/dist/git/gitWorktreeManager.js.map +1 -1
  127. package/dist/git/testUtils.d.ts +2 -1
  128. package/dist/git/testUtils.d.ts.map +1 -1
  129. package/dist/index.js +10 -1
  130. package/dist/index.js.map +1 -1
  131. package/dist/manifest.schema.json +38 -16
  132. package/dist/mcp/DaemonAccessor.d.ts +22 -0
  133. package/dist/mcp/DaemonAccessor.d.ts.map +1 -0
  134. package/dist/mcp/McpServer.d.ts +5 -19
  135. package/dist/mcp/McpServer.d.ts.map +1 -1
  136. package/dist/mcp/McpServer.js +367 -281
  137. package/dist/mcp/McpServer.js.map +1 -1
  138. package/dist/packages/common/dist/explorerUrl.js +21 -0
  139. package/dist/packages/common/dist/explorerUrl.js.map +1 -0
  140. package/dist/packages/common/dist/renderManifest.js +26 -5
  141. package/dist/packages/common/dist/renderManifest.js.map +1 -1
  142. package/dist/packages/simple-api/dist/{chunk-3R7GHWBM.js → chunk-FJ7AVNQE.js} +2 -1
  143. package/dist/packages/simple-api/dist/chunk-FJ7AVNQE.js.map +1 -0
  144. package/dist/packages/simple-api/dist/{chunk-SGBCNXYH.js → chunk-TTRCY65Z.js} +4 -1
  145. package/dist/packages/simple-api/dist/chunk-TTRCY65Z.js.map +1 -0
  146. package/dist/packages/simple-api/dist/{chunk-TAEFVNPN.js → chunk-WNXMRXWV.js} +2 -1
  147. package/dist/packages/simple-api/dist/chunk-WNXMRXWV.js.map +1 -0
  148. package/dist/packages/simple-api/dist/express.js +1 -1
  149. package/dist/packages/simple-api/dist/express.js.map +1 -1
  150. package/dist/path.d.ts +30 -0
  151. package/dist/path.d.ts.map +1 -0
  152. package/dist/path.js +78 -0
  153. package/dist/path.js.map +1 -0
  154. package/dist/processTree.d.ts +9 -0
  155. package/dist/processTree.d.ts.map +1 -0
  156. package/dist/processTree.js +41 -0
  157. package/dist/processTree.js.map +1 -0
  158. package/dist/screenshotServiceClient.d.ts +5 -1
  159. package/dist/screenshotServiceClient.d.ts.map +1 -1
  160. package/dist/screenshotServiceClient.js +8 -2
  161. package/dist/screenshotServiceClient.js.map +1 -1
  162. package/dist/server/httpServer.d.ts +1 -1
  163. package/dist/server/httpServer.d.ts.map +1 -1
  164. package/dist/server/httpServer.js +22 -20
  165. package/dist/server/httpServer.js.map +1 -1
  166. package/dist/server/serverConfig.d.ts +23 -6
  167. package/dist/server/serverConfig.d.ts.map +1 -1
  168. package/dist/server/serverConfig.js +11 -18
  169. package/dist/server/serverConfig.js.map +1 -1
  170. package/dist/server/viteServer.d.ts +16 -1
  171. package/dist/server/viteServer.d.ts.map +1 -1
  172. package/dist/server/viteServer.js +86 -5
  173. package/dist/server/viteServer.js.map +1 -1
  174. package/dist/storage.d.ts +2 -1
  175. package/dist/storage.d.ts.map +1 -1
  176. package/dist/storage.js +1 -1
  177. package/dist/storage.js.map +1 -1
  178. package/dist/utils.d.ts +3 -30
  179. package/dist/utils.d.ts.map +1 -1
  180. package/dist/utils.js +4 -24
  181. package/dist/utils.js.map +1 -1
  182. package/dist/visualCache.d.ts +2 -1
  183. package/dist/visualCache.d.ts.map +1 -1
  184. package/dist/visualCache.js +4 -3
  185. package/dist/visualCache.js.map +1 -1
  186. package/dist/viteProjectRef.d.ts +4 -12
  187. package/dist/viteProjectRef.d.ts.map +1 -1
  188. package/dist/viteProjectRef.js +9 -17
  189. package/dist/viteProjectRef.js.map +1 -1
  190. package/package.json +20 -19
  191. package/dist/commands/artifactCommand.d.ts +0 -14
  192. package/dist/commands/artifactCommand.d.ts.map +0 -1
  193. package/dist/commands/screenshotCommand.d.ts +0 -19
  194. package/dist/commands/screenshotCommand.d.ts.map +0 -1
  195. package/dist/packages/simple-api/dist/chunk-3R7GHWBM.js.map +0 -1
  196. package/dist/packages/simple-api/dist/chunk-SGBCNXYH.js.map +0 -1
  197. package/dist/packages/simple-api/dist/chunk-TAEFVNPN.js.map +0 -1
@@ -0,0 +1,85 @@
1
+ import { DebugNameData } from '../debugName.js';
2
+ import { getLogger } from '../logging/logging.js';
3
+ import { DebugLocation } from '../debugLocation.js';
4
+ import { _getDebugHelperClass } from '../observables/baseObservable.js';
5
+
6
+ /*---------------------------------------------------------------------------------------------
7
+ * Copyright (c) Microsoft Corporation. All rights reserved.
8
+ * Licensed under the MIT License. See License.txt in the project root for license information.
9
+ *--------------------------------------------------------------------------------------------*/
10
+
11
+ /*---------------------------------------------------------------------------------------------
12
+ * Copyright (c) Microsoft Corporation. All rights reserved.
13
+ * Licensed under the MIT License. See License.txt in the project root for license information.
14
+ *--------------------------------------------------------------------------------------------*/
15
+ class ManualChangesHandler {
16
+ constructor(_run) {
17
+ this._run = _run;
18
+ this._changes = [];
19
+ this._updateCounter = 0;
20
+ }
21
+ beginUpdate(observable) {
22
+ this._updateCounter++;
23
+ this._changes.push(observable);
24
+ }
25
+ endUpdate(_observable) {
26
+ this._updateCounter--;
27
+ if (this._updateCounter === 0) {
28
+ if (this._changes.length > 0) {
29
+ const c = this._changes;
30
+ this._changes = [];
31
+ this._run(c);
32
+ }
33
+ }
34
+ }
35
+ handlePossibleChange(observable) {
36
+ this._changes.push(observable);
37
+ }
38
+ handleChange(_observable, _change) {
39
+ }
40
+ }
41
+ class ManualObserver {
42
+ constructor(_run, debugName, debugLocation = DebugLocation.ofCaller()) {
43
+ this._run = _run;
44
+ this._dependencies = new Set();
45
+ this._disposed = false;
46
+ this.debugName = debugName ?? '(anonymous ManualObserver)';
47
+ this._debugNameData = new DebugNameData(undefined, this.debugName, undefined);
48
+ this._runFn = _run;
49
+ this._handler = new ManualChangesHandler(() => {
50
+ if (!this._disposed) {
51
+ this._run();
52
+ }
53
+ });
54
+ getLogger()?.handleAutorunCreated(this, debugLocation);
55
+ }
56
+ get reader() {
57
+ return this;
58
+ }
59
+ readObservable(observable) {
60
+ observable.addObserver(this._handler);
61
+ const value = observable.get();
62
+ this._dependencies.add(observable);
63
+ return value;
64
+ }
65
+ getDependencies() {
66
+ return this._dependencies;
67
+ }
68
+ get debug() {
69
+ return new (_getDebugHelperClass())(this);
70
+ }
71
+ dispose() {
72
+ if (this._disposed) {
73
+ return;
74
+ }
75
+ this._disposed = true;
76
+ for (const dep of this._dependencies) {
77
+ dep.removeObserver(this._handler);
78
+ }
79
+ this._dependencies.clear();
80
+ getLogger()?.handleAutorunDisposed(this);
81
+ }
82
+ }
83
+
84
+ export { ManualChangesHandler, ManualObserver };
85
+ //# sourceMappingURL=manualObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manualObserver.js","sources":["../../../../../../../../../external/vscode-observables/observables/dist/observableInternal/experimental/manualObserver.js"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { DebugNameData } from '../debugName.js';\nimport { getLogger } from '../logging/logging.js';\nimport { DebugLocation } from '../debugLocation.js';\nimport { _getDebugHelperClass } from '../observables/baseObservable.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass ManualChangesHandler {\n constructor(_run) {\n this._run = _run;\n this._changes = [];\n this._updateCounter = 0;\n }\n beginUpdate(observable) {\n this._updateCounter++;\n this._changes.push(observable);\n }\n endUpdate(_observable) {\n this._updateCounter--;\n if (this._updateCounter === 0) {\n if (this._changes.length > 0) {\n const c = this._changes;\n this._changes = [];\n this._run(c);\n }\n }\n }\n handlePossibleChange(observable) {\n this._changes.push(observable);\n }\n handleChange(_observable, _change) {\n }\n}\nclass ManualObserver {\n constructor(_run, debugName, debugLocation = DebugLocation.ofCaller()) {\n this._run = _run;\n this._dependencies = new Set();\n this._disposed = false;\n this.debugName = debugName ?? '(anonymous ManualObserver)';\n this._debugNameData = new DebugNameData(undefined, this.debugName, undefined);\n this._runFn = _run;\n this._handler = new ManualChangesHandler(() => {\n if (!this._disposed) {\n this._run();\n }\n });\n getLogger()?.handleAutorunCreated(this, debugLocation);\n }\n get reader() {\n return this;\n }\n readObservable(observable) {\n observable.addObserver(this._handler);\n const value = observable.get();\n this._dependencies.add(observable);\n return value;\n }\n getDependencies() {\n return this._dependencies;\n }\n get debug() {\n return new (_getDebugHelperClass())(this);\n }\n dispose() {\n if (this._disposed) {\n return;\n }\n this._disposed = true;\n for (const dep of this._dependencies) {\n dep.removeObserver(this._handler);\n }\n this._dependencies.clear();\n getLogger()?.handleAutorunDisposed(this);\n }\n}\n\nexport { ManualChangesHandler, ManualObserver };\n//# sourceMappingURL=manualObserver.js.map\n"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { setLogObservableFn } from './logging/logging.js';
2
- import { _setDebugGetDependencyGraph } from './observables/baseObservable.js';
2
+ import { _setDebugHelperClass } from './observables/baseObservable.js';
3
3
  export { DebugLocation } from './debugLocation.js';
4
4
  export { derived, derivedOpts } from './observables/derived.js';
5
5
  export { keepObserved, recomputeInitiallyAndOnChange } from './utils/utils.js';
6
6
  export { observableFromEvent } from './observables/observableFromEvent.js';
7
7
  import { logObservableToConsole } from './logging/consoleObservableLogger.js';
8
- import { debugGetDependencyGraph } from './logging/debugGetDependencyGraph.js';
8
+ import { DebugHelper } from './logging/debugGetDependencyGraph.js';
9
9
 
10
10
  /*---------------------------------------------------------------------------------------------
11
11
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -17,6 +17,6 @@ import { debugGetDependencyGraph } from './logging/debugGetDependencyGraph.js';
17
17
  * Licensed under the MIT License. See License.txt in the project root for license information.
18
18
  *--------------------------------------------------------------------------------------------*/
19
19
  // This is a facade for the observable implementation. Only import from here!
20
- _setDebugGetDependencyGraph(debugGetDependencyGraph);
20
+ _setDebugHelperClass(DebugHelper);
21
21
  setLogObservableFn(logObservableToConsole);
22
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../../../external/vscode-observables/observables/dist/observableInternal/index.js"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { setLogObservableFn } from './logging/logging.js';\nimport { _setDebugGetDependencyGraph } from './observables/baseObservable.js';\nexport { DebugLocation } from './debugLocation.js';\nexport { derived, derivedDisposable, derivedHandleChanges, derivedOpts, derivedWithSetter, derivedWithStore } from './observables/derived.js';\nexport { debouncedObservable, debouncedObservableDeprecated, derivedObservableWithCache, derivedObservableWithWritableCache, keepObserved, mapObservableArrayCached, observableFromPromise, recomputeInitiallyAndOnChange, signalFromObservable, wasEventTriggeredRecently } from './utils/utils.js';\nexport { observableFromEvent, observableFromEventOpts } from './observables/observableFromEvent.js';\nimport { logObservableToConsole } from './logging/consoleObservableLogger.js';\nimport { debugGetDependencyGraph } from './logging/debugGetDependencyGraph.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// This is a facade for the observable implementation. Only import from here!\n_setDebugGetDependencyGraph(debugGetDependencyGraph);\nsetLogObservableFn(logObservableToConsole);\n//# sourceMappingURL=index.js.map\n"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA,2BAA2B,CAAC,uBAAuB,CAAC;AACpD,kBAAkB,CAAC,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../../external/vscode-observables/observables/dist/observableInternal/index.js"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { setLogObservableFn } from './logging/logging.js';\nimport { _setDebugHelperClass } from './observables/baseObservable.js';\nexport { DebugLocation } from './debugLocation.js';\nexport { derived, derivedDisposable, derivedHandleChanges, derivedOpts, derivedWithSetter, derivedWithStore } from './observables/derived.js';\nexport { debouncedObservable, debouncedObservableDeprecated, derivedObservableWithCache, derivedObservableWithWritableCache, keepObserved, mapObservableArrayCached, observableFromPromise, recomputeInitiallyAndOnChange, signalFromObservable, wasEventTriggeredRecently } from './utils/utils.js';\nexport { observableFromEvent, observableFromEventOpts } from './observables/observableFromEvent.js';\nimport { logObservableToConsole } from './logging/consoleObservableLogger.js';\nimport { DebugHelper } from './logging/debugGetDependencyGraph.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// This is a facade for the observable implementation. Only import from here!\n_setDebugHelperClass(DebugHelper);\nsetLogObservableFn(logObservableToConsole);\n//# sourceMappingURL=index.js.map\n"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA,oBAAoB,CAAC,WAAW,CAAC;AACjC,kBAAkB,CAAC,sBAAsB,CAAC"}
@@ -2,6 +2,7 @@ import { Derived } from '../observables/derivedImpl.js';
2
2
  import { FromEventObservable } from '../observables/observableFromEvent.js';
3
3
  import { ObservableValue } from '../observables/observableValue.js';
4
4
  import { AutorunObserver } from '../reactions/autorunImpl.js';
5
+ import { ManualObserver } from '../experimental/manualObserver.js';
5
6
  import { formatValue } from './consoleObservableLogger.js';
6
7
 
7
8
  /*---------------------------------------------------------------------------------------------
@@ -13,67 +14,209 @@ import { formatValue } from './consoleObservableLogger.js';
13
14
  * Copyright (c) Microsoft Corporation. All rights reserved.
14
15
  * Licensed under the MIT License. See License.txt in the project root for license information.
15
16
  *--------------------------------------------------------------------------------------------*/
16
- function debugGetDependencyGraph(obs, options) {
17
- const debugNamePostProcessor = options?.debugNamePostProcessor ?? ((str) => str);
18
- const info = Info.from(obs, debugNamePostProcessor);
19
- if (!info) {
20
- return '';
21
- }
22
- const alreadyListed = new Set();
23
- return formatObservableInfo(info, 0, alreadyListed).trim();
17
+ // ---------------------------------------------------------------------------
18
+ // GraphInfo the result of graph traversal, separated from rendering
19
+ // ---------------------------------------------------------------------------
20
+ class GraphInfo {
21
+ constructor(name, type, value, state, children) {
22
+ this.name = name;
23
+ this.type = type;
24
+ this.value = value;
25
+ this.state = state;
26
+ this.children = children;
27
+ }
24
28
  }
25
- function formatObservableInfo(info, indentLevel, alreadyListed) {
29
+ function buildGraph(obs, options) {
30
+ const debugNamePostProcessor = options.debugNamePostProcessor ?? ((s) => s);
31
+ const visited = new Map();
32
+ function build(node) {
33
+ const existing = visited.get(node);
34
+ if (existing) {
35
+ return existing;
36
+ }
37
+ const info = RawInfo.from(node, debugNamePostProcessor) ?? RawInfo.unknown(node);
38
+ const children = options.type === 'observers' ? info.observers : info.dependencies;
39
+ const graphInfo = new GraphInfo(info.name, info.type, info.value, info.state, []);
40
+ visited.set(info.sourceObj, graphInfo);
41
+ graphInfo.children.push(...children.map(build));
42
+ return graphInfo;
43
+ }
44
+ const root = RawInfo.from(obs, debugNamePostProcessor);
45
+ if (!root) {
46
+ return undefined;
47
+ }
48
+ return build(obs);
49
+ }
50
+ // ---------------------------------------------------------------------------
51
+ // Text backend
52
+ // ---------------------------------------------------------------------------
53
+ function formatAsText(graph) {
54
+ const visited = new Set();
55
+ return formatNodeAsText(graph, 0, visited).trim();
56
+ }
57
+ function formatNodeAsText(node, indentLevel, visited) {
26
58
  const indent = '\t\t'.repeat(indentLevel);
27
59
  const lines = [];
28
- const isAlreadyListed = alreadyListed.has(info.sourceObj);
29
- if (isAlreadyListed) {
30
- lines.push(`${indent}* ${info.type} ${info.name} (already listed)`);
60
+ if (visited.has(node)) {
61
+ lines.push(`${indent}* ${node.type} ${node.name} (already listed)`);
31
62
  return lines.join('\n');
32
63
  }
33
- alreadyListed.add(info.sourceObj);
34
- lines.push(`${indent}* ${info.type} ${info.name}:`);
35
- lines.push(`${indent} value: ${formatValue(info.value, 50)}`);
36
- lines.push(`${indent} state: ${info.state}`);
37
- if (info.dependencies.length > 0) {
38
- lines.push(`${indent} dependencies:`);
39
- for (const dep of info.dependencies) {
40
- lines.push(formatObservableInfo(dep, indentLevel + 1, alreadyListed));
64
+ visited.add(node);
65
+ lines.push(`${indent}* ${node.type} ${node.name}:`);
66
+ lines.push(`${indent} value: ${formatValue(node.value, 50)}`);
67
+ lines.push(`${indent} state: ${node.state}`);
68
+ if (node.children.length > 0) {
69
+ lines.push(`${indent} children:`);
70
+ for (const child of node.children) {
71
+ lines.push(formatNodeAsText(child, indentLevel + 1, visited));
72
+ }
73
+ }
74
+ return lines.join('\n');
75
+ }
76
+ // ---------------------------------------------------------------------------
77
+ // Mermaid backend
78
+ // ---------------------------------------------------------------------------
79
+ function formatAsMermaid(graph) {
80
+ const nodeIds = new Map();
81
+ let nextId = 0;
82
+ const getNodeId = (node) => {
83
+ let id = nodeIds.get(node);
84
+ if (!id) {
85
+ id = `n${nextId++}`;
86
+ nodeIds.set(node, id);
87
+ }
88
+ return id;
89
+ };
90
+ const lines = ['graph TD'];
91
+ const visited = new Set();
92
+ const escape = (s) => s.replace(/"/g, '#quot;');
93
+ function visit(node) {
94
+ if (visited.has(node)) {
95
+ return;
96
+ }
97
+ visited.add(node);
98
+ const id = getNodeId(node);
99
+ const label = `${node.type}: ${node.name}\\nstate: ${node.state}${node.value !== undefined ? `\\nvalue: ${formatValue(node.value, 30)}` : ''}`;
100
+ lines.push(` ${id}["${escape(label)}"]`);
101
+ for (const child of node.children) {
102
+ lines.push(` ${id} --> ${getNodeId(child)}`);
103
+ visit(child);
104
+ }
105
+ }
106
+ visit(graph);
107
+ return lines.join('\n');
108
+ }
109
+ // ---------------------------------------------------------------------------
110
+ // Graphviz DOT backend
111
+ // ---------------------------------------------------------------------------
112
+ function formatAsGraphviz(graph) {
113
+ const nodeIds = new Map();
114
+ let nextId = 0;
115
+ const getNodeId = (node) => {
116
+ let id = nodeIds.get(node);
117
+ if (!id) {
118
+ id = `n${nextId++}`;
119
+ nodeIds.set(node, id);
120
+ }
121
+ return id;
122
+ };
123
+ const lines = ['digraph {'];
124
+ const visited = new Set();
125
+ const escape = (s) => s.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
126
+ function visit(node) {
127
+ if (visited.has(node)) {
128
+ return;
129
+ }
130
+ visited.add(node);
131
+ const id = getNodeId(node);
132
+ const label = `${node.type}: ${node.name}\nstate: ${node.state}${node.value !== undefined ? `\nvalue: ${formatValue(node.value, 30)}` : ''}`;
133
+ lines.push(` ${id} [label="${escape(label)}"]`);
134
+ for (const child of node.children) {
135
+ lines.push(` ${id} -> ${getNodeId(child)}`);
136
+ visit(child);
41
137
  }
42
138
  }
139
+ visit(graph);
140
+ lines.push('}');
43
141
  return lines.join('\n');
44
142
  }
45
- class Info {
143
+ // ---------------------------------------------------------------------------
144
+ // DebugHelper — the public API for .debug on observables and observers
145
+ // ---------------------------------------------------------------------------
146
+ class DebugHelper {
147
+ constructor(_node) {
148
+ this._node = _node;
149
+ }
150
+ buildDependencyGraph() {
151
+ return buildGraph(this._node, { type: 'dependencies' });
152
+ }
153
+ buildObserverGraph() {
154
+ return buildGraph(this._node, { type: 'observers' });
155
+ }
156
+ getDependencyGraph() {
157
+ const graph = this.buildDependencyGraph();
158
+ return graph ? formatAsText(graph) : '';
159
+ }
160
+ getObserverGraph() {
161
+ const graph = this.buildObserverGraph();
162
+ return graph ? formatAsText(graph) : '';
163
+ }
164
+ getDependencyMermaid() {
165
+ const graph = this.buildDependencyGraph();
166
+ return graph ? formatAsMermaid(graph) : '';
167
+ }
168
+ getObserverMermaid() {
169
+ const graph = this.buildObserverGraph();
170
+ return graph ? formatAsMermaid(graph) : '';
171
+ }
172
+ getDependencyGraphviz() {
173
+ const graph = this.buildDependencyGraph();
174
+ return graph ? formatAsGraphviz(graph) : '';
175
+ }
176
+ getObserverGraphviz() {
177
+ const graph = this.buildObserverGraph();
178
+ return graph ? formatAsGraphviz(graph) : '';
179
+ }
180
+ }
181
+ // ---------------------------------------------------------------------------
182
+ // RawInfo — internal: extracts metadata from concrete observable/observer types
183
+ // ---------------------------------------------------------------------------
184
+ class RawInfo {
46
185
  static from(obs, debugNamePostProcessor) {
47
186
  if (obs instanceof AutorunObserver) {
48
187
  const state = obs.debugGetState();
49
- return new Info(obs, debugNamePostProcessor(obs.debugName), 'autorun', undefined, state.stateStr, Array.from(state.dependencies).map(dep => Info.from(dep, debugNamePostProcessor) || Info.unknown(dep)));
188
+ return new RawInfo(obs, debugNamePostProcessor(obs.debugName), 'autorun', undefined, state.stateStr, Array.from(state.dependencies), []);
189
+ }
190
+ else if (obs instanceof ManualObserver) {
191
+ return new RawInfo(obs, debugNamePostProcessor(obs.debugName), 'manualObserver', undefined, 'active', Array.from(obs.getDependencies()), []);
50
192
  }
51
193
  else if (obs instanceof Derived) {
52
194
  const state = obs.debugGetState();
53
- return new Info(obs, debugNamePostProcessor(obs.debugName), 'derived', state.value, state.stateStr, Array.from(state.dependencies).map(dep => Info.from(dep, debugNamePostProcessor) || Info.unknown(dep)));
195
+ return new RawInfo(obs, debugNamePostProcessor(obs.debugName), 'derived', state.value, state.stateStr, Array.from(state.dependencies), Array.from(obs.debugGetObservers()));
54
196
  }
55
197
  else if (obs instanceof ObservableValue) {
56
198
  const state = obs.debugGetState();
57
- return new Info(obs, debugNamePostProcessor(obs.debugName), 'observableValue', state.value, 'upToDate', []);
199
+ return new RawInfo(obs, debugNamePostProcessor(obs.debugName), 'observableValue', state.value, 'upToDate', [], Array.from(obs.debugGetObservers()));
58
200
  }
59
201
  else if (obs instanceof FromEventObservable) {
60
202
  const state = obs.debugGetState();
61
- return new Info(obs, debugNamePostProcessor(obs.debugName), 'fromEvent', state.value, state.hasValue ? 'upToDate' : 'initial', []);
203
+ return new RawInfo(obs, debugNamePostProcessor(obs.debugName), 'fromEvent', state.value, state.hasValue ? 'upToDate' : 'initial', [], Array.from(obs.debugGetObservers()));
62
204
  }
63
205
  return undefined;
64
206
  }
65
207
  static unknown(obs) {
66
- return new Info(obs, '(unknown)', 'unknown', undefined, 'unknown', []);
208
+ return new RawInfo(obs, '(unknown)', 'unknown', undefined, 'unknown', [], []);
67
209
  }
68
- constructor(sourceObj, name, type, value, state, dependencies) {
210
+ constructor(sourceObj, name, type, value, state, dependencies, observers) {
69
211
  this.sourceObj = sourceObj;
70
212
  this.name = name;
71
213
  this.type = type;
72
214
  this.value = value;
73
215
  this.state = state;
74
216
  this.dependencies = dependencies;
217
+ this.observers = observers;
75
218
  }
76
219
  }
77
220
 
78
- export { debugGetDependencyGraph };
221
+ export { DebugHelper, GraphInfo };
79
222
  //# sourceMappingURL=debugGetDependencyGraph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debugGetDependencyGraph.js","sources":["../../../../../../../../../external/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Derived } from '../observables/derivedImpl.js';\nimport { FromEventObservable } from '../observables/observableFromEvent.js';\nimport { ObservableValue } from '../observables/observableValue.js';\nimport { AutorunObserver } from '../reactions/autorunImpl.js';\nimport { formatValue } from './consoleObservableLogger.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction debugGetDependencyGraph(obs, options) {\n const debugNamePostProcessor = options?.debugNamePostProcessor ?? ((str) => str);\n const info = Info.from(obs, debugNamePostProcessor);\n if (!info) {\n return '';\n }\n const alreadyListed = new Set();\n return formatObservableInfo(info, 0, alreadyListed).trim();\n}\nfunction formatObservableInfo(info, indentLevel, alreadyListed) {\n const indent = '\\t\\t'.repeat(indentLevel);\n const lines = [];\n const isAlreadyListed = alreadyListed.has(info.sourceObj);\n if (isAlreadyListed) {\n lines.push(`${indent}* ${info.type} ${info.name} (already listed)`);\n return lines.join('\\n');\n }\n alreadyListed.add(info.sourceObj);\n lines.push(`${indent}* ${info.type} ${info.name}:`);\n lines.push(`${indent} value: ${formatValue(info.value, 50)}`);\n lines.push(`${indent} state: ${info.state}`);\n if (info.dependencies.length > 0) {\n lines.push(`${indent} dependencies:`);\n for (const dep of info.dependencies) {\n lines.push(formatObservableInfo(dep, indentLevel + 1, alreadyListed));\n }\n }\n return lines.join('\\n');\n}\nclass Info {\n static from(obs, debugNamePostProcessor) {\n if (obs instanceof AutorunObserver) {\n const state = obs.debugGetState();\n return new Info(obs, debugNamePostProcessor(obs.debugName), 'autorun', undefined, state.stateStr, Array.from(state.dependencies).map(dep => Info.from(dep, debugNamePostProcessor) || Info.unknown(dep)));\n }\n else if (obs instanceof Derived) {\n const state = obs.debugGetState();\n return new Info(obs, debugNamePostProcessor(obs.debugName), 'derived', state.value, state.stateStr, Array.from(state.dependencies).map(dep => Info.from(dep, debugNamePostProcessor) || Info.unknown(dep)));\n }\n else if (obs instanceof ObservableValue) {\n const state = obs.debugGetState();\n return new Info(obs, debugNamePostProcessor(obs.debugName), 'observableValue', state.value, 'upToDate', []);\n }\n else if (obs instanceof FromEventObservable) {\n const state = obs.debugGetState();\n return new Info(obs, debugNamePostProcessor(obs.debugName), 'fromEvent', state.value, state.hasValue ? 'upToDate' : 'initial', []);\n }\n return undefined;\n }\n static unknown(obs) {\n return new Info(obs, '(unknown)', 'unknown', undefined, 'unknown', []);\n }\n constructor(sourceObj, name, type, value, state, dependencies) {\n this.sourceObj = sourceObj;\n this.name = name;\n this.type = type;\n this.value = value;\n this.state = state;\n this.dependencies = dependencies;\n }\n}\n\nexport { debugGetDependencyGraph };\n//# sourceMappingURL=debugGetDependencyGraph.js.map\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debugGetDependencyGraph.js","sources":["../../../../../../../../../external/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Derived } from '../observables/derivedImpl.js';\nimport { FromEventObservable } from '../observables/observableFromEvent.js';\nimport { ObservableValue } from '../observables/observableValue.js';\nimport { AutorunObserver } from '../reactions/autorunImpl.js';\nimport { ManualObserver } from '../experimental/manualObserver.js';\nimport { formatValue } from './consoleObservableLogger.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// ---------------------------------------------------------------------------\n// GraphInfo — the result of graph traversal, separated from rendering\n// ---------------------------------------------------------------------------\nclass GraphInfo {\n constructor(name, type, value, state, children) {\n this.name = name;\n this.type = type;\n this.value = value;\n this.state = state;\n this.children = children;\n }\n}\nfunction buildGraph(obs, options) {\n const debugNamePostProcessor = options.debugNamePostProcessor ?? ((s) => s);\n const visited = new Map();\n function build(node) {\n const existing = visited.get(node);\n if (existing) {\n return existing;\n }\n const info = RawInfo.from(node, debugNamePostProcessor) ?? RawInfo.unknown(node);\n const children = options.type === 'observers' ? info.observers : info.dependencies;\n const graphInfo = new GraphInfo(info.name, info.type, info.value, info.state, []);\n visited.set(info.sourceObj, graphInfo);\n graphInfo.children.push(...children.map(build));\n return graphInfo;\n }\n const root = RawInfo.from(obs, debugNamePostProcessor);\n if (!root) {\n return undefined;\n }\n return build(obs);\n}\n// ---------------------------------------------------------------------------\n// Text backend\n// ---------------------------------------------------------------------------\nfunction formatAsText(graph) {\n const visited = new Set();\n return formatNodeAsText(graph, 0, visited).trim();\n}\nfunction formatNodeAsText(node, indentLevel, visited) {\n const indent = '\\t\\t'.repeat(indentLevel);\n const lines = [];\n if (visited.has(node)) {\n lines.push(`${indent}* ${node.type} ${node.name} (already listed)`);\n return lines.join('\\n');\n }\n visited.add(node);\n lines.push(`${indent}* ${node.type} ${node.name}:`);\n lines.push(`${indent} value: ${formatValue(node.value, 50)}`);\n lines.push(`${indent} state: ${node.state}`);\n if (node.children.length > 0) {\n lines.push(`${indent} children:`);\n for (const child of node.children) {\n lines.push(formatNodeAsText(child, indentLevel + 1, visited));\n }\n }\n return lines.join('\\n');\n}\n// ---------------------------------------------------------------------------\n// Mermaid backend\n// ---------------------------------------------------------------------------\nfunction formatAsMermaid(graph) {\n const nodeIds = new Map();\n let nextId = 0;\n const getNodeId = (node) => {\n let id = nodeIds.get(node);\n if (!id) {\n id = `n${nextId++}`;\n nodeIds.set(node, id);\n }\n return id;\n };\n const lines = ['graph TD'];\n const visited = new Set();\n const escape = (s) => s.replace(/\"/g, '#quot;');\n function visit(node) {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n const id = getNodeId(node);\n const label = `${node.type}: ${node.name}\\\\nstate: ${node.state}${node.value !== undefined ? `\\\\nvalue: ${formatValue(node.value, 30)}` : ''}`;\n lines.push(` ${id}[\"${escape(label)}\"]`);\n for (const child of node.children) {\n lines.push(` ${id} --> ${getNodeId(child)}`);\n visit(child);\n }\n }\n visit(graph);\n return lines.join('\\n');\n}\n// ---------------------------------------------------------------------------\n// Graphviz DOT backend\n// ---------------------------------------------------------------------------\nfunction formatAsGraphviz(graph) {\n const nodeIds = new Map();\n let nextId = 0;\n const getNodeId = (node) => {\n let id = nodeIds.get(node);\n if (!id) {\n id = `n${nextId++}`;\n nodeIds.set(node, id);\n }\n return id;\n };\n const lines = ['digraph {'];\n const visited = new Set();\n const escape = (s) => s.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n function visit(node) {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n const id = getNodeId(node);\n const label = `${node.type}: ${node.name}\\nstate: ${node.state}${node.value !== undefined ? `\\nvalue: ${formatValue(node.value, 30)}` : ''}`;\n lines.push(` ${id} [label=\"${escape(label)}\"]`);\n for (const child of node.children) {\n lines.push(` ${id} -> ${getNodeId(child)}`);\n visit(child);\n }\n }\n visit(graph);\n lines.push('}');\n return lines.join('\\n');\n}\n// ---------------------------------------------------------------------------\n// DebugHelper — the public API for .debug on observables and observers\n// ---------------------------------------------------------------------------\nclass DebugHelper {\n constructor(_node) {\n this._node = _node;\n }\n buildDependencyGraph() {\n return buildGraph(this._node, { type: 'dependencies' });\n }\n buildObserverGraph() {\n return buildGraph(this._node, { type: 'observers' });\n }\n getDependencyGraph() {\n const graph = this.buildDependencyGraph();\n return graph ? formatAsText(graph) : '';\n }\n getObserverGraph() {\n const graph = this.buildObserverGraph();\n return graph ? formatAsText(graph) : '';\n }\n getDependencyMermaid() {\n const graph = this.buildDependencyGraph();\n return graph ? formatAsMermaid(graph) : '';\n }\n getObserverMermaid() {\n const graph = this.buildObserverGraph();\n return graph ? formatAsMermaid(graph) : '';\n }\n getDependencyGraphviz() {\n const graph = this.buildDependencyGraph();\n return graph ? formatAsGraphviz(graph) : '';\n }\n getObserverGraphviz() {\n const graph = this.buildObserverGraph();\n return graph ? formatAsGraphviz(graph) : '';\n }\n}\n// ---------------------------------------------------------------------------\n// RawInfo — internal: extracts metadata from concrete observable/observer types\n// ---------------------------------------------------------------------------\nclass RawInfo {\n static from(obs, debugNamePostProcessor) {\n if (obs instanceof AutorunObserver) {\n const state = obs.debugGetState();\n return new RawInfo(obs, debugNamePostProcessor(obs.debugName), 'autorun', undefined, state.stateStr, Array.from(state.dependencies), []);\n }\n else if (obs instanceof ManualObserver) {\n return new RawInfo(obs, debugNamePostProcessor(obs.debugName), 'manualObserver', undefined, 'active', Array.from(obs.getDependencies()), []);\n }\n else if (obs instanceof Derived) {\n const state = obs.debugGetState();\n return new RawInfo(obs, debugNamePostProcessor(obs.debugName), 'derived', state.value, state.stateStr, Array.from(state.dependencies), Array.from(obs.debugGetObservers()));\n }\n else if (obs instanceof ObservableValue) {\n const state = obs.debugGetState();\n return new RawInfo(obs, debugNamePostProcessor(obs.debugName), 'observableValue', state.value, 'upToDate', [], Array.from(obs.debugGetObservers()));\n }\n else if (obs instanceof FromEventObservable) {\n const state = obs.debugGetState();\n return new RawInfo(obs, debugNamePostProcessor(obs.debugName), 'fromEvent', state.value, state.hasValue ? 'upToDate' : 'initial', [], Array.from(obs.debugGetObservers()));\n }\n return undefined;\n }\n static unknown(obs) {\n return new RawInfo(obs, '(unknown)', 'unknown', undefined, 'unknown', [], []);\n }\n constructor(sourceObj, name, type, value, state, dependencies, observers) {\n this.sourceObj = sourceObj;\n this.name = name;\n this.type = type;\n this.value = value;\n this.state = state;\n this.dependencies = dependencies;\n this.observers = observers;\n }\n}\n\nexport { DebugHelper, GraphInfo };\n//# sourceMappingURL=debugGetDependencyGraph.js.map\n"],"names":[],"mappings":"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"}
@@ -27,9 +27,12 @@ let _keepObserved;
27
27
  function _setKeepObserved(keepObserved) {
28
28
  _keepObserved = keepObserved;
29
29
  }
30
- let _debugGetDependencyGraph;
31
- function _setDebugGetDependencyGraph(debugGetDependencyGraph) {
32
- _debugGetDependencyGraph = debugGetDependencyGraph;
30
+ let _debugHelperCtor;
31
+ function _setDebugHelperClass(ctor) {
32
+ _debugHelperCtor = ctor;
33
+ }
34
+ function _getDebugHelperClass() {
35
+ return _debugHelperCtor;
33
36
  }
34
37
  class ConvenientObservable {
35
38
  get TChange() { return null; }
@@ -95,8 +98,8 @@ class ConvenientObservable {
95
98
  get debugValue() {
96
99
  return this.get();
97
100
  }
98
- debugGetDependencyGraph() {
99
- return _debugGetDependencyGraph(this);
101
+ get debug() {
102
+ return new _debugHelperCtor(this);
100
103
  }
101
104
  }
102
105
  class BaseObservable extends ConvenientObservable {
@@ -139,5 +142,5 @@ class BaseObservable extends ConvenientObservable {
139
142
  }
140
143
  }
141
144
 
142
- export { BaseObservable, ConvenientObservable, _setDebugGetDependencyGraph, _setDerivedOpts, _setKeepObserved, _setRecomputeInitiallyAndOnChange };
145
+ export { BaseObservable, ConvenientObservable, _getDebugHelperClass, _setDebugHelperClass, _setDerivedOpts, _setKeepObserved, _setRecomputeInitiallyAndOnChange };
143
146
  //# sourceMappingURL=baseObservable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseObservable.js","sources":["../../../../../../../../../external/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { DebugLocation } from '../debugLocation.js';\nimport { getFunctionName } from '../debugName.js';\nimport { logObservable, getLogger } from '../logging/logging.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet _derived;\n/**\n * @internal\n * This is to allow splitting files.\n*/\nfunction _setDerivedOpts(derived) {\n _derived = derived;\n}\nlet _recomputeInitiallyAndOnChange;\nfunction _setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange) {\n _recomputeInitiallyAndOnChange = recomputeInitiallyAndOnChange;\n}\nlet _keepObserved;\nfunction _setKeepObserved(keepObserved) {\n _keepObserved = keepObserved;\n}\nlet _debugGetDependencyGraph;\nfunction _setDebugGetDependencyGraph(debugGetDependencyGraph) {\n _debugGetDependencyGraph = debugGetDependencyGraph;\n}\nclass ConvenientObservable {\n get TChange() { return null; }\n reportChanges() {\n this.get();\n }\n /** @sealed */\n read(reader) {\n if (reader) {\n return reader.readObservable(this);\n }\n else {\n return this.get();\n }\n }\n map(fnOrOwner, fnOrUndefined, debugLocation = DebugLocation.ofCaller()) {\n const owner = fnOrUndefined === undefined ? undefined : fnOrOwner;\n const fn = fnOrUndefined === undefined ? fnOrOwner : fnOrUndefined;\n return _derived({\n owner,\n debugName: () => {\n const name = getFunctionName(fn);\n if (name !== undefined) {\n return name;\n }\n // regexp to match `x => x.y` or `x => x?.y` where x and y can be arbitrary identifiers (uses backref):\n const regexp = /^\\s*\\(?\\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*\\)?\\s*=>\\s*\\1(?:\\??)\\.([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*$/;\n const match = regexp.exec(fn.toString());\n if (match) {\n return `${this.debugName}.${match[2]}`;\n }\n if (!owner) {\n return `${this.debugName} (mapped)`;\n }\n return undefined;\n },\n debugReferenceFn: fn,\n }, (reader) => fn(this.read(reader), reader), debugLocation);\n }\n /**\n * @sealed\n * Converts an observable of an observable value into a direct observable of the value.\n */\n flatten() {\n return _derived({\n owner: undefined,\n debugName: () => `${this.debugName} (flattened)`,\n }, (reader) => this.read(reader).read(reader));\n }\n recomputeInitiallyAndOnChange(store, handleValue) {\n store.add(_recomputeInitiallyAndOnChange(this, handleValue));\n return this;\n }\n /**\n * Ensures that this observable is observed. This keeps the cache alive.\n * However, in case of deriveds, it does not force eager evaluation (only when the value is read/get).\n * Use `recomputeInitiallyAndOnChange` for eager evaluation.\n */\n keepObserved(store) {\n store.add(_keepObserved(this));\n return this;\n }\n get debugValue() {\n return this.get();\n }\n debugGetDependencyGraph() {\n return _debugGetDependencyGraph(this);\n }\n}\nclass BaseObservable extends ConvenientObservable {\n constructor(debugLocation) {\n super();\n this._observers = new Set();\n getLogger()?.handleObservableCreated(this, debugLocation);\n }\n addObserver(observer) {\n const len = this._observers.size;\n this._observers.add(observer);\n if (len === 0) {\n this.onFirstObserverAdded();\n }\n if (len !== this._observers.size) {\n getLogger()?.handleOnListenerCountChanged(this, this._observers.size);\n }\n }\n removeObserver(observer) {\n const deleted = this._observers.delete(observer);\n if (deleted && this._observers.size === 0) {\n this.onLastObserverRemoved();\n }\n if (deleted) {\n getLogger()?.handleOnListenerCountChanged(this, this._observers.size);\n }\n }\n onFirstObserverAdded() { }\n onLastObserverRemoved() { }\n log() {\n const hadLogger = !!getLogger();\n logObservable(this);\n if (!hadLogger) {\n getLogger()?.handleObservableCreated(this, DebugLocation.ofCaller());\n }\n return this;\n }\n debugGetObservers() {\n return this._observers;\n }\n}\n\nexport { BaseObservable, ConvenientObservable, _setDebugGetDependencyGraph, _setDerivedOpts, _setKeepObserved, _setRecomputeInitiallyAndOnChange };\n//# sourceMappingURL=baseObservable.js.map\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseObservable.js","sources":["../../../../../../../../../external/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { DebugLocation } from '../debugLocation.js';\nimport { getFunctionName } from '../debugName.js';\nimport { logObservable, getLogger } from '../logging/logging.js';\n\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet _derived;\n/**\n * @internal\n * This is to allow splitting files.\n*/\nfunction _setDerivedOpts(derived) {\n _derived = derived;\n}\nlet _recomputeInitiallyAndOnChange;\nfunction _setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange) {\n _recomputeInitiallyAndOnChange = recomputeInitiallyAndOnChange;\n}\nlet _keepObserved;\nfunction _setKeepObserved(keepObserved) {\n _keepObserved = keepObserved;\n}\nlet _debugHelperCtor;\nfunction _setDebugHelperClass(ctor) {\n _debugHelperCtor = ctor;\n}\nfunction _getDebugHelperClass() {\n return _debugHelperCtor;\n}\nclass ConvenientObservable {\n get TChange() { return null; }\n reportChanges() {\n this.get();\n }\n /** @sealed */\n read(reader) {\n if (reader) {\n return reader.readObservable(this);\n }\n else {\n return this.get();\n }\n }\n map(fnOrOwner, fnOrUndefined, debugLocation = DebugLocation.ofCaller()) {\n const owner = fnOrUndefined === undefined ? undefined : fnOrOwner;\n const fn = fnOrUndefined === undefined ? fnOrOwner : fnOrUndefined;\n return _derived({\n owner,\n debugName: () => {\n const name = getFunctionName(fn);\n if (name !== undefined) {\n return name;\n }\n // regexp to match `x => x.y` or `x => x?.y` where x and y can be arbitrary identifiers (uses backref):\n const regexp = /^\\s*\\(?\\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*\\)?\\s*=>\\s*\\1(?:\\??)\\.([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*$/;\n const match = regexp.exec(fn.toString());\n if (match) {\n return `${this.debugName}.${match[2]}`;\n }\n if (!owner) {\n return `${this.debugName} (mapped)`;\n }\n return undefined;\n },\n debugReferenceFn: fn,\n }, (reader) => fn(this.read(reader), reader), debugLocation);\n }\n /**\n * @sealed\n * Converts an observable of an observable value into a direct observable of the value.\n */\n flatten() {\n return _derived({\n owner: undefined,\n debugName: () => `${this.debugName} (flattened)`,\n }, (reader) => this.read(reader).read(reader));\n }\n recomputeInitiallyAndOnChange(store, handleValue) {\n store.add(_recomputeInitiallyAndOnChange(this, handleValue));\n return this;\n }\n /**\n * Ensures that this observable is observed. This keeps the cache alive.\n * However, in case of deriveds, it does not force eager evaluation (only when the value is read/get).\n * Use `recomputeInitiallyAndOnChange` for eager evaluation.\n */\n keepObserved(store) {\n store.add(_keepObserved(this));\n return this;\n }\n get debugValue() {\n return this.get();\n }\n get debug() {\n return new _debugHelperCtor(this);\n }\n}\nclass BaseObservable extends ConvenientObservable {\n constructor(debugLocation) {\n super();\n this._observers = new Set();\n getLogger()?.handleObservableCreated(this, debugLocation);\n }\n addObserver(observer) {\n const len = this._observers.size;\n this._observers.add(observer);\n if (len === 0) {\n this.onFirstObserverAdded();\n }\n if (len !== this._observers.size) {\n getLogger()?.handleOnListenerCountChanged(this, this._observers.size);\n }\n }\n removeObserver(observer) {\n const deleted = this._observers.delete(observer);\n if (deleted && this._observers.size === 0) {\n this.onLastObserverRemoved();\n }\n if (deleted) {\n getLogger()?.handleOnListenerCountChanged(this, this._observers.size);\n }\n }\n onFirstObserverAdded() { }\n onLastObserverRemoved() { }\n log() {\n const hadLogger = !!getLogger();\n logObservable(this);\n if (!hadLogger) {\n getLogger()?.handleObservableCreated(this, DebugLocation.ofCaller());\n }\n return this;\n }\n debugGetObservers() {\n return this._observers;\n }\n}\n\nexport { BaseObservable, ConvenientObservable, _getDebugHelperClass, _setDebugHelperClass, _setDerivedOpts, _setKeepObserved, _setRecomputeInitiallyAndOnChange };\n//# sourceMappingURL=baseObservable.js.map\n"],"names":[],"mappings":"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"}
@@ -310,10 +310,7 @@ class Derived extends BaseObservable {
310
310
  const shouldCallBeginUpdate = !this._observers.has(observer) && this._updateCount > 0;
311
311
  super.addObserver(observer);
312
312
  if (shouldCallBeginUpdate) {
313
- if (this._removedObserverToCallEndUpdateOn && this._removedObserverToCallEndUpdateOn.has(observer)) {
314
- this._removedObserverToCallEndUpdateOn.delete(observer);
315
- }
316
- else {
313
+ if (!this._removedObserverToCallEndUpdateOn?.delete(observer)) {
317
314
  observer.beginUpdate(this);
318
315
  }
319
316
  }
@@ -341,11 +338,17 @@ class Derived extends BaseObservable {
341
338
  this._value = newValue;
342
339
  }
343
340
  debugRecompute() {
344
- if (!this._isComputing) {
345
- this._recompute();
341
+ this.beginUpdate(this);
342
+ try {
343
+ if (!this._isComputing) {
344
+ this._recompute();
345
+ }
346
+ else {
347
+ this._state = 2 /* DerivedState.stale */;
348
+ }
346
349
  }
347
- else {
348
- this._state = 2 /* DerivedState.stale */;
350
+ finally {
351
+ this.endUpdate(this);
349
352
  }
350
353
  }
351
354
  setValue(newValue, tx, change) {