@peerbit/server 5.6.3 → 5.6.4-ec49bca

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.
@@ -23,7 +23,7 @@
23
23
  Learn how to configure a non-root public URL by running `npm run build`.
24
24
  -->
25
25
  <title>Peerbit</title>
26
- <script type="module" crossorigin src="/assets/index-BeFPnrza.js"></script>
26
+ <script type="module" crossorigin src="/assets/index-DO8U-NKu.js"></script>
27
27
  <link rel="stylesheet" crossorigin href="/assets/index-CIfVvUo9.css">
28
28
  </head>
29
29
 
package/package.json CHANGED
@@ -1,91 +1,91 @@
1
1
  {
2
- "name": "@peerbit/server",
3
- "version": "5.6.3",
4
- "author": "dao.xyz",
5
- "repository": {
6
- "type": "git",
7
- "url": "https://github.com/dao-xyz/peerbit"
8
- },
9
- "license": "Apache-2.0",
10
- "type": "module",
11
- "sideEffects": false,
12
- "bin": {
13
- "peerbit": "./dist/src/bin.js"
14
- },
15
- "module": "dist/src/index.js",
16
- "types": "dist/src/index.d.ts",
17
- "exports": {
18
- "import": "./dist/src/index.js"
19
- },
20
- "browser": {
21
- "./dist/src/server.js": "./dist/src/server.browser.js",
22
- "./server.js": "./dist/src/server.browser.js",
23
- "./dist/src/config.js": "./dist/src/config.browser.js",
24
- "./config.js": "./dist/src/config.browser.js",
25
- "./dist/src/remotes.js": "./dist/src/remotes.browser.js",
26
- "./remotes.js": "./dist/src/remotes.browser.js",
27
- "./dist/src/docker.js": "./dist/src/docker.browser.js",
28
- "./docker.js": "./dist/src/docker.browser.js",
29
- "./dist/src/aws.js": "./dist/src/aws.browser.js"
30
- },
31
- "files": [
32
- "dist",
33
- "src",
34
- "src/nginx-template.conf",
35
- "!src/test",
36
- "!src/**/__tests__",
37
- "!lib/**/__tests__",
38
- "patches",
39
- "LICENSE"
40
- ],
41
- "publishConfig": {
42
- "access": "public"
43
- },
44
- "engines": {
45
- "node": ">=18"
46
- },
47
- "eslintConfig": {
48
- "extends": "peerbit",
49
- "parserOptions": {
50
- "project": true,
51
- "sourceType": "module"
52
- },
53
- "ignorePatterns": [
54
- "!.aegir.js",
55
- "test/ts-use",
56
- "*.d.ts"
57
- ]
58
- },
59
- "scripts": {
60
- "clean": "shx rm -rf lib/*",
61
- "build": "yarn clean && yarn build-lib && yarn build-ui",
62
- "build-lib": "tsc -p tsconfig.json",
63
- "build-ui": "cd ../frontend && yarn build && cd ../node",
64
- "postbuild": "cp src/nginx-template.conf dist/src/ && cp -r ../frontend/dist/. dist/ui",
65
- "test": "aegir test --t node",
66
- "lint": "aegir lint"
67
- },
68
- "devDependencies": {
69
- "@peerbit/test-lib": "^0.0.1",
70
- "@peerbit/test-utils": "2.1.59",
71
- "@types/yargs": "17.0.24",
72
- "aws-sdk": "^2.1259.0",
73
- "dotenv": "^16.1.4",
74
- "@types/tmp": "^0.2.3",
75
- "@types/tar-stream": "^3.1.3",
76
- "shx": "^0.3.4"
77
- },
78
- "dependencies": {
79
- "axios": "^1.4.0",
80
- "chalk": "^5.3.0",
81
- "peerbit": "4.1.48",
82
- "yargs": "^17.7.2",
83
- "tar-stream": "^3.1.7",
84
- "tmp": "^0.2.1",
85
- "tty-table": "^4.2.1"
86
- },
87
- "optionalDependencies": {
88
- "@aws-sdk/client-ec2": "^3.390.0",
89
- "@aws-sdk/client-route-53": "^3.391.0"
90
- }
2
+ "name": "@peerbit/server",
3
+ "version": "5.6.4-ec49bca",
4
+ "author": "dao.xyz",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/dao-xyz/peerbit"
8
+ },
9
+ "license": "Apache-2.0",
10
+ "type": "module",
11
+ "sideEffects": false,
12
+ "bin": {
13
+ "peerbit": "./dist/src/bin.js"
14
+ },
15
+ "module": "dist/src/index.js",
16
+ "types": "dist/src/index.d.ts",
17
+ "exports": {
18
+ "import": "./dist/src/index.js"
19
+ },
20
+ "browser": {
21
+ "./dist/src/server.js": "./dist/src/server.browser.js",
22
+ "./server.js": "./dist/src/server.browser.js",
23
+ "./dist/src/config.js": "./dist/src/config.browser.js",
24
+ "./config.js": "./dist/src/config.browser.js",
25
+ "./dist/src/remotes.js": "./dist/src/remotes.browser.js",
26
+ "./remotes.js": "./dist/src/remotes.browser.js",
27
+ "./dist/src/docker.js": "./dist/src/docker.browser.js",
28
+ "./docker.js": "./dist/src/docker.browser.js",
29
+ "./dist/src/aws.js": "./dist/src/aws.browser.js"
30
+ },
31
+ "files": [
32
+ "dist",
33
+ "src",
34
+ "src/nginx-template.conf",
35
+ "!src/test",
36
+ "!src/**/__tests__",
37
+ "!lib/**/__tests__",
38
+ "patches",
39
+ "LICENSE"
40
+ ],
41
+ "publishConfig": {
42
+ "access": "public"
43
+ },
44
+ "engines": {
45
+ "node": ">=18"
46
+ },
47
+ "eslintConfig": {
48
+ "extends": "peerbit",
49
+ "parserOptions": {
50
+ "project": true,
51
+ "sourceType": "module"
52
+ },
53
+ "ignorePatterns": [
54
+ "!.aegir.js",
55
+ "test/ts-use",
56
+ "*.d.ts"
57
+ ]
58
+ },
59
+ "scripts": {
60
+ "clean": "shx rm -rf lib/*",
61
+ "build": "yarn clean && yarn build-lib && yarn build-ui",
62
+ "build-lib": "tsc -p tsconfig.json",
63
+ "build-ui": "cd ../frontend && yarn build && cd ../node",
64
+ "postbuild": "cp src/nginx-template.conf dist/src/ && cp -r ../frontend/dist/. dist/ui",
65
+ "test": "aegir test --t node",
66
+ "lint": "aegir lint"
67
+ },
68
+ "devDependencies": {
69
+ "@peerbit/test-lib": "0.0.1-ec49bca",
70
+ "@peerbit/test-utils": "2.1.60-ec49bca",
71
+ "@types/yargs": "17.0.24",
72
+ "aws-sdk": "^2.1259.0",
73
+ "dotenv": "^16.1.4",
74
+ "@types/tmp": "^0.2.3",
75
+ "@types/tar-stream": "^3.1.3",
76
+ "shx": "^0.3.4"
77
+ },
78
+ "dependencies": {
79
+ "axios": "^1.4.0",
80
+ "chalk": "^5.3.0",
81
+ "peerbit": "4.1.49-ec49bca",
82
+ "yargs": "^17.7.2",
83
+ "tar-stream": "^3.1.7",
84
+ "tmp": "^0.2.1",
85
+ "tty-table": "^4.2.1"
86
+ },
87
+ "optionalDependencies": {
88
+ "@aws-sdk/client-ec2": "^3.390.0",
89
+ "@aws-sdk/client-route-53": "^3.391.0"
90
+ }
91
91
  }
