@lvce-editor/renderer-process 29.4.0 → 30.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.
@@ -146,7 +146,7 @@ const getSelectionText = () => {
146
146
  const warn$1 = (...args) => {
147
147
  console.warn(...args);
148
148
  };
149
- const error = (...args) => {
149
+ const error$1 = (...args) => {
150
150
  console.error(...args);
151
151
  };
152
152
  const info = (...args) => {
@@ -3370,16 +3370,36 @@ const has = name => {
3370
3370
 
3371
3371
  const commandMapRef = {};
3372
3372
 
3373
+ const success = value => {
3374
+ return {
3375
+ ok: true,
3376
+ value
3377
+ };
3378
+ };
3379
+ const error = error => {
3380
+ return {
3381
+ error,
3382
+ ok: false
3383
+ };
3384
+ };
3385
+ const isError = result => {
3386
+ return !result.ok;
3387
+ };
3388
+
3373
3389
  const launchWorker = async ({
3374
3390
  name,
3375
3391
  url
3376
3392
  }) => {
3377
- const rpc = await create$B({
3378
- commandMap: commandMapRef,
3379
- name,
3380
- url
3381
- });
3382
- return rpc;
3393
+ try {
3394
+ const rpc = await create$B({
3395
+ commandMap: commandMapRef,
3396
+ name,
3397
+ url
3398
+ });
3399
+ return success(rpc);
3400
+ } catch (error$1) {
3401
+ return error(error$1);
3402
+ }
3383
3403
  };
3384
3404
 
3385
3405
  const getAssetDir = () => {
@@ -3439,15 +3459,18 @@ const state$7 = {
3439
3459
  rpc: undefined
3440
3460
  };
3441
3461
  const hydrate$3 = async () => {
3442
- const rpc = await launchRendererWorker();
3443
- // @ts-expect-error
3444
- state$7.rpc = rpc;
3462
+ const result = await launchRendererWorker();
3463
+ if (isError(result)) {
3464
+ state$7.rpc = undefined;
3465
+ return result;
3466
+ }
3467
+ state$7.rpc = result.value;
3468
+ return success(undefined);
3445
3469
  };
3446
3470
 
3447
3471
  // TODO needed?
3448
3472
  const dispose$j = () => {
3449
3473
  if (state$7.rpc) {
3450
- // @ts-expect-error
3451
3474
  state$7.rpc.dispose();
3452
3475
  }
3453
3476
  };
@@ -8797,6 +8820,7 @@ const appendViewlet = (parentId, childId, focus) => {
8797
8820
  if (focus && childInstance.factory.focus) {
8798
8821
  childInstance.factory.focus(childInstance.state);
8799
8822
  }
8823
+ applyLateFocusMaybe();
8800
8824
  };
8801
8825
  const ariaAnnounce = async message => {
8802
8826
  const AriaAlert$1 = await Promise.resolve().then(function () { return AriaAlert; });
@@ -9269,154 +9293,6 @@ const commandMap = {
9269
9293
  'WindowTitle.set': set$1
9270
9294
  };
9271
9295
 
9272
- const getConfiguredEditorWorkerUrl = () => {
9273
- return getConfiguredWorkerUrl('editorWorkerUrl');
9274
- };
9275
-
9276
- const editorWorkerUrl = getConfiguredEditorWorkerUrl() || `${assetDir}/packages/renderer-worker/node_modules/@lvce-editor/editor-worker/dist/editorWorkerMain.js`;
9277
-
9278
- const launchEditorWorker = async port => {
9279
- const ipc = await create$w({
9280
- method: ModuleWorkerWithMessagePort,
9281
- name: 'Editor Worker',
9282
- port,
9283
- url: editorWorkerUrl
9284
- });
9285
- return ipc;
9286
- };
9287
-
9288
- const hydrate$2 = async () => {
9289
- const {
9290
- port1,
9291
- port2
9292
- } = new MessageChannel();
9293
- // TODO only launch port and send to renderer worker
9294
- const promise = launchEditorWorker(port1);
9295
- set$7('Editor Worker', port2);
9296
- await promise;
9297
- };
9298
-
9299
- const getConfiguredExtensionHostWorkerUrl = () => {
9300
- return getConfiguredWorkerUrl('extensionHostWorkerUrl');
9301
- };
9302
-
9303
- const extensionHostWorkerUrl = getConfiguredExtensionHostWorkerUrl() || `${assetDir}/packages/renderer-worker/node_modules/@lvce-editor/extension-host-worker/dist/extensionHostWorkerMain.js`;
9304
-
9305
- const launchExtensionHostWorker = async port => {
9306
- const name = isElectron ? 'Extension Host (Electron)' : 'Extension Host';
9307
- const ipc = await create$w({
9308
- method: ModuleWorkerWithMessagePort,
9309
- name,
9310
- port,
9311
- url: extensionHostWorkerUrl
9312
- });
9313
- return ipc;
9314
- };
9315
-
9316
- const hydrate$1 = async () => {
9317
- const {
9318
- port1,
9319
- port2
9320
- } = new MessageChannel();
9321
- // TODO only launch port and send to renderer worker
9322
- const promise = launchExtensionHostWorker(port1);
9323
- const name = isElectron ? 'Extension Host (Electron)' : 'Extension Host';
9324
- set$7(name, port2);
9325
- await promise;
9326
- };
9327
-
9328
- const getConfiguredSyntaxHighlightingWorkerUrl = () => {
9329
- return getConfiguredWorkerUrl('syntaxHighlightingWorkerUrl');
9330
- };
9331
-
9332
- const syntaxHighlightingWorkerUrl = getConfiguredSyntaxHighlightingWorkerUrl() || `${assetDir}/packages/renderer-worker/node_modules/@lvce-editor/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js`;
9333
-
9334
- const launchSyntaxHighlightingWorker = async port => {
9335
- const ipc = await create$w({
9336
- method: ModuleWorkerWithMessagePort,
9337
- name: 'Syntax Highlighting Worker',
9338
- port,
9339
- url: syntaxHighlightingWorkerUrl
9340
- });
9341
- return ipc;
9342
- };
9343
-
9344
- const hydrate = async () => {
9345
- const {
9346
- port1,
9347
- port2
9348
- } = new MessageChannel();
9349
- // TODO only launch port and send to renderer worker
9350
- const promise = launchSyntaxHighlightingWorker(port1);
9351
- set$7('Syntax Highlighting Worker', port2);
9352
- await promise;
9353
- };
9354
-
9355
- const workerFns = [hydrate$3, hydrate$2, hydrate, hydrate$1];
9356
- const call = fn => {
9357
- return fn();
9358
- };
9359
- const launchWorkers = () => {
9360
- {
9361
- return Promise.all(workerFns.map(call));
9362
- }
9363
- };
9364
-
9365
- const handleFocusIn = event => {
9366
- preventDefault(event);
9367
- const uid = fromEvent(event);
9368
- handleFocusIn$4(uid);
9369
- };
9370
- const handleBlur$1 = event => {
9371
- const uid = fromEvent(event);
9372
- executeViewletCommand(uid, 'EditorRename.handleBlur');
9373
- };
9374
- const handleInput = event => {
9375
- const {
9376
- target
9377
- } = event;
9378
- const {
9379
- value
9380
- } = target;
9381
- const uid = fromEvent(event);
9382
- executeViewletCommand(uid, 'EditorRename.handleInput', value);
9383
- };
9384
-
9385
- const ViewletEditorRenameEvents = {
9386
- __proto__: null,
9387
- handleBlur: handleBlur$1,
9388
- handleFocusIn,
9389
- handleInput
9390
- };
9391
-
9392
- const setBounds = (state, x, y, width, height) => {
9393
- const {
9394
- $Viewlet
9395
- } = state;
9396
- setBounds$a($Viewlet, x, y, width, height);
9397
- applyUidWorkaround($Viewlet);
9398
- };
9399
- const appendWidget = state => {
9400
- const {
9401
- $Viewlet
9402
- } = state;
9403
- append$1($Viewlet);
9404
- };
9405
- const dispose$2 = state => {
9406
- remove$1(state.$Viewlet);
9407
- };
9408
-
9409
- const ViewletEditorRename = {
9410
- __proto__: null,
9411
- Events: ViewletEditorRenameEvents,
9412
- appendWidget,
9413
- dispose: dispose$2,
9414
- setBounds
9415
- };
9416
-
9417
- const handleContentSecurityPolicyViolation = event => {
9418
- };
9419
-
9420
9296
  const RE_AT = /^\s+at/;
9421
9297
  const RE_AT_PROMISE_INDEX = /^\s*at async Promise.all \(index \d+\)$/;
9422
9298
  const RE_OBJECT_AS = /^\s*at Object\.\w+ \[as ([\w.]+)]/;
@@ -9629,37 +9505,37 @@ const prepare = async error => {
9629
9505
  }
9630
9506
  return error;
9631
9507
  };
9632
- const print = (error$1, prefix = '') => {
9508
+ const print = (error, prefix = '') => {
9633
9509
  if (getIsFirefox()) {
9634
9510
  // Firefox does not support printing codeframe with error stack
9635
- if (error$1 && error$1._error) {
9636
- error(`${prefix}${error$1._error}`);
9511
+ if (error && error._error) {
9512
+ error$1(`${prefix}${error._error}`);
9637
9513
  return;
9638
9514
  }
9639
- error(`${prefix}${error$1}`);
9515
+ error$1(`${prefix}${error}`);
9640
9516
  return;
9641
9517
  }
9642
- if (error$1 && error$1.type && error$1.message && error$1.codeFrame) {
9643
- error(`${prefix}${error$1.type}: ${error$1.message}\n\n${error$1.codeFrame}\n\n${error$1.stack}`);
9518
+ if (error && error.type && error.message && error.codeFrame) {
9519
+ error$1(`${prefix}${error.type}: ${error.message}\n\n${error.codeFrame}\n\n${error.stack}`);
9644
9520
  return;
9645
9521
  }
9646
- if (error$1 && error$1.message && error$1.codeFrame) {
9647
- error(`${prefix}${error$1.message}\n\n${error$1.codeFrame}\n\n${error$1.stack}`);
9522
+ if (error && error.message && error.codeFrame) {
9523
+ error$1(`${prefix}${error.message}\n\n${error.codeFrame}\n\n${error.stack}`);
9648
9524
  return;
9649
9525
  }
9650
- if (error$1 && error$1.type && error$1.message) {
9651
- error(`${prefix}${error$1.type}: ${error$1.message}\n${error$1.stack}`);
9526
+ if (error && error.type && error.message) {
9527
+ error$1(`${prefix}${error.type}: ${error.message}\n${error.stack}`);
9652
9528
  return;
9653
9529
  }
9654
- if (error$1 && error$1.stack) {
9655
- error(`${prefix}${error$1.stack}`);
9530
+ if (error && error.stack) {
9531
+ error$1(`${prefix}${error.stack}`);
9656
9532
  return;
9657
9533
  }
9658
- if (error$1 === null) {
9659
- error(`${prefix}null`);
9534
+ if (error === null) {
9535
+ error$1(`${prefix}null`);
9660
9536
  return;
9661
9537
  }
9662
- error(`${prefix}${error$1}`);
9538
+ error$1(`${prefix}${error}`);
9663
9539
  };
9664
9540
  const getMessage = error => {
9665
9541
  if (error && error.type && error.message) {
@@ -9689,6 +9565,186 @@ const handleError = async (error, notify = true, prefix = '') => {
9689
9565
  }
9690
9566
  };
9691
9567
 
9568
+ const getConfiguredEditorWorkerUrl = () => {
9569
+ return getConfiguredWorkerUrl('editorWorkerUrl');
9570
+ };
9571
+
9572
+ const editorWorkerUrl = getConfiguredEditorWorkerUrl() || `${assetDir}/packages/renderer-worker/node_modules/@lvce-editor/editor-worker/dist/editorWorkerMain.js`;
9573
+
9574
+ const launchEditorWorker = async port => {
9575
+ try {
9576
+ await create$w({
9577
+ method: ModuleWorkerWithMessagePort,
9578
+ name: 'Editor Worker',
9579
+ port,
9580
+ url: editorWorkerUrl
9581
+ });
9582
+ return success(undefined);
9583
+ } catch (error$1) {
9584
+ return error(error$1);
9585
+ }
9586
+ };
9587
+
9588
+ const hydrate$2 = async () => {
9589
+ const {
9590
+ port1,
9591
+ port2
9592
+ } = new MessageChannel();
9593
+ // TODO only launch port and send to renderer worker
9594
+ const promise = launchEditorWorker(port1);
9595
+ set$7('Editor Worker', port2);
9596
+ const result = await promise;
9597
+ if (isError(result)) {
9598
+ remove$2('Editor Worker');
9599
+ return result;
9600
+ }
9601
+ return success(undefined);
9602
+ };
9603
+
9604
+ const getConfiguredExtensionHostWorkerUrl = () => {
9605
+ return getConfiguredWorkerUrl('extensionHostWorkerUrl');
9606
+ };
9607
+
9608
+ const extensionHostWorkerUrl = getConfiguredExtensionHostWorkerUrl() || `${assetDir}/packages/renderer-worker/node_modules/@lvce-editor/extension-host-worker/dist/extensionHostWorkerMain.js`;
9609
+
9610
+ const launchExtensionHostWorker = async port => {
9611
+ const name = isElectron ? 'Extension Host (Electron)' : 'Extension Host';
9612
+ try {
9613
+ await create$w({
9614
+ method: ModuleWorkerWithMessagePort,
9615
+ name,
9616
+ port,
9617
+ url: extensionHostWorkerUrl
9618
+ });
9619
+ return success(undefined);
9620
+ } catch (error$1) {
9621
+ return error(error$1);
9622
+ }
9623
+ };
9624
+
9625
+ const hydrate$1 = async () => {
9626
+ const {
9627
+ port1,
9628
+ port2
9629
+ } = new MessageChannel();
9630
+ // TODO only launch port and send to renderer worker
9631
+ const promise = launchExtensionHostWorker(port1);
9632
+ const name = isElectron ? 'Extension Host (Electron)' : 'Extension Host';
9633
+ set$7(name, port2);
9634
+ const result = await promise;
9635
+ if (isError(result)) {
9636
+ remove$2(name);
9637
+ return result;
9638
+ }
9639
+ return success(undefined);
9640
+ };
9641
+
9642
+ const getConfiguredSyntaxHighlightingWorkerUrl = () => {
9643
+ return getConfiguredWorkerUrl('syntaxHighlightingWorkerUrl');
9644
+ };
9645
+
9646
+ const syntaxHighlightingWorkerUrl = getConfiguredSyntaxHighlightingWorkerUrl() || `${assetDir}/packages/renderer-worker/node_modules/@lvce-editor/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js`;
9647
+
9648
+ const launchSyntaxHighlightingWorker = async port => {
9649
+ try {
9650
+ await create$w({
9651
+ method: ModuleWorkerWithMessagePort,
9652
+ name: 'Syntax Highlighting Worker',
9653
+ port,
9654
+ url: syntaxHighlightingWorkerUrl
9655
+ });
9656
+ return success(undefined);
9657
+ } catch (error$1) {
9658
+ return error(error$1);
9659
+ }
9660
+ };
9661
+
9662
+ const hydrate = async () => {
9663
+ const {
9664
+ port1,
9665
+ port2
9666
+ } = new MessageChannel();
9667
+ // TODO only launch port and send to renderer worker
9668
+ const promise = launchSyntaxHighlightingWorker(port1);
9669
+ set$7('Syntax Highlighting Worker', port2);
9670
+ const result = await promise;
9671
+ if (isError(result)) {
9672
+ remove$2('Syntax Highlighting Worker');
9673
+ return result;
9674
+ }
9675
+ return success(undefined);
9676
+ };
9677
+
9678
+ const workerFns = [hydrate$3, hydrate$2, hydrate, hydrate$1];
9679
+ const call = fn => {
9680
+ return fn();
9681
+ };
9682
+ const launchWorkers = async () => {
9683
+ {
9684
+ const results = await Promise.all(workerFns.map(call));
9685
+ const firstError = results.find(isError);
9686
+ if (firstError) {
9687
+ return firstError;
9688
+ }
9689
+ return success(undefined);
9690
+ }
9691
+ };
9692
+
9693
+ const handleFocusIn = event => {
9694
+ preventDefault(event);
9695
+ const uid = fromEvent(event);
9696
+ handleFocusIn$4(uid);
9697
+ };
9698
+ const handleBlur$1 = event => {
9699
+ const uid = fromEvent(event);
9700
+ executeViewletCommand(uid, 'EditorRename.handleBlur');
9701
+ };
9702
+ const handleInput = event => {
9703
+ const {
9704
+ target
9705
+ } = event;
9706
+ const {
9707
+ value
9708
+ } = target;
9709
+ const uid = fromEvent(event);
9710
+ executeViewletCommand(uid, 'EditorRename.handleInput', value);
9711
+ };
9712
+
9713
+ const ViewletEditorRenameEvents = {
9714
+ __proto__: null,
9715
+ handleBlur: handleBlur$1,
9716
+ handleFocusIn,
9717
+ handleInput
9718
+ };
9719
+
9720
+ const setBounds = (state, x, y, width, height) => {
9721
+ const {
9722
+ $Viewlet
9723
+ } = state;
9724
+ setBounds$a($Viewlet, x, y, width, height);
9725
+ applyUidWorkaround($Viewlet);
9726
+ };
9727
+ const appendWidget = state => {
9728
+ const {
9729
+ $Viewlet
9730
+ } = state;
9731
+ append$1($Viewlet);
9732
+ };
9733
+ const dispose$2 = state => {
9734
+ remove$1(state.$Viewlet);
9735
+ };
9736
+
9737
+ const ViewletEditorRename = {
9738
+ __proto__: null,
9739
+ Events: ViewletEditorRenameEvents,
9740
+ appendWidget,
9741
+ dispose: dispose$2,
9742
+ setBounds
9743
+ };
9744
+
9745
+ const handleContentSecurityPolicyViolation = event => {
9746
+ };
9747
+
9692
9748
  const isChromeExtensionError = error => {
9693
9749
  return String(error) === 'Script error.';
9694
9750
  };
@@ -9735,7 +9791,11 @@ const main = async () => {
9735
9791
  state$1.modules[FindWidget] = ViewletFindWidget;
9736
9792
  state$1.modules[TitleBar] = ViewletTitleBar;
9737
9793
  // TODO this is discovered very late
9738
- await launchWorkers();
9794
+ const launchWorkersResult = await launchWorkers();
9795
+ if (isError(launchWorkersResult)) {
9796
+ await handleError(launchWorkersResult.error, true);
9797
+ return;
9798
+ }
9739
9799
  setIpc(RendererWorker);
9740
9800
  };
9741
9801
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/renderer-process",
3
- "version": "29.4.0",
3
+ "version": "30.0.0",
4
4
  "keywords": [
5
5
  "lvce-editor",
6
6
  "renderer-process"