@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.
- package/README.md +5 -0
- package/build/index.cjs +10785 -0
- package/build/index.cjs.map +1 -0
- package/build/index.d.ts +184 -0
- package/build/index.js +3257 -0
- package/build/index.js.map +1 -0
- package/build/index.mjs +3252 -0
- package/build/index.mjs.map +1 -0
- package/build/test.d.ts +1 -0
- package/build/utils.d.ts +13 -0
- package/index.html +11 -0
- package/package.json +24 -0
- package/src/chrome-dgram.js +503 -0
- package/src/flatbuffers/client-packet-type.ts +40 -0
- package/src/flatbuffers/client-packet.ts +162 -0
- package/src/flatbuffers/client-tcpserver-close.ts +93 -0
- package/src/flatbuffers/client-tcpserver-get-connections.ts +93 -0
- package/src/flatbuffers/client-tcpserver-listen.ts +211 -0
- package/src/flatbuffers/client-tcpserver.ts +159 -0
- package/src/flatbuffers/client-tcpsocket-connect.ts +253 -0
- package/src/flatbuffers/client-tcpsocket-destroy-soon.ts +75 -0
- package/src/flatbuffers/client-tcpsocket-destroy.ts +93 -0
- package/src/flatbuffers/client-tcpsocket-end.ts +93 -0
- package/src/flatbuffers/client-tcpsocket-pause.ts +75 -0
- package/src/flatbuffers/client-tcpsocket-reset-and-destroy.ts +75 -0
- package/src/flatbuffers/client-tcpsocket-resume.ts +75 -0
- package/src/flatbuffers/client-tcpsocket-set-encoding.ts +93 -0
- package/src/flatbuffers/client-tcpsocket-set-keep-alive.ts +103 -0
- package/src/flatbuffers/client-tcpsocket-set-no-delay.ts +89 -0
- package/src/flatbuffers/client-tcpsocket-set-timeout.ts +107 -0
- package/src/flatbuffers/client-tcpsocket-write.ts +147 -0
- package/src/flatbuffers/client-tcpsocket.ts +89 -0
- package/src/flatbuffers/client-udpsocket-add-membership.ts +110 -0
- package/src/flatbuffers/client-udpsocket-add-source-specific-membership.ts +127 -0
- package/src/flatbuffers/client-udpsocket-bind.ts +138 -0
- package/src/flatbuffers/client-udpsocket-close.ts +93 -0
- package/src/flatbuffers/client-udpsocket-disconnect.ts +75 -0
- package/src/flatbuffers/client-udpsocket-drop-membership.ts +110 -0
- package/src/flatbuffers/client-udpsocket-drop-source-specific-membership.ts +127 -0
- package/src/flatbuffers/client-udpsocket-send.ts +189 -0
- package/src/flatbuffers/client-udpsocket-set-broadcast.ts +89 -0
- package/src/flatbuffers/client-udpsocket-set-multicast-interface.ts +93 -0
- package/src/flatbuffers/client-udpsocket-set-multicast-loopback.ts +89 -0
- package/src/flatbuffers/client-udpsocket-set-multicast-ttl.ts +89 -0
- package/src/flatbuffers/client-udpsocket-set-recv-buffer-size.ts +89 -0
- package/src/flatbuffers/client-udpsocket-set-send-buffer-size.ts +89 -0
- package/src/flatbuffers/client-udpsocket-set-ttl.ts +89 -0
- package/src/flatbuffers/client-udpsocket.ts +149 -0
- package/src/flatbuffers/packet-handshake-type.ts +9 -0
- package/src/flatbuffers/packet.ts +210 -0
- package/src/flatbuffers/schema.ts +75 -0
- package/src/flatbuffers/server-packet-type.ts +38 -0
- package/src/flatbuffers/server-packet.ts +158 -0
- package/src/flatbuffers/server-tcpserver-callback-close.ts +93 -0
- package/src/flatbuffers/server-tcpserver-callback-get-connections.ts +124 -0
- package/src/flatbuffers/server-tcpserver-callback-listen.ts +141 -0
- package/src/flatbuffers/server-tcpserver-event-close.ts +75 -0
- package/src/flatbuffers/server-tcpserver-event-drop.ts +75 -0
- package/src/flatbuffers/server-tcpserver-event-error.ts +75 -0
- package/src/flatbuffers/server-tcpserver-event-listening.ts +124 -0
- package/src/flatbuffers/server-tcpsocket-callback-connect.ts +189 -0
- package/src/flatbuffers/server-tcpsocket-callback-end.ts +93 -0
- package/src/flatbuffers/server-tcpsocket-callback-set-timeout.ts +93 -0
- package/src/flatbuffers/server-tcpsocket-callback-write.ts +93 -0
- package/src/flatbuffers/server-tcpsocket-event-close.ts +89 -0
- package/src/flatbuffers/server-tcpsocket-event-connect.ts +172 -0
- package/src/flatbuffers/server-tcpsocket-event-connection-attempt-failed.ts +138 -0
- package/src/flatbuffers/server-tcpsocket-event-connection-attempt-timeout.ts +121 -0
- package/src/flatbuffers/server-tcpsocket-event-connection-attempt.ts +121 -0
- package/src/flatbuffers/server-tcpsocket-event-data.ts +113 -0
- package/src/flatbuffers/server-tcpsocket-event-drain.ts +75 -0
- package/src/flatbuffers/server-tcpsocket-event-end.ts +75 -0
- package/src/flatbuffers/server-tcpsocket-event-error.ts +93 -0
- package/src/flatbuffers/server-tcpsocket-event-lookup.ts +141 -0
- package/src/flatbuffers/server-tcpsocket-event-ready.ts +75 -0
- package/src/flatbuffers/server-tcpsocket-event-timeout.ts +75 -0
- package/src/flatbuffers/server-udpsocket-callback-bind.ts +141 -0
- package/src/flatbuffers/server-udpsocket-callback-close.ts +93 -0
- package/src/flatbuffers/server-udpsocket-callback-connect.ts +141 -0
- package/src/flatbuffers/server-udpsocket-callback-send.ts +93 -0
- package/src/flatbuffers/server-udpsocket-event-close.ts +75 -0
- package/src/flatbuffers/server-udpsocket-event-connect.ts +75 -0
- package/src/flatbuffers/server-udpsocket-event-error.ts +93 -0
- package/src/flatbuffers/server-udpsocket-event-listening.ts +124 -0
- package/src/flatbuffers/server-udpsocket-event-message.ts +175 -0
- package/src/index.ts +701 -0
- package/src/net.js +2442 -0
- package/src/test.ts +34 -0
- package/src/types.ts +16 -0
- package/src/utils.ts +45 -0
- package/vite-plugin-node-stdlib-browser.cjs +61 -0
- 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
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
|
+
}))
|