@theia/core 1.73.0-next.7 → 1.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/README.md +26 -16
  2. package/i18n/nls.cs.json +268 -36
  3. package/i18n/nls.de.json +268 -36
  4. package/i18n/nls.es.json +268 -36
  5. package/i18n/nls.fr.json +268 -36
  6. package/i18n/nls.hu.json +268 -36
  7. package/i18n/nls.it.json +268 -36
  8. package/i18n/nls.ja.json +268 -36
  9. package/i18n/nls.json +268 -36
  10. package/i18n/nls.ko.json +268 -36
  11. package/i18n/nls.pl.json +268 -36
  12. package/i18n/nls.pt-br.json +268 -36
  13. package/i18n/nls.ru.json +268 -36
  14. package/i18n/nls.tr.json +268 -36
  15. package/i18n/nls.zh-cn.json +268 -36
  16. package/i18n/nls.zh-tw.json +268 -36
  17. package/lib/browser/authentication-service.d.ts +2 -0
  18. package/lib/browser/authentication-service.d.ts.map +1 -1
  19. package/lib/browser/authentication-service.js +8 -2
  20. package/lib/browser/authentication-service.js.map +1 -1
  21. package/lib/browser/catalog.json +251 -72
  22. package/lib/browser/frontend-application.d.ts +2 -0
  23. package/lib/browser/frontend-application.d.ts.map +1 -1
  24. package/lib/browser/frontend-application.js +15 -9
  25. package/lib/browser/frontend-application.js.map +1 -1
  26. package/lib/browser/json-schema-store.d.ts +2 -0
  27. package/lib/browser/json-schema-store.d.ts.map +1 -1
  28. package/lib/browser/json-schema-store.js +8 -2
  29. package/lib/browser/json-schema-store.js.map +1 -1
  30. package/lib/browser/keybinding.js +2 -1
  31. package/lib/browser/keybinding.js.map +1 -1
  32. package/lib/browser/markdown-rendering/markdown.d.ts +1 -1
  33. package/lib/browser/markdown-rendering/markdown.d.ts.map +1 -1
  34. package/lib/browser/markdown-rendering/markdown.js +1 -1
  35. package/lib/browser/markdown-rendering/markdown.js.map +1 -1
  36. package/lib/browser/menu/composite-menu-node.js +4 -4
  37. package/lib/browser/menu/composite-menu-node.js.map +1 -1
  38. package/lib/browser/messaging/ws-connection-source.d.ts.map +1 -1
  39. package/lib/browser/messaging/ws-connection-source.js +1 -6
  40. package/lib/browser/messaging/ws-connection-source.js.map +1 -1
  41. package/lib/browser/preferences/frontend-config-preference-contributions.d.ts +2 -0
  42. package/lib/browser/preferences/frontend-config-preference-contributions.d.ts.map +1 -1
  43. package/lib/browser/preferences/frontend-config-preference-contributions.js +7 -1
  44. package/lib/browser/preferences/frontend-config-preference-contributions.js.map +1 -1
  45. package/lib/browser/preferences/preference-proxy.spec.js +7 -0
  46. package/lib/browser/preferences/preference-proxy.spec.js.map +1 -1
  47. package/lib/browser/preferences/preference-schema-provider.spec.js +3 -0
  48. package/lib/browser/preferences/preference-schema-provider.spec.js.map +1 -1
  49. package/lib/browser/preferences/preference-validation-service.d.ts +2 -0
  50. package/lib/browser/preferences/preference-validation-service.d.ts.map +1 -1
  51. package/lib/browser/preferences/preference-validation-service.js +11 -5
  52. package/lib/browser/preferences/preference-validation-service.js.map +1 -1
  53. package/lib/browser/preferences/preference-validation-service.spec.js +2 -0
  54. package/lib/browser/preferences/preference-validation-service.spec.js.map +1 -1
  55. package/lib/browser/secondary-window-handler.d.ts +2 -0
  56. package/lib/browser/secondary-window-handler.d.ts.map +1 -1
  57. package/lib/browser/secondary-window-handler.js +12 -6
  58. package/lib/browser/secondary-window-handler.js.map +1 -1
  59. package/lib/browser/shell/application-shell.d.ts +2 -0
  60. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  61. package/lib/browser/shell/application-shell.js +9 -3
  62. package/lib/browser/shell/application-shell.js.map +1 -1
  63. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js +6 -6
  64. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js.map +1 -1
  65. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +2 -2
  66. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -1
  67. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js +131 -0
  68. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js.map +1 -1
  69. package/lib/browser/status-bar/status-bar.d.ts +2 -2
  70. package/lib/browser/status-bar/status-bar.d.ts.map +1 -1
  71. package/lib/browser/status-bar/status-bar.js.map +1 -1
  72. package/lib/browser/test/jsdom.d.ts +4 -0
  73. package/lib/browser/test/jsdom.d.ts.map +1 -1
  74. package/lib/browser/test/jsdom.js +18 -0
  75. package/lib/browser/test/jsdom.js.map +1 -1
  76. package/lib/browser/tree/tree-container.spec.js +4 -0
  77. package/lib/browser/tree/tree-container.spec.js.map +1 -1
  78. package/lib/browser/tree/tree-model.d.ts +1 -0
  79. package/lib/browser/tree/tree-model.d.ts.map +1 -1
  80. package/lib/browser/tree/tree-model.js +3 -0
  81. package/lib/browser/tree/tree-model.js.map +1 -1
  82. package/lib/browser/tree/tree-view-welcome-widget.d.ts +1 -0
  83. package/lib/browser/tree/tree-view-welcome-widget.d.ts.map +1 -1
  84. package/lib/browser/tree/tree-view-welcome-widget.js +8 -6
  85. package/lib/browser/tree/tree-view-welcome-widget.js.map +1 -1
  86. package/lib/browser/tree/tree-view-welcome-widget.spec.d.ts +2 -0
  87. package/lib/browser/tree/tree-view-welcome-widget.spec.d.ts.map +1 -0
  88. package/lib/browser/tree/tree-view-welcome-widget.spec.js +68 -0
  89. package/lib/browser/tree/tree-view-welcome-widget.spec.js.map +1 -0
  90. package/lib/browser/tree/tree-widget.js +2 -2
  91. package/lib/browser/tree/tree-widget.js.map +1 -1
  92. package/lib/browser/tree/tree.d.ts +24 -2
  93. package/lib/browser/tree/tree.d.ts.map +1 -1
  94. package/lib/browser/tree/tree.js +20 -2
  95. package/lib/browser/tree/tree.js.map +1 -1
  96. package/lib/browser/tree/tree.spec.js +27 -0
  97. package/lib/browser/tree/tree.spec.js.map +1 -1
  98. package/lib/browser/window/default-window-service.d.ts +2 -1
  99. package/lib/browser/window/default-window-service.d.ts.map +1 -1
  100. package/lib/browser/window/default-window-service.js +10 -5
  101. package/lib/browser/window/default-window-service.js.map +1 -1
  102. package/lib/browser/window/default-window-service.spec.js +2 -0
  103. package/lib/browser/window/default-window-service.spec.js.map +1 -1
  104. package/lib/browser-only/messaging/frontend-only-service-connection-provider.d.ts +2 -0
  105. package/lib/browser-only/messaging/frontend-only-service-connection-provider.d.ts.map +1 -1
  106. package/lib/browser-only/messaging/frontend-only-service-connection-provider.js +8 -2
  107. package/lib/browser-only/messaging/frontend-only-service-connection-provider.js.map +1 -1
  108. package/lib/common/command.d.ts +2 -0
  109. package/lib/common/command.d.ts.map +1 -1
  110. package/lib/common/command.js +10 -4
  111. package/lib/common/command.js.map +1 -1
  112. package/lib/common/preferences/injectable-preference-proxy.d.ts +3 -3
  113. package/lib/common/preferences/injectable-preference-proxy.d.ts.map +1 -1
  114. package/lib/common/preferences/injectable-preference-proxy.js +6 -1
  115. package/lib/common/preferences/injectable-preference-proxy.js.map +1 -1
  116. package/lib/common/preferences/preference-proxy.d.ts.map +1 -1
  117. package/lib/common/preferences/preference-proxy.js +6 -1
  118. package/lib/common/preferences/preference-proxy.js.map +1 -1
  119. package/lib/electron-main/electron-main-application.d.ts.map +1 -1
  120. package/lib/electron-main/electron-main-application.js +4 -2
  121. package/lib/electron-main/electron-main-application.js.map +1 -1
  122. package/lib/electron-node/hosting/electron-ws-origin-validator.d.ts.map +1 -1
  123. package/lib/electron-node/hosting/electron-ws-origin-validator.js +5 -2
  124. package/lib/electron-node/hosting/electron-ws-origin-validator.js.map +1 -1
  125. package/lib/electron-node/hosting/electron-ws-origin-validator.spec.d.ts +2 -0
  126. package/lib/electron-node/hosting/electron-ws-origin-validator.spec.d.ts.map +1 -0
  127. package/lib/electron-node/hosting/electron-ws-origin-validator.spec.js +59 -0
  128. package/lib/electron-node/hosting/electron-ws-origin-validator.spec.js.map +1 -0
  129. package/lib/electron-node/request/electron-backend-request-service.d.ts +2 -0
  130. package/lib/electron-node/request/electron-backend-request-service.d.ts.map +1 -1
  131. package/lib/electron-node/request/electron-backend-request-service.js +7 -1
  132. package/lib/electron-node/request/electron-backend-request-service.js.map +1 -1
  133. package/lib/electron-node/token/electron-token-backend-contribution.d.ts +2 -0
  134. package/lib/electron-node/token/electron-token-backend-contribution.d.ts.map +1 -1
  135. package/lib/electron-node/token/electron-token-backend-contribution.js +7 -1
  136. package/lib/electron-node/token/electron-token-backend-contribution.js.map +1 -1
  137. package/lib/electron-node/token/electron-token-validator.d.ts +2 -0
  138. package/lib/electron-node/token/electron-token-validator.d.ts.map +1 -1
  139. package/lib/electron-node/token/electron-token-validator.js +7 -1
  140. package/lib/electron-node/token/electron-token-validator.js.map +1 -1
  141. package/lib/node/backend-application-module.d.ts.map +1 -1
  142. package/lib/node/backend-application-module.js +2 -0
  143. package/lib/node/backend-application-module.js.map +1 -1
  144. package/lib/node/backend-application.d.ts +11 -0
  145. package/lib/node/backend-application.d.ts.map +1 -1
  146. package/lib/node/backend-application.js +40 -12
  147. package/lib/node/backend-application.js.map +1 -1
  148. package/lib/node/backend-application.spec.js +4 -2
  149. package/lib/node/backend-application.spec.js.map +1 -1
  150. package/lib/node/hosting/backend-hosting-module.d.ts.map +1 -1
  151. package/lib/node/hosting/backend-hosting-module.js +7 -0
  152. package/lib/node/hosting/backend-hosting-module.js.map +1 -1
  153. package/lib/node/hosting/browser-connection-token.d.ts +46 -0
  154. package/lib/node/hosting/browser-connection-token.d.ts.map +1 -0
  155. package/lib/node/hosting/browser-connection-token.js +120 -0
  156. package/lib/node/hosting/browser-connection-token.js.map +1 -0
  157. package/lib/node/hosting/browser-connection-token.spec.d.ts +2 -0
  158. package/lib/node/hosting/browser-connection-token.spec.d.ts.map +1 -0
  159. package/lib/node/hosting/browser-connection-token.spec.js +128 -0
  160. package/lib/node/hosting/browser-connection-token.spec.js.map +1 -0
  161. package/lib/node/hosting/ws-origin-validator.d.ts.map +1 -1
  162. package/lib/node/hosting/ws-origin-validator.js +21 -4
  163. package/lib/node/hosting/ws-origin-validator.js.map +1 -1
  164. package/lib/node/hosting/ws-origin-validator.spec.d.ts +2 -0
  165. package/lib/node/hosting/ws-origin-validator.spec.d.ts.map +1 -0
  166. package/lib/node/hosting/ws-origin-validator.spec.js +131 -0
  167. package/lib/node/hosting/ws-origin-validator.spec.js.map +1 -0
  168. package/lib/node/index.d.ts +1 -0
  169. package/lib/node/index.d.ts.map +1 -1
  170. package/lib/node/index.js +3 -1
  171. package/lib/node/index.js.map +1 -1
  172. package/lib/node/logger-cli-contribution.d.ts +6 -0
  173. package/lib/node/logger-cli-contribution.d.ts.map +1 -1
  174. package/lib/node/logger-cli-contribution.js +28 -5
  175. package/lib/node/logger-cli-contribution.js.map +1 -1
  176. package/lib/node/logger-cli-contribution.spec.js +54 -0
  177. package/lib/node/logger-cli-contribution.spec.js.map +1 -1
  178. package/lib/node/messaging/default-messaging-service.d.ts +2 -0
  179. package/lib/node/messaging/default-messaging-service.d.ts.map +1 -1
  180. package/lib/node/messaging/default-messaging-service.js +8 -2
  181. package/lib/node/messaging/default-messaging-service.js.map +1 -1
  182. package/lib/node/messaging/test/default-messaging-service.spec.js +2 -0
  183. package/lib/node/messaging/test/default-messaging-service.spec.js.map +1 -1
  184. package/lib/node/messaging/websocket-endpoint.d.ts +7 -0
  185. package/lib/node/messaging/websocket-endpoint.d.ts.map +1 -1
  186. package/lib/node/messaging/websocket-endpoint.js +21 -6
  187. package/lib/node/messaging/websocket-endpoint.js.map +1 -1
  188. package/lib/node/process-utils.d.ts +2 -0
  189. package/lib/node/process-utils.d.ts.map +1 -1
  190. package/lib/node/process-utils.js +8 -2
  191. package/lib/node/process-utils.js.map +1 -1
  192. package/lib/node/process-utils.spec.js +11 -9
  193. package/lib/node/process-utils.spec.js.map +1 -1
  194. package/lib/node/request/backend-request-facade.d.ts +19 -0
  195. package/lib/node/request/backend-request-facade.d.ts.map +1 -1
  196. package/lib/node/request/backend-request-facade.js +93 -3
  197. package/lib/node/request/backend-request-facade.js.map +1 -1
  198. package/lib/node/request/backend-request-facade.spec.d.ts +2 -0
  199. package/lib/node/request/backend-request-facade.spec.d.ts.map +1 -0
  200. package/lib/node/request/backend-request-facade.spec.js +171 -0
  201. package/lib/node/request/backend-request-facade.spec.js.map +1 -0
  202. package/package.json +29 -20
  203. package/src/browser/authentication-service.ts +6 -3
  204. package/src/browser/frontend-application.ts +13 -9
  205. package/src/browser/json-schema-store.ts +6 -2
  206. package/src/browser/keybinding.ts +2 -2
  207. package/src/browser/markdown-rendering/markdown.tsx +2 -2
  208. package/src/browser/menu/composite-menu-node.ts +4 -4
  209. package/src/browser/messaging/ws-connection-source.ts +1 -6
  210. package/src/browser/preferences/frontend-config-preference-contributions.ts +7 -2
  211. package/src/browser/preferences/preference-proxy.spec.ts +8 -0
  212. package/src/browser/preferences/preference-schema-provider.spec.ts +5 -0
  213. package/src/browser/preferences/preference-validation-service.spec.ts +3 -1
  214. package/src/browser/preferences/preference-validation-service.ts +9 -6
  215. package/src/browser/secondary-window-handler.ts +11 -7
  216. package/src/browser/shell/application-shell.ts +8 -4
  217. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.tsx +6 -6
  218. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +2 -2
  219. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.ts +159 -1
  220. package/src/browser/status-bar/status-bar.tsx +3 -3
  221. package/src/browser/test/jsdom.ts +18 -0
  222. package/src/browser/tree/tree-container.spec.ts +6 -0
  223. package/src/browser/tree/tree-model.ts +4 -0
  224. package/src/browser/tree/tree-view-welcome-widget.spec.ts +82 -0
  225. package/src/browser/tree/tree-view-welcome-widget.tsx +10 -11
  226. package/src/browser/tree/tree-widget.tsx +2 -2
  227. package/src/browser/tree/tree.spec.ts +30 -0
  228. package/src/browser/tree/tree.ts +31 -4
  229. package/src/browser/window/default-window-service.spec.ts +3 -1
  230. package/src/browser/window/default-window-service.ts +9 -6
  231. package/src/browser-only/messaging/frontend-only-service-connection-provider.ts +8 -3
  232. package/src/common/command.ts +8 -4
  233. package/src/common/i18n/nls.metadata.json +2659 -374
  234. package/src/common/preferences/injectable-preference-proxy.ts +10 -4
  235. package/src/common/preferences/preference-proxy.ts +10 -4
  236. package/src/electron-main/electron-main-application.ts +4 -2
  237. package/src/electron-node/hosting/electron-ws-origin-validator.spec.ts +69 -0
  238. package/src/electron-node/hosting/electron-ws-origin-validator.ts +5 -2
  239. package/src/electron-node/request/electron-backend-request-service.ts +6 -2
  240. package/src/electron-node/token/electron-token-backend-contribution.ts +6 -2
  241. package/src/electron-node/token/electron-token-validator.ts +6 -2
  242. package/src/node/backend-application-module.ts +4 -2
  243. package/src/node/backend-application.spec.ts +5 -3
  244. package/src/node/backend-application.ts +33 -11
  245. package/src/node/hosting/backend-hosting-module.ts +10 -0
  246. package/src/node/hosting/browser-connection-token.spec.ts +167 -0
  247. package/src/node/hosting/browser-connection-token.ts +126 -0
  248. package/src/node/hosting/ws-origin-validator.spec.ts +193 -0
  249. package/src/node/hosting/ws-origin-validator.ts +23 -4
  250. package/src/node/index.ts +1 -0
  251. package/src/node/logger-cli-contribution.spec.ts +65 -0
  252. package/src/node/logger-cli-contribution.ts +32 -5
  253. package/src/node/messaging/default-messaging-service.ts +6 -2
  254. package/src/node/messaging/test/default-messaging-service.spec.ts +3 -1
  255. package/src/node/messaging/websocket-endpoint.ts +23 -7
  256. package/src/node/process-utils.spec.ts +12 -9
  257. package/src/node/process-utils.ts +7 -3
  258. package/src/node/request/backend-request-facade.spec.ts +203 -0
  259. package/src/node/request/backend-request-facade.ts +108 -3
