@floegence/flowersec-core 0.27.0 → 2.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 (268) hide show
  1. package/README.md +91 -22
  2. package/THIRD_PARTY_NOTICES.md +141 -0
  3. package/dist/browser/connectSession.d.ts +13 -0
  4. package/dist/browser/connectSession.js +40 -0
  5. package/dist/browser/index.d.ts +3 -10
  6. package/dist/browser/index.js +2 -5
  7. package/dist/browser/runtimeCapability.d.ts +13 -0
  8. package/dist/browser/runtimeCapability.js +27 -0
  9. package/dist/browser/sessionRuntime.d.ts +2 -0
  10. package/dist/browser/sessionRuntime.js +21 -0
  11. package/dist/browser/webTransportClient.d.ts +8 -0
  12. package/dist/browser/webTransportClient.js +55 -0
  13. package/dist/cli.d.ts +2 -0
  14. package/dist/cli.js +126 -0
  15. package/dist/cliSpendMarker.d.ts +1 -0
  16. package/dist/cliSpendMarker.js +22 -0
  17. package/dist/connectionController.d.ts +54 -0
  18. package/dist/connectionController.js +438 -0
  19. package/dist/connector/adapters/webSocketCandidate.d.ts +7 -0
  20. package/dist/connector/adapters/webSocketCandidate.js +116 -0
  21. package/dist/connector/adapters/webTransportCandidate.d.ts +5 -0
  22. package/dist/connector/adapters/webTransportCandidate.js +73 -0
  23. package/dist/connector/admissionCommit.d.ts +31 -0
  24. package/dist/connector/admissionCommit.js +239 -0
  25. package/dist/connector/sessionAcceptor.d.ts +16 -0
  26. package/dist/connector/sessionAcceptor.js +114 -0
  27. package/dist/connector/sessionConfig.d.ts +3 -0
  28. package/dist/connector/sessionConfig.js +30 -0
  29. package/dist/connector/sessionConnector.d.ts +45 -0
  30. package/dist/connector/sessionConnector.js +603 -0
  31. package/dist/defaults.d.ts +7 -7
  32. package/dist/defaults.js +7 -7
  33. package/dist/facade.d.ts +12 -27
  34. package/dist/facade.js +6 -24
  35. package/dist/node/connectSession.d.ts +21 -0
  36. package/dist/node/connectSession.js +62 -0
  37. package/dist/node/index.d.ts +3 -11
  38. package/dist/node/index.js +2 -8
  39. package/dist/node/runtimeCapability.d.ts +7 -0
  40. package/dist/node/runtimeCapability.js +10 -0
  41. package/dist/node/sessionRuntime.d.ts +2 -0
  42. package/dist/node/sessionRuntime.js +13 -0
  43. package/dist/node/webTransportClient.d.ts +9 -0
  44. package/dist/node/webTransportClient.js +56 -0
  45. package/dist/node/webTransportServer.d.ts +22 -0
  46. package/dist/node/webTransportServer.js +100 -0
  47. package/dist/node/wsFactory.d.ts +3 -1
  48. package/dist/node/wsFactory.js +4 -3
  49. package/dist/proxy/controllerGuard.d.ts +4 -4
  50. package/dist/proxy/controllerGuard.js +83 -177
  51. package/dist/proxy/disableUpstreamServiceWorkerRegister.d.ts +3 -1
  52. package/dist/proxy/disableUpstreamServiceWorkerRegister.js +19 -17
  53. package/dist/proxy/index.d.ts +16 -15
  54. package/dist/proxy/index.js +8 -14
  55. package/dist/proxy/integration.d.ts +23 -71
  56. package/dist/proxy/integration.js +37 -340
  57. package/dist/proxy/registerServiceWorker.d.ts +1 -10
  58. package/dist/proxy/registerServiceWorker.js +43 -105
  59. package/dist/proxy/runtime.d.ts +3 -63
  60. package/dist/proxy/runtime.js +349 -462
  61. package/dist/proxy/scope.d.ts +6 -0
  62. package/dist/proxy/scope.js +131 -0
  63. package/dist/proxy/serviceWorker.d.ts +5 -16
  64. package/dist/proxy/serviceWorker.js +230 -617
  65. package/dist/proxy/stream.d.ts +9 -0
  66. package/dist/proxy/stream.js +40 -0
  67. package/dist/proxy/types.d.ts +78 -30
  68. package/dist/proxy/windowBridge.d.ts +61 -0
  69. package/dist/proxy/windowBridge.js +344 -0
  70. package/dist/proxy/wsPatch.d.ts +4 -14
  71. package/dist/proxy/wsPatch.js +173 -268
  72. package/dist/public/artifact.d.ts +11 -0
  73. package/dist/public/artifact.js +44 -0
  74. package/dist/public/artifactLease.d.ts +10 -0
  75. package/dist/public/artifactLease.js +48 -0
  76. package/dist/public/connectError.d.ts +6 -0
  77. package/dist/public/connectError.js +9 -0
  78. package/dist/public/contract.d.ts +83 -0
  79. package/dist/public/contract.js +17 -0
  80. package/dist/public/streamMetadata.d.ts +10 -0
  81. package/dist/public/streamMetadata.js +40 -0
  82. package/dist/rpc/caller.d.ts +1 -1
  83. package/dist/rpc/client.d.ts +1 -4
  84. package/dist/rpc/client.js +0 -21
  85. package/dist/rpc/rpcProxy.d.ts +1 -1
  86. package/dist/rpc/server.d.ts +1 -1
  87. package/dist/rpc/validate.d.ts +1 -1
  88. package/dist/rpc/wire.d.ts +15 -0
  89. package/dist/runtime/errors.d.ts +6 -0
  90. package/dist/runtime/errors.js +10 -0
  91. package/dist/transport/webSocketAdapter.d.ts +24 -0
  92. package/dist/transport/webSocketAdapter.js +234 -0
  93. package/dist/transport/webTransportAdapter.d.ts +27 -0
  94. package/dist/transport/webTransportAdapter.js +519 -0
  95. package/dist/utils/errors.d.ts +2 -20
  96. package/dist/utils/errors.js +73 -20
  97. package/dist/v2/admissionError.d.ts +4 -0
  98. package/dist/v2/admissionError.js +8 -0
  99. package/dist/v2/artifact.d.ts +128 -0
  100. package/dist/v2/artifact.js +1126 -0
  101. package/dist/v2/artifactLease.d.ts +1 -0
  102. package/dist/v2/artifactLease.js +7 -0
  103. package/dist/v2/capability.d.ts +29 -0
  104. package/dist/v2/capability.js +190 -0
  105. package/dist/v2/carrier.d.ts +79 -0
  106. package/dist/v2/carrier.js +405 -0
  107. package/dist/v2/contract.d.ts +37 -0
  108. package/dist/v2/contract.js +1 -0
  109. package/dist/v2/handshake.d.ts +80 -0
  110. package/dist/v2/handshake.js +470 -0
  111. package/dist/v2/opaqueArtifact.d.ts +1 -0
  112. package/dist/v2/opaqueArtifact.js +2 -0
  113. package/dist/v2/protocol.d.ts +99 -0
  114. package/dist/v2/protocol.js +739 -0
  115. package/dist/v2/publicSession.d.ts +1 -0
  116. package/dist/v2/publicSession.js +179 -0
  117. package/dist/v2/retryDisposition.d.ts +16 -0
  118. package/dist/v2/retryDisposition.js +30 -0
  119. package/dist/v2/session.d.ts +277 -0
  120. package/dist/v2/session.js +1879 -0
  121. package/dist/v2/streamLifetimeLedger.d.ts +31 -0
  122. package/dist/v2/streamLifetimeLedger.js +131 -0
  123. package/dist/v2/streamMetadata.d.ts +1 -0
  124. package/dist/v2/streamMetadata.js +7 -0
  125. package/dist/v2/unreliableMessage.d.ts +43 -0
  126. package/dist/v2/unreliableMessage.js +252 -0
  127. package/dist/vendor/tr46.d.ts +10 -0
  128. package/dist/vendor/tr46.js +501 -0
  129. package/dist/ws-client/binaryTransport.d.ts +0 -3
  130. package/dist/ws-client/binaryTransport.js +15 -39
  131. package/dist/yamux/errors.d.ts +0 -4
  132. package/dist/yamux/errors.js +0 -9
  133. package/dist/yamux/session.d.ts +0 -5
  134. package/dist/yamux/session.js +4 -70
  135. package/dist/yamux/stream.d.ts +1 -0
  136. package/dist/yamux/stream.js +4 -0
  137. package/package.json +29 -81
  138. package/sbom/cyclonedx.json +2764 -0
  139. package/sbom/spdx.json +1947 -0
  140. package/YAMUX_ALIGNMENT.md +0 -127
  141. package/dist/_examples/flowersec/demo/v1.facade.gen.d.ts +0 -12
  142. package/dist/_examples/flowersec/demo/v1.facade.gen.js +0 -15
  143. package/dist/_examples/flowersec/demo/v1.gen.d.ts +0 -16
  144. package/dist/_examples/flowersec/demo/v1.gen.js +0 -86
  145. package/dist/_examples/flowersec/demo/v1.rpc.gen.d.ts +0 -11
  146. package/dist/_examples/flowersec/demo/v1.rpc.gen.js +0 -22
  147. package/dist/browser/connect.d.ts +0 -13
  148. package/dist/browser/connect.js +0 -31
  149. package/dist/browser/reconnectConfig.d.ts +0 -15
  150. package/dist/browser/reconnectConfig.js +0 -20
  151. package/dist/client-connect/common.d.ts +0 -26
  152. package/dist/client-connect/common.js +0 -167
  153. package/dist/client-connect/connectCore.d.ts +0 -61
  154. package/dist/client-connect/connectCore.js +0 -572
  155. package/dist/client-connect/contract.d.ts +0 -8
  156. package/dist/client-connect/contract.js +0 -51
  157. package/dist/client-connect/termination.d.ts +0 -6
  158. package/dist/client-connect/termination.js +0 -7
  159. package/dist/client-connect/transportSecurity.d.ts +0 -27
  160. package/dist/client-connect/transportSecurity.js +0 -199
  161. package/dist/client-connect/tunnelAttachCloseReason.d.ts +0 -3
  162. package/dist/client-connect/tunnelAttachCloseReason.js +0 -23
  163. package/dist/client.d.ts +0 -23
  164. package/dist/connect/artifact.d.ts +0 -36
  165. package/dist/connect/artifact.js +0 -213
  166. package/dist/connect/resolveArtifact.d.ts +0 -22
  167. package/dist/connect/resolveArtifact.js +0 -87
  168. package/dist/controlplane/channelInit.d.ts +0 -27
  169. package/dist/controlplane/channelInit.js +0 -116
  170. package/dist/controlplane/http.d.ts +0 -16
  171. package/dist/controlplane/http.js +0 -59
  172. package/dist/controlplane/index.d.ts +0 -6
  173. package/dist/controlplane/index.js +0 -5
  174. package/dist/controlplane/issuer.d.ts +0 -18
  175. package/dist/controlplane/issuer.js +0 -113
  176. package/dist/controlplane/request.d.ts +0 -51
  177. package/dist/controlplane/request.js +0 -273
  178. package/dist/controlplane/token.d.ts +0 -33
  179. package/dist/controlplane/token.js +0 -119
  180. package/dist/direct-client/connect.d.ts +0 -9
  181. package/dist/direct-client/connect.js +0 -90
  182. package/dist/direct-client/index.d.ts +0 -1
  183. package/dist/direct-client/index.js +0 -1
  184. package/dist/e2ee/constants.d.ts +0 -9
  185. package/dist/e2ee/constants.js +0 -18
  186. package/dist/e2ee/errors.d.ts +0 -5
  187. package/dist/e2ee/errors.js +0 -8
  188. package/dist/e2ee/framing.d.ts +0 -12
  189. package/dist/e2ee/framing.js +0 -57
  190. package/dist/e2ee/handshake.d.ts +0 -88
  191. package/dist/e2ee/handshake.js +0 -353
  192. package/dist/e2ee/index.d.ts +0 -7
  193. package/dist/e2ee/index.js +0 -7
  194. package/dist/e2ee/kdf.d.ts +0 -15
  195. package/dist/e2ee/kdf.js +0 -39
  196. package/dist/e2ee/record.d.ts +0 -11
  197. package/dist/e2ee/record.js +0 -80
  198. package/dist/e2ee/secureChannel.d.ts +0 -93
  199. package/dist/e2ee/secureChannel.js +0 -342
  200. package/dist/e2ee/transcript.d.ts +0 -23
  201. package/dist/e2ee/transcript.js +0 -31
  202. package/dist/endpoint/index.d.ts +0 -84
  203. package/dist/endpoint/index.js +0 -557
  204. package/dist/endpoint/node.d.ts +0 -9
  205. package/dist/endpoint/node.js +0 -51
  206. package/dist/gen/flowersec/controlplane/v1.gen.d.ts +0 -36
  207. package/dist/gen/flowersec/controlplane/v1.gen.js +0 -135
  208. package/dist/gen/flowersec/direct/v1.gen.d.ts +0 -21
  209. package/dist/gen/flowersec/direct/v1.gen.js +0 -101
  210. package/dist/gen/flowersec/e2ee/v1.gen.d.ts +0 -68
  211. package/dist/gen/flowersec/e2ee/v1.gen.js +0 -194
  212. package/dist/gen/flowersec/rpc/v1.gen.d.ts +0 -30
  213. package/dist/gen/flowersec/rpc/v1.gen.js +0 -107
  214. package/dist/gen/flowersec/tunnel/v1.gen.d.ts +0 -23
  215. package/dist/gen/flowersec/tunnel/v1.gen.js +0 -104
  216. package/dist/index.d.ts +0 -22
  217. package/dist/index.js +0 -22
  218. package/dist/node/connect.d.ts +0 -10
  219. package/dist/node/connect.js +0 -29
  220. package/dist/node/reconnectConfig.d.ts +0 -16
  221. package/dist/node/reconnectConfig.js +0 -20
  222. package/dist/observability/index.d.ts +0 -1
  223. package/dist/observability/index.js +0 -1
  224. package/dist/observability/observer.d.ts +0 -52
  225. package/dist/observability/observer.js +0 -314
  226. package/dist/proxy/appWindow.d.ts +0 -37
  227. package/dist/proxy/appWindow.js +0 -273
  228. package/dist/proxy/bootstrap.d.ts +0 -35
  229. package/dist/proxy/bootstrap.js +0 -119
  230. package/dist/proxy/constants.d.ts +0 -7
  231. package/dist/proxy/constants.js +0 -8
  232. package/dist/proxy/controllerWindow.d.ts +0 -12
  233. package/dist/proxy/controllerWindow.js +0 -384
  234. package/dist/proxy/cookieJar.d.ts +0 -7
  235. package/dist/proxy/cookieJar.js +0 -136
  236. package/dist/proxy/headerPolicy.d.ts +0 -14
  237. package/dist/proxy/headerPolicy.js +0 -134
  238. package/dist/proxy/portStream.d.ts +0 -5
  239. package/dist/proxy/portStream.js +0 -256
  240. package/dist/proxy/preset.d.ts +0 -29
  241. package/dist/proxy/preset.js +0 -111
  242. package/dist/proxy/runtimeScope.d.ts +0 -57
  243. package/dist/proxy/runtimeScope.js +0 -218
  244. package/dist/proxy/server.d.ts +0 -28
  245. package/dist/proxy/server.js +0 -833
  246. package/dist/proxy/windowBridgeProtocol.d.ts +0 -65
  247. package/dist/proxy/windowBridgeProtocol.js +0 -11
  248. package/dist/reconnect/artifactControlplane.d.ts +0 -16
  249. package/dist/reconnect/artifactControlplane.js +0 -35
  250. package/dist/reconnect/index.d.ts +0 -36
  251. package/dist/reconnect/index.js +0 -388
  252. package/dist/rpc-proxy/index.d.ts +0 -1
  253. package/dist/rpc-proxy/index.js +0 -1
  254. package/dist/rpc-proxy/rpcProxy.d.ts +0 -1
  255. package/dist/rpc-proxy/rpcProxy.js +0 -1
  256. package/dist/streamhello/index.d.ts +0 -1
  257. package/dist/streamhello/index.js +0 -1
  258. package/dist/streamhello/streamHello.d.ts +0 -3
  259. package/dist/streamhello/streamHello.js +0 -13
  260. package/dist/streamio/index.d.ts +0 -32
  261. package/dist/streamio/index.js +0 -87
  262. package/dist/tunnel-client/connect.d.ts +0 -9
  263. package/dist/tunnel-client/connect.js +0 -147
  264. package/dist/tunnel-client/index.d.ts +0 -1
  265. package/dist/tunnel-client/index.js +0 -1
  266. package/dist/ws/index.d.ts +0 -1
  267. package/dist/ws/index.js +0 -1
  268. /package/dist/{client.js → rpc/wire.js} +0 -0
