@theia/core 1.64.0-next.28 → 1.64.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 (95) hide show
  1. package/README.md +6 -6
  2. package/i18n/nls.cs.json +59 -9
  3. package/i18n/nls.de.json +59 -9
  4. package/i18n/nls.es.json +59 -9
  5. package/i18n/nls.fr.json +59 -9
  6. package/i18n/nls.hu.json +59 -9
  7. package/i18n/nls.it.json +59 -9
  8. package/i18n/nls.ja.json +59 -9
  9. package/i18n/nls.json +63 -13
  10. package/i18n/nls.ko.json +59 -9
  11. package/i18n/nls.pl.json +59 -9
  12. package/i18n/nls.pt-br.json +59 -9
  13. package/i18n/nls.ru.json +59 -9
  14. package/i18n/nls.tr.json +59 -9
  15. package/i18n/nls.zh-cn.json +59 -9
  16. package/i18n/nls.zh-tw.json +59 -9
  17. package/lib/browser/catalog.json +149 -15
  18. package/lib/browser/context-key-service.d.ts +4 -0
  19. package/lib/browser/context-key-service.d.ts.map +1 -1
  20. package/lib/browser/context-key-service.js.map +1 -1
  21. package/lib/browser/frontend-application-module.js +1 -1
  22. package/lib/browser/frontend-application-module.js.map +1 -1
  23. package/lib/browser/menu/browser-menu-plugin.d.ts +1 -1
  24. package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
  25. package/lib/browser/menu/browser-menu-plugin.js +2 -2
  26. package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
  27. package/lib/browser/preload/i18n-preload-contribution.js +1 -1
  28. package/lib/browser/preload/i18n-preload-contribution.js.map +1 -1
  29. package/lib/browser/shell/application-shell.d.ts +1 -1
  30. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  31. package/lib/browser/shell/application-shell.js.map +1 -1
  32. package/lib/common/array-utils.d.ts +4 -0
  33. package/lib/common/array-utils.d.ts.map +1 -1
  34. package/lib/common/array-utils.js +47 -0
  35. package/lib/common/array-utils.js.map +1 -1
  36. package/lib/common/diff.d.ts +33 -0
  37. package/lib/common/diff.d.ts.map +1 -0
  38. package/lib/common/diff.js +20 -0
  39. package/lib/common/diff.js.map +1 -0
  40. package/lib/common/message-rpc/msg-pack-extension-manager.js +2 -2
  41. package/lib/common/message-rpc/msg-pack-extension-manager.js.map +1 -1
  42. package/lib/common/observable/autorun.d.ts +81 -0
  43. package/lib/common/observable/autorun.d.ts.map +1 -0
  44. package/lib/common/observable/autorun.js +194 -0
  45. package/lib/common/observable/autorun.js.map +1 -0
  46. package/lib/common/observable/derived-observable.d.ts +71 -0
  47. package/lib/common/observable/derived-observable.d.ts.map +1 -0
  48. package/lib/common/observable/derived-observable.js +258 -0
  49. package/lib/common/observable/derived-observable.js.map +1 -0
  50. package/lib/common/observable/index.d.ts +8 -0
  51. package/lib/common/observable/index.d.ts.map +1 -0
  52. package/lib/common/observable/index.js +26 -0
  53. package/lib/common/observable/index.js.map +1 -0
  54. package/lib/common/observable/observable-base.d.ts +181 -0
  55. package/lib/common/observable/observable-base.d.ts.map +1 -0
  56. package/lib/common/observable/observable-base.js +183 -0
  57. package/lib/common/observable/observable-base.js.map +1 -0
  58. package/lib/common/observable/observable-from-event.d.ts +41 -0
  59. package/lib/common/observable/observable-from-event.d.ts.map +1 -0
  60. package/lib/common/observable/observable-from-event.js +115 -0
  61. package/lib/common/observable/observable-from-event.js.map +1 -0
  62. package/lib/common/observable/observable-signal.d.ts +9 -0
  63. package/lib/common/observable/observable-signal.d.ts.map +1 -0
  64. package/lib/common/observable/observable-signal.js +45 -0
  65. package/lib/common/observable/observable-signal.js.map +1 -0
  66. package/lib/common/observable/observable-utils.d.ts +26 -0
  67. package/lib/common/observable/observable-utils.d.ts.map +1 -0
  68. package/lib/common/observable/observable-utils.js +98 -0
  69. package/lib/common/observable/observable-utils.js.map +1 -0
  70. package/lib/common/observable/observable.spec.d.ts +2 -0
  71. package/lib/common/observable/observable.spec.d.ts.map +1 -0
  72. package/lib/common/observable/observable.spec.js +301 -0
  73. package/lib/common/observable/observable.spec.js.map +1 -0
  74. package/lib/common/observable/settable-observable.d.ts +16 -0
  75. package/lib/common/observable/settable-observable.d.ts.map +1 -0
  76. package/lib/common/observable/settable-observable.js +58 -0
  77. package/lib/common/observable/settable-observable.js.map +1 -0
  78. package/package.json +7 -8
  79. package/src/browser/context-key-service.ts +5 -0
  80. package/src/browser/frontend-application-module.ts +1 -1
  81. package/src/browser/menu/browser-menu-plugin.ts +3 -3
  82. package/src/browser/preload/i18n-preload-contribution.ts +1 -1
  83. package/src/browser/shell/application-shell.ts +1 -1
  84. package/src/common/array-utils.ts +53 -0
  85. package/src/common/diff.ts +56 -0
  86. package/src/common/message-rpc/msg-pack-extension-manager.ts +2 -2
  87. package/src/common/observable/autorun.ts +246 -0
  88. package/src/common/observable/derived-observable.ts +321 -0
  89. package/src/common/observable/index.ts +23 -0
  90. package/src/common/observable/observable-base.ts +324 -0
  91. package/src/common/observable/observable-from-event.ts +148 -0
  92. package/src/common/observable/observable-signal.ts +48 -0
  93. package/src/common/observable/observable-utils.ts +119 -0
  94. package/src/common/observable/observable.spec.ts +342 -0
  95. package/src/common/observable/settable-observable.ts +73 -0