@@ -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":"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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAgBA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAgBA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC"}
package/lib/node/index.js CHANGED
@@ -15,7 +15,7 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.FileSystemLocking = void 0;
18
+ exports.BackendRequestAllowedContribution = exports.FileSystemLocking = void 0;
19
19
  const tslib_1 = require("tslib");
20
20
  tslib_1.__exportStar(require("./backend-application"), exports);
21
21
  tslib_1.__exportStar(require("./backend-global"), exports);
@@ -26,4 +26,6 @@ tslib_1.__exportStar(require("./cli"), exports);
26
26
  tslib_1.__exportStar(require("./setting-service"), exports);
27
27
  var filesystem_locking_1 = require("./filesystem-locking");
28
28
  Object.defineProperty(exports, "FileSystemLocking", { enumerable: true, get: function () { return filesystem_locking_1.FileSystemLocking; } });
29
+ var backend_request_facade_1 = require("./request/backend-request-facade");
30
+ Object.defineProperty(exports, "BackendRequestAllowedContribution", { enumerable: true, get: function () { return backend_request_facade_1.BackendRequestAllowedContribution; } });
29
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.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,gEAAsC;AACtC,2DAAiC;AACjC,kDAAwB;AACxB,6DAAmC;AACnC,sDAA4B;AAC5B,gDAAsB;AACtB,4DAAkC;AAClC,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.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,gEAAsC;AACtC,2DAAiC;AACjC,kDAAwB;AACxB,6DAAmC;AACnC,sDAA4B;AAC5B,gDAAsB;AACtB,4DAAkC;AAClC,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAC1B,2EAAqF;AAA5E,2IAAA,iCAAiC,OAAA"}
@@ -15,6 +15,7 @@ export interface LogLevels {
15
15
  */
16
16
  export declare class LogLevelCliContribution implements CliContribution, Disposable {
17
17
  protected _logLevels: LogLevels;
18
+ protected wildcardRegexCache: Map<string, RegExp>;
18
19
  protected asyncSubscriptions: AsyncSubscription[];
19
20
  protected toDispose: DisposableCollection;
20
21
  /**
@@ -38,5 +39,10 @@ export declare class LogLevelCliContribution implements CliContribution, Disposa
38
39
  * Converts the string to a `LogLevel`. Throws an error if invalid.
39
40
  */
40
41
  protected readLogLevelString(levelStr: string, errMessagePrefix: string): LogLevel;
42
+ /**
43
+ * Converts a wildcard string into a strict regular expression and caches it.
44
+ * Example: "ai-core*" -> /^ai-core.*$/
45
+ */
46
+ protected getWildcardRegex(pattern: string): RegExp;
41
47
  }
42
48
  //# sourceMappingURL=logger-cli-contribution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger-cli-contribution.d.ts","sourceRoot":"","sources":["../../src/node/logger-cli-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAa,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAE7D,wCAAwC;AACxC,MAAM,WAAW,SAAS;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBACa,uBAAwB,YAAW,eAAe,EAAE,UAAU;IAEvE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAM;IACrC,SAAS,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,CAAM;IACvD,SAAS,CAAC,SAAS,uBAA8B;IAEjD;;OAEG;IACH,SAAS,CAAC,gBAAgB,EAAE,QAAQ,CAAiB;IAErD,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE5B,SAAS,CAAC,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAuB;IAErE,IAAI,eAAe,IAAI,QAAQ,CAE9B;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;;IAMD,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAoB3B,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;cAgDxC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B7D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;cAOd,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BnE,IAAI,kBAAkB,IAAI,KAAK,CAAC,IAAI,CAAC,CAEpC;IAED,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ;IAUzC;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,QAAQ;CASrF"}
1
+ {"version":3,"file":"logger-cli-contribution.d.ts","sourceRoot":"","sources":["../../src/node/logger-cli-contribution.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAa,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAG7D,wCAAwC;AACxC,MAAM,WAAW,SAAS;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBACa,uBAAwB,YAAW,eAAe,EAAE,UAAU;IAEvE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAM;IACrC,SAAS,CAAC,kBAAkB,sBAA6B;IACzD,SAAS,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,CAAM;IACvD,SAAS,CAAC,SAAS,uBAA8B;IAEjD;;OAEG;IACH,SAAS,CAAC,gBAAgB,EAAE,QAAQ,CAAiB;IAErD,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE5B,SAAS,CAAC,qBAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAuB;IAErE,IAAI,eAAe,IAAI,QAAQ,CAE9B;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;;IAMD,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI;IAoB3B,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;cAgDxC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B7D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;cAOd,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BnE,IAAI,kBAAkB,IAAI,KAAK,CAAC,IAAI,CAAC,CAEpC;IAED,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ;IAoBzC;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,QAAQ;IAUlF;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAStD"}
@@ -24,6 +24,7 @@ const watcher_1 = require("@parcel/watcher");
24
24
  const event_1 = require("../common/event");
25
25
  const path = require("path");
26
26
  const common_1 = require("../common");
27
+ const strings_1 = require("../common/strings");
27
28
  /**
28
29
  * Parses command line switches related to log levels, then watches the log
29
30
  * levels file (if specified) for changes. This is the source of truth for
@@ -41,6 +42,7 @@ let LogLevelCliContribution = class LogLevelCliContribution {
41
42
  }
42
43
  constructor() {
43
44
  this._logLevels = {};
45
+ this.wildcardRegexCache = new Map();
44
46
  this.asyncSubscriptions = [];
45
47
  this.toDispose = new common_1.DisposableCollection();
46
48
  /**
@@ -162,6 +164,7 @@ let LogLevelCliContribution = class LogLevelCliContribution {
162
164
  }
163
165
  this._defaultLogLevel = newDefaultLogLevel;
164
166
  this._logLevels = newLogLevels;
167
+ this.wildcardRegexCache.clear();
165
168
  console.log(`Successfully read new log config from ${filename}.`);
166
169
  }
167
170
  catch (e) {
@@ -172,13 +175,20 @@ let LogLevelCliContribution = class LogLevelCliContribution {
172
175
  return this.logConfigChangedEvent.event;
173
176
  }
174
177
  logLevelFor(loggerName) {
175
- const level = this._logLevels[loggerName];
176
- if (level !== undefined) {
177
- return level;
178
+ if (loggerName in this._logLevels) {
179
+ return this._logLevels[loggerName];
178
180
  }
179
- else {
180
- return this.defaultLogLevel;
181
+ const keys = Object.keys(this._logLevels);
182
+ for (let i = keys.length - 1; i >= 0; i--) {
183
+ const pattern = keys[i];
184
+ if (pattern.includes('*')) {
185
+ const regex = this.getWildcardRegex(pattern);
186
+ if (regex.test(loggerName)) {
187
+ return this._logLevels[pattern];
188
+ }
189
+ }
181
190
  }
191
+ return this.defaultLogLevel;
182
192
  }
183
193
  /**
184
194
  * Converts the string to a `LogLevel`. Throws an error if invalid.
@@ -190,6 +200,19 @@ let LogLevelCliContribution = class LogLevelCliContribution {
190
200
  }
191
201
  return level;
192
202
  }
203
+ /**
204
+ * Converts a wildcard string into a strict regular expression and caches it.
205
+ * Example: "ai-core*" -> /^ai-core.*$/
206
+ */
207
+ getWildcardRegex(pattern) {
208
+ let regex = this.wildcardRegexCache.get(pattern);
209
+ if (!regex) {
210
+ const escapedPattern = pattern.split('*').map(strings_1.escapeRegExpCharacters).join('.*');
211
+ regex = new RegExp(`^${escapedPattern}$`);
212
+ this.wildcardRegexCache.set(pattern, regex);
213
+ }
214
+ return regex;
215
+ }
193
216
  };
194
217
  exports.LogLevelCliContribution = LogLevelCliContribution;
195
218
  exports.LogLevelCliContribution = LogLevelCliContribution = tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"logger-cli-contribution.js","sourceRoot":"","sources":["../../src/node/logger-cli-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger-cli-contribution.js","sourceRoot":"","sources":["../../src/node/logger-cli-contribution.ts"],"names":[],"mappings":"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"}
@@ -215,5 +215,59 @@ describe('log-level-cli-contribution', () => {
215
215
  world: logger_1.LogLevel.FATAL,
216
216
  });
217
217
  });
