@theia/core 1.73.0-next.43 → 1.73.0-next.52

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.
Files changed (81) hide show
  1. package/README.md +1 -1
  2. package/lib/browser/catalog.json +6 -0
  3. package/lib/browser/messaging/ws-connection-source.d.ts.map +1 -1
  4. package/lib/browser/messaging/ws-connection-source.js +1 -6
  5. package/lib/browser/messaging/ws-connection-source.js.map +1 -1
  6. package/lib/browser/tree/tree-view-welcome-widget.d.ts +1 -0
  7. package/lib/browser/tree/tree-view-welcome-widget.d.ts.map +1 -1
  8. package/lib/browser/tree/tree-view-welcome-widget.js +8 -6
  9. package/lib/browser/tree/tree-view-welcome-widget.js.map +1 -1
  10. package/lib/browser/tree/tree-view-welcome-widget.spec.d.ts +2 -0
  11. package/lib/browser/tree/tree-view-welcome-widget.spec.d.ts.map +1 -0
  12. package/lib/browser/tree/tree-view-welcome-widget.spec.js +68 -0
  13. package/lib/browser/tree/tree-view-welcome-widget.spec.js.map +1 -0
  14. package/lib/electron-node/hosting/electron-ws-origin-validator.d.ts.map +1 -1
  15. package/lib/electron-node/hosting/electron-ws-origin-validator.js +5 -2
  16. package/lib/electron-node/hosting/electron-ws-origin-validator.js.map +1 -1
  17. package/lib/electron-node/hosting/electron-ws-origin-validator.spec.d.ts +2 -0
  18. package/lib/electron-node/hosting/electron-ws-origin-validator.spec.d.ts.map +1 -0
  19. package/lib/electron-node/hosting/electron-ws-origin-validator.spec.js +59 -0
  20. package/lib/electron-node/hosting/electron-ws-origin-validator.spec.js.map +1 -0
  21. package/lib/node/backend-application-module.d.ts.map +1 -1
  22. package/lib/node/backend-application-module.js +2 -0
  23. package/lib/node/backend-application-module.js.map +1 -1
  24. package/lib/node/backend-application.d.ts +9 -0
  25. package/lib/node/backend-application.d.ts.map +1 -1
  26. package/lib/node/backend-application.js +23 -1
  27. package/lib/node/backend-application.js.map +1 -1
  28. package/lib/node/backend-application.spec.js +1 -0
  29. package/lib/node/backend-application.spec.js.map +1 -1
  30. package/lib/node/hosting/backend-hosting-module.d.ts.map +1 -1
  31. package/lib/node/hosting/backend-hosting-module.js +7 -0
  32. package/lib/node/hosting/backend-hosting-module.js.map +1 -1
  33. package/lib/node/hosting/browser-connection-token.d.ts +46 -0
  34. package/lib/node/hosting/browser-connection-token.d.ts.map +1 -0
  35. package/lib/node/hosting/browser-connection-token.js +120 -0
  36. package/lib/node/hosting/browser-connection-token.js.map +1 -0
  37. package/lib/node/hosting/browser-connection-token.spec.d.ts +2 -0
  38. package/lib/node/hosting/browser-connection-token.spec.d.ts.map +1 -0
  39. package/lib/node/hosting/browser-connection-token.spec.js +128 -0
  40. package/lib/node/hosting/browser-connection-token.spec.js.map +1 -0
  41. package/lib/node/hosting/ws-origin-validator.d.ts.map +1 -1
  42. package/lib/node/hosting/ws-origin-validator.js +21 -4
  43. package/lib/node/hosting/ws-origin-validator.js.map +1 -1
  44. package/lib/node/hosting/ws-origin-validator.spec.d.ts +2 -0
  45. package/lib/node/hosting/ws-origin-validator.spec.d.ts.map +1 -0
  46. package/lib/node/hosting/ws-origin-validator.spec.js +131 -0
  47. package/lib/node/hosting/ws-origin-validator.spec.js.map +1 -0
  48. package/lib/node/index.d.ts +1 -0
  49. package/lib/node/index.d.ts.map +1 -1
  50. package/lib/node/index.js +3 -1
  51. package/lib/node/index.js.map +1 -1
  52. package/lib/node/messaging/websocket-endpoint.d.ts +5 -0
  53. package/lib/node/messaging/websocket-endpoint.d.ts.map +1 -1
  54. package/lib/node/messaging/websocket-endpoint.js +14 -5
  55. package/lib/node/messaging/websocket-endpoint.js.map +1 -1
  56. package/lib/node/request/backend-request-facade.d.ts +19 -0
  57. package/lib/node/request/backend-request-facade.d.ts.map +1 -1
  58. package/lib/node/request/backend-request-facade.js +93 -3
  59. package/lib/node/request/backend-request-facade.js.map +1 -1
  60. package/lib/node/request/backend-request-facade.spec.d.ts +2 -0
  61. package/lib/node/request/backend-request-facade.spec.d.ts.map +1 -0
  62. package/lib/node/request/backend-request-facade.spec.js +171 -0
  63. package/lib/node/request/backend-request-facade.spec.js.map +1 -0
  64. package/package.json +4 -4
  65. package/src/browser/messaging/ws-connection-source.ts +1 -6
  66. package/src/browser/tree/tree-view-welcome-widget.spec.ts +80 -0
  67. package/src/browser/tree/tree-view-welcome-widget.tsx +10 -11
  68. package/src/electron-node/hosting/electron-ws-origin-validator.spec.ts +69 -0
  69. package/src/electron-node/hosting/electron-ws-origin-validator.ts +5 -2
  70. package/src/node/backend-application-module.ts +4 -2
  71. package/src/node/backend-application.spec.ts +2 -0
  72. package/src/node/backend-application.ts +18 -0
  73. package/src/node/hosting/backend-hosting-module.ts +10 -0
  74. package/src/node/hosting/browser-connection-token.spec.ts +167 -0
  75. package/src/node/hosting/browser-connection-token.ts +126 -0
  76. package/src/node/hosting/ws-origin-validator.spec.ts +193 -0
  77. package/src/node/hosting/ws-origin-validator.ts +23 -4
  78. package/src/node/index.ts +1 -0
  79. package/src/node/messaging/websocket-endpoint.ts +17 -5
  80. package/src/node/request/backend-request-facade.spec.ts +203 -0
  81. package/src/node/request/backend-request-facade.ts +108 -3
