@webvpn/dgram 0.0.1

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 (92) hide show
  1. package/README.md +5 -0
  2. package/build/index.cjs +10785 -0
  3. package/build/index.cjs.map +1 -0
  4. package/build/index.d.ts +184 -0
  5. package/build/index.js +3257 -0
  6. package/build/index.js.map +1 -0
  7. package/build/index.mjs +3252 -0
  8. package/build/index.mjs.map +1 -0
  9. package/build/test.d.ts +1 -0
  10. package/build/utils.d.ts +13 -0
  11. package/index.html +11 -0
  12. package/package.json +24 -0
  13. package/src/chrome-dgram.js +503 -0
  14. package/src/flatbuffers/client-packet-type.ts +40 -0
  15. package/src/flatbuffers/client-packet.ts +162 -0
  16. package/src/flatbuffers/client-tcpserver-close.ts +93 -0
  17. package/src/flatbuffers/client-tcpserver-get-connections.ts +93 -0
  18. package/src/flatbuffers/client-tcpserver-listen.ts +211 -0
  19. package/src/flatbuffers/client-tcpserver.ts +159 -0
  20. package/src/flatbuffers/client-tcpsocket-connect.ts +253 -0
  21. package/src/flatbuffers/client-tcpsocket-destroy-soon.ts +75 -0
  22. package/src/flatbuffers/client-tcpsocket-destroy.ts +93 -0
  23. package/src/flatbuffers/client-tcpsocket-end.ts +93 -0
  24. package/src/flatbuffers/client-tcpsocket-pause.ts +75 -0
  25. package/src/flatbuffers/client-tcpsocket-reset-and-destroy.ts +75 -0
  26. package/src/flatbuffers/client-tcpsocket-resume.ts +75 -0
  27. package/src/flatbuffers/client-tcpsocket-set-encoding.ts +93 -0
  28. package/src/flatbuffers/client-tcpsocket-set-keep-alive.ts +103 -0
  29. package/src/flatbuffers/client-tcpsocket-set-no-delay.ts +89 -0
  30. package/src/flatbuffers/client-tcpsocket-set-timeout.ts +107 -0
  31. package/src/flatbuffers/client-tcpsocket-write.ts +147 -0
  32. package/src/flatbuffers/client-tcpsocket.ts +89 -0
  33. package/src/flatbuffers/client-udpsocket-add-membership.ts +110 -0
  34. package/src/flatbuffers/client-udpsocket-add-source-specific-membership.ts +127 -0
  35. package/src/flatbuffers/client-udpsocket-bind.ts +138 -0
  36. package/src/flatbuffers/client-udpsocket-close.ts +93 -0
  37. package/src/flatbuffers/client-udpsocket-disconnect.ts +75 -0
  38. package/src/flatbuffers/client-udpsocket-drop-membership.ts +110 -0
  39. package/src/flatbuffers/client-udpsocket-drop-source-specific-membership.ts +127 -0
  40. package/src/flatbuffers/client-udpsocket-send.ts +189 -0
  41. package/src/flatbuffers/client-udpsocket-set-broadcast.ts +89 -0
  42. package/src/flatbuffers/client-udpsocket-set-multicast-interface.ts +93 -0
  43. package/src/flatbuffers/client-udpsocket-set-multicast-loopback.ts +89 -0
  44. package/src/flatbuffers/client-udpsocket-set-multicast-ttl.ts +89 -0
  45. package/src/flatbuffers/client-udpsocket-set-recv-buffer-size.ts +89 -0
  46. package/src/flatbuffers/client-udpsocket-set-send-buffer-size.ts +89 -0
  47. package/src/flatbuffers/client-udpsocket-set-ttl.ts +89 -0
  48. package/src/flatbuffers/client-udpsocket.ts +149 -0
  49. package/src/flatbuffers/packet-handshake-type.ts +9 -0
  50. package/src/flatbuffers/packet.ts +210 -0
  51. package/src/flatbuffers/schema.ts +75 -0
  52. package/src/flatbuffers/server-packet-type.ts +38 -0
  53. package/src/flatbuffers/server-packet.ts +158 -0
  54. package/src/flatbuffers/server-tcpserver-callback-close.ts +93 -0
  55. package/src/flatbuffers/server-tcpserver-callback-get-connections.ts +124 -0
  56. package/src/flatbuffers/server-tcpserver-callback-listen.ts +141 -0
  57. package/src/flatbuffers/server-tcpserver-event-close.ts +75 -0
  58. package/src/flatbuffers/server-tcpserver-event-drop.ts +75 -0
  59. package/src/flatbuffers/server-tcpserver-event-error.ts +75 -0
  60. package/src/flatbuffers/server-tcpserver-event-listening.ts +124 -0
  61. package/src/flatbuffers/server-tcpsocket-callback-connect.ts +189 -0
  62. package/src/flatbuffers/server-tcpsocket-callback-end.ts +93 -0
  63. package/src/flatbuffers/server-tcpsocket-callback-set-timeout.ts +93 -0
  64. package/src/flatbuffers/server-tcpsocket-callback-write.ts +93 -0
  65. package/src/flatbuffers/server-tcpsocket-event-close.ts +89 -0
  66. package/src/flatbuffers/server-tcpsocket-event-connect.ts +172 -0
  67. package/src/flatbuffers/server-tcpsocket-event-connection-attempt-failed.ts +138 -0
  68. package/src/flatbuffers/server-tcpsocket-event-connection-attempt-timeout.ts +121 -0
  69. package/src/flatbuffers/server-tcpsocket-event-connection-attempt.ts +121 -0
  70. package/src/flatbuffers/server-tcpsocket-event-data.ts +113 -0
  71. package/src/flatbuffers/server-tcpsocket-event-drain.ts +75 -0
  72. package/src/flatbuffers/server-tcpsocket-event-end.ts +75 -0
  73. package/src/flatbuffers/server-tcpsocket-event-error.ts +93 -0
  74. package/src/flatbuffers/server-tcpsocket-event-lookup.ts +141 -0
  75. package/src/flatbuffers/server-tcpsocket-event-ready.ts +75 -0
  76. package/src/flatbuffers/server-tcpsocket-event-timeout.ts +75 -0
  77. package/src/flatbuffers/server-udpsocket-callback-bind.ts +141 -0
  78. package/src/flatbuffers/server-udpsocket-callback-close.ts +93 -0
  79. package/src/flatbuffers/server-udpsocket-callback-connect.ts +141 -0
  80. package/src/flatbuffers/server-udpsocket-callback-send.ts +93 -0
  81. package/src/flatbuffers/server-udpsocket-event-close.ts +75 -0
  82. package/src/flatbuffers/server-udpsocket-event-connect.ts +75 -0
  83. package/src/flatbuffers/server-udpsocket-event-error.ts +93 -0
  84. package/src/flatbuffers/server-udpsocket-event-listening.ts +124 -0
  85. package/src/flatbuffers/server-udpsocket-event-message.ts +175 -0
  86. package/src/index.ts +701 -0
  87. package/src/net.js +2442 -0
  88. package/src/test.ts +34 -0
  89. package/src/types.ts +16 -0
  90. package/src/utils.ts +45 -0
  91. package/vite-plugin-node-stdlib-browser.cjs +61 -0
  92. package/vite.config.ts +29 -0