218
+ describe('Wildcard Matching', () => {
219
+ async function setupLogLevels(levels) {
220
+ const file = track.openSync();
221
+ fs.writeFileSync(file.fd, JSON.stringify({
222
+ defaultLevel: 'info',
223
+ levels
224
+ }));
225
+ fs.fsyncSync(file.fd);
226
+ fs.closeSync(file.fd);
227
+ const args = await yargs.parse(['--log-config', file.path]);
228
+ await cli.setArguments(args);
229
+ }
230
+ it('should respect exact matches without wildcards', async () => {
231
+ await setupLogLevels({
232
+ 'unrelated:Service': 'debug'
233
+ });
234
+ (0, chai_1.expect)(cli.logLevelFor('unrelated:Service')).to.equal(logger_1.LogLevel.DEBUG);
235
+ (0, chai_1.expect)(cli.logLevelFor('something-else')).to.equal(logger_1.LogLevel.INFO);
236
+ });
237
+ it('should match prefix wildcards', async () => {
238
+ await setupLogLevels({
239
+ 'ai-core*': 'error'
240
+ });
241
+ (0, chai_1.expect)(cli.logLevelFor('ai-core:SomeOtherService')).to.equal(logger_1.LogLevel.ERROR);
242
+ });
243
+ it('should match suffix wildcards', async () => {
244
+ await setupLogLevels({
245
+ '*TokenUsageFrontendServiceImpl': 'warn'
246
+ });
247
+ (0, chai_1.expect)(cli.logLevelFor('my-package:MyTokenUsageFrontendServiceImpl')).to.equal(logger_1.LogLevel.WARN);
248
+ });
249
+ it('should match middle wildcards', async () => {
250
+ await setupLogLevels({
251
+ '*ai*:*': 'warn'
252
+ });
253
+ (0, chai_1.expect)(cli.logLevelFor('foo-ai-bar:SomeService')).to.equal(logger_1.LogLevel.WARN);
254
+ });
255
+ it('should enforce perfect match first, then last wildcard wins', async () => {
256
+ await setupLogLevels({
257
+ 'ai-core*': 'error',
258
+ '*ai*:*': 'warn',
259
+ 'ai-core:SpecificService': 'debug'
260
+ });
261
+ (0, chai_1.expect)(cli.logLevelFor('ai-core:SpecificService')).to.equal(logger_1.LogLevel.DEBUG);
262
+ (0, chai_1.expect)(cli.logLevelFor('ai-core:OtherService')).to.equal(logger_1.LogLevel.WARN);
263
+ });
264
+ it('should properly escape regex specifics like periods', async () => {
265
+ await setupLogLevels({
266
+ '.*': 'error'
267
+ });
268
+ (0, chai_1.expect)(cli.logLevelFor('anything-else')).to.equal(logger_1.LogLevel.INFO);
269
+ (0, chai_1.expect)(cli.logLevelFor('.*')).to.equal(logger_1.LogLevel.ERROR);
270
+ });
271
+ });
218
272
  });
