@codingame/monaco-vscode-issue-service-override 33.0.9 → 34.0.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.
@@ -2,18 +2,18 @@
2
2
  import { escape } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
3
3
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
4
4
 
5
- const sendSystemInfoLabel = escape(( localize(10668, "Include my system information")));
6
- const sendProcessInfoLabel = escape(( localize(10669, "Include my currently running processes")));
7
- const sendWorkspaceInfoLabel = escape(( localize(10670, "Include my workspace metadata")));
8
- const sendExtensionsLabel = escape(( localize(10671, "Include my enabled extensions")));
9
- const sendExperimentsLabel = escape(( localize(10672, "Include A/B experiment info")));
10
- const sendExtensionData = escape(( localize(10673, "Include additional extension info")));
5
+ const sendSystemInfoLabel = escape(( localize(10837, "Include my system information")));
6
+ const sendProcessInfoLabel = escape(( localize(10838, "Include my currently running processes")));
7
+ const sendWorkspaceInfoLabel = escape(( localize(10839, "Include my workspace metadata")));
8
+ const sendExtensionsLabel = escape(( localize(10840, "Include my enabled extensions")));
9
+ const sendExperimentsLabel = escape(( localize(10841, "Include A/B experiment info")));
10
+ const sendExtensionData = escape(( localize(10842, "Include additional extension info")));
11
11
  const acknowledgementsLabel = escape(( localize(
12
- 10674,
12
+ 10843,
13
13
  "I acknowledge that my VS Code version is not updated and this issue may be closed."
14
14
  )));
15
15
  const reviewGuidanceLabel = ( localize(
16
- 10675,
16
+ 10844,
17
17
  "Before you report an issue here please <a href=\"https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions\" target=\"_blank\">review the guidance we provide</a>. Please complete the form in English."
18
18
  ));
19
19
  var BaseHtml = () => `
@@ -23,40 +23,40 @@ var BaseHtml = () => `
23
23
  </span>
24
24
  </div>
25
25
  <div class="issue-reporter" id="issue-reporter">
26
- <div id="english" class="input-group hidden">${escape(( localize(10676, "Please complete the form in English.")))}</div>
26
+ <div id="english" class="input-group hidden">${escape(( localize(10845, "Please complete the form in English.")))}</div>
27
27
 
28
28
  <div id="review-guidance-help-text" class="input-group">${reviewGuidanceLabel}</div>
29
29
 
30
30
  <div class="section">
31
31
  <div class="input-group">
32
- <label class="inline-label" for="issue-type">${escape(( localize(10677, "This is a")))}</label>
32
+ <label class="inline-label" for="issue-type">${escape(( localize(10846, "This is a")))}</label>
33
33
  <select id="issue-type" class="inline-form-control">
34
34
  <!-- To be dynamically filled -->
35
35
  </select>
36
36
  </div>
37
37
 
38
38
  <div class="input-group" id="problem-source">
39
- <label class="inline-label" for="issue-source">${escape(( localize(10678, "For")))} <span class="required-input">*</span></label>
39
+ <label class="inline-label" for="issue-source">${escape(( localize(10847, "For")))} <span class="required-input">*</span></label>
40
40
  <select id="issue-source" class="inline-form-control" required>
41
41
  <!-- To be dynamically filled -->
42
42
  </select>
43
- <div id="issue-source-empty-error" class="validation-error hidden" role="alert">${escape(( localize(10679, "An issue source is required.")))}</div>
43
+ <div id="issue-source-empty-error" class="validation-error hidden" role="alert">${escape(( localize(10848, "An issue source is required.")))}</div>
44
44
  <div id="problem-source-help-text" class="instructions hidden">${escape(( localize(
45
- 10680,
45
+ 10849,
46
46
  "Try to reproduce the problem after {0}. If the problem only reproduces when extensions are active, it is likely an issue with an extension."
47
47
  ))).replace(
48
48
  "{0}",
49
- () => `<span tabIndex=0 role="button" id="disableExtensions" class="workbenchCommand">${escape(( localize(10681, "disabling all extensions and reloading the window")))}</span>`
49
+ () => `<span tabIndex=0 role="button" id="disableExtensions" class="workbenchCommand">${escape(( localize(10850, "disabling all extensions and reloading the window")))}</span>`
50
50
  )}
51
51
  </div>
52
52
 
53
53
  <div id="extension-selection">