@@ -0,0 +1,26 @@
1
+ import { CancellationToken } from '../cancellation';
2
+ import { Disposable } from '../disposable';
3
+ import { Observable } from './observable-base';
4
+ import { DerivedObservable } from './derived-observable';
5
+ import { Autorun } from './autorun';
6
+ export declare namespace ObservableUtils {
7
+ /**
8
+ * Creates an {@link Autorun.create autorun} that passes a collector for disposable objects to the {@link run} function.
9
+ * The collected disposables are disposed before the next run or when the autorun is disposed.
10
+ */
11
+ function autorunWithDisposables<TChangeSummary = void>(run: (args: Autorun.Args<TChangeSummary> & {
12
+ readonly toDispose: {
13
+ push(disposable: Disposable): void;
14
+ };
15
+ }) => void, options?: Autorun.Options<TChangeSummary>): Disposable;
16
+ function derivedObservableWithCache<T, TChangeSummary = void>(compute: (args: DerivedObservable.Args<TChangeSummary> & {
17
+ readonly lastValue: T | undefined;
18
+ }) => T, options?: DerivedObservable.Options<T, TChangeSummary>): Observable<T, void>;
19
+ /**
20
+ * Resolves the promise when the observable's state matches the predicate.
21
+ */
22
+ function waitForState<T>(observable: Observable<T | undefined>): Promise<T>;
23
+ function waitForState<T, TState extends T>(observable: Observable<T>, predicate: (state: T) => state is TState, isError?: (state: T) => boolean | unknown | undefined, cancellationToken?: CancellationToken): Promise<TState>;
24
+ function waitForState<T>(observable: Observable<T>, predicate: (state: T) => boolean, isError?: (state: T) => boolean | unknown | undefined, cancellationToken?: CancellationToken): Promise<T>;
25
+ }
26
+ //# sourceMappingURL=observable-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observable-utils.d.ts","sourceRoot":"","sources":["../../../src/common/observable/observable-utils.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAqB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAwB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,yBAAiB,eAAe,CAAC;IAE7B;;;OAGG;IACH,SAAgB,sBAAsB,CAAC,cAAc,GAAG,IAAI,EACxD,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG;QAAE,QAAQ,CAAC,SAAS,EAAE;YAAE,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;SAAE,CAAA;KAAE,KAAK,IAAI,EAClH,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,GAC1C,UAAU,CAeZ;IAED,SAAgB,0BAA0B,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,EAC/D,OAAO,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG;QAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,SAAS,CAAA;KAAE,KAAK,CAAC,EACpG,OAAO,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,cAAc,CAAC,GACvD,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CASrB;IAED;;OAEG;IACH,SAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACnF,SAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,MAAM,EACjH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAC7F,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,SAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,EACvF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,GAAG,SAAS,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAC7F,OAAO,CAAC,CAAC,CAAC,CAAC;CAyCjB"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 1C-Soft LLC 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
+ /*---------------------------------------------------------------------------------------------
18
+ * Copyright (c) Microsoft Corporation. All rights reserved.
19
+ * Licensed under the MIT License. See License.txt in the project root for license information.
20
+ *--------------------------------------------------------------------------------------------*/
21
+ // copied and modified from https://github.com/microsoft/vscode/blob/1.96.3/src/vs/base/common/observableInternal/utils.ts,
22
+ // https://github.com/microsoft/vscode/blob/1.96.3/src/vs/base/common/observableInternal/utilsCancellation.ts
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.ObservableUtils = void 0;
25
+ const cancellation_1 = require("../cancellation");
26
+ const disposable_1 = require("../disposable");
27
+ const derived_observable_1 = require("./derived-observable");
28
+ const autorun_1 = require("./autorun");
29
+ var ObservableUtils;
30
+ (function (ObservableUtils) {
31
+ /**
32
+ * Creates an {@link Autorun.create autorun} that passes a collector for disposable objects to the {@link run} function.
33
+ * The collected disposables are disposed before the next run or when the autorun is disposed.
34
+ */
35
+ function autorunWithDisposables(run, options) {
36
+ let toDispose = undefined;
37
+ return new class extends autorun_1.Autorun {
38
+ dispose() {
39
+ super.dispose();
40
+ toDispose === null || toDispose === void 0 ? void 0 : toDispose.dispose();
41
+ }
42
+ }(({ autorun, isFirstRun, changeSummary }) => {
43
+ toDispose === null || toDispose === void 0 ? void 0 : toDispose.dispose();
44
+ toDispose = new disposable_1.DisposableCollection();
45
+ run({ toDispose, autorun, isFirstRun, changeSummary });
46
+ }, options);
47
+ }
48
+ ObservableUtils.autorunWithDisposables = autorunWithDisposables;
49
+ function derivedObservableWithCache(compute, options) {
50
+ let value = undefined;
51
+ return new derived_observable_1.DerivedObservable(({ changeSummary }) => {
52
+ value = compute({ lastValue: value, changeSummary });
53
+ return value;
54
+ }, options);
55
+ }
56
+ ObservableUtils.derivedObservableWithCache = derivedObservableWithCache;
57
+ function waitForState(observable, predicate, isError, cancellationToken) {
58
+ if (!predicate) {
59
+ predicate = state => !!state;
60
+ }
61
+ return new Promise((resolve, reject) => {
62
+ const stateObservable = derived_observable_1.DerivedObservable.create(() => {
63
+ const state = observable.get();
64
+ return {
65
+ isFinished: predicate(state),
66
+ error: isError ? isError(state) : false,
67
+ state
68
+ };
69
+ });
70
+ const autorun_ = autorun_1.Autorun.create(({ autorun }) => {
71
+ const { isFinished, error, state } = stateObservable.get();
72
+ if (isFinished || error) {
73
+ autorun.dispose();
74
+ if (error) {
75
+ reject(error === true ? state : error);
76
+ }
77
+ else {
78
+ resolve(state);
79
+ }
80
+ }
81
+ });
82
+ if (cancellationToken) {
83
+ const subscription = cancellationToken.onCancellationRequested(() => {
84
+ autorun_.dispose();
85
+ subscription.dispose();
86
+ reject(new cancellation_1.CancellationError());
87
+ });
88
+ if (cancellationToken.isCancellationRequested) {
89
+ autorun_.dispose();
90
+ subscription.dispose();
91
+ reject(new cancellation_1.CancellationError());
92
+ }
93
+ }
94
+ });
95
+ }
96
+ ObservableUtils.waitForState = waitForState;
97
+ })(ObservableUtils || (exports.ObservableUtils = ObservableUtils = {}));
98
+ //# sourceMappingURL=observable-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observable-utils.js","sourceRoot":"","sources":["../../../src/common/observable/observable-utils.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,6CAA6C;AAC7C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF;;;gGAGgG;AAChG,2HAA2H;AAC3H,6GAA6G;;;AAE7G,kDAAuE;AACvE,8CAAiE;AAEjE,6DAAyD;AACzD,uCAAoC;AAEpC,IAAiB,eAAe,CA0F/B;AA1FD,WAAiB,eAAe;IAE5B;;;OAGG;IACH,SAAgB,sBAAsB,CAClC,GAAkH,EAClH,OAAyC;QAEzC,IAAI,SAAS,GAAqC,SAAS,CAAC;QAC5D,OAAO,IAAI,KAAM,SAAQ,iBAAuB;YACnC,OAAO;gBACZ,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,EAAE,CAAC;YACzB,CAAC;SACJ,CACG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE;YACvC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,EAAE,CAAC;YACrB,SAAS,GAAG,IAAI,iCAAoB,EAAE,CAAC;YACvC,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3D,CAAC,EACD,OAAO,CACV,CAAC;IACN,CAAC;IAlBe,sCAAsB,yBAkBrC,CAAA;IAED,SAAgB,0BAA0B,CACtC,OAAoG,EACpG,OAAsD;QAEtD,IAAI,KAAK,GAAkB,SAAS,CAAC;QACrC,OAAO,IAAI,sCAAiB,CACxB,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;YAClB,KAAK,GAAG,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC;QACjB,CAAC,EACD,OAAO,CACV,CAAC;IACN,CAAC;IAZe,0CAA0B,6BAYzC,CAAA;IAYD,SAAgB,YAAY,CAAI,UAAyB,EAAE,SAAiC,EACxF,OAAqD,EAAE,iBAAqC;QAE5F,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,eAAe,GAAG,sCAAiB,CAAC,MAAM,CAAC,GAAG,EAAE;gBAClD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;gBAC/B,OAAO;oBACH,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC;oBAC5B,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;oBACvC,KAAK;iBACR,CAAC;YACN,CAAC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,iBAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC5C,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC;gBAC3D,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;oBACtB,OAAO,CAAC,OAAO,EAAE,CAAC;oBAClB,IAAI,KAAK,EAAE,CAAC;wBACR,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC3C,CAAC;yBAAM,CAAC;wBACJ,OAAO,CAAC,KAAK,CAAC,CAAC;oBACnB,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,iBAAiB,EAAE,CAAC;gBACpB,MAAM,YAAY,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,GAAG,EAAE;oBAChE,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACnB,YAAY,CAAC,OAAO,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,gCAAiB,EAAE,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;gBACH,IAAI,iBAAiB,CAAC,uBAAuB,EAAE,CAAC;oBAC5C,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACnB,YAAY,CAAC,OAAO,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,gCAAiB,EAAE,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAvCe,4BAAY,eAuC3B,CAAA;AACL,CAAC,EA1FgB,eAAe,+BAAf,eAAe,QA0F/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=observable.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observable.spec.d.ts","sourceRoot":"","sources":["../../../src/common/observable/observable.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,301 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 1C-Soft LLC 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
+ /*---------------------------------------------------------------------------------------------
18
+ * Copyright (c) Microsoft Corporation. All rights reserved.
19
+ * Licensed under the MIT License. See License.txt in the project root for license information.
20
+ *--------------------------------------------------------------------------------------------*/
21
+ // copied and modified from https://github.com/microsoft/vscode/blob/1.96.3/src/vs/base/test/common/observable.test.ts
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ const chai_1 = require("chai");
24
+ const disposable_1 = require("../disposable");
25
+ const observable_base_1 = require("./observable-base");
26
+ const settable_observable_1 = require("./settable-observable");
27
+ const derived_observable_1 = require("./derived-observable");
28
+ const observable_signal_1 = require("./observable-signal");
29
+ const autorun_1 = require("./autorun");
30
+ describe('Observables', () => {
31
+ let disposables;
32
+ beforeEach(() => disposables = new disposable_1.DisposableCollection());
33
+ afterEach(() => disposables.dispose());
34
+ // Read these tests to understand how to use observables.
35
+ describe('Tutorial', () => {
36
+ it('settable observable & autorun', () => {
37
+ const log = new Log();
38
+ // This creates an observable with an initial value that can later be changed with the `set` method.
39
+ const myObservable = settable_observable_1.SettableObservable.create(0);
40
+ // This creates an autorun. The autorun has to be disposed!
41
+ disposables.push(autorun_1.Autorun.create(() => {
42
+ // Observables are automatically added to the tracked dependencies of the autorun as they are accessed with `get`.
43
+ log.log(`myAutorun.run(myObservable: ${myObservable.get()})`);
44
+ // Now that all dependencies are tracked, the autorun is re-run whenever any of the dependencies change.
45
+ }));
46
+ // The autorun runs immediately.
47
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal(['myAutorun.run(myObservable: 0)']);
48
+ myObservable.set(1);
49
+ // The autorun runs again, because its dependency changed.
50
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal(['myAutorun.run(myObservable: 1)']);
51
+ myObservable.set(1);
52
+ // The autorun didn't run, because the observable was set to the same value (no change).
53
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([]);
54
+ // An update scope can be used to batch autorun runs.
55
+ observable_base_1.Observable.update(() => {
56
+ myObservable.set(2);
57
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([]); // The autorun didn't run, even though its dependency changed!
58
+ myObservable.set(3);
59
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([]);
60
+ });
61
+ // The autorun re-runs only at the end of the update scope.
62
+ // Note that the autorun didn't see the intermediate value `2`!
63
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal(['myAutorun.run(myObservable: 3)']);
64
+ });
65
+ it('derived observable & autorun', () => {
66
+ const log = new Log();
67
+ const observable1 = settable_observable_1.SettableObservable.create(0);
68
+ const observable2 = settable_observable_1.SettableObservable.create(0);
69
+ // This creates an observable that is derived from other observables.
70
+ const myDerived = derived_observable_1.DerivedObservable.create(() => {
71
+ // Dependencies are automatically tracked as they are accessed with `get`.
72
+ const value1 = observable1.get();
73
+ const value2 = observable2.get();
74
+ const sum = value1 + value2;
75
+ log.log(`myDerived.recompute: ${value1} + ${value2} = ${sum}`);
76
+ return sum;
77
+ });
78
+ // This creates an autorun that reacts to changes of the derived observable.
79
+ disposables.push(autorun_1.Autorun.create(() => {
80
+ log.log(`myAutorun(myDerived: ${myDerived.get()})`);
81
+ }));
82
+ // The autorun runs immediately...
83
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
84
+ 'myDerived.recompute: 0 + 0 = 0',
85
+ 'myAutorun(myDerived: 0)',
86
+ ]);
87
+ observable1.set(1);
88
+ // ...and on changes...
89
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
90
+ 'myDerived.recompute: 1 + 0 = 1',
91
+ 'myAutorun(myDerived: 1)',
92
+ ]);
93
+ observable2.set(1);
94
+ // ...of the derived observable.
95
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
96
+ 'myDerived.recompute: 1 + 1 = 2',
97
+ 'myAutorun(myDerived: 2)',
98
+ ]);
99
+ // Multiple observables can be updated in a batch.
100
+ observable_base_1.Observable.update(() => {
101
+ observable1.set(5);
102
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([]);
103
+ observable2.set(5);
104
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([]);
105
+ });
106
+ // The autorun re-runs only at the end of the update scope.
107
+ // Derived observables are only recomputed on demand.
108
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
109
+ 'myDerived.recompute: 5 + 5 = 10',
110
+ 'myAutorun(myDerived: 10)',
111
+ ]);
112
+ observable_base_1.Observable.update(() => {
113
+ observable1.set(6);
114
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([]);
115
+ observable2.set(4);
116
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([]);
117
+ });
118
+ // The autorun didn't run, because its dependency changed from 10 to 10 (no change).
119
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal(['myDerived.recompute: 6 + 4 = 10']);
120
+ });
121
+ it('derived observable: get within update scope', () => {
122
+ const log = new Log();
123
+ const observable1 = settable_observable_1.SettableObservable.create(0);
124
+ const observable2 = settable_observable_1.SettableObservable.create(0);
125
+ const myDerived = derived_observable_1.DerivedObservable.create(() => {
126
+ const value1 = observable1.get();
127
+ const value2 = observable2.get();
128
+ const sum = value1 + value2;
129
+ log.log(`myDerived.recompute: ${value1} + ${value2} = ${sum}`);
130
+ return sum;
131
+ });
132
+ disposables.push(autorun_1.Autorun.create(() => {
133
+ log.log(`myAutorun(myDerived: ${myDerived.get()})`);
134
+ }));
135
+ // The autorun runs immediately.
136
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
137
+ 'myDerived.recompute: 0 + 0 = 0',
138
+ 'myAutorun(myDerived: 0)',
139
+ ]);
140
+ observable_base_1.Observable.update(() => {
141
+ observable1.set(-10);
142
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([]);
143
+ myDerived.get(); // This forces a (sync) recomputation of the current value!
144
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal(['myDerived.recompute: -10 + 0 = -10']);
145
+ // This means that, even within an update scope, all observable values you get are up-to-date.
146
+ // It might just cause additional (potentially unneeded) recomputations.
147
+ observable2.set(10);
148
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([]);
149
+ });
150
+ // The autorun runs again, because its dependency changed from 0 to -10 and then back to 0.
151
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
152
+ 'myDerived.recompute: -10 + 10 = 0',
153
+ 'myAutorun(myDerived: 0)',
154
+ ]);
155
+ });
156
+ it('derived observable: get without observers', () => {
157
+ const log = new Log();
158
+ const observable1 = settable_observable_1.SettableObservable.create(0);
159
+ const computed1 = derived_observable_1.DerivedObservable.create(() => {
160
+ const value1 = observable1.get();
161
+ const result = value1 % 3;
162
+ log.log(`recompute1: ${value1} % 3 = ${result}`);
163
+ return result;
164
+ });
165
+ const computed2 = derived_observable_1.DerivedObservable.create(() => {
166
+ const value1 = computed1.get();
167
+ const result = value1 * 2;
168
+ log.log(`recompute2: ${value1} * 2 = ${result}`);
169
+ return result;
170
+ });
171
+ const computed3 = derived_observable_1.DerivedObservable.create(() => {
172
+ const value1 = computed1.get();
173
+ const result = value1 * 3;
174
+ log.log(`recompute3: ${value1} * 3 = ${result}`);
175
+ return result;
176
+ });
177
+ const computedSum = derived_observable_1.DerivedObservable.create(() => {
178
+ const value1 = computed2.get();
179
+ const value2 = computed3.get();
180
+ const result = value1 + value2;
181
+ log.log(`recompute4: ${value1} + ${value2} = ${result}`);
182
+ return result;
183
+ });
184
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([]);
185
+ observable1.set(1);
186
+ // Derived observables are only recomputed on demand.
187
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([]);
188
+ log.log(`value: ${computedSum.get()}`);
189
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
190
+ 'recompute1: 1 % 3 = 1',
191
+ 'recompute2: 1 * 2 = 2',
192
+ 'recompute3: 1 * 3 = 3',
193
+ 'recompute4: 2 + 3 = 5',
194
+ 'value: 5',
195
+ ]);
196
+ log.log(`value: ${computedSum.get()}`);
197
+ // Because there are no observers, the derived observable values are not cached (!) but recomputed from scratch.
198
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
199
+ 'recompute1: 1 % 3 = 1',
200
+ 'recompute2: 1 * 2 = 2',
201
+ 'recompute3: 1 * 3 = 3',
202
+ 'recompute4: 2 + 3 = 5',
203
+ 'value: 5',
204
+ ]);
205
+ // keepObserved can be used to keep the cache alive.
206
+ const disposable = observable_base_1.Observable.keepObserved(computedSum);
207
+ log.log(`value: ${computedSum.get()}`);
208
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
209
+ 'recompute1: 1 % 3 = 1',
210
+ 'recompute2: 1 * 2 = 2',
211
+ 'recompute3: 1 * 3 = 3',
212
+ 'recompute4: 2 + 3 = 5',
213
+ 'value: 5',
214
+ ]);
215
+ log.log(`value: ${computedSum.get()}`);
216
+ // Tada, no recomputations!
217
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
218
+ 'value: 5',
219
+ ]);
220
+ observable1.set(2);
221
+ // keepObserved does not force derived observables to be recomputed.
222
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([]);
223
+ log.log(`value: ${computedSum.get()}`);
224
+ // Derived observables are only recomputed on demand...
225
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
226
+ 'recompute1: 2 % 3 = 2',
227
+ 'recompute2: 2 * 2 = 4',
228
+ 'recompute3: 2 * 3 = 6',
229
+ 'recompute4: 4 + 6 = 10',
230
+ 'value: 10',
231
+ ]);
232
+ log.log(`value: ${computedSum.get()}`);
233
+ // ...and then cached again.
234
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal(['value: 10']);
235
+ // Don't forget to dispose the disposable returned by keepObserved!
236
+ disposable.dispose();
237
+ log.log(`value: ${computedSum.get()}`);
238
+ // The cache is disabled again.
239
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
240
+ 'recompute1: 2 % 3 = 2',
241
+ 'recompute2: 2 * 2 = 4',
242
+ 'recompute3: 2 * 3 = 6',
243
+ 'recompute4: 4 + 6 = 10',
244
+ 'value: 10',
245
+ ]);
246
+ log.log(`value: ${computedSum.get()}`);
247
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
248
+ 'recompute1: 2 % 3 = 2',
249
+ 'recompute2: 2 * 2 = 4',
250
+ 'recompute3: 2 * 3 = 6',
251
+ 'recompute4: 4 + 6 = 10',
252
+ 'value: 10',
253
+ ]);
254
+ });
255
+ it('autorun that receives change information of signals', () => {
256
+ const log = new Log();
257
+ // A signal is an observable without a value.
258
+ // However, it can ship change information when it is triggered.
259
+ const signal = observable_signal_1.ObservableSignal.create();
260
+ disposables.push(autorun_1.Autorun.create(({ changeSummary }) => {
261
+ signal.get(); // This makes sure the signal is tracked as a dependency of the autorun.
262
+ log.log('msgs: ' + changeSummary.msgs.join(', '));
263
+ }, {
264
+ // A change summary can be used to collect the reported changes.
265
+ createChangeSummary: () => ({ msgs: [] }),
266
+ willHandleChange: (context, changeSummary) => {
267
+ if (context.isChangeOf(signal)) {
268
+ changeSummary.msgs.push(context.change.msg);
269
+ }
270
+ return true;
271
+ },
272
+ }));
273
+ signal.trigger({ msg: 'foobar' });
274
+ // An update scope can be used to batch triggering signals.
275
+ // No change information is lost!
276
+ observable_base_1.Observable.update(() => {
277
+ signal.trigger({ msg: 'hello' });
278
+ signal.trigger({ msg: 'world' });
279
+ });
280
+ (0, chai_1.expect)(log.getAndClearEntries()).to.be.deep.equal([
281
+ 'msgs: ',
282
+ 'msgs: foobar',
283
+ 'msgs: hello, world'
284
+ ]);
285
+ });
286
+ });
287
+ });
288
+ class Log {
289
+ constructor() {
290
+ this.entries = [];
291
+ }
292
+ log(message) {
293
+ this.entries.push(message);
294
+ }
295
+ getAndClearEntries() {
296
+ const entries = [...this.entries];
297
+ this.entries.length = 0;
298
+ return entries;
299
+ }
300
+ }
301
+ //# sourceMappingURL=observable.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observable.spec.js","sourceRoot":"","sources":["../../../src/common/observable/observable.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { BaseObservable, Observable } from './observable-base';
2
+ export declare class SettableObservable<T, TChange = void> extends BaseObservable<T, TChange> implements Observable.Settable<T, TChange> {
3
+ protected value: T;
4
+ protected readonly isEqual: (a: T, b: T) => boolean;
5
+ constructor(initialValue: T, options?: SettableObservable.Options<T>);
6
+ protected getValue(): T;
7
+ set(value: T, change?: TChange, updateScope?: Observable.UpdateScope | undefined): void;
8
+ protected setValue(newValue: T): void;
9
+ }
10
+ export declare namespace SettableObservable {
11
+ function create<T, TChange = void>(initialValue: T, options?: Options<T>): Observable.Settable<T, TChange>;
12
+ interface Options<T> {
13
+ isEqual?: (a: T, b: T) => boolean;
14
+ }
15
+ }
16
+ //# sourceMappingURL=settable-observable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settable-observable.d.ts","sourceRoot":"","sources":["../../../src/common/observable/settable-observable.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/D,qBAAa,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAE,SAAQ,cAAc,CAAC,CAAC,EAAE,OAAO,CAAE,YAAW,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IAE5H,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACnB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;gBAGhD,YAAY,EAAE,CAAC,EACf,OAAO,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;cAOxB,QAAQ,IAAI,CAAC;IAIhC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,WAAW,qCAAsC,GAAG,IAAI;IAiBxF,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI;CAGxC;AAED,yBAAiB,kBAAkB,CAAC;IAEhC,SAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAEhH;IAED,UAAiB,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;KACrC;CACJ"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2025 1C-Soft LLC 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
+ /*---------------------------------------------------------------------------------------------
18
+ * Copyright (c) Microsoft Corporation. All rights reserved.
19
+ * Licensed under the MIT License. See License.txt in the project root for license information.
20
+ *--------------------------------------------------------------------------------------------*/
21
+ // copied and modified from https://github.com/microsoft/vscode/blob/1.96.3/src/vs/base/common/observableInternal/base.ts
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.SettableObservable = void 0;
24
+ const observable_base_1 = require("./observable-base");
25
+ class SettableObservable extends observable_base_1.BaseObservable {
26
+ constructor(initialValue, options) {
27
+ var _a;
28
+ super();
29
+ this.value = initialValue;
30
+ this.isEqual = (_a = options === null || options === void 0 ? void 0 : options.isEqual) !== null && _a !== void 0 ? _a : ((a, b) => a === b);
31
+ }
32
+ getValue() {
33
+ return this.value;
34
+ }
35
+ set(value, change, updateScope = observable_base_1.Observable.UpdateScope.getCurrent()) {
36
+ if (change === undefined && this.isEqual(this.value, value)) {
37
+ return;
38
+ }
39
+ observable_base_1.Observable.update(scope => {
40
+ this.setValue(value);
41
+ for (const observer of this.observers) {
42
+ scope.push(observer, this);
43
+ observer.handleChange(this, change);
44
+ }
45
+ }, updateScope);
46
+ }
47
+ setValue(newValue) {
48
+ this.value = newValue;
49
+ }
50
+ }
51
+ exports.SettableObservable = SettableObservable;
52
+ (function (SettableObservable) {
53
+ function create(initialValue, options) {
54
+ return new SettableObservable(initialValue, options);
55
+ }
56
+ SettableObservable.create = create;
57
+ })(SettableObservable || (exports.SettableObservable = SettableObservable = {}));
58
+ //# sourceMappingURL=settable-observable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settable-observable.js","sourceRoot":"","sources":["../../../src/common/observable/settable-observable.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,6CAA6C;AAC7C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF;;;gGAGgG;AAChG,yHAAyH;;;AAEzH,uDAA+D;AAE/D,MAAa,kBAAsC,SAAQ,gCAA0B;IAKjF,YACI,YAAe,EACf,OAAuC;;QAEvC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEkB,QAAQ;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,KAAQ,EAAE,MAAgB,EAAE,WAAW,GAAG,4BAAU,CAAC,WAAW,CAAC,UAAU,EAAE;QAC7E,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YAC1D,OAAO;QACX,CAAC;QAED,4BAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAEtB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAErB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC3B,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACxC,CAAC;QAEL,CAAC,EAAE,WAAW,CAAC,CAAC;IACpB,CAAC;IAES,QAAQ,CAAC,QAAW;QAC1B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC1B,CAAC;CACJ;AAtCD,gDAsCC;AAED,WAAiB,kBAAkB;IAE/B,SAAgB,MAAM,CAAoB,YAAe,EAAE,OAAoB;QAC3E,OAAO,IAAI,kBAAkB,CAAa,YAAY,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAFe,yBAAM,SAErB,CAAA;AAKL,CAAC,EATgB,kBAAkB,kCAAlB,kBAAkB,QASlC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/core",
3
- "version": "1.64.0-next.28+c0fda4c47",
3
+ "version": "1.64.0",
4
4
  "description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.",
