@theia/core 1.28.0-next.30 → 1.28.0-next.31
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.
- package/README.md +6 -6
- package/lib/browser/widget-manager.d.ts.map +1 -1
- package/lib/browser/widget-manager.js +2 -1
- package/lib/browser/widget-manager.js.map +1 -1
- package/lib/browser/widget-manager.spec.js +13 -0
- package/lib/browser/widget-manager.spec.js.map +1 -1
- package/package.json +5 -4
- package/src/browser/widget-manager.spec.ts +14 -0
- package/src/browser/widget-manager.ts +2 -1
package/README.md
CHANGED
|
@@ -86,12 +86,12 @@ export class SomeClass {
|
|
|
86
86
|
- `@phosphor/signaling` (from [`@phosphor/signaling@1`](https://www.npmjs.com/package/@phosphor/signaling))
|
|
87
87
|
- `@phosphor/virtualdom` (from [`@phosphor/virtualdom@1`](https://www.npmjs.com/package/@phosphor/virtualdom))
|
|
88
88
|
- `@phosphor/widgets` (from [`@phosphor/widgets@1`](https://www.npmjs.com/package/@phosphor/widgets))
|
|
89
|
-
- `@theia/application-package` (from [`@theia/application-package@1.28.0-next.
|
|
90
|
-
- `@theia/application-package/lib/api` (from [`@theia/application-package@1.28.0-next.
|
|
91
|
-
- `@theia/application-package/lib/environment` (from [`@theia/application-package@1.28.0-next.
|
|
92
|
-
- `@theia/request` (from [`@theia/request@1.28.0-next.
|
|
93
|
-
- `@theia/request/lib/proxy` (from [`@theia/request@1.28.0-next.
|
|
94
|
-
- `@theia/request/lib/node-request-service` (from [`@theia/request@1.28.0-next.
|
|
89
|
+
- `@theia/application-package` (from [`@theia/application-package@1.28.0-next.31+896c343f592`](https://www.npmjs.com/package/@theia/application-package/v/1.28.0-next.31))
|
|
90
|
+
- `@theia/application-package/lib/api` (from [`@theia/application-package@1.28.0-next.31+896c343f592`](https://www.npmjs.com/package/@theia/application-package/v/1.28.0-next.31))
|
|
91
|
+
- `@theia/application-package/lib/environment` (from [`@theia/application-package@1.28.0-next.31+896c343f592`](https://www.npmjs.com/package/@theia/application-package/v/1.28.0-next.31))
|
|
92
|
+
- `@theia/request` (from [`@theia/request@1.28.0-next.31+896c343f592`](https://www.npmjs.com/package/@theia/request/v/1.28.0-next.31))
|
|
93
|
+
- `@theia/request/lib/proxy` (from [`@theia/request@1.28.0-next.31+896c343f592`](https://www.npmjs.com/package/@theia/request/v/1.28.0-next.31))
|
|
94
|
+
- `@theia/request/lib/node-request-service` (from [`@theia/request@1.28.0-next.31+896c343f592`](https://www.npmjs.com/package/@theia/request/v/1.28.0-next.31))
|
|
95
95
|
- `fs-extra` (from [`fs-extra@^4.0.2`](https://www.npmjs.com/package/fs-extra))
|
|
96
96
|
- `fuzzy` (from [`fuzzy@^0.1.3`](https://www.npmjs.com/package/fuzzy))
|
|
97
97
|
- `inversify` (from [`inversify@^5.1.1`](https://www.npmjs.com/package/inversify))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-manager.d.ts","sourceRoot":"","sources":["../../src/browser/widget-manager.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"widget-manager.d.ts","sourceRoot":"","sources":["../../src/browser/widget-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ exports.WidgetManager = exports.WidgetFactory = void 0;
|
|
|
28
28
|
const inversify_1 = require("inversify");
|
|
29
29
|
const widgets_1 = require("@phosphor/widgets");
|
|
30
30
|
const common_1 = require("../common");
|
|
31
|
+
const stableJsonStringify = require("fast-json-stable-stringify");
|
|
31
32
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
32
33
|
exports.WidgetFactory = Symbol('WidgetFactory');
|
|
33
34
|
/**
|
|
@@ -167,7 +168,7 @@ let WidgetManager = class WidgetManager {
|
|
|
167
168
|
* @returns the widget construction options represented as a string.
|
|
168
169
|
*/
|
|
169
170
|
toKey(options) {
|
|
170
|
-
return
|
|
171
|
+
return stableJsonStringify(options);
|
|
171
172
|
}
|
|
172
173
|
/**
|
|
173
174
|
* Convert the key into the widget construction options object.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-manager.js","sourceRoot":"","sources":["../../src/browser/widget-manager.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,2EAA2E;AAC3E,gFAAgF;;;;;;;;;;;;AAEhF,yCAAsD;AACtD,+CAA2C;AAC3C,sCAAwG;
|
|
1
|
+
{"version":3,"file":"widget-manager.js","sourceRoot":"","sources":["../../src/browser/widget-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,5 +56,18 @@ describe('widget-manager', () => {
|
|
|
56
56
|
(0, chai_1.expect)(wA).not.equals(wB);
|
|
57
57
|
(0, chai_1.expect)(wA).equals(await widgetManager.getOrCreateWidget('test', 'widgetA'));
|
|
58
58
|
});
|
|
59
|
+
it('produces the same widget key regardless of object key order', () => {
|
|
60
|
+
const options1 = {
|
|
61
|
+
factoryId: 'a',
|
|
62
|
+
key1: 1,
|
|
63
|
+
key2: 2,
|
|
64
|
+
};
|
|
65
|
+
const options2 = {
|
|
66
|
+
key2: 2,
|
|
67
|
+
key1: 1,
|
|
68
|
+
factoryId: 'a',
|
|
69
|
+
};
|
|
70
|
+
(0, chai_1.expect)(widgetManager['toKey'](options1)).equals(widgetManager['toKey'](options2));
|
|
71
|
+
});
|
|
59
72
|
});
|
|
60
73
|
//# sourceMappingURL=widget-manager.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-manager.spec.js","sourceRoot":"","sources":["../../src/browser/widget-manager.spec.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,2EAA2E;AAC3E,gFAAgF;AAChF,yCAAuD;AACvD,+BAA8B;AAC9B,qDAAgE;AAEhE,mDAA6C;AAC7C,6CAA2C;AAC3C,4DAAwD;AACxD,sCAAqD;AAErD,MAAM,iBAAiB;IAAvB;QAEI,gBAAW,GAAG,CAAC,CAAC;QAChB,OAAE,GAAG,MAAM,CAAC;IAWhB,CAAC;IATG,KAAK,CAAC,YAAY,CAAC,IAAY;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,gEAAgE;QAChE,MAAM,MAAM,GAAG,EAAY,CAAC;QAC5B,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,8DAA8D;QACxD,MAAO,CAAC,QAAQ,GAAG,IAAI,kBAAM,CAAe,MAAM,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAED,IAAI,aAA4B,CAAC;AAEjC,MAAM,CAAC,GAAG,EAAE;IACR,MAAM,aAAa,GAAG,IAAI,qBAAS,EAAE,CAAC;IAEtC,MAAM,MAAM,GAAG,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QACjE,IAAI,CAAC,gBAAO,CAAC,CAAC,EAAE,CAAC,wBAAU,CAAC,CAAC;QAC7B,IAAA,iCAAwB,EAAC,IAAI,EAAE,8BAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,8BAAa,CAAC,CAAC,eAAe,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,8BAAa,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE3B,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,8BAAa,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAE5B,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpE,IAAA,aAAM,EAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAA,aAAM,EAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,aAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"widget-manager.spec.js","sourceRoot":"","sources":["../../src/browser/widget-manager.spec.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,2EAA2E;AAC3E,gFAAgF;AAChF,yCAAuD;AACvD,+BAA8B;AAC9B,qDAAgE;AAEhE,mDAA6C;AAC7C,6CAA2C;AAC3C,4DAAwD;AACxD,sCAAqD;AAErD,MAAM,iBAAiB;IAAvB;QAEI,gBAAW,GAAG,CAAC,CAAC;QAChB,OAAE,GAAG,MAAM,CAAC;IAWhB,CAAC;IATG,KAAK,CAAC,YAAY,CAAC,IAAY;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,gEAAgE;QAChE,MAAM,MAAM,GAAG,EAAY,CAAC;QAC5B,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,8DAA8D;QACxD,MAAO,CAAC,QAAQ,GAAG,IAAI,kBAAM,CAAe,MAAM,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAED,IAAI,aAA4B,CAAC;AAEjC,MAAM,CAAC,GAAG,EAAE;IACR,MAAM,aAAa,GAAG,IAAI,qBAAS,EAAE,CAAC;IAEtC,MAAM,MAAM,GAAG,IAAI,2BAAe,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QACjE,IAAI,CAAC,gBAAO,CAAC,CAAC,EAAE,CAAC,wBAAU,CAAC,CAAC;QAC7B,IAAA,iCAAwB,EAAC,IAAI,EAAE,8BAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,8BAAa,CAAC,CAAC,eAAe,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,8BAAa,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE3B,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,8BAAa,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAE5B,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpE,IAAA,aAAM,EAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAA,aAAM,EAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,aAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACnE,MAAM,QAAQ,GAAG;YACb,SAAS,EAAE,GAAG;YACd,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,CAAC;SACV,CAAC;QACF,MAAM,QAAQ,GAAG;YACb,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,CAAC;YACP,SAAS,EAAE,GAAG;SACjB,CAAC;QACF,IAAA,aAAM,EAAC,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/core",
|
|
3
|
-
"version": "1.28.0-next.
|
|
3
|
+
"version": "1.28.0-next.31+896c343f592",
|
|
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",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"@phosphor/signaling": "1",
|
|
17
17
|
"@phosphor/virtualdom": "1",
|
|
18
18
|
"@phosphor/widgets": "1",
|
|
19
|
-
"@theia/application-package": "1.28.0-next.
|
|
20
|
-
"@theia/request": "1.28.0-next.
|
|
19
|
+
"@theia/application-package": "1.28.0-next.31+896c343f592",
|
|
20
|
+
"@theia/request": "1.28.0-next.31+896c343f592",
|
|
21
21
|
"@types/body-parser": "^1.16.4",
|
|
22
22
|
"@types/cookie": "^0.3.3",
|
|
23
23
|
"@types/dompurify": "^2.2.2",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"drivelist": "^9.0.2",
|
|
42
42
|
"es6-promise": "^4.2.4",
|
|
43
43
|
"express": "^4.16.3",
|
|
44
|
+
"fast-json-stable-stringify": "^2.1.0",
|
|
44
45
|
"file-icons-js": "~1.0.3",
|
|
45
46
|
"font-awesome": "^4.7.0",
|
|
46
47
|
"fs-extra": "^4.0.2",
|
|
@@ -200,5 +201,5 @@
|
|
|
200
201
|
"nyc": {
|
|
201
202
|
"extends": "../../configs/nyc.json"
|
|
202
203
|
},
|
|
203
|
-
"gitHead": "
|
|
204
|
+
"gitHead": "896c343f59281e7710388969b2ae89f08b2130e7"
|
|
204
205
|
}
|
|
@@ -63,4 +63,18 @@ describe('widget-manager', () => {
|
|
|
63
63
|
expect(wA).equals(await widgetManager.getOrCreateWidget('test', 'widgetA'));
|
|
64
64
|
});
|
|
65
65
|
|
|
66
|
+
it('produces the same widget key regardless of object key order', () => {
|
|
67
|
+
const options1 = {
|
|
68
|
+
factoryId: 'a',
|
|
69
|
+
key1: 1,
|
|
70
|
+
key2: 2,
|
|
71
|
+
};
|
|
72
|
+
const options2 = {
|
|
73
|
+
key2: 2,
|
|
74
|
+
key1: 1,
|
|
75
|
+
factoryId: 'a',
|
|
76
|
+
};
|
|
77
|
+
expect(widgetManager['toKey'](options1)).equals(widgetManager['toKey'](options2));
|
|
78
|
+
});
|
|
79
|
+
|
|
66
80
|
});
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import { inject, named, injectable } from 'inversify';
|
|
18
18
|
import { Widget } from '@phosphor/widgets';
|
|
19
19
|
import { ILogger, Emitter, Event, ContributionProvider, MaybePromise, WaitUntilEvent } from '../common';
|
|
20
|
+
import stableJsonStringify = require('fast-json-stable-stringify');
|
|
20
21
|
|
|
21
22
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
22
23
|
export const WidgetFactory = Symbol('WidgetFactory');
|
|
@@ -256,7 +257,7 @@ export class WidgetManager {
|
|
|
256
257
|
* @returns the widget construction options represented as a string.
|
|
257
258
|
*/
|
|
258
259
|
protected toKey(options: WidgetConstructionOptions): string {
|
|
259
|
-
return
|
|
260
|
+
return stableJsonStringify(options);
|
|
260
261
|
}
|
|
261
262
|
|
|
262
263
|
/**
|