@moqtap/codec 0.1.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 (71) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +95 -0
  3. package/dist/chunk-23YG7F46.js +764 -0
  4. package/dist/chunk-2NARXGVA.cjs +194 -0
  5. package/dist/chunk-3BSZ55L3.cjs +307 -0
  6. package/dist/chunk-5WFXFLL4.cjs +1185 -0
  7. package/dist/chunk-DC4L6ZIT.js +307 -0
  8. package/dist/chunk-GDRGWFEK.cjs +498 -0
  9. package/dist/chunk-IQPDRQVC.js +1185 -0
  10. package/dist/chunk-QYG6KGOV.cjs +101 -0
  11. package/dist/chunk-UOBWHJA5.js +101 -0
  12. package/dist/chunk-WNTXF3DE.cjs +764 -0
  13. package/dist/chunk-YBSEOSSP.js +194 -0
  14. package/dist/chunk-YPXLV5YK.js +498 -0
  15. package/dist/codec-CTvFtQQI.d.cts +86 -0
  16. package/dist/codec-qPzfmLNu.d.ts +86 -0
  17. package/dist/draft14-session.cjs +6 -0
  18. package/dist/draft14-session.d.cts +8 -0
  19. package/dist/draft14-session.d.ts +8 -0
  20. package/dist/draft14-session.js +6 -0
  21. package/dist/draft14.cjs +121 -0
  22. package/dist/draft14.d.cts +96 -0
  23. package/dist/draft14.d.ts +96 -0
  24. package/dist/draft14.js +121 -0
  25. package/dist/draft7-session.cjs +7 -0
  26. package/dist/draft7-session.d.cts +7 -0
  27. package/dist/draft7-session.d.ts +7 -0
  28. package/dist/draft7-session.js +7 -0
  29. package/dist/draft7.cjs +60 -0
  30. package/dist/draft7.d.cts +72 -0
  31. package/dist/draft7.d.ts +72 -0
  32. package/dist/draft7.js +60 -0
  33. package/dist/index.cjs +40 -0
  34. package/dist/index.d.cts +40 -0
  35. package/dist/index.d.ts +40 -0
  36. package/dist/index.js +40 -0
  37. package/dist/session-types-B9NIf7_F.d.ts +101 -0
  38. package/dist/session-types-CCo-oA-d.d.cts +101 -0
  39. package/dist/session.cjs +27 -0
  40. package/dist/session.d.cts +24 -0
  41. package/dist/session.d.ts +24 -0
  42. package/dist/session.js +27 -0
  43. package/dist/types-CIk5W10V.d.cts +249 -0
  44. package/dist/types-CIk5W10V.d.ts +249 -0
  45. package/dist/types-ClXELFGN.d.cts +241 -0
  46. package/dist/types-ClXELFGN.d.ts +241 -0
  47. package/package.json +84 -0
  48. package/src/core/buffer-reader.ts +107 -0
  49. package/src/core/buffer-writer.ts +91 -0
  50. package/src/core/errors.ts +1 -0
  51. package/src/core/session-types.ts +103 -0
  52. package/src/core/types.ts +363 -0
  53. package/src/drafts/draft07/announce-fsm.ts +2 -0
  54. package/src/drafts/draft07/codec.ts +874 -0
  55. package/src/drafts/draft07/index.ts +70 -0
  56. package/src/drafts/draft07/messages.ts +44 -0
  57. package/src/drafts/draft07/parameters.ts +12 -0
  58. package/src/drafts/draft07/rules.ts +75 -0
  59. package/src/drafts/draft07/session-fsm.ts +353 -0
  60. package/src/drafts/draft07/session.ts +21 -0
  61. package/src/drafts/draft07/subscription-fsm.ts +3 -0
  62. package/src/drafts/draft07/varint.ts +23 -0
  63. package/src/drafts/draft14/codec.ts +1330 -0
  64. package/src/drafts/draft14/index.ts +132 -0
  65. package/src/drafts/draft14/messages.ts +76 -0
  66. package/src/drafts/draft14/rules.ts +70 -0
  67. package/src/drafts/draft14/session-fsm.ts +480 -0
  68. package/src/drafts/draft14/session.ts +26 -0
  69. package/src/drafts/draft14/types.ts +365 -0
  70. package/src/index.ts +85 -0
  71. package/src/session.ts +58 -0
