@gbraver-burst-network/anonymous-browser-sdk 1.30.0-beta.0
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/LICENSE.txt +7 -0
- package/Readme.md +37 -0
- package/lib/http-api/frontend-log.d.ts +14 -0
- package/lib/http-api/frontend-log.js +33 -0
- package/lib/http-api/issue-auth-token.d.ts +7 -0
- package/lib/http-api/issue-auth-token.js +29 -0
- package/lib/http-api/issue-coturn-credential.d.ts +12 -0
- package/lib/http-api/issue-coturn-credential.js +36 -0
- package/lib/http-api/request/frontend-log.d.ts +30 -0
- package/lib/http-api/request/frontend-log.js +2 -0
- package/lib/http-api/response/issue-auth-token.d.ts +13 -0
- package/lib/http-api/response/issue-auth-token.js +9 -0
- package/lib/http-api/response/issue-coturn-credential.d.ts +13 -0
- package/lib/http-api/response/issue-coturn-credential.js +9 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +9 -0
- package/lib/json/parse.d.ts +7 -0
- package/lib/json/parse.js +20 -0
- package/lib/sdk/auth-token-manager.d.ts +23 -0
- package/lib/sdk/auth-token-manager.js +72 -0
- package/lib/sdk/battle-sdk.d.ts +25 -0
- package/lib/sdk/battle-sdk.js +2 -0
- package/lib/sdk/create-rtc-peer-connection.d.ts +13 -0
- package/lib/sdk/create-rtc-peer-connection.js +45 -0
- package/lib/sdk/frontend-log-manager.d.ts +23 -0
- package/lib/sdk/frontend-log-manager.js +65 -0
- package/lib/sdk/guest-battle-sdk.d.ts +36 -0
- package/lib/sdk/guest-battle-sdk.js +78 -0
- package/lib/sdk/guest-local-webrtc-sdk.d.ts +54 -0
- package/lib/sdk/guest-local-webrtc-sdk.js +194 -0
- package/lib/sdk/guest-webrtc-connection-manager.d.ts +33 -0
- package/lib/sdk/guest-webrtc-connection-manager.js +71 -0
- package/lib/sdk/host-battle-sdk.d.ts +39 -0
- package/lib/sdk/host-battle-sdk.js +108 -0
- package/lib/sdk/host-local-webrtc-sdk.d.ts +50 -0
- package/lib/sdk/host-local-webrtc-sdk.js +99 -0
- package/lib/sdk/host-webrtc-connection-manager.d.ts +37 -0
- package/lib/sdk/host-webrtc-connection-manager.js +84 -0
- package/lib/sdk/local-webrtc-room.d.ts +44 -0
- package/lib/sdk/local-webrtc-room.js +178 -0
- package/lib/sdk/websocket-connection-manager.d.ts +34 -0
- package/lib/sdk/websocket-connection-manager.js +92 -0
- package/lib/webrtc/gather-all-ice-candidate.d.ts +20 -0
- package/lib/webrtc/gather-all-ice-candidate.js +45 -0
- package/lib/webrtc/get-selected-ice-candidate-summary.d.ts +6 -0
- package/lib/webrtc/get-selected-ice-candidate-summary.js +36 -0
- package/lib/webrtc/guest/guest-message.d.ts +48 -0
- package/lib/webrtc/guest/guest-message.js +27 -0
- package/lib/webrtc/guest/receive-battle-progressed.d.ts +7 -0
- package/lib/webrtc/guest/receive-battle-progressed.js +29 -0
- package/lib/webrtc/guest/receive-battle-start.d.ts +7 -0
- package/lib/webrtc/guest/receive-battle-start.js +29 -0
- package/lib/webrtc/guest/receive-request-selected-player.d.ts +7 -0
- package/lib/webrtc/guest/receive-request-selected-player.js +29 -0
- package/lib/webrtc/guest/wait-until-data-channel.d.ts +6 -0
- package/lib/webrtc/guest/wait-until-data-channel.js +14 -0
- package/lib/webrtc/host/host-message.d.ts +1001 -0
- package/lib/webrtc/host/host-message.js +33 -0
- package/lib/webrtc/host/receive-send-command.d.ts +8 -0
- package/lib/webrtc/host/receive-send-command.js +31 -0
- package/lib/webrtc/host/request-selected-player.d.ts +16 -0
- package/lib/webrtc/host/request-selected-player.js +35 -0
- package/lib/webrtc/notify-connection-failed.d.ts +7 -0
- package/lib/webrtc/notify-connection-failed.js +11 -0
- package/lib/webrtc/rtc-ice-candidate-init-schema.d.ts +8 -0
- package/lib/webrtc/rtc-ice-candidate-init-schema.js +11 -0
- package/lib/webrtc/rtc-session-description-init-schema.d.ts +11 -0
- package/lib/webrtc/rtc-session-description-init-schema.js +9 -0
- package/lib/webrtc/wait-until-connected.d.ts +6 -0
- package/lib/webrtc/wait-until-connected.js +28 -0
- package/lib/webrtc/wait-until-data-channel-ready.d.ts +6 -0
- package/lib/webrtc/wait-until-data-channel-ready.js +28 -0
- package/lib/websocket-api/connect-ws-signal.d.ts +7 -0
- package/lib/websocket-api/connect-ws-signal.js +29 -0
- package/lib/websocket-api/create-room.d.ts +6 -0
- package/lib/websocket-api/create-room.js +37 -0
- package/lib/websocket-api/delete-signaling-channel.d.ts +11 -0
- package/lib/websocket-api/delete-signaling-channel.js +43 -0
- package/lib/websocket-api/join-room.d.ts +12 -0
- package/lib/websocket-api/join-room.js +40 -0
- package/lib/websocket-api/notify-ice-candidate-recieved.d.ts +7 -0
- package/lib/websocket-api/notify-ice-candidate-recieved.js +13 -0
- package/lib/websocket-api/request/create-room.d.ts +4 -0
- package/lib/websocket-api/request/create-room.js +2 -0
- package/lib/websocket-api/request/delete-signaling-channel.d.ts +6 -0
- package/lib/websocket-api/request/delete-signaling-channel.js +2 -0
- package/lib/websocket-api/request/index.d.ts +7 -0
- package/lib/websocket-api/request/index.js +2 -0
- package/lib/websocket-api/request/join-room.d.ts +6 -0
- package/lib/websocket-api/request/join-room.js +2 -0
- package/lib/websocket-api/request/send-ice-candidate.d.ts +8 -0
- package/lib/websocket-api/request/send-ice-candidate.js +2 -0
- package/lib/websocket-api/request/send-sdp.d.ts +8 -0
- package/lib/websocket-api/request/send-sdp.js +2 -0
- package/lib/websocket-api/response/delete-signaling-channel-accepted.d.ts +9 -0
- package/lib/websocket-api/response/delete-signaling-channel-accepted.js +8 -0
- package/lib/websocket-api/response/delete-signaling-channel-rejected.d.ts +9 -0
- package/lib/websocket-api/response/delete-signaling-channel-rejected.js +8 -0
- package/lib/websocket-api/response/join-room-accepted.d.ts +12 -0
- package/lib/websocket-api/response/join-room-accepted.js +9 -0
- package/lib/websocket-api/response/join-room-rejected.d.ts +9 -0
- package/lib/websocket-api/response/join-room-rejected.js +8 -0
- package/lib/websocket-api/response/matching.d.ts +12 -0
- package/lib/websocket-api/response/matching.js +9 -0
- package/lib/websocket-api/response/receive-ice-candidate.d.ts +20 -0
- package/lib/websocket-api/response/receive-ice-candidate.js +11 -0
- package/lib/websocket-api/response/receive-remote-sdp.d.ts +23 -0
- package/lib/websocket-api/response/receive-remote-sdp.js +11 -0
- package/lib/websocket-api/response/room-creation-result.d.ts +37 -0
- package/lib/websocket-api/response/room-creation-result.js +20 -0
- package/lib/websocket-api/response/send-sdp-rejected.d.ts +9 -0
- package/lib/websocket-api/response/send-sdp-rejected.js +8 -0
- package/lib/websocket-api/send-to-ws-signal.d.ts +7 -0
- package/lib/websocket-api/send-to-ws-signal.js +11 -0
- package/lib/websocket-api/wait-until-matching.d.ts +6 -0
- package/lib/websocket-api/wait-until-matching.js +29 -0
- package/lib/websocket-api/wait-until-sdp-recieve.d.ts +6 -0
- package/lib/websocket-api/wait-until-sdp-recieve.js +33 -0
- package/package.json +52 -0
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.getSelectedIceCandidateSummary = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* 経路として選択されたローカル ICE Candidate の概要を取得する
|
|
15
|
+
* @param connection WebRTCコネクション
|
|
16
|
+
* @returns 経路として選択されたローカル ICE Candidate の概要文字列、存在しない場合は null
|
|
17
|
+
*/
|
|
18
|
+
const getSelectedIceCandidateSummary = (connection) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
var _a, _b, _c;
|
|
20
|
+
const stats = yield connection.getStats();
|
|
21
|
+
const candidatePair = Array.from(stats.values()).find((r) => r.type === "candidate-pair" && r.state === "succeeded" && r.nominated);
|
|
22
|
+
if (!candidatePair) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
const local = stats.get(candidatePair.localCandidateId);
|
|
26
|
+
if (!local) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
const candidateType = (_a = local.candidateType) !== null && _a !== void 0 ? _a : "no-candidate-type";
|
|
30
|
+
const protocol = (_b = local.protocol) !== null && _b !== void 0 ? _b : "no-protocol";
|
|
31
|
+
const relayProtocol = (_c = local.relayProtocol) !== null && _c !== void 0 ? _c : null;
|
|
32
|
+
return [candidateType, protocol, relayProtocol]
|
|
33
|
+
.filter((v) => v !== null)
|
|
34
|
+
.join(" ");
|
|
35
|
+
});
|
|
36
|
+
exports.getSelectedIceCandidateSummary = getSelectedIceCandidateSummary;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ArmdozerId, Command, PilotId } from "gbraver-burst-core";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
/** 選択したプレイヤーをホストに送信する */
|
|
4
|
+
export type SendPlayer = {
|
|
5
|
+
type: "send-player";
|
|
6
|
+
/** ゲームのフローID */
|
|
7
|
+
flowID: string;
|
|
8
|
+
/** 選択したアームドーザーのID */
|
|
9
|
+
armdozerId: ArmdozerId;
|
|
10
|
+
/** 選択したパイロットのID */
|
|
11
|
+
pilotId: PilotId;
|
|
12
|
+
};
|
|
13
|
+
/** SendPlayer zod のスキーマ */
|
|
14
|
+
export declare const SendPlayerSchema: z.ZodObject<{
|
|
15
|
+
type: z.ZodLiteral<"send-player">;
|
|
16
|
+
flowID: z.ZodString;
|
|
17
|
+
armdozerId: z.ZodString;
|
|
18
|
+
pilotId: z.ZodString;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
/** コマンドをホストに送信する */
|
|
21
|
+
export type SendCommand = {
|
|
22
|
+
type: "send-command";
|
|
23
|
+
/** ゲームのフローID */
|
|
24
|
+
flowID: string;
|
|
25
|
+
/** コマンドの内容 */
|
|
26
|
+
command: Command;
|
|
27
|
+
};
|
|
28
|
+
/** SendCommand zod のスキーマ */
|
|
29
|
+
export declare const SendCommandSchema: z.ZodObject<{
|
|
30
|
+
type: z.ZodLiteral<"send-command">;
|
|
31
|
+
flowID: z.ZodString;
|
|
32
|
+
command: z.ZodUnion<readonly [z.ZodObject<{
|
|
33
|
+
type: z.ZodLiteral<"BATTERY_COMMAND">;
|
|
34
|
+
battery: z.ZodNumber;
|
|
35
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
36
|
+
type: z.ZodLiteral<"BURST_COMMAND">;
|
|
37
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
38
|
+
type: z.ZodLiteral<"PILOT_SKILL_COMMAND">;
|
|
39
|
+
}, z.core.$strip>]>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
/** ゲストから送信されるメッセージ */
|
|
42
|
+
export type GuestMessage = SendPlayer | SendCommand;
|
|
43
|
+
/**
|
|
44
|
+
* ゲストメッセージをホストに送信する
|
|
45
|
+
* @param dataChannel データチャンネル
|
|
46
|
+
* @param message メッセージ内容
|
|
47
|
+
*/
|
|
48
|
+
export declare const sendGuestMessage: (dataChannel: RTCDataChannel, message: GuestMessage) => void;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendGuestMessage = exports.SendCommandSchema = exports.SendPlayerSchema = void 0;
|
|
4
|
+
const gbraver_burst_core_1 = require("gbraver-burst-core");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
/** SendPlayer zod のスキーマ */
|
|
7
|
+
exports.SendPlayerSchema = zod_1.z.object({
|
|
8
|
+
type: zod_1.z.literal("send-player"),
|
|
9
|
+
flowID: zod_1.z.string(),
|
|
10
|
+
armdozerId: zod_1.z.string(),
|
|
11
|
+
pilotId: zod_1.z.string(),
|
|
12
|
+
});
|
|
13
|
+
/** SendCommand zod のスキーマ */
|
|
14
|
+
exports.SendCommandSchema = zod_1.z.object({
|
|
15
|
+
type: zod_1.z.literal("send-command"),
|
|
16
|
+
flowID: zod_1.z.string(),
|
|
17
|
+
command: gbraver_burst_core_1.CommandSchema,
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* ゲストメッセージをホストに送信する
|
|
21
|
+
* @param dataChannel データチャンネル
|
|
22
|
+
* @param message メッセージ内容
|
|
23
|
+
*/
|
|
24
|
+
const sendGuestMessage = (dataChannel, message) => {
|
|
25
|
+
dataChannel.send(JSON.stringify(message));
|
|
26
|
+
};
|
|
27
|
+
exports.sendGuestMessage = sendGuestMessage;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BattleProgressed } from "../host/host-message";
|
|
2
|
+
/**
|
|
3
|
+
* ホストから「BattleProgressed」メッセージを待ち受ける
|
|
4
|
+
* @param dataChannel データチャネル
|
|
5
|
+
* @returns BattleProgressedメッセージの内容
|
|
6
|
+
*/
|
|
7
|
+
export declare const receiveBattleProgressed: (dataChannel: RTCDataChannel) => Promise<BattleProgressed>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.receiveBattleProgressed = void 0;
|
|
4
|
+
const parse_1 = require("../../json/parse");
|
|
5
|
+
const host_message_1 = require("../host/host-message");
|
|
6
|
+
/**
|
|
7
|
+
* ホストから「BattleProgressed」メッセージを待ち受ける
|
|
8
|
+
* @param dataChannel データチャネル
|
|
9
|
+
* @returns BattleProgressedメッセージの内容
|
|
10
|
+
*/
|
|
11
|
+
const receiveBattleProgressed = (dataChannel) => {
|
|
12
|
+
let handler = null;
|
|
13
|
+
return new Promise((resolve) => {
|
|
14
|
+
handler = (event) => {
|
|
15
|
+
const data = (0, parse_1.parseJSON)(event.data);
|
|
16
|
+
const parsedBattleProgressed = host_message_1.BattleProgressedSchema.safeParse(data);
|
|
17
|
+
if (parsedBattleProgressed.success) {
|
|
18
|
+
resolve(parsedBattleProgressed.data);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
dataChannel.addEventListener("message", handler);
|
|
23
|
+
}).finally(() => {
|
|
24
|
+
if (handler) {
|
|
25
|
+
dataChannel.removeEventListener("message", handler);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
exports.receiveBattleProgressed = receiveBattleProgressed;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.receiveBattleStart = void 0;
|
|
4
|
+
const parse_1 = require("../../json/parse");
|
|
5
|
+
const host_message_1 = require("../host/host-message");
|
|
6
|
+
/**
|
|
7
|
+
* ホストから「BattleStart」メッセージを待ち受ける
|
|
8
|
+
* @param dataChannel データチャネル
|
|
9
|
+
* @returns BattleStartメッセージの内容
|
|
10
|
+
*/
|
|
11
|
+
const receiveBattleStart = (dataChannel) => {
|
|
12
|
+
let handler = null;
|
|
13
|
+
return new Promise((resolve) => {
|
|
14
|
+
handler = (event) => {
|
|
15
|
+
const data = (0, parse_1.parseJSON)(event.data);
|
|
16
|
+
const parsedBattleStart = host_message_1.BattleStartSchema.safeParse(data);
|
|
17
|
+
if (parsedBattleStart.success) {
|
|
18
|
+
resolve(parsedBattleStart.data);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
dataChannel.addEventListener("message", handler);
|
|
23
|
+
}).finally(() => {
|
|
24
|
+
if (handler) {
|
|
25
|
+
dataChannel.removeEventListener("message", handler);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
exports.receiveBattleStart = receiveBattleStart;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { RequestSelectedPlayer } from "../host/host-message";
|
|
2
|
+
/**
|
|
3
|
+
* ホストから「RequestSelectedPlayer」メッセージを待ち受ける
|
|
4
|
+
* @param dataChannel データチャネル
|
|
5
|
+
* @returns フローID
|
|
6
|
+
*/
|
|
7
|
+
export declare const receiveRequestSelectedPlayer: (dataChannel: RTCDataChannel) => Promise<RequestSelectedPlayer>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.receiveRequestSelectedPlayer = void 0;
|
|
4
|
+
const parse_1 = require("../../json/parse");
|
|
5
|
+
const host_message_1 = require("../host/host-message");
|
|
6
|
+
/**
|
|
7
|
+
* ホストから「RequestSelectedPlayer」メッセージを待ち受ける
|
|
8
|
+
* @param dataChannel データチャネル
|
|
9
|
+
* @returns フローID
|
|
10
|
+
*/
|
|
11
|
+
const receiveRequestSelectedPlayer = (dataChannel) => {
|
|
12
|
+
let handler = null;
|
|
13
|
+
return new Promise((resolve) => {
|
|
14
|
+
handler = (event) => {
|
|
15
|
+
const data = (0, parse_1.parseJSON)(event.data);
|
|
16
|
+
const parsedRequestSelectedPlayer = host_message_1.RequestSelectedPlayerSchema.safeParse(data);
|
|
17
|
+
if (parsedRequestSelectedPlayer.success) {
|
|
18
|
+
resolve(parsedRequestSelectedPlayer.data);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
dataChannel.addEventListener("message", handler);
|
|
23
|
+
}).finally(() => {
|
|
24
|
+
if (handler) {
|
|
25
|
+
dataChannel.removeEventListener("message", handler);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
exports.receiveRequestSelectedPlayer = receiveRequestSelectedPlayer;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.waitUntilDataChannel = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* ゲスト側でデータチャネルが開通するのを待つ
|
|
6
|
+
* @param connection ホスト側のWebRTCコネクション
|
|
7
|
+
* @returns 開通したデータチャネル
|
|
8
|
+
*/
|
|
9
|
+
const waitUntilDataChannel = (connection) => new Promise((resolve) => {
|
|
10
|
+
connection.addEventListener("datachannel", (event) => {
|
|
11
|
+
resolve(event.channel);
|
|
12
|
+
}, { once: true });
|
|
13
|
+
});
|
|
14
|
+
exports.waitUntilDataChannel = waitUntilDataChannel;
|