@phystack/device-simulator 6.3.4 → 6.3.6
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/dist/command.d.ts +6 -0
- package/dist/command.d.ts.map +1 -0
- package/dist/command.js +44 -0
- package/dist/command.js.map +1 -0
- package/dist/commands/list.d.ts +2 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +20 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/remove.d.ts +2 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.js +19 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/run.d.ts +13 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +353 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/start.d.ts +6 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +216 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/services/dev-token.d.ts +2 -0
- package/dist/services/dev-token.d.ts.map +1 -0
- package/dist/services/dev-token.js +36 -0
- package/dist/services/dev-token.js.map +1 -0
- package/dist/services/env.d.ts +2 -0
- package/dist/services/env.d.ts.map +1 -0
- package/dist/services/env.js +14 -0
- package/dist/services/env.js.map +1 -0
- package/dist/simulator/index.d.ts +19 -0
- package/dist/simulator/index.d.ts.map +1 -0
- package/dist/simulator/index.js +153 -0
- package/dist/simulator/index.js.map +1 -0
- package/dist/simulator/local-server.d.ts +24 -0
- package/dist/simulator/local-server.d.ts.map +1 -0
- package/dist/simulator/local-server.js +125 -0
- package/dist/simulator/local-server.js.map +1 -0
- package/dist/simulator/logger.d.ts +11 -0
- package/dist/simulator/logger.d.ts.map +1 -0
- package/dist/simulator/logger.js +42 -0
- package/dist/simulator/logger.js.map +1 -0
- package/dist/simulator/message-router.d.ts +34 -0
- package/dist/simulator/message-router.d.ts.map +1 -0
- package/dist/simulator/message-router.js +388 -0
- package/dist/simulator/message-router.js.map +1 -0
- package/dist/simulator/twin-cache.d.ts +16 -0
- package/dist/simulator/twin-cache.d.ts.map +1 -0
- package/dist/simulator/twin-cache.js +54 -0
- package/dist/simulator/twin-cache.js.map +1 -0
- package/dist/simulator/types.d.ts +48 -0
- package/dist/simulator/types.d.ts.map +1 -0
- package/dist/simulator/types.js +16 -0
- package/dist/simulator/types.js.map +1 -0
- package/dist/utils/config-paths.d.ts +12 -0
- package/dist/utils/config-paths.d.ts.map +1 -0
- package/dist/utils/config-paths.js +33 -0
- package/dist/utils/config-paths.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +37 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/simulator-config.d.ts +25 -0
- package/dist/utils/simulator-config.d.ts.map +1 -0
- package/dist/utils/simulator-config.js +140 -0
- package/dist/utils/simulator-config.js.map +1 -0
- package/dist/utils/tenant-storage.d.ts +14 -0
- package/dist/utils/tenant-storage.d.ts.map +1 -0
- package/dist/utils/tenant-storage.js +65 -0
- package/dist/utils/tenant-storage.js.map +1 -0
- package/package.json +5 -2
- package/CHANGELOG.md +0 -42
- package/build-binary.sh +0 -37
- package/src/__tests__/e2e/binary.e2e.test.ts +0 -394
- package/src/__tests__/preload.ts +0 -44
- package/src/command.ts +0 -66
- package/src/commands/__tests__/run-helpers.test.ts +0 -181
- package/src/commands/list.ts +0 -25
- package/src/commands/remove.ts +0 -16
- package/src/commands/run.ts +0 -518
- package/src/commands/start.ts +0 -309
- package/src/index.ts +0 -45
- package/src/services/__tests__/dev-token.test.ts +0 -156
- package/src/services/dev-token.ts +0 -52
- package/src/services/env.ts +0 -10
- package/src/simulator/__tests__/message-router.test.ts +0 -782
- package/src/simulator/__tests__/twin-cache.test.ts +0 -129
- package/src/simulator/index.ts +0 -200
- package/src/simulator/local-server.ts +0 -184
- package/src/simulator/logger.ts +0 -44
- package/src/simulator/message-router.ts +0 -525
- package/src/simulator/twin-cache.ts +0 -61
- package/src/simulator/types.ts +0 -53
- package/src/utils/__tests__/simulator-config.test.ts +0 -230
- package/src/utils/config-paths.ts +0 -38
- package/src/utils/index.ts +0 -41
- package/src/utils/simulator-config.ts +0 -185
- package/src/utils/tenant-storage.ts +0 -106
- package/tsconfig.json +0 -12
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TwinResponse } from "./types";
|
|
2
|
+
export declare class TwinCache {
|
|
3
|
+
private twins;
|
|
4
|
+
populate(twins: TwinResponse[]): void;
|
|
5
|
+
getTwin(id: string): TwinResponse | undefined;
|
|
6
|
+
getDeviceTwin(): TwinResponse | undefined;
|
|
7
|
+
getAllTwins(): TwinResponse[];
|
|
8
|
+
getAllTwinIds(): string[];
|
|
9
|
+
hasTwin(id: string): boolean;
|
|
10
|
+
updateTwin(twin: TwinResponse): void;
|
|
11
|
+
addTwin(twin: TwinResponse): void;
|
|
12
|
+
removeTwin(id: string): void;
|
|
13
|
+
getTwinsByType(type: string): TwinResponse[];
|
|
14
|
+
getGroupedByType(): Record<string, string[]>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=twin-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twin-cache.d.ts","sourceRoot":"","sources":["../../src/simulator/twin-cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;AAErD,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAwC;IAErD,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI;IAMrC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI7C,aAAa,IAAI,YAAY,GAAG,SAAS;IAOzC,WAAW,IAAI,YAAY,EAAE;IAI7B,aAAa,IAAI,MAAM,EAAE;IAIzB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI5B,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAIpC,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAIjC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI5B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE;IAK5C,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAQ7C"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TwinCache = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
class TwinCache {
|
|
6
|
+
twins = new Map();
|
|
7
|
+
populate(twins) {
|
|
8
|
+
for (const twin of twins) {
|
|
9
|
+
this.twins.set(twin.id, twin);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
getTwin(id) {
|
|
13
|
+
return this.twins.get(id);
|
|
14
|
+
}
|
|
15
|
+
getDeviceTwin() {
|
|
16
|
+
for (const twin of this.twins.values()) {
|
|
17
|
+
if (twin.type === types_1.TwinTypeEnum.Device)
|
|
18
|
+
return twin;
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
getAllTwins() {
|
|
23
|
+
return Array.from(this.twins.values());
|
|
24
|
+
}
|
|
25
|
+
getAllTwinIds() {
|
|
26
|
+
return Array.from(this.twins.keys());
|
|
27
|
+
}
|
|
28
|
+
hasTwin(id) {
|
|
29
|
+
return this.twins.has(id);
|
|
30
|
+
}
|
|
31
|
+
updateTwin(twin) {
|
|
32
|
+
this.twins.set(twin.id, twin);
|
|
33
|
+
}
|
|
34
|
+
addTwin(twin) {
|
|
35
|
+
this.twins.set(twin.id, twin);
|
|
36
|
+
}
|
|
37
|
+
removeTwin(id) {
|
|
38
|
+
this.twins.delete(id);
|
|
39
|
+
}
|
|
40
|
+
getTwinsByType(type) {
|
|
41
|
+
return Array.from(this.twins.values()).filter((t) => t.type === type);
|
|
42
|
+
}
|
|
43
|
+
getGroupedByType() {
|
|
44
|
+
const grouped = {};
|
|
45
|
+
for (const twin of this.twins.values()) {
|
|
46
|
+
if (!grouped[twin.type])
|
|
47
|
+
grouped[twin.type] = [];
|
|
48
|
+
grouped[twin.type].push(twin.id);
|
|
49
|
+
}
|
|
50
|
+
return grouped;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.TwinCache = TwinCache;
|
|
54
|
+
//# sourceMappingURL=twin-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twin-cache.js","sourceRoot":"","sources":["../../src/simulator/twin-cache.ts"],"names":[],"mappings":";;;AACA,mCAAqD;AAErD,MAAa,SAAS;IACZ,KAAK,GAA8B,IAAI,GAAG,EAAE,CAAC;IAErD,QAAQ,CAAC,KAAqB;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,aAAa;QACX,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAY,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,IAAkB;QAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,IAAkB;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACxE,CAAC;IAGD,gBAAgB;QACd,MAAM,OAAO,GAA6B,EAAE,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAzDD,8BAyDC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export interface SimulatorConfig {
|
|
2
|
+
port: number;
|
|
3
|
+
deviceDisplayName?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface DeviceConfig {
|
|
6
|
+
deviceId: string;
|
|
7
|
+
tenantId: string;
|
|
8
|
+
deviceTwinId: string;
|
|
9
|
+
}
|
|
10
|
+
export declare enum AppTypeEnum {
|
|
11
|
+
Screen = "screen",
|
|
12
|
+
Edge = "edge"
|
|
13
|
+
}
|
|
14
|
+
export interface AppConfig {
|
|
15
|
+
name: string;
|
|
16
|
+
type: AppTypeEnum;
|
|
17
|
+
path: string;
|
|
18
|
+
twinId?: string;
|
|
19
|
+
devCommand: string;
|
|
20
|
+
}
|
|
21
|
+
export declare enum TwinTypeEnum {
|
|
22
|
+
Device = "Device",
|
|
23
|
+
Screen = "Screen",
|
|
24
|
+
Edge = "Edge",
|
|
25
|
+
Peripheral = "Peripheral"
|
|
26
|
+
}
|
|
27
|
+
export interface TwinResponse {
|
|
28
|
+
id: string;
|
|
29
|
+
deviceId: string;
|
|
30
|
+
tenantId: string;
|
|
31
|
+
type: TwinTypeEnum;
|
|
32
|
+
properties: {
|
|
33
|
+
desired: Record<string, any>;
|
|
34
|
+
reported: Record<string, any>;
|
|
35
|
+
};
|
|
36
|
+
descriptors?: Record<string, any>;
|
|
37
|
+
status?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface EventPayload<T = any> {
|
|
40
|
+
twinId?: string;
|
|
41
|
+
deviceId?: string;
|
|
42
|
+
sourceTwinId?: string;
|
|
43
|
+
sourceDeviceId?: string;
|
|
44
|
+
method?: string;
|
|
45
|
+
data?: T;
|
|
46
|
+
[key: string]: any;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/simulator/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,UAAU,eAAe;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC/B,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TwinTypeEnum = exports.AppTypeEnum = void 0;
|
|
4
|
+
var AppTypeEnum;
|
|
5
|
+
(function (AppTypeEnum) {
|
|
6
|
+
AppTypeEnum["Screen"] = "screen";
|
|
7
|
+
AppTypeEnum["Edge"] = "edge";
|
|
8
|
+
})(AppTypeEnum || (exports.AppTypeEnum = AppTypeEnum = {}));
|
|
9
|
+
var TwinTypeEnum;
|
|
10
|
+
(function (TwinTypeEnum) {
|
|
11
|
+
TwinTypeEnum["Device"] = "Device";
|
|
12
|
+
TwinTypeEnum["Screen"] = "Screen";
|
|
13
|
+
TwinTypeEnum["Edge"] = "Edge";
|
|
14
|
+
TwinTypeEnum["Peripheral"] = "Peripheral";
|
|
15
|
+
})(TwinTypeEnum || (exports.TwinTypeEnum = TwinTypeEnum = {}));
|
|
16
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/simulator/types.ts"],"names":[],"mappings":";;;AAWA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAUD,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,6BAAa,CAAA;IACb,yCAAyB,CAAA;AAC3B,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const CONFIG_DIR: string;
|
|
2
|
+
export declare const TENANT_FILE: string;
|
|
3
|
+
export declare const CREDENTIALS_FILE: string;
|
|
4
|
+
export declare const VALIDATION_CACHE_FILE: string;
|
|
5
|
+
export declare const EMULATED_DEVICE_FILE: string;
|
|
6
|
+
export declare const DEVELOPER_TOKEN_FILE: string;
|
|
7
|
+
export declare const SIMULATORS_DIR: string;
|
|
8
|
+
export declare const SIMULATOR_DIR: string;
|
|
9
|
+
export declare const VMS_DIR: string;
|
|
10
|
+
export declare const CACHE_DIR: string;
|
|
11
|
+
export declare function getAuthFilePath(gridEnv?: string): string;
|
|
12
|
+
//# sourceMappingURL=config-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-paths.d.ts","sourceRoot":"","sources":["../../src/utils/config-paths.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,QAAqD,CAAC;AAE7E,eAAO,MAAM,WAAW,QAAuC,CAAC;AAChE,eAAO,MAAM,gBAAgB,QAG5B,CAAC;AACF,eAAO,MAAM,qBAAqB,QAGjC,CAAC;AACF,eAAO,MAAM,oBAAoB,QAAuC,CAAC;AACzE,eAAO,MAAM,oBAAoB,QAGhC,CAAC;AAEF,eAAO,MAAM,cAAc,QAAsC,CAAC;AAClE,eAAO,MAAM,aAAa,QAAqC,CAAC;AAChE,eAAO,MAAM,OAAO,QAA+B,CAAC;AACpD,eAAO,MAAM,SAAS,QAAiC,CAAC;AAExD,wBAAgB,eAAe,CAAC,OAAO,SAAK,GAAG,MAAM,CAYpD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CACHE_DIR = exports.VMS_DIR = exports.SIMULATOR_DIR = exports.SIMULATORS_DIR = exports.DEVELOPER_TOKEN_FILE = exports.EMULATED_DEVICE_FILE = exports.VALIDATION_CACHE_FILE = exports.CREDENTIALS_FILE = exports.TENANT_FILE = exports.CONFIG_DIR = void 0;
|
|
7
|
+
exports.getAuthFilePath = getAuthFilePath;
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const os_1 = __importDefault(require("os"));
|
|
10
|
+
exports.CONFIG_DIR = path_1.default.join(os_1.default.homedir(), ".config", "phystack-cli");
|
|
11
|
+
exports.TENANT_FILE = path_1.default.join(exports.CONFIG_DIR, "tenant.json");
|
|
12
|
+
exports.CREDENTIALS_FILE = path_1.default.join(exports.CONFIG_DIR, "registry-credentials.json");
|
|
13
|
+
exports.VALIDATION_CACHE_FILE = path_1.default.join(exports.CONFIG_DIR, "credential-validation-cache.json");
|
|
14
|
+
exports.EMULATED_DEVICE_FILE = path_1.default.join(exports.CONFIG_DIR, "device.json");
|
|
15
|
+
exports.DEVELOPER_TOKEN_FILE = path_1.default.join(exports.CONFIG_DIR, "developer-token.json");
|
|
16
|
+
exports.SIMULATORS_DIR = path_1.default.join(exports.CONFIG_DIR, "simulators");
|
|
17
|
+
exports.SIMULATOR_DIR = path_1.default.join(exports.CONFIG_DIR, "simulator");
|
|
18
|
+
exports.VMS_DIR = path_1.default.join(exports.CONFIG_DIR, "vms");
|
|
19
|
+
exports.CACHE_DIR = path_1.default.join(exports.CONFIG_DIR, "cache");
|
|
20
|
+
function getAuthFilePath(gridEnv = "") {
|
|
21
|
+
const formatted = gridEnv.toUpperCase();
|
|
22
|
+
switch (formatted) {
|
|
23
|
+
case "LOCAL":
|
|
24
|
+
return path_1.default.join(exports.CONFIG_DIR, "auth-local");
|
|
25
|
+
case "DEV":
|
|
26
|
+
return path_1.default.join(exports.CONFIG_DIR, "auth-dev");
|
|
27
|
+
case "QA":
|
|
28
|
+
return path_1.default.join(exports.CONFIG_DIR, "auth-qa");
|
|
29
|
+
default:
|
|
30
|
+
return path_1.default.join(exports.CONFIG_DIR, "auth");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=config-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-paths.js","sourceRoot":"","sources":["../../src/utils/config-paths.ts"],"names":[],"mappings":";;;;;;AAyBA,0CAYC;AArCD,gDAAwB;AACxB,4CAAoB;AAEP,QAAA,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;AAEhE,QAAA,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,aAAa,CAAC,CAAC;AACnD,QAAA,gBAAgB,GAAG,cAAI,CAAC,IAAI,CACvC,kBAAU,EACV,2BAA2B,CAC5B,CAAC;AACW,QAAA,qBAAqB,GAAG,cAAI,CAAC,IAAI,CAC5C,kBAAU,EACV,kCAAkC,CACnC,CAAC;AACW,QAAA,oBAAoB,GAAG,cAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,aAAa,CAAC,CAAC;AAC5D,QAAA,oBAAoB,GAAG,cAAI,CAAC,IAAI,CAC3C,kBAAU,EACV,sBAAsB,CACvB,CAAC;AAEW,QAAA,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,YAAY,CAAC,CAAC;AACrD,QAAA,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,WAAW,CAAC,CAAC;AACnD,QAAA,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,KAAK,CAAC,CAAC;AACvC,QAAA,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,OAAO,CAAC,CAAC;AAExD,SAAgB,eAAe,CAAC,OAAO,GAAG,EAAE;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACxC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,cAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,YAAY,CAAC,CAAC;QAC7C,KAAK,KAAK;YACR,OAAO,cAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,UAAU,CAAC,CAAC;QAC3C,KAAK,IAAI;YACP,OAAO,cAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,SAAS,CAAC,CAAC;QAC1C;YACE,OAAO,cAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,iBAAiB,cAAuB,CAAC;AAEtD,eAAO,MAAM,WAAW,GACrB,CAAC,GAAG,GAAG,EAAE,OAAE,MACL,GAAG,WAAI,eAQb,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.handleError = exports.getPackageVersion = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
function resolvePackageVersion() {
|
|
11
|
+
if (typeof __PKG_VERSION__ !== "undefined") {
|
|
12
|
+
return __PKG_VERSION__;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
const pkg = JSON.parse(fs_1.default.readFileSync(path_1.default.join(__dirname, "../../package.json"), "utf8"));
|
|
16
|
+
return pkg.version || "0.0.0";
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
console.error(chalk_1.default.dim("Cannot read package version"));
|
|
20
|
+
return "0.0.0";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const packageVersion = resolvePackageVersion();
|
|
24
|
+
const getPackageVersion = () => packageVersion;
|
|
25
|
+
exports.getPackageVersion = getPackageVersion;
|
|
26
|
+
const handleError = (cb) => async (...args) => {
|
|
27
|
+
try {
|
|
28
|
+
const result = (await cb(...args));
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
console.error(chalk_1.default.red(e.toString()));
|
|
33
|
+
return process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
exports.handleError = handleError;
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;AACA,kDAA0B;AAC1B,gDAAwB;AACxB,4CAAoB;AAQpB,SAAS,qBAAqB;IAC5B,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;QAC3C,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,MAAM,CAAC,CACpE,CAAC;QACF,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACxD,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAC;AAExC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC;AAAzC,QAAA,iBAAiB,qBAAwB;AAE/C,MAAM,WAAW,GACtB,CAAU,EAAE,EAAE,EAAE,CAChB,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;IAChB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAa,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC,CAAC;AAVS,QAAA,WAAW,eAUpB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AppConfig, DeviceConfig } from "../simulator/types";
|
|
2
|
+
export interface SimulatorConnectConfig {
|
|
3
|
+
name: string;
|
|
4
|
+
deviceId: string;
|
|
5
|
+
accessKey: string;
|
|
6
|
+
serialNumber: string;
|
|
7
|
+
phyhubUrl?: string;
|
|
8
|
+
environment: string;
|
|
9
|
+
dataResidency?: string;
|
|
10
|
+
provisionedAt: string;
|
|
11
|
+
tenantId?: string;
|
|
12
|
+
spaceId?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function listSimulators(): SimulatorConnectConfig[];
|
|
15
|
+
export declare function getSimulator(name: string): SimulatorConnectConfig | null;
|
|
16
|
+
export declare function saveSimulator(config: SimulatorConnectConfig): void;
|
|
17
|
+
export declare function removeSimulator(name: string): boolean;
|
|
18
|
+
export declare function getDeviceConfig(tenantId: string): Promise<DeviceConfig | undefined>;
|
|
19
|
+
export declare function saveDeviceConfig(tenantId: string, config: DeviceConfig): Promise<void>;
|
|
20
|
+
export declare function getAppConfig(tenantId: string, appName: string): Promise<AppConfig | undefined>;
|
|
21
|
+
export declare function saveAppConfig(tenantId: string, config: AppConfig): Promise<void>;
|
|
22
|
+
export declare function listApps(tenantId: string): Promise<AppConfig[]>;
|
|
23
|
+
export declare function getAppConfigByPath(tenantId: string, appPath: string): Promise<AppConfig | undefined>;
|
|
24
|
+
export declare function updateAppTwinId(tenantId: string, appName: string, newTwinId: string): Promise<void>;
|
|
25
|
+
//# sourceMappingURL=simulator-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simulator-config.d.ts","sourceRoot":"","sources":["../../src/utils/simulator-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG7D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IAMrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,WAAW,EAAE,MAAM,CAAC;IAMpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,cAAc,IAAI,sBAAsB,EAAE,CAezD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAQxE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAMlE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKrD;AAMD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAYnC;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAOf;AAcD,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAchC;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAmBrE;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAGhC;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAMf"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.listSimulators = listSimulators;
|
|
7
|
+
exports.getSimulator = getSimulator;
|
|
8
|
+
exports.saveSimulator = saveSimulator;
|
|
9
|
+
exports.removeSimulator = removeSimulator;
|
|
10
|
+
exports.getDeviceConfig = getDeviceConfig;
|
|
11
|
+
exports.saveDeviceConfig = saveDeviceConfig;
|
|
12
|
+
exports.getAppConfig = getAppConfig;
|
|
13
|
+
exports.saveAppConfig = saveAppConfig;
|
|
14
|
+
exports.listApps = listApps;
|
|
15
|
+
exports.getAppConfigByPath = getAppConfigByPath;
|
|
16
|
+
exports.updateAppTwinId = updateAppTwinId;
|
|
17
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
18
|
+
const path_1 = __importDefault(require("path"));
|
|
19
|
+
const config_paths_1 = require("./config-paths");
|
|
20
|
+
function listSimulators() {
|
|
21
|
+
if (!fs_extra_1.default.pathExistsSync(config_paths_1.SIMULATORS_DIR))
|
|
22
|
+
return [];
|
|
23
|
+
return fs_extra_1.default
|
|
24
|
+
.readdirSync(config_paths_1.SIMULATORS_DIR)
|
|
25
|
+
.filter((f) => f.endsWith(".json"))
|
|
26
|
+
.map((f) => {
|
|
27
|
+
try {
|
|
28
|
+
return JSON.parse(fs_extra_1.default.readFileSync(path_1.default.join(config_paths_1.SIMULATORS_DIR, f), "utf8"));
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
})
|
|
34
|
+
.filter(Boolean);
|
|
35
|
+
}
|
|
36
|
+
function getSimulator(name) {
|
|
37
|
+
const filePath = path_1.default.join(config_paths_1.SIMULATORS_DIR, `${name}.json`);
|
|
38
|
+
if (!fs_extra_1.default.pathExistsSync(filePath))
|
|
39
|
+
return null;
|
|
40
|
+
try {
|
|
41
|
+
return JSON.parse(fs_extra_1.default.readFileSync(filePath, "utf8"));
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function saveSimulator(config) {
|
|
48
|
+
fs_extra_1.default.ensureDirSync(config_paths_1.SIMULATORS_DIR);
|
|
49
|
+
fs_extra_1.default.writeFileSync(path_1.default.join(config_paths_1.SIMULATORS_DIR, `${config.name}.json`), JSON.stringify(config, null, 2));
|
|
50
|
+
}
|
|
51
|
+
function removeSimulator(name) {
|
|
52
|
+
const filePath = path_1.default.join(config_paths_1.SIMULATORS_DIR, `${name}.json`);
|
|
53
|
+
if (!fs_extra_1.default.pathExistsSync(filePath))
|
|
54
|
+
return false;
|
|
55
|
+
fs_extra_1.default.removeSync(filePath);
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
function deviceConfigPath(tenantId) {
|
|
59
|
+
return path_1.default.join(tenantDir(tenantId), "device.json");
|
|
60
|
+
}
|
|
61
|
+
async function getDeviceConfig(tenantId) {
|
|
62
|
+
const filePath = deviceConfigPath(tenantId);
|
|
63
|
+
try {
|
|
64
|
+
if (await fs_extra_1.default.pathExists(filePath)) {
|
|
65
|
+
const data = await fs_extra_1.default.readFile(filePath, "utf8");
|
|
66
|
+
return JSON.parse(data);
|
|
67
|
+
}
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
console.log(`[simulator] Failed to read device config: ${err.message}`);
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async function saveDeviceConfig(tenantId, config) {
|
|
76
|
+
const dir = tenantDir(tenantId);
|
|
77
|
+
await fs_extra_1.default.ensureDir(dir);
|
|
78
|
+
await fs_extra_1.default.writeFile(deviceConfigPath(tenantId), JSON.stringify(config, null, 2));
|
|
79
|
+
}
|
|
80
|
+
function tenantsDir() {
|
|
81
|
+
return path_1.default.join(config_paths_1.SIMULATOR_DIR, "tenants");
|
|
82
|
+
}
|
|
83
|
+
function tenantDir(tenantId) {
|
|
84
|
+
return path_1.default.join(tenantsDir(), tenantId);
|
|
85
|
+
}
|
|
86
|
+
function appConfigPath(tenantId, appName) {
|
|
87
|
+
return path_1.default.join(tenantDir(tenantId), `${appName}.json`);
|
|
88
|
+
}
|
|
89
|
+
async function getAppConfig(tenantId, appName) {
|
|
90
|
+
const filePath = appConfigPath(tenantId, appName);
|
|
91
|
+
try {
|
|
92
|
+
if (await fs_extra_1.default.pathExists(filePath)) {
|
|
93
|
+
const data = await fs_extra_1.default.readFile(filePath, "utf8");
|
|
94
|
+
return JSON.parse(data);
|
|
95
|
+
}
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
console.log(`[simulator] Failed to read app config for ${appName}: ${err.message}`);
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async function saveAppConfig(tenantId, config) {
|
|
104
|
+
const dir = tenantDir(tenantId);
|
|
105
|
+
await fs_extra_1.default.ensureDir(dir);
|
|
106
|
+
const filePath = appConfigPath(tenantId, config.name);
|
|
107
|
+
await fs_extra_1.default.writeFile(filePath, JSON.stringify(config, null, 2));
|
|
108
|
+
}
|
|
109
|
+
async function listApps(tenantId) {
|
|
110
|
+
const dir = tenantDir(tenantId);
|
|
111
|
+
try {
|
|
112
|
+
if (!(await fs_extra_1.default.pathExists(dir)))
|
|
113
|
+
return [];
|
|
114
|
+
const files = await fs_extra_1.default.readdir(dir);
|
|
115
|
+
const apps = [];
|
|
116
|
+
for (const file of files) {
|
|
117
|
+
if (file.endsWith(".json")) {
|
|
118
|
+
const data = await fs_extra_1.default.readFile(path_1.default.join(dir, file), "utf8");
|
|
119
|
+
apps.push(JSON.parse(data));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return apps;
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
console.log(`[simulator] Failed to list apps for tenant ${tenantId}: ${err.message}`);
|
|
126
|
+
return [];
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
async function getAppConfigByPath(tenantId, appPath) {
|
|
130
|
+
const apps = await listApps(tenantId);
|
|
131
|
+
return apps.find((a) => a.path === appPath);
|
|
132
|
+
}
|
|
133
|
+
async function updateAppTwinId(tenantId, appName, newTwinId) {
|
|
134
|
+
const config = await getAppConfig(tenantId, appName);
|
|
135
|
+
if (config) {
|
|
136
|
+
config.twinId = newTwinId;
|
|
137
|
+
await saveAppConfig(tenantId, config);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=simulator-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simulator-config.js","sourceRoot":"","sources":["../../src/utils/simulator-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface StoredTenant {
|
|
2
|
+
id: string;
|
|
3
|
+
slug: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
phyhubUrl: string;
|
|
6
|
+
dataResidency?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const saveTenant: (tenant: StoredTenant) => Promise<void>;
|
|
9
|
+
export declare const getTenant: (options?: {
|
|
10
|
+
silent?: boolean;
|
|
11
|
+
}) => Promise<StoredTenant | null>;
|
|
12
|
+
export declare const hasTenant: () => Promise<boolean>;
|
|
13
|
+
export declare const clearTenant: () => Promise<boolean>;
|
|
14
|
+
//# sourceMappingURL=tenant-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-storage.d.ts","sourceRoot":"","sources":["../../src/utils/tenant-storage.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAIlB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAQD,eAAO,MAAM,UAAU,GAAU,QAAQ,YAAY,KAAG,OAAO,CAAC,IAAI,CAcnE,CAAC;AAWF,eAAO,MAAM,SAAS,GACpB,UAAS;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,KACjC,OAAO,CAAC,YAAY,GAAG,IAAI,CAqB7B,CAAC;AAOF,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,OAAO,CASjD,CAAC;AAQF,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,OAAO,CAYnD,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.clearTenant = exports.hasTenant = exports.getTenant = exports.saveTenant = void 0;
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const config_paths_1 = require("./config-paths");
|
|
10
|
+
const saveTenant = async (tenant) => {
|
|
11
|
+
try {
|
|
12
|
+
await fs_extra_1.default.ensureDir(config_paths_1.CONFIG_DIR);
|
|
13
|
+
await fs_extra_1.default.writeFile(config_paths_1.TENANT_FILE, JSON.stringify(tenant, null, 2));
|
|
14
|
+
console.log(chalk_1.default.dim(`Saved tenant information to ${config_paths_1.TENANT_FILE}`));
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
console.error(chalk_1.default.red(`Failed to save tenant information: ${error.message}`));
|
|
18
|
+
throw error;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.saveTenant = saveTenant;
|
|
22
|
+
const getTenant = async (options = {}) => {
|
|
23
|
+
try {
|
|
24
|
+
if (await fs_extra_1.default.pathExists(config_paths_1.TENANT_FILE)) {
|
|
25
|
+
const data = await fs_extra_1.default.readFile(config_paths_1.TENANT_FILE, "utf8");
|
|
26
|
+
const tenant = JSON.parse(data);
|
|
27
|
+
if (!options.silent) {
|
|
28
|
+
console.log(chalk_1.default.dim(`Using tenant: ${tenant.displayName} (${tenant.slug})`));
|
|
29
|
+
}
|
|
30
|
+
return tenant;
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error(chalk_1.default.red(`Failed to read tenant information: ${error.message}`));
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
exports.getTenant = getTenant;
|
|
40
|
+
const hasTenant = async () => {
|
|
41
|
+
try {
|
|
42
|
+
return await fs_extra_1.default.pathExists(config_paths_1.TENANT_FILE);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error(chalk_1.default.red(`Failed to check for saved tenant: ${error.message}`));
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
exports.hasTenant = hasTenant;
|
|
50
|
+
const clearTenant = async () => {
|
|
51
|
+
try {
|
|
52
|
+
if (await fs_extra_1.default.pathExists(config_paths_1.TENANT_FILE)) {
|
|
53
|
+
await fs_extra_1.default.remove(config_paths_1.TENANT_FILE);
|
|
54
|
+
console.log(chalk_1.default.dim(`Removed tenant information`));
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error(chalk_1.default.red(`Failed to clear tenant: ${error.message}`));
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
exports.clearTenant = clearTenant;
|
|
65
|
+
//# sourceMappingURL=tenant-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-storage.js","sourceRoot":"","sources":["../../src/utils/tenant-storage.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0B;AAC1B,kDAA0B;AAC1B,iDAAyD;AAmBlD,MAAM,UAAU,GAAG,KAAK,EAAE,MAAoB,EAAiB,EAAE;IACtE,IAAI,CAAC;QAEH,MAAM,kBAAE,CAAC,SAAS,CAAC,yBAAU,CAAC,CAAC;QAG/B,MAAM,kBAAE,CAAC,SAAS,CAAC,0BAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,+BAA+B,0BAAW,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,eAAK,CAAC,GAAG,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CACjE,CAAC;QACF,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAdW,QAAA,UAAU,cAcrB;AAWK,MAAM,SAAS,GAAG,KAAK,EAC5B,UAAgC,EAAE,EACJ,EAAE;IAChC,IAAI,CAAC;QACH,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,0BAAW,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,0BAAW,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC;YAEhD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAClE,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,eAAK,CAAC,GAAG,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CACjE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAvBW,QAAA,SAAS,aAuBpB;AAOK,MAAM,SAAS,GAAG,KAAK,IAAsB,EAAE;IACpD,IAAI,CAAC;QACH,OAAO,MAAM,kBAAE,CAAC,UAAU,CAAC,0BAAW,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,eAAK,CAAC,GAAG,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,CAAC,CAChE,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AATW,QAAA,SAAS,aASpB;AAQK,MAAM,WAAW,GAAG,KAAK,IAAsB,EAAE;IACtD,IAAI,CAAC;QACH,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,0BAAW,CAAC,EAAE,CAAC;YACrC,MAAM,kBAAE,CAAC,MAAM,CAAC,0BAAW,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAZW,QAAA,WAAW,eAYtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@phystack/device-simulator",
|
|
3
|
-
"version": "6.3.
|
|
3
|
+
"version": "6.3.6",
|
|
4
4
|
"description": "Standalone PhyStack device simulator for local app development.",
|
|
5
5
|
"main": "dist/command.js",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
"bin": {
|
|
12
12
|
"phy-simulator": "./dist/index.js"
|
|
13
13
|
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
14
17
|
"scripts": {
|
|
15
18
|
"build": "rimraf dist && tsc",
|
|
16
19
|
"build:binary": "bash build-binary.sh",
|
|
@@ -20,7 +23,7 @@
|
|
|
20
23
|
"test:ci": "bun test src"
|
|
21
24
|
},
|
|
22
25
|
"dependencies": {
|
|
23
|
-
"@phystack/hub-device": "6.3.
|
|
26
|
+
"@phystack/hub-device": "6.3.6",
|
|
24
27
|
"chalk": "^3.0.0",
|
|
25
28
|
"commander": "^5.0.0",
|
|
26
29
|
"fs-extra": "^8.1.0",
|
package/CHANGELOG.md
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# @phystack/device-simulator
|
|
2
|
-
|
|
3
|
-
## 6.3.4
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- Updated dependencies []:
|
|
8
|
-
- @phystack/hub-device@6.3.4
|
|
9
|
-
|
|
10
|
-
## 6.3.3
|
|
11
|
-
|
|
12
|
-
### Patch Changes
|
|
13
|
-
|
|
14
|
-
- Updated dependencies []:
|
|
15
|
-
- @phystack/hub-device@6.3.3
|
|
16
|
-
|
|
17
|
-
## 6.3.2
|
|
18
|
-
|
|
19
|
-
### Patch Changes
|
|
20
|
-
|
|
21
|
-
- Updated dependencies []:
|
|
22
|
-
- @phystack/hub-device@6.3.2
|
|
23
|
-
|
|
24
|
-
## 6.3.1
|
|
25
|
-
|
|
26
|
-
### Patch Changes
|
|
27
|
-
|
|
28
|
-
- Updated dependencies []:
|
|
29
|
-
- @phystack/hub-device@6.3.1
|
|
30
|
-
|
|
31
|
-
## 6.3.0
|
|
32
|
-
|
|
33
|
-
### Patch Changes
|
|
34
|
-
|
|
35
|
-
- [#556](https://github.com/phystack/ps-platform/pull/556) [`4433273`](https://github.com/phystack/ps-platform/commit/4433273be94e88b8843aec6261cdb1e79936dc26) Thanks [@hassellof](https://github.com/hassellof)! - Ship `@phystack/device-simulator` as a published npm package and build a per-target standalone `phy-simulator` Bun binary for each developer platform.
|
|
36
|
-
|
|
37
|
-
The package was extracted from `tools/cli` but never wired into the publish pipeline, so a published `@phystack/cli` (which imports it via `workspace:*`) could not resolve it. It is now registered in the Changesets fixed group and the root `ci:build-packages`/`ci:publish-packages` scripts so the library is versioned and published like the other shared packages.
|
|
38
|
-
|
|
39
|
-
In addition, `scripts/build-device-binaries.sh` and `scripts/publish-device-binaries.js` now cross-compile `phy-simulator` and publish per-platform binary subpackages (`@phystack/phy-simulator-<platform>`) for the same darwin/linux/windows/musl matrix as the `phy` CLI, mirroring the existing device-binary publish flow in `deploy-device-apps.yml`.
|
|
40
|
-
|
|
41
|
-
- Updated dependencies []:
|
|
42
|
-
- @phystack/hub-device@6.3.0
|
package/build-binary.sh
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
VERSION=$(node -p "require('./package.json').version")
|
|
4
|
-
|
|
5
|
-
# Args: [target] [outfile]
|
|
6
|
-
# target — full Bun cross-compile target (e.g. bun-linux-x64,
|
|
7
|
-
# bun-linux-arm64, bun-darwin-x64, bun-darwin-arm64,
|
|
8
|
-
# bun-windows-x64). Defaults to the host target (no --target).
|
|
9
|
-
# outfile — output binary path. Defaults to "phy-simulator"
|
|
10
|
-
# ("phy-simulator.exe" when target is a Windows one).
|
|
11
|
-
TARGET="${1:-}"
|
|
12
|
-
|
|
13
|
-
DEFAULT_OUTFILE="phy-simulator"
|
|
14
|
-
if [[ "$TARGET" == bun-windows-* ]]; then
|
|
15
|
-
DEFAULT_OUTFILE="phy-simulator.exe"
|
|
16
|
-
fi
|
|
17
|
-
OUTFILE="${2:-$DEFAULT_OUTFILE}"
|
|
18
|
-
|
|
19
|
-
TARGET_ARGS=()
|
|
20
|
-
if [[ -n "$TARGET" ]]; then
|
|
21
|
-
TARGET_ARGS+=("--target=${TARGET}")
|
|
22
|
-
fi
|
|
23
|
-
|
|
24
|
-
bun build --compile --minify \
|
|
25
|
-
--no-compile-autoload-dotenv \
|
|
26
|
-
--define '__PKG_VERSION__="'"$VERSION"'"' \
|
|
27
|
-
${TARGET_ARGS[@]+"${TARGET_ARGS[@]}"} \
|
|
28
|
-
./src/index.ts --outfile "$OUTFILE"
|
|
29
|
-
|
|
30
|
-
# macOS AMFI SIGKILLs arm64 Mach-Os that lack a valid signature. Bun's
|
|
31
|
-
# cross-compile on Linux already emits ad-hoc-signed darwin binaries, but
|
|
32
|
-
# a local macOS host build may not — force a fresh ad-hoc signature so the
|
|
33
|
-
# resulting binary is runnable on the same machine that built it.
|
|
34
|
-
if [[ "$(uname -s)" == "Darwin" && "$(file "$OUTFILE")" == *Mach-O* ]]; then
|
|
35
|
-
codesign --remove-signature "$OUTFILE" 2>/dev/null || true
|
|
36
|
-
codesign --force --sign - "$OUTFILE"
|
|
37
|
-
fi
|