@@ -1 +1 @@
1
- {"version":3,"file":"backend-application.spec.js","sourceRoot":"","sources":["../../src/node/backend-application.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend-application.spec.js","sourceRoot":"","sources":["../../src/node/backend-application.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,+BAA8B;AAC9B,+BAA+B;AAC/B,yCAA+E;AAC/E,sCAAyE;AACzE,yDAAkD;AAClD,iEAA6D;AAC7D,mDAA+C;AAC/C,+DAM+B;AAC/B,+BAAwC;AACxC,4DAAwD;AAExD;;GAEG;AAEH,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,wCAAkB;IAC5C,sBAAsB;QACzB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACnC,CAAC;CACJ,CAAA;AAJK,sBAAsB;IAD3B,IAAA,sBAAU,GAAE;GACP,sBAAsB,CAI3B;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,yEAAyE;AACzE,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,mBAAmB,CAAU,CAAC;AAK9F,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,IAAI,OAA2B,CAAC;IAChC,IAAI,QAAyB,CAAC;IAC9B,IAAI,cAAgE,CAAC;IAErE,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QAEhC,oEAAoE;QACpE,iEAAiE;QACjE,cAAc,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YAC/B,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,GAAqB,CAAC,CAAkB,CAAC;YACrF,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YAC/B,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAChC,KAAK,MAAM,QAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC/C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;QAED,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,SAAS,mBAAmB;QACxB,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;QAElC,SAAS,CAAC,IAAI,CAAC,mCAAa,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACzD,SAAS,CAAC,IAAI,CAAC,gBAAO,CAAC,CAAC,EAAE,CAAC,wBAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC1D,SAAS,CAAC,IAAI,CAAC,kBAAS,CAAC,CAAC,EAAE,CAAC,8BAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC/D,SAAS,CAAC,IAAI,CAAC,4BAAY,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACzD,SAAS,CAAC,IAAI,CAAC,uDAAiC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;QAC9E,SAAS,CAAC,IAAI,CAAC,qBAAe,CAAC,CAAC,SAAS,CAAC,uDAAiC,CAAC,CAAC;QAC7E,SAAS,CAAC,IAAI,CAAC,4CAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACnE,IAAA,iCAAwB,EAAC,SAAS,EAAE,oDAA8B,CAAC,CAAC;QAEpE,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACnE,SAAS,CAAC,IAAI,CAAC,wCAAkB,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAErE,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAE/B,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;YACnF,IAAI,cAAc,GAAG,KAAK,CAAC;YAG3B,IAAM,MAAM,GAAZ,MAAM,MAAM;gBAEE,YAAY;oBAClB,cAAc,GAAG,IAAI,CAAC;gBAC1B,CAAC;aACJ,CAAA;YAHa;gBADT,IAAA,sBAAU,GAAE;;;;sDAGZ;YAJC,MAAM;gBADX,IAAA,sBAAU,GAAE;eACP,MAAM,CAKX;YAED,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;gBAC5C,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;YAC7C,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7B,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEtB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAElD,MAAM,GAAG,CAAC,sBAAsB,EAAE,CAAC;YAEnC,IAAA,aAAM,EAAC,cAAc,EAAE,sDAAsD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC1F,IAAA,aAAM,EAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,6CAA6C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACjG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;YACpF,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAE3D,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAElD,MAAM,GAAG,CAAC,sBAAsB,EAAE,CAAC;YACnC,MAAM,GAAG,CAAC,sBAAsB,EAAE,CAAC;YAEnC,IAAA,aAAM,EAAC,SAAS,CAAC,SAAS,EAAE,2CAA2C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrF,IAAA,aAAM,EAAC,QAAQ,CAAC,SAAS,EAAE,yCAAyC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE/C,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAElD,MAAM,GAAG,CAAC,sBAAsB,EAAE,CAAC;YAEnC,IAAA,aAAM,EAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAChF,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,EAAE,iDAAiD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC1F,IAAA,aAAM,EAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO,CAAO,GAAG,EAAE,GAAe,CAAC,CAAC,CAAC,CAAC;YAC5F,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE/C,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAElD,MAAM,eAAe,GAAG,GAAG,CAAC,sBAAsB,EAAE,CAAC;YAErD,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,eAAe,CAAC;YAEtB,IAAA,aAAM,EAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,8CAA8C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC9F,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,EAAE,uCAAuC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAChF,IAAA,aAAM,EAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACxC,MAAM,cAAc,GAAG,IAAI,uBAAQ,EAAQ,CAAC;YAC5C,SAAS,CAAC,IAAI,CAAC,oDAA8B,CAAC,CAAC,eAAe,CAAC;gBAC3D,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO;aACvC,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAE3D,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAClD,MAAM,eAAe,GAAG,GAAG,CAAC,sBAAsB,EAAE,CAAC;YAErD,IAAA,aAAM,EAAC,SAAS,CAAC,MAAM,EAAE,sDAAsD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YAE7F,cAAc,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,eAAe,CAAC;YAEtB,IAAA,aAAM,EAAC,SAAS,CAAC,UAAU,EAAE,iDAAiD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC3F,IAAA,aAAM,EAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;YAE/E,IAAM,MAAM,GAAZ,MAAM,MAAM;gBAAZ;oBACa,UAAK,GAAG,aAAa,CAAC;gBACnC,CAAC;aAAA,CAAA;YAFK,MAAM;gBADX,IAAA,sBAAU,GAAE;eACP,MAAM,CAEX;YAED,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;YAEnD,IAAI,QAA4B,CAAC;YACjC,SAAS,CAAC,IAAI,CAAC,oDAA8B,CAAC,CAAC,eAAe,CAAC;gBAC3D,MAAM,EAAE,GAAG,EAAE;oBACT,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;gBAC3C,CAAC;aACJ,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAClD,MAAM,GAAG,CAAC,sBAAsB,EAAE,CAAC;YAEnC,IAAA,aAAM,EAAC,QAAQ,EAAE,8DAA8D,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC,oDAA8B,CAAC,CAAC,eAAe,CAAC;gBAC3D,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAO,GAAG,EAAE,GAAe,CAAC,CAAC;aACzD,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE/C,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAClD,MAAM,eAAe,GAAG,GAAG,CAAC,sBAAsB,EAAE,CAAC;YAErD,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,eAAe,CAAC;YAEtB,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,EAAE,8CAA8C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACvF,IAAA,aAAM,EAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC9E,IAAA,aAAM,EAAC,SAAS,CAAC,UAAU,EAAE,gDAAgD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC1F,IAAA,aAAM,EAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACxC,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,oDAA8B,CAAC,CAAC,eAAe,CAAC;gBAC3D,MAAM,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACnD,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,oDAA8B,CAAC,CAAC,eAAe,CAAC;gBAC3D,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;aACtC,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,gBAAO,CAAY,CAAC;YACrD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAEpD,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAClD,MAAM,GAAG,CAAC,sBAAsB,EAAE,CAAC;YAEnC,IAAA,aAAM,EAAC,SAAS,EAAE,iEAAiE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAChG,IAAA,aAAM,EAAC,SAAS,CAAC,eAAe,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACxC,2EAA2E;YAC3E,0EAA0E;YAC1E,MAAM,SAAS,GAAyC,EAAE,CAAC;YAC3D,SAAS,CAAC,IAAI,CAAC,oDAA8B,CAAC,CAAC,eAAe,CAAC;gBAC3D,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,OAAQ,CAAC,sBAAsB,EAAE;aAC5D,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAE3D,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAC1D,MAAM,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;YAEjD,IAAA,aAAM,EAAC,SAAS,CAAC,SAAS,EAAE,2CAA2C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrF,IAAA,aAAM,EAAC,QAAQ,CAAC,SAAS,EAAE,yCAAyC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IAEP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAElC,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,oDAA8B,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACtF,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,4BAAY,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;YAEnF,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAe,CAAC;YAEhE,MAAM,GAAG,CAAC,sBAAsB,EAAE,CAAC;YACnC,IAAA,aAAM,EAAC,SAAS,CAAC,SAAS,EAAE,uDAAuD,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEjG,YAAY,EAAE,CAAC;YAEf,IAAA,aAAM,EAAC,SAAS,CAAC,SAAS,EAAE,yDAAyD,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnG,IAAA,aAAM,EAAC,aAAa,CAAC,MAAM,EAAE,4DAA4D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC1G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;YAC/E,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,oDAA8B,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACtF,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,4BAAY,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;YAEnF,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACtC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAe,CAAC;YAEhE,YAAY,EAAE,CAAC;YAEf,IAAA,aAAM,EAAC,SAAS,CAAC,UAAU,EAAE,kDAAkD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC5F,IAAA,aAAM,EAAC,aAAa,CAAC,MAAM,EAAE,wCAAwC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACtF,CAAC,CAAC,CAAC;IAEP,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"backend-hosting-module.d.ts","sourceRoot":"","sources":["../../../src/node/hosting/backend-hosting-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;;AAK5C,wBAIG"}
1
+ {"version":3,"file":"backend-hosting-module.d.ts","sourceRoot":"","sources":["../../../src/node/hosting/backend-hosting-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;;AAS5C,wBAUG"}
@@ -16,12 +16,19 @@
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const inversify_1 = require("inversify");
19
+ const backend_application_1 = require("../backend-application");
19
20
  const ws_request_validators_1 = require("../ws-request-validators");
20
21
  const backend_application_hosts_1 = require("./backend-application-hosts");
22
+ const browser_connection_token_1 = require("./browser-connection-token");
21
23
  const ws_origin_validator_1 = require("./ws-origin-validator");
22
24
  exports.default = new inversify_1.ContainerModule(bind => {
23
25
  bind(backend_application_hosts_1.BackendApplicationHosts).toSelf().inSingletonScope();
24
26
  bind(ws_origin_validator_1.WsOriginValidator).toSelf().inSingletonScope();
25
27
  bind(ws_request_validators_1.WsRequestValidatorContribution).toService(ws_origin_validator_1.WsOriginValidator);
28
+ // Cookie-based connection token protects both HTTP and WebSocket endpoints.
29
+ bind(browser_connection_token_1.BrowserConnectionToken).toConstantValue((0, browser_connection_token_1.createBrowserConnectionToken)());
30
+ bind(browser_connection_token_1.BrowserConnectionTokenBackendContribution).toSelf().inSingletonScope();
31
+ bind(backend_application_1.BackendApplicationContribution).toService(browser_connection_token_1.BrowserConnectionTokenBackendContribution);
32
+ bind(ws_request_validators_1.WsRequestValidatorContribution).toService(browser_connection_token_1.BrowserConnectionTokenBackendContribution);
26
33
  });
27
34
  //# sourceMappingURL=backend-hosting-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backend-hosting-module.js","sourceRoot":"","sources":["../../../src/node/hosting/backend-hosting-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,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,yCAA4C;AAC5C,oEAA0E;AAC1E,2EAAsE;AACtE,+DAA0D;AAE1D,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,mDAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,uCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,sDAA8B,CAAC,CAAC,SAAS,CAAC,uCAAiB,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"backend-hosting-module.js","sourceRoot":"","sources":["../../../src/node/hosting/backend-hosting-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,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,yCAA4C;AAC5C,gEAAwE;AACxE,oEAA0E;AAC1E,2EAAsE;AACtE,yEAEoC;AACpC,+DAA0D;AAE1D,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,mDAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,uCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,sDAA8B,CAAC,CAAC,SAAS,CAAC,uCAAiB,CAAC,CAAC;IAElE,4EAA4E;IAC5E,IAAI,CAAC,iDAAsB,CAAC,CAAC,eAAe,CAAC,IAAA,uDAA4B,GAAE,CAAC,CAAC;IAC7E,IAAI,CAAC,oEAAyC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5E,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,oEAAyC,CAAC,CAAC;IAC1F,IAAI,CAAC,sDAA8B,CAAC,CAAC,SAAS,CAAC,oEAAyC,CAAC,CAAC;AAC9F,CAAC,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import * as http from 'http';
2
+ import express = require('express');
3
+ import { MaybePromise } from '../../common';
4
+ import { BackendApplicationContribution, EarlyExpressMiddleware } from '../backend-application';
5
+ import { WsRequestValidatorContribution } from '../ws-request-validators';
6
+ export declare const BrowserConnectionToken: unique symbol;
7
+ export declare const BROWSER_TOKEN_COOKIE_NAME = "theia-connection-token";
8
+ export interface BrowserConnectionToken {
9
+ value: string;
10
+ }
11
+ /**
12
+ * Validates WebSocket and HTTP requests using a cookie-based connection token.
13
+ *
14
+ * In browser deployments, the server generates a random token at startup and sets it
15
+ * as a `SameSite=Strict; HttpOnly` cookie on the first page load. Cross-origin pages
16
+ * cannot obtain or send this cookie, so their requests are rejected.
17
+ *
18
+ * This complements the origin validator: non-browser callers that omit the Origin
19
+ * header (e.g. Node.js scripts) still cannot reach the backend without the cookie.
20
+ *
21
+ * Skipped in Electron deployments (which use their own `ElectronSecurityToken`).
22
+ */
23
+ export declare class BrowserConnectionTokenBackendContribution implements BackendApplicationContribution, WsRequestValidatorContribution {
24
+ protected readonly browserConnectionToken: BrowserConnectionToken;
25
+ protected readonly earlyMiddleware: EarlyExpressMiddleware;
26
+ /**
27
+ * Register the cookie middleware during `initialize()` via `EarlyExpressMiddleware`
28
+ * so it runs before `express.static()` (which is registered later during `configure()`).
29
+ * This ensures the browser receives the token cookie on the initial page load.
30
+ */
31
+ initialize(): void;
32
+ /**
33
+ * Validate the connection token cookie on WebSocket upgrade requests.
34
+ * Non-browser callers that omit the Origin header (e.g. Node.js scripts)
35
+ * cannot provide the `SameSite=Strict` cookie either, so they are rejected.
36
+ */
37
+ allowWsUpgrade(request: http.IncomingMessage): MaybePromise<boolean>;
38
+ protected expressMiddleware(req: express.Request, res: express.Response, next: express.NextFunction): void;
39
+ protected getTokenFromCookie(req: http.IncomingMessage): string | undefined;
40
+ protected isTokenValid(token: string): boolean;
41
+ }
42
+ /**
43
+ * Creates a new browser connection token.
44
+ */
45
+ export declare function createBrowserConnectionToken(): BrowserConnectionToken;
46
+ //# sourceMappingURL=browser-connection-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-connection-token.d.ts","sourceRoot":"","sources":["../../../src/node/hosting/browser-connection-token.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,OAAO,GAAG,QAAQ,SAAS,CAAC,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,8BAA8B,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAG1E,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AAEvE,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,qBACa,yCAA0C,YAAW,8BAA8B,EAAE,8BAA8B;IAG5H,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAGlE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,CAAC;IAE3D;;;;OAIG;IACH,UAAU,IAAI,IAAI;IAOlB;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC;IAapE,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,GAAG,IAAI;IAc1G,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM,GAAG,SAAS;IAQ3E,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAUjD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,sBAAsB,CAErE"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.BrowserConnectionTokenBackendContribution = exports.BROWSER_TOKEN_COOKIE_NAME = exports.BrowserConnectionToken = void 0;
19
+ exports.createBrowserConnectionToken = createBrowserConnectionToken;
20
+ const tslib_1 = require("tslib");
21
+ const cookie = require("cookie");
22
+ const crypto = require("crypto");
23
+ const inversify_1 = require("inversify");
24
+ const index_1 = require("../../common/index");
25
+ const backend_application_1 = require("../backend-application");
26
+ const uuid_1 = require("../../common/uuid");
27
+ exports.BrowserConnectionToken = Symbol('BrowserConnectionToken');
28
+ exports.BROWSER_TOKEN_COOKIE_NAME = 'theia-connection-token';
29
+ /**
30
+ * Validates WebSocket and HTTP requests using a cookie-based connection token.
31
+ *
32
+ * In browser deployments, the server generates a random token at startup and sets it
33
+ * as a `SameSite=Strict; HttpOnly` cookie on the first page load. Cross-origin pages
34
+ * cannot obtain or send this cookie, so their requests are rejected.
35
+ *
36
+ * This complements the origin validator: non-browser callers that omit the Origin
37
+ * header (e.g. Node.js scripts) still cannot reach the backend without the cookie.
38
+ *
39
+ * Skipped in Electron deployments (which use their own `ElectronSecurityToken`).
40
+ */
41
+ let BrowserConnectionTokenBackendContribution = class BrowserConnectionTokenBackendContribution {
42
+ /**
43
+ * Register the cookie middleware during `initialize()` via `EarlyExpressMiddleware`
44
+ * so it runs before `express.static()` (which is registered later during `configure()`).
45
+ * This ensures the browser receives the token cookie on the initial page load.
46
+ */
47
+ initialize() {
48
+ if (index_1.environment.electron.is()) {
49
+ return;
50
+ }
51
+ this.earlyMiddleware.handlers.push((req, res, next) => this.expressMiddleware(req, res, next));
52
+ }
53
+ /**
54
+ * Validate the connection token cookie on WebSocket upgrade requests.
55
+ * Non-browser callers that omit the Origin header (e.g. Node.js scripts)
56
+ * cannot provide the `SameSite=Strict` cookie either, so they are rejected.
57
+ */
58
+ allowWsUpgrade(request) {
59
+ if (index_1.environment.electron.is()) {
60
+ return true;
61
+ }
62
+ const token = this.getTokenFromCookie(request);
63
+ if (token) {
64
+ return this.isTokenValid(token);
65
+ }
66
+ // No cookie: reject. Legitimate browsers always have the cookie
67
+ // because it is set on the initial page load.
68
+ return false;
69
+ }
70
+ expressMiddleware(req, res, next) {
71
+ const existing = this.getTokenFromCookie(req);
72
+ if (!existing || !this.isTokenValid(existing)) {
73
+ // No cookie or stale cookie (e.g. after server restart) so (re-)issue it.
74
+ // The browser will use the fresh token on subsequent requests.
75
+ res.cookie(exports.BROWSER_TOKEN_COOKIE_NAME, this.browserConnectionToken.value, {
76
+ httpOnly: true,
77
+ sameSite: 'strict',
78
+ path: '/'
79
+ });
80
+ }
81
+ next();
82
+ }
83
+ getTokenFromCookie(req) {
84
+ const cookieHeader = req.headers.cookie;
85
+ if (cookieHeader) {
86
+ return cookie.parse(cookieHeader)[exports.BROWSER_TOKEN_COOKIE_NAME];
87
+ }
88
+ return undefined;
89
+ }
90
+ isTokenValid(token) {
91
+ try {
92
+ const received = Buffer.from(token, 'utf8');
93
+ const expected = Buffer.from(this.browserConnectionToken.value, 'utf8');
94
+ return received.byteLength === expected.byteLength && crypto.timingSafeEqual(received, expected);
95
+ }
96
+ catch (error) {
97
+ console.error(error);
98
+ }
99
+ return false;
100
+ }
101
+ };
102
+ exports.BrowserConnectionTokenBackendContribution = BrowserConnectionTokenBackendContribution;
103
+ tslib_1.__decorate([
104
+ (0, inversify_1.inject)(exports.BrowserConnectionToken),
105
+ tslib_1.__metadata("design:type", Object)
106
+ ], BrowserConnectionTokenBackendContribution.prototype, "browserConnectionToken", void 0);
107
+ tslib_1.__decorate([
108
+ (0, inversify_1.inject)(backend_application_1.EarlyExpressMiddleware),
109
+ tslib_1.__metadata("design:type", backend_application_1.EarlyExpressMiddleware)
110
+ ], BrowserConnectionTokenBackendContribution.prototype, "earlyMiddleware", void 0);
111
+ exports.BrowserConnectionTokenBackendContribution = BrowserConnectionTokenBackendContribution = tslib_1.__decorate([
112
+ (0, inversify_1.injectable)()
113
+ ], BrowserConnectionTokenBackendContribution);
114
+ /**
115
+ * Creates a new browser connection token.
116
+ */
117
+ function createBrowserConnectionToken() {
118
+ return { value: (0, uuid_1.generateUuid)() };
119
+ }
120
+ //# sourceMappingURL=browser-connection-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-connection-token.js","sourceRoot":"","sources":["../../../src/node/hosting/browser-connection-token.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=browser-connection-token.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-connection-token.spec.d.ts","sourceRoot":"","sources":["../../../src/node/hosting/browser-connection-token.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const chai_1 = require("chai");
19
+ const browser_connection_token_1 = require("./browser-connection-token");
20
+ describe('BrowserConnectionToken', () => {
21
+ it('should generate unique tokens', () => {
22
+ const token1 = (0, browser_connection_token_1.createBrowserConnectionToken)();
23
+ const token2 = (0, browser_connection_token_1.createBrowserConnectionToken)();
24
+ (0, chai_1.expect)(token1.value).to.not.equal(token2.value);
25
+ });
26
+ it('should generate tokens of sufficient length', () => {
27
+ const token = (0, browser_connection_token_1.createBrowserConnectionToken)();
28
+ (0, chai_1.expect)(token.value.length).to.be.greaterThan(16);
29
+ });
30
+ });
31
+ describe('BrowserConnectionTokenBackendContribution', () => {
32
+ const token = (0, browser_connection_token_1.createBrowserConnectionToken)();
33
+ function createContribution() {
34
+ const contribution = new browser_connection_token_1.BrowserConnectionTokenBackendContribution();
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ contribution['browserConnectionToken'] = token;
37
+ return contribution;
38
+ }
39
+ function createRequest(cookieValue) {
40
+ const request = {
41
+ headers: {}
42
+ };
43
+ if (cookieValue !== undefined) {
44
+ request.headers.cookie = `${browser_connection_token_1.BROWSER_TOKEN_COOKIE_NAME}=${cookieValue}`;
45
+ }
46
+ return request;
47
+ }
48
+ describe('allowWsUpgrade (WebSocket validation)', () => {
49
+ it('should allow WebSocket with valid token cookie', () => {
50
+ const contribution = createContribution();
51
+ (0, chai_1.expect)(contribution.allowWsUpgrade(createRequest(token.value))).to.be.true;
52
+ });
53
+ it('should reject WebSocket with no cookie', () => {
54
+ const contribution = createContribution();
55
+ (0, chai_1.expect)(contribution.allowWsUpgrade(createRequest())).to.be.false;
56
+ });
57
+ it('should reject WebSocket with invalid token', () => {
58
+ const contribution = createContribution();
59
+ (0, chai_1.expect)(contribution.allowWsUpgrade(createRequest('wrong-token'))).to.be.false;
60
+ });
61
+ it('should reject WebSocket with stale token from previous server', () => {
62
+ const contribution = createContribution();
63
+ const staleToken = (0, browser_connection_token_1.createBrowserConnectionToken)().value;
64
+ (0, chai_1.expect)(contribution.allowWsUpgrade(createRequest(staleToken))).to.be.false;
65
+ });
66
+ it('should reject WebSocket with empty token', () => {
67
+ const contribution = createContribution();
68
+ (0, chai_1.expect)(contribution.allowWsUpgrade(createRequest(''))).to.be.false;
69
+ });
70
+ it('should handle multiple cookies correctly', () => {
71
+ const contribution = createContribution();
72
+ const request = {
73
+ headers: {
74
+ cookie: `other-cookie=foo; ${browser_connection_token_1.BROWSER_TOKEN_COOKIE_NAME}=${token.value}; another=bar`
75
+ }
76
+ };
77
+ (0, chai_1.expect)(contribution.allowWsUpgrade(request)).to.be.true;
78
+ });
79
+ });
80
+ describe('expressMiddleware (HTTP cookie flow)', () => {
81
+ function callMiddleware(cookieValue) {
82
+ const contribution = createContribution();
83
+ const result = { cookieCalls: [], nextCalled: false };
84
+ const req = {
85
+ headers: {},
86
+ socket: { remoteAddress: '127.0.0.1' }
87
+ };
88
+ if (cookieValue !== undefined) {
89
+ req.headers.cookie = `${browser_connection_token_1.BROWSER_TOKEN_COOKIE_NAME}=${cookieValue}`;
90
+ }
91
+ const res = {
92
+ cookie: (name, value, options) => {
93
+ result.cookieCalls.push({ name, value, options });
94
+ }
95
+ };
96
+ const next = () => { result.nextCalled = true; };
97
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
98
+ contribution.expressMiddleware(req, res, next);
99
+ return result;
100
+ }
101
+ it('should set cookie and allow request when no cookie present', () => {
102
+ const result = callMiddleware();
103
+ (0, chai_1.expect)(result.nextCalled).to.be.true;
104
+ (0, chai_1.expect)(result.cookieCalls).to.have.length(1);
105
+ (0, chai_1.expect)(result.cookieCalls[0].name).to.equal(browser_connection_token_1.BROWSER_TOKEN_COOKIE_NAME);
106
+ (0, chai_1.expect)(result.cookieCalls[0].value).to.equal(token.value);
107
+ });
108
+ it('should set cookie with HttpOnly, SameSite=Strict, and path=/', () => {
109
+ const result = callMiddleware();
110
+ const opts = result.cookieCalls[0].options;
111
+ (0, chai_1.expect)(opts.httpOnly).to.be.true;
112
+ (0, chai_1.expect)(opts.sameSite).to.equal('strict');
113
+ (0, chai_1.expect)(opts.path).to.equal('/');
114
+ });
115
+ it('should allow request with valid cookie without re-setting it', () => {
116
+ const result = callMiddleware(token.value);
117
+ (0, chai_1.expect)(result.nextCalled).to.be.true;
118
+ (0, chai_1.expect)(result.cookieCalls).to.have.length(0);
119
+ });
120
+ it('should refresh stale cookie and allow request', () => {
121
+ const result = callMiddleware('stale-token-from-old-server');
122
+ (0, chai_1.expect)(result.nextCalled).to.be.true;
123
+ (0, chai_1.expect)(result.cookieCalls).to.have.length(1);
124
+ (0, chai_1.expect)(result.cookieCalls[0].value).to.equal(token.value);
125
+ });
126
+ });
127
+ });
128
+ //# sourceMappingURL=browser-connection-token.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-connection-token.spec.js","sourceRoot":"","sources":["../../../src/node/hosting/browser-connection-token.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ws-origin-validator.d.ts","sourceRoot":"","sources":["../../../src/node/hosting/ws-origin-validator.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,qBACa,iBAAkB,YAAW,8BAA8B;IAGpE,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAEpE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO;CAOzD"}
1
+ {"version":3,"file":"ws-origin-validator.d.ts","sourceRoot":"","sources":["../../../src/node/hosting/ws-origin-validator.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,qBACa,iBAAkB,YAAW,8BAA8B;IAGpE,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAEpE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO;CA2BzD"}
@@ -18,15 +18,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.WsOriginValidator = void 0;
19
19
  const tslib_1 = require("tslib");
20
20
  const inversify_1 = require("inversify");
21
- const url = require("url");
22
21
  const backend_application_hosts_1 = require("./backend-application-hosts");
23
22
  let WsOriginValidator = class WsOriginValidator {
24
23
  allowWsUpgrade(request) {
25
- if (!this.backendApplicationHosts.hasKnownHosts() || !request.headers.origin) {
24
+ if (!request.headers.origin) {
25
+ // Browsers omit the Origin header for same-origin requests (e.g. Socket.IO polling).
26
+ // Absent Origin is safe: cross-origin browser requests always include it.
26
27
  return true;
27
28
  }
28
- const origin = url.parse(request.headers.origin);
29
- return this.backendApplicationHosts.hosts.has(origin.host);
29
+ let originHost;
30
+ try {
31
+ originHost = new URL(request.headers.origin).host;
32
+ }
33
+ catch {
34
+ return false;
35
+ }
36
+ if (this.backendApplicationHosts.hasKnownHosts()) {
37
+ // When THEIA_HOSTS is configured, validate against the explicit allowlist.
38
+ return this.backendApplicationHosts.hosts.has(originHost);
39
+ }
40
+ // When THEIA_HOSTS is not configured (the common development/default case),
41
+ // enforce same-origin: the Origin's host must match the request's Host header.
42
+ const hostHeader = request.headers.host;
43
+ if (!hostHeader) {
44
+ return false;
45
+ }
46
+ return originHost === hostHeader;
30
47
  }
31
48
  };
32
49
  exports.WsOriginValidator = WsOriginValidator;
@@ -1 +1 @@
1
- {"version":3,"file":"ws-origin-validator.js","sourceRoot":"","sources":["../../../src/node/hosting/ws-origin-validator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,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;;;;AAGhF,yCAA+C;AAC/C,2BAA2B;AAE3B,2EAAsE;AAG/D,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAK1B,cAAc,CAAC,OAA6B;QACxC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC3E,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAK,CAAC,CAAC;IAChE,CAAC;CACJ,CAAA;AAZY,8CAAiB;AAGP;IADlB,IAAA,kBAAM,EAAC,mDAAuB,CAAC;sCACY,mDAAuB;kEAAC;4BAH3D,iBAAiB;IAD7B,IAAA,sBAAU,GAAE;GACA,iBAAiB,CAY7B"}
1
+ {"version":3,"file":"ws-origin-validator.js","sourceRoot":"","sources":["../../../src/node/hosting/ws-origin-validator.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,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;;;;AAGhF,yCAA+C;AAE/C,2EAAsE;AAG/D,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAK1B,cAAc,CAAC,OAA6B;QACxC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,qFAAqF;YACrF,0EAA0E;YAC1E,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,UAAkB,CAAC;QACvB,IAAI,CAAC;YACD,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,EAAE,CAAC;YAC/C,2EAA2E;YAC3E,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9D,CAAC;QAED,4EAA4E;QAC5E,+EAA+E;QAC/E,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,UAAU,KAAK,UAAU,CAAC;IACrC,CAAC;CACJ,CAAA;AAhCY,8CAAiB;AAGP;IADlB,IAAA,kBAAM,EAAC,mDAAuB,CAAC;sCACY,mDAAuB;kEAAC;4BAH3D,iBAAiB;IAD7B,IAAA,sBAAU,GAAE;GACA,iBAAiB,CAgC7B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ws-origin-validator.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-origin-validator.spec.d.ts","sourceRoot":"","sources":["../../../src/node/hosting/ws-origin-validator.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const chai_1 = require("chai");
19
+ const ws_origin_validator_1 = require("./ws-origin-validator");
20
+ const backend_application_hosts_1 = require("./backend-application-hosts");
21
+ describe('WsOriginValidator', () => {
22
+ function createValidator(hosts) {
23
+ const backendHosts = new backend_application_hosts_1.BackendApplicationHosts();
24
+ if (hosts) {
25
+ for (const h of hosts) {
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ backendHosts['_hosts'].add(h);
28
+ }
29
+ }
30
+ const validator = new ws_origin_validator_1.WsOriginValidator();
31
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
+ validator['backendApplicationHosts'] = backendHosts;
33
+ return validator;
34
+ }
35
+ function createRequest(origin, host) {
36
+ const request = {
37
+ headers: {}
38
+ };
39
+ if (origin !== undefined) {
40
+ request.headers.origin = origin;
41
+ }
42
+ if (host !== undefined) {
43
+ request.headers.host = host;
44
+ }
45
+ return request;
46
+ }
47
+ describe('when THEIA_HOSTS is not set', () => {
48
+ it('should allow same-origin requests', () => {
49
+ const validator = createValidator();
50
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('http://localhost:3000', 'localhost:3000'))).to.be.true;
51
+ });
52
+ it('should allow same-origin requests on default ports', () => {
53
+ const validator = createValidator();
54
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('http://myhost.com', 'myhost.com'))).to.be.true;
55
+ });
56
+ it('should reject cross-origin requests', () => {
57
+ const validator = createValidator();
58
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('http://evil.com', 'localhost:3000'))).to.be.false;
59
+ });
60
+ it('should allow requests with no Origin header (same-origin polling)', () => {
61
+ const validator = createValidator();
62
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest(undefined, 'localhost:3000'))).to.be.true;
63
+ });
64
+ it('should reject requests with no Host header when Origin is present', () => {
65
+ const validator = createValidator();
66
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('http://localhost:3000', undefined))).to.be.false;
67
+ });
68
+ it('should reject requests with malformed Origin', () => {
69
+ const validator = createValidator();
70
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('not-a-valid-url', 'localhost:3000'))).to.be.false;
71
+ });
72
+ });
73
+ describe('when THEIA_HOSTS is set', () => {
74
+ it('should allow requests from a listed host', () => {
75
+ const validator = createValidator(['myhost.com']);
76
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('http://myhost.com', 'myhost.com'))).to.be.true;
77
+ });
78
+ it('should allow requests from a listed host with port', () => {
79
+ const validator = createValidator(['myhost.com:8080']);
80
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('http://myhost.com:8080', 'myhost.com:8080'))).to.be.true;
81
+ });
82
+ it('should reject requests from an unlisted host', () => {
83
+ const validator = createValidator(['myhost.com']);
84
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('http://evil.com', 'myhost.com'))).to.be.false;
85
+ });
86
+ it('should allow requests with no Origin header (same-origin polling)', () => {
87
+ const validator = createValidator(['myhost.com']);
88
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest(undefined, 'myhost.com'))).to.be.true;
89
+ });
90
+ it('should allow when origin host is in the allowlist regardless of Host header', () => {
91
+ const validator = createValidator(['myhost.com']);
92
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('http://myhost.com', 'internal-host:3000'))).to.be.true;
93
+ });
94
+ it('should reject malformed Origin even with THEIA_HOSTS', () => {
95
+ const validator = createValidator(['myhost.com']);
96
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('not-a-valid-url', 'myhost.com'))).to.be.false;
97
+ });
98
+ });
99
+ describe('edge cases', () => {
100
+ it('should reject cross-origin with port mismatch', () => {
101
+ const validator = createValidator();
102
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('http://localhost:4000', 'localhost:3000'))).to.be.false;
103
+ });
104
+ it('should handle HTTPS origins', () => {
105
+ const validator = createValidator();
106
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('https://localhost:3000', 'localhost:3000'))).to.be.true;
107
+ });
108
+ it('should reject Origin: null (opaque origin from sandboxed pages)', () => {
109
+ const validator = createValidator();
110
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('null', 'localhost:3000'))).to.be.false;
111
+ });
112
+ it('should allow empty Origin string (treated as absent)', () => {
113
+ const validator = createValidator();
114
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('', 'localhost:3000'))).to.be.true;
115
+ });
116
+ it('should handle IPv6 same-origin', () => {
117
+ const validator = createValidator();
118
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('http://[::1]:3000', '[::1]:3000'))).to.be.true;
119
+ });
120
+ it('should strip credentials from Origin when comparing', () => {
121
+ const validator = createValidator();
122
+ // new URL('http://user:pass@localhost:3000').host === 'localhost:3000'
123
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('http://user:pass@localhost:3000', 'localhost:3000'))).to.be.true;
124
+ });
125
+ it('should ignore path component in Origin', () => {
126
+ const validator = createValidator();
127
+ (0, chai_1.expect)(validator.allowWsUpgrade(createRequest('http://localhost:3000/some/path', 'localhost:3000'))).to.be.true;
128
+ });
129
+ });
130
+ });
131
+ //# sourceMappingURL=ws-origin-validator.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-origin-validator.spec.js","sourceRoot":"","sources":["../../../src/node/hosting/ws-origin-validator.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,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,+BAA8B;AAE9B,+DAA0D;AAC1D,2EAAsE;AAEtE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAE/B,SAAS,eAAe,CAAC,KAAgB;QACrC,MAAM,YAAY,GAAG,IAAI,mDAAuB,EAAE,CAAC;QACnD,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACpB,8DAA8D;gBAC7D,YAAoB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,uCAAiB,EAAE,CAAC;QAC1C,8DAA8D;QAC7D,SAAiB,CAAC,yBAAyB,CAAC,GAAG,YAAY,CAAC;QAC7D,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,SAAS,aAAa,CAAC,MAAe,EAAE,IAAa;QACjD,MAAM,OAAO,GAAG;YACZ,OAAO,EAAE,EAA8B;SAClB,CAAC;QAC1B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAChC,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAEzC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YACzC,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAC3D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC1D,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,mBAAmB,EAAE,YAAY,CAAC,CACnD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CACrD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YACzE,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAC7C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YACzE,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,uBAAuB,EAAE,SAAS,CAAC,CACpD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACpD,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CACrD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAErC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAChD,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAClD,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,mBAAmB,EAAE,YAAY,CAAC,CACnD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC1D,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACvD,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAC7D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACpD,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAClD,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,iBAAiB,EAAE,YAAY,CAAC,CACjD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YACzE,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAClD,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CACzC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;YACnF,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAClD,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAC3D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAClD,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,iBAAiB,EAAE,YAAY,CAAC,CACjD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAExB,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACrD,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAC3D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACnC,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,CAC5D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACvE,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAC1C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,EAAE,EAAE,gBAAgB,CAAC,CACtC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,mBAAmB,EAAE,YAAY,CAAC,CACnD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC3D,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,uEAAuE;YACvE,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,iCAAiC,EAAE,gBAAgB,CAAC,CACrE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAC9C,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,IAAA,aAAM,EAAC,SAAS,CAAC,cAAc,CAC3B,aAAa,CAAC,iCAAiC,EAAE,gBAAgB,CAAC,CACrE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -6,4 +6,5 @@ export * from './messaging';
6
6
  export * from './cli';
7
7
  export * from './setting-service';
8
8
  export { FileSystemLocking } from './filesystem-locking';
9
+ export { BackendRequestAllowedContribution } from './request/backend-request-facade';
9
10
  //# sourceMappingURL=index.d.ts.map