package/src/aws.ts CHANGED
@@ -275,7 +275,7 @@ export const launchNodes = async (properties: {
275
275
  const allHaveIp = instanceIds.every((id) => ips.has(id));
276
276
  if (allPresent && allHaveIp) {
277
277
  // reorder to original order
278
- var publicIps = instanceIds.map((id) => ips.get(id)!);
278
+ let publicIps = instanceIds.map((id) => ips.get(id)!);
279
279
  if (publicIps.length > 0) {
280
280
  // success
281
281
  return publicIps.map((v, ix) => {
package/src/cli.ts CHANGED
@@ -6,6 +6,7 @@ import { peerIdFromString } from "@libp2p/peer-id";
6
6
  import { toBase64 } from "@peerbit/crypto";
7
7
  import chalk from "chalk";
8
8
  import fs from "fs";
9
+ import sodium from "libsodium-wrappers";
9
10
  import path from "path";
10
11
  import { exit } from "process";
11
12
  import readline from "readline";
@@ -35,6 +36,8 @@ import { LOCAL_API_PORT } from "./routes.js";
35
36
  import { startServerWithNode } from "./server.js";
36
37
  import type { InstallDependency, StartProgram } from "./types.js";
37
38
 
39
+ await sodium.ready;
40
+
38
41
  const colors = [
39
42
  "#00FF00",
40
43
  "#0000FF",
package/src/client.ts CHANGED
@@ -125,6 +125,7 @@ export const createClient = async (
125
125
  return (
126
126
  throwIfNot200(
127
127
  await axiosInstance.get(endpoint + ADDRESS_PATH, {
128
+ timeout: 5000,
128
129
  validateStatus,
129
130
  }),
130
131
  ).data as string[]
package/src/domain.ts CHANGED
@@ -1,10 +1,7 @@
1
1
  /* eslint-disable no-console */
2
2
  import { waitFor } from "@peerbit/time";
3
3
 
4
- const isNode =
5
- typeof process !== "undefined" &&
6
- process.versions != null &&
7
- process.versions.node != null;
4
+ const isNode = typeof process !== "undefined" && process.versions?.node != null;
8
5
 
9
6
  const validateEmail = (email: any) => {
10
7
  return String(email)
@@ -1,23 +1,20 @@
1
1
  server_names_hash_bucket_size 128;
2
2
 
3
- server {
4
- server_name %DOMAIN%;
5
- listen [::]:4002 ssl ipv6only=on;
6
- listen 4002 ssl;
7
-
8
- # Load the certificate files.
9
- ssl_certificate /etc/letsencrypt/live/%DOMAIN%/fullchain.pem;
10
- ssl_certificate_key /etc/letsencrypt/live/%DOMAIN%/privkey.pem;
11
- ssl_trusted_certificate /etc/letsencrypt/live/%DOMAIN%/chain.pem;
12
-
13
- # Load the Diffie-Hellman parameter.
14
- ssl_dhparam /etc/letsencrypt/dhparams/dhparam.pem;
3
+ # --- stream (TCP/UDP) layer ---
4
+ stream {
5
+ # libp2p TCP forward: /dns4/%DOMAIN%/tcp/4002 -> 127.0.0.1:8001
6
+ server {
7
+ listen 4002;
8
+ proxy_connect_timeout 10s;
9
+ proxy_timeout 1h;
10
+ proxy_pass 127.0.0.1:8001;
11
+ }
15
12
 
16
- location / {
17
- proxy_pass http://127.0.0.1:8001;
18
- proxy_http_version 1.1;
19
- proxy_set_header Upgrade $http_upgrade;
20
- proxy_set_header Connection "upgrade";
13
+ # webrtc-direct UDP forward: /dns4/%DOMAIN%/udp/4004/webrtc-direct -> 127.0.0.1:8004
14
+ server {
15
+ listen 4003 udp;
16
+ proxy_timeout 1h;
17
+ proxy_pass 127.0.0.1:8003;
21
18
  }
22
19
  }
23
20
 
@@ -42,49 +39,6 @@ server {
42
39
  }
43
40
  }
44
41
 
45
- server {
46
- server_name %DOMAIN%;
47
- listen [::]:4004 ssl ipv6only=on;
48
- listen 4004 ssl;
49
-
50
- # Load the certificate files.
51
- ssl_certificate /etc/letsencrypt/live/%DOMAIN%/fullchain.pem;
52
- ssl_certificate_key /etc/letsencrypt/live/%DOMAIN%/privkey.pem;
53
- ssl_trusted_certificate /etc/letsencrypt/live/%DOMAIN%/chain.pem;
54
-
55
- # Load the Diffie-Hellman parameter.
56
- ssl_dhparam /etc/letsencrypt/dhparams/dhparam.pem;
57
-
58
- location / {
59
- proxy_pass http://127.0.0.1:8083;
60
- proxy_http_version 1.1;
61
- proxy_set_header Upgrade $http_upgrade;
62
- proxy_set_header Connection "upgrade";
63
- }
64
- }
65
-
66
-
67
- server {
68
- server_name %DOMAIN%;
69
- listen [::]:4005 ssl ipv6only=on;
70
- listen 4005 ssl;
71
-
72
- # Load the certificate files.
73
- ssl_certificate /etc/letsencrypt/live/%DOMAIN%/fullchain.pem;
74
- ssl_certificate_key /etc/letsencrypt/live/%DOMAIN%/privkey.pem;
75
- ssl_trusted_certificate /etc/letsencrypt/live/%DOMAIN%/chain.pem;
76
-
77
- # Load the Diffie-Hellman parameter.
78
- ssl_dhparam /etc/letsencrypt/dhparams/dhparam.pem;
79
-
80
- location / {
81
- proxy_pass http://127.0.0.1:8084;
82
- proxy_http_version 1.1;
83
- proxy_set_header Upgrade $http_upgrade;
84
- proxy_set_header Connection "upgrade";
85
- }
86
- }
87
-
88
42
  server {
89
43
  server_name %DOMAIN%;
90
44
  listen [::]:443 ssl ipv6only=on;
package/src/peerbit.ts CHANGED
@@ -33,6 +33,7 @@ export const create = (properties: {
33
33
  ? [
34
34
  `/dns4/${properties.domain}/tcp/4002`,
35
35
  `/dns4/${properties.domain}/tcp/4003/wss`,
36
+ `/dns4/${properties.domain}/tcp/4004/webrtc-direct`,
36
37
  ]
37
38
  : undefined,
38
39
  listen: [
@@ -40,6 +41,7 @@ export const create = (properties: {
40
41
  `/ip4/127.0.0.1/tcp/${
41
42
  listenPort !== 0 ? listenPort + 1 : listenPort
42
43
  }/ws`,
44
+ `/ip4/127.0.0.1/udp/${listenPort !== 0 ? listenPort + 2 : listenPort}/webrtc-direct`,
43
45
  ],
44
46
  },
45
47
  connectionMonitor: {