@itwin/core-mobile 3.0.0-dev.100
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/CHANGELOG.md +263 -0
- package/LICENSE.md +9 -0
- package/README.md +11 -0
- package/lib/cjs/MobileBackend.d.ts +7 -0
- package/lib/cjs/MobileBackend.d.ts.map +1 -0
- package/lib/cjs/MobileBackend.js +24 -0
- package/lib/cjs/MobileBackend.js.map +1 -0
- package/lib/cjs/MobileFrontend.d.ts +5 -0
- package/lib/cjs/MobileFrontend.d.ts.map +1 -0
- package/lib/cjs/MobileFrontend.js +21 -0
- package/lib/cjs/MobileFrontend.js.map +1 -0
- package/lib/cjs/__DOC_ONLY__.d.ts +9 -0
- package/lib/cjs/__DOC_ONLY__.d.ts.map +1 -0
- package/lib/cjs/__DOC_ONLY__.js +28 -0
- package/lib/cjs/__DOC_ONLY__.js.map +1 -0
- package/lib/cjs/backend/AndroidHost.d.ts +11 -0
- package/lib/cjs/backend/AndroidHost.d.ts.map +1 -0
- package/lib/cjs/backend/AndroidHost.js +23 -0
- package/lib/cjs/backend/AndroidHost.js.map +1 -0
- package/lib/cjs/backend/MobileAuthorizationBackend.d.ts +23 -0
- package/lib/cjs/backend/MobileAuthorizationBackend.d.ts.map +1 -0
- package/lib/cjs/backend/MobileAuthorizationBackend.js +78 -0
- package/lib/cjs/backend/MobileAuthorizationBackend.js.map +1 -0
- package/lib/cjs/backend/MobileFileHandler.d.ts +88 -0
- package/lib/cjs/backend/MobileFileHandler.d.ts.map +1 -0
- package/lib/cjs/backend/MobileFileHandler.js +233 -0
- package/lib/cjs/backend/MobileFileHandler.js.map +1 -0
- package/lib/cjs/backend/MobileHost.d.ts +78 -0
- package/lib/cjs/backend/MobileHost.d.ts.map +1 -0
- package/lib/cjs/backend/MobileHost.js +126 -0
- package/lib/cjs/backend/MobileHost.js.map +1 -0
- package/lib/cjs/backend/MobileRpcServer.d.ts +19 -0
- package/lib/cjs/backend/MobileRpcServer.d.ts.map +1 -0
- package/lib/cjs/backend/MobileRpcServer.js +136 -0
- package/lib/cjs/backend/MobileRpcServer.js.map +1 -0
- package/lib/cjs/backend/iOSHost.d.ts +11 -0
- package/lib/cjs/backend/iOSHost.d.ts.map +1 -0
- package/lib/cjs/backend/iOSHost.js +23 -0
- package/lib/cjs/backend/iOSHost.js.map +1 -0
- package/lib/cjs/common/MobileAppProps.d.ts +35 -0
- package/lib/cjs/common/MobileAppProps.d.ts.map +1 -0
- package/lib/cjs/common/MobileAppProps.js +29 -0
- package/lib/cjs/common/MobileAppProps.js.map +1 -0
- package/lib/cjs/common/MobileEventLoop.d.ts +12 -0
- package/lib/cjs/common/MobileEventLoop.d.ts.map +1 -0
- package/lib/cjs/common/MobileEventLoop.js +31 -0
- package/lib/cjs/common/MobileEventLoop.js.map +1 -0
- package/lib/cjs/common/MobileIpc.d.ts +18 -0
- package/lib/cjs/common/MobileIpc.d.ts.map +1 -0
- package/lib/cjs/common/MobileIpc.js +71 -0
- package/lib/cjs/common/MobileIpc.js.map +1 -0
- package/lib/cjs/common/MobilePush.d.ts +21 -0
- package/lib/cjs/common/MobilePush.d.ts.map +1 -0
- package/lib/cjs/common/MobilePush.js +53 -0
- package/lib/cjs/common/MobilePush.js.map +1 -0
- package/lib/cjs/common/MobileRpcManager.d.ts +41 -0
- package/lib/cjs/common/MobileRpcManager.d.ts.map +1 -0
- package/lib/cjs/common/MobileRpcManager.js +110 -0
- package/lib/cjs/common/MobileRpcManager.js.map +1 -0
- package/lib/cjs/common/MobileRpcProtocol.d.ts +59 -0
- package/lib/cjs/common/MobileRpcProtocol.d.ts.map +1 -0
- package/lib/cjs/common/MobileRpcProtocol.js +279 -0
- package/lib/cjs/common/MobileRpcProtocol.js.map +1 -0
- package/lib/cjs/common/MobileRpcRequest.d.ts +21 -0
- package/lib/cjs/common/MobileRpcRequest.d.ts.map +1 -0
- package/lib/cjs/common/MobileRpcRequest.js +48 -0
- package/lib/cjs/common/MobileRpcRequest.js.map +1 -0
- package/lib/cjs/frontend/AndroidApp.d.ts +14 -0
- package/lib/cjs/frontend/AndroidApp.d.ts.map +1 -0
- package/lib/cjs/frontend/AndroidApp.js +17 -0
- package/lib/cjs/frontend/AndroidApp.js.map +1 -0
- package/lib/cjs/frontend/IOSApp.d.ts +10 -0
- package/lib/cjs/frontend/IOSApp.d.ts.map +1 -0
- package/lib/cjs/frontend/IOSApp.js +21 -0
- package/lib/cjs/frontend/IOSApp.js.map +1 -0
- package/lib/cjs/frontend/MobileApp.d.ts +20 -0
- package/lib/cjs/frontend/MobileApp.d.ts.map +1 -0
- package/lib/cjs/frontend/MobileApp.js +57 -0
- package/lib/cjs/frontend/MobileApp.js.map +1 -0
- package/lib/cjs/test/ios/MobilePlatform.test.d.ts +2 -0
- package/lib/cjs/test/ios/MobilePlatform.test.d.ts.map +1 -0
- package/lib/cjs/test/ios/MobilePlatform.test.js +85 -0
- package/lib/cjs/test/ios/MobilePlatform.test.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { NativeAppOpts } from "@itwin/core-frontend";
|
|
2
|
+
/** @beta */
|
|
3
|
+
export declare type IOSAppOpts = NativeAppOpts;
|
|
4
|
+
/** @beta */
|
|
5
|
+
export declare class IOSApp {
|
|
6
|
+
private static _isValid;
|
|
7
|
+
static get isValid(): boolean;
|
|
8
|
+
static startup(opts?: IOSAppOpts): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=IOSApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IOSApp.d.ts","sourceRoot":"","sources":["../../../src/frontend/IOSApp.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,YAAY;AACZ,oBAAY,UAAU,GAAG,aAAa,CAAC;AAEvC,YAAY;AACZ,qBAAa,MAAM;IAEjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,WAAkB,OAAO,YAA4B;WACjC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU;CAM9C"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.IOSApp = void 0;
|
|
8
|
+
const MobileApp_1 = require("./MobileApp");
|
|
9
|
+
/** @beta */
|
|
10
|
+
class IOSApp {
|
|
11
|
+
static get isValid() { return this._isValid; }
|
|
12
|
+
static async startup(opts) {
|
|
13
|
+
if (!this._isValid) {
|
|
14
|
+
this._isValid = true;
|
|
15
|
+
}
|
|
16
|
+
await MobileApp_1.MobileApp.startup(opts);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.IOSApp = IOSApp;
|
|
20
|
+
IOSApp._isValid = false;
|
|
21
|
+
//# sourceMappingURL=IOSApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IOSApp.js","sourceRoot":"","sources":["../../../src/frontend/IOSApp.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAG/F,2CAAwC;AAKxC,YAAY;AACZ,MAAa,MAAM;IAGV,MAAM,KAAK,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAiB;QAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;QACD,MAAM,qBAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;;AATH,wBAUC;AARgB,eAAQ,GAAG,KAAK,CAAC","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\r\nimport { NativeAppOpts } from \"@itwin/core-frontend\";\r\nimport { MobileApp } from \"./MobileApp\";\r\n\r\n/** @beta */\r\nexport type IOSAppOpts = NativeAppOpts;\r\n\r\n/** @beta */\r\nexport class IOSApp {\r\n\r\n private static _isValid = false;\r\n public static get isValid() { return this._isValid; }\r\n public static async startup(opts?: IOSAppOpts) {\r\n if (!this._isValid) {\r\n this._isValid = true;\r\n }\r\n await MobileApp.startup(opts);\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AsyncMethodsOf, BeEvent, PromiseReturnType } from "@itwin/core-bentley";
|
|
2
|
+
import { NativeAppOpts } from "@itwin/core-frontend";
|
|
3
|
+
import { MobileAppFunctions } from "../common/MobileAppProps";
|
|
4
|
+
/** @beta */
|
|
5
|
+
export declare class MobileApp {
|
|
6
|
+
static onMemoryWarning: BeEvent<() => void>;
|
|
7
|
+
static onOrientationChanged: BeEvent<() => void>;
|
|
8
|
+
static onEnterForeground: BeEvent<() => void>;
|
|
9
|
+
static onEnterBackground: BeEvent<() => void>;
|
|
10
|
+
static onWillTerminate: BeEvent<() => void>;
|
|
11
|
+
static callBackend<T extends AsyncMethodsOf<MobileAppFunctions>>(methodName: T, ...args: Parameters<MobileAppFunctions[T]>): Promise<PromiseReturnType<MobileAppFunctions[T]>>;
|
|
12
|
+
private static _isValid;
|
|
13
|
+
static get isValid(): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* This is called by either ElectronApp.startup or MobileApp.startup - it should not be called directly
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
static startup(opts?: NativeAppOpts): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=MobileApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobileApp.d.ts","sourceRoot":"","sources":["../../../src/frontend/MobileApp.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAU,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EAAqB,aAAa,EAAuB,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAAoB,kBAAkB,EAAwC,MAAM,0BAA0B,CAAC;AAoBtH,YAAY;AACZ,qBAAa,SAAS;IACpB,OAAc,eAAe,gBAAqB,IAAI,EAAI;IAC1D,OAAc,oBAAoB,gBAAqB,IAAI,EAAI;IAC/D,OAAc,iBAAiB,gBAAqB,IAAI,EAAI;IAC5D,OAAc,iBAAiB,gBAAqB,IAAI,EAAI;IAC5D,OAAc,eAAe,gBAAqB,IAAI,EAAI;WACtC,WAAW,CAAC,CAAC,SAAS,cAAc,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAIvI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,WAAkB,OAAO,YAA4B;IACrD;;;OAGG;WACiB,OAAO,CAAC,IAAI,CAAC,EAAE,aAAa;CAWjD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.MobileApp = void 0;
|
|
8
|
+
const core_bentley_1 = require("@itwin/core-bentley");
|
|
9
|
+
const core_common_1 = require("@itwin/core-common");
|
|
10
|
+
const core_frontend_1 = require("@itwin/core-frontend");
|
|
11
|
+
const MobileAppProps_1 = require("../common/MobileAppProps");
|
|
12
|
+
const MobileRpcManager_1 = require("../common/MobileRpcManager");
|
|
13
|
+
/** receive notifications from backend */
|
|
14
|
+
class MobileAppNotifyHandler extends core_frontend_1.NotificationHandler {
|
|
15
|
+
get channelName() { return MobileAppProps_1.mobileAppNotify; }
|
|
16
|
+
notifyMemoryWarning() {
|
|
17
|
+
core_bentley_1.Logger.logWarning("mobileApp", "Low memory warning");
|
|
18
|
+
if (MobileApp.onMemoryWarning.numberOfListeners === 0) {
|
|
19
|
+
alert("Low memory warning");
|
|
20
|
+
}
|
|
21
|
+
MobileApp.onMemoryWarning.raiseEvent();
|
|
22
|
+
}
|
|
23
|
+
notifyOrientationChanged() { MobileApp.onOrientationChanged.raiseEvent(); }
|
|
24
|
+
notifyEnterForeground() { MobileApp.onEnterBackground.raiseEvent(); }
|
|
25
|
+
notifyEnterBackground() { MobileApp.onEnterBackground.raiseEvent(); }
|
|
26
|
+
notifyWillTerminate() { MobileApp.onWillTerminate.raiseEvent(); }
|
|
27
|
+
}
|
|
28
|
+
/** @beta */
|
|
29
|
+
class MobileApp {
|
|
30
|
+
static async callBackend(methodName, ...args) {
|
|
31
|
+
return core_frontend_1.IpcApp.callIpcChannel(MobileAppProps_1.mobileAppChannel, methodName, ...args);
|
|
32
|
+
}
|
|
33
|
+
static get isValid() { return this._isValid; }
|
|
34
|
+
/**
|
|
35
|
+
* This is called by either ElectronApp.startup or MobileApp.startup - it should not be called directly
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
static async startup(opts) {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
if (!this._isValid) {
|
|
41
|
+
const rpcInterfaces = (_b = (_a = opts === null || opts === void 0 ? void 0 : opts.iModelApp) === null || _a === void 0 ? void 0 : _a.rpcInterfaces) !== null && _b !== void 0 ? _b : [core_common_1.IModelReadRpcInterface, core_common_1.IModelTileRpcInterface];
|
|
42
|
+
MobileRpcManager_1.MobileRpcManager.initializeClient(rpcInterfaces);
|
|
43
|
+
this._isValid = true;
|
|
44
|
+
}
|
|
45
|
+
const socket = new core_common_1.IpcWebSocketFrontend(); // needs work
|
|
46
|
+
await core_frontend_1.NativeApp.startup(socket, opts);
|
|
47
|
+
MobileAppNotifyHandler.register(); // receives notifications from backend
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.MobileApp = MobileApp;
|
|
51
|
+
MobileApp.onMemoryWarning = new core_bentley_1.BeEvent();
|
|
52
|
+
MobileApp.onOrientationChanged = new core_bentley_1.BeEvent();
|
|
53
|
+
MobileApp.onEnterForeground = new core_bentley_1.BeEvent();
|
|
54
|
+
MobileApp.onEnterBackground = new core_bentley_1.BeEvent();
|
|
55
|
+
MobileApp.onWillTerminate = new core_bentley_1.BeEvent();
|
|
56
|
+
MobileApp._isValid = false;
|
|
57
|
+
//# sourceMappingURL=MobileApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobileApp.js","sourceRoot":"","sources":["../../../src/frontend/MobileApp.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,sDAAyF;AACzF,oDAA0G;AAC1G,wDAA6F;AAC7F,6DAAsH;AACtH,iEAA8D;AAE9D,yCAAyC;AACzC,MAAM,sBAAuB,SAAQ,mCAAmB;IACtD,IAAW,WAAW,KAAK,OAAO,gCAAe,CAAC,CAAC,CAAC;IAE7C,mBAAmB;QACxB,qBAAM,CAAC,UAAU,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;QACrD,IAAI,SAAS,CAAC,eAAe,CAAC,iBAAiB,KAAK,CAAC,EAAE;YACrD,KAAK,CAAC,oBAAoB,CAAC,CAAC;SAC7B;QACD,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC;IACM,wBAAwB,KAAK,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC3E,qBAAqB,KAAK,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACrE,qBAAqB,KAAK,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACrE,mBAAmB,KAAK,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;CACzE;AAED,YAAY;AACZ,MAAa,SAAS;IAMb,MAAM,CAAC,KAAK,CAAC,WAAW,CAA+C,UAAa,EAAE,GAAG,IAAuC;QACrI,OAAO,sBAAM,CAAC,cAAc,CAAC,iCAAgB,EAAE,UAAU,EAAE,GAAG,IAAI,CAA6C,CAAC;IAClH,CAAC;IAGM,MAAM,KAAK,OAAO,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAoB;;QAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,MAAM,aAAa,GAAG,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,0CAAE,aAAa,mCAAI,CAAC,oCAAsB,EAAE,oCAAsB,CAAC,CAAC;YACzG,mCAAgB,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;QACD,MAAM,MAAM,GAAG,IAAI,kCAAoB,EAAE,CAAC,CAAC,aAAa;QACxD,MAAM,yBAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEtC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,CAAC,sCAAsC;IAC3E,CAAC;;AA1BH,8BA2BC;AA1Be,yBAAe,GAAG,IAAI,sBAAO,EAAc,CAAC;AAC5C,8BAAoB,GAAG,IAAI,sBAAO,EAAc,CAAC;AACjD,2BAAiB,GAAG,IAAI,sBAAO,EAAc,CAAC;AAC9C,2BAAiB,GAAG,IAAI,sBAAO,EAAc,CAAC;AAC9C,yBAAe,GAAG,IAAI,sBAAO,EAAc,CAAC;AAK3C,kBAAQ,GAAG,KAAK,CAAC","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\r\nimport { AsyncMethodsOf, BeEvent, Logger, PromiseReturnType } from \"@itwin/core-bentley\";\r\nimport { IModelReadRpcInterface, IModelTileRpcInterface, IpcWebSocketFrontend } from \"@itwin/core-common\";\r\nimport { IpcApp, NativeApp, NativeAppOpts, NotificationHandler } from \"@itwin/core-frontend\";\r\nimport { mobileAppChannel, MobileAppFunctions, mobileAppNotify, MobileNotifications } from \"../common/MobileAppProps\";\r\nimport { MobileRpcManager } from \"../common/MobileRpcManager\";\r\n\r\n/** receive notifications from backend */\r\nclass MobileAppNotifyHandler extends NotificationHandler implements MobileNotifications {\r\n public get channelName() { return mobileAppNotify; }\r\n\r\n public notifyMemoryWarning() {\r\n Logger.logWarning(\"mobileApp\", \"Low memory warning\");\r\n if (MobileApp.onMemoryWarning.numberOfListeners === 0) {\r\n alert(\"Low memory warning\");\r\n }\r\n MobileApp.onMemoryWarning.raiseEvent();\r\n }\r\n public notifyOrientationChanged() { MobileApp.onOrientationChanged.raiseEvent(); }\r\n public notifyEnterForeground() { MobileApp.onEnterBackground.raiseEvent(); }\r\n public notifyEnterBackground() { MobileApp.onEnterBackground.raiseEvent(); }\r\n public notifyWillTerminate() { MobileApp.onWillTerminate.raiseEvent(); }\r\n}\r\n\r\n/** @beta */\r\nexport class MobileApp {\r\n public static onMemoryWarning = new BeEvent<() => void>();\r\n public static onOrientationChanged = new BeEvent<() => void>();\r\n public static onEnterForeground = new BeEvent<() => void>();\r\n public static onEnterBackground = new BeEvent<() => void>();\r\n public static onWillTerminate = new BeEvent<() => void>();\r\n public static async callBackend<T extends AsyncMethodsOf<MobileAppFunctions>>(methodName: T, ...args: Parameters<MobileAppFunctions[T]>) {\r\n return IpcApp.callIpcChannel(mobileAppChannel, methodName, ...args) as PromiseReturnType<MobileAppFunctions[T]>;\r\n }\r\n\r\n private static _isValid = false;\r\n public static get isValid() { return this._isValid; }\r\n /**\r\n * This is called by either ElectronApp.startup or MobileApp.startup - it should not be called directly\r\n * @internal\r\n */\r\n public static async startup(opts?: NativeAppOpts) {\r\n if (!this._isValid) {\r\n const rpcInterfaces = opts?.iModelApp?.rpcInterfaces ?? [IModelReadRpcInterface, IModelTileRpcInterface];\r\n MobileRpcManager.initializeClient(rpcInterfaces);\r\n this._isValid = true;\r\n }\r\n const socket = new IpcWebSocketFrontend(); // needs work\r\n await NativeApp.startup(socket, opts);\r\n\r\n MobileAppNotifyHandler.register(); // receives notifications from backend\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobilePlatform.test.d.ts","sourceRoot":"","sources":["../../../../src/test/ios/MobilePlatform.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/*---------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
5
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
6
|
+
*--------------------------------------------------------------------------------------------*/
|
|
7
|
+
const chai_1 = require("chai");
|
|
8
|
+
const fs = require("fs-extra");
|
|
9
|
+
const os = require("os");
|
|
10
|
+
const path = require("path");
|
|
11
|
+
const outputDir = path.join(os.tmpdir(), "output");
|
|
12
|
+
describe.skip("IOS Platform Test", () => {
|
|
13
|
+
it("Filesystem (Uint8Array) - writeFileSync, appendFileSync and readFileSync", () => {
|
|
14
|
+
const testDir = path.join(outputDir, "mobile-introp");
|
|
15
|
+
const testFile = path.join(testDir, "test.bin");
|
|
16
|
+
if (fs.existsSync(testDir)) {
|
|
17
|
+
fs.unlinkSync(testDir);
|
|
18
|
+
}
|
|
19
|
+
fs.mkdirSync(testDir);
|
|
20
|
+
chai_1.assert.isTrue(fs.existsSync(testDir));
|
|
21
|
+
const testArray = new Uint8Array(1024);
|
|
22
|
+
for (let i = 0; i < testArray.length; i++) {
|
|
23
|
+
testArray[i] = i % 255;
|
|
24
|
+
}
|
|
25
|
+
fs.writeFileSync(testFile, testArray);
|
|
26
|
+
// binary test
|
|
27
|
+
const outArray = fs.readFileSync(testFile, { encoding: null });
|
|
28
|
+
chai_1.assert.equal(outArray.length, testArray.length, "array size must match");
|
|
29
|
+
for (let i = 0; i < testArray.length; i++) {
|
|
30
|
+
chai_1.assert.equal(testArray[i], outArray[i], `content at offset ${i} missmatch`);
|
|
31
|
+
}
|
|
32
|
+
chai_1.assert.equal(fs.lstatSync(testFile).size, testArray.length, "file size must match");
|
|
33
|
+
fs.appendFileSync(testFile, testArray);
|
|
34
|
+
// binary test
|
|
35
|
+
const outArrayx2 = fs.readFileSync(testFile, { encoding: null });
|
|
36
|
+
chai_1.assert.equal(outArrayx2.length, testArray.length * 2, "array size must match after append");
|
|
37
|
+
for (let i = 0; i < testArray.length; i++) {
|
|
38
|
+
chai_1.assert.equal(testArray[i], outArrayx2[i], `content at offset ${i} missmatch after append`);
|
|
39
|
+
}
|
|
40
|
+
// check append
|
|
41
|
+
for (let k = 0; k < testArray.length; k++) {
|
|
42
|
+
chai_1.assert.equal(testArray[k], outArrayx2[k + testArray.length], `content at offset ${k} missmatch after append`);
|
|
43
|
+
}
|
|
44
|
+
chai_1.assert.equal(fs.lstatSync(testFile).size, testArray.length * 2, "file size must match after append");
|
|
45
|
+
fs.unlinkSync(testFile);
|
|
46
|
+
chai_1.assert.isFalse(fs.existsSync(testFile));
|
|
47
|
+
});
|
|
48
|
+
it("Filesystem (string) - writeFileSync, appendFileSync and readFileSync", () => {
|
|
49
|
+
const testDir = path.join(outputDir, "mobile-introp");
|
|
50
|
+
const testFile = path.join(testDir, "test.bin");
|
|
51
|
+
if (fs.existsSync(testDir)) {
|
|
52
|
+
fs.unlinkSync(testDir);
|
|
53
|
+
}
|
|
54
|
+
fs.mkdirSync(testDir);
|
|
55
|
+
chai_1.assert.isTrue(fs.existsSync(testDir));
|
|
56
|
+
const testString = "*".repeat(1024);
|
|
57
|
+
fs.writeFileSync(testFile, testString);
|
|
58
|
+
// string test
|
|
59
|
+
const outString = fs.readFileSync(testFile, { encoding: "utf-8" });
|
|
60
|
+
chai_1.assert.equal(testString, outString);
|
|
61
|
+
fs.appendFileSync(testFile, testString);
|
|
62
|
+
const outStringx2 = fs.readFileSync(testFile, { encoding: "utf-8" });
|
|
63
|
+
chai_1.assert.equal(testString.length * 2, outStringx2.length);
|
|
64
|
+
chai_1.assert.equal(testString + testString, outStringx2);
|
|
65
|
+
fs.unlinkSync(testFile);
|
|
66
|
+
chai_1.assert.isFalse(fs.existsSync(testFile));
|
|
67
|
+
});
|
|
68
|
+
/*
|
|
69
|
+
- (bool) existsSync: (NSString*)path;
|
|
70
|
+
- (void) unlinkSync: (NSString*)path;
|
|
71
|
+
- (void) removeSync: (NSString*)path;
|
|
72
|
+
- (void) mkdirSync: (NSString*)path;
|
|
73
|
+
- (void) rmdirSync: (NSString*)path;
|
|
74
|
+
- (void) appendFileSync: (NSString*)path :(JSValue*)data;
|
|
75
|
+
- (NSArray<NSString*>*) readdirSync: (NSString*)path;
|
|
76
|
+
- (void) writeFileSync: (NSString*)path :(JSValue*)content;
|
|
77
|
+
- (void) copySync: (NSString*)fromPath :(NSString*)toPath;
|
|
78
|
+
- (JSValue*) lstatSync: (JSValue*)path;
|
|
79
|
+
- (JSValue*) readFileSync: (JSValue*)path :(JSValue*)options;
|
|
80
|
+
- (JSValue*) istatSync: (JSValue*)path;
|
|
81
|
+
- (NSString*) realpathSync: (JSValue*)path :(JSValue*)options;
|
|
82
|
+
- (void) closeSync: (JSValue*)fd;
|
|
83
|
+
- (JSValue*) openSync: (NSString*)path :(NSString*)flags :(JSValue*)mode; */
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=MobilePlatform.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobilePlatform.test.js","sourceRoot":"","sources":["../../../../src/test/ios/MobilePlatform.test.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\nimport { assert } from \"chai\";\r\nimport * as fs from \"fs-extra\";\r\nimport * as os from \"os\";\r\nimport * as path from \"path\";\r\n\r\nconst outputDir = path.join(os.tmpdir(), \"output\");\r\n\r\ndescribe.skip(\"IOS Platform Test\", () => {\r\n it(\"Filesystem (Uint8Array) - writeFileSync, appendFileSync and readFileSync\", () => {\r\n const testDir = path.join(outputDir, \"mobile-introp\");\r\n const testFile = path.join(testDir, \"test.bin\");\r\n if (fs.existsSync(testDir)) {\r\n fs.unlinkSync(testDir);\r\n }\r\n fs.mkdirSync(testDir);\r\n assert.isTrue(fs.existsSync(testDir));\r\n\r\n const testArray = new Uint8Array(1024);\r\n for (let i = 0; i < testArray.length; i++) {\r\n testArray[i] = i % 255;\r\n }\r\n\r\n fs.writeFileSync(testFile, testArray);\r\n // binary test\r\n const outArray = fs.readFileSync(testFile, { encoding: null });\r\n assert.equal(outArray.length, testArray.length, \"array size must match\");\r\n for (let i = 0; i < testArray.length; i++) {\r\n assert.equal(testArray[i], outArray[i], `content at offset ${i} missmatch`);\r\n }\r\n\r\n assert.equal(fs.lstatSync(testFile).size, testArray.length, \"file size must match\");\r\n\r\n fs.appendFileSync(testFile, testArray);\r\n\r\n // binary test\r\n const outArrayx2 = fs.readFileSync(testFile, { encoding: null });\r\n assert.equal(outArrayx2.length, testArray.length * 2, \"array size must match after append\");\r\n for (let i = 0; i < testArray.length; i++) {\r\n assert.equal(testArray[i], outArrayx2[i], `content at offset ${i} missmatch after append`);\r\n }\r\n // check append\r\n for (let k = 0; k < testArray.length; k++) {\r\n assert.equal(testArray[k], outArrayx2[k + testArray.length], `content at offset ${k} missmatch after append`);\r\n }\r\n assert.equal(fs.lstatSync(testFile).size, testArray.length * 2, \"file size must match after append\");\r\n\r\n fs.unlinkSync(testFile);\r\n assert.isFalse(fs.existsSync(testFile));\r\n });\r\n\r\n it(\"Filesystem (string) - writeFileSync, appendFileSync and readFileSync\", () => {\r\n const testDir = path.join(outputDir, \"mobile-introp\");\r\n const testFile = path.join(testDir, \"test.bin\");\r\n if (fs.existsSync(testDir)) {\r\n fs.unlinkSync(testDir);\r\n }\r\n\r\n fs.mkdirSync(testDir);\r\n assert.isTrue(fs.existsSync(testDir));\r\n\r\n const testString = \"*\".repeat(1024);\r\n fs.writeFileSync(testFile, testString);\r\n\r\n // string test\r\n const outString = fs.readFileSync(testFile, { encoding: \"utf-8\" });\r\n assert.equal(testString, outString);\r\n\r\n fs.appendFileSync(testFile, testString);\r\n\r\n const outStringx2 = fs.readFileSync(testFile, { encoding: \"utf-8\" });\r\n assert.equal(testString.length * 2, outStringx2.length);\r\n assert.equal(testString + testString, outStringx2);\r\n\r\n fs.unlinkSync(testFile);\r\n assert.isFalse(fs.existsSync(testFile));\r\n });\r\n\r\n /*\r\n- (bool) existsSync: (NSString*)path;\r\n- (void) unlinkSync: (NSString*)path;\r\n- (void) removeSync: (NSString*)path;\r\n- (void) mkdirSync: (NSString*)path;\r\n- (void) rmdirSync: (NSString*)path;\r\n- (void) appendFileSync: (NSString*)path :(JSValue*)data;\r\n- (NSArray<NSString*>*) readdirSync: (NSString*)path;\r\n- (void) writeFileSync: (NSString*)path :(JSValue*)content;\r\n- (void) copySync: (NSString*)fromPath :(NSString*)toPath;\r\n- (JSValue*) lstatSync: (JSValue*)path;\r\n- (JSValue*) readFileSync: (JSValue*)path :(JSValue*)options;\r\n- (JSValue*) istatSync: (JSValue*)path;\r\n- (NSString*) realpathSync: (JSValue*)path :(JSValue*)options;\r\n- (void) closeSync: (JSValue*)fd;\r\n- (JSValue*) openSync: (NSString*)path :(NSString*)flags :(JSValue*)mode; */\r\n\r\n});\r\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@itwin/core-mobile",
|
|
3
|
+
"version": "3.0.0-dev.100",
|
|
4
|
+
"description": "iTwin.js MobileHost and MobileApp",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": ">=12.22.0 < 14.0 || >=14.17.0 <17.0"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/imodeljs/imodeljs/tree/master/core/core-mobile"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"Bentley",
|
|
15
|
+
"digital-twin",
|
|
16
|
+
"iTwin",
|
|
17
|
+
"iModel"
|
|
18
|
+
],
|
|
19
|
+
"author": {
|
|
20
|
+
"name": "Bentley Systems, Inc.",
|
|
21
|
+
"url": "http://www.bentley.com"
|
|
22
|
+
},
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"@itwin/core-bentley": "^3.0.0-dev.100",
|
|
25
|
+
"@itwin/core-backend": "^3.0.0-dev.100",
|
|
26
|
+
"@itwin/core-common": "^3.0.0-dev.100",
|
|
27
|
+
"@itwin/core-frontend": "^3.0.0-dev.100",
|
|
28
|
+
"@bentley/itwin-client": "^3.0.0-dev.100",
|
|
29
|
+
"@itwin/presentation-common": "^3.0.0-dev.100",
|
|
30
|
+
"js-base64": "^3.6.1",
|
|
31
|
+
"ws": "^7.5.3"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@itwin/core-bentley": "3.0.0-dev.100",
|
|
35
|
+
"@itwin/build-tools": "3.0.0-dev.100",
|
|
36
|
+
"@itwin/eslint-plugin": "3.0.0-dev.100",
|
|
37
|
+
"@bentley/itwin-client": "3.0.0-dev.100",
|
|
38
|
+
"@itwin/core-backend": "3.0.0-dev.100",
|
|
39
|
+
"@itwin/core-common": "3.0.0-dev.100",
|
|
40
|
+
"@itwin/core-frontend": "3.0.0-dev.100",
|
|
41
|
+
"@itwin/presentation-common": "3.0.0-dev.100",
|
|
42
|
+
"@types/chai": "^4.1.4",
|
|
43
|
+
"@types/fs-extra": "^4.0.7",
|
|
44
|
+
"@types/mocha": "^8.2.2",
|
|
45
|
+
"@types/node": "14.14.31",
|
|
46
|
+
"@types/ws": "^6.0.4",
|
|
47
|
+
"chai": "^4.1.2",
|
|
48
|
+
"chai-as-promised": "^7",
|
|
49
|
+
"cpx": "^1.5.0",
|
|
50
|
+
"dotenv": "^10.0.0",
|
|
51
|
+
"dotenv-expand": "^5.1.0",
|
|
52
|
+
"eslint": "^7.11.0",
|
|
53
|
+
"js-base64": "^3.6.1",
|
|
54
|
+
"mocha": "^8.3.2",
|
|
55
|
+
"rimraf": "^3.0.2",
|
|
56
|
+
"typescript": "~4.4.0",
|
|
57
|
+
"ws": "^7.5.3"
|
|
58
|
+
},
|
|
59
|
+
"eslintConfig": {
|
|
60
|
+
"plugins": [
|
|
61
|
+
"@itwin"
|
|
62
|
+
],
|
|
63
|
+
"extends": "plugin:@itwin/itwinjs-recommended"
|
|
64
|
+
},
|
|
65
|
+
"scripts": {
|
|
66
|
+
"build": "npm run -s build:cjs",
|
|
67
|
+
"build:ci": "npm run -s build",
|
|
68
|
+
"build:cjs": "tsc 1>&2 --outDir lib/cjs",
|
|
69
|
+
"clean": "rimraf lib .rush/temp/package-deps*.json",
|
|
70
|
+
"docs": "betools docs --includes=../../generated-docs/extract --json=../../generated-docs/core/core-mobile/file.json --tsIndexFile=./__DOC_ONLY__.ts --onlyJson",
|
|
71
|
+
"extract-api": "betools extract-api --entry=__DOC_ONLY__",
|
|
72
|
+
"lint": "eslint -f visualstudio \"./src/**/*.ts\" 1>&2",
|
|
73
|
+
"test": "",
|
|
74
|
+
"cover": ""
|
|
75
|
+
}
|
|
76
|
+
}
|