@photon-os/sdk 0.5.0-beta0 → 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.js +3 -5
- package/lib/SecondLife/SecondLifeIdentity.d.ts +1 -2
- package/lib/SecondLife/SecondLifeIdentity.js +1 -22
- 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 +2 -2
|
@@ -20,13 +20,11 @@ class PhotonApp {
|
|
|
20
20
|
return __awaiter(this, void 0, void 0, function* () {
|
|
21
21
|
PhotonApp.appId = appId;
|
|
22
22
|
const messageBroker = new __1.MessageBroker();
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
26
|
messageBroker.registerListener(new __1.SecondLifeMessagingListener(`${appId}__${key}`, SecondLifeProxy_1.default.socket));
|
|
27
27
|
messageBroker.registerListener(new BrowserMessageListener_1.default());
|
|
28
|
-
messageBroker.registerTarget(new __1.BrowserMessagingTarget("os", appMode === PhotonAppMode_1.default.App ? window.parent : window));
|
|
29
|
-
__1.MessageBroker.setDefault(messageBroker);
|
|
30
28
|
const eventManager = new EventManager_1.default();
|
|
31
29
|
EventManager_1.default.setDefault(eventManager);
|
|
32
30
|
});
|
|
@@ -1,30 +1,9 @@
|
|
|
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
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const __1 = require("..");
|
|
13
3
|
class SecondLifeIdentity {
|
|
14
|
-
static
|
|
15
|
-
if (window.parent !== window) {
|
|
16
|
-
throw new Error("Unable to fetch key from query string within an app frame. Did you mean to call SecondLifeIdentity.getKey() instead?");
|
|
17
|
-
}
|
|
4
|
+
static getKey() {
|
|
18
5
|
const urlParams = new URLSearchParams(window.location.search);
|
|
19
6
|
return urlParams.get("key");
|
|
20
7
|
}
|
|
21
|
-
static getKey() {
|
|
22
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
if (window.parent === window) {
|
|
24
|
-
throw new Error("To fetch the user's key outside of an app frame, use SecondLifeIdentity.getKeyFromQueryString() instead.");
|
|
25
|
-
}
|
|
26
|
-
return yield __1.MessageBroker.defaultMessageBroker.invoke(__1.MessageBroker.defaultMessageBroker.getTargetById("os"), "os_SecondLifeIdentity", "getKey");
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
8
|
}
|
|
30
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.
|
|
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.5.0-
|
|
3
|
+
"version": "0.5.0-beta1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"socket.io-client": "^2.3.0",
|
|
26
|
-
"uuid": "^8.
|
|
26
|
+
"uuid": "^8.3.2"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {}
|
|
29
29
|
}
|