5
5
  "main": "lib/common/index.js",
6
6
  "typings": "lib/common/index.d.ts",
@@ -17,10 +17,9 @@
17
17
  "@lumino/virtualdom": "^2.0.2",
18
18
  "@lumino/widgets": "2.5.0",
19
19
  "@parcel/watcher": "^2.5.0",
20
- "@theia/application-package": "1.64.0-next.28+c0fda4c47",
21
- "@theia/request": "1.64.0-next.28+c0fda4c47",
20
+ "@theia/application-package": "1.64.0",
21
+ "@theia/request": "1.64.0",
22
22
  "@types/body-parser": "^1.16.4",
23
- "@types/cookie": "^0.3.3",
24
23
  "@types/express": "^4.17.21",
25
24
  "@types/fs-extra": "^4.0.2",
26
25
  "@types/lodash.debounce": "4.0.3",
@@ -37,7 +36,7 @@
37
36
  "ajv": "^6.5.3",
38
37
  "async-mutex": "^0.4.0",
39
38
  "body-parser": "^1.17.2",
40
- "cookie": "^0.4.0",
39
+ "cookie": "^1.0.2",
41
40
  "dompurify": "^3.2.4",
42
41
  "drivelist": "^12.0.2",
43
42
  "express": "^4.21.0",
