@photon-os/sdk 0.4.2 → 0.5.0-beta1
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/CoreServices/Apps/PhotonApp.d.ts +1 -1
- package/lib/CoreServices/Apps/PhotonApp.js +20 -8
- package/lib/SecondLife/PhotonTool.d.ts +1 -0
- package/lib/SecondLife/PhotonTool.js +5 -0
- package/lib/SecondLife/SecondLifeIdentity.js +1 -1
- package/lib/SecondLife/SecondLifeRegistry.d.ts +1 -1
- package/lib/SecondLife/SecondLifeRegistry.js +2 -2
- package/lib/SystemMessaging/BrowserMessageListener.d.ts +3 -3
- package/lib/SystemMessaging/BrowserMessageListener.js +4 -4
- package/lib/SystemMessaging/MessageBroker.js +11 -11
- package/lib/SystemMessaging/SecondLIfeMessagingListener.js +1 -1
- package/package.json +4 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import PhotonAppMode from "./PhotonAppMode";
|
|
2
2
|
declare class PhotonApp {
|
|
3
3
|
static appId: string;
|
|
4
|
-
static bootstrap(appId: string, appMode?: PhotonAppMode): void
|
|
4
|
+
static bootstrap(appId: string, appMode?: PhotonAppMode): Promise<void>;
|
|
5
5
|
}
|
|
6
6
|
export default PhotonApp;
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
const EventManager_1 = require("../../SystemEvents/EventManager");
|
|
4
13
|
const __1 = require("../..");
|
|
@@ -8,14 +17,17 @@ const SecondLifeProxy_1 = require("../../SecondLife/SecondLifeProxy");
|
|
|
8
17
|
const SecondLifeIdentity_1 = require("../../SecondLife/SecondLifeIdentity");
|
|
9
18
|
class PhotonApp {
|
|
10
19
|
static bootstrap(appId, appMode = PhotonAppMode_1.default.App) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
PhotonApp.appId = appId;
|
|
22
|
+
const messageBroker = new __1.MessageBroker();
|
|
23
|
+
__1.MessageBroker.setDefault(messageBroker);
|
|
24
|
+
messageBroker.registerTarget(new __1.BrowserMessagingTarget("os", appMode === PhotonAppMode_1.default.App ? window.parent : window));
|
|
25
|
+
const key = SecondLifeIdentity_1.default.getKey();
|
|
26
|
+
messageBroker.registerListener(new __1.SecondLifeMessagingListener(`${appId}__${key}`, SecondLifeProxy_1.default.socket));
|
|
27
|
+
messageBroker.registerListener(new BrowserMessageListener_1.default());
|
|
28
|
+
const eventManager = new EventManager_1.default();
|
|
29
|
+
EventManager_1.default.setDefault(eventManager);
|
|
30
|
+
});
|
|
19
31
|
}
|
|
20
32
|
}
|
|
21
33
|
exports.default = PhotonApp;
|
|
@@ -25,6 +25,7 @@ declare class PhotonTool {
|
|
|
25
25
|
ownerSay(message: string): Promise<void>;
|
|
26
26
|
chat(volume: ChatVolume, channel: number, message: string): Promise<void>;
|
|
27
27
|
sensor(options?: SensorOptions): Promise<any>;
|
|
28
|
+
giveInventoryItem(inventoryItemName: string, recipientUuid: string): Promise<void>;
|
|
28
29
|
invokeCommand(command: string): void;
|
|
29
30
|
static getPhotonTool(): Promise<PhotonTool>;
|
|
30
31
|
static isPhotonToolConnected(): Promise<boolean>;
|
|
@@ -68,6 +68,11 @@ class PhotonTool {
|
|
|
68
68
|
return results;
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
|
+
giveInventoryItem(inventoryItemName, recipientUuid) {
|
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
yield __1.MessageBroker.defaultMessageBroker.invoke(this.device.target, "pt_Inventory", "giveInventory", [inventoryItemName, recipientUuid]);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
71
76
|
invokeCommand(command) {
|
|
72
77
|
__1.MessageBroker.defaultMessageBroker.invoke(this.device.target, "pt_Legacy", "invokeCommand", [command]);
|
|
73
78
|
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
class SecondLifeIdentity {
|
|
4
4
|
static getKey() {
|
|
5
5
|
const urlParams = new URLSearchParams(window.location.search);
|
|
6
|
-
return urlParams.get(
|
|
6
|
+
return urlParams.get("key");
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
exports.default = SecondLifeIdentity;
|
|
@@ -14,8 +14,8 @@ const __1 = require("..");
|
|
|
14
14
|
class SecondLifeRegistry {
|
|
15
15
|
static getDevices() {
|
|
16
16
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
-
const returnedDevices = yield __1.MessageBroker.defaultMessageBroker.invoke(__1.MessageBroker.defaultMessageBroker.getTargetById(
|
|
18
|
-
return returnedDevices.map((device) =>
|
|
17
|
+
const returnedDevices = yield __1.MessageBroker.defaultMessageBroker.invoke(__1.MessageBroker.defaultMessageBroker.getTargetById("os"), "os_SecondLifeRegistry", "getDevices");
|
|
18
|
+
return returnedDevices.map((device) => new SecondLifeDevice_1.default(device.id, device.name, device.lastSeen));
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
21
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import IMessageListener from
|
|
3
|
-
import MessageBroker from
|
|
4
|
-
import { EventEmitter } from
|
|
2
|
+
import IMessageListener from "./IMessageListener";
|
|
3
|
+
import MessageBroker from "./MessageBroker";
|
|
4
|
+
import { EventEmitter } from "events";
|
|
5
5
|
declare class BrowserMessageListener extends EventEmitter implements IMessageListener {
|
|
6
6
|
id: string;
|
|
7
7
|
subscribe(broker: MessageBroker): void;
|
|
@@ -8,14 +8,14 @@ class BrowserMessageListener extends events_1.EventEmitter {
|
|
|
8
8
|
this.id = "browser";
|
|
9
9
|
}
|
|
10
10
|
subscribe(broker) {
|
|
11
|
-
window.addEventListener(
|
|
11
|
+
window.addEventListener("message", this.messageEventHandler.bind(this));
|
|
12
12
|
}
|
|
13
13
|
unsubscribe(broker) {
|
|
14
|
-
window.removeEventListener(
|
|
14
|
+
window.removeEventListener("message", this.messageEventHandler.bind(this));
|
|
15
15
|
}
|
|
16
16
|
messageEventHandler(e) {
|
|
17
|
-
const source = new BrowserMessagingTarget_1.default(
|
|
18
|
-
this.emit(
|
|
17
|
+
const source = new BrowserMessagingTarget_1.default("randomid", e.source);
|
|
18
|
+
this.emit("message", { source, data: e.data });
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
exports.default = BrowserMessageListener;
|
|
@@ -29,17 +29,17 @@ class MessageBroker {
|
|
|
29
29
|
this.targets.push(target);
|
|
30
30
|
}
|
|
31
31
|
unregisterTarget(targetId) {
|
|
32
|
-
this.targets = this.targets.filter(t => t.id !== targetId);
|
|
32
|
+
this.targets = this.targets.filter((t) => t.id !== targetId);
|
|
33
33
|
}
|
|
34
34
|
getTargetById(targetId) {
|
|
35
|
-
const matchingTarget = this.targets.find(t => t.id === targetId);
|
|
35
|
+
const matchingTarget = this.targets.find((t) => t.id === targetId);
|
|
36
36
|
return matchingTarget || new VoidMessagingTarget_1.default(targetId);
|
|
37
37
|
}
|
|
38
38
|
hasTarget(targetId) {
|
|
39
|
-
return this.targets.find(t => t.id === targetId) !== undefined;
|
|
39
|
+
return this.targets.find((t) => t.id === targetId) !== undefined;
|
|
40
40
|
}
|
|
41
41
|
invoke(target, serviceId, methodName, methodArgs) {
|
|
42
|
-
return new Promise(resolve => {
|
|
42
|
+
return new Promise((resolve) => {
|
|
43
43
|
const returnId = `${methodName}_${uuid_1.v4()}`;
|
|
44
44
|
this.registerReturnHandler(returnId, resolve);
|
|
45
45
|
target.postMessage({
|
|
@@ -47,12 +47,12 @@ class MessageBroker {
|
|
|
47
47
|
serviceId,
|
|
48
48
|
methodName,
|
|
49
49
|
methodArgs,
|
|
50
|
-
returnId
|
|
50
|
+
returnId,
|
|
51
51
|
});
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
invokeEverywhere(serviceId, methodName, methodArgs) {
|
|
55
|
-
this.targets.forEach(target => this.invoke(target, serviceId, methodName, methodArgs));
|
|
55
|
+
this.targets.forEach((target) => this.invoke(target, serviceId, methodName, methodArgs));
|
|
56
56
|
}
|
|
57
57
|
registerReturnHandler(returnId, callback) {
|
|
58
58
|
this.returnHandlers[returnId] = callback;
|
|
@@ -79,10 +79,10 @@ class MessageBroker {
|
|
|
79
79
|
this.services.push({ id: serviceId, methods: service });
|
|
80
80
|
}
|
|
81
81
|
unregisterService(serviceId) {
|
|
82
|
-
this.services = this.services.filter(s => s.id !== serviceId);
|
|
82
|
+
this.services = this.services.filter((s) => s.id !== serviceId);
|
|
83
83
|
}
|
|
84
84
|
getServiceById(serviceId) {
|
|
85
|
-
return this.services.find(s => s.id === serviceId);
|
|
85
|
+
return this.services.find((s) => s.id === serviceId);
|
|
86
86
|
}
|
|
87
87
|
registerListener(listener) {
|
|
88
88
|
const existingListener = this.getListenerByid(listener.id);
|
|
@@ -96,14 +96,14 @@ class MessageBroker {
|
|
|
96
96
|
}
|
|
97
97
|
unregisterListener(listenerId) {
|
|
98
98
|
const existingListener = this.getListenerByid(listenerId);
|
|
99
|
-
this.listeners = this.listeners.filter(l => l.id !== listenerId);
|
|
99
|
+
this.listeners = this.listeners.filter((l) => l.id !== listenerId);
|
|
100
100
|
if (existingListener !== undefined) {
|
|
101
101
|
existingListener.off("message", this.handleMessageEvent.bind(this));
|
|
102
102
|
existingListener.unsubscribe(this);
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
getListenerByid(listenerId) {
|
|
106
|
-
return this.listeners.find(l => l.id === listenerId);
|
|
106
|
+
return this.listeners.find((l) => l.id === listenerId);
|
|
107
107
|
}
|
|
108
108
|
handleMessageEvent(message) {
|
|
109
109
|
if (message.data.__type === undefined)
|
|
@@ -140,7 +140,7 @@ class MessageBroker {
|
|
|
140
140
|
target.postMessage({
|
|
141
141
|
__type: "return",
|
|
142
142
|
returnId,
|
|
143
|
-
returnValue
|
|
143
|
+
returnValue,
|
|
144
144
|
});
|
|
145
145
|
}
|
|
146
146
|
}
|
|
@@ -13,7 +13,7 @@ class SecondLifeMessagingListener extends events_1.EventEmitter {
|
|
|
13
13
|
subscribe(broker) {
|
|
14
14
|
this.socket.emit("ident", {
|
|
15
15
|
id: this.senderId,
|
|
16
|
-
owner: SecondLifeIdentity_1.default.getKey()
|
|
16
|
+
owner: SecondLifeIdentity_1.default.getKey(),
|
|
17
17
|
});
|
|
18
18
|
this.socket.on("invoke", this.messageEventHandler.bind(this));
|
|
19
19
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@photon-os/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0-beta1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -17,13 +17,13 @@
|
|
|
17
17
|
"@types/node": "^14.0.13",
|
|
18
18
|
"@types/socket.io-client": "^1.4.33",
|
|
19
19
|
"@types/uuid": "^8.0.0",
|
|
20
|
-
"tsc-watch": "^
|
|
20
|
+
"tsc-watch": "^4.2.8",
|
|
21
21
|
"typedoc": "^0.17.7",
|
|
22
22
|
"typescript": "^3.9.5"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"socket.io-client": "^2.
|
|
26
|
-
"uuid": "^
|
|
25
|
+
"socket.io-client": "^2.3.0",
|
|
26
|
+
"uuid": "^8.3.2"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {}
|
|
29
29
|
}
|