@codingame/monaco-vscode-issue-service-override 33.0.9 → 34.0.1

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/index.js CHANGED
@@ -5,13 +5,22 @@ import { TroubleshootIssueService } from './vscode/src/vs/workbench/contrib/issu
5
5
  import { ITroubleshootIssueService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/issueTroubleshoot.service';
6
6
  import { BrowserIssueService } from './vscode/src/vs/workbench/contrib/issue/browser/issueService.js';
7
7
  import { IssueFormService } from './vscode/src/vs/workbench/contrib/issue/browser/issueFormService.js';
8
+ import { IScreenshotService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/screenshotService.service';
9
+ import { BrowserScreenshotService } from './vscode/src/vs/workbench/contrib/issue/browser/screenshotService.js';
10
+ import { IRecordingService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/recordingService.service';
11
+ import { BrowserRecordingService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/recordingService';
12
+ import { IGitHubUploadService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/githubUploadService.service';
13
+ import { BrowserGitHubUploadService } from './vscode/src/vs/workbench/contrib/issue/browser/githubUploadService.js';
8
14
  import './vscode/src/vs/workbench/contrib/issue/browser/issue.contribution.js';
9
15
 
10
16
  function getServiceOverride() {
11
17
  return {
12
18
  [IWorkbenchIssueService.toString()]: new SyncDescriptor(BrowserIssueService, [], false),
13
19
  [ITroubleshootIssueService.toString()]: new SyncDescriptor(TroubleshootIssueService, [], false),
14
- [IIssueFormService.toString()]: new SyncDescriptor(IssueFormService, [], false)
20
+ [IIssueFormService.toString()]: new SyncDescriptor(IssueFormService, [], false),
21
+ [IScreenshotService.toString()]: new SyncDescriptor(BrowserScreenshotService, [], false),
22
+ [IRecordingService.toString()]: new SyncDescriptor(BrowserRecordingService, [], false),
23
+ [IGitHubUploadService.toString()]: new SyncDescriptor(BrowserGitHubUploadService, [], false)
15
24
  };
16
25
  }
17
26
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-issue-service-override",
3
- "version": "33.0.9",
3
+ "version": "34.0.1",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - issue service-override",
6
6
  "keywords": [],
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-api": "33.0.9"
18
+ "@codingame/monaco-vscode-api": "34.0.1"
19
19
  },
20
20
  "main": "index.js",
21
21
  "module": "index.js",
@@ -116,7 +116,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
116
116
  fileOnMarketplace,
117
117
  fileOnProduct
118
118
  });
119
- this.createAction = this._register(( new Action("issueReporter.create", ( localize(10624, "Create on GitHub")), undefined, true, async () => {
119
+ this.createAction = this._register(( new Action("issueReporter.create", ( localize(10788, "Create on GitHub")), undefined, true, async () => {
120
120
  this.delayedSubmit.trigger(async () => {
121
121
  this.setSubmittingState(true);
122
122
  try {
@@ -126,7 +126,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
126
126
  }
127
127
  });
128
128
  })));
129
- this.previewAction = this._register(( new Action("issueReporter.preview", ( localize(10625, "Preview on GitHub")), undefined, true, async () => {
129
+ this.previewAction = this._register(( new Action("issueReporter.preview", ( localize(10789, "Preview on GitHub")), undefined, true, async () => {
130
130
  this.delayedSubmit.trigger(async () => {
131
131
  this.setSubmittingState(true);
132
132
  try {
@@ -136,7 +136,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
136
136
  }
137
137
  });
138
138
  })));
139
- this.privateAction = this._register(( new Action("issueReporter.privateCreate", ( localize(10626, "Create Internally")), undefined, true, async () => {
139
+ this.privateAction = this._register(( new Action("issueReporter.privateCreate", ( localize(10790, "Create Internally")), undefined, true, async () => {
140
140
  this.delayedSubmit.trigger(async () => {
141
141
  this.setSubmittingState(true);
142
142
  try {
@@ -241,7 +241,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
241
241
  filingNote.classList.add("internal-preview-message");
242
242
  container.appendChild(filingNote);
243
243
  }
244
- filingNote.textContent = escape(( localize(10627, "If your copilot debug logs contain private information:")));
244
+ filingNote.textContent = escape(( localize(10791, "If your copilot debug logs contain private information:")));
245
245
  }
246
246
  updatePublicGithubButton(container) {
247
247
  const issueReporterElement = this.getElementById("issue-reporter");
@@ -253,7 +253,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
253
253
  }
254
254
  if (!this.acknowledged && this.needsUpdate) {
255
255
  this.publicGithubButton = this._register(( new Button(container, unthemedButtonStyles)));
256
- this.publicGithubButton.label = ( localize(10628, "Confirm Version Acknowledgement"));
256
+ this.publicGithubButton.label = ( localize(10792, "Confirm Version Acknowledgement"));
257
257
  this.publicGithubButton.enabled = false;
258
258
  } else if (this.data.githubAccessToken && this.isPreviewEnabled()) {
259
259
  this.publicGithubButton = this._register(( new ButtonWithDropdown(container, {
@@ -265,21 +265,21 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
265
265
  this._register(this.publicGithubButton.onDidClick(() => {
266
266
  this.createAction.run();
267
267
  }));
268
- this.publicGithubButton.label = ( localize(10629, "Create on GitHub"));
268
+ this.publicGithubButton.label = ( localize(10793, "Create on GitHub"));
269
269
  this.publicGithubButton.enabled = true;
270
270
  } else if (this.data.githubAccessToken && !this.isPreviewEnabled()) {
271
271
  this.publicGithubButton = this._register(( new Button(container, unthemedButtonStyles)));
272
272
  this._register(this.publicGithubButton.onDidClick(() => {
273
273
  this.createAction.run();
274
274
  }));
275
- this.publicGithubButton.label = ( localize(10629, "Create on GitHub"));
275
+ this.publicGithubButton.label = ( localize(10793, "Create on GitHub"));
276
276
  this.publicGithubButton.enabled = true;
277
277
  } else {
278
278
  this.publicGithubButton = this._register(( new Button(container, unthemedButtonStyles)));
279
279
  this._register(this.publicGithubButton.onDidClick(() => {
280
280
  this.previewAction.run();
281
281
  }));
282
- this.publicGithubButton.label = ( localize(10630, "Preview on GitHub"));
282
+ this.publicGithubButton.label = ( localize(10794, "Preview on GitHub"));
283
283
  this.publicGithubButton.enabled = true;
284
284
  }
285
285
  const repoLink = this.getElementById("show-repo-name");
@@ -332,7 +332,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
332
332
  }));
333
333
  this.internalGithubButton.element.id = "internal-create-btn";
334
334
  this.internalGithubButton.element.classList.add("internal-create-subtle");
335
- this.internalGithubButton.label = ( localize(10631, "Create Internally"));
335
+ this.internalGithubButton.label = ( localize(10795, "Create Internally"));
336
336
  this.internalGithubButton.enabled = true;
337
337
  this.internalGithubButton.setTitle(this.data.privateUri.path.slice(1));
338
338
  }
@@ -368,7 +368,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
368
368
  if (submitting) {
369
369
  const currentLabel = this.publicGithubButton instanceof ButtonWithDropdown ? this.publicGithubButton.primaryButton.label : this.publicGithubButton.label;
370
370
  this.preSubmitButtonLabel = typeof currentLabel === "string" ? currentLabel : "";
371
- this.publicGithubButton.label = ( localize(10632, "Submitting..."));
371
+ this.publicGithubButton.label = ( localize(10796, "Submitting..."));
372
372
  const spinnerIcon = renderIcon(ThemeIcon.modify(Codicon.loading, "spin"));
373
373
  buttonEl.prepend(spinnerIcon);
374
374
  } else {
@@ -440,7 +440,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
440
440
  const {
441
441
  selectedExtension
442
442
  } = this.issueReporterModel.getData();
443
- reset(extensionsSelector, this.makeOption("", ( localize(10633, "Select extension")), true), ...( extensionOptions.map(extension => makeOption(extension, selectedExtension))));
443
+ reset(extensionsSelector, this.makeOption("", ( localize(10797, "Select extension")), true), ...( extensionOptions.map(extension => makeOption(extension, selectedExtension))));
444
444
  if (!selectedExtension) {
445
445
  extensionsSelector.selectedIndex = 0;
446
446
  }
@@ -544,10 +544,10 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
544
544
  const info = containingElement && containingElement.lastElementChild;
545
545
  if (info && info.classList.contains("hidden")) {
546
546
  show(info);
547
- label.textContent = ( localize(10634, "hide"));
547
+ label.textContent = ( localize(10798, "hide"));
548
548
  } else {
549
549
  hide(info);
550
- label.textContent = ( localize(10635, "show"));
550
+ label.textContent = ( localize(10799, "show"));
551
551
  }
552
552
  }
553
553
  });
@@ -568,13 +568,13 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
568
568
  }
569
569
  const descriptionTextArea = this.getElementById("issue-title");
570
570
  if (value === IssueSource.VSCode) {
571
- descriptionTextArea.placeholder = ( localize(10636, "E.g Workbench is missing problems panel"));
571
+ descriptionTextArea.placeholder = ( localize(10800, "E.g Workbench is missing problems panel"));
572
572
  } else if (value === IssueSource.Extension) {
573
- descriptionTextArea.placeholder = ( localize(10637, "E.g. Missing alt text on extension readme image"));
573
+ descriptionTextArea.placeholder = ( localize(10801, "E.g. Missing alt text on extension readme image"));
574
574
  } else if (value === IssueSource.Marketplace) {
575
- descriptionTextArea.placeholder = ( localize(10638, "E.g Cannot disable installed extension"));
575
+ descriptionTextArea.placeholder = ( localize(10802, "E.g Cannot disable installed extension"));
576
576
  } else {
577
- descriptionTextArea.placeholder = ( localize(10639, "Please enter a title"));
577
+ descriptionTextArea.placeholder = ( localize(10803, "Please enter a title"));
578
578
  }
579
579
  let fileOnExtension, fileOnMarketplace, fileOnProduct = false;
580
580
  if (value === IssueSource.Extension) {
@@ -816,7 +816,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
816
816
  if (results.length) {
817
817
  const issues = $("div.issues-container");
818
818
  const issuesText = $("div.list-title");
819
- issuesText.textContent = ( localize(10640, "Similar issues"));
819
+ issuesText.textContent = ( localize(10804, "Similar issues"));
820
820
  this.numberOfSearchResultsDisplayed = results.length < 5 ? results.length : 5;
821
821
  for (let i = 0; i < this.numberOfSearchResultsDisplayed; i++) {
822
822
  const issue = results[i];
@@ -836,8 +836,8 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
836
836
  renderIcon(issue.state === "open" ? Codicon.issueOpened : Codicon.issueClosed)
837
837
  );
838
838
  const issueStateLabel = $("span.issue-state.label");
839
- issueStateLabel.textContent = issue.state === "open" ? ( localize(10641, "Open")) : ( localize(10642, "Closed"));
840
- issueState.title = issue.state === "open" ? ( localize(10641, "Open")) : ( localize(10642, "Closed"));
839
+ issueStateLabel.textContent = issue.state === "open" ? ( localize(10805, "Open")) : ( localize(10806, "Closed"));
840
+ issueState.title = issue.state === "open" ? ( localize(10805, "Open")) : ( localize(10806, "Closed"));
841
841
  issueState.appendChild(issueIcon);
842
842
  issueState.appendChild(issueStateLabel);
843
843
  item = $("div.issue", undefined, issueState, link);
@@ -858,7 +858,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
858
858
  const {
859
859
  issueType
860
860
  } = this.issueReporterModel.getData();
861
- reset(typeSelect, makeOption(IssueType.Bug, ( localize(10643, "Bug Report"))), makeOption(IssueType.FeatureRequest, ( localize(10644, "Feature Request"))), makeOption(IssueType.PerformanceIssue, ( localize(10645, "Performance Issue (freeze, slow, crash)"))));
861
+ reset(typeSelect, makeOption(IssueType.Bug, ( localize(10807, "Bug Report"))), makeOption(IssueType.FeatureRequest, ( localize(10808, "Feature Request"))), makeOption(IssueType.PerformanceIssue, ( localize(10809, "Performance Issue (freeze, slow, crash)"))));
862
862
  typeSelect.value = ( issueType.toString());
863
863
  this.setSourceOptions();
864
864
  }
@@ -891,14 +891,14 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
891
891
  }
892
892
  }
893
893
  sourceSelect.innerText = "";
894
- sourceSelect.append(this.makeOption("", ( localize(10646, "Select source")), true));
895
- sourceSelect.append(this.makeOption(IssueSource.VSCode, ( localize(10647, "Visual Studio Code")), false));
896
- sourceSelect.append(this.makeOption(IssueSource.Extension, ( localize(10648, "A VS Code extension")), false));
894
+ sourceSelect.append(this.makeOption("", ( localize(10810, "Select source")), true));
895
+ sourceSelect.append(this.makeOption(IssueSource.VSCode, ( localize(10811, "Visual Studio Code")), false));
896
+ sourceSelect.append(this.makeOption(IssueSource.Extension, ( localize(10812, "A VS Code extension")), false));
897
897
  if (this.product.reportMarketplaceIssueUrl) {
898
- sourceSelect.append(this.makeOption(IssueSource.Marketplace, ( localize(10649, "Extensions Marketplace")), false));
898
+ sourceSelect.append(this.makeOption(IssueSource.Marketplace, ( localize(10813, "Extensions Marketplace")), false));
899
899
  }
900
900
  if (issueType !== IssueType.FeatureRequest) {
901
- sourceSelect.append(this.makeOption(IssueSource.Unknown, ( localize(10650, "Don't know")), false));
901
+ sourceSelect.append(this.makeOption(IssueSource.Unknown, ( localize(10814, "Don't know")), false));
902
902
  }
903
903
  if (selected !== -1 && selected < sourceSelect.options.length) {
904
904
  sourceSelect.selectedIndex = selected;
@@ -954,7 +954,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
954
954
  const fileName = `extensionData_${formattedDate}_${formattedTime}.md`;
955
955
  const handleLinkClick = async () => {
956
956
  const downloadPath = await this.fileDialogService.showSaveDialog({
957
- title: ( localize(10651, "Save Extension Data")),
957
+ title: ( localize(10815, "Save Extension Data")),
958
958
  availableFileSystems: [Schemas.file],
959
959
  defaultUri: joinPath(await this.fileDialogService.defaultFilePath(Schemas.file), fileName)
960
960
  });
@@ -970,13 +970,13 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
970
970
  if (selectedExtension && this.nonGitHubIssueUrl) {
971
971
  hide(titleTextArea);
972
972
  hide(descriptionTextArea);
973
- reset(descriptionTitle, ( localize(10652, "This extension handles issues outside of VS Code")));
973
+ reset(descriptionTitle, ( localize(10816, "This extension handles issues outside of VS Code")));
974
974
  reset(descriptionSubtitle, ( localize(
975
- 10653,
975
+ 10817,
976
976
  "The '{0}' extension prefers to use an external issue reporter. To be taken to that issue reporting experience, click the button below.",
977
977
  selectedExtension.displayName
978
978
  )));
979
- this.publicGithubButton.label = ( localize(10654, "Open External Issue Reporter"));
979
+ this.publicGithubButton.label = ( localize(10818, "Open External Issue Reporter"));
980
980
  return;
981
981
  }
982
982
  if (fileOnExtension && selectedExtension?.data) {
@@ -1003,9 +1003,9 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
1003
1003
  show(extensionsBlock);
1004
1004
  }
1005
1005
  }
1006
- reset(descriptionTitle, ( localize(10655, "Steps to Reproduce")) + " ", $("span.required-input", undefined, "*"));
1006
+ reset(descriptionTitle, ( localize(10819, "Steps to Reproduce")) + " ", $("span.required-input", undefined, "*"));
1007
1007
  reset(descriptionSubtitle, ( localize(
1008
- 10656,
1008
+ 10820,
1009
1009
  "Share the steps needed to reliably reproduce the problem. Please include actual and expected results. We support GitHub-flavored Markdown. You will be able to edit your issue and add screenshots when we preview it on GitHub."
1010
1010
  )));
1011
1011
  } else if (issueType === IssueType.PerformanceIssue) {
@@ -1021,15 +1021,15 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
1021
1021
  } else if (!fileOnMarketplace) {
1022
1022
  show(extensionsBlock);
1023
1023
  }
1024
- reset(descriptionTitle, ( localize(10655, "Steps to Reproduce")) + " ", $("span.required-input", undefined, "*"));
1024
+ reset(descriptionTitle, ( localize(10819, "Steps to Reproduce")) + " ", $("span.required-input", undefined, "*"));
1025
1025
  reset(descriptionSubtitle, ( localize(
1026
- 10657,
1026
+ 10821,
1027
1027
  "When did this performance issue happen? Does it occur on startup or after a specific series of actions? We support GitHub-flavored Markdown. You will be able to edit your issue and add screenshots when we preview it on GitHub."
1028
1028
  )));
1029
1029
  } else if (issueType === IssueType.FeatureRequest) {
1030
- reset(descriptionTitle, ( localize(10658, "Description")) + " ", $("span.required-input", undefined, "*"));
1030
+ reset(descriptionTitle, ( localize(10822, "Description")) + " ", $("span.required-input", undefined, "*"));
1031
1031
  reset(descriptionSubtitle, ( localize(
1032
- 10659,
1032
+ 10823,
1033
1033
  "Please describe the feature you would like to see. We support GitHub-flavored Markdown. You will be able to edit your issue and add screenshots when we preview it on GitHub."
1034
1034
  )));
1035
1035
  }
@@ -1160,7 +1160,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
1160
1160
  throw ( new CancellationError());
1161
1161
  }
1162
1162
  return baseUrl + `&body=${encodeURIComponent(( localize(
1163
- 10660,
1163
+ 10824,
1164
1164
  "We have written the needed data into your clipboard because it was too large to send. Please paste."
1165
1165
  )))}`;
1166
1166
  }
@@ -1349,7 +1349,7 @@ let BaseIssueReporterService = class BaseIssueReporterService extends Disposable
1349
1349
  const target = this.window.document.querySelector(".block-extensions .block-info");
1350
1350
  if (target) {
1351
1351
  if (this.disableExtensions) {
1352
- reset(target, ( localize(10661, "Extensions are disabled")));
1352
+ reset(target, ( localize(10825, "Extensions are disabled")));
1353
1353
  return;
1354
1354
  }
1355
1355
  const themeExclusionStr = numThemeExtensions ? `\n(${numThemeExtensions} theme extensions excluded)` : "";
@@ -0,0 +1,14 @@
1
+ import { IGitHubUploadService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/githubUploadService.service";
2
+ export interface IGitHubUploadResult {
3
+ readonly fileName: string;
4
+ readonly assetUrl: string;
5
+ readonly contentType: string;
6
+ }
7
+ /**
8
+ * Browser fallback, upload not yet supported in web.
9
+ */
10
+ export declare class BrowserGitHubUploadService implements IGitHubUploadService {
11
+ readonly _serviceBrand: undefined;
12
+ resolveRepositoryId(): Promise<string>;
13
+ uploadViaMobileApi(): Promise<IGitHubUploadResult[]>;
14
+ }
@@ -0,0 +1,12 @@
1
+
2
+
3
+ class BrowserGitHubUploadService {
4
+ async resolveRepositoryId() {
5
+ throw ( new Error("Not supported in browser"));
6
+ }
7
+ async uploadViaMobileApi() {
8
+ throw ( new Error("Not supported in browser"));
9
+ }
10
+ }
11
+
12
+ export { BrowserGitHubUploadService };
@@ -14,6 +14,7 @@ import './issueTroubleshoot.js';
14
14
  import '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
15
15
  import { BaseIssueContribution } from '../common/issue.contribution.js';
16
16
  import { LifecyclePhase } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/lifecycle/common/lifecycle';
17
+ import '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/recordingService';
17
18
 
18
19
  let WebIssueContribution = class WebIssueContribution extends BaseIssueContribution {
19
20
  constructor(productService, configurationService) {
@@ -32,5 +33,5 @@ let WebIssueContribution = class WebIssueContribution extends BaseIssueContribut
32
33
  WebIssueContribution = ( __decorate([( __param(0, IProductService)), ( __param(1, IConfigurationService))], WebIssueContribution));
33
34
  ( Registry.as(Extensions$1.Workbench)).registerWorkbenchContribution(WebIssueContribution, LifecyclePhase.Restored);
34
35
  CommandsRegistry.registerCommand("_issues.getSystemStatus", accessor => {
35
- return localize(10662, "The --status argument is not yet supported in browsers.");
36
+ return localize(10826, "The --status argument is not yet supported in browsers.");
36
37
  });
@@ -1,19 +1,21 @@
1
+ import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
1
2
  import { IMenuService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actions/common/actions.service";
3
+ import { IClipboardService } from "@codingame/monaco-vscode-api/vscode/vs/platform/clipboard/common/clipboardService.service";
2
4
  import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service";
3
5
  import { IDialogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service";
4
6
  import { ExtensionIdentifierSet } from "@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions";
5
7
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
6
8
  import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
9
+ import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
7
10
  import { IRectangle } from "@codingame/monaco-vscode-api/vscode/vs/platform/window/common/window";
8
11
  import { IAuxiliaryWindowService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.service";
9
12
  import { IHostService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service";
10
- import { IssueReporterData } from "../common/issue.js";
13
+ import { IIssueSubmissionHost, IssueReporterData } from "../common/issue.js";
11
14
  import { IIssueFormService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/common/issue.service";
12
- export interface IssuePassData {
13
- issueTitle: string;
14
- issueBody: string;
15
- }
16
- export declare class IssueFormService implements IIssueFormService {
15
+ import { IGitHubUploadService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/githubUploadService.service";
16
+ import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
17
+ import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service";
18
+ export declare class IssueFormService extends Disposable implements IIssueFormService {
17
19
  protected readonly instantiationService: IInstantiationService;
18
20
  protected readonly auxiliaryWindowService: IAuxiliaryWindowService;
19
21
  protected readonly menuService: IMenuService;
@@ -21,6 +23,11 @@ export declare class IssueFormService implements IIssueFormService {
21
23
  protected readonly logService: ILogService;
22
24
  protected readonly dialogService: IDialogService;
23
25
  protected readonly hostService: IHostService;
26
+ protected readonly openerService: IOpenerService;
27
+ protected readonly fileService: IFileService;
28
+ protected readonly githubUploadService: IGitHubUploadService;
29
+ protected readonly editorService: IEditorService;
30
+ protected readonly clipboardService: IClipboardService;
24
31
  readonly _serviceBrand: undefined;
25
32
  protected currentData: IssueReporterData | undefined;
26
33
  protected issueReporterWindow: Window | null;
@@ -28,8 +35,26 @@ export declare class IssueFormService implements IIssueFormService {
28
35
  protected arch: string;
29
36
  protected release: string;
30
37
  protected type: string;
31
- constructor(instantiationService: IInstantiationService, auxiliaryWindowService: IAuxiliaryWindowService, menuService: IMenuService, contextKeyService: IContextKeyService, logService: ILogService, dialogService: IDialogService, hostService: IHostService);
38
+ /** Bounded cache of already-uploaded attachments to avoid re-uploading on retry within a session. Uses a content hash so large data URLs aren't retained as keys. */
39
+ private readonly uploadCache;
40
+ constructor(instantiationService: IInstantiationService, auxiliaryWindowService: IAuxiliaryWindowService, menuService: IMenuService, contextKeyService: IContextKeyService, logService: ILogService, dialogService: IDialogService, hostService: IHostService, openerService: IOpenerService, fileService: IFileService, githubUploadService: IGitHubUploadService, editorService: IEditorService, clipboardService: IClipboardService);
32
41
  openReporter(data: IssueReporterData): Promise<void>;
42
+ submitIssue(host: IIssueSubmissionHost, data: IssueReporterData, title: string, body: string): Promise<boolean>;
43
+ private tryCreateBodyWithIssueDataAttachment;
44
+ private uploadIssueDataFile;
45
+ private extractIssueData;
46
+ private createBodyWithIssueDataLink;
47
+ private createIssuePreviewUrl;
48
+ private getIssueTarget;
49
+ private getSelectedExtension;
50
+ private getExtensionIssueUrl;
51
+ private isGitHubUrl;
52
+ private parseGitHubUrl;
53
+ private getIssueUrlWithTitle;
54
+ private addTemplateToUrl;
55
+ private dataUrlToBytes;
56
+ /** Opens the classic non-wizard reporter in an auxiliary window. */
57
+ openAuxIssueReporterLegacy(data: IssueReporterData): Promise<void>;
33
58
  openAuxIssueReporter(data: IssueReporterData, bounds?: IRectangle): Promise<void>;
34
59
  sendReporterMenu(extensionId: string): Promise<IssueReporterData | undefined>;
35
60
  closeReporter(): Promise<void>;