54
- <label class="inline-label" for="extension-selector">${escape(( localize(10682, "Extension")))} <span class="required-input">*</span></label>
54
+ <label class="inline-label" for="extension-selector">${escape(( localize(10851, "Extension")))} <span class="required-input">*</span></label>
55
55
  <select id="extension-selector" class="inline-form-control">
56
56
  <!-- To be dynamically filled -->
57
57
  </select>
58
58
  <div id="extension-selection-validation-error" class="validation-error hidden" role="alert">${escape(( localize(
59
- 10683,
59
+ 10852,
60
60
  "The issue reporter is unable to create issues for this extension. Please visit {0} to report an issue."
61
61
  ))).replace(
62
62
  "{0}",
@@ -64,7 +64,7 @@ var BaseHtml = () => `
64
64
  )}</div>
65
65
  <div id="extension-selection-validation-error-no-url" class="validation-error hidden" role="alert">
66
66
  ${escape(( localize(
67
- 10684,
67
+ 10853,
68
68
  "The issue reporter is unable to create issues for this extension, as it does not specify a URL for reporting issues. Please check the marketplace page of this extension to see if other instructions are available."
69
69
  )))}
70
70
  </div>
@@ -72,10 +72,10 @@ var BaseHtml = () => `
72
72
  </div>
73
73
 
74
74
  <div id="issue-title-container" class="input-group">
75
- <label class="inline-label" for="issue-title">${escape(( localize(10685, "Title")))} <span class="required-input">*</span></label>
76
- <input id="issue-title" type="text" class="inline-form-control" placeholder="${escape(( localize(10686, "Please enter a title.")))}" required>
77
- <div id="issue-title-empty-error" class="validation-error hidden" role="alert">${escape(( localize(10687, "A title is required.")))}</div>
78
- <div id="issue-title-length-validation-error" class="validation-error hidden" role="alert">${escape(( localize(10688, "The title is too long.")))}</div>
75
+ <label class="inline-label" for="issue-title">${escape(( localize(10854, "Title")))} <span class="required-input">*</span></label>
76
+ <input id="issue-title" type="text" class="inline-form-control" placeholder="${escape(( localize(10855, "Please enter a title.")))}" required>
77
+ <div id="issue-title-empty-error" class="validation-error hidden" role="alert">${escape(( localize(10856, "A title is required.")))}</div>
78
+ <div id="issue-title-length-validation-error" class="validation-error hidden" role="alert">${escape(( localize(10857, "The title is too long.")))}</div>
79
79
  <small id="similar-issues">
80
80
  <!-- To be dynamically filled -->
81
81
  </small>
@@ -91,10 +91,10 @@ var BaseHtml = () => `
91
91
  <!-- To be dynamically filled -->
92
92
  </div>
93
93
  <div class="block-info-text">
94
- <textarea name="description" id="description" placeholder="${escape(( localize(10689, "Please enter details.")))}" required></textarea>
94
+ <textarea name="description" id="description" placeholder="${escape(( localize(10858, "Please enter details.")))}" required></textarea>
95
95
  </div>
96
- <div id="description-empty-error" class="validation-error hidden" role="alert">${escape(( localize(10690, "A description is required.")))}</div>
97
- <div id="description-short-error" class="validation-error hidden" role="alert">${escape(( localize(10691, "Please provide a longer description.")))}</div>
96
+ <div id="description-empty-error" class="validation-error hidden" role="alert">${escape(( localize(10859, "A description is required.")))}</div>
97
+ <div id="description-short-error" class="validation-error hidden" role="alert">${escape(( localize(10860, "Please provide a longer description.")))}</div>
98
98
  </div>
99
99
 
100
100
  <div class="system-info" id="block-container">
@@ -103,10 +103,10 @@ var BaseHtml = () => `
103
103
  <label class="extension-caption" id="extension-caption" for="includeExtensionData">
104
104
  ${sendExtensionData}
105
105
  <span id="ext-loading" hidden></span>
106
- <span class="ext-parens" hidden>(</span><a href="#" class="showInfo" id="extension-id">${escape(( localize(10692, "show")))}</a><span class="ext-parens" hidden>)</span>
107
- <a id="extension-data-download">${escape(( localize(10693, "Download Extension Data")))}</a>
106
+ <span class="ext-parens" hidden>(</span><a href="#" class="showInfo" id="extension-id">${escape(( localize(10861, "show")))}</a><span class="ext-parens" hidden>)</span>
107
+ <a id="extension-data-download">${escape(( localize(10862, "Download Extension Data")))}</a>
108
108
  </label>
109
- <pre class="block-info" id="extension-data" placeholder="${escape(( localize(10694, "Extension does not have additional data to include.")))}" style="white-space: pre-wrap; user-select: text;">
109
+ <pre class="block-info" id="extension-data" placeholder="${escape(( localize(10863, "Extension does not have additional data to include.")))}" style="white-space: pre-wrap; user-select: text;">
110
110
  <!-- To be dynamically filled -->
111
111
  </pre>
112
112
  </div>
@@ -115,7 +115,7 @@ var BaseHtml = () => `
115
115
  <input class="sendData" aria-label="${sendSystemInfoLabel}" type="checkbox" id="includeSystemInfo" checked/>
116
116
  <label class="caption" for="includeSystemInfo">
117
117
  ${sendSystemInfoLabel}
118
- (<a href="#" class="showInfo">${escape(( localize(10692, "show")))}</a>)
118
+ (<a href="#" class="showInfo">${escape(( localize(10861, "show")))}</a>)
119
119
  </label>
120
120
  <div class="block-info hidden" style="user-select: text;">
121
121
  <!-- To be dynamically filled -->
@@ -125,7 +125,7 @@ var BaseHtml = () => `
125
125
  <input class="sendData" aria-label="${sendProcessInfoLabel}" type="checkbox" id="includeProcessInfo" checked/>
126
126
  <label class="caption" for="includeProcessInfo">
127
127
  ${sendProcessInfoLabel}
128
- (<a href="#" class="showInfo">${escape(( localize(10692, "show")))}</a>)
128
+ (<a href="#" class="showInfo">${escape(( localize(10861, "show")))}</a>)
129
129
  </label>
130
130
  <pre class="block-info hidden" style="user-select: text;">
131
131
  <code>
@@ -137,7 +137,7 @@ var BaseHtml = () => `
137
137
  <input class="sendData" aria-label="${sendWorkspaceInfoLabel}" type="checkbox" id="includeWorkspaceInfo" checked/>
138
138
  <label class="caption" for="includeWorkspaceInfo">
139
139
  ${sendWorkspaceInfoLabel}
140
- (<a href="#" class="showInfo">${escape(( localize(10692, "show")))}</a>)
140
+ (<a href="#" class="showInfo">${escape(( localize(10861, "show")))}</a>)
141
141
  </label>
142
142
  <pre id="systemInfo" class="block-info hidden" style="user-select: text;">
143
143
  <code>
@@ -149,7 +149,7 @@ var BaseHtml = () => `
149
149
  <input class="sendData" aria-label="${sendExtensionsLabel}" type="checkbox" id="includeExtensions" checked/>
150
150
  <label class="caption" for="includeExtensions">
151
151
  ${sendExtensionsLabel}
152
- (<a href="#" class="showInfo">${escape(( localize(10692, "show")))}</a>)
152
+ (<a href="#" class="showInfo">${escape(( localize(10861, "show")))}</a>)
153
153
  </label>
154
154
  <div id="systemInfo" class="block-info hidden" style="user-select: text;">
155
155
  <!-- To be dynamically filled -->
@@ -159,7 +159,7 @@ var BaseHtml = () => `
159
159
  <input class="sendData" aria-label="${sendExperimentsLabel}" type="checkbox" id="includeExperiments" checked/>
160
160
  <label class="caption" for="includeExperiments">
161
161
  ${sendExperimentsLabel}
162
- (<a href="#" class="showInfo">${escape(( localize(10692, "show")))}</a>)
162
+ (<a href="#" class="showInfo">${escape(( localize(10861, "show")))}</a>)
163
163
  </label>
164
164
  <pre class="block-info hidden" style="user-select: text;">
165
165
  <!-- To be dynamically filled -->
@@ -60,7 +60,7 @@ let IssueWebReporter = class IssueWebReporter extends BaseIssueReporterService {
60
60
  });
61
61
  const descriptionTextArea = this.getElementById("issue-title");
62
62
  if (descriptionTextArea) {
63
- descriptionTextArea.placeholder = ( localize(10695, "Please enter a title"));
63
+ descriptionTextArea.placeholder = ( localize(10864, "Please enter a title"));
64
64
  }
65
65
  this.updateButtonStates();
66
66
  this.setSourceOptions();
@@ -94,9 +94,9 @@ let BrowserIssueService = class BrowserIssueService {
94
94
  const potentialSessions = githubSessions.filter(session => session.scopes.includes("repo"));
95
95
  githubAccessToken = potentialSessions[0]?.accessToken;
96
96
  } catch (e) {}
97
- let isUnsupported = false;
97
+ let isInstallationPure = true;
98
98
  try {
99
- isUnsupported = !(await this.integrityService.isPure()).isPure;
99
+ isInstallationPure = (await this.integrityService.isPure()).isPure;
100
100
  } catch (e) {}
101
101
  const extensionData = [];
102
102
  try {
@@ -146,7 +146,7 @@ let BrowserIssueService = class BrowserIssueService {
146
146
  enabledExtensions: extensionData,
147
147
  experiments: experiments?.join("\n"),
148
148
  restrictedMode: !this.workspaceTrustManagementService.isWorkspaceTrusted(),
149
- isUnsupported,
149
+ isInstallationPure,
150
150
  isSessionsWindow: this.environmentService.isSessionsWindow,
151
151
  githubAccessToken
152
152
  }, options);
@@ -102,13 +102,13 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
102
102
  throw ( new Error("invalid state"));
103
103
  }
104
104
  const res = await this.dialogService.confirm({
105
- message: ( localize(10696, "Troubleshoot Issue")),
105
+ message: ( localize(10865, "Troubleshoot Issue")),
106
106
  detail: ( localize(
107
- 10697,
107
+ 10866,
108
108
  "Issue troubleshooting is a process to help you identify the cause for an issue. The cause for an issue can be a misconfiguration, due to an extension, or be {0} itself.\n\nDuring the process the window reloads repeatedly. Each time you must confirm if you are still seeing the issue.",
109
109
  this.productService.nameLong
110
110
  )),
111
- primaryButton: ( localize(10698, "&&Troubleshoot Issue")),
111
+ primaryButton: ( localize(10867, "&&Troubleshoot Issue")),
112
112
  custom: true
113
113
  });
114
114
  if (!res.confirmed) {
@@ -152,7 +152,7 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
152
152
  return;
153
153
  }
154
154
  const result = await this.askToReproduceIssue(( localize(
155
- 10699,
155
+ 10868,
156
156
  "Issue troubleshooting is active and has temporarily disabled all installed extensions. Check if you can still reproduce the problem and proceed by selecting from these options."
157
157
  )));
158
158
  if (result === "good") {
@@ -170,7 +170,7 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
170
170
  await this.userDataProfileManagementService.createAndEnterTransientProfile();
171
171
  this.updateState(this.state);
172
172
  const result = await this.askToReproduceIssue(( localize(
173
- 10700,
173
+ 10869,
174
174
  "Issue troubleshooting is active and has temporarily reset your configurations to defaults. Check if you can still reproduce the problem and proceed by selecting from these options."
175
175
  )));
176
176
  if (result === "stop") {
@@ -178,13 +178,13 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
178
178
  }
179
179
  if (result === "good") {
180
180
  await this.askToReportIssue(( localize(
181
- 10701,
181
+ 10870,
182
182
  "Issue troubleshooting has identified that the issue is caused by your configurations. Please report the issue by exporting your configurations using \"Export Profile\" command and share the file in the issue report."
183
183
  )));
184
184
  }
185
185
  if (result === "bad") {
186
186
  await this.askToReportIssue(( localize(
187
- 10702,
187
+ 10871,
188
188
  "Issue troubleshooting has identified that the issue is with {0}.",
189
189
  this.productService.nameLong
190
190
  )));
@@ -199,15 +199,15 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
199
199
  askToReproduceIssue(message) {
200
200
  return (new Promise((c, e) => {
201
201
  const goodPrompt = {
202
- label: ( localize(10703, "I Can't Reproduce")),
202
+ label: ( localize(10872, "I Can't Reproduce")),
203
203
  run: () => c("good")
204
204
  };
205
205
  const badPrompt = {
206
- label: ( localize(10704, "I Can Reproduce")),
206
+ label: ( localize(10873, "I Can Reproduce")),
207
207
  run: () => c("bad")
208
208
  };
209
209
  const stop = {
210
- label: ( localize(10705, "Stop")),
210
+ label: ( localize(10874, "Stop")),
211
211
  run: () => c("stop")
212
212
  };
213
213
  this.notificationHandle = this.notificationService.prompt(Severity.Info, message, [goodPrompt, badPrompt, stop], {
@@ -223,9 +223,9 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
223
223
  if (res === "good") {
224
224
  await this.dialogService.prompt({
225
225
  type: Severity.Info,
226
- message: ( localize(10696, "Troubleshoot Issue")),
226
+ message: ( localize(10865, "Troubleshoot Issue")),
227
227
  detail: ( localize(
228
- 10706,
228
+ 10875,
229
229
  "This likely means that the issue has been addressed already and will be available in an upcoming release. You can safely use {0} insiders until the new stable version is available.",
230
230
  this.productService.nameLong
231
231
  )),
@@ -248,11 +248,11 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
248
248
  async askToReproduceIssueWithInsiders() {
249
249
  const confirmRes = await this.dialogService.confirm({
250
250
  type: "info",
251
- message: ( localize(10696, "Troubleshoot Issue")),
252
- primaryButton: ( localize(10707, "Download {0} Insiders", this.productService.nameLong)),
253
- cancelButton: ( localize(10708, "Report Issue Anyway")),
251
+ message: ( localize(10865, "Troubleshoot Issue")),
252
+ primaryButton: ( localize(10876, "Download {0} Insiders", this.productService.nameLong)),
253
+ cancelButton: ( localize(10877, "Report Issue Anyway")),
254
254
  detail: ( localize(
255
- 10709,
255
+ 10878,
256
256
  "Please try to download and reproduce the issue in {0} insiders.",
257
257
  this.productService.nameLong
258
258
  )),
@@ -269,20 +269,20 @@ let TroubleshootIssueService = class TroubleshootIssueService extends Disposable
269
269
  }
270
270
  const res = await this.dialogService.prompt({
271
271
  type: "info",
272
- message: ( localize(10696, "Troubleshoot Issue")),
272
+ message: ( localize(10865, "Troubleshoot Issue")),
273
273
  buttons: [{
274
- label: ( localize(10710, "I can't reproduce")),
274
+ label: ( localize(10879, "I can't reproduce")),
275
275
  run: () => "good"
276
276
  }, {
277
- label: ( localize(10711, "I can reproduce")),
277
+ label: ( localize(10880, "I can reproduce")),
278
278
  run: () => "bad"
279
279
  }],
280
280
  cancelButton: {
281
- label: ( localize(10712, "Stop")),
281
+ label: ( localize(10881, "Stop")),
282
282
  run: () => "stop"
283
283
  },
284
284
  detail: ( localize(
285
- 10713,
285
+ 10882,
286
286
  "Please try to reproduce the issue in {0} insiders and confirm if the issue exists there.",
287
287
  this.productService.nameLong
288
288
  )),
@@ -348,7 +348,7 @@ registerAction2(class TroubleshootIssueAction extends Action2 {
348
348
  constructor() {
349
349
  super({
350
350
  id: "workbench.action.troubleshootIssue.start",
351
- title: ( localize2(10714, "Troubleshoot Issue...")),
351
+ title: ( localize2(10883, "Troubleshoot Issue...")),
352
352
  category: Categories.Help,
353
353
  f1: true,
354
354
  precondition: ( ContextKeyExpr.and(( IssueTroubleshootUi.ctxIsTroubleshootActive.negate()), ( RemoteNameContext.isEqualTo("")), ( IsWebContext.negate())))
@@ -362,7 +362,7 @@ registerAction2(class extends Action2 {
362
362
  constructor() {
363
363
  super({
364
364
  id: "workbench.action.troubleshootIssue.stop",
365
- title: ( localize2(10715, "Stop Troubleshoot Issue")),
365
+ title: ( localize2(10884, "Stop Troubleshoot Issue")),
366
366
  category: Categories.Help,
367
367
  f1: true,
368
368
  precondition: IssueTroubleshootUi.ctxIsTroubleshootActive
@@ -0,0 +1,9 @@
1
+ import { IRectangle } from "@codingame/monaco-vscode-api/vscode/vs/platform/window/common/window";
2
+ import { IScreenshotService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/issue/browser/screenshotService.service";
3
+ /**
4
+ * Browser fallback — screenshot not available in web.
5
+ */
6
+ export declare class BrowserScreenshotService implements IScreenshotService {
7
+ readonly _serviceBrand: undefined;
8
+ captureScreenshot(_rect?: IRectangle): Promise<string | undefined>;
9
+ }
@@ -0,0 +1,9 @@
1
+
2
+
3
+ class BrowserScreenshotService {
4
+ async captureScreenshot(_rect) {
5
+ return undefined;
6
+ }
7
+ }
8
+
9
+ export { BrowserScreenshotService };
@@ -81,7 +81,7 @@ let BaseIssueContribution = class BaseIssueContribution extends Disposable {
81
81
  }));
82
82
  const reportIssue = {
83
83
  id: OpenIssueReporterActionId,
84
- title: ( localize2(10716, "Report Issue...")),
84
+ title: ( localize2(10885, "Report Issue...")),
85
85
  category: Categories.Help
86
86
  };
87
87
  this._register(MenuRegistry.appendMenuItem(MenuId.CommandPalette, {
@@ -91,7 +91,7 @@ let BaseIssueContribution = class BaseIssueContribution extends Disposable {
91
91
  group: "3_feedback",
92
92
  command: {
93
93
  id: OpenIssueReporterActionId,
94
- title: ( localize(10717, "Report &&Issue"))
94
+ title: ( localize(10886, "Report &&Issue"))
95
95
  },
96
96
  order: 3
97
97
  }));
@@ -15,7 +15,8 @@ export declare enum IssueType {
15
15
  export declare enum IssueSource {
16
16
  VSCode = "vscode",
17
17
  Extension = "extension",
18
- Marketplace = "marketplace"
18
+ Marketplace = "marketplace",
19
+ Unknown = "unknown"
19
20
  }
20
21
  export interface IssueReporterStyles extends WindowStyles {
21
22
  textLinkColor?: string;
@@ -53,12 +54,24 @@ export interface IssueReporterExtensionData {
53
54
  export interface IssueReporterData extends WindowData {
54
55
  styles: IssueReporterStyles;
55
56
  enabledExtensions: IssueReporterExtensionData[];
57
+ /**
58
+ * Resolves once `enabledExtensions` has been populated (or failed to populate).
59
+ * Lets the wizard pane wait for the async extension enumeration in
60
+ * `NativeIssueService` to finish before rendering the extensions section.
61
+ */
62
+ whenExtensionsLoaded?: Promise<void>;
63
+ /**
64
+ * Resolves once all async data (extensions, token, integrity, experiments)
65
+ * has been populated. Lets the wizard pane forward late-arriving values
66
+ * like `isInstallationPure` and `githubAccessToken` into the overlay model.
67
+ */
68
+ whenDataComplete?: Promise<void>;
56
69
  issueType?: IssueType;
57
70
  issueSource?: IssueSource;
58
71
  extensionId?: string;
59
72
  experiments?: string;
60
73
  restrictedMode: boolean;
61
- isUnsupported: boolean;
74
+ isInstallationPure: boolean;
62
75
  isSessionsWindow: boolean;
63
76
  githubAccessToken: string;
64
77
  issueTitle?: string;
@@ -72,3 +85,20 @@ export interface ISettingSearchResult {
72
85
  key: string;
73
86
  score: number;
74
87
  }
88
+ /**
89
+ * Narrow surface of the issue reporter wizard that `IIssueFormService.submitIssue`
90
+ * relies on. Keeping this in `common/` (rather than depending on the browser-side
91
+ * `IssueReporterOverlay` class) lets the service interface be implemented and
92
+ * consumed cleanly across layers.
93
+ */
94
+ export interface IIssueSubmissionHost {
95
+ getScreenshots(): readonly {
96
+ readonly dataUrl: string;
97
+ readonly annotatedDataUrl?: string;
98
+ }[];
99
+ getRecordings(): readonly {
100
+ readonly filePath: string;
101
+ }[];
102
+ setUploading(uploading: boolean): void;
103
+ setAttachmentUploadState(index: number, state: "pending" | "uploading" | "done"): void;
104
+ }
@@ -11,6 +11,7 @@ var IssueSource;
11
11
  IssueSource["VSCode"] = "vscode";
12
12
  IssueSource["Extension"] = "extension";
13
13
  IssueSource["Marketplace"] = "marketplace";
14
+ IssueSource["Unknown"] = "unknown";
14
15
  })(IssueSource || (IssueSource = {}));
15
16
 
16
17
  export { IssueSource, IssueType };