@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,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JoinRoomRejectedSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ /** JoinRoomRejected zod スキーマ */
6
+ exports.JoinRoomRejectedSchema = zod_1.z.object({
7
+ type: zod_1.z.literal("join-room-rejected"),
8
+ });
@@ -0,0 +1,12 @@
1
+ import { z } from "zod";
2
+ /** マッチング成功 */
3
+ export type Matching = {
4
+ type: "matching";
5
+ /** シグナリングID */
6
+ signalingID: string;
7
+ };
8
+ /** Matching zod スキーマ */
9
+ export declare const MatchingSchema: z.ZodObject<{
10
+ type: z.ZodLiteral<"matching">;
11
+ signalingID: z.ZodString;
12
+ }, z.core.$strip>;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MatchingSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ /** Matching zod スキーマ */
6
+ exports.MatchingSchema = zod_1.z.object({
7
+ type: zod_1.z.literal("matching"),
8
+ signalingID: zod_1.z.string(),
9
+ });
@@ -0,0 +1,20 @@
1
+ import { z } from "zod";
2
+ /** 相手からICE candidate を受信した */
3
+ export type ReceiveICECandidate = {
4
+ type: "receive-ice-candidate";
5
+ /** シグナリングID */
6
+ signalingID: string;
7
+ /** ICE candidate */
8
+ iceCandidate: RTCIceCandidateInit;
9
+ };
10
+ /** ReceiveICECandidate zod スキーマ */
11
+ export declare const ReceiveICECandidateSchema: z.ZodObject<{
12
+ type: z.ZodLiteral<"receive-ice-candidate">;
13
+ signalingID: z.ZodString;
14
+ iceCandidate: z.ZodObject<{
15
+ candidate: z.ZodOptional<z.ZodString>;
16
+ sdpMLineIndex: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
17
+ sdpMid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
18
+ usernameFragment: z.ZodOptional<z.ZodNullable<z.ZodString>>;
19
+ }, z.core.$strip>;
20
+ }, z.core.$strip>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReceiveICECandidateSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const rtc_ice_candidate_init_schema_1 = require("../../webrtc/rtc-ice-candidate-init-schema");
6
+ /** ReceiveICECandidate zod スキーマ */
7
+ exports.ReceiveICECandidateSchema = zod_1.z.object({
8
+ type: zod_1.z.literal("receive-ice-candidate"),
9
+ signalingID: zod_1.z.string(),
10
+ iceCandidate: rtc_ice_candidate_init_schema_1.RTCIceCandidateInitSchema,
11
+ });
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+ /** 相手からSDPを受信した */
3
+ export type ReceiveRemoteSDP = {
4
+ type: "receive-remote-sdp";
5
+ /** シグナリングID */
6
+ signalingID: string;
7
+ /** SDP */
8
+ sdp: RTCSessionDescriptionInit;
9
+ };
10
+ /** ReceiveRemoteSDP zod スキーマ */
11
+ export declare const ReceiveRemoteSDPSchema: z.ZodObject<{
12
+ type: z.ZodLiteral<"receive-remote-sdp">;
13
+ signalingID: z.ZodString;
14
+ sdp: z.ZodObject<{
15
+ type: z.ZodEnum<{
16
+ offer: "offer";
17
+ pranswer: "pranswer";
18
+ answer: "answer";
19
+ rollback: "rollback";
20
+ }>;
21
+ sdp: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$strip>;
23
+ }, z.core.$strip>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReceiveRemoteSDPSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const rtc_session_description_init_schema_1 = require("../../webrtc/rtc-session-description-init-schema");
6
+ /** ReceiveRemoteSDP zod スキーマ */
7
+ exports.ReceiveRemoteSDPSchema = zod_1.z.object({
8
+ type: zod_1.z.literal("receive-remote-sdp"),
9
+ signalingID: zod_1.z.string(),
10
+ sdp: rtc_session_description_init_schema_1.RTCSessionDescriptionInitSchema,
11
+ });
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ /** ルーム生成成功 */
3
+ export type RoomCreationSuccess = {
4
+ type: "room-creation-result";
5
+ /** ルーム生成が成功したか否か、成功したのでtrue */
6
+ isSuccess: true;
7
+ /** ルームID */
8
+ roomID: string;
9
+ };
10
+ /** RoomCreationSuccess zod スキーマ */
11
+ export declare const RoomCreationSuccessSchema: z.ZodObject<{
12
+ type: z.ZodLiteral<"room-creation-result">;
13
+ isSuccess: z.ZodLiteral<true>;
14
+ roomID: z.ZodString;
15
+ }, z.core.$strip>;
16
+ /** ルーム生成失敗 */
17
+ export type RoomCreationFailure = {
18
+ type: "room-creation-result";
19
+ /** ルーム生成が成功したか否か、失敗したのでfalse */
20
+ isSuccess: false;
21
+ };
22
+ /** RoomCreationFailure zod スキーマ */
23
+ export declare const RoomCreationFailureSchema: z.ZodObject<{
24
+ type: z.ZodLiteral<"room-creation-result">;
25
+ isSuccess: z.ZodLiteral<false>;
26
+ }, z.core.$strip>;
27
+ /** ルーム生成結果 */
28
+ export type RoomCreationResult = RoomCreationSuccess | RoomCreationFailure;
29
+ /** RoomCreationResult zod スキーマ */
30
+ export declare const RoomCreationResultSchema: z.ZodUnion<readonly [z.ZodObject<{
31
+ type: z.ZodLiteral<"room-creation-result">;
32
+ isSuccess: z.ZodLiteral<true>;
33
+ roomID: z.ZodString;
34
+ }, z.core.$strip>, z.ZodObject<{
35
+ type: z.ZodLiteral<"room-creation-result">;
36
+ isSuccess: z.ZodLiteral<false>;
37
+ }, z.core.$strip>]>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoomCreationResultSchema = exports.RoomCreationFailureSchema = exports.RoomCreationSuccessSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ /** RoomCreationSuccess zod スキーマ */
6
+ exports.RoomCreationSuccessSchema = zod_1.z.object({
7
+ type: zod_1.z.literal("room-creation-result"),
8
+ isSuccess: zod_1.z.literal(true),
9
+ roomID: zod_1.z.string(),
10
+ });
11
+ /** RoomCreationFailure zod スキーマ */
12
+ exports.RoomCreationFailureSchema = zod_1.z.object({
13
+ type: zod_1.z.literal("room-creation-result"),
14
+ isSuccess: zod_1.z.literal(false),
15
+ });
16
+ /** RoomCreationResult zod スキーマ */
17
+ exports.RoomCreationResultSchema = zod_1.z.union([
18
+ exports.RoomCreationSuccessSchema,
19
+ exports.RoomCreationFailureSchema,
20
+ ]);
@@ -0,0 +1,9 @@
1
+ import { z } from "zod";
2
+ /** SDP送信が拒否された */
3
+ export type SendSDPRejected = {
4
+ type: "send-sdp-rejected";
5
+ };
6
+ /** SendSDPRejected zod スキーマ */
7
+ export declare const SendSDPRejectedSchema: z.ZodObject<{
8
+ type: z.ZodLiteral<"send-sdp-rejected">;
9
+ }, z.core.$strip>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SendSDPRejectedSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ /** SendSDPRejected zod スキーマ */
6
+ exports.SendSDPRejectedSchema = zod_1.z.object({
7
+ type: zod_1.z.literal("send-sdp-rejected"),
8
+ });
@@ -0,0 +1,7 @@
1
+ import { WSSignalRequest } from "./request";
2
+ /**
3
+ * WebSocketシグナルサーバーにメッセージ送信をする
4
+ * @param websocket WebSocketコネクション
5
+ * @param data 送信内容
6
+ */
7
+ export declare function sendToWSSignal(websocket: WebSocket, data: WSSignalRequest): void;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendToWSSignal = sendToWSSignal;
4
+ /**
5
+ * WebSocketシグナルサーバーにメッセージ送信をする
6
+ * @param websocket WebSocketコネクション
7
+ * @param data 送信内容
8
+ */
9
+ function sendToWSSignal(websocket, data) {
10
+ websocket.send(JSON.stringify(data));
11
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ホストがマッチングするまで待機する
3
+ * @param websocket WebSocketコネクション
4
+ * @returns シグナリングID
5
+ */
6
+ export declare const waitUntilMatching: (websocket: WebSocket) => Promise<string>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitUntilMatching = void 0;
4
+ const parse_1 = require("../json/parse");
5
+ const matching_1 = require("./response/matching");
6
+ /**
7
+ * ホストがマッチングするまで待機する
8
+ * @param websocket WebSocketコネクション
9
+ * @returns シグナリングID
10
+ */
11
+ const waitUntilMatching = (websocket) => {
12
+ let handler = null;
13
+ return new Promise((resolve) => {
14
+ handler = (event) => {
15
+ const parsedData = (0, parse_1.parseJSON)(event.data);
16
+ const parsedMatching = matching_1.MatchingSchema.safeParse(parsedData);
17
+ if (parsedMatching.success) {
18
+ const { signalingID } = parsedMatching.data;
19
+ resolve(signalingID);
20
+ }
21
+ };
22
+ websocket.addEventListener("message", handler);
23
+ }).finally(() => {
24
+ if (handler) {
25
+ websocket.removeEventListener("message", handler);
26
+ }
27
+ });
28
+ };
29
+ exports.waitUntilMatching = waitUntilMatching;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 相手からSDPを受信するまで待機する
3
+ * @param websocket WebSocketコネクション
4
+ * @returns 受信したSDP
5
+ */
6
+ export declare const waitUntilSDPReceive: (websocket: WebSocket) => Promise<RTCSessionDescriptionInit>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitUntilSDPReceive = void 0;
4
+ const parse_1 = require("../json/parse");
5
+ const receive_remote_sdp_1 = require("./response/receive-remote-sdp");
6
+ const send_sdp_rejected_1 = require("./response/send-sdp-rejected");
7
+ /**
8
+ * 相手からSDPを受信するまで待機する
9
+ * @param websocket WebSocketコネクション
10
+ * @returns 受信したSDP
11
+ */
12
+ const waitUntilSDPReceive = (websocket) => {
13
+ let handler = null;
14
+ return new Promise((resolve, reject) => {
15
+ handler = (event) => {
16
+ const parsedData = (0, parse_1.parseJSON)(event.data);
17
+ const remoteSDP = receive_remote_sdp_1.ReceiveRemoteSDPSchema.safeParse(parsedData);
18
+ if (remoteSDP.success) {
19
+ resolve(remoteSDP.data.sdp);
20
+ }
21
+ const sendSDPRejected = send_sdp_rejected_1.SendSDPRejectedSchema.safeParse(parsedData);
22
+ if (sendSDPRejected.success) {
23
+ reject(new Error("send sdp rejected"));
24
+ }
25
+ };
26
+ websocket.addEventListener("message", handler);
27
+ }).finally(() => {
28
+ if (handler) {
29
+ websocket.removeEventListener("message", handler);
30
+ }
31
+ });
32
+ };
33
+ exports.waitUntilSDPReceive = waitUntilSDPReceive;
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@gbraver-burst-network/anonymous-browser-sdk",
3
+ "description": "gbraver burst local webrtc browser sdk",
4
+ "version": "1.30.0-beta.0",
5
+ "author": "Y.Takeuchi",
6
+ "bugs": {
7
+ "url": "https://github.com/kaidouji85/gbraver-burst-network/issues",
8
+ "email": "kaidouji85@gmail.com"
9
+ },
10
+ "dependencies": {
11
+ "nanoid": "^6.0.1",
12
+ "rxjs": "^7.8.2"
13
+ },
14
+ "devDependencies": {
15
+ "@eslint/js": "^10.0.1",
16
+ "dependency-cruiser": "^18.2.0",
17
+ "eslint": "^10.8.1",
18
+ "eslint-plugin-simple-import-sort": "^14.0.0",
19
+ "gbraver-burst-core": "^1.45.0",
20
+ "npm-run-all": "^4.1.5",
21
+ "prettier": "^3.9.6",
22
+ "rimraf": "^6.1.3",
23
+ "typescript-eslint": "^8.67.0",
24
+ "zod": "^4.4.3"
25
+ },
26
+ "files": [
27
+ "lib"
28
+ ],
29
+ "homepage": "https://github.com/kaidouji85/gbraver-burst-network/tree/develop/packages/anonymous-browser-sdk#readme",
30
+ "keywords": [
31
+ "gbraver-burst",
32
+ "web-rtc"
33
+ ],
34
+ "license": "MIT",
35
+ "main": "lib/index.js",
36
+ "peerDependencies": {
37
+ "gbraver-burst-core": "^1.45.0",
38
+ "zod": "^4.4.3"
39
+ },
40
+ "repository": "https://github.com/kaidouji85/gbraver-burst-network/tree/develop/packages/anonymous-browser-sdk",
41
+ "scripts": {
42
+ "build": "run-s clean type-check transpile",
43
+ "clean": "rimraf lib",
44
+ "code-format": "prettier . --write",
45
+ "code-format-check": "prettier . --check",
46
+ "dependency-check": "depcruise src",
47
+ "lint": "eslint .",
48
+ "lint-fix": "eslint --fix .",
49
+ "transpile": "tsc -d --outDir lib",
50
+ "type-check": "tsc --noEmit"
51
+ }
52
+ }