@theia/core 1.74.0-next.62 → 1.74.0-next.70

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.
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-application.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontend-application.d.ts","sourceRoot":"","sources":["../../src/browser/frontend-application.ts"],"names":[],"mappings":"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"}
@@ -197,14 +197,24 @@ let FrontendApplication = class FrontendApplication {
197
197
  async createDefaultLayout() {
198
198
  for (const contribution of this.contributions.getContributions()) {
199
199
  if (contribution.initializeLayout) {
200
- await this.measureContribution(contribution, 'initializeLayout', () => contribution.initializeLayout(this));
200
+ try {
201
+ await this.measureContribution(contribution, 'initializeLayout', () => contribution.initializeLayout(this));
202
+ }
203
+ catch (error) {
204
+ this.logger.error('Could not initialize the layout of contribution', error);
205
+ }
201
206
  }
202
207
  }
203
208
  }
204
209
  async fireOnDidInitializeLayout() {
205
210
  for (const contribution of this.contributions.getContributions()) {
206
211
  if (contribution.onDidInitializeLayout) {
207
- await this.measureContribution(contribution, 'onDidInitializeLayout', () => contribution.onDidInitializeLayout(this));
212
+ try {
213
+ await this.measureContribution(contribution, 'onDidInitializeLayout', () => contribution.onDidInitializeLayout(this));
214
+ }
215
+ catch (error) {
216
+ this.logger.error('Could not notify contribution of layout initialization', error);
217
+ }
208
218
  }
209
219
  }
210
220
  }
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-application.js","sourceRoot":"","sources":["../../src/browser/frontend-application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontend-application.js","sourceRoot":"","sources":["../../src/browser/frontend-application.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,yCAAsD;AACtD,sCAAuJ;AAEvJ,6CAAkD;AAClD,uCAAmC;AACnC,iEAA6D;AAC7D,yEAA0G;AAC1G,6EAA+E;AAC/E,uCAA4E;AAC5E,iEAA6D;AAC7D,4DAAwD;AACxD,uDAAmD;AACnD,2FAAsF;AACtF,6CAA2C;AAE3C,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAG7B,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAsB5B,YACgD,QAAyB,EACvB,KAAwB,EACvB,WAA+B,EAC9B,cAAmC,EAEhE,aAAoE,EAC1C,MAAwB,EACT,YAA6C;QAP7D,aAAQ,GAAR,QAAQ,CAAiB;QACvB,UAAK,GAAL,KAAK,CAAmB;QACvB,gBAAW,GAAX,WAAW,CAAoB;QAC9B,mBAAc,GAAd,cAAc,CAAqB;QAEhE,kBAAa,GAAb,aAAa,CAAuD;QAC1C,WAAM,GAAN,MAAM,CAAkB;QACT,iBAAY,GAAZ,YAAY,CAAiC;IACzG,CAAC;IAEL,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,iBAAiB,GAAG,IAAI,2BAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,uBAAuB,CAAC,CAAC;QAErG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACjH,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,uBAAuB,CAAC;QAElD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,IAAA,wBAAc,GAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,gBAAgB,CAAC;QAE3C,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,iCAAiC,EAAE,KAAK,CAAC,CAAC;QAChH,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,oBAAoB,CAAC;QAC/C,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEvC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,+DAA+D,EAAE,KAAK,CAAC,CAAC;QACxI,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC;QAClC,IAAI,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC;QAExC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,mFAAmF,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1J,CAAC;IAED;;OAEG;IACO,OAAO;QACb,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,OAAO,CAAc,OAAO,CAAC,EAAE,CACtC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAChF,CAAC;IACN,CAAC;IAED;;OAEG;IACO,mBAAmB,CAAC,IAAiB;QAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;QACrE,OAAO,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAgB,CAAC;IACxF,CAAC;IAED;;OAEG;IACO,sBAAsB;QAC5B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,gBAAgB,CAAC;YAC3C,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAE7D,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAEhD,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACjG,uDAAuD;QACvD,IAAI,cAAK,EAAE,CAAC;YACR,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,2BAAiB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,yFAAyF;QACzF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE;YAC3C,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACrB,KAAK,CAAC,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC;YAC3C,CAAC;YACD,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3B,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;YAC1C,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACrB,KAAK,CAAC,YAAY,CAAC,UAAU,GAAG,MAAM,CAAC;YAC3C,CAAC;YAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC7B,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YACtC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3B,CAAC,EAAE,KAAK,CAAC,CAAC;IAEd,CAAC;IAED;;;OAGG;IACO,WAAW,CAAC,IAAiB;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC3C,gBAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACO,aAAa,CAAC,IAAiB;QACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACO,WAAW,CAAC,IAAiB;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBACzB,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;oBAC9B,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;oBAC1D,MAAM,kBAAkB,GAAG,IAAA,sBAAY,EAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;oBAC5E,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;wBACnB,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC;wBACzC,IAAI,MAAM,EAAE,CAAC;4BACT,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;wBACpC,CAAC;wBACD,OAAO,EAAE,CAAC;oBACd,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBAC3B,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC9B,4CAA4C;YAC5C,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACrC,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;IACpC,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,aAAa;QACzB,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,4DAAoC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,mBAAmB;QAC/B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC/D,IAAI,YAAY,CAAC,gBAAgB,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,kBAAkB,EAC3D,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;gBAChF,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAES,KAAK,CAAC,yBAAyB;QACrC,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC/D,IAAI,YAAY,CAAC,qBAAqB,EAAE,CAAC;gBACrC,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,uBAAuB,EAChE,GAAG,EAAE,CAAC,YAAY,CAAC,qBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,EAAE,KAAK,CAAC,CAAC;gBACvF,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,kBAAkB;QAC9B,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC/D,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,YAAY,EACrD,GAAG,EAAE,CAAC,YAAY,CAAC,UAAW,EAAE,CAAC,CAAC;gBAC1C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;gBAClE,CAAC;YACL,CAAC;QACL,CAAC;QAED,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC/D,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,EACpD,GAAG,EAAE,CAAC,YAAY,CAAC,SAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;gBACjE,CAAC;YACL,CAAC;QACL,CAAC;QAED;;;;WAIG;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EACjC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAChC,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EACpC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CACnC,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAC9B,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAC7B,CAAC;QACF,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC/D,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,SAAS,EAClD,GAAG,EAAE,CAAC,YAAY,CAAC,OAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;gBAC7D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACO,iBAAiB;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAC3D,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC/D,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;gBAC5D,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAC1E,CAAC;IAES,KAAK,CAAC,mBAAmB,CAAI,YAA6C,EAAE,IAAY,EAAE,EAAyB;QACzH,IAAI,WAA4B,CAAC;QACjC,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,EACxE,GAAG,EAAE,CAAC,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC,CAC7B,CAAC;QACF,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,YAAY,EAAE,WAAY,CAAC,CAAC;QACpE,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,KAAK,CAAC,OAAO,CAAI,IAAY,EAAE,EAAyB,EAAE,OAAO,GAAG,YAAY,IAAI,EAAE,EAAE,SAAS,GAAG,IAAI;QAC9G,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAC9C,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,uBAAuB,EAAE,eAAe,EAAE,iBAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxG,CAAC;CAEJ,CAAA;AAxTY,kDAAmB;AAGT;IADlB,IAAA,kBAAM,EAAC,kCAAe,CAAC;;4DAC4B;AAGjC;IADlB,IAAA,kBAAM,EAAC,8BAAa,CAAC;;2DAC2B;AAG9B;IADlB,IAAA,kBAAM,EAAC,gCAAc,CAAC;;2DAC2B;AAG/B;IADlB,IAAA,kBAAM,EAAC,kBAAS,CAAC;sCACY,kBAAS;sDAAC;AAGrB;IADlB,IAAA,kBAAM,EAAC,yBAAgB,CAAC;;6DAC6B;AAGnC;IADlB,IAAA,kBAAM,EAAC,gBAAO,CAAC;IAAE,IAAA,iBAAK,EAAC,0BAA0B,CAAC;;mDAChB;8BAlB1B,mBAAmB;IAD/B,IAAA,sBAAU,GAAE;IAwBJ,mBAAA,IAAA,kBAAM,EAAC,wBAAe,CAAC,CAAA;IACvB,mBAAA,IAAA,kBAAM,EAAC,0BAAiB,CAAC,CAAA;IACzB,mBAAA,IAAA,kBAAM,EAAC,+BAAkB,CAAC,CAAA;IAC1B,mBAAA,IAAA,kBAAM,EAAC,2CAAmB,CAAC,CAAA;IAC3B,mBAAA,IAAA,kBAAM,EAAC,6BAAoB,CAAC,CAAA;IAAE,mBAAA,IAAA,iBAAK,EAAC,mEAA+B,CAAC,CAAA;IAEpE,mBAAA,IAAA,kBAAM,EAAC,oCAAgB,CAAC,CAAA;IACxB,mBAAA,IAAA,kBAAM,EAAC,4DAA+B,CAAC,CAAA;6CAPc,wBAAe;QAChB,0BAAiB;QACV,+BAAkB;QACd,2CAAmB,UAG9B,oCAAgB;QACK,4DAA+B;GA9BpG,mBAAmB,CAwT/B"}
@@ -1,16 +1,27 @@
1
- import { Event, RpcProxy, Channel } from '../../common';
1
+ import { Event, RpcProxy, Channel, RpcProxyFactory } from '../../common';
2
2
  import { ServiceConnectionProvider } from '../../browser/messaging/service-connection-provider';
3
3
  import { ILogger } from '../../common/logger';
4
4
  import { ConnectionSource } from '../../browser/messaging/connection-source';
5
5
  export declare class FrontendOnlyConnectionSource implements ConnectionSource {
6
6
  onConnectionDidOpen: Event<Channel>;
7
7
  }
8
+ /**
9
+ * Proxy factory for services without a frontend-only implementation. There is no backend,
10
+ * so no channel will ever open and requests would otherwise be queued forever, blocking
11
+ * any caller that awaits the result, e.g. during application startup.
12
+ * Instead, requests fail immediately and notifications (fire-and-forget) resolve silently.
13
+ */
14
+ export declare class FrontendOnlyRpcProxyFactory<T extends object> extends RpcProxyFactory<T> {
15
+ protected readonly path: string;
16
+ constructor(path: string, target?: object);
17
+ get(target: T, p: PropertyKey, receiver: unknown): unknown;
18
+ }
8
19
  export declare class FrontendOnlyServiceConnectionProvider extends ServiceConnectionProvider {
9
20
  protected readonly logger: ILogger;
10
21
  onSocketDidOpen: Event<any>;
11
22
  onSocketDidClose: Event<any>;
12
23
  onIncomingMessageActivity: Event<any>;
13
- createProxy<T extends object>(path: unknown, target?: unknown): RpcProxy<T>;
24
+ createProxy<T extends object>(path: string, target?: object): RpcProxy<T>;
14
25
  listen(path: string, handler: ServiceConnectionProvider.ConnectionHandler, reconnect: boolean): void;
15
26
  }
16
27
  //# sourceMappingURL=frontend-only-service-connection-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-only-service-connection-provider.d.ts","sourceRoot":"","sources":["../../../src/browser-only/messaging/frontend-only-service-connection-provider.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAA4B,MAAM,cAAc,CAAC;AAElF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qDAAqD,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAE7E,qBACa,4BAA6B,YAAW,gBAAgB;IACjE,mBAAmB,iBAAgC;CACtD;AAED,qBACa,qCAAsC,SAAQ,yBAAyB;IAGhF,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,eAAe,aAAc;IAC7B,gBAAgB,aAAc;IAC9B,yBAAyB,aAAc;IAC9B,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;IAK3E,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,CAAC,iBAAiB,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;CAGhH"}
1
+ {"version":3,"file":"frontend-only-service-connection-provider.d.ts","sourceRoot":"","sources":["../../../src/browser-only/messaging/frontend-only-service-connection-provider.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAW,MAAM,cAAc,CAAC;AAElF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qDAAqD,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAE7E,qBACa,4BAA6B,YAAW,gBAAgB;IACjE,mBAAmB,iBAAgC;CACtD;AAED;;;;;GAKG;AACH,qBAAa,2BAA2B,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;IAErE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAInD,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;CAatE;AAED,qBACa,qCAAsC,SAAQ,yBAAyB;IAGhF,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,eAAe,aAAc;IAC7B,gBAAgB,aAAc;IAC9B,yBAAyB,aAAc;IAC9B,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IAOzE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,CAAC,iBAAiB,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;CAGhH"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FrontendOnlyServiceConnectionProvider = exports.FrontendOnlyConnectionSource = void 0;
3
+ exports.FrontendOnlyServiceConnectionProvider = exports.FrontendOnlyRpcProxyFactory = exports.FrontendOnlyConnectionSource = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  // *****************************************************************************
6
6
  // Copyright (C) 2023 EclipseSource and others.
@@ -30,6 +30,32 @@ exports.FrontendOnlyConnectionSource = FrontendOnlyConnectionSource;
30
30
  exports.FrontendOnlyConnectionSource = FrontendOnlyConnectionSource = tslib_1.__decorate([
31
31
  (0, inversify_1.injectable)()
32
32
  ], FrontendOnlyConnectionSource);
33
+ /**
34
+ * Proxy factory for services without a frontend-only implementation. There is no backend,
35
+ * so no channel will ever open and requests would otherwise be queued forever, blocking
36
+ * any caller that awaits the result, e.g. during application startup.
37
+ * Instead, requests fail immediately and notifications (fire-and-forget) resolve silently.
38
+ */
39
+ class FrontendOnlyRpcProxyFactory extends common_1.RpcProxyFactory {
40
+ constructor(path, target) {
41
+ super(target);
42
+ this.path = path;
43
+ }
44
+ get(target, p, receiver) {
45
+ if (typeof p !== 'string') {
46
+ return undefined;
47
+ }
48
+ // members handled by the base proxy without a connection
49
+ if (['setClient', 'getClient', 'onDidOpenConnection', 'onDidCloseConnection', 'then', 'toJSON'].includes(p)) {
50
+ return super.get(target, p, receiver);
51
+ }
52
+ if (this.isNotification(p)) {
53
+ return () => Promise.resolve();
54
+ }
55
+ return () => Promise.reject(new Error(`Request '${p}' on service '${this.path}' is unavailable: no backend in frontend-only mode.`));
56
+ }
57
+ }
58
+ exports.FrontendOnlyRpcProxyFactory = FrontendOnlyRpcProxyFactory;
33
59
  let FrontendOnlyServiceConnectionProvider = class FrontendOnlyServiceConnectionProvider extends service_connection_provider_1.ServiceConnectionProvider {
34
60
  constructor() {
35
61
  super(...arguments);
@@ -39,8 +65,10 @@ let FrontendOnlyServiceConnectionProvider = class FrontendOnlyServiceConnectionP
39
65
  }
40
66
  createProxy(path, target) {
41
67
  this.logger.debug(`[Frontend-Only Fallback] Created proxy connection for ${path}`);
42
- const factory = target instanceof common_1.RpcProxyFactory ? target : new common_1.RpcProxyFactory(target);
43
- return factory.createProxy();
68
+ if (target instanceof common_1.RpcProxyFactory) {
69
+ return target.createProxy();
70
+ }
71
+ return new FrontendOnlyRpcProxyFactory(path, target).createProxy();
44
72
  }
45
73
  listen(path, handler, reconnect) {
46
74
  this.logger.debug('[Frontend-Only Fallback] Listen to websocket connection requested');
@@ -1 +1 @@
1
- {"version":3,"file":"frontend-only-service-connection-provider.js","sourceRoot":"","sources":["../../../src/browser-only/messaging/frontend-only-service-connection-provider.ts"],"names":[],"mappings":";;;;AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,yCAAkF;AAClF,yCAAsD;AACtD,qGAAgG;AAChG,gDAA8C;AAIvC,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IAAlC;QACH,wBAAmB,GAAG,IAAI,gBAAO,EAAW,CAAC,KAAK,CAAC;IACvD,CAAC;CAAA,CAAA;AAFY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,sBAAU,GAAE;GACA,4BAA4B,CAExC;AAGM,IAAM,qCAAqC,GAA3C,MAAM,qCAAsC,SAAQ,uDAAyB;IAA7E;;QAKH,oBAAe,GAAG,cAAK,CAAC,IAAI,CAAC;QAC7B,qBAAgB,GAAG,cAAK,CAAC,IAAI,CAAC;QAC9B,8BAAyB,GAAG,cAAK,CAAC,IAAI,CAAC;IAS3C,CAAC;IARY,WAAW,CAAmB,IAAa,EAAE,MAAgB;QAClE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,IAAI,EAAE,CAAC,CAAC;QACnF,MAAM,OAAO,GAAG,MAAM,YAAY,wBAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,wBAAe,CAAI,MAAM,CAAC,CAAC;QAC5F,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IACQ,MAAM,CAAC,IAAY,EAAE,OAAoD,EAAE,SAAkB;QAClG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;IAC3F,CAAC;CACJ,CAAA;AAhBY,sFAAqC;AAG3B;IADlB,IAAA,kBAAM,EAAC,gBAAO,CAAC;IAAE,IAAA,iBAAK,EAAC,4CAA4C,CAAC;;qEAClC;gDAH1B,qCAAqC;IADjD,IAAA,sBAAU,GAAE;GACA,qCAAqC,CAgBjD"}
1
+ {"version":3,"file":"frontend-only-service-connection-provider.js","sourceRoot":"","sources":["../../../src/browser-only/messaging/frontend-only-service-connection-provider.ts"],"names":[],"mappings":";;;;AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,yCAAkF;AAClF,yCAAsD;AACtD,qGAAgG;AAChG,gDAA8C;AAIvC,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IAAlC;QACH,wBAAmB,GAAG,IAAI,gBAAO,EAAW,CAAC,KAAK,CAAC;IACvD,CAAC;CAAA,CAAA;AAFY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,sBAAU,GAAE;GACA,4BAA4B,CAExC;AAED;;;;;GAKG;AACH,MAAa,2BAA8C,SAAQ,wBAAkB;IAEjF,YAA+B,IAAY,EAAE,MAAe;QACxD,KAAK,CAAC,MAAM,CAAC,CAAC;QADa,SAAI,GAAJ,IAAI,CAAQ;IAE3C,CAAC;IAEQ,GAAG,CAAC,MAAS,EAAE,CAAc,EAAE,QAAiB;QACrD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,yDAAyD;QACzD,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1G,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,iBAAiB,IAAI,CAAC,IAAI,qDAAqD,CAAC,CAAC,CAAC;IACzI,CAAC;CACJ;AAnBD,kEAmBC;AAGM,IAAM,qCAAqC,GAA3C,MAAM,qCAAsC,SAAQ,uDAAyB;IAA7E;;QAKH,oBAAe,GAAG,cAAK,CAAC,IAAI,CAAC;QAC7B,qBAAgB,GAAG,cAAK,CAAC,IAAI,CAAC;QAC9B,8BAAyB,GAAG,cAAK,CAAC,IAAI,CAAC;IAW3C,CAAC;IAVY,WAAW,CAAmB,IAAY,EAAE,MAAe;QAChE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,IAAI,EAAE,CAAC,CAAC;QACnF,IAAI,MAAM,YAAY,wBAAe,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,2BAA2B,CAAI,IAAI,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1E,CAAC;IACQ,MAAM,CAAC,IAAY,EAAE,OAAoD,EAAE,SAAkB;QAClG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;IAC3F,CAAC;CACJ,CAAA;AAlBY,sFAAqC;AAG3B;IADlB,IAAA,kBAAM,EAAC,gBAAO,CAAC;IAAE,IAAA,iBAAK,EAAC,4CAA4C,CAAC;;qEAClC;gDAH1B,qCAAqC;IADjD,IAAA,sBAAU,GAAE;GACA,qCAAqC,CAkBjD"}
@@ -103,6 +103,21 @@ export interface PreferenceProvider extends Disposable {
103
103
  getPreferences(resourceUri?: string): JSONObject;
104
104
  }
105
105
  export declare namespace PreferenceUtils {
106
+ /**
107
+ * Recursively merges the values of `target` into `source` and returns the merged result.
108
+ *
109
+ * Note the direction: `source` is the accumulator that is mutated and returned, while the
110
+ * values of `target` take precedence for conflicting primitive values. Nested objects are
111
+ * merged recursively and arrays are concatenated (`source` entries first, then `target`).
112
+ * If `source` is not a JSON object, a deep copy of `target` is returned instead.
113
+ *
114
+ * Only own properties are considered and reserved keys are ignored, so merged results are
115
+ * always plain data objects.
116
+ *
117
+ * @param source the accumulator to merge into; mutated and returned unless it is not an object
118
+ * @param target the values that are merged into `source` and take precedence on conflicts
119
+ * @returns the merged result (the mutated `source`, or a deep copy of `target`)
120
+ */
106
121
  function merge(source: JSONValue | undefined, target: JSONValue): JSONValue;
107
122
  /**
108
123
  * Handles deep equality with the possibility of `undefined`
@@ -1 +1 @@
1
- {"version":3,"file":"preference-provider.d.ts","sourceRoot":"","sources":["../../../src/common/preferences/preference-provider.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAW,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,yBAAiB,4BAA4B,CAAC;IAC1C,SAAgB,OAAO,CAAC,MAAM,EAAE,4BAA4B,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAI3F;CACJ;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,CAAA;CACZ;AAED,MAAM,WAAW,6BAA6B;IAC1C,CAAC,cAAc,EAAE,MAAM,GAAG,4BAA4B,CAAC;CAC1D;AACD,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAE/D,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IAClD,QAAQ,CAAC,uBAAuB,EAAE,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACvE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpB;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC;IAEhD;;;;;;;;OAQG;IACH,GAAG,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IACpE;;;;;;;;;;OAUG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACpF;;;;;;;;;OASG;IACH,OAAO,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAErF;;;;;;OAMG;IACH,YAAY,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC;IAC3E;;;;;;OAMG;IACH,sBAAsB,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC;IAErF;;OAEG;IACH,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CACpD;AAED,yBAAiB,eAAe,CAAC;IAC7B,SAAgB,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,CAqBjF;IAED;;OAEG;IACH,SAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAIrF;CAEJ"}
1
+ {"version":3,"file":"preference-provider.d.ts","sourceRoot":"","sources":["../../../src/common/preferences/preference-provider.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAW,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,yBAAiB,4BAA4B,CAAC;IAC1C,SAAgB,OAAO,CAAC,MAAM,EAAE,4BAA4B,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAI3F;CACJ;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,CAAC,CAAA;CACZ;AAED,MAAM,WAAW,6BAA6B;IAC1C,CAAC,cAAc,EAAE,MAAM,GAAG,4BAA4B,CAAC;CAC1D;AACD,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAE/D,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IAClD,QAAQ,CAAC,uBAAuB,EAAE,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACvE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpB;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC;IAEhD;;;;;;;;OAQG;IACH,GAAG,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IACpE;;;;;;;;;;OAUG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACpF;;;;;;;;;OASG;IACH,OAAO,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAErF;;;;;;OAMG;IACH,YAAY,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC;IAC3E;;;;;;OAMG;IACH,sBAAsB,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC;IAErF;;OAEG;IACH,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CACpD;AAED,yBAAiB,eAAe,CAAC;IAG7B;;;;;;;;;;;;;;OAcG;IACH,SAAgB,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,CAyBjF;IAED;;OAEG;IACH,SAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAIrF;CAEJ"}
@@ -30,6 +30,22 @@ var PreferenceProviderDataChange;
30
30
  exports.PreferenceProvider = Symbol('PreferenceProvider');
31
31
  var PreferenceUtils;
32
32
  (function (PreferenceUtils) {
33
+ const RESERVED_MERGE_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
34
+ /**
35
+ * Recursively merges the values of `target` into `source` and returns the merged result.
36
+ *
37
+ * Note the direction: `source` is the accumulator that is mutated and returned, while the
38
+ * values of `target` take precedence for conflicting primitive values. Nested objects are
39
+ * merged recursively and arrays are concatenated (`source` entries first, then `target`).
40
+ * If `source` is not a JSON object, a deep copy of `target` is returned instead.
41
+ *
42
+ * Only own properties are considered and reserved keys are ignored, so merged results are
43
+ * always plain data objects.
44
+ *
45
+ * @param source the accumulator to merge into; mutated and returned unless it is not an object
46
+ * @param target the values that are merged into `source` and take precedence on conflicts
47
+ * @returns the merged result (the mutated `source`, or a deep copy of `target`)
48
+ */
33
49
  function merge(source, target) {
34
50
  if (source === undefined || !coreutils_1.JSONExt.isObject(source)) {
35
51
  return coreutils_1.JSONExt.deepCopy(target);
@@ -38,7 +54,11 @@ var PreferenceUtils;
38
54
  return {};
39
55
  }
40
56
  for (const [key, value] of Object.entries(target)) {
41
- if (key in source) {
57
+ if (RESERVED_MERGE_KEYS.has(key)) {
58
+ // Skip reserved object keys so merged results stay plain data objects.
59
+ continue;
60
+ }
61
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
42
62
  const sourceValue = source[key];
43
63
  if (coreutils_1.JSONExt.isObject(sourceValue) && coreutils_1.JSONExt.isObject(value)) {
44
64
  merge(sourceValue, value);
@@ -1 +1 @@
1
- {"version":3,"file":"preference-provider.js","sourceRoot":"","sources":["../../../src/common/preferences/preference-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preference-provider.js","sourceRoot":"","sources":["../../../src/common/preferences/preference-provider.ts"],"names":[],"mappings":"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"}
@@ -30,5 +30,22 @@ describe('PreferenceProviderImpl', () => {
30
30
  const result = preference_provider_1.PreferenceUtils.merge({ 'configurations': [{ 'name': 'test1', 'request': 'launch' }], 'compounds': [] }, { 'configurations': [{ 'name': 'test2' }] });
31
31
  expect(result).deep.equals({ 'configurations': [{ 'name': 'test1', 'request': 'launch' }, { 'name': 'test2' }], 'compounds': [] });
32
32
  });
33
+ it('should ignore reserved keys when merging', () => {
34
+ const payload = JSON.parse('{"__proto__":{"injected":"yes"}}');
35
+ const result = preference_provider_1.PreferenceUtils.merge({ 'safe': true }, payload);
36
+ // A modified Object.prototype leaks onto every object, so a freshly created `{}`
37
+ // must not inherit the injected key and the result must stay a plain object.
38
+ expect({}.injected).to.equal(undefined);
39
+ expect(Object.getPrototypeOf(result)).to.equal(Object.prototype);
40
+ expect(result).deep.equals({ 'safe': true });
41
+ });
42
+ it('should ignore nested reserved keys when merging', () => {
43
+ const payload = JSON.parse('{"parent":{"__proto__":{"injected":"yes"},"valid":"true"}}');
44
+ const result = preference_provider_1.PreferenceUtils.merge({ 'parent': { 'existing': true } }, payload);
45
+ // The nested reserved key is dropped while the sibling `valid` is still merged, and a
46
+ // freshly created `{}` must not inherit the injected key.
47
+ expect({}.injected).to.equal(undefined);
48
+ expect(result).deep.equals({ 'parent': { 'existing': true, 'valid': 'true' } });
49
+ });
33
50
  });
34
51
  //# sourceMappingURL=preference-provider.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preference-provider.spec.js","sourceRoot":"","sources":["../../../src/common/preferences/preference-provider.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,+DAAwD;AAExD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAEnC,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,qCAAe,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1G,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,qCAAe,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1G,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG,qCAAe,CAAC,KAAK,CAChC,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,EACjF,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAC9C,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IACvI,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"preference-provider.spec.js","sourceRoot":"","sources":["../../../src/common/preferences/preference-provider.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/core",
3
- "version": "1.74.0-next.62+ab0187b47",
3
+ "version": "1.74.0-next.70+d3cad42d4",
4
4
  "description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.",
5
5
  "main": "lib/common/index.js",
6
6
  "typings": "lib/common/index.d.ts",
@@ -17,8 +17,8 @@
17
17
  "@lumino/virtualdom": "^2.0.4",
18
18
  "@lumino/widgets": "2.7.5",
19
19
  "@parcel/watcher": "^2.5.6",
20
- "@theia/application-package": "1.74.0-next.62+ab0187b47",
21
- "@theia/request": "1.74.0-next.62+ab0187b47",
20
+ "@theia/application-package": "1.74.0-next.70+d3cad42d4",
21
+ "@theia/request": "1.74.0-next.70+d3cad42d4",
22
22
  "@types/body-parser": "^1.19.6",
23
23
  "@types/express": "^4.17.25",
24
24
  "@types/fs-extra": "^4.0.15",
@@ -230,5 +230,5 @@
230
230
  "nyc": {
231
231
  "extends": "../../configs/nyc.json"
232
232
  },
233
- "gitHead": "ab0187b4731e59053642128f8f71bb28a1a0ba8e"
233
+ "gitHead": "d3cad42d4e3220b8b6796d6b40a4441bbe25a0bc"
234
234
  }
@@ -237,8 +237,12 @@ export class FrontendApplication {
237
237
  protected async createDefaultLayout(): Promise<void> {
238
238
  for (const contribution of this.contributions.getContributions()) {
239
239
  if (contribution.initializeLayout) {
240
- await this.measureContribution(contribution, 'initializeLayout',
241
- () => contribution.initializeLayout!(this));
240
+ try {
241
+ await this.measureContribution(contribution, 'initializeLayout',
242
+ () => contribution.initializeLayout!(this));
243
+ } catch (error) {
244
+ this.logger.error('Could not initialize the layout of contribution', error);
245
+ }
242
246
  }
243
247
  }
244
248
  }
@@ -246,8 +250,12 @@ export class FrontendApplication {
246
250
  protected async fireOnDidInitializeLayout(): Promise<void> {
247
251
  for (const contribution of this.contributions.getContributions()) {
248
252
  if (contribution.onDidInitializeLayout) {
249
- await this.measureContribution(contribution, 'onDidInitializeLayout',
250
- () => contribution.onDidInitializeLayout!(this));
253
+ try {
254
+ await this.measureContribution(contribution, 'onDidInitializeLayout',
255
+ () => contribution.onDidInitializeLayout!(this));
256
+ } catch (error) {
257
+ this.logger.error('Could not notify contribution of layout initialization', error);
258
+ }
251
259
  }
252
260
  }
253
261
  }
@@ -24,6 +24,33 @@ export class FrontendOnlyConnectionSource implements ConnectionSource {
24
24
  onConnectionDidOpen = new Emitter<Channel>().event;
25
25
  }
26
26
 
27
+ /**
28
+ * Proxy factory for services without a frontend-only implementation. There is no backend,
29
+ * so no channel will ever open and requests would otherwise be queued forever, blocking
30
+ * any caller that awaits the result, e.g. during application startup.
31
+ * Instead, requests fail immediately and notifications (fire-and-forget) resolve silently.
32
+ */
33
+ export class FrontendOnlyRpcProxyFactory<T extends object> extends RpcProxyFactory<T> {
34
+
35
+ constructor(protected readonly path: string, target?: object) {
36
+ super(target);
37
+ }
38
+
39
+ override get(target: T, p: PropertyKey, receiver: unknown): unknown {
40
+ if (typeof p !== 'string') {
41
+ return undefined;
42
+ }
43
+ // members handled by the base proxy without a connection
44
+ if (['setClient', 'getClient', 'onDidOpenConnection', 'onDidCloseConnection', 'then', 'toJSON'].includes(p)) {
45
+ return super.get(target, p, receiver);
46
+ }
47
+ if (this.isNotification(p)) {
48
+ return () => Promise.resolve();
49
+ }
50
+ return () => Promise.reject(new Error(`Request '${p}' on service '${this.path}' is unavailable: no backend in frontend-only mode.`));
51
+ }
52
+ }
53
+
27
54
  @injectable()
28
55
  export class FrontendOnlyServiceConnectionProvider extends ServiceConnectionProvider {
29
56
 
@@ -33,10 +60,12 @@ export class FrontendOnlyServiceConnectionProvider extends ServiceConnectionProv
33
60
  onSocketDidOpen = Event.None;
34
61
  onSocketDidClose = Event.None;
35
62
  onIncomingMessageActivity = Event.None;
36
- override createProxy<T extends object>(path: unknown, target?: unknown): RpcProxy<T> {
63
+ override createProxy<T extends object>(path: string, target?: object): RpcProxy<T> {
37
64
  this.logger.debug(`[Frontend-Only Fallback] Created proxy connection for ${path}`);
38
- const factory = target instanceof RpcProxyFactory ? target : new RpcProxyFactory<T>(target);
39
- return factory.createProxy();
65
+ if (target instanceof RpcProxyFactory) {
66
+ return target.createProxy();
67
+ }
68
+ return new FrontendOnlyRpcProxyFactory<T>(path, target).createProxy();
40
69
  }
41
70
  override listen(path: string, handler: ServiceConnectionProvider.ConnectionHandler, reconnect: boolean): void {
42
71
  this.logger.debug('[Frontend-Only Fallback] Listen to websocket connection requested');
@@ -34,4 +34,21 @@ describe('PreferenceProviderImpl', () => {
34
34
  );
35
35
  expect(result).deep.equals({ 'configurations': [{ 'name': 'test1', 'request': 'launch' }, { 'name': 'test2' }], 'compounds': [] });
36
36
  });
37
+ it('should ignore reserved keys when merging', () => {
38
+ const payload = JSON.parse('{"__proto__":{"injected":"yes"}}');
39
+ const result = PreferenceUtils.merge({ 'safe': true }, payload);
40
+ // A modified Object.prototype leaks onto every object, so a freshly created `{}`
41
+ // must not inherit the injected key and the result must stay a plain object.
42
+ expect(({} as Record<string, unknown>).injected).to.equal(undefined);
43
+ expect(Object.getPrototypeOf(result)).to.equal(Object.prototype);
44
+ expect(result).deep.equals({ 'safe': true });
45
+ });
46
+ it('should ignore nested reserved keys when merging', () => {
47
+ const payload = JSON.parse('{"parent":{"__proto__":{"injected":"yes"},"valid":"true"}}');
48
+ const result = PreferenceUtils.merge({ 'parent': { 'existing': true } }, payload);
49
+ // The nested reserved key is dropped while the sibling `valid` is still merged, and a
50
+ // freshly created `{}` must not inherit the injected key.
51
+ expect(({} as Record<string, unknown>).injected).to.equal(undefined);
52
+ expect(result).deep.equals({ 'parent': { 'existing': true, 'valid': 'true' } });
53
+ });
37
54
  });
@@ -133,6 +133,23 @@ export interface PreferenceProvider extends Disposable {
133
133
  }
134
134
 
135
135
  export namespace PreferenceUtils {
136
+ const RESERVED_MERGE_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
137
+
138
+ /**
139
+ * Recursively merges the values of `target` into `source` and returns the merged result.
140
+ *
141
+ * Note the direction: `source` is the accumulator that is mutated and returned, while the
142
+ * values of `target` take precedence for conflicting primitive values. Nested objects are
143
+ * merged recursively and arrays are concatenated (`source` entries first, then `target`).
144
+ * If `source` is not a JSON object, a deep copy of `target` is returned instead.
145
+ *
146
+ * Only own properties are considered and reserved keys are ignored, so merged results are
147
+ * always plain data objects.
148
+ *
149
+ * @param source the accumulator to merge into; mutated and returned unless it is not an object
150
+ * @param target the values that are merged into `source` and take precedence on conflicts
151
+ * @returns the merged result (the mutated `source`, or a deep copy of `target`)
152
+ */
136
153
  export function merge(source: JSONValue | undefined, target: JSONValue): JSONValue {
137
154
  if (source === undefined || !JSONExt.isObject(source)) {
138
155
  return JSONExt.deepCopy(target);
@@ -141,7 +158,11 @@ export namespace PreferenceUtils {
141
158
  return {};
142
159
  }
143
160
  for (const [key, value] of Object.entries(target)) {
144
- if (key in source) {
161
+ if (RESERVED_MERGE_KEYS.has(key)) {
162
+ // Skip reserved object keys so merged results stay plain data objects.
163
+ continue;
164
+ }
165
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
145
166
  const sourceValue = source[key];
146
167
  if (JSONExt.isObject(sourceValue) && JSONExt.isObject(value)) {
147
168
  merge(sourceValue, value);