@itwin/core-frontend 3.1.0-dev.13 → 3.1.0-dev.14
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/lib/cjs/LocalhostIpcApp.d.ts +2 -0
- package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/cjs/LocalhostIpcApp.js +10 -4
- package/lib/cjs/LocalhostIpcApp.js.map +1 -1
- package/lib/esm/LocalhostIpcApp.d.ts +2 -0
- package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/esm/LocalhostIpcApp.js +10 -4
- package/lib/esm/LocalhostIpcApp.js.map +1 -1
- package/package.json +20 -20
|
@@ -15,6 +15,8 @@ export interface LocalHostIpcAppOpts {
|
|
|
15
15
|
* @internal
|
|
16
16
|
*/
|
|
17
17
|
export declare class LocalhostIpcApp {
|
|
18
|
+
private static _initialized;
|
|
19
|
+
private static _ipc;
|
|
18
20
|
static buildUrlForSocket(base: URL, path?: string): URL;
|
|
19
21
|
static startup(opts: LocalHostIpcAppOpts): Promise<void>;
|
|
20
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalhostIpcApp.d.ts","sourceRoot":"","sources":["../../src/LocalhostIpcApp.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,eAAe,CAAC,EAAE;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,GAAG,CAAC;KACjB,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"LocalhostIpcApp.d.ts","sourceRoot":"","sources":["../../src/LocalhostIpcApp.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,eAAe,CAAC,EAAE;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,GAAG,CAAC;KACjB,CAAC;CACH;AAkDD;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAS;IACpC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAuB;WAE5B,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,SAAQ,GAAG,GAAG;WAOzC,OAAO,CAAC,IAAI,EAAE,mBAAmB;CAStD"}
|
|
@@ -24,13 +24,14 @@ class LocalTransport extends core_common_1.IpcWebSocketTransport {
|
|
|
24
24
|
url = new URL(`ws://localhost:${port}/`);
|
|
25
25
|
}
|
|
26
26
|
this._client = new WebSocket(url);
|
|
27
|
+
this._next = -1;
|
|
27
28
|
this._client.addEventListener("open", () => {
|
|
28
29
|
const pending = this._pending;
|
|
29
30
|
this._pending = undefined;
|
|
30
31
|
pending.forEach((m) => this.send(m));
|
|
31
32
|
});
|
|
32
33
|
this._client.addEventListener("message", async (event) => {
|
|
33
|
-
const message = await this.notifyIncoming(event.data);
|
|
34
|
+
const message = await this.notifyIncoming(event.data, this._client);
|
|
34
35
|
if (core_common_1.IpcWebSocketMessage.skip(message)) {
|
|
35
36
|
return;
|
|
36
37
|
}
|
|
@@ -43,6 +44,7 @@ class LocalTransport extends core_common_1.IpcWebSocketTransport {
|
|
|
43
44
|
this._pending.push(message);
|
|
44
45
|
return;
|
|
45
46
|
}
|
|
47
|
+
message.sequence = ++this._next;
|
|
46
48
|
const parts = this.serialize(message);
|
|
47
49
|
parts.forEach((part) => this._client.send(part));
|
|
48
50
|
}
|
|
@@ -59,10 +61,14 @@ class LocalhostIpcApp {
|
|
|
59
61
|
return url;
|
|
60
62
|
}
|
|
61
63
|
static async startup(opts) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
if (!this._initialized) {
|
|
65
|
+
core_common_1.IpcWebSocket.transport = new LocalTransport(opts);
|
|
66
|
+
this._ipc = new core_common_1.IpcWebSocketFrontend();
|
|
67
|
+
this._initialized = true;
|
|
68
|
+
}
|
|
69
|
+
await IpcApp_1.IpcApp.startup(this._ipc, opts);
|
|
65
70
|
}
|
|
66
71
|
}
|
|
67
72
|
exports.LocalhostIpcApp = LocalhostIpcApp;
|
|
73
|
+
LocalhostIpcApp._initialized = false;
|
|
68
74
|
//# sourceMappingURL=LocalhostIpcApp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalhostIpcApp.js","sourceRoot":"","sources":["../../src/LocalhostIpcApp.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,oDAAoH;AACpH,qCAAkC;AAalC,MAAM,cAAe,SAAQ,mCAAqB;
|
|
1
|
+
{"version":3,"file":"LocalhostIpcApp.js","sourceRoot":"","sources":["../../src/LocalhostIpcApp.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module IModelApp\r\n */\r\n\r\nimport { IpcWebSocket, IpcWebSocketFrontend, IpcWebSocketMessage, IpcWebSocketTransport } from \"@itwin/core-common\";\r\nimport { IpcApp } from \"./IpcApp\";\r\nimport { IModelAppOptions } from \"./IModelApp\";\r\n\r\n/** @internal */\r\nexport interface LocalHostIpcAppOpts {\r\n iModelApp?: IModelAppOptions;\r\n\r\n localhostIpcApp?: {\r\n socketPort?: number;\r\n socketUrl?: URL;\r\n };\r\n}\r\n\r\nclass LocalTransport extends IpcWebSocketTransport {\r\n private _client: WebSocket;\r\n private _next: number;\r\n private _pending?: IpcWebSocketMessage[] = [];\r\n\r\n public constructor(opts: LocalHostIpcAppOpts) {\r\n super();\r\n\r\n let url: URL;\r\n if (opts?.localhostIpcApp?.socketUrl) {\r\n url = opts?.localhostIpcApp?.socketUrl;\r\n } else {\r\n const port = opts?.localhostIpcApp?.socketPort ?? 3002;\r\n url = new URL(`ws://localhost:${port}/`);\r\n }\r\n\r\n this._client = new WebSocket(url);\r\n this._next = -1;\r\n\r\n this._client.addEventListener(\"open\", () => {\r\n const pending = this._pending!;\r\n this._pending = undefined;\r\n pending.forEach((m) => this.send(m));\r\n });\r\n\r\n this._client.addEventListener(\"message\", async (event) => {\r\n const message = await this.notifyIncoming(event.data, this._client);\r\n if (IpcWebSocketMessage.skip(message)) {\r\n return;\r\n }\r\n\r\n for (const listener of IpcWebSocket.receivers)\r\n listener({} as Event, message);\r\n });\r\n }\r\n\r\n public send(message: IpcWebSocketMessage): void {\r\n if (this._pending) {\r\n this._pending.push(message);\r\n return;\r\n }\r\n\r\n message.sequence = ++this._next;\r\n const parts = this.serialize(message);\r\n parts.forEach((part) => this._client.send(part));\r\n }\r\n}\r\n\r\n/**\r\n * To be used only by test applications that want to test web-based editing using localhost.\r\n * @internal\r\n */\r\nexport class LocalhostIpcApp {\r\n private static _initialized = false;\r\n private static _ipc: IpcWebSocketFrontend;\r\n\r\n public static buildUrlForSocket(base: URL, path = \"ipc\"): URL {\r\n const url = new URL(base);\r\n url.protocol = \"ws\";\r\n url.pathname = [...url.pathname.split(\"/\"), path].filter((v) => v).join(\"/\");\r\n return url;\r\n }\r\n\r\n public static async startup(opts: LocalHostIpcAppOpts) {\r\n if (!this._initialized) {\r\n IpcWebSocket.transport = new LocalTransport(opts);\r\n this._ipc = new IpcWebSocketFrontend();\r\n this._initialized = true;\r\n }\r\n\r\n await IpcApp.startup(this._ipc, opts);\r\n }\r\n}\r\n"]}
|
|
@@ -15,6 +15,8 @@ export interface LocalHostIpcAppOpts {
|
|
|
15
15
|
* @internal
|
|
16
16
|
*/
|
|
17
17
|
export declare class LocalhostIpcApp {
|
|
18
|
+
private static _initialized;
|
|
19
|
+
private static _ipc;
|
|
18
20
|
static buildUrlForSocket(base: URL, path?: string): URL;
|
|
19
21
|
static startup(opts: LocalHostIpcAppOpts): Promise<void>;
|
|
20
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalhostIpcApp.d.ts","sourceRoot":"","sources":["../../src/LocalhostIpcApp.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,eAAe,CAAC,EAAE;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,GAAG,CAAC;KACjB,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"LocalhostIpcApp.d.ts","sourceRoot":"","sources":["../../src/LocalhostIpcApp.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,eAAe,CAAC,EAAE;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,GAAG,CAAC;KACjB,CAAC;CACH;AAkDD;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAS;IACpC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAuB;WAE5B,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,SAAQ,GAAG,GAAG;WAOzC,OAAO,CAAC,IAAI,EAAE,mBAAmB;CAStD"}
|
|
@@ -21,13 +21,14 @@ class LocalTransport extends IpcWebSocketTransport {
|
|
|
21
21
|
url = new URL(`ws://localhost:${port}/`);
|
|
22
22
|
}
|
|
23
23
|
this._client = new WebSocket(url);
|
|
24
|
+
this._next = -1;
|
|
24
25
|
this._client.addEventListener("open", () => {
|
|
25
26
|
const pending = this._pending;
|
|
26
27
|
this._pending = undefined;
|
|
27
28
|
pending.forEach((m) => this.send(m));
|
|
28
29
|
});
|
|
29
30
|
this._client.addEventListener("message", async (event) => {
|
|
30
|
-
const message = await this.notifyIncoming(event.data);
|
|
31
|
+
const message = await this.notifyIncoming(event.data, this._client);
|
|
31
32
|
if (IpcWebSocketMessage.skip(message)) {
|
|
32
33
|
return;
|
|
33
34
|
}
|
|
@@ -40,6 +41,7 @@ class LocalTransport extends IpcWebSocketTransport {
|
|
|
40
41
|
this._pending.push(message);
|
|
41
42
|
return;
|
|
42
43
|
}
|
|
44
|
+
message.sequence = ++this._next;
|
|
43
45
|
const parts = this.serialize(message);
|
|
44
46
|
parts.forEach((part) => this._client.send(part));
|
|
45
47
|
}
|
|
@@ -56,9 +58,13 @@ export class LocalhostIpcApp {
|
|
|
56
58
|
return url;
|
|
57
59
|
}
|
|
58
60
|
static async startup(opts) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
if (!this._initialized) {
|
|
62
|
+
IpcWebSocket.transport = new LocalTransport(opts);
|
|
63
|
+
this._ipc = new IpcWebSocketFrontend();
|
|
64
|
+
this._initialized = true;
|
|
65
|
+
}
|
|
66
|
+
await IpcApp.startup(this._ipc, opts);
|
|
62
67
|
}
|
|
63
68
|
}
|
|
69
|
+
LocalhostIpcApp._initialized = false;
|
|
64
70
|
//# sourceMappingURL=LocalhostIpcApp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalhostIpcApp.js","sourceRoot":"","sources":["../../src/LocalhostIpcApp.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAalC,MAAM,cAAe,SAAQ,qBAAqB;
|
|
1
|
+
{"version":3,"file":"LocalhostIpcApp.js","sourceRoot":"","sources":["../../src/LocalhostIpcApp.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module IModelApp\r\n */\r\n\r\nimport { IpcWebSocket, IpcWebSocketFrontend, IpcWebSocketMessage, IpcWebSocketTransport } from \"@itwin/core-common\";\r\nimport { IpcApp } from \"./IpcApp\";\r\nimport { IModelAppOptions } from \"./IModelApp\";\r\n\r\n/** @internal */\r\nexport interface LocalHostIpcAppOpts {\r\n iModelApp?: IModelAppOptions;\r\n\r\n localhostIpcApp?: {\r\n socketPort?: number;\r\n socketUrl?: URL;\r\n };\r\n}\r\n\r\nclass LocalTransport extends IpcWebSocketTransport {\r\n private _client: WebSocket;\r\n private _next: number;\r\n private _pending?: IpcWebSocketMessage[] = [];\r\n\r\n public constructor(opts: LocalHostIpcAppOpts) {\r\n super();\r\n\r\n let url: URL;\r\n if (opts?.localhostIpcApp?.socketUrl) {\r\n url = opts?.localhostIpcApp?.socketUrl;\r\n } else {\r\n const port = opts?.localhostIpcApp?.socketPort ?? 3002;\r\n url = new URL(`ws://localhost:${port}/`);\r\n }\r\n\r\n this._client = new WebSocket(url);\r\n this._next = -1;\r\n\r\n this._client.addEventListener(\"open\", () => {\r\n const pending = this._pending!;\r\n this._pending = undefined;\r\n pending.forEach((m) => this.send(m));\r\n });\r\n\r\n this._client.addEventListener(\"message\", async (event) => {\r\n const message = await this.notifyIncoming(event.data, this._client);\r\n if (IpcWebSocketMessage.skip(message)) {\r\n return;\r\n }\r\n\r\n for (const listener of IpcWebSocket.receivers)\r\n listener({} as Event, message);\r\n });\r\n }\r\n\r\n public send(message: IpcWebSocketMessage): void {\r\n if (this._pending) {\r\n this._pending.push(message);\r\n return;\r\n }\r\n\r\n message.sequence = ++this._next;\r\n const parts = this.serialize(message);\r\n parts.forEach((part) => this._client.send(part));\r\n }\r\n}\r\n\r\n/**\r\n * To be used only by test applications that want to test web-based editing using localhost.\r\n * @internal\r\n */\r\nexport class LocalhostIpcApp {\r\n private static _initialized = false;\r\n private static _ipc: IpcWebSocketFrontend;\r\n\r\n public static buildUrlForSocket(base: URL, path = \"ipc\"): URL {\r\n const url = new URL(base);\r\n url.protocol = \"ws\";\r\n url.pathname = [...url.pathname.split(\"/\"), path].filter((v) => v).join(\"/\");\r\n return url;\r\n }\r\n\r\n public static async startup(opts: LocalHostIpcAppOpts) {\r\n if (!this._initialized) {\r\n IpcWebSocket.transport = new LocalTransport(opts);\r\n this._ipc = new IpcWebSocketFrontend();\r\n this._initialized = true;\r\n }\r\n\r\n await IpcApp.startup(this._ipc, opts);\r\n }\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/core-frontend",
|
|
3
|
-
"version": "3.1.0-dev.
|
|
3
|
+
"version": "3.1.0-dev.14",
|
|
4
4
|
"description": "iTwin.js frontend components",
|
|
5
5
|
"main": "lib/cjs/core-frontend.js",
|
|
6
6
|
"module": "lib/esm/core-frontend.js",
|
|
@@ -23,29 +23,29 @@
|
|
|
23
23
|
"url": "http://www.bentley.com"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@itwin/appui-abstract": "^3.1.0-dev.
|
|
27
|
-
"@itwin/core-bentley": "^3.1.0-dev.
|
|
28
|
-
"@itwin/core-common": "^3.1.0-dev.
|
|
29
|
-
"@itwin/core-geometry": "^3.1.0-dev.
|
|
30
|
-
"@itwin/core-orbitgt": "^3.1.0-dev.
|
|
31
|
-
"@itwin/core-quantity": "^3.1.0-dev.
|
|
32
|
-
"@itwin/webgl-compatibility": "^3.1.0-dev.
|
|
26
|
+
"@itwin/appui-abstract": "^3.1.0-dev.14",
|
|
27
|
+
"@itwin/core-bentley": "^3.1.0-dev.14",
|
|
28
|
+
"@itwin/core-common": "^3.1.0-dev.14",
|
|
29
|
+
"@itwin/core-geometry": "^3.1.0-dev.14",
|
|
30
|
+
"@itwin/core-orbitgt": "^3.1.0-dev.14",
|
|
31
|
+
"@itwin/core-quantity": "^3.1.0-dev.14",
|
|
32
|
+
"@itwin/webgl-compatibility": "^3.1.0-dev.14"
|
|
33
33
|
},
|
|
34
34
|
"//devDependencies": [
|
|
35
35
|
"NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install",
|
|
36
36
|
"NOTE: All tools used by scripts in this package must be listed as devDependencies"
|
|
37
37
|
],
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@itwin/appui-abstract": "3.1.0-dev.
|
|
40
|
-
"@itwin/build-tools": "3.1.0-dev.
|
|
41
|
-
"@itwin/core-bentley": "3.1.0-dev.
|
|
42
|
-
"@itwin/core-common": "3.1.0-dev.
|
|
43
|
-
"@itwin/core-geometry": "3.1.0-dev.
|
|
44
|
-
"@itwin/core-orbitgt": "3.1.0-dev.
|
|
45
|
-
"@itwin/core-quantity": "3.1.0-dev.
|
|
46
|
-
"@itwin/certa": "3.1.0-dev.
|
|
47
|
-
"@itwin/eslint-plugin": "3.1.0-dev.
|
|
48
|
-
"@itwin/webgl-compatibility": "3.1.0-dev.
|
|
39
|
+
"@itwin/appui-abstract": "3.1.0-dev.14",
|
|
40
|
+
"@itwin/build-tools": "3.1.0-dev.14",
|
|
41
|
+
"@itwin/core-bentley": "3.1.0-dev.14",
|
|
42
|
+
"@itwin/core-common": "3.1.0-dev.14",
|
|
43
|
+
"@itwin/core-geometry": "3.1.0-dev.14",
|
|
44
|
+
"@itwin/core-orbitgt": "3.1.0-dev.14",
|
|
45
|
+
"@itwin/core-quantity": "3.1.0-dev.14",
|
|
46
|
+
"@itwin/certa": "3.1.0-dev.14",
|
|
47
|
+
"@itwin/eslint-plugin": "3.1.0-dev.14",
|
|
48
|
+
"@itwin/webgl-compatibility": "3.1.0-dev.14",
|
|
49
49
|
"@types/chai": "^4.1.4",
|
|
50
50
|
"@types/chai-as-promised": "^7",
|
|
51
51
|
"@types/deep-assign": "^0.1.0",
|
|
@@ -74,8 +74,8 @@
|
|
|
74
74
|
"NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"
|
|
75
75
|
],
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"@itwin/core-i18n": "3.1.0-dev.
|
|
78
|
-
"@itwin/core-telemetry": "3.1.0-dev.
|
|
77
|
+
"@itwin/core-i18n": "3.1.0-dev.14",
|
|
78
|
+
"@itwin/core-telemetry": "3.1.0-dev.14",
|
|
79
79
|
"deep-assign": "^2.0.0",
|
|
80
80
|
"fuse.js": "^3.3.0",
|
|
81
81
|
"lodash": "^4.17.10",
|