@vscode/component-explorer-cli 0.1.1-0 → 0.1.1-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browserPage.js +4 -2
- package/dist/browserPage.js.map +1 -1
- package/dist/commands/acceptCommand.d.ts +1 -0
- package/dist/commands/acceptCommand.d.ts.map +1 -1
- package/dist/commands/acceptCommand.js +8 -2
- package/dist/commands/acceptCommand.js.map +1 -1
- package/dist/commands/compareCommand.d.ts +1 -0
- package/dist/commands/compareCommand.d.ts.map +1 -1
- package/dist/commands/compareCommand.js +8 -2
- package/dist/commands/compareCommand.js.map +1 -1
- package/dist/commands/mcpCommand.d.ts +8 -0
- package/dist/commands/mcpCommand.d.ts.map +1 -0
- package/dist/commands/mcpCommand.js +24 -0
- package/dist/commands/mcpCommand.js.map +1 -0
- package/dist/commands/screenshotCommand.d.ts +1 -0
- package/dist/commands/screenshotCommand.d.ts.map +1 -1
- package/dist/commands/screenshotCommand.js +10 -4
- package/dist/commands/screenshotCommand.js.map +1 -1
- package/dist/commands/serveCommand.d.ts +16 -0
- package/dist/commands/serveCommand.d.ts.map +1 -0
- package/dist/commands/serveCommand.js +137 -0
- package/dist/commands/serveCommand.js.map +1 -0
- package/dist/commands/watchCommand.d.ts +1 -0
- package/dist/commands/watchCommand.d.ts.map +1 -1
- package/dist/commands/watchCommand.js +22 -10
- package/dist/commands/watchCommand.js.map +1 -1
- package/dist/componentExplorer.js +5 -2
- package/dist/componentExplorer.js.map +1 -1
- package/dist/daemon/DaemonService.d.ts +131 -0
- package/dist/daemon/DaemonService.d.ts.map +1 -0
- package/dist/daemon/DaemonService.js +450 -0
- package/dist/daemon/DaemonService.js.map +1 -0
- package/dist/daemon/approvalStore.d.ts +51 -0
- package/dist/daemon/approvalStore.d.ts.map +1 -0
- package/dist/daemon/approvalStore.js +58 -0
- package/dist/daemon/approvalStore.js.map +1 -0
- package/dist/daemon/lifecycle.d.ts +8 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -0
- package/dist/daemon/lifecycle.js +51 -0
- package/dist/daemon/lifecycle.js.map +1 -0
- package/dist/daemon/pipeClient.d.ts +4 -0
- package/dist/daemon/pipeClient.d.ts.map +1 -0
- package/dist/daemon/pipeClient.js +97 -0
- package/dist/daemon/pipeClient.js.map +1 -0
- package/dist/daemon/pipeName.d.ts +2 -0
- package/dist/daemon/pipeName.d.ts.map +1 -0
- package/dist/daemon/pipeName.js +14 -0
- package/dist/daemon/pipeName.js.map +1 -0
- package/dist/daemon/pipeServer.d.ts +4 -0
- package/dist/daemon/pipeServer.d.ts.map +1 -0
- package/dist/daemon/pipeServer.js +23 -0
- package/dist/daemon/pipeServer.js.map +1 -0
- package/dist/dependencyInstaller.js +7 -4
- package/dist/dependencyInstaller.js.map +1 -1
- package/dist/explorerSession.d.ts +5 -3
- package/dist/explorerSession.d.ts.map +1 -1
- package/dist/explorerSession.js +11 -5
- package/dist/explorerSession.js.map +1 -1
- package/dist/external/vscode-observables/observables/dist/disposables.js +43 -0
- package/dist/external/vscode-observables/observables/dist/disposables.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/base.js +22 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/base.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/commonFacade/deps.js +40 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/commonFacade/deps.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/debugLocation.js +77 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/debugLocation.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/debugName.js +114 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/debugName.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/index.js +25 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/index.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/consoleObservableLogger.js +332 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/consoleObservableLogger.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js +79 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugger/debuggerRpc.js +72 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugger/debuggerRpc.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugger/devToolsLogger.js +447 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugger/devToolsLogger.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugger/rpc.js +64 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugger/rpc.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugger/utils.js +52 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugger/utils.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/logging.js +100 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/logging.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js +143 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/derived.js +17 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/derived.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/derivedImpl.js +362 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/derivedImpl.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js +123 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/observableValue.js +81 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/observableValue.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/reactions/autorun.js +23 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/reactions/autorun.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/reactions/autorunImpl.js +226 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/reactions/autorunImpl.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/transaction.js +87 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/transaction.js.map +1 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/utils/utils.js +68 -0
- package/dist/external/vscode-observables/observables/dist/observableInternal/utils/utils.js.map +1 -0
- package/dist/git/gitCommitId.js +4 -2
- package/dist/git/gitCommitId.js.map +1 -1
- package/dist/git/gitCommitResolver.js +11 -3
- package/dist/git/gitCommitResolver.js.map +1 -1
- package/dist/git/gitService.js +5 -2
- package/dist/git/gitService.js.map +1 -1
- package/dist/git/gitUtils.js +9 -6
- package/dist/git/gitUtils.js.map +1 -1
- package/dist/git/gitWorktreeManager.js +5 -2
- package/dist/git/gitWorktreeManager.js.map +1 -1
- package/dist/httpServer.d.ts +9 -7
- package/dist/httpServer.d.ts.map +1 -1
- package/dist/httpServer.js +67 -10
- package/dist/httpServer.js.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +17 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +43 -6
- package/dist/logger.js.map +1 -1
- package/dist/mcp/McpServer.d.ts +28 -0
- package/dist/mcp/McpServer.d.ts.map +1 -0
- package/dist/mcp/McpServer.js +386 -0
- package/dist/mcp/McpServer.js.map +1 -0
- package/dist/screenshotCache.js +7 -4
- package/dist/screenshotCache.js.map +1 -1
- package/dist/sourceTreeId.js +4 -2
- package/dist/sourceTreeId.js.map +1 -1
- package/dist/storage.js +5 -2
- package/dist/storage.js.map +1 -1
- package/dist/viteProjectRef.js +5 -2
- package/dist/viteProjectRef.js.map +1 -1
- package/dist/watchConfig.d.ts +5 -0
- package/dist/watchConfig.d.ts.map +1 -1
- package/dist/watchConfig.js +22 -7
- package/dist/watchConfig.js.map +1 -1
- package/package.json +11 -4
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
/*---------------------------------------------------------------------------------------------
|
|
6
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
7
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
8
|
+
*--------------------------------------------------------------------------------------------*/
|
|
9
|
+
class DebugNameData {
|
|
10
|
+
constructor(owner, debugNameSource, referenceFn) {
|
|
11
|
+
this.owner = owner;
|
|
12
|
+
this.debugNameSource = debugNameSource;
|
|
13
|
+
this.referenceFn = referenceFn;
|
|
14
|
+
}
|
|
15
|
+
getDebugName(target) {
|
|
16
|
+
return getDebugName(target, this);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const countPerName = new Map();
|
|
20
|
+
const cachedDebugName = new WeakMap();
|
|
21
|
+
function getDebugName(target, data) {
|
|
22
|
+
const cached = cachedDebugName.get(target);
|
|
23
|
+
if (cached) {
|
|
24
|
+
return cached;
|
|
25
|
+
}
|
|
26
|
+
const dbgName = computeDebugName(target, data);
|
|
27
|
+
if (dbgName) {
|
|
28
|
+
let count = countPerName.get(dbgName) ?? 0;
|
|
29
|
+
count++;
|
|
30
|
+
countPerName.set(dbgName, count);
|
|
31
|
+
const result = count === 1 ? dbgName : `${dbgName}#${count}`;
|
|
32
|
+
cachedDebugName.set(target, result);
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
function computeDebugName(self, data) {
|
|
38
|
+
const cached = cachedDebugName.get(self);
|
|
39
|
+
if (cached) {
|
|
40
|
+
return cached;
|
|
41
|
+
}
|
|
42
|
+
const ownerStr = data.owner ? formatOwner(data.owner) + `.` : '';
|
|
43
|
+
let result;
|
|
44
|
+
const debugNameSource = data.debugNameSource;
|
|
45
|
+
if (debugNameSource !== undefined) {
|
|
46
|
+
if (typeof debugNameSource === 'function') {
|
|
47
|
+
result = debugNameSource();
|
|
48
|
+
if (result !== undefined) {
|
|
49
|
+
return ownerStr + result;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
return ownerStr + debugNameSource;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const referenceFn = data.referenceFn;
|
|
57
|
+
if (referenceFn !== undefined) {
|
|
58
|
+
result = getFunctionName(referenceFn);
|
|
59
|
+
if (result !== undefined) {
|
|
60
|
+
return ownerStr + result;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (data.owner !== undefined) {
|
|
64
|
+
const key = findKey(data.owner, self);
|
|
65
|
+
if (key !== undefined) {
|
|
66
|
+
return ownerStr + key;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
function findKey(obj, value) {
|
|
72
|
+
for (const key in obj) {
|
|
73
|
+
if (obj[key] === value) {
|
|
74
|
+
return key;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
const countPerClassName = new Map();
|
|
80
|
+
const ownerId = new WeakMap();
|
|
81
|
+
function formatOwner(owner) {
|
|
82
|
+
const id = ownerId.get(owner);
|
|
83
|
+
if (id) {
|
|
84
|
+
return id;
|
|
85
|
+
}
|
|
86
|
+
const className = getClassName(owner) ?? 'Object';
|
|
87
|
+
let count = countPerClassName.get(className) ?? 0;
|
|
88
|
+
count++;
|
|
89
|
+
countPerClassName.set(className, count);
|
|
90
|
+
const result = count === 1 ? className : `${className}#${count}`;
|
|
91
|
+
ownerId.set(owner, result);
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
function getClassName(obj) {
|
|
95
|
+
const ctor = obj.constructor;
|
|
96
|
+
if (ctor) {
|
|
97
|
+
if (ctor.name === 'Object') {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
return ctor.name;
|
|
101
|
+
}
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
function getFunctionName(fn) {
|
|
105
|
+
const fnSrc = fn.toString();
|
|
106
|
+
// Pattern: /** @description ... */
|
|
107
|
+
const regexp = /\/\*\*\s*@description\s*([^*]*)\*\//;
|
|
108
|
+
const match = regexp.exec(fnSrc);
|
|
109
|
+
const result = match ? match[1] : undefined;
|
|
110
|
+
return result?.trim();
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export { DebugNameData, getClassName, getDebugName, getFunctionName };
|
|
114
|
+
//# sourceMappingURL=debugName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debugName.js","sources":["../../../../../../../../external/vscode-observables/observables/dist/observableInternal/debugName.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 *--------------------------------------------------------------------------------------------*/\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 DebugNameData {\n constructor(owner, debugNameSource, referenceFn) {\n this.owner = owner;\n this.debugNameSource = debugNameSource;\n this.referenceFn = referenceFn;\n }\n getDebugName(target) {\n return getDebugName(target, this);\n }\n}\nconst countPerName = new Map();\nconst cachedDebugName = new WeakMap();\nfunction getDebugName(target, data) {\n const cached = cachedDebugName.get(target);\n if (cached) {\n return cached;\n }\n const dbgName = computeDebugName(target, data);\n if (dbgName) {\n let count = countPerName.get(dbgName) ?? 0;\n count++;\n countPerName.set(dbgName, count);\n const result = count === 1 ? dbgName : `${dbgName}#${count}`;\n cachedDebugName.set(target, result);\n return result;\n }\n return undefined;\n}\nfunction computeDebugName(self, data) {\n const cached = cachedDebugName.get(self);\n if (cached) {\n return cached;\n }\n const ownerStr = data.owner ? formatOwner(data.owner) + `.` : '';\n let result;\n const debugNameSource = data.debugNameSource;\n if (debugNameSource !== undefined) {\n if (typeof debugNameSource === 'function') {\n result = debugNameSource();\n if (result !== undefined) {\n return ownerStr + result;\n }\n }\n else {\n return ownerStr + debugNameSource;\n }\n }\n const referenceFn = data.referenceFn;\n if (referenceFn !== undefined) {\n result = getFunctionName(referenceFn);\n if (result !== undefined) {\n return ownerStr + result;\n }\n }\n if (data.owner !== undefined) {\n const key = findKey(data.owner, self);\n if (key !== undefined) {\n return ownerStr + key;\n }\n }\n return undefined;\n}\nfunction findKey(obj, value) {\n for (const key in obj) {\n if (obj[key] === value) {\n return key;\n }\n }\n return undefined;\n}\nconst countPerClassName = new Map();\nconst ownerId = new WeakMap();\nfunction formatOwner(owner) {\n const id = ownerId.get(owner);\n if (id) {\n return id;\n }\n const className = getClassName(owner) ?? 'Object';\n let count = countPerClassName.get(className) ?? 0;\n count++;\n countPerClassName.set(className, count);\n const result = count === 1 ? className : `${className}#${count}`;\n ownerId.set(owner, result);\n return result;\n}\nfunction getClassName(obj) {\n const ctor = obj.constructor;\n if (ctor) {\n if (ctor.name === 'Object') {\n return undefined;\n }\n return ctor.name;\n }\n return undefined;\n}\nfunction getFunctionName(fn) {\n const fnSrc = fn.toString();\n // Pattern: /** @description ... */\n const regexp = /\\/\\*\\*\\s*@description\\s*([^*]*)\\*\\//;\n const match = regexp.exec(fnSrc);\n const result = match ? match[1] : undefined;\n return result?.trim();\n}\n\nexport { DebugNameData, getClassName, getDebugName, getFunctionName };\n//# sourceMappingURL=debugName.js.map\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { addLogger, setLogObservableFn } from './logging/logging.js';
|
|
2
|
+
import { _setDebugGetDependencyGraph } from './observables/baseObservable.js';
|
|
3
|
+
export { DebugLocation } from './debugLocation.js';
|
|
4
|
+
export { derivedOpts } from './observables/derived.js';
|
|
5
|
+
export { keepObserved, recomputeInitiallyAndOnChange } from './utils/utils.js';
|
|
6
|
+
export { observableFromEvent } from './observables/observableFromEvent.js';
|
|
7
|
+
import { logObservableToConsole } from './logging/consoleObservableLogger.js';
|
|
8
|
+
import { DevToolsLogger } from './logging/debugger/devToolsLogger.js';
|
|
9
|
+
import { debugGetDependencyGraph } from './logging/debugGetDependencyGraph.js';
|
|
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
|
+
|
|
16
|
+
/*---------------------------------------------------------------------------------------------
|
|
17
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
18
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
19
|
+
*--------------------------------------------------------------------------------------------*/
|
|
20
|
+
// This is a facade for the observable implementation. Only import from here!
|
|
21
|
+
_setDebugGetDependencyGraph(debugGetDependencyGraph);
|
|
22
|
+
setLogObservableFn(logObservableToConsole);
|
|
23
|
+
// To debug observables you also need the extension "ms-vscode.debug-value-editor"
|
|
24
|
+
addLogger(DevToolsLogger.getInstance());
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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 { addLogger, 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 { DevToolsLogger } from './logging/debugger/devToolsLogger.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// To debug observables you also need the extension \"ms-vscode.debug-value-editor\"\naddLogger(DevToolsLogger.getInstance());\n//# sourceMappingURL=index.js.map\n"],"names":[],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACA,2BAA2B,CAAC,uBAAuB,CAAC;AACpD,kBAAkB,CAAC,sBAAsB,CAAC;AAC1C;AACA,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
import { addLogger } from './logging.js';
|
|
2
|
+
import { getClassName } from '../debugName.js';
|
|
3
|
+
import { Derived } from '../observables/derivedImpl.js';
|
|
4
|
+
|
|
5
|
+
/*---------------------------------------------------------------------------------------------
|
|
6
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
7
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
8
|
+
*--------------------------------------------------------------------------------------------*/
|
|
9
|
+
|
|
10
|
+
/*---------------------------------------------------------------------------------------------
|
|
11
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
12
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
13
|
+
*--------------------------------------------------------------------------------------------*/
|
|
14
|
+
let consoleObservableLogger;
|
|
15
|
+
function logObservableToConsole(obs) {
|
|
16
|
+
if (!consoleObservableLogger) {
|
|
17
|
+
consoleObservableLogger = new ConsoleObservableLogger();
|
|
18
|
+
addLogger(consoleObservableLogger);
|
|
19
|
+
}
|
|
20
|
+
consoleObservableLogger.addFilteredObj(obs);
|
|
21
|
+
}
|
|
22
|
+
class ConsoleObservableLogger {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.indentation = 0;
|
|
25
|
+
this.changedObservablesSets = new WeakMap();
|
|
26
|
+
}
|
|
27
|
+
addFilteredObj(obj) {
|
|
28
|
+
if (!this._filteredObjects) {
|
|
29
|
+
this._filteredObjects = new Set();
|
|
30
|
+
}
|
|
31
|
+
this._filteredObjects.add(obj);
|
|
32
|
+
}
|
|
33
|
+
_isIncluded(obj) {
|
|
34
|
+
return this._filteredObjects?.has(obj) ?? true;
|
|
35
|
+
}
|
|
36
|
+
textToConsoleArgs(text) {
|
|
37
|
+
return consoleTextToArgs([
|
|
38
|
+
normalText(repeat('| ', this.indentation)),
|
|
39
|
+
text,
|
|
40
|
+
]);
|
|
41
|
+
}
|
|
42
|
+
formatInfo(info) {
|
|
43
|
+
if (!info.hadValue) {
|
|
44
|
+
return [
|
|
45
|
+
normalText(` `),
|
|
46
|
+
styled(formatValue(info.newValue, 60), {
|
|
47
|
+
color: 'green',
|
|
48
|
+
}),
|
|
49
|
+
normalText(` (initial)`),
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
return info.didChange
|
|
53
|
+
? [
|
|
54
|
+
normalText(` `),
|
|
55
|
+
styled(formatValue(info.oldValue, 70), {
|
|
56
|
+
color: 'red',
|
|
57
|
+
strikeThrough: true,
|
|
58
|
+
}),
|
|
59
|
+
normalText(` `),
|
|
60
|
+
styled(formatValue(info.newValue, 60), {
|
|
61
|
+
color: 'green',
|
|
62
|
+
}),
|
|
63
|
+
]
|
|
64
|
+
: [normalText(` (unchanged)`)];
|
|
65
|
+
}
|
|
66
|
+
handleObservableCreated(observable) {
|
|
67
|
+
if (observable instanceof Derived) {
|
|
68
|
+
const derived = observable;
|
|
69
|
+
this.changedObservablesSets.set(derived, new Set());
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
handleOnListenerCountChanged(observable, newCount) {
|
|
73
|
+
}
|
|
74
|
+
handleObservableUpdated(observable, info) {
|
|
75
|
+
if (!this._isIncluded(observable)) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (observable instanceof Derived) {
|
|
79
|
+
this._handleDerivedRecomputed(observable, info);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
console.log(...this.textToConsoleArgs([
|
|
83
|
+
formatKind('observable value changed'),
|
|
84
|
+
styled(observable.debugName, { color: 'BlueViolet' }),
|
|
85
|
+
...this.formatInfo(info),
|
|
86
|
+
]));
|
|
87
|
+
}
|
|
88
|
+
formatChanges(changes) {
|
|
89
|
+
if (changes.size === 0) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
return styled(' (changed deps: ' +
|
|
93
|
+
[...changes].map((o) => o.debugName).join(', ') +
|
|
94
|
+
')', { color: 'gray' });
|
|
95
|
+
}
|
|
96
|
+
handleDerivedDependencyChanged(derived, observable, change) {
|
|
97
|
+
if (!this._isIncluded(derived)) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
this.changedObservablesSets.get(derived)?.add(observable);
|
|
101
|
+
}
|
|
102
|
+
_handleDerivedRecomputed(derived, info) {
|
|
103
|
+
if (!this._isIncluded(derived)) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const changedObservables = this.changedObservablesSets.get(derived);
|
|
107
|
+
if (!changedObservables) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
console.log(...this.textToConsoleArgs([
|
|
111
|
+
formatKind('derived recomputed'),
|
|
112
|
+
styled(derived.debugName, { color: 'BlueViolet' }),
|
|
113
|
+
...this.formatInfo(info),
|
|
114
|
+
this.formatChanges(changedObservables),
|
|
115
|
+
{ data: [{ fn: derived._debugNameData.referenceFn ?? derived._computeFn }] }
|
|
116
|
+
]));
|
|
117
|
+
changedObservables.clear();
|
|
118
|
+
}
|
|
119
|
+
handleDerivedCleared(derived) {
|
|
120
|
+
if (!this._isIncluded(derived)) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
console.log(...this.textToConsoleArgs([
|
|
124
|
+
formatKind('derived cleared'),
|
|
125
|
+
styled(derived.debugName, { color: 'BlueViolet' }),
|
|
126
|
+
]));
|
|
127
|
+
}
|
|
128
|
+
handleFromEventObservableTriggered(observable, info) {
|
|
129
|
+
if (!this._isIncluded(observable)) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
console.log(...this.textToConsoleArgs([
|
|
133
|
+
formatKind('observable from event triggered'),
|
|
134
|
+
styled(observable.debugName, { color: 'BlueViolet' }),
|
|
135
|
+
...this.formatInfo(info),
|
|
136
|
+
{ data: [{ fn: observable._getValue }] }
|
|
137
|
+
]));
|
|
138
|
+
}
|
|
139
|
+
handleAutorunCreated(autorun) {
|
|
140
|
+
if (!this._isIncluded(autorun)) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
this.changedObservablesSets.set(autorun, new Set());
|
|
144
|
+
}
|
|
145
|
+
handleAutorunDisposed(autorun) {
|
|
146
|
+
}
|
|
147
|
+
handleAutorunDependencyChanged(autorun, observable, change) {
|
|
148
|
+
if (!this._isIncluded(autorun)) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
this.changedObservablesSets.get(autorun).add(observable);
|
|
152
|
+
}
|
|
153
|
+
handleAutorunStarted(autorun) {
|
|
154
|
+
const changedObservables = this.changedObservablesSets.get(autorun);
|
|
155
|
+
if (!changedObservables) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
if (this._isIncluded(autorun)) {
|
|
159
|
+
console.log(...this.textToConsoleArgs([
|
|
160
|
+
formatKind('autorun'),
|
|
161
|
+
styled(autorun.debugName, { color: 'BlueViolet' }),
|
|
162
|
+
this.formatChanges(changedObservables),
|
|
163
|
+
{ data: [{ fn: autorun._debugNameData.referenceFn ?? autorun._runFn }] }
|
|
164
|
+
]));
|
|
165
|
+
}
|
|
166
|
+
changedObservables.clear();
|
|
167
|
+
this.indentation++;
|
|
168
|
+
}
|
|
169
|
+
handleAutorunFinished(autorun) {
|
|
170
|
+
this.indentation--;
|
|
171
|
+
}
|
|
172
|
+
handleBeginTransaction(transaction) {
|
|
173
|
+
let transactionName = transaction.getDebugName();
|
|
174
|
+
if (transactionName === undefined) {
|
|
175
|
+
transactionName = '';
|
|
176
|
+
}
|
|
177
|
+
if (this._isIncluded(transaction)) {
|
|
178
|
+
console.log(...this.textToConsoleArgs([
|
|
179
|
+
formatKind('transaction'),
|
|
180
|
+
styled(transactionName, { color: 'BlueViolet' }),
|
|
181
|
+
{ data: [{ fn: transaction._fn }] }
|
|
182
|
+
]));
|
|
183
|
+
}
|
|
184
|
+
this.indentation++;
|
|
185
|
+
}
|
|
186
|
+
handleEndTransaction() {
|
|
187
|
+
this.indentation--;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
function consoleTextToArgs(text) {
|
|
191
|
+
const styles = new Array();
|
|
192
|
+
const data = [];
|
|
193
|
+
let firstArg = '';
|
|
194
|
+
function process(t) {
|
|
195
|
+
if ('length' in t) {
|
|
196
|
+
for (const item of t) {
|
|
197
|
+
if (item) {
|
|
198
|
+
process(item);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
else if ('text' in t) {
|
|
203
|
+
firstArg += `%c${t.text}`;
|
|
204
|
+
styles.push(t.style);
|
|
205
|
+
if (t.data) {
|
|
206
|
+
data.push(...t.data);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
else if ('data' in t) {
|
|
210
|
+
data.push(...t.data);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
process(text);
|
|
214
|
+
const result = [firstArg, ...styles];
|
|
215
|
+
result.push(...data);
|
|
216
|
+
return result;
|
|
217
|
+
}
|
|
218
|
+
function normalText(text) {
|
|
219
|
+
return styled(text, { color: 'black' });
|
|
220
|
+
}
|
|
221
|
+
function formatKind(kind) {
|
|
222
|
+
return styled(padStr(`${kind}: `, 10), { color: 'black', bold: true });
|
|
223
|
+
}
|
|
224
|
+
function styled(text, options = {
|
|
225
|
+
color: 'black',
|
|
226
|
+
}) {
|
|
227
|
+
function objToCss(styleObj) {
|
|
228
|
+
return Object.entries(styleObj).reduce((styleString, [propName, propValue]) => {
|
|
229
|
+
return `${styleString}${propName}:${propValue};`;
|
|
230
|
+
}, '');
|
|
231
|
+
}
|
|
232
|
+
const style = {
|
|
233
|
+
color: options.color,
|
|
234
|
+
};
|
|
235
|
+
if (options.strikeThrough) {
|
|
236
|
+
style['text-decoration'] = 'line-through';
|
|
237
|
+
}
|
|
238
|
+
if (options.bold) {
|
|
239
|
+
style['font-weight'] = 'bold';
|
|
240
|
+
}
|
|
241
|
+
return {
|
|
242
|
+
text,
|
|
243
|
+
style: objToCss(style),
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
function formatValue(value, availableLen) {
|
|
247
|
+
switch (typeof value) {
|
|
248
|
+
case 'number':
|
|
249
|
+
return '' + value;
|
|
250
|
+
case 'string':
|
|
251
|
+
if (value.length + 2 <= availableLen) {
|
|
252
|
+
return `"${value}"`;
|
|
253
|
+
}
|
|
254
|
+
return `"${value.substr(0, availableLen - 7)}"+...`;
|
|
255
|
+
case 'boolean':
|
|
256
|
+
return value ? 'true' : 'false';
|
|
257
|
+
case 'undefined':
|
|
258
|
+
return 'undefined';
|
|
259
|
+
case 'object':
|
|
260
|
+
if (value === null) {
|
|
261
|
+
return 'null';
|
|
262
|
+
}
|
|
263
|
+
if (Array.isArray(value)) {
|
|
264
|
+
return formatArray(value, availableLen);
|
|
265
|
+
}
|
|
266
|
+
return formatObject(value, availableLen);
|
|
267
|
+
case 'symbol':
|
|
268
|
+
return value.toString();
|
|
269
|
+
case 'function':
|
|
270
|
+
return `[[Function${value.name ? ' ' + value.name : ''}]]`;
|
|
271
|
+
default:
|
|
272
|
+
return '' + value;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
function formatArray(value, availableLen) {
|
|
276
|
+
let result = '[ ';
|
|
277
|
+
let first = true;
|
|
278
|
+
for (const val of value) {
|
|
279
|
+
if (!first) {
|
|
280
|
+
result += ', ';
|
|
281
|
+
}
|
|
282
|
+
if (result.length - 5 > availableLen) {
|
|
283
|
+
result += '...';
|
|
284
|
+
break;
|
|
285
|
+
}
|
|
286
|
+
first = false;
|
|
287
|
+
result += `${formatValue(val, availableLen - result.length)}`;
|
|
288
|
+
}
|
|
289
|
+
result += ' ]';
|
|
290
|
+
return result;
|
|
291
|
+
}
|
|
292
|
+
function formatObject(value, availableLen) {
|
|
293
|
+
if (typeof value.toString === 'function' && value.toString !== Object.prototype.toString) {
|
|
294
|
+
const val = value.toString();
|
|
295
|
+
if (val.length <= availableLen) {
|
|
296
|
+
return val;
|
|
297
|
+
}
|
|
298
|
+
return val.substring(0, availableLen - 3) + '...';
|
|
299
|
+
}
|
|
300
|
+
const className = getClassName(value);
|
|
301
|
+
let result = className ? className + '(' : '{ ';
|
|
302
|
+
let first = true;
|
|
303
|
+
for (const [key, val] of Object.entries(value)) {
|
|
304
|
+
if (!first) {
|
|
305
|
+
result += ', ';
|
|
306
|
+
}
|
|
307
|
+
if (result.length - 5 > availableLen) {
|
|
308
|
+
result += '...';
|
|
309
|
+
break;
|
|
310
|
+
}
|
|
311
|
+
first = false;
|
|
312
|
+
result += `${key}: ${formatValue(val, availableLen - result.length)}`;
|
|
313
|
+
}
|
|
314
|
+
result += className ? ')' : ' }';
|
|
315
|
+
return result;
|
|
316
|
+
}
|
|
317
|
+
function repeat(str, count) {
|
|
318
|
+
let result = '';
|
|
319
|
+
for (let i = 1; i <= count; i++) {
|
|
320
|
+
result += str;
|
|
321
|
+
}
|
|
322
|
+
return result;
|
|
323
|
+
}
|
|
324
|
+
function padStr(str, length) {
|
|
325
|
+
while (str.length < length) {
|
|
326
|
+
str += ' ';
|
|
327
|
+
}
|
|
328
|
+
return str;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
export { ConsoleObservableLogger, formatValue, logObservableToConsole };
|
|
332
|
+
//# sourceMappingURL=consoleObservableLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consoleObservableLogger.js","sources":["../../../../../../../../../external/vscode-observables/observables/dist/observableInternal/logging/consoleObservableLogger.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 { addLogger } from './logging.js';\nimport { getClassName } from '../debugName.js';\nimport { Derived } from '../observables/derivedImpl.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 consoleObservableLogger;\nfunction logObservableToConsole(obs) {\n if (!consoleObservableLogger) {\n consoleObservableLogger = new ConsoleObservableLogger();\n addLogger(consoleObservableLogger);\n }\n consoleObservableLogger.addFilteredObj(obs);\n}\nclass ConsoleObservableLogger {\n constructor() {\n this.indentation = 0;\n this.changedObservablesSets = new WeakMap();\n }\n addFilteredObj(obj) {\n if (!this._filteredObjects) {\n this._filteredObjects = new Set();\n }\n this._filteredObjects.add(obj);\n }\n _isIncluded(obj) {\n return this._filteredObjects?.has(obj) ?? true;\n }\n textToConsoleArgs(text) {\n return consoleTextToArgs([\n normalText(repeat('| ', this.indentation)),\n text,\n ]);\n }\n formatInfo(info) {\n if (!info.hadValue) {\n return [\n normalText(` `),\n styled(formatValue(info.newValue, 60), {\n color: 'green',\n }),\n normalText(` (initial)`),\n ];\n }\n return info.didChange\n ? [\n normalText(` `),\n styled(formatValue(info.oldValue, 70), {\n color: 'red',\n strikeThrough: true,\n }),\n normalText(` `),\n styled(formatValue(info.newValue, 60), {\n color: 'green',\n }),\n ]\n : [normalText(` (unchanged)`)];\n }\n handleObservableCreated(observable) {\n if (observable instanceof Derived) {\n const derived = observable;\n this.changedObservablesSets.set(derived, new Set());\n }\n }\n handleOnListenerCountChanged(observable, newCount) {\n }\n handleObservableUpdated(observable, info) {\n if (!this._isIncluded(observable)) {\n return;\n }\n if (observable instanceof Derived) {\n this._handleDerivedRecomputed(observable, info);\n return;\n }\n console.log(...this.textToConsoleArgs([\n formatKind('observable value changed'),\n styled(observable.debugName, { color: 'BlueViolet' }),\n ...this.formatInfo(info),\n ]));\n }\n formatChanges(changes) {\n if (changes.size === 0) {\n return undefined;\n }\n return styled(' (changed deps: ' +\n [...changes].map((o) => o.debugName).join(', ') +\n ')', { color: 'gray' });\n }\n handleDerivedDependencyChanged(derived, observable, change) {\n if (!this._isIncluded(derived)) {\n return;\n }\n this.changedObservablesSets.get(derived)?.add(observable);\n }\n _handleDerivedRecomputed(derived, info) {\n if (!this._isIncluded(derived)) {\n return;\n }\n const changedObservables = this.changedObservablesSets.get(derived);\n if (!changedObservables) {\n return;\n }\n console.log(...this.textToConsoleArgs([\n formatKind('derived recomputed'),\n styled(derived.debugName, { color: 'BlueViolet' }),\n ...this.formatInfo(info),\n this.formatChanges(changedObservables),\n { data: [{ fn: derived._debugNameData.referenceFn ?? derived._computeFn }] }\n ]));\n changedObservables.clear();\n }\n handleDerivedCleared(derived) {\n if (!this._isIncluded(derived)) {\n return;\n }\n console.log(...this.textToConsoleArgs([\n formatKind('derived cleared'),\n styled(derived.debugName, { color: 'BlueViolet' }),\n ]));\n }\n handleFromEventObservableTriggered(observable, info) {\n if (!this._isIncluded(observable)) {\n return;\n }\n console.log(...this.textToConsoleArgs([\n formatKind('observable from event triggered'),\n styled(observable.debugName, { color: 'BlueViolet' }),\n ...this.formatInfo(info),\n { data: [{ fn: observable._getValue }] }\n ]));\n }\n handleAutorunCreated(autorun) {\n if (!this._isIncluded(autorun)) {\n return;\n }\n this.changedObservablesSets.set(autorun, new Set());\n }\n handleAutorunDisposed(autorun) {\n }\n handleAutorunDependencyChanged(autorun, observable, change) {\n if (!this._isIncluded(autorun)) {\n return;\n }\n this.changedObservablesSets.get(autorun).add(observable);\n }\n handleAutorunStarted(autorun) {\n const changedObservables = this.changedObservablesSets.get(autorun);\n if (!changedObservables) {\n return;\n }\n if (this._isIncluded(autorun)) {\n console.log(...this.textToConsoleArgs([\n formatKind('autorun'),\n styled(autorun.debugName, { color: 'BlueViolet' }),\n this.formatChanges(changedObservables),\n { data: [{ fn: autorun._debugNameData.referenceFn ?? autorun._runFn }] }\n ]));\n }\n changedObservables.clear();\n this.indentation++;\n }\n handleAutorunFinished(autorun) {\n this.indentation--;\n }\n handleBeginTransaction(transaction) {\n let transactionName = transaction.getDebugName();\n if (transactionName === undefined) {\n transactionName = '';\n }\n if (this._isIncluded(transaction)) {\n console.log(...this.textToConsoleArgs([\n formatKind('transaction'),\n styled(transactionName, { color: 'BlueViolet' }),\n { data: [{ fn: transaction._fn }] }\n ]));\n }\n this.indentation++;\n }\n handleEndTransaction() {\n this.indentation--;\n }\n}\nfunction consoleTextToArgs(text) {\n const styles = new Array();\n const data = [];\n let firstArg = '';\n function process(t) {\n if ('length' in t) {\n for (const item of t) {\n if (item) {\n process(item);\n }\n }\n }\n else if ('text' in t) {\n firstArg += `%c${t.text}`;\n styles.push(t.style);\n if (t.data) {\n data.push(...t.data);\n }\n }\n else if ('data' in t) {\n data.push(...t.data);\n }\n }\n process(text);\n const result = [firstArg, ...styles];\n result.push(...data);\n return result;\n}\nfunction normalText(text) {\n return styled(text, { color: 'black' });\n}\nfunction formatKind(kind) {\n return styled(padStr(`${kind}: `, 10), { color: 'black', bold: true });\n}\nfunction styled(text, options = {\n color: 'black',\n}) {\n function objToCss(styleObj) {\n return Object.entries(styleObj).reduce((styleString, [propName, propValue]) => {\n return `${styleString}${propName}:${propValue};`;\n }, '');\n }\n const style = {\n color: options.color,\n };\n if (options.strikeThrough) {\n style['text-decoration'] = 'line-through';\n }\n if (options.bold) {\n style['font-weight'] = 'bold';\n }\n return {\n text,\n style: objToCss(style),\n };\n}\nfunction formatValue(value, availableLen) {\n switch (typeof value) {\n case 'number':\n return '' + value;\n case 'string':\n if (value.length + 2 <= availableLen) {\n return `\"${value}\"`;\n }\n return `\"${value.substr(0, availableLen - 7)}\"+...`;\n case 'boolean':\n return value ? 'true' : 'false';\n case 'undefined':\n return 'undefined';\n case 'object':\n if (value === null) {\n return 'null';\n }\n if (Array.isArray(value)) {\n return formatArray(value, availableLen);\n }\n return formatObject(value, availableLen);\n case 'symbol':\n return value.toString();\n case 'function':\n return `[[Function${value.name ? ' ' + value.name : ''}]]`;\n default:\n return '' + value;\n }\n}\nfunction formatArray(value, availableLen) {\n let result = '[ ';\n let first = true;\n for (const val of value) {\n if (!first) {\n result += ', ';\n }\n if (result.length - 5 > availableLen) {\n result += '...';\n break;\n }\n first = false;\n result += `${formatValue(val, availableLen - result.length)}`;\n }\n result += ' ]';\n return result;\n}\nfunction formatObject(value, availableLen) {\n if (typeof value.toString === 'function' && value.toString !== Object.prototype.toString) {\n const val = value.toString();\n if (val.length <= availableLen) {\n return val;\n }\n return val.substring(0, availableLen - 3) + '...';\n }\n const className = getClassName(value);\n let result = className ? className + '(' : '{ ';\n let first = true;\n for (const [key, val] of Object.entries(value)) {\n if (!first) {\n result += ', ';\n }\n if (result.length - 5 > availableLen) {\n result += '...';\n break;\n }\n first = false;\n result += `${key}: ${formatValue(val, availableLen - result.length)}`;\n }\n result += className ? ')' : ' }';\n return result;\n}\nfunction repeat(str, count) {\n let result = '';\n for (let i = 1; i <= count; i++) {\n result += str;\n }\n return result;\n}\nfunction padStr(str, length) {\n while (str.length < length) {\n str += ' ';\n }\n return str;\n}\n\nexport { ConsoleObservableLogger, formatValue, logObservableToConsole };\n//# sourceMappingURL=consoleObservableLogger.js.map\n"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA,IAAI,uBAAuB;AAC3B,SAAS,sBAAsB,CAAC,GAAG,EAAE;AACrC,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAClC,QAAQ,uBAAuB,GAAG,IAAI,uBAAuB,EAAE;AAC/D,QAAQ,SAAS,CAAC,uBAAuB,CAAC;AAC1C,IAAI;AACJ,IAAI,uBAAuB,CAAC,cAAc,CAAC,GAAG,CAAC;AAC/C;AACA,MAAM,uBAAuB,CAAC;AAC9B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC;AAC5B,QAAQ,IAAI,CAAC,sBAAsB,GAAG,IAAI,OAAO,EAAE;AACnD,IAAI;AACJ,IAAI,cAAc,CAAC,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACpC,YAAY,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE;AAC7C,QAAQ;AACR,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;AACtC,IAAI;AACJ,IAAI,WAAW,CAAC,GAAG,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI;AACtD,IAAI;AACJ,IAAI,iBAAiB,CAAC,IAAI,EAAE;AAC5B,QAAQ,OAAO,iBAAiB,CAAC;AACjC,YAAY,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACvD,YAAY,IAAI;AAChB,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAY,OAAO;AACnB,gBAAgB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,gBAAgB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;AACvD,oBAAoB,KAAK,EAAE,OAAO;AAClC,iBAAiB,CAAC;AAClB,gBAAgB,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC;AACxC,aAAa;AACb,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC;AACpB,cAAc;AACd,gBAAgB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,gBAAgB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;AACvD,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,aAAa,EAAE,IAAI;AACvC,iBAAiB,CAAC;AAClB,gBAAgB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,gBAAgB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;AACvD,oBAAoB,KAAK,EAAE,OAAO;AAClC,iBAAiB,CAAC;AAClB;AACA,cAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1C,IAAI;AACJ,IAAI,uBAAuB,CAAC,UAAU,EAAE;AACxC,QAAQ,IAAI,UAAU,YAAY,OAAO,EAAE;AAC3C,YAAY,MAAM,OAAO,GAAG,UAAU;AACtC,YAAY,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC;AAC/D,QAAQ;AACR,IAAI;AACJ,IAAI,4BAA4B,CAAC,UAAU,EAAE,QAAQ,EAAE;AACvD,IAAI;AACJ,IAAI,uBAAuB,CAAC,UAAU,EAAE,IAAI,EAAE;AAC9C,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AAC3C,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,UAAU,YAAY,OAAO,EAAE;AAC3C,YAAY,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC;AAC3D,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAC9C,YAAY,UAAU,CAAC,0BAA0B,CAAC;AAClD,YAAY,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AACjE,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC,SAAS,CAAC,CAAC;AACX,IAAI;AACJ,IAAI,aAAa,CAAC,OAAO,EAAE;AAC3B,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;AAChC,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,QAAQ,OAAO,MAAM,CAAC,kBAAkB;AACxC,YAAY,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3D,YAAY,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACnC,IAAI;AACJ,IAAI,8BAA8B,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE;AAChE,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AACxC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;AACjE,IAAI;AACJ,IAAI,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE;AAC5C,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AACxC,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC;AAC3E,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAC9C,YAAY,UAAU,CAAC,oBAAoB,CAAC;AAC5C,YAAY,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAC9D,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC,YAAY,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;AAClD,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,cAAc,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;AACtF,SAAS,CAAC,CAAC;AACX,QAAQ,kBAAkB,CAAC,KAAK,EAAE;AAClC,IAAI;AACJ,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAClC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AACxC,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAC9C,YAAY,UAAU,CAAC,iBAAiB,CAAC;AACzC,YAAY,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAC9D,SAAS,CAAC,CAAC;AACX,IAAI;AACJ,IAAI,kCAAkC,CAAC,UAAU,EAAE,IAAI,EAAE;AACzD,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AAC3C,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAC9C,YAAY,UAAU,CAAC,iCAAiC,CAAC;AACzD,YAAY,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AACjE,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACpC,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC;AAClD,SAAS,CAAC,CAAC;AACX,IAAI;AACJ,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAClC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AACxC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC;AAC3D,IAAI;AACJ,IAAI,qBAAqB,CAAC,OAAO,EAAE;AACnC,IAAI;AACJ,IAAI,8BAA8B,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE;AAChE,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AACxC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;AAChE,IAAI;AACJ,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAClC,QAAQ,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC;AAC3E,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AACvC,YAAY,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAClD,gBAAgB,UAAU,CAAC,SAAS,CAAC;AACrC,gBAAgB,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAClE,gBAAgB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;AACtD,gBAAgB,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,cAAc,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;AACtF,aAAa,CAAC,CAAC;AACf,QAAQ;AACR,QAAQ,kBAAkB,CAAC,KAAK,EAAE;AAClC,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,IAAI;AACJ,IAAI,qBAAqB,CAAC,OAAO,EAAE;AACnC,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,IAAI;AACJ,IAAI,sBAAsB,CAAC,WAAW,EAAE;AACxC,QAAQ,IAAI,eAAe,GAAG,WAAW,CAAC,YAAY,EAAE;AACxD,QAAQ,IAAI,eAAe,KAAK,SAAS,EAAE;AAC3C,YAAY,eAAe,GAAG,EAAE;AAChC,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;AAC3C,YAAY,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAClD,gBAAgB,UAAU,CAAC,aAAa,CAAC;AACzC,gBAAgB,MAAM,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAChE,gBAAgB,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC;AACjD,aAAa,CAAC,CAAC;AACf,QAAQ;AACR,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,IAAI;AACJ,IAAI,oBAAoB,GAAG;AAC3B,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,IAAI;AACJ;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,IAAI,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE;AAC9B,IAAI,MAAM,IAAI,GAAG,EAAE;AACnB,IAAI,IAAI,QAAQ,GAAG,EAAE;AACrB,IAAI,SAAS,OAAO,CAAC,CAAC,EAAE;AACxB,QAAQ,IAAI,QAAQ,IAAI,CAAC,EAAE;AAC3B,YAAY,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE;AAClC,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB,OAAO,CAAC,IAAI,CAAC;AACjC,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,aAAa,IAAI,MAAM,IAAI,CAAC,EAAE;AAC9B,YAAY,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACrC,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAChC,YAAY,IAAI,CAAC,CAAC,IAAI,EAAE;AACxB,gBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACpC,YAAY;AACZ,QAAQ;AACR,aAAa,IAAI,MAAM,IAAI,CAAC,EAAE;AAC9B,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAChC,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,CAAC;AACjB,IAAI,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC;AACxC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACxB,IAAI,OAAO,MAAM;AACjB;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,IAAI,OAAO,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC3C;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC1E;AACA,SAAS,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG;AAChC,IAAI,KAAK,EAAE,OAAO;AAClB,CAAC,EAAE;AACH,IAAI,SAAS,QAAQ,CAAC,QAAQ,EAAE;AAChC,QAAQ,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK;AACvF,YAAY,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5D,QAAQ,CAAC,EAAE,EAAE,CAAC;AACd,IAAI;AACJ,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,KAAK,EAAE,OAAO,CAAC,KAAK;AAC5B,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE;AAC/B,QAAQ,KAAK,CAAC,iBAAiB,CAAC,GAAG,cAAc;AACjD,IAAI;AACJ,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;AACtB,QAAQ,KAAK,CAAC,aAAa,CAAC,GAAG,MAAM;AACrC,IAAI;AACJ,IAAI,OAAO;AACX,QAAQ,IAAI;AACZ,QAAQ,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;AAC9B,KAAK;AACL;AACA,SAAS,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE;AAC1C,IAAI,QAAQ,OAAO,KAAK;AACxB,QAAQ,KAAK,QAAQ;AACrB,YAAY,OAAO,EAAE,GAAG,KAAK;AAC7B,QAAQ,KAAK,QAAQ;AACrB,YAAY,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,EAAE;AAClD,gBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACnC,YAAY;AACZ,YAAY,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/D,QAAQ,KAAK,SAAS;AACtB,YAAY,OAAO,KAAK,GAAG,MAAM,GAAG,OAAO;AAC3C,QAAQ,KAAK,WAAW;AACxB,YAAY,OAAO,WAAW;AAC9B,QAAQ,KAAK,QAAQ;AACrB,YAAY,IAAI,KAAK,KAAK,IAAI,EAAE;AAChC,gBAAgB,OAAO,MAAM;AAC7B,YAAY;AACZ,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtC,gBAAgB,OAAO,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC;AACvD,YAAY;AACZ,YAAY,OAAO,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC;AACpD,QAAQ,KAAK,QAAQ;AACrB,YAAY,OAAO,KAAK,CAAC,QAAQ,EAAE;AACnC,QAAQ,KAAK,UAAU;AACvB,YAAY,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC;AACtE,QAAQ;AACR,YAAY,OAAO,EAAE,GAAG,KAAK;AAC7B;AACA;AACA,SAAS,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE;AAC1C,IAAI,IAAI,MAAM,GAAG,IAAI;AACrB,IAAI,IAAI,KAAK,GAAG,IAAI;AACpB,IAAI,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AAC7B,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,MAAM,IAAI,IAAI;AAC1B,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,EAAE;AAC9C,YAAY,MAAM,IAAI,KAAK;AAC3B,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,GAAG,KAAK;AACrB,QAAQ,MAAM,IAAI,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACrE,IAAI;AACJ,IAAI,MAAM,IAAI,IAAI;AAClB,IAAI,OAAO,MAAM;AACjB;AACA,SAAS,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE;AAC3C,IAAI,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;AAC9F,QAAQ,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE;AACpC,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,YAAY,EAAE;AACxC,YAAY,OAAO,GAAG;AACtB,QAAQ;AACR,QAAQ,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,GAAG,KAAK;AACzD,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACzC,IAAI,IAAI,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,IAAI;AACnD,IAAI,IAAI,KAAK,GAAG,IAAI;AACpB,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACpD,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,MAAM,IAAI,IAAI;AAC1B,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,EAAE;AAC9C,YAAY,MAAM,IAAI,KAAK;AAC3B,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,GAAG,KAAK;AACrB,QAAQ,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7E,IAAI;AACJ,IAAI,MAAM,IAAI,SAAS,GAAG,GAAG,GAAG,IAAI;AACpC,IAAI,OAAO,MAAM;AACjB;AACA,SAAS,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE;AAC5B,IAAI,IAAI,MAAM,GAAG,EAAE;AACnB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;AACrC,QAAQ,MAAM,IAAI,GAAG;AACrB,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB;AACA,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE;AAC7B,IAAI,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE;AAChC,QAAQ,GAAG,IAAI,GAAG;AAClB,IAAI;AACJ,IAAI,OAAO,GAAG;AACd;;;;"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Derived } from '../observables/derivedImpl.js';
|
|
2
|
+
import { FromEventObservable } from '../observables/observableFromEvent.js';
|
|
3
|
+
import { ObservableValue } from '../observables/observableValue.js';
|
|
4
|
+
import { AutorunObserver } from '../reactions/autorunImpl.js';
|
|
5
|
+
import { formatValue } from './consoleObservableLogger.js';
|
|
6
|
+
|
|
7
|
+
/*---------------------------------------------------------------------------------------------
|
|
8
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
9
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
10
|
+
*--------------------------------------------------------------------------------------------*/
|
|
11
|
+
|
|
12
|
+
/*---------------------------------------------------------------------------------------------
|
|
13
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
14
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
15
|
+
*--------------------------------------------------------------------------------------------*/
|
|
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();
|
|
24
|
+
}
|
|
25
|
+
function formatObservableInfo(info, indentLevel, alreadyListed) {
|
|
26
|
+
const indent = '\t\t'.repeat(indentLevel);
|
|
27
|
+
const lines = [];
|
|
28
|
+
const isAlreadyListed = alreadyListed.has(info.sourceObj);
|
|
29
|
+
if (isAlreadyListed) {
|
|
30
|
+
lines.push(`${indent}* ${info.type} ${info.name} (already listed)`);
|
|
31
|
+
return lines.join('\n');
|
|
32
|
+
}
|
|
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));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return lines.join('\n');
|
|
44
|
+
}
|
|
45
|
+
class Info {
|
|
46
|
+
static from(obs, debugNamePostProcessor) {
|
|
47
|
+
if (obs instanceof AutorunObserver) {
|
|
48
|
+
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)));
|
|
50
|
+
}
|
|
51
|
+
else if (obs instanceof Derived) {
|
|
52
|
+
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)));
|
|
54
|
+
}
|
|
55
|
+
else if (obs instanceof ObservableValue) {
|
|
56
|
+
const state = obs.debugGetState();
|
|
57
|
+
return new Info(obs, debugNamePostProcessor(obs.debugName), 'observableValue', state.value, 'upToDate', []);
|
|
58
|
+
}
|
|
59
|
+
else if (obs instanceof FromEventObservable) {
|
|
60
|
+
const state = obs.debugGetState();
|
|
61
|
+
return new Info(obs, debugNamePostProcessor(obs.debugName), 'fromEvent', state.value, state.hasValue ? 'upToDate' : 'initial', []);
|
|
62
|
+
}
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
static unknown(obs) {
|
|
66
|
+
return new Info(obs, '(unknown)', 'unknown', undefined, 'unknown', []);
|
|
67
|
+
}
|
|
68
|
+
constructor(sourceObj, name, type, value, state, dependencies) {
|
|
69
|
+
this.sourceObj = sourceObj;
|
|
70
|
+
this.name = name;
|
|
71
|
+
this.type = type;
|
|
72
|
+
this.value = value;
|
|
73
|
+
this.state = state;
|
|
74
|
+
this.dependencies = dependencies;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export { debugGetDependencyGraph };
|
|
79
|
+
//# sourceMappingURL=debugGetDependencyGraph.js.map
|
|
@@ -0,0 +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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"}
|