219
273
  //# sourceMappingURL=logger-cli-contribution.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger-cli-contribution.spec.js","sourceRoot":"","sources":["../../src/node/logger-cli-contribution.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger-cli-contribution.spec.js","sourceRoot":"","sources":["../../src/node/logger-cli-contribution.spec.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,+BAA8B;AAC9B,+BAA+B;AAC/B,6BAA6B;AAC7B,yBAAyB;AACzB,yCAAuD;AACvD,6CAA4C;AAC5C,uEAAoE;AACpE,+BAA+B;AAC/B,sCAA6D;AAE7D,oEAAoE;AACpE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAE3B,IAAI,GAA4B,CAAC;AACjC,IAAI,eAA+B,CAAC;AACpC,IAAI,SAAoB,CAAC;AACzB,IAAI,cAAoC,CAAC;AAEzC,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAExC,MAAM,CAAC,GAAG,EAAE;QACR,cAAc,GAAG,IAAI,6BAAoB,CACrC,mBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAC/C,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,EAAE;QACP,cAAc,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,EAAE;QACZ,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;QAE5B,MAAM,MAAM,GAAG,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;YACtC,IAAI,CAAC,iDAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvB,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,iDAAuB,CAAC,CAAC;QAC7C,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAErB,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACjB,eAAe,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACpB,SAAS,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,IAAI,GAAoB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACvE,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAA,aAAM,EAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;YACrC,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE;gBACJ,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,OAAO;aACnB;SACJ,CAAC,CAAC,CAAC;QACJ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtB,MAAM,IAAI,GAAoB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAA,aAAM,EAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAA,aAAM,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;YACtB,KAAK,EAAE,iBAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,iBAAQ,CAAC,KAAK;SACxB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,IAAI,GAAoB,MAAM,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAA,aAAM,EAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAA,aAAM,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;YACrC,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE;gBACJ,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,OAAO;aACnB;SACJ,CAAC,CAAC,CAAC;QAEJ,MAAM,IAAI,GAAoB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,8BAA8B,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;YACrC,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE;gBACJ,OAAO,EAAE,QAAQ;gBACjB,OAAO,EAAE,OAAO;aACnB;SACJ,CAAC,CAAC,CAAC;QAEJ,MAAM,IAAI,GAAoB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,uCAAuC,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,IAAI,GAAoB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;QACjF,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YACxB,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE;gBACJ,OAAO,EAAE,QAAQ;gBACjB,OAAO,EAAE,OAAO;aACnB;SACJ,CAAC,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;QAEtC,MAAM,IAAI,GAAoB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,eAAe,EAAE,+BAA+B,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,0EAA0E;IAC1E,oDAAoD;IACpD,EAAE;IACF,mJAAmJ;IACnJ,EAAE,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC/C,IAAI,QAAgB,CAAC;QACrB,CAAC;YACG,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;gBACrC,YAAY,EAAE,MAAM;gBACpB,MAAM,EAAE;oBACJ,OAAO,EAAE,OAAO;oBAChB,OAAO,EAAE,OAAO;iBACnB;aACJ,CAAC,CAAC,CAAC;YACJ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEtB,MAAM,IAAI,GAAoB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7E,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,IAAA,aAAM,EAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAA,aAAM,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;YACtB,KAAK,EAAE,iBAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,iBAAQ,CAAC,KAAK;SACxB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YACzC,GAAG,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAExC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAEtC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACrB,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;gBAChC,YAAY,EAAE,OAAO;gBACrB,MAAM,EAAE;oBACJ,SAAS,EAAE,OAAO;oBAClB,OAAO,EAAE,OAAO;iBACnB;aACJ,CAAC,CAAC,CAAC;YACJ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACjB,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,CAAC;QAEf,IAAA,aAAM,EAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAA,aAAM,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;YACtB,OAAO,EAAE,iBAAQ,CAAC,KAAK;YACvB,KAAK,EAAE,iBAAQ,CAAC,KAAK;SACxB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK;QACvF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;YACrC,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE;gBACJ,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,OAAO;aACnB;SACJ,CAAC,CAAC,CAAC;QACJ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtB,MAAM,IAAI,GAAoB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAA,aAAM,EAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAA,aAAM,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;YACtB,KAAK,EAAE,iBAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,iBAAQ,CAAC,KAAK;SACxB,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAClD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC9B,YAAY,EAAE,OAAO;gBACrB,MAAM,EAAE;oBACJ,SAAS,EAAE,OAAO;oBAClB,OAAO,EAAE,OAAO;iBACnB;aACJ,CAAC,CAAC;YACH,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAChC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEtB,4DAA4D;YAC5D,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,MAAM,iBAAiB,CAAC;QAExB,IAAA,aAAM,EAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAA,aAAM,EAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;YACtB,KAAK,EAAE,iBAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,iBAAQ,CAAC,KAAK;SACxB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAE/B,KAAK,UAAU,cAAc,CAAC,MAAiC;YAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC9B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC;gBACrC,YAAY,EAAE,MAAM;gBACpB,MAAM;aACT,CAAC,CAAC,CAAC;YACJ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEtB,MAAM,IAAI,GAAoB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7E,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,cAAc,CAAC;gBACjB,mBAAmB,EAAE,OAAO;aAC/B,CAAC,CAAC;YACH,IAAA,aAAM,EAAC,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;YACtE,IAAA,aAAM,EAAC,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,cAAc,CAAC;gBACjB,UAAU,EAAE,OAAO;aACtB,CAAC,CAAC;YACH,IAAA,aAAM,EAAC,GAAG,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,cAAc,CAAC;gBACjB,gCAAgC,EAAE,MAAM;aAC3C,CAAC,CAAC;YACH,IAAA,aAAM,EAAC,GAAG,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;QAClG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,cAAc,CAAC;gBACjB,QAAQ,EAAE,MAAM;aACnB,CAAC,CAAC;YACH,IAAA,aAAM,EAAC,GAAG,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,cAAc,CAAC;gBACjB,UAAU,EAAE,OAAO;gBACnB,QAAQ,EAAE,MAAM;gBAChB,yBAAyB,EAAE,OAAO;aACrC,CAAC,CAAC;YAEH,IAAA,aAAM,EAAC,GAAG,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;YAE5E,IAAA,aAAM,EAAC,GAAG,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,cAAc,CAAC;gBACjB,IAAI,EAAE,OAAO;aAChB,CAAC,CAAC;YACH,IAAA,aAAM,EAAC,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;YACjE,IAAA,aAAM,EAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}