@codingame/monaco-vscode-api 26.0.0 → 26.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +8 -8
- package/services.js +3 -3
- package/vscode/src/vs/base/common/strings.d.ts +30 -0
- package/vscode/src/vs/base/common/strings.js +11 -0
- package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPicker.css +2 -2
- package/vscode/src/vs/editor/contrib/colorPicker/browser/images/opacity-background.png +0 -0
- package/vscode/src/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.css +2 -2
- package/vscode/src/vs/editor/standalone/browser/iPadShowKeyboard/keyboard-dark.svg +10 -0
- package/vscode/src/vs/editor/standalone/browser/iPadShowKeyboard/keyboard-light.svg +10 -0
- package/vscode/src/vs/platform/actionWidget/browser/actionList.js +1 -1
- package/vscode/src/vs/platform/product/common/product.js +3 -3
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionEditor.css +1 -1
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/extensionsViewlet.css +3 -3
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/loading-dark.svg +31 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/loading-hc.svg +31 -0
- package/vscode/src/vs/workbench/contrib/extensions/browser/media/loading.svg +31 -0
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpServer.js +9 -9
- package/vscode/src/vs/workbench/contrib/mcp/common/mcpTypes.js +4 -4
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +23 -23
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +2 -2
- package/vscode/src/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +8 -8
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/icons.contribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.js +3 -3
- package/vscode/src/vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +17 -17
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOperations.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +6 -6
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/coreActions.js +4 -4
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/foldingController.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +24 -24
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/diffElementOutputs.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffEditorBrowser.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffList.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookAccessibilityProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +24 -24
- package/vscode/src/vs/workbench/contrib/notebook/browser/notebookIcons.js +29 -29
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +5 -5
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +7 -7
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellExecutionIcon.js +4 -4
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCellRunToolbar.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/collapsedCellOutput.js +3 -3
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/foldedCellHint.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +4 -4
- package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelQuickPickStrategy.js +14 -14
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +2 -2
- package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookViewZones.js +1 -1
- package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingWidgets.js +3 -3
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesIcons.js +13 -13
- package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +10 -10
- package/vscode/src/vs/workbench/contrib/preferences/browser/settingsLayout.js +50 -50
- package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +3 -3
- package/vscode/src/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +21 -21
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +15 -15
- package/vscode/src/vs/workbench/contrib/remote/browser/remoteIcons.js +17 -17
- package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +59 -59
- package/vscode/src/vs/workbench/contrib/scm/browser/scmHistory.js +11 -11
- package/vscode/src/vs/workbench/contrib/scm/browser/scmHistoryChatContext.js +6 -6
- package/vscode/src/vs/workbench/contrib/scm/common/quickDiff.js +14 -14
- package/vscode/src/vs/workbench/contrib/search/browser/anythingQuickAccess.js +9 -9
- package/vscode/src/vs/workbench/contrib/search/browser/patternInputWidget.js +3 -3
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsBase.js +1 -1
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +12 -12
- package/vscode/src/vs/workbench/contrib/search/browser/searchActionsTopBar.js +9 -9
- package/vscode/src/vs/workbench/contrib/search/browser/searchChatContext.js +5 -5
- package/vscode/src/vs/workbench/contrib/search/browser/searchFindInput.js +1 -1
- package/vscode/src/vs/workbench/contrib/search/browser/searchIcons.js +20 -20
- package/vscode/src/vs/workbench/contrib/search/browser/searchMessage.js +2 -2
- package/vscode/src/vs/workbench/contrib/search/browser/searchResultsView.js +14 -14
- package/vscode/src/vs/workbench/contrib/search/browser/searchView.js +55 -55
- package/vscode/src/vs/workbench/contrib/search/browser/searchWidget.js +8 -8
- package/vscode/src/vs/workbench/contrib/search/browser/symbolsQuickAccess.js +2 -2
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +4 -4
- package/vscode/src/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.js +5 -5
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +3 -3
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +3 -3
- package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.js +9 -9
- package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +29 -29
- package/vscode/src/vs/workbench/contrib/tasks/common/constants.js +1 -1
- package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +5 -5
- package/vscode/src/vs/workbench/contrib/tasks/common/taskService.js +6 -6
- package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +4 -4
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalIcons.js +13 -13
- package/vscode/src/vs/workbench/contrib/terminal/browser/terminalMenus.js +40 -40
- package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationStyles.js +15 -15
- package/vscode/src/vs/workbench/contrib/terminal/common/terminal.js +9 -9
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +23 -23
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +17 -17
- package/vscode/src/vs/workbench/contrib/terminal/common/terminalStrings.js +26 -26
- package/vscode/src/vs/workbench/contrib/terminalContrib/accessibility/common/terminalAccessibilityConfiguration.js +2 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/autoReplies/common/terminalAutoRepliesConfiguration.js +3 -2
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalChatAgentToolsConfiguration.js +54 -54
- package/vscode/src/vs/workbench/contrib/terminalContrib/commandGuide/common/terminalCommandGuideConfiguration.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/history/common/terminal.history.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/inlineHint/common/terminalInitialHintConfiguration.js +1 -1
- package/vscode/src/vs/workbench/contrib/terminalContrib/stickyScroll/common/terminalStickyScrollConfiguration.js +3 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/suggest/common/terminalSuggestConfiguration.js +30 -30
- package/vscode/src/vs/workbench/contrib/terminalContrib/typeAhead/common/terminalTypeAheadConfiguration.js +5 -5
- package/vscode/src/vs/workbench/contrib/terminalContrib/zoom/common/terminal.zoom.js +2 -2
- package/vscode/src/vs/workbench/contrib/testing/common/constants.js +11 -11
- package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +2 -2
- package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +3 -3
- package/vscode/src/vs/workbench/contrib/url/browser/trustedDomains.js +6 -6
- package/vscode/src/vs/workbench/contrib/webview/browser/webview.contribution.js +3 -3
- package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +1 -1
- package/vscode/src/vs/workbench/contrib/workspace/common/workspace.js +2 -2
- package/vscode/src/vs/workbench/services/accounts/browser/defaultAccount.js +100 -41
- package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +11 -11
- package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +5 -5
- package/vscode/src/vs/workbench/services/chat/common/chatEntitlementService.js +14 -14
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +16 -16
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +1 -1
- package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +16 -16
- package/vscode/src/vs/workbench/services/editor/common/editorResolverService.js +1 -1
- package/vscode/src/vs/workbench/services/extensionManagement/common/extensionsIcons.js +3 -3
- package/vscode/src/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +6 -6
- package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +10 -10
- package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +88 -88
- package/vscode/src/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +5 -5
- package/vscode/src/vs/workbench/services/language/common/languageService.js +24 -24
- package/vscode/src/vs/workbench/services/log/common/logConstants.js +1 -1
- package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorInput.js +2 -2
- package/vscode/src/vs/workbench/services/preferences/browser/keybindingsEditorModel.js +7 -7
- package/vscode/src/vs/workbench/services/preferences/common/preferencesEditorInput.js +4 -4
- package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +8 -8
- package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +6 -6
- package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +1 -1
- package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +9 -9
- package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +3 -3
- package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +18 -18
- package/vscode/src/vs/workbench/services/themes/common/colorThemeData.js +8 -8
- package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +13 -13
- package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +24 -24
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfile.js +3 -3
- package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileIcons.js +1 -1
- package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +13 -13
- package/vscode/src/vs/workbench/services/views/browser/viewsService.js +9 -9
- package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +16 -16
|
@@ -12,7 +12,7 @@ var TerminalTypeAheadSettingId;
|
|
|
12
12
|
const terminalTypeAheadConfiguration = {
|
|
13
13
|
[TerminalTypeAheadSettingId.LocalEchoLatencyThreshold]: {
|
|
14
14
|
description: ( localize(
|
|
15
|
-
|
|
15
|
+
12737,
|
|
16
16
|
"Length of network delay, in milliseconds, where local edits will be echoed on the terminal without waiting for server acknowledgement. If '0', local echo will always be on, and if '-1' it will be disabled."
|
|
17
17
|
)),
|
|
18
18
|
type: "integer",
|
|
@@ -22,19 +22,19 @@ const terminalTypeAheadConfiguration = {
|
|
|
22
22
|
},
|
|
23
23
|
[TerminalTypeAheadSettingId.LocalEchoEnabled]: {
|
|
24
24
|
markdownDescription: ( localize(
|
|
25
|
-
|
|
25
|
+
12738,
|
|
26
26
|
"When local echo should be enabled. This will override {0}",
|
|
27
27
|
"`#terminal.integrated.localEchoLatencyThreshold#`"
|
|
28
28
|
)),
|
|
29
29
|
type: "string",
|
|
30
30
|
enum: ["on", "off", "auto"],
|
|
31
|
-
enumDescriptions: [( localize(
|
|
31
|
+
enumDescriptions: [( localize(12739, "Always enabled")), ( localize(12740, "Always disabled")), ( localize(12741, "Enabled only for remote workspaces"))],
|
|
32
32
|
default: "off",
|
|
33
33
|
tags: ["preview"]
|
|
34
34
|
},
|
|
35
35
|
[TerminalTypeAheadSettingId.LocalEchoExcludePrograms]: {
|
|
36
36
|
description: ( localize(
|
|
37
|
-
|
|
37
|
+
12742,
|
|
38
38
|
"Local echo will be disabled when any of these program names are found in the terminal title."
|
|
39
39
|
)),
|
|
40
40
|
type: "array",
|
|
@@ -47,7 +47,7 @@ const terminalTypeAheadConfiguration = {
|
|
|
47
47
|
},
|
|
48
48
|
[TerminalTypeAheadSettingId.LocalEchoStyle]: {
|
|
49
49
|
description: ( localize(
|
|
50
|
-
|
|
50
|
+
12743,
|
|
51
51
|
"Terminal style of locally echoed text; either a font style or an RGB color."
|
|
52
52
|
)),
|
|
53
53
|
default: "dim",
|
|
@@ -15,10 +15,10 @@ var TerminalZoomSettingId;
|
|
|
15
15
|
const terminalZoomConfiguration = {
|
|
16
16
|
[TerminalZoomSettingId.MouseWheelZoom]: {
|
|
17
17
|
markdownDescription: isMacintosh ? ( localize(
|
|
18
|
-
|
|
18
|
+
12758,
|
|
19
19
|
"Zoom the font of the terminal when using mouse wheel and holding `Cmd`."
|
|
20
20
|
)) : ( localize(
|
|
21
|
-
|
|
21
|
+
12759,
|
|
22
22
|
"Zoom the font of the terminal when using mouse wheel and holding `Ctrl`."
|
|
23
23
|
)),
|
|
24
24
|
type: "boolean",
|
|
@@ -27,19 +27,19 @@ var TestExplorerViewSorting;
|
|
|
27
27
|
TestExplorerViewSorting["ByDuration"] = "duration";
|
|
28
28
|
})(TestExplorerViewSorting || (TestExplorerViewSorting = {}));
|
|
29
29
|
const testStateNames = {
|
|
30
|
-
[TestResultState.Errored]: ( localize(
|
|
31
|
-
[TestResultState.Failed]: ( localize(
|
|
32
|
-
[TestResultState.Passed]: ( localize(
|
|
33
|
-
[TestResultState.Queued]: ( localize(
|
|
34
|
-
[TestResultState.Running]: ( localize(
|
|
35
|
-
[TestResultState.Skipped]: ( localize(
|
|
36
|
-
[TestResultState.Unset]: ( localize(
|
|
30
|
+
[TestResultState.Errored]: ( localize(13067, "Errored")),
|
|
31
|
+
[TestResultState.Failed]: ( localize(13068, "Failed")),
|
|
32
|
+
[TestResultState.Passed]: ( localize(13069, "Passed")),
|
|
33
|
+
[TestResultState.Queued]: ( localize(13070, "Queued")),
|
|
34
|
+
[TestResultState.Running]: ( localize(13071, "Running")),
|
|
35
|
+
[TestResultState.Skipped]: ( localize(13072, "Skipped")),
|
|
36
|
+
[TestResultState.Unset]: ( localize(13073, "Not yet run"))
|
|
37
37
|
};
|
|
38
|
-
const labelForTestInState = (label, state) => ( localize(
|
|
38
|
+
const labelForTestInState = (label, state) => ( localize(13074, "{0} ({1})", stripIcons(label), testStateNames[state]));
|
|
39
39
|
const testConfigurationGroupNames = {
|
|
40
|
-
[TestRunProfileBitset.Debug]: ( localize(
|
|
41
|
-
[TestRunProfileBitset.Run]: ( localize(
|
|
42
|
-
[TestRunProfileBitset.Coverage]: ( localize(
|
|
40
|
+
[TestRunProfileBitset.Debug]: ( localize(13075, "Debug")),
|
|
41
|
+
[TestRunProfileBitset.Run]: ( localize(13076, "Run")),
|
|
42
|
+
[TestRunProfileBitset.Coverage]: ( localize(13077, "Coverage"))
|
|
43
43
|
};
|
|
44
44
|
var TestCommandId;
|
|
45
45
|
(function(TestCommandId) {
|
|
@@ -168,7 +168,7 @@ let LiveTestResult = class LiveTestResult extends Disposable {
|
|
|
168
168
|
this.onNewTask = this.newTaskEmitter.event;
|
|
169
169
|
this.onEndTask = this.endTaskEmitter.event;
|
|
170
170
|
this.tasks = [];
|
|
171
|
-
this.name = ( localize(
|
|
171
|
+
this.name = ( localize(13078, "Test run at {0}", ( new Date()).toLocaleString(language)));
|
|
172
172
|
this.counts = makeEmptyCounts();
|
|
173
173
|
this.computedStateAccessor = {
|
|
174
174
|
getOwnState: i => i.ownComputedState,
|
|
@@ -430,7 +430,7 @@ class HydratedTestResult {
|
|
|
430
430
|
this.completedAt = serialized.completedAt;
|
|
431
431
|
this.tasks = ( serialized.tasks.map((task, i) => ({
|
|
432
432
|
id: task.id,
|
|
433
|
-
name: task.name || ( localize(
|
|
433
|
+
name: task.name || ( localize(13079, "Unnamed Task")),
|
|
434
434
|
ctrlId: task.ctrlId,
|
|
435
435
|
running: false,
|
|
436
436
|
coverage: observableValue(this, undefined),
|
|
@@ -46,9 +46,9 @@ var TestRunProfileBitset;
|
|
|
46
46
|
TestRunProfileBitset[TestRunProfileBitset["SupportsContinuousRun"] = 64] = "SupportsContinuousRun";
|
|
47
47
|
})(TestRunProfileBitset || (TestRunProfileBitset = {}));
|
|
48
48
|
const testProfileBitset = {
|
|
49
|
-
[TestRunProfileBitset.Run]: ( localize(
|
|
50
|
-
[TestRunProfileBitset.Debug]: ( localize(
|
|
51
|
-
[TestRunProfileBitset.Coverage]: ( localize(
|
|
49
|
+
[TestRunProfileBitset.Run]: ( localize(13082, "Run")),
|
|
50
|
+
[TestRunProfileBitset.Debug]: ( localize(13083, "Debug")),
|
|
51
|
+
[TestRunProfileBitset.Coverage]: ( localize(13084, "Coverage"))
|
|
52
52
|
};
|
|
53
53
|
const testRunProfileBitsetList = [
|
|
54
54
|
TestRunProfileBitset.Run,
|
|
@@ -50,7 +50,7 @@ async function openInEditor(editorService, resource) {
|
|
|
50
50
|
const manageTrustedDomainSettingsCommand = {
|
|
51
51
|
id: "workbench.action.manageTrustedDomain",
|
|
52
52
|
description: {
|
|
53
|
-
description: ( localize2(
|
|
53
|
+
description: ( localize2(13273, "Manage Trusted Domains")),
|
|
54
54
|
args: []
|
|
55
55
|
},
|
|
56
56
|
handler: async accessor => {
|
|
@@ -75,7 +75,7 @@ async function configureOpenerTrustedDomainsHandler(
|
|
|
75
75
|
const options = [];
|
|
76
76
|
options.push({
|
|
77
77
|
type: "item",
|
|
78
|
-
label: ( localize(
|
|
78
|
+
label: ( localize(13274, "Trust {0}", domainToConfigure)),
|
|
79
79
|
id: "trust",
|
|
80
80
|
toTrust: domainToConfigure,
|
|
81
81
|
picked: true
|
|
@@ -88,7 +88,7 @@ async function configureOpenerTrustedDomainsHandler(
|
|
|
88
88
|
const base = parsedDomainToConfigure.authority.split(":")[0];
|
|
89
89
|
options.push({
|
|
90
90
|
type: "item",
|
|
91
|
-
label: ( localize(
|
|
91
|
+
label: ( localize(13275, "Trust {0} on all ports", base)),
|
|
92
92
|
toTrust: base + ":*",
|
|
93
93
|
id: "trust"
|
|
94
94
|
});
|
|
@@ -96,20 +96,20 @@ async function configureOpenerTrustedDomainsHandler(
|
|
|
96
96
|
} else {
|
|
97
97
|
options.push({
|
|
98
98
|
type: "item",
|
|
99
|
-
label: ( localize(
|
|
99
|
+
label: ( localize(13276, "Trust {0} and all its subdomains", domainEnd)),
|
|
100
100
|
toTrust: topLevelDomain,
|
|
101
101
|
id: "trust"
|
|
102
102
|
});
|
|
103
103
|
}
|
|
104
104
|
options.push({
|
|
105
105
|
type: "item",
|
|
106
|
-
label: ( localize(
|
|
106
|
+
label: ( localize(13277, "Trust all domains (disables link protection)")),
|
|
107
107
|
toTrust: "*",
|
|
108
108
|
id: "trust"
|
|
109
109
|
});
|
|
110
110
|
options.push({
|
|
111
111
|
type: "item",
|
|
112
|
-
label: ( localize(
|
|
112
|
+
label: ( localize(13278, "Manage Trusted Domains")),
|
|
113
113
|
id: "manage"
|
|
114
114
|
});
|
|
115
115
|
const pickedResult = await quickInputService.pick(options, {
|
|
@@ -39,7 +39,7 @@ if (CutAction) {
|
|
|
39
39
|
MenuRegistry.appendMenuItem(MenuId.WebviewContext, {
|
|
40
40
|
command: {
|
|
41
41
|
id: CutAction.id,
|
|
42
|
-
title: ( localize(
|
|
42
|
+
title: ( localize(13518, "Cut"))
|
|
43
43
|
},
|
|
44
44
|
group: "5_cutcopypaste",
|
|
45
45
|
order: 1,
|
|
@@ -50,7 +50,7 @@ if (CopyAction) {
|
|
|
50
50
|
MenuRegistry.appendMenuItem(MenuId.WebviewContext, {
|
|
51
51
|
command: {
|
|
52
52
|
id: CopyAction.id,
|
|
53
|
-
title: ( localize(
|
|
53
|
+
title: ( localize(13519, "Copy"))
|
|
54
54
|
},
|
|
55
55
|
group: "5_cutcopypaste",
|
|
56
56
|
order: 2,
|
|
@@ -61,7 +61,7 @@ if (PasteAction) {
|
|
|
61
61
|
MenuRegistry.appendMenuItem(MenuId.WebviewContext, {
|
|
62
62
|
command: {
|
|
63
63
|
id: PasteAction.id,
|
|
64
|
-
title: ( localize(
|
|
64
|
+
title: ( localize(13520, "Paste"))
|
|
65
65
|
},
|
|
66
66
|
group: "5_cutcopypaste",
|
|
67
67
|
order: 3,
|
|
@@ -23,7 +23,7 @@ import { IWorkbenchLayoutService } from '../../../services/layout/browser/layout
|
|
|
23
23
|
var WebviewEditor_1;
|
|
24
24
|
const CONTEXT_ACTIVE_WEBVIEW_PANEL_ID = ( new RawContextKey("activeWebviewPanelId", "", {
|
|
25
25
|
type: "string",
|
|
26
|
-
description: ( localize(
|
|
26
|
+
description: ( localize(13527, "The viewType of the currently active webview panel."))
|
|
27
27
|
}));
|
|
28
28
|
let WebviewEditor = class WebviewEditor extends EditorPane {
|
|
29
29
|
static {
|
|
@@ -3,8 +3,8 @@ import { localize } from '../../../../nls.js';
|
|
|
3
3
|
import { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';
|
|
4
4
|
|
|
5
5
|
const WorkspaceTrustContext = {
|
|
6
|
-
IsEnabled: ( new RawContextKey("isWorkspaceTrustEnabled", false, ( localize(
|
|
7
|
-
IsTrusted: ( new RawContextKey("isWorkspaceTrusted", false, ( localize(
|
|
6
|
+
IsEnabled: ( new RawContextKey("isWorkspaceTrustEnabled", false, ( localize(13959, "Whether the workspace trust feature is enabled.")))),
|
|
7
|
+
IsTrusted: ( new RawContextKey("isWorkspaceTrusted", false, ( localize(13960, "Whether the current workspace has been trusted by the user."))))
|
|
8
8
|
};
|
|
9
9
|
const MANAGE_TRUST_COMMAND_ID = "workbench.trust.manage";
|
|
10
10
|
|
|
@@ -16,7 +16,7 @@ import { ThrottledDelayer, RunOnceScheduler, timeout } from '../../../../base/co
|
|
|
16
16
|
import { IHostService } from '../../host/browser/host.service.js';
|
|
17
17
|
import { IConfigurationService } from '../../../../platform/configuration/common/configuration.service.js';
|
|
18
18
|
import { getErrorMessage } from '../../../../base/common/errors.js';
|
|
19
|
-
import { isString } from '../../../../base/common/types.js';
|
|
19
|
+
import { isUndefined, isString } from '../../../../base/common/types.js';
|
|
20
20
|
import { StorageScope, StorageTarget } from '../../../../platform/storage/common/storage.js';
|
|
21
21
|
import { IStorageService } from '../../../../platform/storage/common/storage.service.js';
|
|
22
22
|
import { IWorkbenchEnvironmentService } from '../../environment/common/environmentService.service.js';
|
|
@@ -36,7 +36,7 @@ var DefaultAccountStatus;
|
|
|
36
36
|
})(DefaultAccountStatus || (DefaultAccountStatus = {}));
|
|
37
37
|
const CONTEXT_DEFAULT_ACCOUNT_STATE = ( new RawContextKey("defaultAccountStatus", DefaultAccountStatus.Uninitialized));
|
|
38
38
|
const CACHED_POLICY_DATA_KEY = "defaultAccount.cachedPolicyData";
|
|
39
|
-
const ACCOUNT_DATA_POLL_INTERVAL_MS =
|
|
39
|
+
const ACCOUNT_DATA_POLL_INTERVAL_MS = 60 * 60 * 1000;
|
|
40
40
|
function toDefaultAccountConfig(defaultChatAgent) {
|
|
41
41
|
return {
|
|
42
42
|
preferredExtensions: [defaultChatAgent.chatExtensionId, defaultChatAgent.extensionId],
|
|
@@ -99,7 +99,7 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
99
99
|
this.onDidChangePolicyData = this._onDidChangePolicyData.event;
|
|
100
100
|
this.initialized = false;
|
|
101
101
|
this.updateThrottler = this._register(( new ThrottledDelayer(100)));
|
|
102
|
-
this.accountDataPollScheduler = this._register(( new RunOnceScheduler(() => this.
|
|
102
|
+
this.accountDataPollScheduler = this._register(( new RunOnceScheduler(() => this.refetchPolicyData(), ACCOUNT_DATA_POLL_INTERVAL_MS)));
|
|
103
103
|
this.accountStatusContext = CONTEXT_DEFAULT_ACCOUNT_STATE.bindTo(contextKeyService);
|
|
104
104
|
this._policyData = this.getCachedPolicyData();
|
|
105
105
|
this.initPromise = this.init().finally(() => {
|
|
@@ -122,7 +122,9 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
122
122
|
this.logService.debug("[DefaultAccount] Initializing with cached policy data");
|
|
123
123
|
return {
|
|
124
124
|
accountId,
|
|
125
|
-
policyData
|
|
125
|
+
policyData,
|
|
126
|
+
isTokenEntitlementsDataFetched: false,
|
|
127
|
+
isMcpRegistryDataFetched: false
|
|
126
128
|
};
|
|
127
129
|
}
|
|
128
130
|
} catch (error) {
|
|
@@ -149,7 +151,7 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
149
151
|
);
|
|
150
152
|
}
|
|
151
153
|
this.logService.debug("[DefaultAccount] Starting initialization");
|
|
152
|
-
await this.doUpdateDefaultAccount();
|
|
154
|
+
await this.doUpdateDefaultAccount(false, false);
|
|
153
155
|
this.logService.debug("[DefaultAccount] Initialization complete");
|
|
154
156
|
this._register(this.onDidChangeDefaultAccount(account => {
|
|
155
157
|
this.telemetryService.publicLog2("defaultaccount:status", {
|
|
@@ -204,28 +206,39 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
204
206
|
this.updateDefaultAccount();
|
|
205
207
|
}));
|
|
206
208
|
this._register(this.hostService.onDidChangeFocus(focused => {
|
|
207
|
-
if (focused && this._defaultAccount) {
|
|
209
|
+
if (focused && this._defaultAccount && this._policyData && (!this._policyData.isMcpRegistryDataFetched || !this._policyData.isTokenEntitlementsDataFetched)) {
|
|
208
210
|
this.accountDataPollScheduler.cancel();
|
|
209
211
|
this.logService.debug("[DefaultAccount] Window focused, updating default account");
|
|
210
|
-
this.
|
|
212
|
+
this.refresh(true);
|
|
211
213
|
}
|
|
212
214
|
}));
|
|
213
215
|
}
|
|
214
|
-
async refresh() {
|
|
216
|
+
async refresh(donotFetchEntitlements = false) {
|
|
215
217
|
if (!this.initialized) {
|
|
216
218
|
await this.initPromise;
|
|
217
219
|
return this.defaultAccount;
|
|
218
220
|
}
|
|
219
221
|
this.logService.debug("[DefaultAccount] Refreshing default account");
|
|
220
|
-
await this.updateDefaultAccount();
|
|
222
|
+
await this.updateDefaultAccount(false, donotFetchEntitlements);
|
|
221
223
|
return this.defaultAccount;
|
|
222
224
|
}
|
|
223
|
-
async
|
|
224
|
-
|
|
225
|
+
async refetchPolicyData() {
|
|
226
|
+
if (!this.hostService.hasFocus) {
|
|
227
|
+
this.scheduleAccountDataPoll();
|
|
228
|
+
this.logService.debug(
|
|
229
|
+
"[DefaultAccount] Skipping refetching policy data because window is not focused"
|
|
230
|
+
);
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
this.logService.debug("[DefaultAccount] Refetching policy data for current default account");
|
|
234
|
+
await this.updateDefaultAccount(true);
|
|
225
235
|
}
|
|
226
|
-
async
|
|
236
|
+
async updateDefaultAccount(donotUseCache = false, donotFetchEntitlements = false) {
|
|
237
|
+
await this.updateThrottler.trigger(() => this.doUpdateDefaultAccount(donotUseCache, donotFetchEntitlements));
|
|
238
|
+
}
|
|
239
|
+
async doUpdateDefaultAccount(donotUseCache, donotFetchEntitlements) {
|
|
227
240
|
try {
|
|
228
|
-
const defaultAccount = await this.fetchDefaultAccount();
|
|
241
|
+
const defaultAccount = await this.fetchDefaultAccount(donotUseCache, donotFetchEntitlements);
|
|
229
242
|
this.setDefaultAccount(defaultAccount);
|
|
230
243
|
this.scheduleAccountDataPoll();
|
|
231
244
|
} catch (error) {
|
|
@@ -235,7 +248,7 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
235
248
|
);
|
|
236
249
|
}
|
|
237
250
|
}
|
|
238
|
-
async fetchDefaultAccount() {
|
|
251
|
+
async fetchDefaultAccount(donotUseCache, donotFetchEntitlements) {
|
|
239
252
|
const defaultAccountProvider = this.getDefaultAccountAuthenticationProvider();
|
|
240
253
|
this.logService.debug("[DefaultAccount] Default account provider ID:", defaultAccountProvider.id);
|
|
241
254
|
const declaredProvider = this.authenticationService.declaredProviders.find(provider => provider.id === defaultAccountProvider.id);
|
|
@@ -246,7 +259,7 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
246
259
|
);
|
|
247
260
|
return null;
|
|
248
261
|
}
|
|
249
|
-
return await this.getDefaultAccountForAuthenticationProvider(defaultAccountProvider);
|
|
262
|
+
return await this.getDefaultAccountForAuthenticationProvider(defaultAccountProvider, donotUseCache, donotFetchEntitlements);
|
|
250
263
|
}
|
|
251
264
|
setDefaultAccount(account) {
|
|
252
265
|
if (equals(this._defaultAccount, account)) {
|
|
@@ -312,7 +325,7 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
312
325
|
);
|
|
313
326
|
return result;
|
|
314
327
|
}
|
|
315
|
-
async getDefaultAccountForAuthenticationProvider(authenticationProvider) {
|
|
328
|
+
async getDefaultAccountForAuthenticationProvider(authenticationProvider, donotUseCache, donotFetchEntitlements) {
|
|
316
329
|
try {
|
|
317
330
|
this.logService.debug(
|
|
318
331
|
"[DefaultAccount] Getting Default Account from authenticated sessions for provider:",
|
|
@@ -329,7 +342,7 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
329
342
|
);
|
|
330
343
|
return null;
|
|
331
344
|
}
|
|
332
|
-
return this.getDefaultAccountFromAuthenticatedSessions(authenticationProvider, sessions);
|
|
345
|
+
return this.getDefaultAccountFromAuthenticatedSessions(authenticationProvider, sessions, donotUseCache, donotFetchEntitlements);
|
|
333
346
|
} catch (error) {
|
|
334
347
|
this.logService.error(
|
|
335
348
|
"[DefaultAccount] Failed to get default account for provider:",
|
|
@@ -339,24 +352,35 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
339
352
|
return null;
|
|
340
353
|
}
|
|
341
354
|
}
|
|
342
|
-
async getDefaultAccountFromAuthenticatedSessions(authenticationProvider, sessions) {
|
|
355
|
+
async getDefaultAccountFromAuthenticatedSessions(authenticationProvider, sessions, donotUseCache, donotFetchEntitlements) {
|
|
343
356
|
try {
|
|
344
357
|
const accountId = sessions[0].account.id;
|
|
345
|
-
const
|
|
346
|
-
|
|
347
|
-
|
|
358
|
+
const accountPolicyData = this._policyData?.accountId === accountId ? this._policyData : undefined;
|
|
359
|
+
const [entitlementsData, tokenEntitlementsData] = await Promise.all([
|
|
360
|
+
donotFetchEntitlements && accountPolicyData && this._defaultAccount ? this._defaultAccount.defaultAccount.entitlementsData : this.getEntitlements(sessions),
|
|
361
|
+
this.getTokenEntitlements(sessions, donotUseCache ? undefined : accountPolicyData)
|
|
362
|
+
]);
|
|
363
|
+
let isTokenEntitlementsDataFetched = false;
|
|
364
|
+
let isMcpRegistryDataFetched = false;
|
|
365
|
+
let policyData = accountPolicyData?.policyData ? {
|
|
366
|
+
...accountPolicyData.policyData
|
|
348
367
|
} : undefined;
|
|
349
368
|
if (tokenEntitlementsData) {
|
|
369
|
+
isTokenEntitlementsDataFetched = true;
|
|
350
370
|
policyData = policyData ?? {};
|
|
351
371
|
policyData.chat_agent_enabled = tokenEntitlementsData.chat_agent_enabled;
|
|
352
372
|
policyData.chat_preview_features_enabled = tokenEntitlementsData.chat_preview_features_enabled;
|
|
353
373
|
policyData.mcp = tokenEntitlementsData.mcp;
|
|
354
374
|
if (policyData.mcp) {
|
|
355
|
-
const mcpRegistryProvider = await this.getMcpRegistryProvider(sessions);
|
|
356
|
-
if (mcpRegistryProvider) {
|
|
357
|
-
|
|
358
|
-
policyData.
|
|
375
|
+
const mcpRegistryProvider = await this.getMcpRegistryProvider(sessions, donotUseCache ? undefined : accountPolicyData);
|
|
376
|
+
if (!isUndefined(mcpRegistryProvider)) {
|
|
377
|
+
isMcpRegistryDataFetched = true;
|
|
378
|
+
policyData.mcpRegistryUrl = mcpRegistryProvider?.url;
|
|
379
|
+
policyData.mcpAccess = mcpRegistryProvider?.registry_access;
|
|
359
380
|
}
|
|
381
|
+
} else {
|
|
382
|
+
policyData.mcpRegistryUrl = undefined;
|
|
383
|
+
policyData.mcpAccess = undefined;
|
|
360
384
|
}
|
|
361
385
|
}
|
|
362
386
|
const defaultAccount = {
|
|
@@ -373,7 +397,9 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
373
397
|
defaultAccount,
|
|
374
398
|
policyData: policyData ? {
|
|
375
399
|
accountId,
|
|
376
|
-
policyData
|
|
400
|
+
policyData,
|
|
401
|
+
isTokenEntitlementsDataFetched,
|
|
402
|
+
isMcpRegistryDataFetched
|
|
377
403
|
} : null
|
|
378
404
|
};
|
|
379
405
|
} catch (error) {
|
|
@@ -434,7 +460,14 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
434
460
|
scopesMatch(scopes, expectedScopes) {
|
|
435
461
|
return expectedScopes.every(scope => scopes.includes(scope));
|
|
436
462
|
}
|
|
437
|
-
async getTokenEntitlements(sessions) {
|
|
463
|
+
async getTokenEntitlements(sessions, accountPolicyData) {
|
|
464
|
+
if (accountPolicyData?.isTokenEntitlementsDataFetched) {
|
|
465
|
+
this.logService.debug("[DefaultAccount] Using last fetched token entitlements data");
|
|
466
|
+
return accountPolicyData.policyData;
|
|
467
|
+
}
|
|
468
|
+
return await this.requestTokenEntitlements(sessions);
|
|
469
|
+
}
|
|
470
|
+
async requestTokenEntitlements(sessions) {
|
|
438
471
|
const tokenEntitlementsUrl = this.getTokenEntitlementUrl();
|
|
439
472
|
if (!tokenEntitlementsUrl) {
|
|
440
473
|
this.logService.debug("[DefaultAccount] No token entitlements URL found");
|
|
@@ -498,11 +531,21 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
498
531
|
}
|
|
499
532
|
return undefined;
|
|
500
533
|
}
|
|
501
|
-
async getMcpRegistryProvider(sessions) {
|
|
534
|
+
async getMcpRegistryProvider(sessions, accountPolicyData) {
|
|
535
|
+
if (accountPolicyData?.isMcpRegistryDataFetched) {
|
|
536
|
+
this.logService.debug("[DefaultAccount] Using last fetched MCP registry data");
|
|
537
|
+
return accountPolicyData.policyData.mcpRegistryUrl && accountPolicyData.policyData.mcpAccess ? {
|
|
538
|
+
url: accountPolicyData.policyData.mcpRegistryUrl,
|
|
539
|
+
registry_access: accountPolicyData.policyData.mcpAccess
|
|
540
|
+
} : null;
|
|
541
|
+
}
|
|
542
|
+
return await this.requestMcpRegistryProvider(sessions);
|
|
543
|
+
}
|
|
544
|
+
async requestMcpRegistryProvider(sessions) {
|
|
502
545
|
const mcpRegistryDataUrl = this.getMcpRegistryDataUrl();
|
|
503
546
|
if (!mcpRegistryDataUrl) {
|
|
504
547
|
this.logService.debug("[DefaultAccount] No MCP registry data URL found");
|
|
505
|
-
return
|
|
548
|
+
return null;
|
|
506
549
|
}
|
|
507
550
|
this.logService.debug("[DefaultAccount] Fetching MCP registry data from:", mcpRegistryDataUrl);
|
|
508
551
|
const response = await this.request(mcpRegistryDataUrl, "GET", undefined, sessions, CancellationToken.None);
|
|
@@ -510,7 +553,25 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
510
553
|
return undefined;
|
|
511
554
|
}
|
|
512
555
|
if (response.res.statusCode && response.res.statusCode !== 200) {
|
|
513
|
-
|
|
556
|
+
if (response.res.statusCode === 401) {
|
|
557
|
+
this.logService.debug(
|
|
558
|
+
"[DefaultAccount] Unauthorized (401) when fetching MCP registry data, treating as no registry available"
|
|
559
|
+
);
|
|
560
|
+
return null;
|
|
561
|
+
}
|
|
562
|
+
if (response.res.statusCode === 404) {
|
|
563
|
+
this.logService.debug(
|
|
564
|
+
"[DefaultAccount] MCP registry endpoint not found (404), treating as no registry available"
|
|
565
|
+
);
|
|
566
|
+
return null;
|
|
567
|
+
}
|
|
568
|
+
if (response.res.statusCode === 429) {
|
|
569
|
+
this.logService.debug(
|
|
570
|
+
`[DefaultAccount] Received 429 Too Many Requests for MCP registry data, treating as no registry available and not retrying immediately.`
|
|
571
|
+
);
|
|
572
|
+
return null;
|
|
573
|
+
}
|
|
574
|
+
this.logService.debug(
|
|
514
575
|
`[DefaultAccount] unexpected status code ${response.res.statusCode} while fetching MCP registry data`
|
|
515
576
|
);
|
|
516
577
|
return undefined;
|
|
@@ -519,13 +580,14 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
519
580
|
const data = await asJson(response);
|
|
520
581
|
if (data) {
|
|
521
582
|
this.logService.debug("Fetched MCP registry providers", data.mcp_registries);
|
|
522
|
-
return data.mcp_registries[0];
|
|
583
|
+
return data.mcp_registries[0] ?? null;
|
|
523
584
|
}
|
|
524
|
-
this.logService.debug("
|
|
585
|
+
this.logService.debug("No MCP registry providers content found in response");
|
|
586
|
+
return null;
|
|
525
587
|
} catch (error) {
|
|
526
588
|
this.logService.error("Failed to fetch MCP registry providers", getErrorMessage(error));
|
|
589
|
+
return undefined;
|
|
527
590
|
}
|
|
528
|
-
return undefined;
|
|
529
591
|
}
|
|
530
592
|
async request(url, type, body, sessions, token) {
|
|
531
593
|
let lastResponse;
|
|
@@ -545,13 +607,17 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
545
607
|
}, token);
|
|
546
608
|
const status = response.res.statusCode;
|
|
547
609
|
if (status && status !== 200) {
|
|
610
|
+
if (status === 429) {
|
|
611
|
+
this.logService.warn(`[DefaultAccount] Received 429 Too Many Requests for ${url}.`);
|
|
612
|
+
return response;
|
|
613
|
+
}
|
|
548
614
|
lastResponse = response;
|
|
549
615
|
continue;
|
|
550
616
|
}
|
|
551
617
|
return response;
|
|
552
618
|
} catch (error) {
|
|
553
619
|
if (!token.isCancellationRequested) {
|
|
554
|
-
this.logService.error(`[
|
|
620
|
+
this.logService.error(`[DefaultAccount] request: error ${error}`, url);
|
|
555
621
|
}
|
|
556
622
|
}
|
|
557
623
|
}
|
|
@@ -559,13 +625,6 @@ let DefaultAccountProvider = class DefaultAccountProvider extends Disposable {
|
|
|
559
625
|
this.logService.trace("[DefaultAccount]: No response received for request", url);
|
|
560
626
|
return undefined;
|
|
561
627
|
}
|
|
562
|
-
if (lastResponse.res.statusCode && lastResponse.res.statusCode !== 200) {
|
|
563
|
-
this.logService.trace(
|
|
564
|
-
`[DefaultAccount]: unexpected status code ${lastResponse.res.statusCode} for request`,
|
|
565
|
-
url
|
|
566
|
-
);
|
|
567
|
-
return undefined;
|
|
568
|
-
}
|
|
569
628
|
return lastResponse;
|
|
570
629
|
}
|
|
571
630
|
getEntitlementUrl() {
|
|
@@ -42,23 +42,23 @@ const authenticationDefinitionSchema = {
|
|
|
42
42
|
properties: {
|
|
43
43
|
id: {
|
|
44
44
|
type: "string",
|
|
45
|
-
description: ( localize(
|
|
45
|
+
description: ( localize(14117, "The id of the authentication provider."))
|
|
46
46
|
},
|
|
47
47
|
label: {
|
|
48
48
|
type: "string",
|
|
49
|
-
description: ( localize(
|
|
49
|
+
description: ( localize(14118, "The human readable name of the authentication provider."))
|
|
50
50
|
},
|
|
51
51
|
authorizationServerGlobs: {
|
|
52
52
|
type: "array",
|
|
53
53
|
items: {
|
|
54
54
|
type: "string",
|
|
55
55
|
description: ( localize(
|
|
56
|
-
|
|
56
|
+
14119,
|
|
57
57
|
"A list of globs that match the authorization servers that this provider supports."
|
|
58
58
|
))
|
|
59
59
|
},
|
|
60
60
|
description: ( localize(
|
|
61
|
-
|
|
61
|
+
14120,
|
|
62
62
|
"A list of globs that match the authorization servers that this provider supports."
|
|
63
63
|
))
|
|
64
64
|
}
|
|
@@ -67,7 +67,7 @@ const authenticationDefinitionSchema = {
|
|
|
67
67
|
const authenticationExtPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
68
68
|
extensionPoint: "authentication",
|
|
69
69
|
jsonSchema: {
|
|
70
|
-
description: ( localize(
|
|
70
|
+
description: ( localize(14121, "Contributes authentication")),
|
|
71
71
|
type: "array",
|
|
72
72
|
items: authenticationDefinitionSchema
|
|
73
73
|
},
|
|
@@ -145,11 +145,11 @@ let AuthenticationService = class AuthenticationService extends Disposable {
|
|
|
145
145
|
added.forEach(point => {
|
|
146
146
|
for (const provider of point.value) {
|
|
147
147
|
if (isFalsyOrWhitespace(provider.id)) {
|
|
148
|
-
point.collector.error(( localize(
|
|
148
|
+
point.collector.error(( localize(14122, "An authentication contribution must specify an id.")));
|
|
149
149
|
continue;
|
|
150
150
|
}
|
|
151
151
|
if (isFalsyOrWhitespace(provider.label)) {
|
|
152
|
-
point.collector.error(( localize(
|
|
152
|
+
point.collector.error(( localize(14123, "An authentication contribution must specify a label.")));
|
|
153
153
|
continue;
|
|
154
154
|
}
|
|
155
155
|
if (!( this.declaredProviders.some(p => p.id === provider.id))) {
|
|
@@ -157,7 +157,7 @@ let AuthenticationService = class AuthenticationService extends Disposable {
|
|
|
157
157
|
this._logService.debug(`Declared authentication provider: ${provider.id}`);
|
|
158
158
|
} else {
|
|
159
159
|
point.collector.error(( localize(
|
|
160
|
-
|
|
160
|
+
14124,
|
|
161
161
|
"This authentication id '{0}' has already been registered",
|
|
162
162
|
provider.id
|
|
163
163
|
)));
|
|
@@ -176,14 +176,14 @@ let AuthenticationService = class AuthenticationService extends Disposable {
|
|
|
176
176
|
}
|
|
177
177
|
registerDeclaredAuthenticationProvider(provider) {
|
|
178
178
|
if (isFalsyOrWhitespace(provider.id)) {
|
|
179
|
-
throw ( new Error(( localize(
|
|
179
|
+
throw ( new Error(( localize(14122, "An authentication contribution must specify an id."))));
|
|
180
180
|
}
|
|
181
181
|
if (isFalsyOrWhitespace(provider.label)) {
|
|
182
|
-
throw ( new Error(( localize(
|
|
182
|
+
throw ( new Error(( localize(14123, "An authentication contribution must specify a label."))));
|
|
183
183
|
}
|
|
184
184
|
if (( this.declaredProviders.some(p => p.id === provider.id))) {
|
|
185
185
|
throw ( new Error(( localize(
|
|
186
|
-
|
|
186
|
+
14124,
|
|
187
187
|
"This authentication id '{0}' has already been registered",
|
|
188
188
|
provider.id
|
|
189
189
|
))));
|
|
@@ -137,7 +137,7 @@ let AuxiliaryWindow = class AuxiliaryWindow extends BaseWindow {
|
|
|
137
137
|
preventUnload(e) {
|
|
138
138
|
e.preventDefault();
|
|
139
139
|
e.returnValue = ( localize(
|
|
140
|
-
|
|
140
|
+
14125,
|
|
141
141
|
"Changes that you made may not be saved. Please check press 'Cancel' and try again."
|
|
142
142
|
));
|
|
143
143
|
}
|
|
@@ -205,7 +205,7 @@ let BrowserAuxiliaryWindowService = class BrowserAuxiliaryWindowService extends
|
|
|
205
205
|
mark("code/auxiliaryWindow/willOpen");
|
|
206
206
|
const targetWindow = await this.openWindow(options);
|
|
207
207
|
if (!targetWindow) {
|
|
208
|
-
throw ( new Error(( localize(
|
|
208
|
+
throw ( new Error(( localize(14126, "Unable to open a new window."))));
|
|
209
209
|
}
|
|
210
210
|
const resolvedWindowId = await this.resolveWindowId(targetWindow);
|
|
211
211
|
ensureCodeWindow(targetWindow, resolvedWindowId);
|
|
@@ -296,20 +296,20 @@ let BrowserAuxiliaryWindowService = class BrowserAuxiliaryWindowService extends
|
|
|
296
296
|
return (await this.dialogService.prompt({
|
|
297
297
|
type: Severity$1.Warning,
|
|
298
298
|
message: ( localize(
|
|
299
|
-
|
|
299
|
+
14127,
|
|
300
300
|
"The browser blocked opening a new window. Press 'Retry' to try again."
|
|
301
301
|
)),
|
|
302
302
|
custom: {
|
|
303
303
|
markdownDetails: [{
|
|
304
304
|
markdown: ( new MarkdownString(( localize(
|
|
305
|
-
|
|
305
|
+
14128,
|
|
306
306
|
"Please allow pop-ups for this website in your [browser settings]({0}).",
|
|
307
307
|
"https://aka.ms/allow-vscode-popup"
|
|
308
308
|
)), true))
|
|
309
309
|
}]
|
|
310
310
|
},
|
|
311
311
|
buttons: [{
|
|
312
|
-
label: ( localize(
|
|
312
|
+
label: ( localize(14129, "&&Retry")),
|
|
313
313
|
run: () => this.openWindow(options)
|
|
314
314
|
}],
|
|
315
315
|
cancelButton: true
|