package/src/test.ts ADDED
@@ -0,0 +1,34 @@
1
+ import { createSocket } from './index'
2
+
3
+ const socket = createSocket('udp4')
4
+ socket.on('message', (data) => {
5
+ console.log('test data', data.toString())
6
+ })
7
+ socket.on('data', (data) => {
8
+ console.log('test data', data.toString())
9
+ })
10
+ socket.on('end', () => {
11
+ console.log('test end')
12
+ })
13
+ socket.on('close', () => {
14
+ console.log('test close')
15
+ })
16
+ socket.on('listening', () => {
17
+ console.log('test listening')
18
+ })
19
+ socket.on('connect', () => {
20
+ console.log('test connect')
21
+ })
22
+ socket.connect(41234, 'localhost', () => {
23
+ console.log('test connected')
24
+ for (let i = 0; i < 10; i++) {
25
+ socket.send(`hello ${i}`)
26
+ }
27
+ })
28
+
29
+ // setTimeout(() => {
30
+ // socket.end()
31
+ // }, 1_000)
32
+
33
+ // setInterval(() => {
34
+ // }, 1_000)
package/src/types.ts ADDED
@@ -0,0 +1,16 @@
1
+ export type TCPMetaPacket = {
2
+ type: 'tcp-connect'
3
+ host: string
4
+ port: number
5
+ }
6
+
7
+ export type UDPMetaPacket = {
8
+ type: 'udp-connect'
9
+ host: string
10
+ port: number
11
+ }
12
+
13
+ export type MetaPacket =
14
+ TCPMetaPacket |
15
+ UDPMetaPacket
16
+
package/src/utils.ts ADDED
@@ -0,0 +1,45 @@
1
+ import { Packr } from 'msgpackr'
2
+ import { WebVPNWebTransport } from '@fkn/lib'
3
+
4
+ import { SocketClientPacket, SocketServerPacket, WebVPNHandshakePacket } from '.'
5
+
6
+ const packr = new Packr()
7
+
8
+ export const packPacket = (packet: WebVPNHandshakePacket | SocketClientPacket) => packr.pack(packet)
9
+ export const unpackPacket = (data: Uint8Array) => packr.unpack(data) as SocketServerPacket
10
+ export const unpackMultiplePackets = (data: Uint8Array) => packr.unpackMultiple(data) as SocketServerPacket[]
11
+
12
+ export interface WebTransportOptions {
13
+ address: string
14
+ serverCertificateHashes: {
15
+ algorithm: string
16
+ value: number[]
17
+ }[]
18
+ }
19
+
20
+ export const makeWebVPNWebtransport = async () => {
21
+ const webtransport = new WebVPNWebTransport()
22
+ await webtransport.ready
23
+ return webtransport
24
+ }
25
+
26
+ // let _webtransportOptions: Promise<WebTransportOptions>
27
+ // export const makeWebVPNWebtransport = async () => {
28
+ // if (!_webtransportOptions) {
29
+ // _webtransportOptions =
30
+ // fetch('http://localhost:4002/')
31
+ // .then(res => res.json() as Promise<WebTransportOptions>)
32
+ // }
33
+ // const webtransportOptions = await _webtransportOptions
34
+ // const webtransport = new WebTransport(
35
+ // webtransportOptions.address,
36
+ // {
37
+ // serverCertificateHashes: [{
38
+ // algorithm: webtransportOptions.serverCertificateHashes[0].algorithm,
39
+ // value: new Uint8Array(webtransportOptions.serverCertificateHashes[0].value)
40
+ // }]
41
+ // }
42
+ // )
43
+ // await webtransport.ready
44
+ // return webtransport
45
+ // }
@@ -0,0 +1,61 @@
1
+ // https://github.com/sodatea/vite-plugin-node-stdlib-browser
2
+ import { createRequire } from 'module'
3
+
4
+ import inject from '@rollup/plugin-inject'
5
+ import stdLibBrowser from 'node-stdlib-browser'
6
+ import esbuildPlugin from 'node-stdlib-browser/helpers/esbuild/plugin'
7
+ import {
8
+ handleCircularDependancyWarning
9
+ } from 'node-stdlib-browser/helpers/rollup/plugin'
10
+
11
+
12
+ const require = createRequire(import.meta.url)
13
+
14
+ const plugin = () => ({
15
+ name: 'vite-plugin-node-stdlib-browser',
16
+ config: () => ({
17
+ resolve: {
18
+ alias: stdLibBrowser
19
+ },
20
+ optimizeDeps: {
21
+ include: ['buffer', 'process'],
22
+ esbuildOptions: {
23
+ inject: [require.resolve('node-stdlib-browser/helpers/esbuild/shim')],
24
+ define: {
25
+ global: 'global',
26
+ process: 'process',
27
+ Buffer: 'Buffer'
28
+ },
29
+ plugins: [esbuildPlugin(stdLibBrowser)]
30
+ }
31
+ },
32
+ plugins: [
33
+ {
34
+ ...inject({
35
+ global: [
36
+ require.resolve('node-stdlib-browser/helpers/esbuild/shim'),
37
+ 'global'
38
+ ],
39
+ process: [
40
+ require.resolve('node-stdlib-browser/helpers/esbuild/shim'),
41
+ 'process'
42
+ ],
43
+ Buffer: [
44
+ require.resolve('node-stdlib-browser/helpers/esbuild/shim'),
45
+ 'Buffer'
46
+ ]
47
+ }),
48
+ enforce: 'post'
49
+ }
50
+ ],
51
+ build: {
52
+ rollupOptions: {
53
+ onwarn: (warning, rollupWarn) => {
54
+ handleCircularDependancyWarning(warning, rollupWarn)
55
+ }
56
+ }
57
+ }
58
+ })
59
+ })
60
+
61
+ export default plugin
package/vite.config.ts ADDED
@@ -0,0 +1,29 @@
1
+ import { defineConfig } from 'vite'
2
+ import dts from 'vite-plugin-dts'
3
+ import polyfills from './vite-plugin-node-stdlib-browser.cjs'
4
+
5
+ export default defineConfig((env) => ({
6
+ build: {
7
+ outDir: 'build',
8
+ target: 'esnext',
9
+ emptyOutDir: false,
10
+ minify: false,
11
+ sourcemap: true,
12
+ lib: {
13
+ entry: ['src/index.ts', 'src/test.ts'],
14
+ formats: ['es', 'cjs']
15
+ },
16
+ rollupOptions: {
17
+ input: {
18
+ index: 'src/index.ts'
19
+ }
20
+ }
21
+ },
22
+ define: {
23
+ 'process.env.NODE_ENV': JSON.stringify(env.mode)
24
+ },
25
+ plugins: [
26
+ polyfills(),
27
+ dts()
28
+ ]
29
+ }))