@@ -1,135 +0,0 @@
1
- // Code generated by idlgen. DO NOT EDIT.
2
- /** Endpoint role for tunnel attach. */
3
- export var Role;
4
- (function (Role) {
5
- /** Client endpoint. */
6
- Role[Role["Role_client"] = 1] = "Role_client";
7
- /** Server endpoint. */
8
- Role[Role["Role_server"] = 2] = "Role_server";
9
- })(Role || (Role = {}));
10
- /** E2EE cipher suite identifier. */
11
- export var Suite;
12
- (function (Suite) {
13
- /** P-256 + HKDF-SHA256 + AES-256-GCM. */
14
- Suite[Suite["Suite_P256_HKDF_SHA256_AES_256_GCM"] = 2] = "Suite_P256_HKDF_SHA256_AES_256_GCM";
15
- /** X25519 + HKDF-SHA256 + AES-256-GCM. */
16
- Suite[Suite["Suite_X25519_HKDF_SHA256_AES_256_GCM"] = 1] = "Suite_X25519_HKDF_SHA256_AES_256_GCM";
17
- })(Suite || (Suite = {}));
18
- function isRecord(v) {
19
- return typeof v === "object" && v != null && !Array.isArray(v);
20
- }
21
- function assertString(name, v) {
22
- if (typeof v !== "string")
23
- throw new Error(`bad ${name}`);
24
- return v;
25
- }
26
- function assertBoolean(name, v) {
27
- if (typeof v !== "boolean")
28
- throw new Error(`bad ${name}`);
29
- return v;
30
- }
31
- function assertSafeInt(name, v) {
32
- if (typeof v !== "number" || !Number.isSafeInteger(v))
33
- throw new Error(`bad ${name}`);
34
- return v;
35
- }
36
- function assertU32(name, v) {
37
- const n = assertSafeInt(name, v);
38
- if (n < 0 || n > 0xffffffff)
39
- throw new Error(`bad ${name}`);
40
- return n;
41
- }
42
- function assertU16(name, v) {
43
- const n = assertU32(name, v);
44
- if (n > 0xffff)
45
- throw new Error(`bad ${name}`);
46
- return n;
47
- }
48
- function assertU8(name, v) {
49
- const n = assertU32(name, v);
50
- if (n > 0xff)
51
- throw new Error(`bad ${name}`);
52
- return n;
53
- }
54
- function assertU64(name, v) {
55
- const n = assertSafeInt(name, v);
56
- if (n < 0)
57
- throw new Error(`bad ${name}`);
58
- return n;
59
- }
60
- function assertI32(name, v) {
61
- const n = assertSafeInt(name, v);
62
- if (n < -2147483648 || n > 2147483647)
63
- throw new Error(`bad ${name}`);
64
- return n;
65
- }
66
- function assertI64(name, v) {
67
- return assertSafeInt(name, v);
68
- }
69
- function assertStringMap(name, v) {
70
- if (!isRecord(v))
71
- throw new Error(`bad ${name}`);
72
- for (const [k, vv] of Object.entries(v)) {
73
- void k;
74
- if (typeof vv !== "string")
75
- throw new Error(`bad ${name}`);
76
- }
77
- return v;
78
- }
79
- const _RoleValues = new Set([
80
- 1,
81
- 2,
82
- ]);
83
- function assertRole(name, v) {
84
- const n = assertSafeInt(name, v);
85
- if (!_RoleValues.has(n))
86
- throw new Error(`bad ${name}`);
87
- return n;
88
- }
89
- const _SuiteValues = new Set([
90
- 2,
91
- 1,
92
- ]);
93
- function assertSuite(name, v) {
94
- const n = assertSafeInt(name, v);
95
- if (!_SuiteValues.has(n))
96
- throw new Error(`bad ${name}`);
97
- return n;
98
- }
99
- export function assertChannelInitGrant(v) {
100
- if (!isRecord(v))
101
- throw new Error("bad ChannelInitGrant");
102
- const o = v;
103
- if (o["tunnel_url"] === undefined)
104
- throw new Error("bad ChannelInitGrant.tunnel_url");
105
- assertString("ChannelInitGrant.tunnel_url", o["tunnel_url"]);
106
- if (o["channel_id"] === undefined)
107
- throw new Error("bad ChannelInitGrant.channel_id");
108
- assertString("ChannelInitGrant.channel_id", o["channel_id"]);
109
- if (o["channel_init_expire_at_unix_s"] === undefined)
110
- throw new Error("bad ChannelInitGrant.channel_init_expire_at_unix_s");
111
- assertI64("ChannelInitGrant.channel_init_expire_at_unix_s", o["channel_init_expire_at_unix_s"]);
112
- if (o["idle_timeout_seconds"] === undefined)
113
- throw new Error("bad ChannelInitGrant.idle_timeout_seconds");
114
- assertI32("ChannelInitGrant.idle_timeout_seconds", o["idle_timeout_seconds"]);
115
- if (o["role"] === undefined)
116
- throw new Error("bad ChannelInitGrant.role");
117
- assertRole("ChannelInitGrant.role", o["role"]);
118
- if (o["token"] === undefined)
119
- throw new Error("bad ChannelInitGrant.token");
120
- assertString("ChannelInitGrant.token", o["token"]);
121
- if (o["e2ee_psk_b64u"] === undefined)
122
- throw new Error("bad ChannelInitGrant.e2ee_psk_b64u");
123
- assertString("ChannelInitGrant.e2ee_psk_b64u", o["e2ee_psk_b64u"]);
124
- if (o["allowed_suites"] === undefined)
125
- throw new Error("bad ChannelInitGrant.allowed_suites");
126
- if (!Array.isArray(o["allowed_suites"]))
127
- throw new Error("bad ChannelInitGrant.allowed_suites");
128
- for (let i = 0; i < o["allowed_suites"].length; i++) {
129
- assertSuite("ChannelInitGrant.allowed_suites[]", o["allowed_suites"][i]);
130
- }
131
- if (o["default_suite"] === undefined)
132
- throw new Error("bad ChannelInitGrant.default_suite");
133
- assertSuite("ChannelInitGrant.default_suite", o["default_suite"]);
134
- return o;
135
- }
@@ -1,21 +0,0 @@
1
- /** E2EE cipher suite identifier. */
2
- export declare enum Suite {
3
- /** P-256 + HKDF-SHA256 + AES-256-GCM. */
4
- Suite_P256_HKDF_SHA256_AES_256_GCM = 2,
5
- /** X25519 + HKDF-SHA256 + AES-256-GCM. */
6
- Suite_X25519_HKDF_SHA256_AES_256_GCM = 1
7
- }
8
- /** Connection info for direct (no tunnel) WebSocket + E2EE sessions. */
9
- export interface DirectConnectInfo {
10
- /** WebSocket URL of the direct server. */
11
- ws_url: string;
12
- /** Channel identifier. */
13
- channel_id: string;
14
- /** Base64url-encoded 32-byte PSK. */
15
- e2ee_psk_b64u: string;
16
- /** Unix timestamp when the handshake init window expires. */
17
- channel_init_expire_at_unix_s: number;
18
- /** Default E2EE suite identifier. */
19
- default_suite: Suite;
20
- }
21
- export declare function assertDirectConnectInfo(v: unknown): DirectConnectInfo;
@@ -1,101 +0,0 @@
1
- // Code generated by idlgen. DO NOT EDIT.
2
- /** E2EE cipher suite identifier. */
3
- export var Suite;
4
- (function (Suite) {
5
- /** P-256 + HKDF-SHA256 + AES-256-GCM. */
6
- Suite[Suite["Suite_P256_HKDF_SHA256_AES_256_GCM"] = 2] = "Suite_P256_HKDF_SHA256_AES_256_GCM";
7
- /** X25519 + HKDF-SHA256 + AES-256-GCM. */
8
- Suite[Suite["Suite_X25519_HKDF_SHA256_AES_256_GCM"] = 1] = "Suite_X25519_HKDF_SHA256_AES_256_GCM";
9
- })(Suite || (Suite = {}));
10
- function isRecord(v) {
11
- return typeof v === "object" && v != null && !Array.isArray(v);
12
- }
13
- function assertString(name, v) {
14
- if (typeof v !== "string")
15
- throw new Error(`bad ${name}`);
16
- return v;
17
- }
18
- function assertBoolean(name, v) {
19
- if (typeof v !== "boolean")
20
- throw new Error(`bad ${name}`);
21
- return v;
22
- }
23
- function assertSafeInt(name, v) {
24
- if (typeof v !== "number" || !Number.isSafeInteger(v))
25
- throw new Error(`bad ${name}`);
26
- return v;
27
- }
28
- function assertU32(name, v) {
29
- const n = assertSafeInt(name, v);
30
- if (n < 0 || n > 0xffffffff)
31
- throw new Error(`bad ${name}`);
32
- return n;
33
- }
34
- function assertU16(name, v) {
35
- const n = assertU32(name, v);
36
- if (n > 0xffff)
37
- throw new Error(`bad ${name}`);
38
- return n;
39
- }
40
- function assertU8(name, v) {
41
- const n = assertU32(name, v);
42
- if (n > 0xff)
43
- throw new Error(`bad ${name}`);
44
- return n;
45
- }
46
- function assertU64(name, v) {
47
- const n = assertSafeInt(name, v);
48
- if (n < 0)
49
- throw new Error(`bad ${name}`);
50
- return n;
51
- }
52
- function assertI32(name, v) {
53
- const n = assertSafeInt(name, v);
54
- if (n < -2147483648 || n > 2147483647)
55
- throw new Error(`bad ${name}`);
56
- return n;
57
- }
58
- function assertI64(name, v) {
59
- return assertSafeInt(name, v);
60
- }
61
- function assertStringMap(name, v) {
62
- if (!isRecord(v))
63
- throw new Error(`bad ${name}`);
64
- for (const [k, vv] of Object.entries(v)) {
65
- void k;
66
- if (typeof vv !== "string")
67
- throw new Error(`bad ${name}`);
68
- }
69
- return v;
70
- }
71
- const _SuiteValues = new Set([
72
- 2,
73
- 1,
74
- ]);
75
- function assertSuite(name, v) {
76
- const n = assertSafeInt(name, v);
77
- if (!_SuiteValues.has(n))
78
- throw new Error(`bad ${name}`);
79
- return n;
80
- }
81
- export function assertDirectConnectInfo(v) {
82
- if (!isRecord(v))
83
- throw new Error("bad DirectConnectInfo");
84
- const o = v;
85
- if (o["ws_url"] === undefined)
86
- throw new Error("bad DirectConnectInfo.ws_url");
87
- assertString("DirectConnectInfo.ws_url", o["ws_url"]);
88
- if (o["channel_id"] === undefined)
89
- throw new Error("bad DirectConnectInfo.channel_id");
90
- assertString("DirectConnectInfo.channel_id", o["channel_id"]);
91
- if (o["e2ee_psk_b64u"] === undefined)
92
- throw new Error("bad DirectConnectInfo.e2ee_psk_b64u");
93
- assertString("DirectConnectInfo.e2ee_psk_b64u", o["e2ee_psk_b64u"]);
94
- if (o["channel_init_expire_at_unix_s"] === undefined)
95
- throw new Error("bad DirectConnectInfo.channel_init_expire_at_unix_s");
96
- assertI64("DirectConnectInfo.channel_init_expire_at_unix_s", o["channel_init_expire_at_unix_s"]);
97
- if (o["default_suite"] === undefined)
98
- throw new Error("bad DirectConnectInfo.default_suite");
99
- assertSuite("DirectConnectInfo.default_suite", o["default_suite"]);
100
- return o;
101
- }
@@ -1,68 +0,0 @@
1
- /** Feature bitset advertised during handshake. */
2
- export declare enum E2EEFeatureBits {
3
- /** Supports rekey control records. */
4
- E2EEFeatureBits_rekey = 1
5
- }
6
- /** Record type indicator for encrypted frames. */
7
- export declare enum RecordFlags {
8
- /** Application data record. */
9
- RecordFlags_app = 0,
10
- /** Ping record. */
11
- RecordFlags_ping = 1,
12
- /** Rekey control record. */
13
- RecordFlags_rekey = 2
14
- }
15
- /** Endpoint role for the E2EE handshake. */
16
- export declare enum Role {
17
- /** Client endpoint. */
18
- Role_client = 1,
19
- /** Server endpoint. */
20
- Role_server = 2
21
- }
22
- /** E2EE cipher suite identifier. */
23
- export declare enum Suite {
24
- /** P-256 + HKDF-SHA256 + AES-256-GCM. */
25
- Suite_P256_HKDF_SHA256_AES_256_GCM = 2,
26
- /** X25519 + HKDF-SHA256 + AES-256-GCM. */
27
- Suite_X25519_HKDF_SHA256_AES_256_GCM = 1
28
- }
29
- /** Client handshake ack payload. */
30
- export interface E2EE_Ack {
31
- /** Handshake identifier being acknowledged. */
32
- handshake_id: string;
33
- /** Client Unix timestamp used for the auth tag. */
34
- timestamp_unix_s: number;
35
- /** Base64url-encoded auth tag. */
36
- auth_tag_b64u: string;
37
- }
38
- /** Client handshake init payload. */
39
- export interface E2EE_Init {
40
- /** Channel identifier. */
41
- channel_id: string;
42
- /** Role of the sender (client). */
43
- role: Role;
44
- /** Protocol version. */
45
- version: number;
46
- /** Requested cipher suite. */
47
- suite: Suite;
48
- /** Base64url-encoded client ephemeral public key. */
49
- client_eph_pub_b64u: string;
50
- /** Base64url-encoded client nonce (32 bytes). */
51
- nonce_c_b64u: string;
52
- /** Client feature bits. */
53
- client_features: number;
54
- }
55
- /** Server handshake response payload. */
56
- export interface E2EE_Resp {
57
- /** Handshake identifier for retries. */
58
- handshake_id: string;
59
- /** Base64url-encoded server ephemeral public key. */
60
- server_eph_pub_b64u: string;
61
- /** Base64url-encoded server nonce (32 bytes). */
62
- nonce_s_b64u: string;
63
- /** Server feature bits. */
64
- server_features: number;
65
- }
66
- export declare function assertE2EE_Ack(v: unknown): E2EE_Ack;
67
- export declare function assertE2EE_Init(v: unknown): E2EE_Init;
68
- export declare function assertE2EE_Resp(v: unknown): E2EE_Resp;
@@ -1,194 +0,0 @@
1
- // Code generated by idlgen. DO NOT EDIT.
2
- /** Feature bitset advertised during handshake. */
3
- export var E2EEFeatureBits;
4
- (function (E2EEFeatureBits) {
5
- /** Supports rekey control records. */
6
- E2EEFeatureBits[E2EEFeatureBits["E2EEFeatureBits_rekey"] = 1] = "E2EEFeatureBits_rekey";
7
- })(E2EEFeatureBits || (E2EEFeatureBits = {}));
8
- /** Record type indicator for encrypted frames. */
9
- export var RecordFlags;
10
- (function (RecordFlags) {
11
- /** Application data record. */
12
- RecordFlags[RecordFlags["RecordFlags_app"] = 0] = "RecordFlags_app";
13
- /** Ping record. */
14
- RecordFlags[RecordFlags["RecordFlags_ping"] = 1] = "RecordFlags_ping";
15
- /** Rekey control record. */
16
- RecordFlags[RecordFlags["RecordFlags_rekey"] = 2] = "RecordFlags_rekey";
17
- })(RecordFlags || (RecordFlags = {}));
18
- /** Endpoint role for the E2EE handshake. */
19
- export var Role;
20
- (function (Role) {
21
- /** Client endpoint. */
22
- Role[Role["Role_client"] = 1] = "Role_client";
23
- /** Server endpoint. */
24
- Role[Role["Role_server"] = 2] = "Role_server";
25
- })(Role || (Role = {}));
26
- /** E2EE cipher suite identifier. */
27
- export var Suite;
28
- (function (Suite) {
29
- /** P-256 + HKDF-SHA256 + AES-256-GCM. */
30
- Suite[Suite["Suite_P256_HKDF_SHA256_AES_256_GCM"] = 2] = "Suite_P256_HKDF_SHA256_AES_256_GCM";
31
- /** X25519 + HKDF-SHA256 + AES-256-GCM. */
32
- Suite[Suite["Suite_X25519_HKDF_SHA256_AES_256_GCM"] = 1] = "Suite_X25519_HKDF_SHA256_AES_256_GCM";
33
- })(Suite || (Suite = {}));
34
- function isRecord(v) {
35
- return typeof v === "object" && v != null && !Array.isArray(v);
36
- }
37
- function assertString(name, v) {
38
- if (typeof v !== "string")
39
- throw new Error(`bad ${name}`);
40
- return v;
41
- }
42
- function assertBoolean(name, v) {
43
- if (typeof v !== "boolean")
44
- throw new Error(`bad ${name}`);
45
- return v;
46
- }
47
- function assertSafeInt(name, v) {
48
- if (typeof v !== "number" || !Number.isSafeInteger(v))
49
- throw new Error(`bad ${name}`);
50
- return v;
51
- }
52
- function assertU32(name, v) {
53
- const n = assertSafeInt(name, v);
54
- if (n < 0 || n > 0xffffffff)
55
- throw new Error(`bad ${name}`);
56
- return n;
57
- }
58
- function assertU16(name, v) {
59
- const n = assertU32(name, v);
60
- if (n > 0xffff)
61
- throw new Error(`bad ${name}`);
62
- return n;
63
- }
64
- function assertU8(name, v) {
65
- const n = assertU32(name, v);
66
- if (n > 0xff)
67
- throw new Error(`bad ${name}`);
68
- return n;
69
- }
70
- function assertU64(name, v) {
71
- const n = assertSafeInt(name, v);
72
- if (n < 0)
73
- throw new Error(`bad ${name}`);
74
- return n;
75
- }
76
- function assertI32(name, v) {
77
- const n = assertSafeInt(name, v);
78
- if (n < -2147483648 || n > 2147483647)
79
- throw new Error(`bad ${name}`);
80
- return n;
81
- }
82
- function assertI64(name, v) {
83
- return assertSafeInt(name, v);
84
- }
85
- function assertStringMap(name, v) {
86
- if (!isRecord(v))
87
- throw new Error(`bad ${name}`);
88
- for (const [k, vv] of Object.entries(v)) {
89
- void k;
90
- if (typeof vv !== "string")
91
- throw new Error(`bad ${name}`);
92
- }
93
- return v;
94
- }
95
- const _E2EEFeatureBitsValues = new Set([
96
- 1,
97
- ]);
98
- function assertE2EEFeatureBits(name, v) {
99
- const n = assertSafeInt(name, v);
100
- if (!_E2EEFeatureBitsValues.has(n))
101
- throw new Error(`bad ${name}`);
102
- return n;
103
- }
104
- const _RecordFlagsValues = new Set([
105
- 0,
106
- 1,
107
- 2,
108
- ]);
109
- function assertRecordFlags(name, v) {
110
- const n = assertSafeInt(name, v);
111
- if (!_RecordFlagsValues.has(n))
112
- throw new Error(`bad ${name}`);
113
- return n;
114
- }
115
- const _RoleValues = new Set([
116
- 1,
117
- 2,
118
- ]);
119
- function assertRole(name, v) {
120
- const n = assertSafeInt(name, v);
121
- if (!_RoleValues.has(n))
122
- throw new Error(`bad ${name}`);
123
- return n;
124
- }
125
- const _SuiteValues = new Set([
126
- 2,
127
- 1,
128
- ]);
129
- function assertSuite(name, v) {
130
- const n = assertSafeInt(name, v);
131
- if (!_SuiteValues.has(n))
132
- throw new Error(`bad ${name}`);
133
- return n;
134
- }
135
- export function assertE2EE_Ack(v) {
136
- if (!isRecord(v))
137
- throw new Error("bad E2EE_Ack");
138
- const o = v;
139
- if (o["handshake_id"] === undefined)
140
- throw new Error("bad E2EE_Ack.handshake_id");
141
- assertString("E2EE_Ack.handshake_id", o["handshake_id"]);
142
- if (o["timestamp_unix_s"] === undefined)
143
- throw new Error("bad E2EE_Ack.timestamp_unix_s");
144
- assertU64("E2EE_Ack.timestamp_unix_s", o["timestamp_unix_s"]);
145
- if (o["auth_tag_b64u"] === undefined)
146
- throw new Error("bad E2EE_Ack.auth_tag_b64u");
147
- assertString("E2EE_Ack.auth_tag_b64u", o["auth_tag_b64u"]);
148
- return o;
149
- }
150
- export function assertE2EE_Init(v) {
151
- if (!isRecord(v))
152
- throw new Error("bad E2EE_Init");
153
- const o = v;
154
- if (o["channel_id"] === undefined)
155
- throw new Error("bad E2EE_Init.channel_id");
156
- assertString("E2EE_Init.channel_id", o["channel_id"]);
157
- if (o["role"] === undefined)
158
- throw new Error("bad E2EE_Init.role");
159
- assertRole("E2EE_Init.role", o["role"]);
160
- if (o["version"] === undefined)
161
- throw new Error("bad E2EE_Init.version");
162
- assertU8("E2EE_Init.version", o["version"]);
163
- if (o["suite"] === undefined)
164
- throw new Error("bad E2EE_Init.suite");
165
- assertSuite("E2EE_Init.suite", o["suite"]);
166
- if (o["client_eph_pub_b64u"] === undefined)
167
- throw new Error("bad E2EE_Init.client_eph_pub_b64u");
168
- assertString("E2EE_Init.client_eph_pub_b64u", o["client_eph_pub_b64u"]);
169
- if (o["nonce_c_b64u"] === undefined)
170
- throw new Error("bad E2EE_Init.nonce_c_b64u");
171
- assertString("E2EE_Init.nonce_c_b64u", o["nonce_c_b64u"]);
172
- if (o["client_features"] === undefined)
173
- throw new Error("bad E2EE_Init.client_features");
174
- assertU32("E2EE_Init.client_features", o["client_features"]);
175
- return o;
176
- }
177
- export function assertE2EE_Resp(v) {
178
- if (!isRecord(v))
179
- throw new Error("bad E2EE_Resp");
180
- const o = v;
181
- if (o["handshake_id"] === undefined)
182
- throw new Error("bad E2EE_Resp.handshake_id");
183
- assertString("E2EE_Resp.handshake_id", o["handshake_id"]);
184
- if (o["server_eph_pub_b64u"] === undefined)
185
- throw new Error("bad E2EE_Resp.server_eph_pub_b64u");
186
- assertString("E2EE_Resp.server_eph_pub_b64u", o["server_eph_pub_b64u"]);
187
- if (o["nonce_s_b64u"] === undefined)
188
- throw new Error("bad E2EE_Resp.nonce_s_b64u");
189
- assertString("E2EE_Resp.nonce_s_b64u", o["nonce_s_b64u"]);
190
- if (o["server_features"] === undefined)
191
- throw new Error("bad E2EE_Resp.server_features");
192
- assertU32("E2EE_Resp.server_features", o["server_features"]);
193
- return o;
194
- }
@@ -1,30 +0,0 @@
1
- /** Envelope for RPC requests and responses. */
2
- export interface RpcEnvelope {
3
- /** Type identifier for routing. */
4
- type_id: number;
5
- /** Client-assigned request identifier. */
6
- request_id: number;
7
- /** Request identifier being responded to. */
8
- response_to: number;
9
- /** Request or response payload as JSON. */
10
- payload: unknown;
11
- /** Error payload for failed requests. */
12
- error?: RpcError;
13
- }
14
- /** RPC error payload. */
15
- export interface RpcError {
16
- /** Application or transport error code. */
17
- code: number;
18
- /** Optional human-readable error message. */
19
- message?: string;
20
- }
21
- /** Initial greeting sent on a new stream. */
22
- export interface StreamHello {
23
- /** Stream kind label (e.g. "rpc"). */
24
- kind: string;
25
- /** Stream protocol version. */
26
- v: number;
27
- }
28
- export declare function assertRpcEnvelope(v: unknown): RpcEnvelope;
29
- export declare function assertRpcError(v: unknown): RpcError;
30
- export declare function assertStreamHello(v: unknown): StreamHello;
@@ -1,107 +0,0 @@
1
- // Code generated by idlgen. DO NOT EDIT.
2
- function isRecord(v) {
3
- return typeof v === "object" && v != null && !Array.isArray(v);
4
- }
5
- function assertString(name, v) {
6
- if (typeof v !== "string")
7
- throw new Error(`bad ${name}`);
8
- return v;
9
- }
10
- function assertBoolean(name, v) {
11
- if (typeof v !== "boolean")
12
- throw new Error(`bad ${name}`);
13
- return v;
14
- }
15
- function assertSafeInt(name, v) {
16
- if (typeof v !== "number" || !Number.isSafeInteger(v))
17
- throw new Error(`bad ${name}`);
18
- return v;
19
- }
20
- function assertU32(name, v) {
21
- const n = assertSafeInt(name, v);
22
- if (n < 0 || n > 0xffffffff)
23
- throw new Error(`bad ${name}`);
24
- return n;
25
- }
26
- function assertU16(name, v) {
27
- const n = assertU32(name, v);
28
- if (n > 0xffff)
29
- throw new Error(`bad ${name}`);
30
- return n;
31
- }
32
- function assertU8(name, v) {
33
- const n = assertU32(name, v);
34
- if (n > 0xff)
35
- throw new Error(`bad ${name}`);
36
- return n;
37
- }
38
- function assertU64(name, v) {
39
- const n = assertSafeInt(name, v);
40
- if (n < 0)
41
- throw new Error(`bad ${name}`);
42
- return n;
43
- }
44
- function assertI32(name, v) {
45
- const n = assertSafeInt(name, v);
46
- if (n < -2147483648 || n > 2147483647)
47
- throw new Error(`bad ${name}`);
48
- return n;
49
- }
50
- function assertI64(name, v) {
51
- return assertSafeInt(name, v);
52
- }
53
- function assertStringMap(name, v) {
54
- if (!isRecord(v))
55
- throw new Error(`bad ${name}`);
56
- for (const [k, vv] of Object.entries(v)) {
57
- void k;
58
- if (typeof vv !== "string")
59
- throw new Error(`bad ${name}`);
60
- }
61
- return v;
62
- }
63
- export function assertRpcEnvelope(v) {
64
- if (!isRecord(v))
65
- throw new Error("bad RpcEnvelope");
66
- const o = v;
67
- if (o["type_id"] === undefined)
68
- throw new Error("bad RpcEnvelope.type_id");
69
- assertU32("RpcEnvelope.type_id", o["type_id"]);
70
- if (o["request_id"] === undefined)
71
- throw new Error("bad RpcEnvelope.request_id");
72
- assertU64("RpcEnvelope.request_id", o["request_id"]);
73
- if (o["response_to"] === undefined)
74
- throw new Error("bad RpcEnvelope.response_to");
75
- assertU64("RpcEnvelope.response_to", o["response_to"]);
76
- if (o["payload"] === undefined)
77
- throw new Error("bad RpcEnvelope.payload");
78
- void o["payload"];
79
- if (o["error"] !== undefined) {
80
- assertRpcError(o["error"]);
81
- }
82
- return o;
83
- }
84
- export function assertRpcError(v) {
85
- if (!isRecord(v))
86
- throw new Error("bad RpcError");
87
- const o = v;
88
- if (o["code"] === undefined)
89
- throw new Error("bad RpcError.code");
90
- assertU32("RpcError.code", o["code"]);
91
- if (o["message"] !== undefined) {
92
- assertString("RpcError.message", o["message"]);
93
- }
94
- return o;
95
- }
96
- export function assertStreamHello(v) {
97
- if (!isRecord(v))
98
- throw new Error("bad StreamHello");
99
- const o = v;
100
- if (o["kind"] === undefined)
101
- throw new Error("bad StreamHello.kind");
102
- assertString("StreamHello.kind", o["kind"]);
103
- if (o["v"] === undefined)
104
- throw new Error("bad StreamHello.v");
105
- assertU32("StreamHello.v", o["v"]);
106
- return o;
107
- }
@@ -1,23 +0,0 @@
1
- /** Endpoint role for tunnel attach. */
2
- export declare enum Role {
3
- /** Client endpoint. */
4
- Role_client = 1,
5
- /** Server endpoint. */
6
- Role_server = 2
7
- }
8
- /** Tunnel attach request payload. */
9
- export interface Attach {
10
- /** Attach envelope version. */
11
- v: number;
12
- /** Channel identifier. */
13
- channel_id: string;
14
- /** Endpoint role. */
15
- role: Role;
16
- /** Signed attach token. */
17
- token: string;
18
- /** Base64url-encoded endpoint instance ID. */
19
- endpoint_instance_id: string;
20
- /** Optional capability map. */
21
- caps?: Record<string, string>;
22
- }
23
- export declare function assertAttach(v: unknown): Attach;