@lvce-editor/extension-host-worker 6.3.0 → 6.5.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.
@@ -113,12 +113,12 @@ const fn = value => {
113
113
  };
114
114
 
115
115
  const state$d = {
116
- /** @type{any[]} */
117
- onWillChangeEditorListeners: [],
118
116
  /** @type{any[]} */
119
117
  onDidChangeTextDocumentListeners: [],
120
118
  /** @type{any[]} */
121
119
  onDidSaveTextDocumentListeners: [],
120
+ /** @type{any[]} */
121
+ onWillChangeEditorListeners: [],
122
122
  textDocuments: Object.create(null)
123
123
  };
124
124
  const setDocument = (textDocumentId, textDocument) => {
@@ -284,10 +284,10 @@ const runListenersSafe = (listeners, ...args) => {
284
284
  };
285
285
  const syncFull = (uri, textDocumentId, languageId, text) => {
286
286
  const textDocument = {
287
- uri,
288
287
  documentId: textDocumentId,
289
288
  languageId,
290
- text
289
+ text,
290
+ uri
291
291
  };
292
292
  setDocument(textDocumentId, textDocument);
293
293
  runListenersSafe(getDidOpenListeners(), textDocument);
@@ -301,9 +301,9 @@ const getSyntheticChanges = (textDocument, changes) => {
301
301
  const endOffset = getOffset$1(textDocument, change.end);
302
302
  const inserted = change.inserted.join('\n');
303
303
  const syntheticChanges = [{
304
- startOffset,
305
304
  endOffset,
306
- inserted
305
+ inserted,
306
+ startOffset
307
307
  }];
308
308
  return syntheticChanges;
309
309
  };
@@ -353,12 +353,12 @@ class NoProviderFoundError extends Error {
353
353
 
354
354
  const getType = value => {
355
355
  switch (typeof value) {
356
- case 'number':
357
- return 'number';
356
+ case 'boolean':
357
+ return 'boolean';
358
358
  case 'function':
359
359
  return 'function';
360
- case 'string':
361
- return 'string';
360
+ case 'number':
361
+ return 'number';
362
362
  case 'object':
363
363
  if (value === null) {
364
364
  return 'null';
@@ -367,8 +367,8 @@ const getType = value => {
367
367
  return 'array';
368
368
  }
369
369
  return 'object';
370
- case 'boolean':
371
- return 'boolean';
370
+ case 'string':
371
+ return 'string';
372
372
  case 'undefined':
373
373
  return 'undefined';
374
374
  default:
@@ -415,10 +415,10 @@ const getPreviewString = item => {
415
415
  const getPreview = item => {
416
416
  const type = getType(item);
417
417
  switch (type) {
418
- case 'object':
419
- return getPreviewObject();
420
418
  case 'array':
421
419
  return getPreviewArray(item);
420
+ case 'object':
421
+ return getPreviewObject();
422
422
  case 'string':
423
423
  return getPreviewString(item);
424
424
  default:
@@ -439,10 +439,10 @@ const validate = (item, schema) => {
439
439
  return `item must be of type ${expectedType} but is ${preview}`;
440
440
  }
441
441
  switch (actualType) {
442
- case 'object':
443
- return validateResultObject(item, schema);
444
442
  case 'array':
445
443
  return validateResultArray(item, schema);
444
+ case 'object':
445
+ return validateResultObject(item, schema);
446
446
  }
447
447
  // TODO use json schema to validate result
448
448
  return undefined;
@@ -538,11 +538,11 @@ const improveValidationError = (name, validationError) => {
538
538
  };
539
539
  const registerMethod = ({
540
540
  context,
541
- providers,
542
- returnUndefinedWhenNoProviderFound,
543
- name,
544
541
  methodName,
545
- resultShape
542
+ name,
543
+ providers,
544
+ resultShape,
545
+ returnUndefinedWhenNoProviderFound
546
546
  }) => {
547
547
  context[`execute${name}Provider`] = async function (textDocumentId, ...params) {
548
548
  try {
@@ -580,11 +580,11 @@ const registerMethod = ({
580
580
  };
581
581
  };
582
582
  const create$b = ({
583
+ additionalMethodNames = [],
584
+ executeKey = '',
583
585
  name,
584
586
  resultShape,
585
- executeKey = '',
586
- returnUndefinedWhenNoProviderFound = false,
587
- additionalMethodNames = []
587
+ returnUndefinedWhenNoProviderFound = false
588
588
  }) => {
589
589
  const multipleResults = resultShape.type === 'array';
590
590
  const methodName = executeKey || (multipleResults ? `provide${name}s` : `provide${name}`);
@@ -593,22 +593,22 @@ const create$b = ({
593
593
  [`register${name}Provider`](provider) {
594
594
  providers[provider.languageId] = provider;
595
595
  },
596
+ getProvider(languageId) {
597
+ return providers[languageId];
598
+ },
596
599
  reset() {
597
600
  for (const key in providers) {
598
601
  delete providers[key];
599
602
  }
600
- },
601
- getProvider(languageId) {
602
- return providers[languageId];
603
603
  }
604
604
  };
605
605
  registerMethod({
606
606
  context,
607
- providers,
608
- name,
609
607
  methodName,
610
- returnUndefinedWhenNoProviderFound,
611
- resultShape
608
+ name,
609
+ providers,
610
+ resultShape,
611
+ returnUndefinedWhenNoProviderFound
612
612
  });
613
613
  for (const method of additionalMethodNames) {
614
614
  // @ts-ignore
@@ -631,8 +631,8 @@ const Object$1 = 'object';
631
631
  const String$1 = 'string';
632
632
 
633
633
  const {
634
- registerBraceCompletionProvider,
635
- executeBraceCompletionProvider} = create$b({
634
+ executeBraceCompletionProvider,
635
+ registerBraceCompletionProvider} = create$b({
636
636
  name: 'BraceCompletion',
637
637
  resultShape: {
638
638
  type: Boolean$1
@@ -640,27 +640,27 @@ const {
640
640
  });
641
641
 
642
642
  const {
643
- registerClosingTagProvider,
644
- executeClosingTagProvider
643
+ executeClosingTagProvider,
644
+ registerClosingTagProvider
645
645
  } = create$b({
646
646
  name: 'ClosingTag',
647
- returnUndefinedWhenNoProviderFound: true,
648
647
  resultShape: {
649
- type: Object$1,
650
- allowUndefined: true
651
- }
648
+ allowUndefined: true,
649
+ type: Object$1
650
+ },
651
+ returnUndefinedWhenNoProviderFound: true
652
652
  });
653
653
 
654
654
  const {
655
- registerCodeActionProvider,
656
- executeCodeActionProvider
655
+ executeCodeActionProvider,
656
+ registerCodeActionProvider
657
657
  } = create$b({
658
658
  name: 'CodeAction',
659
659
  resultShape: {
660
- type: Array$1,
661
660
  items: {
662
661
  type: Object$1
663
- }
662
+ },
663
+ type: Array$1
664
664
  }
665
665
  });
666
666
  const isOrganizeImports = action => {
@@ -734,8 +734,8 @@ const executeCommand = async (id, ...args) => {
734
734
  };
735
735
 
736
736
  const {
737
- registerCommentProvider,
738
- executeCommentProvider
737
+ executeCommentProvider,
738
+ registerCommentProvider
739
739
  } = create$b({
740
740
  name: 'Comment',
741
741
  resultShape() {
@@ -744,27 +744,27 @@ const {
744
744
  });
745
745
 
746
746
  const {
747
- registerCompletionProvider,
748
747
  executeCompletionProvider,
749
- executeresolveCompletionItemProvider
748
+ executeresolveCompletionItemProvider,
749
+ registerCompletionProvider
750
750
  } = create$b({
751
- name: 'Completion',
752
- resultShape: {
753
- type: Array$1,
754
- items: {
755
- type: Object$1
756
- }
757
- },
758
751
  additionalMethodNames: [
759
752
  // @ts-ignore
760
753
  {
761
- name: 'resolveCompletionItem',
762
754
  methodName: 'resolveCompletionItem',
755
+ name: 'resolveCompletionItem',
763
756
  resultShape: {
764
- type: Object$1,
765
- allowUndefined: true
757
+ allowUndefined: true,
758
+ type: Object$1
766
759
  }
767
- }]
760
+ }],
761
+ name: 'Completion',
762
+ resultShape: {
763
+ items: {
764
+ type: Object$1
765
+ },
766
+ type: Array$1
767
+ }
768
768
  });
769
769
 
770
770
  const state$b = {
@@ -1953,10 +1953,10 @@ const start = async (protocol, path) => {
1953
1953
  try {
1954
1954
  const provider = getDebugProvider(protocol);
1955
1955
  const emitter = {
1956
+ handleChange,
1956
1957
  handlePaused,
1957
1958
  handleResumed,
1958
- handleScriptParsed,
1959
- handleChange
1959
+ handleScriptParsed
1960
1960
  };
1961
1961
  await provider.start(emitter, path);
1962
1962
  } catch (error) {
@@ -2098,36 +2098,36 @@ const setPauseOnExceptions = async (protocol, value) => {
2098
2098
  };
2099
2099
 
2100
2100
  const {
2101
- registerDefinitionProvider,
2102
- executeDefinitionProvider} = create$b({
2101
+ executeDefinitionProvider,
2102
+ registerDefinitionProvider} = create$b({
2103
2103
  name: 'Definition',
2104
2104
  resultShape: {
2105
2105
  allowUndefined: true,
2106
- type: Object$1,
2107
2106
  properties: {
2108
- uri: {
2109
- type: String$1
2107
+ endOffset: {
2108
+ type: Number
2110
2109
  },
2111
2110
  startOffset: {
2112
2111
  type: Number
2113
2112
  },
2114
- endOffset: {
2115
- type: Number
2113
+ uri: {
2114
+ type: String$1
2116
2115
  }
2117
- }
2116
+ },
2117
+ type: Object$1
2118
2118
  }
2119
2119
  });
2120
2120
 
2121
2121
  const {
2122
- registerDiagnosticProvider,
2123
- executeDiagnosticProvider
2122
+ executeDiagnosticProvider,
2123
+ registerDiagnosticProvider
2124
2124
  } = create$b({
2125
2125
  name: 'Diagnostic',
2126
2126
  resultShape: {
2127
- type: Array$1,
2128
2127
  items: {
2129
2128
  type: Object$1
2130
- }
2129
+ },
2130
+ type: Array$1
2131
2131
  }
2132
2132
  });
2133
2133
 
@@ -2270,27 +2270,27 @@ const getPathSeparator = protocol => {
2270
2270
  };
2271
2271
 
2272
2272
  const {
2273
- registerFormattingProvider,
2274
- executeFormattingProvider} = create$b({
2275
- name: 'Formatting',
2273
+ executeFormattingProvider,
2274
+ registerFormattingProvider} = create$b({
2276
2275
  executeKey: 'format',
2276
+ name: 'Formatting',
2277
2277
  resultShape: {
2278
2278
  allowUndefined: true,
2279
- type: Array$1,
2280
2279
  items: {
2281
- type: Object$1,
2282
2280
  properties: {
2283
- startOffset: {
2284
- type: Number
2285
- },
2286
2281
  endOffset: {
2287
2282
  type: Number
2288
2283
  },
2289
2284
  inserted: {
2290
2285
  type: String$1
2286
+ },
2287
+ startOffset: {
2288
+ type: Number
2291
2289
  }
2292
- }
2293
- }
2290
+ },
2291
+ type: Object$1
2292
+ },
2293
+ type: Array$1
2294
2294
  }
2295
2295
  });
2296
2296
 
@@ -2326,31 +2326,31 @@ const getPosition = (textDocument, offset) => {
2326
2326
  }
2327
2327
  const columnIndex = offset - index;
2328
2328
  return {
2329
- rowIndex,
2330
- columnIndex
2329
+ columnIndex,
2330
+ rowIndex
2331
2331
  };
2332
2332
  };
2333
2333
 
2334
2334
  const {
2335
- registerHoverProvider,
2336
- executeHoverProvider} = create$b({
2335
+ executeHoverProvider,
2336
+ registerHoverProvider} = create$b({
2337
2337
  name: 'Hover',
2338
2338
  resultShape: {
2339
2339
  allowUndefined: true,
2340
- type: Object$1,
2341
- properties: {}
2340
+ properties: {},
2341
+ type: Object$1
2342
2342
  }
2343
2343
  });
2344
2344
 
2345
2345
  const {
2346
- registerImplementationProvider,
2347
- executeImplementationProvider} = create$b({
2346
+ executeImplementationProvider,
2347
+ registerImplementationProvider} = create$b({
2348
2348
  name: 'Implementation',
2349
2349
  resultShape: {
2350
- type: Array$1,
2351
2350
  items: {
2352
2351
  type: Object$1
2353
- }
2352
+ },
2353
+ type: Array$1
2354
2354
  }
2355
2355
  });
2356
2356
 
@@ -2372,22 +2372,22 @@ const getPortTuple = () => {
2372
2372
  const ModuleWorkerAndWorkaroundForChromeDevtoolsBug = 6;
2373
2373
 
2374
2374
  const sendPort = async ({
2375
- url,
2376
2375
  name,
2377
- port
2376
+ port,
2377
+ url
2378
2378
  }) => {
2379
2379
  await invokeAndTransfer$1('IpcParent.create', {
2380
2380
  method: ModuleWorkerAndWorkaroundForChromeDevtoolsBug,
2381
- url,
2382
2381
  name,
2382
+ port,
2383
2383
  raw: true,
2384
- port
2384
+ url
2385
2385
  });
2386
2386
  };
2387
2387
  const create$6 = async ({
2388
- url,
2388
+ commandMap,
2389
2389
  name,
2390
- commandMap
2390
+ url
2391
2391
  }) => {
2392
2392
  string(url);
2393
2393
  string(name);
@@ -2396,16 +2396,16 @@ const create$6 = async ({
2396
2396
  port2
2397
2397
  } = getPortTuple();
2398
2398
  const rpcPromise = MessagePortRpcParent.create({
2399
- messagePort: port2,
2399
+ commandMap,
2400
2400
  isMessagePortOpen: true,
2401
- commandMap
2401
+ messagePort: port2
2402
2402
  });
2403
2403
  // TODO rpc module should start port
2404
2404
  port2.start();
2405
2405
  await sendPort({
2406
- url,
2407
2406
  name,
2408
- port: port1
2407
+ port: port1,
2408
+ url
2409
2409
  });
2410
2410
  const rpc = await rpcPromise;
2411
2411
  return rpc;
@@ -2435,9 +2435,9 @@ const create$5 = async ({
2435
2435
  // TODO rpc module should start port
2436
2436
  port.start();
2437
2437
  const rpc = await MessagePortRpcParent.create({
2438
- messagePort: port,
2438
+ commandMap: {},
2439
2439
  isMessagePortOpen: true,
2440
- commandMap: {}
2440
+ messagePort: port
2441
2441
  });
2442
2442
  return rpc;
2443
2443
  };
@@ -2463,8 +2463,8 @@ const create$4 = async ({
2463
2463
  const wsUrl = getWebSocketUrl(type, location.host);
2464
2464
  const webSocket = new WebSocket(wsUrl);
2465
2465
  const rpc = await WebSocketRpcParent.create({
2466
- webSocket,
2467
- commandMap: {}
2466
+ commandMap: {},
2467
+ webSocket
2468
2468
  });
2469
2469
  return rpc;
2470
2470
  };
@@ -2509,8 +2509,8 @@ const getModule$1 = platform => {
2509
2509
  }
2510
2510
  };
2511
2511
  const create$3 = async ({
2512
- type,
2513
- raw
2512
+ raw,
2513
+ type
2514
2514
  }) => {
2515
2515
  const module = getModule$1(platform);
2516
2516
  const rpc = await module.create({
@@ -2526,12 +2526,12 @@ const IpcParentWithNode = {
2526
2526
 
2527
2527
  const getModule = method => {
2528
2528
  switch (method) {
2529
- case WebSocket$1:
2530
- return IpcParentWithWebSocket;
2531
2529
  case ElectronMessagePort:
2532
2530
  return IpcParentWithNode;
2533
2531
  case ModuleWorkerAndWorkaroundForChromeDevtoolsBug$1:
2534
2532
  return IpcParentWithModuleWorkerAndWorkaroundForChromeDevtoolsBug;
2533
+ case WebSocket$1:
2534
+ return IpcParentWithWebSocket;
2535
2535
  default:
2536
2536
  throw new Error('unexpected ipc type');
2537
2537
  }
@@ -2555,18 +2555,18 @@ const defaultExecute = () => {
2555
2555
  throw new Error('not implemented');
2556
2556
  };
2557
2557
  const createNodeRpc = async ({
2558
- path,
2559
2558
  execute = defaultExecute,
2560
- name = ''
2559
+ name = '',
2560
+ path
2561
2561
  }) => {
2562
2562
  try {
2563
2563
  string(path);
2564
2564
  fn(execute);
2565
2565
  const rpc = await create$2({
2566
+ commandMap: {},
2566
2567
  method: ElectronMessagePort,
2567
- type: 'extension-host-helper-process',
2568
2568
  name,
2569
- commandMap: {}
2569
+ type: 'extension-host-helper-process'
2570
2570
  });
2571
2571
  await rpc.invoke('LoadFile.loadFile', path);
2572
2572
  return rpc;
@@ -2635,11 +2635,11 @@ const registerOutputChannel = provider => {
2635
2635
  }
2636
2636
  await append(uri, text + '\n');
2637
2637
  },
2638
- async replace(text) {
2639
- await writeFile$2(uri, text);
2640
- },
2641
2638
  getUri() {
2642
2639
  return uri;
2640
+ },
2641
+ async replace(text) {
2642
+ await writeFile$2(uri, text);
2643
2643
  }
2644
2644
  };
2645
2645
  };
@@ -2674,37 +2674,36 @@ const showQuickPick = async ({
2674
2674
  };
2675
2675
 
2676
2676
  const {
2677
- registerReferenceProvider,
2678
- executeReferenceProvider,
2679
2677
  executefileReferenceProvider,
2680
- getProvider: getProvider$1
2681
- } = create$b({
2682
- name: 'Reference',
2683
- resultShape: {
2684
- type: Array$1,
2685
- items: {
2686
- type: Object$1
2687
- }
2688
- },
2678
+ executeReferenceProvider,
2679
+ getProvider: getProvider$1,
2680
+ registerReferenceProvider} = create$b({
2689
2681
  additionalMethodNames: [
2690
2682
  // @ts-ignore
2691
2683
  {
2692
- name: 'fileReference',
2693
2684
  methodName: 'provideFileReferences',
2685
+ name: 'fileReference',
2694
2686
  resultShape: {
2695
- type: Array$1,
2696
2687
  items: {
2697
2688
  type: Object$1
2698
- }
2689
+ },
2690
+ type: Array$1
2699
2691
  }
2700
- }]
2692
+ }],
2693
+ name: 'Reference',
2694
+ resultShape: {
2695
+ items: {
2696
+ type: Object$1
2697
+ },
2698
+ type: Array$1
2699
+ }
2701
2700
  });
2702
2701
  const executeReferenceProvider2 = (uri, languageId, offset, position) => {
2703
2702
  const provider = getProvider$1(languageId);
2704
2703
  return provider.provideReferences2({
2705
- uri,
2706
2704
  offset,
2707
- position
2705
+ position,
2706
+ uri
2708
2707
  });
2709
2708
  };
2710
2709
 
@@ -2738,21 +2737,21 @@ const validateResult = renameResult => {
2738
2737
  return '';
2739
2738
  };
2740
2739
  const {
2741
- registerRenameProvider,
2740
+ executeprepareRenameProvider,
2742
2741
  executeRenameProvider,
2743
- executeprepareRenameProvider} = create$b({
2744
- name: 'Rename',
2745
- resultShape: validateResult,
2742
+ registerRenameProvider} = create$b({
2746
2743
  additionalMethodNames: [
2747
2744
  // @ts-ignore
2748
2745
  {
2749
- name: 'prepareRename',
2750
2746
  methodName: 'prepareRename',
2747
+ name: 'prepareRename',
2751
2748
  resultShape: {
2752
- type: Object$1,
2753
- allowUndefined: true
2749
+ allowUndefined: true,
2750
+ type: Object$1
2754
2751
  }
2755
- }]
2752
+ }],
2753
+ name: 'Rename',
2754
+ resultShape: validateResult
2756
2755
  });
2757
2756
 
2758
2757
  const getExtensionHostSubWorkerUrl = () => {
@@ -2770,11 +2769,11 @@ const set$8 = async (url, contentSecurityPolicy) => {
2770
2769
  * @deprecated
2771
2770
  */
2772
2771
  const createLegacyRpc = async ({
2773
- url,
2774
- name,
2775
- execute,
2776
2772
  commandMap = {},
2777
- contentSecurityPolicy
2773
+ contentSecurityPolicy,
2774
+ execute,
2775
+ name,
2776
+ url
2778
2777
  }) => {
2779
2778
  string(url);
2780
2779
  string(name);
@@ -2783,10 +2782,10 @@ const createLegacyRpc = async ({
2783
2782
  await set$8(url, contentSecurityPolicy);
2784
2783
  }
2785
2784
  const rpc = await create$2({
2785
+ commandMap,
2786
2786
  method: ModuleWorkerAndWorkaroundForChromeDevtoolsBug$1,
2787
- url: extensionHostSubWorkerUrl,
2788
2787
  name,
2789
- commandMap
2788
+ url: extensionHostSubWorkerUrl
2790
2789
  });
2791
2790
  if (execute) {
2792
2791
  // deprecated
@@ -2823,11 +2822,11 @@ const createRpcWithId$1 = async (id, commandMap, execute) => {
2823
2822
  throw new Error(`rpc with id ${id} not found`);
2824
2823
  }
2825
2824
  const rpc = await create$2({
2825
+ commandMap,
2826
+ isMessagePortOpen: true,
2826
2827
  method: ModuleWorkerAndWorkaroundForChromeDevtoolsBug$1,
2827
- url: extensionHostSubWorkerUrl,
2828
2828
  name: info.name,
2829
- commandMap,
2830
- isMessagePortOpen: true
2829
+ url: extensionHostSubWorkerUrl
2831
2830
  });
2832
2831
  if (execute) {
2833
2832
  // @ts-ignore
@@ -2846,9 +2845,9 @@ const getOrCreateRpc = async (id, commandMap, execute) => {
2846
2845
  return get$7(id);
2847
2846
  };
2848
2847
  const createRpcWithId = ({
2849
- id,
2850
2848
  commandMap,
2851
- execute
2849
+ execute,
2850
+ id
2852
2851
  }) => {
2853
2852
  string(id);
2854
2853
  register(id, commandMap);
@@ -2862,12 +2861,12 @@ const createRpcWithId = ({
2862
2861
  };
2863
2862
 
2864
2863
  const createRpc = ({
2865
- id,
2866
- url,
2867
- name,
2868
2864
  commandMap,
2869
2865
  contentSecurityPolicy,
2870
- execute
2866
+ execute,
2867
+ id,
2868
+ name,
2869
+ url
2871
2870
  }) => {
2872
2871
  try {
2873
2872
  if (execute && !commandMap) {
@@ -2878,17 +2877,17 @@ const createRpc = ({
2878
2877
  if (id) {
2879
2878
  string(id);
2880
2879
  return createRpcWithId({
2881
- id,
2880
+ commandMap,
2882
2881
  execute,
2883
- commandMap
2882
+ id
2884
2883
  });
2885
2884
  }
2886
2885
  return createLegacyRpc({
2887
- url,
2888
- name,
2889
- execute,
2890
2886
  commandMap,
2891
- contentSecurityPolicy
2887
+ contentSecurityPolicy,
2888
+ execute,
2889
+ name,
2890
+ url
2892
2891
  });
2893
2892
  } catch (error) {
2894
2893
  throw new VError(error, `Failed to create webworker rpc`);
@@ -2896,15 +2895,15 @@ const createRpc = ({
2896
2895
  };
2897
2896
 
2898
2897
  const {
2899
- registerSelectionProvider,
2900
- executeSelectionProvider} = create$b({
2898
+ executeSelectionProvider,
2899
+ registerSelectionProvider} = create$b({
2901
2900
  name: 'Selection',
2902
2901
  resultShape: {
2903
2902
  allowUndefined: true,
2904
- type: Array$1,
2905
2903
  items: {
2906
2904
  type: 'number'
2907
- }
2905
+ },
2906
+ type: Array$1
2908
2907
  }
2909
2908
  });
2910
2909
 
@@ -2919,17 +2918,17 @@ const getProtocol = uri => {
2919
2918
 
2920
2919
  const createWebViewIpc = async webView => {
2921
2920
  const {
2922
- uid,
2923
- origin
2921
+ origin,
2922
+ uid
2924
2923
  } = webView;
2925
2924
  const {
2926
2925
  port1,
2927
2926
  port2
2928
2927
  } = getPortTuple();
2929
2928
  const rpcPromise = MessagePortRpcParent.create({
2930
- messagePort: port2,
2929
+ commandMap: {},
2931
2930
  isMessagePortOpen: false,
2932
- commandMap: {}
2931
+ messagePort: port2
2933
2932
  });
2934
2933
  const portType = 'test';
2935
2934
  await invokeAndTransfer$1('WebView.setPort', uid, port1, origin, portType);
@@ -3130,8 +3129,8 @@ const getGroupsFromProvider = async (provider, cwd) => {
3130
3129
  const files = await provider.getChangedFiles();
3131
3130
  const groups = [{
3132
3131
  id: 'changes',
3133
- label: 'Changes',
3134
- items: files
3132
+ items: files,
3133
+ label: 'Changes'
3135
3134
  }];
3136
3135
  return groups;
3137
3136
  }
@@ -3215,12 +3214,12 @@ const getFileDecorations = async (providerId, uris) => {
3215
3214
  };
3216
3215
 
3217
3216
  const {
3218
- registerTabCompletionProvider,
3219
- executeTabCompletionProvider} = create$b({
3217
+ executeTabCompletionProvider,
3218
+ registerTabCompletionProvider} = create$b({
3220
3219
  name: 'TabCompletion',
3221
3220
  resultShape: {
3222
- type: Object$1,
3223
- allowUndefined: true
3221
+ allowUndefined: true,
3222
+ type: Object$1
3224
3223
  }
3225
3224
  });
3226
3225
 
@@ -3254,23 +3253,23 @@ const executeTextSearchProvider = async (scheme, query) => {
3254
3253
  };
3255
3254
 
3256
3255
  const {
3257
- registerTypeDefinitionProvider,
3258
- executeTypeDefinitionProvider} = create$b({
3256
+ executeTypeDefinitionProvider,
3257
+ registerTypeDefinitionProvider} = create$b({
3259
3258
  name: 'TypeDefinition',
3260
3259
  resultShape: {
3261
3260
  allowUndefined: true,
3262
- type: Object$1,
3263
3261
  properties: {
3264
- uri: {
3265
- type: String$1
3262
+ endOffset: {
3263
+ type: Number
3266
3264
  },
3267
3265
  startOffset: {
3268
3266
  type: Number
3269
3267
  },
3270
- endOffset: {
3271
- type: Number
3268
+ uri: {
3269
+ type: String$1
3272
3270
  }
3273
- }
3271
+ },
3272
+ type: Object$1
3274
3273
  }
3275
3274
  });
3276
3275
 
@@ -3289,19 +3288,19 @@ const createWebView = async (providerId, port, uri, uid, origin, webView) => {
3289
3288
  // TODO handle case when webview doesn't send ready message
3290
3289
 
3291
3290
  const rpc = await MessagePortRpcParent.create({
3292
- messagePort: port,
3291
+ commandMap: provider.commands || {},
3293
3292
  isMessagePortOpen: false,
3294
- commandMap: provider.commands || {}
3293
+ messagePort: port
3295
3294
  });
3296
3295
  const outer = {
3297
- uri,
3298
- provider,
3299
- uid,
3300
- origin,
3301
- webView,
3302
3296
  async invoke(method, ...params) {
3303
3297
  return rpc.invoke(method, ...params);
3304
- }
3298
+ },
3299
+ origin,
3300
+ provider,
3301
+ uid,
3302
+ uri,
3303
+ webView
3305
3304
  };
3306
3305
  // TODO allow creating multiple webviews per provider
3307
3306
  setWebView(providerId, outer);
@@ -3327,24 +3326,24 @@ const getWebViewInfo = providerId => {
3327
3326
  throw new Error(`Webview not found: ${providerId}`);
3328
3327
  }
3329
3328
  return {
3330
- uid: webView.uid,
3331
3329
  origin: webView.origin,
3330
+ uid: webView.uid,
3332
3331
  uri: webView.uri
3333
3332
  };
3334
3333
  };
3335
3334
 
3336
3335
  const createWorker = async ({
3337
3336
  method,
3338
- url,
3339
- name
3337
+ name,
3338
+ url
3340
3339
  }) => {
3341
3340
  string(method);
3342
3341
  string(url);
3343
3342
  string(name);
3344
3343
  const rpc = create$2({
3345
3344
  method: ModuleWorkerAndWorkaroundForChromeDevtoolsBug$1,
3346
- url,
3347
- name
3345
+ name,
3346
+ url
3348
3347
  });
3349
3348
  return rpc;
3350
3349
  };
@@ -3382,110 +3381,110 @@ const TextSearchResultType = {
3382
3381
  };
3383
3382
 
3384
3383
  const api = {
3384
+ // Prompt
3385
+ confirm: confirm,
3386
+ createNodeRpc: createNodeRpc,
3387
+ // Rpc
3388
+ createRpc: createRpc,
3389
+ // Worker
3390
+ createWorker: createWorker,
3391
+ EditorCompletionType,
3392
+ // Env
3393
+ env: env,
3394
+ // Exec`
3395
+ exec: exec,
3396
+ executeBraceCompletionProvider: executeBraceCompletionProvider,
3397
+ // Comment
3398
+
3399
+ executeClosingTagProvider: executeClosingTagProvider,
3400
+ executeCommand: executeCommand,
3401
+ executeCommentProvider: executeCommentProvider,
3402
+ executeCompletionProvider: executeCompletionProvider,
3403
+ executeDefinitionProvider: executeDefinitionProvider,
3404
+ executeDiagnosticProvider: executeDiagnosticProvider,
3405
+ executeFormattingProvider: executeFormattingProvider,
3406
+ executeHoverProvider: executeHoverProvider,
3407
+ executeImplementationProvider: executeImplementationProvider,
3408
+ executePrepareRenameProvider: executeprepareRenameProvider,
3409
+ executeReferenceProvider: executeReferenceProvider,
3410
+ executeRenameProvider: executeRenameProvider,
3411
+ executeSelectionProvider: executeSelectionProvider,
3412
+ executeTabCompletionProvider: executeTabCompletionProvider,
3413
+ executeTextSearchProvider: executeTextSearchProvider,
3414
+ executeTypeDefinitionProvider: executeTypeDefinitionProvider,
3415
+ exists: existsExternal,
3416
+ // Errors
3417
+ FormattingError,
3418
+ // Configuration
3419
+ getConfiguration: getConfiguration,
3385
3420
  // Ajax
3386
3421
  getJson: getJson$1,
3422
+ // Get Offset
3423
+ getOffset: getOffset,
3424
+ // Get Position
3425
+ getPosition: getPosition,
3426
+ // Url
3427
+ getRemoteUrl: getRemoteUrl$1,
3428
+ // Text Document
3429
+ getTextFromTextDocument: getText$2,
3430
+ getWorkspaceFolder: getWorkspaceFolder,
3431
+ // Workspace
3432
+ handleWorkspaceRefresh: handleWorkspaceRefresh,
3433
+ mkdir: mkdirExternal,
3434
+ readDirWithFileTypes: readDirWithFileTypesExternal,
3435
+ readFile: readFileExternal,
3387
3436
  // Brace Completion
3388
3437
  registerBraceCompletionProvider: registerBraceCompletionProvider,
3389
- executeBraceCompletionProvider: executeBraceCompletionProvider,
3390
3438
  // Closing Tag
3391
3439
  registerClosingTagProvider: registerClosingTagProvider,
3392
- executeClosingTagProvider: executeClosingTagProvider,
3393
3440
  // Code Action
3394
3441
  registerCodeActionsProvider: registerCodeActionProvider,
3395
3442
  // Command
3396
3443
  registerCommand: registerCommand,
3397
- executeCommand: executeCommand,
3398
- // Comment
3399
-
3400
3444
  registerCommentProvider: registerCommentProvider,
3401
- executeCommentProvider: executeCommentProvider,
3402
3445
  // Completion
3403
3446
  registerCompletionProvider: registerCompletionProvider,
3404
- executeCompletionProvider: executeCompletionProvider,
3405
- EditorCompletionType,
3406
- // Configuration
3407
- getConfiguration: getConfiguration,
3408
3447
  // Debug
3409
3448
  registerDebugProvider: registerDebugProvider,
3410
3449
  // Definition
3411
3450
  registerDefinitionProvider: registerDefinitionProvider,
3412
- executeDefinitionProvider: executeDefinitionProvider,
3413
3451
  // Diagnostic
3414
3452
  registerDiagnosticProvider: registerDiagnosticProvider,
3415
- executeDiagnosticProvider: executeDiagnosticProvider,
3416
- // Dialog
3417
- showInformationMessage: showInformationMessage,
3418
- // Env
3419
- env: env,
3420
- // Errors
3421
- FormattingError,
3422
- VError,
3423
- // Exec`
3424
- exec: exec,
3425
3453
  // File System
3426
3454
  registerFileSystemProvider: registerFileSystemProvider,
3427
- readFile: readFileExternal,
3428
- readDirWithFileTypes: readDirWithFileTypesExternal,
3429
- exists: existsExternal,
3430
- mkdir: mkdirExternal,
3431
- remove: removeExternal,
3432
- writeFile: writeFileExternal,
3433
- stat: statExternal,
3434
3455
  // Formatting
3435
3456
  registerFormattingProvider: registerFormattingProvider,
3436
- executeFormattingProvider: executeFormattingProvider,
3437
- // Get Offset
3438
- getOffset: getOffset,
3439
- // Get Position
3440
- getPosition: getPosition,
3441
3457
  // Hover
3442
3458
  registerHoverProvider: registerHoverProvider,
3443
- executeHoverProvider: executeHoverProvider,
3444
- // Rpc
3445
- createRpc: createRpc,
3446
- createNodeRpc: createNodeRpc,
3447
3459
  // Implementation
3448
3460
  registerImplementationProvider: registerImplementationProvider,
3449
- executeImplementationProvider: executeImplementationProvider,
3450
3461
  // Output
3451
3462
  registerOutputChannel: registerOutputChannel,
3452
- // Prompt
3453
- confirm: confirm,
3454
- // QuickPick
3455
- showQuickPick: showQuickPick,
3456
- // Rename
3457
- registerRenameProvider: registerRenameProvider,
3458
- executeRenameProvider: executeRenameProvider,
3459
- executePrepareRenameProvider: executeprepareRenameProvider,
3460
3463
  // Reference
3461
3464
  registerReferenceProvider: registerReferenceProvider,
3462
- executeReferenceProvider: executeReferenceProvider,
3465
+ // Rename
3466
+ registerRenameProvider: registerRenameProvider,
3463
3467
  // Selection
3464
3468
  registerSelectionProvider: registerSelectionProvider,
3465
- executeSelectionProvider: executeSelectionProvider,
3466
3469
  // Source Control
3467
3470
  registerSourceControlProvider: registerSourceControlProvider,
3468
3471
  // Tab Completion
3469
3472
  registerTabCompletionProvider: registerTabCompletionProvider,
3470
- executeTabCompletionProvider: executeTabCompletionProvider,
3471
- // Text Document
3472
- getTextFromTextDocument: getText$2,
3473
3473
  // Text Search
3474
3474
  registerTextSearchProvider: registerTextSearchProvider,
3475
- executeTextSearchProvider: executeTextSearchProvider,
3476
- TextSearchResultType,
3477
3475
  // Type Definition
3478
3476
  registerTypeDefinitionProvider: registerTypeDefinitionProvider,
3479
- executeTypeDefinitionProvider: executeTypeDefinitionProvider,
3480
- // Url
3481
- getRemoteUrl: getRemoteUrl$1,
3482
3477
  // Webview
3483
3478
  registerWebViewProvider: registerWebViewProvider,
3484
- // Worker
3485
- createWorker: createWorker,
3486
- // Workspace
3487
- handleWorkspaceRefresh: handleWorkspaceRefresh,
3488
- getWorkspaceFolder: getWorkspaceFolder
3479
+ remove: removeExternal,
3480
+ // Dialog
3481
+ showInformationMessage: showInformationMessage,
3482
+ // QuickPick
3483
+ showQuickPick: showQuickPick,
3484
+ stat: statExternal,
3485
+ TextSearchResultType,
3486
+ VError,
3487
+ writeFile: writeFileExternal
3489
3488
  };
3490
3489
 
3491
3490
  const handleError = async error => {
@@ -3540,16 +3539,16 @@ const getRecentError = () => {
3540
3539
 
3541
3540
  const handleContentSecurityPolicyViolation = event => {
3542
3541
  const {
3543
- violatedDirective,
3544
- sourceFile,
3542
+ columnNumber,
3545
3543
  lineNumber,
3546
- columnNumber
3544
+ sourceFile,
3545
+ violatedDirective
3547
3546
  } = event;
3548
3547
  addError({
3549
- violatedDirective,
3550
- sourceFile,
3548
+ columnNumber,
3551
3549
  lineNumber,
3552
- columnNumber
3550
+ sourceFile,
3551
+ violatedDirective
3553
3552
  });
3554
3553
  };
3555
3554
 
@@ -3560,8 +3559,8 @@ const setStackTraceLimit = (errorConstructor, value) => {
3560
3559
  };
3561
3560
 
3562
3561
  const setup = ({
3563
- global,
3564
- errorConstructor
3562
+ errorConstructor,
3563
+ global
3565
3564
  }) => {
3566
3565
  setStackTraceLimit(errorConstructor, 20);
3567
3566
  global.onerror ||= handleUnhandledError;
@@ -3647,8 +3646,8 @@ const Error$1 = 4;
3647
3646
 
3648
3647
  const sleep = duration => {
3649
3648
  const {
3650
- resolve,
3651
- promise
3649
+ promise,
3650
+ resolve
3652
3651
  } = Promise.withResolvers();
3653
3652
  setTimeout(resolve, duration);
3654
3653
  return promise;
@@ -3713,8 +3712,8 @@ const getLineAndColumn = (text, start, end) => {
3713
3712
  }
3714
3713
  }
3715
3714
  return {
3716
- line,
3717
- column
3715
+ column,
3716
+ line
3718
3717
  };
3719
3718
  };
3720
3719
 
@@ -3722,8 +3721,8 @@ class DependencyNotFoundError extends Error {
3722
3721
  constructor(code, start, end, dependencyRelativePath, dependencyUrl, sourceUrl) {
3723
3722
  super(`Module not found "${dependencyRelativePath}"`);
3724
3723
  const {
3725
- line,
3726
- column
3724
+ column,
3725
+ line
3727
3726
  } = getLineAndColumn(code, start);
3728
3727
  this.stack = `${this.message}
3729
3728
  at Module (${sourceUrl}:${line}:${column})`;
@@ -3757,35 +3756,35 @@ const walk = (node, visitor) => {
3757
3756
  }
3758
3757
  visitor(node);
3759
3758
  switch (node.type) {
3760
- case File$2:
3761
- walk(node.program, visitor);
3759
+ case ArrowFunctionExpression:
3760
+ walk(node.body, visitor);
3762
3761
  break;
3763
- case Program:
3762
+ case AwaitExpression:
3763
+ walk(node.argument, visitor);
3764
+ break;
3765
+ case BlockStatement:
3764
3766
  walk(node.body, visitor);
3765
3767
  break;
3768
+ case CallExpression:
3769
+ walk(node.callee, visitor);
3770
+ break;
3766
3771
  case ExportNamedDeclaration:
3767
3772
  walk(node.declaration, visitor);
3768
3773
  break;
3769
- case VariableDeclaration:
3770
- walk(node.declarations, visitor);
3771
- break;
3772
- case VariableDeclarator:
3773
- walk(node.init, visitor);
3774
+ case ExpressionStatement:
3775
+ walk(node.expression, visitor);
3774
3776
  break;
3775
- case ArrowFunctionExpression:
3776
- walk(node.body, visitor);
3777
+ case File$2:
3778
+ walk(node.program, visitor);
3777
3779
  break;
3778
- case BlockStatement:
3780
+ case Program:
3779
3781
  walk(node.body, visitor);
3780
3782
  break;
3781
- case ExpressionStatement:
3782
- walk(node.expression, visitor);
3783
- break;
3784
- case AwaitExpression:
3785
- walk(node.argument, visitor);
3783
+ case VariableDeclaration:
3784
+ walk(node.declarations, visitor);
3786
3785
  break;
3787
- case CallExpression:
3788
- walk(node.callee, visitor);
3786
+ case VariableDeclarator:
3787
+ walk(node.init, visitor);
3789
3788
  break;
3790
3789
  }
3791
3790
  };
@@ -3809,10 +3808,10 @@ const getBabelAstDependencies = (code, ast) => {
3809
3808
  } = node.source;
3810
3809
  // @ts-ignore
3811
3810
  dependencies.push({
3812
- relativePath,
3813
3811
  code,
3814
- start,
3815
- end
3812
+ end,
3813
+ relativePath,
3814
+ start
3816
3815
  });
3817
3816
  } else if (node.type === VariableDeclaration && node.declarations && node.declarations[0] && node.declarations[0].type === VariableDeclarator && node.declarations[0].init && node.declarations[0].init.type === AwaitExpression && node.declarations[0].init.argument && node.declarations[0].init.argument.type === CallExpression && node.declarations[0].init.argument.callee && node.declarations[0].init.argument.callee.type === Import && node.declarations[0].init.argument.arguments && node.declarations[0].init.argument.arguments[0] && node.declarations[0].init.argument.arguments[0].type === StringLiteral) {
3818
3817
  const relativePath = node.declarations[0].init.argument.arguments[0].extra.rawValue;
@@ -3824,10 +3823,10 @@ const getBabelAstDependencies = (code, ast) => {
3824
3823
  } = node.declarations[0].init.argument.arguments[0];
3825
3824
  // @ts-ignore
3826
3825
  dependencies.push({
3827
- relativePath,
3828
3826
  code,
3829
- start,
3830
- end
3827
+ end,
3828
+ relativePath,
3829
+ start
3831
3830
  });
3832
3831
  }
3833
3832
  }
@@ -3842,10 +3841,10 @@ const getBabelAstDependencies = (code, ast) => {
3842
3841
  } = node.arguments[0];
3843
3842
  // @ts-ignore
3844
3843
  dependencies.push({
3845
- relativePath,
3846
3844
  code,
3847
- start,
3848
- end
3845
+ end,
3846
+ relativePath,
3847
+ start
3849
3848
  });
3850
3849
  }
3851
3850
  };
@@ -3974,17 +3973,17 @@ const activateExtension2 = async (extensionId, extension, absolutePath) => {
3974
3973
  try {
3975
3974
  const startTime = performance.now();
3976
3975
  update(extensionId, {
3977
- status: Activating,
3978
- activationStartTime: startTime
3976
+ activationStartTime: startTime,
3977
+ status: Activating
3979
3978
  });
3980
3979
  const module = acquire(extensionId);
3981
3980
  await Promise.race([module.activate(extension), rejectAfterTimeout$1(activationTimeout$1, token)]);
3982
3981
  const endTime = performance.now();
3983
3982
  const time = endTime - startTime;
3984
3983
  update(extensionId, {
3985
- status: Activated,
3984
+ activationEndTime: endTime,
3986
3985
  activationTime: time,
3987
- activationEndTime: endTime
3986
+ status: Activated
3988
3987
  });
3989
3988
  } catch (error) {
3990
3989
  const id = getExtensionId(extension);
@@ -4087,10 +4086,10 @@ const activateExtension = async (extension, absolutePath, activationEvent) => {
4087
4086
  activationStartTime: startTime,
4088
4087
  activationTime: 0,
4089
4088
  id: extensionId,
4090
- status: Importing,
4091
4089
  importEndTime: 0,
4092
4090
  importStartTime: 0,
4093
- importTime: 0
4091
+ importTime: 0,
4092
+ status: Importing
4094
4093
  });
4095
4094
  const module = await importScript(absolutePath);
4096
4095
  handleRpcInfos(extension, platform);
@@ -4103,8 +4102,8 @@ const activateExtension = async (extension, absolutePath, activationEvent) => {
4103
4102
  const endTime = performance.now();
4104
4103
  const time = endTime - startTime;
4105
4104
  update(extensionId, {
4106
- status: Activated,
4107
- activationStartTime: time
4105
+ activationStartTime: time,
4106
+ status: Activated
4108
4107
  });
4109
4108
  } catch (error) {
4110
4109
  if (isImportError(error)) {
@@ -4534,12 +4533,11 @@ replaceTraps(oldTraps => ({
4534
4533
  }));
4535
4534
 
4536
4535
  const state$4 = {
4537
- dbVersion: 1,
4538
4536
  /**
4539
4537
  * @type {any}
4540
4538
  */
4541
- cachedDb: undefined
4542
- };
4539
+ cachedDb: undefined,
4540
+ dbVersion: 1};
4543
4541
 
4544
4542
  const storeId = 'lvce-keyvalue';
4545
4543
 
@@ -4561,8 +4559,7 @@ const getDb$1 = async () => {
4561
4559
  // TODO high memory usage in idb because of transactionDoneMap
4562
4560
 
4563
4561
  const state$3 = {
4564
- cachedDb: undefined
4565
- };
4562
+ cachedDb: undefined};
4566
4563
  const getDbMemoized$1 = async () => {
4567
4564
  state$3.cachedDb ||= await getDb$1();
4568
4565
  return state$3.cachedDb;
@@ -4650,10 +4647,10 @@ const get = key => {
4650
4647
 
4651
4648
  const getCacheFn = config => {
4652
4649
  switch (config) {
4653
- case 'localStorage':
4654
- return GetColorThemeCssCachedLocalStorage;
4655
4650
  case 'indexedDb':
4656
4651
  return GetColorThemeCssCachedIndexedDb;
4652
+ case 'localStorage':
4653
+ return GetColorThemeCssCachedLocalStorage;
4657
4654
  default:
4658
4655
  return GetColorThemeCssCachedNoop;
4659
4656
  }
@@ -4831,21 +4828,21 @@ const create = () => {
4831
4828
  };
4832
4829
 
4833
4830
  const iframeWorkerCommandMap = {
4831
+ 'ExtensionHostManagement.activateByEvent': (...args) => invoke$1('ExtensionHostManagement.activateByEvent', ...args),
4834
4832
  'WebView.compatExtensionHostWorkerInvoke': (...args) => invoke$1('WebView.compatExtensionHostWorkerInvoke', ...args),
4835
4833
  'WebView.compatExtensionHostWorkerInvokeAndTransfer': (...args) => invokeAndTransfer$1('WebView.compatExtensionHostWorkerInvokeAndTransfer', ...args),
4836
4834
  'WebView.compatRendererProcessInvoke': (...args) => invoke$1('WebView.compatRendererProcessInvoke', ...args),
4837
4835
  'WebView.compatRendererProcessInvokeAndTransfer': (...args) => invokeAndTransfer$1('WebView.compatRendererProcessInvokeAndTransfer', ...args),
4838
4836
  // @ts-ignore
4839
- 'WebView.compatRendererWorkerInvokeAndTransfer': (...args) => invokeAndTransfer$1(...args),
4840
- // @ts-ignore
4841
4837
  'WebView.compatRendererWorkerInvoke': (...args) => invoke$1(...args),
4838
+ // @ts-ignore
4839
+ 'WebView.compatRendererWorkerInvokeAndTransfer': (...args) => invokeAndTransfer$1(...args),
4842
4840
  'WebView.compatSharedProcessInvoke': (...args) => invoke$1('WebView.compatSharedProcessInvoke', ...args),
4841
+ 'WebView.getRemoteUrl': options => getRemoteUrlForWebView(options.uri, options),
4843
4842
  'WebView.getSavedState': (...args) => invoke$1('WebView.getSavedState', ...args),
4844
4843
  'WebView.getWebViewInfo': (...args) => invoke$1('WebView.getWebViewInfo', ...args),
4845
4844
  'WebView.getWebViews': (...args) => invoke$1('WebView.getWebViews', ...args),
4846
- 'WebView.setPort': (...args) => invoke$1('WebView.setPort', ...args),
4847
- 'ExtensionHostManagement.activateByEvent': (...args) => invoke$1('ExtensionHostManagement.activateByEvent', ...args),
4848
- 'WebView.getRemoteUrl': options => getRemoteUrlForWebView(options.uri, options)
4845
+ 'WebView.setPort': (...args) => invoke$1('WebView.setPort', ...args)
4849
4846
  };
4850
4847
 
4851
4848
  const launchIframeWorker = async () => {
@@ -4853,11 +4850,11 @@ const launchIframeWorker = async () => {
4853
4850
  const name = 'Iframe Worker';
4854
4851
  const id = create();
4855
4852
  const rpc = await create$2({
4853
+ commandMap: iframeWorkerCommandMap,
4854
+ id,
4856
4855
  method: ModuleWorkerAndWorkaroundForChromeDevtoolsBug$1,
4857
4856
  name,
4858
- url: configuredWorkerUrl,
4859
- id,
4860
- commandMap: iframeWorkerCommandMap
4857
+ url: configuredWorkerUrl
4861
4858
  });
4862
4859
  return rpc;
4863
4860
  };
@@ -4882,22 +4879,22 @@ const invokeAndTransfer = async (method, ...params) => {
4882
4879
  };
4883
4880
 
4884
4881
  const createWebView3 = async ({
4882
+ assetDir,
4885
4883
  id,
4886
- uri,
4887
4884
  isGitpod,
4888
4885
  platform,
4889
- assetDir,
4890
- webViewScheme,
4891
- useNewWebViewHandler
4886
+ uri,
4887
+ useNewWebViewHandler,
4888
+ webViewScheme
4892
4889
  }) => {
4893
4890
  await invoke('WebView.create3', {
4891
+ assetDir,
4894
4892
  id,
4895
- uri,
4896
4893
  isGitpod,
4897
4894
  platform,
4898
- assetDir,
4899
- webViewScheme,
4900
- useNewWebViewHandler
4895
+ uri,
4896
+ useNewWebViewHandler,
4897
+ webViewScheme
4901
4898
  });
4902
4899
  };
4903
4900
 
@@ -4912,10 +4909,10 @@ const createWebViewWorkerRpc2 = async (rpcInfo, port) => {
4912
4909
  // host subworker doesn't need to import the other file
4913
4910
  await invokeAndTransfer$1('IpcParent.create', {
4914
4911
  method: ModuleWorkerAndWorkaroundForChromeDevtoolsBug,
4915
- url: rpcInfo.url,
4916
4912
  name: rpcInfo.name,
4913
+ port,
4917
4914
  raw: true,
4918
- port
4915
+ url: rpcInfo.url
4919
4916
  });
4920
4917
  };
4921
4918
 
@@ -4933,10 +4930,10 @@ const createWebViewWorkerRpc = async (rpcInfo, port) => {
4933
4930
  // host subworker doesn't need to import the other file
4934
4931
  await invokeAndTransfer$1('IpcParent.create', {
4935
4932
  method: ModuleWorkerAndWorkaroundForChromeDevtoolsBug,
4936
- url: extensionHostSubWorkerUrl,
4937
4933
  name: rpcInfo.name,
4934
+ port,
4938
4935
  raw: true,
4939
- port
4936
+ url: extensionHostSubWorkerUrl
4940
4937
  });
4941
4938
  };
4942
4939
 
@@ -4977,6 +4974,7 @@ const SourceControlDiscard = 'ExtensionHostSourceControl.discard';
4977
4974
  const SourceControlGetChangedFiles = 'ExtensionHost.sourceControlGetChangedFiles';
4978
4975
  const SourceControlGetEnabledProviderIds = 'ExtensionHostSourceControl.getEnabledProviderIds';
4979
4976
  const SourceControlGetFileBefore = 'ExtensionHostSourceControl.GetFileBefore';
4977
+ const SourceControlGetFileBefore2 = 'ExtensionHostSourceControl.getFileBefore';
4980
4978
  const SourceControlGetGroups = 'ExtensionHostSourceControl.getGroups';
4981
4979
  const SourceControlGetFileDecorations = 'ExtensionHostSourceControl.getFileDecorations';
4982
4980
  const StatusBarGetStatusBarItems = 'ExtensionHost.getStatusBarItems';
@@ -5008,17 +5006,17 @@ const mockExec = () => {
5008
5006
  api.exec = async (command, args, options) => {
5009
5007
  const result = await invoke$1('Test.executeMockExecFunction', command, args, options);
5010
5008
  const {
5011
- stdout,
5009
+ exitCode,
5012
5010
  stderr,
5013
- exitCode
5011
+ stdout
5014
5012
  } = result;
5015
5013
  if (exitCode !== 0) {
5016
5014
  throw new ExecError(command, args, stdout, stderr, exitCode);
5017
5015
  }
5018
5016
  return {
5019
- stdout,
5017
+ exitCode,
5020
5018
  stderr,
5021
- exitCode
5019
+ stdout
5022
5020
  };
5023
5021
  };
5024
5022
  } catch (error) {
@@ -5126,13 +5124,13 @@ const readDirWithFileTypes$1 = async uri => {
5126
5124
  continue;
5127
5125
  }
5128
5126
  dirents.push({
5129
- type: Directory$1,
5130
- name
5127
+ name,
5128
+ type: Directory$1
5131
5129
  });
5132
5130
  } else {
5133
5131
  dirents.push({
5134
- type: File$1,
5135
- name: rest
5132
+ name: rest,
5133
+ type: File$1
5136
5134
  });
5137
5135
  }
5138
5136
  }
@@ -5184,29 +5182,29 @@ const VideoWebm = 'video/webm';
5184
5182
 
5185
5183
  const getMimeType = fileExtension => {
5186
5184
  switch (fileExtension) {
5187
- case '.html':
5188
- return TextHtml;
5189
5185
  case '.css':
5190
5186
  return TextCss;
5191
- case '.ttf':
5192
- return FontTtf;
5187
+ case '.html':
5188
+ return TextHtml;
5193
5189
  case '.js':
5194
5190
  case '.mjs':
5195
5191
  case '.ts':
5196
5192
  return TextJavaScript;
5197
- case '.svg':
5198
- return ImageSvgXml;
5199
- case '.png':
5200
- return ImagePng;
5201
5193
  case '.json':
5202
5194
  case '.map':
5203
5195
  return ApplicationJson;
5204
5196
  case '.mp3':
5205
5197
  return AudioMpeg;
5206
- case '.webm':
5207
- return VideoWebm;
5198
+ case '.png':
5199
+ return ImagePng;
5200
+ case '.svg':
5201
+ return ImageSvgXml;
5202
+ case '.ttf':
5203
+ return FontTtf;
5208
5204
  case '.txt':
5209
5205
  return TextPlain;
5206
+ case '.webm':
5207
+ return VideoWebm;
5210
5208
  default:
5211
5209
  return '';
5212
5210
  }
@@ -5268,8 +5266,8 @@ const ensureParentDir = uri => {
5268
5266
  while (endIndex >= 0) {
5269
5267
  const part = uri.slice(startIndex, endIndex + 1);
5270
5268
  setDirent(part, {
5271
- type: Directory$1,
5272
- content: ''
5269
+ content: '',
5270
+ type: Directory$1
5273
5271
  });
5274
5272
  endIndex = uri.indexOf(Slash, endIndex + 1);
5275
5273
  }
@@ -5283,8 +5281,8 @@ const writeFile = (uri, content) => {
5283
5281
  } else {
5284
5282
  ensureParentDir(uri);
5285
5283
  setDirent(uri, {
5286
- type: File$1,
5287
- content
5284
+ content,
5285
+ type: File$1
5288
5286
  });
5289
5287
  }
5290
5288
  };
@@ -5294,8 +5292,8 @@ const mkdir = uri => {
5294
5292
  }
5295
5293
  ensureParentDir(uri);
5296
5294
  setDirent(uri, {
5297
- type: Directory$1,
5298
- content: ''
5295
+ content: '',
5296
+ type: Directory$1
5299
5297
  });
5300
5298
  };
5301
5299
  const remove = uri => {
@@ -5327,8 +5325,8 @@ const renameDirectory = (oldUri, newUri) => {
5327
5325
  }
5328
5326
  ensureParentDir(newUri);
5329
5327
  setDirent(newUri, {
5330
- type: Directory$1,
5331
- content: ''
5328
+ content: '',
5329
+ type: Directory$1
5332
5330
  });
5333
5331
  const allFiles = getAll();
5334
5332
  for (const [key, value] of Object.entries(allFiles)) {
@@ -5362,18 +5360,18 @@ const readDirWithFileTypes = uri => {
5362
5360
  case Directory$1:
5363
5361
  if (!key.slice(0, -1).includes(Slash, uri.length) && key !== `${uri}/` && key !== uri) {
5364
5362
  dirents.push({
5363
+ name: key.slice(uri.length, -1),
5365
5364
  // @ts-ignore
5366
- type: value.type,
5367
- name: key.slice(uri.length, -1)
5365
+ type: value.type
5368
5366
  });
5369
5367
  }
5370
5368
  break;
5371
5369
  case File$1:
5372
5370
  if (!key.includes(Slash, uri.length + 1)) {
5373
5371
  dirents.push({
5372
+ name: key.slice(uri.length),
5374
5373
  // @ts-ignore
5375
- type: value.type,
5376
- name: key.slice(uri.length)
5374
+ type: value.type
5377
5375
  });
5378
5376
  }
5379
5377
  break;
@@ -5457,8 +5455,8 @@ const getIconThemeJson$1 = async iconThemeId => {
5457
5455
  const url = getIconThemeUrl(iconThemeId);
5458
5456
  const json = await getJson(url);
5459
5457
  return {
5460
- json,
5461
- extensionPath: `${assetDir}/extensions/builtin.${iconThemeId}`
5458
+ extensionPath: `${assetDir}/extensions/builtin.${iconThemeId}`,
5459
+ json
5462
5460
  };
5463
5461
  }
5464
5462
  for (const webExtension of state$9.webExtensions) {
@@ -5468,8 +5466,8 @@ const getIconThemeJson$1 = async iconThemeId => {
5468
5466
  const iconThemeUrl = `${webExtension.path}/${iconTheme.path}`;
5469
5467
  const json = await getJson(iconThemeUrl);
5470
5468
  return {
5471
- json,
5472
- extensionPath: webExtension.path
5469
+ extensionPath: webExtension.path,
5470
+ json
5473
5471
  };
5474
5472
  }
5475
5473
  }
@@ -5500,15 +5498,15 @@ const getRpcInfo = rpcId => {
5500
5498
  };
5501
5499
 
5502
5500
  const emptyStatus = {
5503
- status: None,
5504
- id: '',
5501
+ activationEndTime: 0,
5505
5502
  activationEvent: '',
5506
5503
  activationStartTime: 0,
5507
- activationEndTime: 0,
5508
5504
  activationTime: 0,
5505
+ id: '',
5509
5506
  importEndTime: 0,
5510
5507
  importStartTime: 0,
5511
- importTime: 0
5508
+ importTime: 0,
5509
+ status: None
5512
5510
  };
5513
5511
  const getRuntimeStatus = extensionId => {
5514
5512
  return get$5(extensionId) || emptyStatus;
@@ -5541,8 +5539,8 @@ const getWebViewsFromExtensions = extensions => {
5541
5539
  webViews.push({
5542
5540
  ...webView,
5543
5541
  path,
5544
- uri,
5545
- remotePath
5542
+ remotePath,
5543
+ uri
5546
5544
  });
5547
5545
  }
5548
5546
  }
@@ -5564,8 +5562,8 @@ const handleBeforeUnload = () => {
5564
5562
 
5565
5563
  const handleMessagePort2 = async (port, rpcId) => {
5566
5564
  const rpc = await PlainMessagePortRpcParent.create({
5567
- messagePort: port,
5568
- commandMap: {}
5565
+ commandMap: {},
5566
+ messagePort: port
5569
5567
  });
5570
5568
  if (rpcId) {
5571
5569
  set$c(rpcId, rpc);
@@ -5574,8 +5572,8 @@ const handleMessagePort2 = async (port, rpcId) => {
5574
5572
 
5575
5573
  const handleMessagePort = async (port, rpcId) => {
5576
5574
  const rpc = await MessagePortRpcClient.create({
5577
- messagePort: port,
5578
- commandMap: {}
5575
+ commandMap: {},
5576
+ messagePort: port
5579
5577
  });
5580
5578
  if (rpcId) {
5581
5579
  set$c(rpcId, rpc);
@@ -5589,14 +5587,14 @@ const handleIconThemeChange = async () => {
5589
5587
  const initialIconTheme = undefined;
5590
5588
 
5591
5589
  const state = {
5592
- seenFiles: [],
5593
- seenFolders: [],
5590
+ extensionPath: '',
5594
5591
  hasWarned: [],
5595
5592
  /**
5596
5593
  * @type{any}
5597
5594
  */
5598
5595
  iconTheme: initialIconTheme,
5599
- extensionPath: ''
5596
+ seenFiles: [],
5597
+ seenFolders: []
5600
5598
  };
5601
5599
  const setTheme = iconTheme => {
5602
5600
  state.iconTheme = iconTheme.json;
@@ -5628,15 +5626,15 @@ const importExtension = async (extensionId, absolutePath, activationEvent) => {
5628
5626
  string(absolutePath);
5629
5627
  const startTime = performance.now();
5630
5628
  set$4({
5629
+ activationEndTime: 0,
5631
5630
  activationEvent: activationEvent,
5632
- id: extensionId,
5633
5631
  activationStartTime: performance.now(),
5634
- status: Importing,
5635
- activationEndTime: 0,
5636
5632
  activationTime: 0,
5637
- importStartTime: startTime,
5633
+ id: extensionId,
5638
5634
  importEndTime: 0,
5639
- importTime: 0
5635
+ importStartTime: startTime,
5636
+ importTime: 0,
5637
+ status: Importing
5640
5638
  });
5641
5639
  try {
5642
5640
  const module = await importScript(absolutePath);
@@ -5805,8 +5803,8 @@ const serializeWebView = async webView => {
5805
5803
  if (webView && webView.provider && webView.provider.saveState) {
5806
5804
  const saved = await webView.provider.saveState();
5807
5805
  return {
5808
- uri: webView.uri,
5809
- state: saved
5806
+ state: saved,
5807
+ uri: webView.uri
5810
5808
  };
5811
5809
  }
5812
5810
  return undefined;
@@ -5980,11 +5978,11 @@ const getLineMatchRegex = (line, lineNumber, query, matchCase) => {
5980
5978
  const match = line.match(regex);
5981
5979
  if (match && typeof match.index === 'number') {
5982
5980
  return [{
5983
- type: Match,
5984
- text: line,
5985
- start: match.index,
5986
5981
  end: match.index + match[0].length,
5987
- lineNumber
5982
+ lineNumber,
5983
+ start: match.index,
5984
+ text: line,
5985
+ type: Match
5988
5986
  }];
5989
5987
  }
5990
5988
  return [];
@@ -6010,11 +6008,11 @@ const getLineMatchText = (line, lineNumber, query, queryLower, matchCase, matchW
6010
6008
  return [];
6011
6009
  }
6012
6010
  return [{
6013
- type: Match,
6014
- text: line,
6015
- start: index,
6016
6011
  end: index + query.length,
6017
- lineNumber
6012
+ lineNumber,
6013
+ start: index,
6014
+ text: line,
6015
+ type: Match
6018
6016
  }];
6019
6017
  };
6020
6018
 
@@ -6043,11 +6041,11 @@ const textSearchInText = (file, content, query, flags = 0) => {
6043
6041
  const results = lines.flatMap((line, i) => getLineMatch(line, i, query, queryLower, useRegularExpression, matchCase, matchWholeWord));
6044
6042
  if (results.length > 0) {
6045
6043
  return [{
6046
- type: File$3,
6047
- text: file,
6048
- start: 0,
6049
6044
  end: 0,
6050
- lineNumber: 0
6045
+ lineNumber: 0,
6046
+ start: 0,
6047
+ text: file,
6048
+ type: File$3
6051
6049
  }, ...results];
6052
6050
  }
6053
6051
  return results;
@@ -6177,8 +6175,8 @@ const textSearch2 = async (scheme, root, query, options, assetDir) => {
6177
6175
  }
6178
6176
  }
6179
6177
  return {
6180
- results: options.limit ? allResults.slice(0, options.limit) : allResults,
6181
- limitHit: allResults.length > options.limit
6178
+ limitHit: allResults.length > options.limit,
6179
+ results: options.limit ? allResults.slice(0, options.limit) : allResults
6182
6180
  };
6183
6181
  };
6184
6182
 
@@ -6200,6 +6198,51 @@ const commandMap = {
6200
6198
  'ExtensionHost.getRuntimeStatus': getRuntimeStatus,
6201
6199
  'ExtensionHost.importExtension': importExtension,
6202
6200
  'ExtensionHost.launchIframeWorker': launchIframeWorker,
6201
+ [BraceCompletionExecuteBraceCompletionProvider]: executeBraceCompletionProvider,
6202
+ [ClosingTagExecuteClosingTagProvider]: executeClosingTagProvider,
6203
+ [CommandExecute]: executeCommand,
6204
+ [CommentProviderExecute]: executeCommentProvider,
6205
+ [CompletionExecute]: executeCompletionProvider,
6206
+ [CompletionResolveExecute]: executeresolveCompletionItemProvider,
6207
+ [ConfigurationSetConfiguration]: setConfigurations,
6208
+ [DefinitionExecuteDefinitionProvider]: executeDefinitionProvider,
6209
+ [DiagnosticExecuteDiagnosticProvider]: executeDiagnosticProvider,
6210
+ [ExtensionActivate]: activateExtension,
6211
+ [FileSystemGetPathSeparator]: getPathSeparator,
6212
+ [FileSystemMkdir]: mkdir$2,
6213
+ [FileSystemReadDirWithFileTypes]: readDirWithFileTypes$2,
6214
+ [FileSystemReadFile]: readFile$2,
6215
+ [FileSystemRemove]: remove$3,
6216
+ [FileSystemRename]: rename$1,
6217
+ [FileSystemWriteFile]: writeFile$3,
6218
+ [FormattingExecuteFormmattingProvider]: executeFormattingProvider,
6219
+ [HoverExecute]: executeHoverProvider,
6220
+ [ImplementationExecuteImplementationProvider]: executeImplementationProvider,
6221
+ [MockExec]: mockExec,
6222
+ [MockRpc]: mockRpc,
6223
+ [OrganizeImportsExecute]: executeOrganizeImports,
6224
+ [ReferenceExecuteFileReferenceProvider]: executefileReferenceProvider,
6225
+ [ReferenceExecuteReferenceProvider]: executeReferenceProvider,
6226
+ [ReferenceExecuteReferenceProvider2]: executeReferenceProvider2,
6227
+ [SelectionExecuteSelectionProvider]: executeSelectionProvider,
6228
+ [SourceControlAcceptInput]: acceptInput,
6229
+ [SourceControlAdd]: add,
6230
+ [SourceControlDiscard]: discard,
6231
+ [SourceControlGetChangedFiles]: getChangedFiles,
6232
+ [SourceControlGetEnabledProviderIds]: getEnabledProviderIds,
6233
+ [SourceControlGetFileBefore]: getFileBefore,
6234
+ [SourceControlGetFileBefore2]: getFileBefore,
6235
+ [SourceControlGetFileDecorations]: getFileDecorations,
6236
+ [SourceControlGetGroups]: getGroups,
6237
+ [StatusBarGetStatusBarItems]: getStatusBarItems,
6238
+ [StatusBarRegisterChangeListener]: registerChangeListener,
6239
+ [TabCompletionExecuteTabCompletionProvider]: executeTabCompletionProvider,
6240
+ [TextDocumentSetLanguageId]: setLanguageId,
6241
+ [TextDocumentSyncFull]: syncFull,
6242
+ [TextDocumentSyncIncremental]: syncIncremental,
6243
+ [TextSearchExecuteTextSearchProvider]: executeTextSearchProvider,
6244
+ [TypeDefinitionExecuteTypeDefinitionProvider]: executeTypeDefinitionProvider,
6245
+ [WorkspaceSetPath]: setWorkspacePath,
6203
6246
  'ExtensionHostDebug.evaluate': evaluate,
6204
6247
  'ExtensionHostDebug.getCallStack': getCallStack,
6205
6248
  'ExtensionHostDebug.getPausedStatus': getPausedStatus,
@@ -6230,17 +6273,16 @@ const commandMap = {
6230
6273
  'Extensions.getExtensions': getExtensions,
6231
6274
  'Extensions.invalidateExtensionsCache': invalidateExtensionsCache,
6232
6275
  'FileSystemFetch.chmod': chmod$1,
6276
+ 'FileSystemFetch.exists': exists$1,
6233
6277
  'FileSystemFetch.getBlob': getBlob$1,
6234
6278
  'FileSystemFetch.mkdir': mkdir$1,
6235
6279
  'FileSystemFetch.readDirWithFileTypes': readDirWithFileTypes$1,
6236
6280
  'FileSystemFetch.readFile': readFile$1,
6237
6281
  'FileSystemFetch.remove': remove$2,
6238
- 'FileSystemFetch.exists': exists$1,
6239
6282
  'FileSystemFetch.writeFile': writeFile$1,
6240
6283
  'FileSystemMemory.chmod': chmod,
6241
6284
  'FileSystemMemory.copy': copy,
6242
6285
  'FileSystemMemory.exists': exists,
6243
- 'FileSystemMemory.stat': stat,
6244
6286
  'FileSystemMemory.getBlob': getBlob,
6245
6287
  'FileSystemMemory.getBlobUrl': getBlobUrl,
6246
6288
  'FileSystemMemory.getFiles': getFiles,
@@ -6249,6 +6291,7 @@ const commandMap = {
6249
6291
  'FileSystemMemory.readFile': readFile,
6250
6292
  'FileSystemMemory.remove': remove,
6251
6293
  'FileSystemMemory.rename': rename,
6294
+ 'FileSystemMemory.stat': stat,
6252
6295
  'FileSystemMemory.writeFile': writeFile,
6253
6296
  'HandleBeforeUnload.handleBeforeUnload': handleBeforeUnload,
6254
6297
  'HandleMessagePort.handleMessagePort': handleMessagePort,
@@ -6280,51 +6323,7 @@ const commandMap = {
6280
6323
  'WebView.getRpcInfo': getRpcInfo,
6281
6324
  'WebView.registerInterceptor': registerInterceptor,
6282
6325
  'WebView.unregisterInterceptor': unregisterInterceptor,
6283
- 'WebViews.getWebViews': getWebViews,
6284
- [BraceCompletionExecuteBraceCompletionProvider]: executeBraceCompletionProvider,
6285
- [ClosingTagExecuteClosingTagProvider]: executeClosingTagProvider,
6286
- [CommandExecute]: executeCommand,
6287
- [CompletionExecute]: executeCompletionProvider,
6288
- [CommentProviderExecute]: executeCommentProvider,
6289
- [CompletionResolveExecute]: executeresolveCompletionItemProvider,
6290
- [ConfigurationSetConfiguration]: setConfigurations,
6291
- [DefinitionExecuteDefinitionProvider]: executeDefinitionProvider,
6292
- [DiagnosticExecuteDiagnosticProvider]: executeDiagnosticProvider,
6293
- [ExtensionActivate]: activateExtension,
6294
- [FileSystemGetPathSeparator]: getPathSeparator,
6295
- [FileSystemReadDirWithFileTypes]: readDirWithFileTypes$2,
6296
- [FileSystemReadFile]: readFile$2,
6297
- [FileSystemRename]: rename$1,
6298
- [FileSystemWriteFile]: writeFile$3,
6299
- [FileSystemRemove]: remove$3,
6300
- [FileSystemMkdir]: mkdir$2,
6301
- [FormattingExecuteFormmattingProvider]: executeFormattingProvider,
6302
- [HoverExecute]: executeHoverProvider,
6303
- [ImplementationExecuteImplementationProvider]: executeImplementationProvider,
6304
- [MockExec]: mockExec,
6305
- [MockRpc]: mockRpc,
6306
- [OrganizeImportsExecute]: executeOrganizeImports,
6307
- [ReferenceExecuteFileReferenceProvider]: executefileReferenceProvider,
6308
- [ReferenceExecuteReferenceProvider]: executeReferenceProvider,
6309
- [ReferenceExecuteReferenceProvider2]: executeReferenceProvider2,
6310
- [SelectionExecuteSelectionProvider]: executeSelectionProvider,
6311
- [SourceControlAcceptInput]: acceptInput,
6312
- [SourceControlAdd]: add,
6313
- [SourceControlDiscard]: discard,
6314
- [SourceControlGetChangedFiles]: getChangedFiles,
6315
- [SourceControlGetEnabledProviderIds]: getEnabledProviderIds,
6316
- [SourceControlGetFileBefore]: getFileBefore,
6317
- [SourceControlGetGroups]: getGroups,
6318
- [SourceControlGetFileDecorations]: getFileDecorations,
6319
- [StatusBarGetStatusBarItems]: getStatusBarItems,
6320
- [StatusBarRegisterChangeListener]: registerChangeListener,
6321
- [TabCompletionExecuteTabCompletionProvider]: executeTabCompletionProvider,
6322
- [TextDocumentSetLanguageId]: setLanguageId,
6323
- [TextDocumentSyncFull]: syncFull,
6324
- [TextDocumentSyncIncremental]: syncIncremental,
6325
- [TextSearchExecuteTextSearchProvider]: executeTextSearchProvider,
6326
- [TypeDefinitionExecuteTypeDefinitionProvider]: executeTypeDefinitionProvider,
6327
- [WorkspaceSetPath]: setWorkspacePath
6326
+ 'WebViews.getWebViews': getWebViews
6328
6327
  };
6329
6328
 
6330
6329
  const listen = async () => {