@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.
Files changed (119) hide show
  1. package/LICENSE.txt +7 -0
  2. package/Readme.md +37 -0
  3. package/lib/http-api/frontend-log.d.ts +14 -0
  4. package/lib/http-api/frontend-log.js +33 -0
  5. package/lib/http-api/issue-auth-token.d.ts +7 -0
  6. package/lib/http-api/issue-auth-token.js +29 -0
  7. package/lib/http-api/issue-coturn-credential.d.ts +12 -0
  8. package/lib/http-api/issue-coturn-credential.js +36 -0
  9. package/lib/http-api/request/frontend-log.d.ts +30 -0
  10. package/lib/http-api/request/frontend-log.js +2 -0
  11. package/lib/http-api/response/issue-auth-token.d.ts +13 -0
  12. package/lib/http-api/response/issue-auth-token.js +9 -0
  13. package/lib/http-api/response/issue-coturn-credential.d.ts +13 -0
  14. package/lib/http-api/response/issue-coturn-credential.js +9 -0
  15. package/lib/index.d.ts +5 -0
  16. package/lib/index.js +9 -0
  17. package/lib/json/parse.d.ts +7 -0
  18. package/lib/json/parse.js +20 -0
  19. package/lib/sdk/auth-token-manager.d.ts +23 -0
  20. package/lib/sdk/auth-token-manager.js +72 -0
  21. package/lib/sdk/battle-sdk.d.ts +25 -0
  22. package/lib/sdk/battle-sdk.js +2 -0
  23. package/lib/sdk/create-rtc-peer-connection.d.ts +13 -0
  24. package/lib/sdk/create-rtc-peer-connection.js +45 -0
  25. package/lib/sdk/frontend-log-manager.d.ts +23 -0
  26. package/lib/sdk/frontend-log-manager.js +65 -0
  27. package/lib/sdk/guest-battle-sdk.d.ts +36 -0
  28. package/lib/sdk/guest-battle-sdk.js +78 -0
  29. package/lib/sdk/guest-local-webrtc-sdk.d.ts +54 -0
  30. package/lib/sdk/guest-local-webrtc-sdk.js +194 -0
  31. package/lib/sdk/guest-webrtc-connection-manager.d.ts +33 -0
  32. package/lib/sdk/guest-webrtc-connection-manager.js +71 -0
  33. package/lib/sdk/host-battle-sdk.d.ts +39 -0
  34. package/lib/sdk/host-battle-sdk.js +108 -0
  35. package/lib/sdk/host-local-webrtc-sdk.d.ts +50 -0
  36. package/lib/sdk/host-local-webrtc-sdk.js +99 -0
  37. package/lib/sdk/host-webrtc-connection-manager.d.ts +37 -0
  38. package/lib/sdk/host-webrtc-connection-manager.js +84 -0
  39. package/lib/sdk/local-webrtc-room.d.ts +44 -0
  40. package/lib/sdk/local-webrtc-room.js +178 -0
  41. package/lib/sdk/websocket-connection-manager.d.ts +34 -0
  42. package/lib/sdk/websocket-connection-manager.js +92 -0
  43. package/lib/webrtc/gather-all-ice-candidate.d.ts +20 -0
  44. package/lib/webrtc/gather-all-ice-candidate.js +45 -0
  45. package/lib/webrtc/get-selected-ice-candidate-summary.d.ts +6 -0
  46. package/lib/webrtc/get-selected-ice-candidate-summary.js +36 -0
  47. package/lib/webrtc/guest/guest-message.d.ts +48 -0
  48. package/lib/webrtc/guest/guest-message.js +27 -0
  49. package/lib/webrtc/guest/receive-battle-progressed.d.ts +7 -0
  50. package/lib/webrtc/guest/receive-battle-progressed.js +29 -0
  51. package/lib/webrtc/guest/receive-battle-start.d.ts +7 -0
  52. package/lib/webrtc/guest/receive-battle-start.js +29 -0
  53. package/lib/webrtc/guest/receive-request-selected-player.d.ts +7 -0
  54. package/lib/webrtc/guest/receive-request-selected-player.js +29 -0
  55. package/lib/webrtc/guest/wait-until-data-channel.d.ts +6 -0
  56. package/lib/webrtc/guest/wait-until-data-channel.js +14 -0
  57. package/lib/webrtc/host/host-message.d.ts +1001 -0
  58. package/lib/webrtc/host/host-message.js +33 -0
  59. package/lib/webrtc/host/receive-send-command.d.ts +8 -0
  60. package/lib/webrtc/host/receive-send-command.js +31 -0
  61. package/lib/webrtc/host/request-selected-player.d.ts +16 -0
  62. package/lib/webrtc/host/request-selected-player.js +35 -0
  63. package/lib/webrtc/notify-connection-failed.d.ts +7 -0
  64. package/lib/webrtc/notify-connection-failed.js +11 -0
  65. package/lib/webrtc/rtc-ice-candidate-init-schema.d.ts +8 -0
  66. package/lib/webrtc/rtc-ice-candidate-init-schema.js +11 -0
  67. package/lib/webrtc/rtc-session-description-init-schema.d.ts +11 -0
  68. package/lib/webrtc/rtc-session-description-init-schema.js +9 -0
  69. package/lib/webrtc/wait-until-connected.d.ts +6 -0
  70. package/lib/webrtc/wait-until-connected.js +28 -0
  71. package/lib/webrtc/wait-until-data-channel-ready.d.ts +6 -0
  72. package/lib/webrtc/wait-until-data-channel-ready.js +28 -0
  73. package/lib/websocket-api/connect-ws-signal.d.ts +7 -0
  74. package/lib/websocket-api/connect-ws-signal.js +29 -0
  75. package/lib/websocket-api/create-room.d.ts +6 -0
  76. package/lib/websocket-api/create-room.js +37 -0
  77. package/lib/websocket-api/delete-signaling-channel.d.ts +11 -0
  78. package/lib/websocket-api/delete-signaling-channel.js +43 -0
  79. package/lib/websocket-api/join-room.d.ts +12 -0
  80. package/lib/websocket-api/join-room.js +40 -0
  81. package/lib/websocket-api/notify-ice-candidate-recieved.d.ts +7 -0
  82. package/lib/websocket-api/notify-ice-candidate-recieved.js +13 -0
  83. package/lib/websocket-api/request/create-room.d.ts +4 -0
  84. package/lib/websocket-api/request/create-room.js +2 -0
  85. package/lib/websocket-api/request/delete-signaling-channel.d.ts +6 -0
  86. package/lib/websocket-api/request/delete-signaling-channel.js +2 -0
  87. package/lib/websocket-api/request/index.d.ts +7 -0
  88. package/lib/websocket-api/request/index.js +2 -0
  89. package/lib/websocket-api/request/join-room.d.ts +6 -0
  90. package/lib/websocket-api/request/join-room.js +2 -0
  91. package/lib/websocket-api/request/send-ice-candidate.d.ts +8 -0
  92. package/lib/websocket-api/request/send-ice-candidate.js +2 -0
  93. package/lib/websocket-api/request/send-sdp.d.ts +8 -0
  94. package/lib/websocket-api/request/send-sdp.js +2 -0
  95. package/lib/websocket-api/response/delete-signaling-channel-accepted.d.ts +9 -0
  96. package/lib/websocket-api/response/delete-signaling-channel-accepted.js +8 -0
  97. package/lib/websocket-api/response/delete-signaling-channel-rejected.d.ts +9 -0
  98. package/lib/websocket-api/response/delete-signaling-channel-rejected.js +8 -0
  99. package/lib/websocket-api/response/join-room-accepted.d.ts +12 -0
  100. package/lib/websocket-api/response/join-room-accepted.js +9 -0
  101. package/lib/websocket-api/response/join-room-rejected.d.ts +9 -0
  102. package/lib/websocket-api/response/join-room-rejected.js +8 -0
  103. package/lib/websocket-api/response/matching.d.ts +12 -0
  104. package/lib/websocket-api/response/matching.js +9 -0
  105. package/lib/websocket-api/response/receive-ice-candidate.d.ts +20 -0
  106. package/lib/websocket-api/response/receive-ice-candidate.js +11 -0
  107. package/lib/websocket-api/response/receive-remote-sdp.d.ts +23 -0
  108. package/lib/websocket-api/response/receive-remote-sdp.js +11 -0
  109. package/lib/websocket-api/response/room-creation-result.d.ts +37 -0
  110. package/lib/websocket-api/response/room-creation-result.js +20 -0
  111. package/lib/websocket-api/response/send-sdp-rejected.d.ts +9 -0
  112. package/lib/websocket-api/response/send-sdp-rejected.js +8 -0
  113. package/lib/websocket-api/send-to-ws-signal.d.ts +7 -0
  114. package/lib/websocket-api/send-to-ws-signal.js +11 -0
  115. package/lib/websocket-api/wait-until-matching.d.ts +6 -0
  116. package/lib/websocket-api/wait-until-matching.js +29 -0
  117. package/lib/websocket-api/wait-until-sdp-recieve.d.ts +6 -0
  118. package/lib/websocket-api/wait-until-sdp-recieve.js +33 -0
  119. 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,7 @@
1
+ import { BattleStart } from "../host/host-message";
2
+ /**
3
+ * ホストから「BattleStart」メッセージを待ち受ける
4
+ * @param dataChannel データチャネル
5
+ * @returns BattleStartメッセージの内容
6
+ */
7
+ export declare const receiveBattleStart: (dataChannel: RTCDataChannel) => Promise<BattleStart>;
@@ -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,6 @@
1
+ /**
2
+ * ゲスト側でデータチャネルが開通するのを待つ
3
+ * @param connection ホスト側のWebRTCコネクション
4
+ * @returns 開通したデータチャネル
5
+ */
6
+ export declare const waitUntilDataChannel: (connection: RTCPeerConnection) => Promise<RTCDataChannel>;
@@ -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;