@@ -0,0 +1,101 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/drafts/draft07/rules.ts
2
+ var CONTROL_MESSAGES = /* @__PURE__ */ new Set([
3
+ "client_setup",
4
+ "server_setup",
5
+ "subscribe",
6
+ "subscribe_ok",
7
+ "subscribe_error",
8
+ "subscribe_done",
9
+ "subscribe_update",
10
+ "unsubscribe",
11
+ "announce",
12
+ "announce_ok",
13
+ "announce_error",
14
+ "announce_cancel",
15
+ "unannounce",
16
+ "track_status_request",
17
+ "track_status",
18
+ "goaway",
19
+ "subscribe_announces",
20
+ "subscribe_announces_ok",
21
+ "subscribe_announces_error",
22
+ "unsubscribe_announces",
23
+ "max_subscribe_id",
24
+ "fetch",
25
+ "fetch_ok",
26
+ "fetch_error",
27
+ "fetch_cancel"
28
+ ]);
29
+ var DATA_MESSAGES = /* @__PURE__ */ new Set([
30
+ "object_stream",
31
+ "object_datagram",
32
+ "stream_header_track",
33
+ "stream_header_group",
34
+ "stream_header_subgroup"
35
+ ]);
36
+ var CLIENT_ONLY_MESSAGES = /* @__PURE__ */ new Set([
37
+ "client_setup",
38
+ "subscribe",
39
+ "subscribe_update",
40
+ "unsubscribe",
41
+ "announce",
42
+ "unannounce",
43
+ "subscribe_announces",
44
+ "unsubscribe_announces",
45
+ "max_subscribe_id",
46
+ "fetch",
47
+ "fetch_cancel",
48
+ "track_status_request"
49
+ ]);
50
+ var SERVER_ONLY_MESSAGES = /* @__PURE__ */ new Set([
51
+ "server_setup",
52
+ "subscribe_ok",
53
+ "subscribe_error",
54
+ "subscribe_done",
55
+ "announce_ok",
56
+ "announce_error",
57
+ "announce_cancel",
58
+ "subscribe_announces_ok",
59
+ "subscribe_announces_error",
60
+ "max_subscribe_id",
61
+ "fetch_ok",
62
+ "fetch_error",
63
+ "track_status"
64
+ ]);
65
+ function getLegalOutgoing(phase, role) {
66
+ const legal = /* @__PURE__ */ new Set();
67
+ switch (phase) {
68
+ case "idle":
69
+ if (role === "client") legal.add("client_setup");
70
+ break;
71
+ case "setup":
72
+ if (role === "server") legal.add("server_setup");
73
+ break;
74
+ case "ready": {
75
+ legal.add("goaway");
76
+ const roleMessages = role === "client" ? CLIENT_ONLY_MESSAGES : SERVER_ONLY_MESSAGES;
77
+ for (const msg of roleMessages) {
78
+ if (msg !== "client_setup" && msg !== "server_setup") {
79
+ legal.add(msg);
80
+ }
81
+ }
82
+ break;
83
+ }
84
+ case "draining":
85
+ break;
86
+ }
87
+ return legal;
88
+ }
89
+ function getLegalIncoming(phase, role) {
90
+ const remoteRole = role === "client" ? "server" : "client";
91
+ return getLegalOutgoing(phase, remoteRole);
92
+ }
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+ exports.CONTROL_MESSAGES = CONTROL_MESSAGES; exports.DATA_MESSAGES = DATA_MESSAGES; exports.CLIENT_ONLY_MESSAGES = CLIENT_ONLY_MESSAGES; exports.SERVER_ONLY_MESSAGES = SERVER_ONLY_MESSAGES; exports.getLegalOutgoing = getLegalOutgoing; exports.getLegalIncoming = getLegalIncoming;
@@ -0,0 +1,101 @@
1
+ // src/drafts/draft07/rules.ts
2
+ var CONTROL_MESSAGES = /* @__PURE__ */ new Set([
3
+ "client_setup",
4
+ "server_setup",
5
+ "subscribe",
6
+ "subscribe_ok",
7
+ "subscribe_error",
8
+ "subscribe_done",
9
+ "subscribe_update",
10
+ "unsubscribe",
11
+ "announce",
12
+ "announce_ok",
13
+ "announce_error",
14
+ "announce_cancel",
15
+ "unannounce",
16
+ "track_status_request",
17
+ "track_status",
18
+ "goaway",
19
+ "subscribe_announces",
20
+ "subscribe_announces_ok",
21
+ "subscribe_announces_error",
22
+ "unsubscribe_announces",
23
+ "max_subscribe_id",
24
+ "fetch",
25
+ "fetch_ok",
26
+ "fetch_error",
27
+ "fetch_cancel"
28
+ ]);
29
+ var DATA_MESSAGES = /* @__PURE__ */ new Set([
30
+ "object_stream",
31
+ "object_datagram",
32
+ "stream_header_track",
33
+ "stream_header_group",
34
+ "stream_header_subgroup"
35
+ ]);
36
+ var CLIENT_ONLY_MESSAGES = /* @__PURE__ */ new Set([
37
+ "client_setup",
38
+ "subscribe",
39
+ "subscribe_update",
40
+ "unsubscribe",
41
+ "announce",
42
+ "unannounce",
43
+ "subscribe_announces",
44
+ "unsubscribe_announces",
45
+ "max_subscribe_id",
46
+ "fetch",
47
+ "fetch_cancel",
48
+ "track_status_request"
49
+ ]);
50
+ var SERVER_ONLY_MESSAGES = /* @__PURE__ */ new Set([
51
+ "server_setup",
52
+ "subscribe_ok",
53
+ "subscribe_error",
54
+ "subscribe_done",
55
+ "announce_ok",
56
+ "announce_error",
57
+ "announce_cancel",
58
+ "subscribe_announces_ok",
59
+ "subscribe_announces_error",
60
+ "max_subscribe_id",
61
+ "fetch_ok",
62
+ "fetch_error",
63
+ "track_status"
64
+ ]);
65
+ function getLegalOutgoing(phase, role) {
66
+ const legal = /* @__PURE__ */ new Set();
67
+ switch (phase) {
68
+ case "idle":
69
+ if (role === "client") legal.add("client_setup");
70
+ break;
71
+ case "setup":
72
+ if (role === "server") legal.add("server_setup");
73
+ break;
74
+ case "ready": {
75
+ legal.add("goaway");
76
+ const roleMessages = role === "client" ? CLIENT_ONLY_MESSAGES : SERVER_ONLY_MESSAGES;
77
+ for (const msg of roleMessages) {
78
+ if (msg !== "client_setup" && msg !== "server_setup") {
79
+ legal.add(msg);
80
+ }
81
+ }
82
+ break;
83
+ }
84
+ case "draining":
85
+ break;
86
+ }
87
+ return legal;
88
+ }
89
+ function getLegalIncoming(phase, role) {
90
+ const remoteRole = role === "client" ? "server" : "client";
91
+ return getLegalOutgoing(phase, remoteRole);
92
+ }
93
+
94
+ export {
95
+ CONTROL_MESSAGES,
96
+ DATA_MESSAGES,
97
+ CLIENT_ONLY_MESSAGES,
98
+ SERVER_ONLY_MESSAGES,
99
+ getLegalOutgoing,
100
+ getLegalIncoming
101
+ };