@@ -208,13 +207,13 @@
208
207
  "watch": "theiaext watch"
209
208
  },
210
209
  "devDependencies": {
211
- "@theia/ext-scripts": "1.63.0",
212
- "@theia/re-exports": "1.63.0",
210
+ "@theia/ext-scripts": "1.64.0",
211
+ "@theia/re-exports": "1.64.0",
213
212
  "minimist": "^1.2.0",
214
213
  "nodejs-file-downloader": "4.13.0"
215
214
  },
216
215
  "nyc": {
217
216
  "extends": "../../configs/nyc.json"
218
217
  },
219
- "gitHead": "c0fda4c4706fcd4ec1616c8e2f24673352a707d1"
218
+ "gitHead": "4c074e0d16c48e96a044b2f8bc4717de2e031c4b"
220
219
  }
@@ -41,6 +41,11 @@ export interface ContextKeyChangeEvent {
41
41
  affects(keys: { has(key: string): boolean }): boolean;
42
42
  }
43
43
 
44
+ export interface Context {
45
+ getValue<T extends ContextKeyValue = ContextKeyValue>(key: string): T | undefined;
46
+ readonly onDidChange?: Event<ContextKeyChangeEvent>;
47
+ }
48
+
44
49
  export const ContextKeyService = Symbol('ContextKeyService');
45
50
 
46
51
  export interface ContextMatcher {
@@ -207,7 +207,7 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
207
207
  });
208
208
  bind(TheiaDockPanel.Factory).toFactory(({ container }) => (options?: DockPanel.IOptions, maximizeCallback?: (area: TheiaDockPanel) => void) => {
209
209
  const corePreferences = container.get<CorePreferences>(CorePreferences);
210
- return new TheiaDockPanel(options, corePreferences);
210
+ return new TheiaDockPanel(options, corePreferences, maximizeCallback);
211
211
  });
212
212
 
213
213
  bindContributionProvider(bind, TabBarDecorator);