@peerbit/server 5.0.33 → 5.0.34-2bc15a6

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 (166) hide show
  1. package/dist/src/aws.browser.d.ts +1 -0
  2. package/dist/src/aws.browser.d.ts.map +1 -0
  3. package/{lib/esm → dist/src}/aws.d.ts +1 -0
  4. package/dist/src/aws.d.ts.map +1 -0
  5. package/{lib/esm → dist/src}/aws.js +43 -44
  6. package/dist/src/aws.js.map +1 -0
  7. package/dist/src/bin.d.ts +3 -0
  8. package/dist/src/bin.d.ts.map +1 -0
  9. package/{lib/esm → dist/src}/bin.js.map +1 -1
  10. package/{lib/esm → dist/src}/cli.d.ts +1 -0
  11. package/dist/src/cli.d.ts.map +1 -0
  12. package/{lib/esm → dist/src}/cli.js +107 -106
  13. package/dist/src/cli.js.map +1 -0
  14. package/{lib/esm → dist/src}/client.d.ts +6 -5
  15. package/dist/src/client.d.ts.map +1 -0
  16. package/{lib/esm → dist/src}/client.js +28 -36
  17. package/dist/src/client.js.map +1 -0
  18. package/dist/src/config.browser.d.ts +1 -0
  19. package/dist/src/config.browser.d.ts.map +1 -0
  20. package/{lib/esm → dist/src}/config.d.ts +1 -0
  21. package/dist/src/config.d.ts.map +1 -0
  22. package/{lib/esm → dist/src}/config.js +6 -6
  23. package/dist/src/config.js.map +1 -0
  24. package/dist/src/docker.browser.d.ts +1 -0
  25. package/dist/src/docker.browser.d.ts.map +1 -0
  26. package/{lib/esm → dist/src}/docker.d.ts +1 -0
  27. package/dist/src/docker.d.ts.map +1 -0
  28. package/{lib/esm → dist/src}/docker.js +2 -2
  29. package/dist/src/docker.js.map +1 -0
  30. package/{lib/esm → dist/src}/domain.d.ts +1 -7
  31. package/dist/src/domain.d.ts.map +1 -0
  32. package/{lib/esm → dist/src}/domain.js +6 -13
  33. package/dist/src/domain.js.map +1 -0
  34. package/{lib/esm → dist/src}/index.d.ts +1 -0
  35. package/dist/src/index.d.ts.map +1 -0
  36. package/{lib/esm → dist/src}/peerbit.d.ts +2 -1
  37. package/dist/src/peerbit.d.ts.map +1 -0
  38. package/{lib/esm → dist/src}/peerbit.js +10 -9
  39. package/dist/src/peerbit.js.map +1 -0
  40. package/dist/src/remotes.browser.d.ts +1 -0
  41. package/dist/src/remotes.browser.d.ts.map +1 -0
  42. package/{lib/esm → dist/src}/remotes.d.ts +1 -0
  43. package/dist/src/remotes.d.ts.map +1 -0
  44. package/{lib/esm → dist/src}/remotes.js +1 -1
  45. package/{lib/esm → dist/src}/routes.d.ts +1 -0
  46. package/dist/src/routes.d.ts.map +1 -0
  47. package/dist/src/server.browser.d.ts +1 -0
  48. package/dist/src/server.browser.d.ts.map +1 -0
  49. package/{lib/esm → dist/src}/server.d.ts +2 -2
  50. package/dist/src/server.d.ts.map +1 -0
  51. package/{lib/esm → dist/src}/server.js +25 -27
  52. package/dist/src/server.js.map +1 -0
  53. package/{lib/esm → dist/src}/session.d.ts +2 -2
  54. package/dist/src/session.d.ts.map +1 -0
  55. package/{lib/esm → dist/src}/session.js +2 -2
  56. package/{lib/esm/signes-request.d.ts → dist/src/signed-request.d.ts} +3 -3
  57. package/dist/src/signed-request.d.ts.map +1 -0
  58. package/{lib/esm/signes-request.js → dist/src/signed-request.js} +3 -3
  59. package/{lib/esm/signes-request.js.map → dist/src/signed-request.js.map} +1 -1
  60. package/dist/src/trust.browser.d.ts +1 -0
  61. package/dist/src/trust.browser.d.ts.map +1 -0
  62. package/{lib/esm → dist/src}/trust.d.ts +1 -0
  63. package/dist/src/trust.d.ts.map +1 -0
  64. package/{lib/esm → dist/src}/types.d.ts +1 -0
  65. package/dist/src/types.d.ts.map +1 -0
  66. package/dist/test/api.spec.d.ts +2 -0
  67. package/dist/test/api.spec.d.ts.map +1 -0
  68. package/dist/test/api.spec.js +223 -0
  69. package/dist/test/api.spec.js.map +1 -0
  70. package/dist/test/cli.spec.d.ts +2 -0
  71. package/dist/test/cli.spec.d.ts.map +1 -0
  72. package/dist/test/cli.spec.js +264 -0
  73. package/dist/test/cli.spec.js.map +1 -0
  74. package/dist/test/client.spec.d.ts +2 -0
  75. package/dist/test/client.spec.d.ts.map +1 -0
  76. package/dist/test/client.spec.js +23 -0
  77. package/dist/test/client.spec.js.map +1 -0
  78. package/dist/test/config.spec.d.ts +2 -0
  79. package/dist/test/config.spec.d.ts.map +1 -0
  80. package/dist/test/config.spec.js +12 -0
  81. package/dist/test/config.spec.js.map +1 -0
  82. package/dist/test/domain.integration.spec.d.ts +2 -0
  83. package/dist/test/domain.integration.spec.d.ts.map +1 -0
  84. package/dist/test/domain.integration.spec.js +101 -0
  85. package/dist/test/domain.integration.spec.js.map +1 -0
  86. package/dist/test/launch.spec.d.ts +1 -0
  87. package/dist/test/launch.spec.d.ts.map +1 -0
  88. package/dist/test/launch.spec.js +23 -0
  89. package/dist/test/launch.spec.js.map +1 -0
  90. package/dist/test/signed-request.spec.d.ts +2 -0
  91. package/dist/test/signed-request.spec.d.ts.map +1 -0
  92. package/dist/test/signed-request.spec.js +35 -0
  93. package/dist/test/signed-request.spec.js.map +1 -0
  94. package/dist/test/utils.d.ts +3 -0
  95. package/dist/test/utils.d.ts.map +1 -0
  96. package/dist/test/utils.js +6 -0
  97. package/dist/test/utils.js.map +1 -0
  98. package/dist/tsconfig.tsbuildinfo +1 -0
  99. package/dist/ui/assets/index-fCy8gbsO.js +128 -0
  100. package/dist/ui/assets/index-q5H34Jar.js +6 -0
  101. package/{lib → dist}/ui/index.html +3 -3
  102. package/package.json +90 -78
  103. package/src/aws.ts +57 -58
  104. package/src/bin.ts +1 -0
  105. package/src/cli.ts +149 -146
  106. package/src/client.ts +66 -81
  107. package/src/config.ts +12 -12
  108. package/src/docker.ts +3 -3
  109. package/src/domain.ts +16 -23
  110. package/src/peerbit.ts +10 -10
  111. package/src/remotes.ts +2 -2
  112. package/src/server.ts +58 -68
  113. package/src/session.ts +7 -7
  114. package/src/{signes-request.ts → signed-request.ts} +8 -8
  115. package/src/trust.ts +1 -1
  116. package/lib/esm/aws.browser.d.ts +0 -0
  117. package/lib/esm/aws.js.map +0 -1
  118. package/lib/esm/bin.d.ts +0 -2
  119. package/lib/esm/cli.js.map +0 -1
  120. package/lib/esm/client.js.map +0 -1
  121. package/lib/esm/config.browser.d.ts +0 -0
  122. package/lib/esm/config.js.map +0 -1
  123. package/lib/esm/docker.browser.d.ts +0 -0
  124. package/lib/esm/docker.js.map +0 -1
  125. package/lib/esm/domain.js.map +0 -1
  126. package/lib/esm/peerbit.js.map +0 -1
  127. package/lib/esm/remotes.browser.d.ts +0 -0
  128. package/lib/esm/server.browser.d.ts +0 -0
  129. package/lib/esm/server.js.map +0 -1
  130. package/lib/esm/trust.browser.d.ts +0 -0
  131. package/lib/ui/assets/index-BSyx7bor.js +0 -6
  132. package/lib/ui/assets/index-DUhlTXpa.js +0 -77
  133. package/lib/ui/assets/manifest-DSoGU8T2.json +0 -25
  134. /package/{lib/esm → dist}/nginx-template.conf +0 -0
  135. /package/{lib/esm → dist/src}/aws.browser.js +0 -0
  136. /package/{lib/esm → dist/src}/aws.browser.js.map +0 -0
  137. /package/{lib/esm → dist/src}/bin.js +0 -0
  138. /package/{lib/esm → dist/src}/config.browser.js +0 -0
  139. /package/{lib/esm → dist/src}/config.browser.js.map +0 -0
  140. /package/{lib/esm → dist/src}/docker.browser.js +0 -0
  141. /package/{lib/esm → dist/src}/docker.browser.js.map +0 -0
  142. /package/{lib/esm → dist/src}/index.js +0 -0
  143. /package/{lib/esm → dist/src}/index.js.map +0 -0
  144. /package/{lib/esm → dist/src}/remotes.browser.js +0 -0
  145. /package/{lib/esm → dist/src}/remotes.browser.js.map +0 -0
  146. /package/{lib/esm → dist/src}/remotes.js.map +0 -0
  147. /package/{lib/esm → dist/src}/routes.js +0 -0
  148. /package/{lib/esm → dist/src}/routes.js.map +0 -0
  149. /package/{lib/esm → dist/src}/server.browser.js +0 -0
  150. /package/{lib/esm → dist/src}/server.browser.js.map +0 -0
  151. /package/{lib/esm → dist/src}/session.js.map +0 -0
  152. /package/{lib/esm → dist/src}/trust.browser.js +0 -0
  153. /package/{lib/esm → dist/src}/trust.browser.js.map +0 -0
  154. /package/{lib/esm → dist/src}/trust.js +0 -0
  155. /package/{lib/esm → dist/src}/trust.js.map +0 -0
  156. /package/{lib/esm → dist/src}/types.js +0 -0
  157. /package/{lib/esm → dist/src}/types.js.map +0 -0
  158. /package/{lib → dist}/ui/android-chrome-192x192.png +0 -0
  159. /package/{lib → dist}/ui/android-chrome-512x512.png +0 -0
  160. /package/{lib → dist}/ui/assets/favicon-BYZpRdSr.ico +0 -0
  161. /package/{lib → dist}/ui/assets/index-BDBx6C_I.css +0 -0
  162. /package/{lib → dist}/ui/favicon-16x16.png +0 -0
  163. /package/{lib → dist}/ui/favicon-32x32.png +0 -0
  164. /package/{lib → dist}/ui/favicon.ico +0 -0
  165. /package/{lib → dist}/ui/manifest.json +0 -0
  166. /package/{lib → dist}/ui/robots.txt +0 -0
@@ -0,0 +1,264 @@
1
+ // This more like a playground as of now
2
+ // No tests yet,
3
+ import { Ed25519Keypair } from "@peerbit/crypto";
4
+ import { TestSession } from "@peerbit/test-utils";
5
+ import { waitForResolved } from "@peerbit/time";
6
+ import { expect } from "chai";
7
+ import { exec, execSync } from "child_process";
8
+ import fs from "fs";
9
+ import path from "path";
10
+ import readline from "readline";
11
+ import { v4 as uuid } from "uuid";
12
+ import { getTrustPath } from "../src/config.js";
13
+ import { Trust } from "../src/trust.js";
14
+ import { __dirname, modulesPath } from "./utils.js";
15
+ const runCommandProcess = (args) => {
16
+ const cmd = `node --experimental-vm-modules ${path.join(__dirname, "../", "dist", "bin.js")} ${args}`;
17
+ const p = exec(cmd /* , { env: { ...process.env, "PEERBIT_MODULES_PATH": modulesPath } } */);
18
+ return getProcessWithOut(p);
19
+ };
20
+ const runCommand = (args) => {
21
+ const cmd = `node --experimental-vm-modules ${path.join(__dirname, "../", "lib", "esm", "bin.js")} ${args}`;
22
+ return execSync(cmd).toString();
23
+ };
24
+ const LOCAL_REMOTE_NAME = "local-remote";
25
+ const getProcessWithOut = (p) => {
26
+ let out = [];
27
+ let err = [];
28
+ let outSinceWrite = [];
29
+ const rl = readline.createInterface({
30
+ input: p.stdout,
31
+ });
32
+ p.stderr.on("data", (d) => {
33
+ d.split("\n").forEach((x) => err.push(x));
34
+ });
35
+ rl.on("line", (d) => {
36
+ if (d.trim().length > 0) {
37
+ out.push(d.trim());
38
+ outSinceWrite.push(d.trim());
39
+ }
40
+ });
41
+ /* p.stdout!.on('data', (d: string) => {
42
+ //d.split("\n").forEach(x => out.push(x))
43
+ }); */
44
+ let write = (line) => {
45
+ outSinceWrite.splice(0, outSinceWrite.length);
46
+ p.stdin.write(line + "\n");
47
+ };
48
+ return {
49
+ process: p,
50
+ out,
51
+ err,
52
+ write,
53
+ outSinceWrite,
54
+ };
55
+ };
56
+ const countPeerIds = (out) => {
57
+ return out.filter((x) => x.includes("12D3")).length;
58
+ };
59
+ const debugProcess = (p) => {
60
+ console.log("DEBUG PROCESS:\n" +
61
+ p.out.join("\n") +
62
+ "\n--------------\n" +
63
+ p.err.join("\n"));
64
+ };
65
+ describe("cli", () => {
66
+ let session;
67
+ let processes;
68
+ let configDirectory;
69
+ let PORT = 9993;
70
+ const start = async (extraArgs = "") => {
71
+ const cmd = runCommandProcess(`start --reset --port-api ${PORT} --port-node 0 --directory ${configDirectory} ${extraArgs}`);
72
+ processes.push(cmd);
73
+ try {
74
+ await waitForResolved(() => expect(cmd.out.length).greaterThan(0));
75
+ }
76
+ catch (error) {
77
+ console.log("Never resolved start:\n" + cmd.err.join("\n"));
78
+ throw error;
79
+ }
80
+ addRemote(LOCAL_REMOTE_NAME, "http://localhost:" + PORT);
81
+ await waitForResolved(() => expect(runCommand(`remote connect ${LOCAL_REMOTE_NAME} --directory ${configDirectory}`)));
82
+ return cmd;
83
+ };
84
+ const addRemote = (remote = LOCAL_REMOTE_NAME, address = "http://localhost:" + PORT) => {
85
+ runCommand(`remote add ${remote} ${address} --directory ${configDirectory}`);
86
+ };
87
+ const connect = (remote = LOCAL_REMOTE_NAME) => {
88
+ const p = runCommandProcess(`remote connect ${remote} --directory ${configDirectory}`);
89
+ processes.push(p);
90
+ return p;
91
+ };
92
+ before(async () => {
93
+ // execSync(`cd ${path.join(__dirname, '../../../', 'test-lib')} && npm pack`)
94
+ session = await TestSession.connected(1);
95
+ });
96
+ beforeEach(() => {
97
+ PORT += 1; // TODO if we don't do this, tests fail in github actions (process.exit does not release ports quick enough (?))
98
+ processes = [];
99
+ configDirectory = path.join(__dirname, "./tmp/cli-test/config", uuid());
100
+ });
101
+ afterEach(async () => {
102
+ for (const p of processes) {
103
+ p.process.kill();
104
+ }
105
+ if (fs.existsSync(modulesPath)) {
106
+ fs.rmSync(modulesPath, { recursive: true, force: true });
107
+ }
108
+ if (fs.existsSync(configDirectory)) {
109
+ fs.rmSync(configDirectory, { recursive: true, force: true });
110
+ }
111
+ });
112
+ after(async () => {
113
+ await session.stop();
114
+ });
115
+ const checkPeerId = async (terminal) => {
116
+ const t = terminal || connect();
117
+ await waitForResolved(() => expect(t.out.length).greaterThan(0)); // wait for ready
118
+ t.write("peer id");
119
+ try {
120
+ await waitForResolved(() => expect(countPeerIds(t.outSinceWrite)).greaterThan(0), { delayInterval: 500, timeout: 10 * 1000 });
121
+ }
122
+ catch (error) {
123
+ debugProcess(t);
124
+ throw error;
125
+ }
126
+ };
127
+ describe("starts", () => {
128
+ it("no-args", async () => {
129
+ await start();
130
+ await checkPeerId();
131
+ });
132
+ it("grant-access", async () => {
133
+ const kp1 = await Ed25519Keypair.create();
134
+ const kp2 = await Ed25519Keypair.create();
135
+ await start(`--grant-access ${(await kp1.toPeerId()).toString()} --grant-access ${(await kp2.toPeerId()).toString()}`);
136
+ const trust = new Trust(getTrustPath(configDirectory));
137
+ expect(trust.trusted).to.have.members([
138
+ kp1.publicKey.hashcode(),
139
+ kp2.publicKey.hashcode(),
140
+ ]);
141
+ });
142
+ });
143
+ describe("remote", () => {
144
+ it("rejets on invalid remote", async () => {
145
+ let rejected = false;
146
+ try {
147
+ runCommand("remote add test this-address-is-invalid");
148
+ }
149
+ catch (error) {
150
+ rejected = true;
151
+ expect(error?.toString().includes("Error: Failed to add remote"));
152
+ }
153
+ expect(rejected).to.be.true;
154
+ });
155
+ it("add valid remote", async () => {
156
+ await start();
157
+ runCommand(`remote add xyz123 http://localhost:${PORT} --directory ${configDirectory}`);
158
+ const terminal = await connect("xyz123");
159
+ await checkPeerId(terminal);
160
+ });
161
+ describe("connect", () => {
162
+ const GROUP_A = "GROUP_A";
163
+ beforeEach(async () => {
164
+ await start();
165
+ runCommand(`remote add a http://localhost:${PORT} --group ${GROUP_A} --directory ${configDirectory}`);
166
+ runCommand(`remote add b http://localhost:${PORT} --directory ${configDirectory}`);
167
+ });
168
+ it("connect to multiple by name", async () => {
169
+ const terminal = await connect("a b");
170
+ terminal.out.splice(0, terminal.out.length);
171
+ terminal.write("peer id");
172
+ await waitForResolved(() => expect(countPeerIds(terminal.out)).equal(2));
173
+ });
174
+ it("connect to all", async () => {
175
+ const terminal = await connect("--all");
176
+ terminal.out.splice(0, terminal.out.length);
177
+ terminal.write("peer id");
178
+ await waitForResolved(() => expect(countPeerIds(terminal.out)).equal(3));
179
+ });
180
+ it("connect to group", async () => {
181
+ const terminal = await connect("--group " + GROUP_A);
182
+ terminal.out.splice(0, terminal.out.length);
183
+ terminal.write("peer id");
184
+ await waitForResolved(() => expect(countPeerIds(terminal.out)).equal(1));
185
+ });
186
+ });
187
+ describe("restart", () => {
188
+ afterEach(async () => {
189
+ const terminal = connect();
190
+ terminal.write("stop"); // we have to do this because else we create detached processes during restart
191
+ try {
192
+ await waitForResolved(() => expect(processes[0].out[processes[0].out.length - 1]).equal("Shutting down node (exit)"));
193
+ }
194
+ catch (error) {
195
+ console.log("TERMINAL: Never resolved start:\n" +
196
+ terminal.out.join("\n") +
197
+ "\n--------------\n" +
198
+ terminal.err.join("\n"));
199
+ console.log("SERVER: Never resolved start:\n" +
200
+ processes[0].out.join("\n") +
201
+ "\n--------------\n" +
202
+ processes[0].err.join("\n"));
203
+ throw error;
204
+ }
205
+ });
206
+ //TODO too slow to run in CI?
207
+ it("can restart", async () => {
208
+ const s = await start();
209
+ const terminal = connect();
210
+ await checkPeerId(terminal);
211
+ terminal.write("restart");
212
+ await waitForResolved(() => expect(s.out.filter((x) => x.includes("Starting node with address(es)"))).to.have.length(2));
213
+ await checkPeerId(terminal);
214
+ });
215
+ /*
216
+ it("re-opens on restart", async () => {
217
+ const server = await start();
218
+ const terminal = connect();
219
+ terminal.write(`install ${path.join(__dirname, "test.tgz")}`);
220
+ await waitForResolved(() =>
221
+ expect(
222
+ terminal.outSinceWrite.find((x) =>
223
+ x.includes("New programs available")
224
+ )
225
+ ).to.exist
226
+ );
227
+ terminal.write("program open --variant permissioned_string");
228
+ await waitForResolved(() =>
229
+ expect(
230
+ terminal.outSinceWrite.find((x) =>
231
+ x.includes("Started program with address:")
232
+ )
233
+ ).to.exist
234
+ );
235
+ terminal.write("restart");
236
+
237
+ await waitForResolved(() =>
238
+ expect(
239
+ server.out.filter((x) =>
240
+ x.includes("Starting node with address(es)")
241
+ )
242
+ ).to.have.length(2)
243
+ );
244
+
245
+ terminal.write("program ls");
246
+ await waitForResolved(() =>
247
+ expect(
248
+ terminal.outSinceWrite.find((x) =>
249
+ x.includes("Running programs (1):")
250
+ )
251
+ ).to.exist
252
+ );
253
+ }); */
254
+ });
255
+ });
256
+ /* Can we make this test run faster?
257
+ it('install dependency remote', async () => {
258
+ await start()
259
+ const install = runCommand("install @peerbit/test-lib")
260
+ })
261
+
262
+ */
263
+ });
264
+ //# sourceMappingURL=cli.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.spec.js","sourceRoot":"","sources":["../../test/cli.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=client.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.spec.d.ts","sourceRoot":"","sources":["../../test/client.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { AnyBlockStore } from "@peerbit/blocks";
2
+ import { Ed25519Keypair } from "@peerbit/crypto";
3
+ import {} from "@peerbit/program";
4
+ import { expect } from "chai";
5
+ import { create } from "../src/peerbit.js";
6
+ describe("client", () => {
7
+ let client;
8
+ afterEach(async () => {
9
+ await client?.stop();
10
+ });
11
+ it("default config will relay messages", async () => {
12
+ client = await create({
13
+ peerId: await (await Ed25519Keypair.create()).toPeerId(),
14
+ directory: "./tmp/server-node/client/" + new Date(),
15
+ listenPort: 9123,
16
+ });
17
+ expect(client.services.blocks["remoteBlocks"].localStore).to.be.instanceOf(AnyBlockStore);
18
+ expect(client.services.blocks["canRelayMessage"]).equal(true);
19
+ expect(client.services.pubsub["canRelayMessage"]).equal(true);
20
+ expect(client.services["relay"]).to.exist;
21
+ });
22
+ });
23
+ //# sourceMappingURL=client.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.spec.js","sourceRoot":"","sources":["../../test/client.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAsB,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACvB,IAAI,MAAqB,CAAC;IAC1B,SAAS,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,GAAG,MAAM,MAAM,CAAC;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YACxD,SAAS,EAAE,2BAA2B,GAAG,IAAI,IAAI,EAAE;YACnD,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,MAAM,CACJ,MAAM,CAAC,QAAQ,CAAC,MAAc,CAAC,cAAc,CAAC,CAAC,UAAU,CAC1D,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAClC,MAAM,CAAE,MAAM,CAAC,QAAQ,CAAC,MAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,CAAE,MAAM,CAAC,QAAQ,CAAC,MAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,CAAE,MAAM,CAAC,QAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACpD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.spec.d.ts","sourceRoot":"","sources":["../../test/config.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { expect } from "chai";
2
+ import { getPackageName } from "../src/config.js";
3
+ describe("tgz", () => {
4
+ it("can get package.json name", async () => {
5
+ const pathLib = await import("path");
6
+ const urlLib = await import("url");
7
+ const filename = urlLib.fileURLToPath(import.meta.url);
8
+ const dirname = pathLib.dirname(filename);
9
+ expect(await getPackageName(pathLib.join(dirname, "/test.tgz"))).equal("@peerbit/test-lib");
10
+ });
11
+ });
12
+ //# sourceMappingURL=config.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.spec.js","sourceRoot":"","sources":["../../test/config.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACpB,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE1C,MAAM,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CACrE,mBAAmB,CACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=domain.integration.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.integration.spec.d.ts","sourceRoot":"","sources":["../../test/domain.integration.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,101 @@
1
+ import {} from "@peerbit/program";
2
+ import { TestSession } from "@peerbit/test-utils";
3
+ import { expect } from "chai";
4
+ import dotenv from "dotenv";
5
+ import path from "path";
6
+ import { getTrustPath } from "../src/config.js";
7
+ import { getDomainFromConfig } from "../src/domain.js";
8
+ import { startApiServer } from "../src/server.js";
9
+ import { Trust } from "../src/trust.js";
10
+ dotenv.config();
11
+ describe("getDomainFromConfig", () => {
12
+ it("%DOMAIN%", async () => {
13
+ const config = " ssl_certificate /etc/letsencrypt/live/%DOMAIN%/fullchain.pem; \nssl_certificate_key /etc/letsencrypt/live/%DOMAIN%/privkey.pem; ";
14
+ const domain = await getDomainFromConfig(config);
15
+ expect(domain).equal(undefined);
16
+ });
17
+ it("specified domain", async () => {
18
+ const expectedDomain = "a.b-c.d";
19
+ const config = ` ssl_certificate /etc/letsencrypt/live/${expectedDomain}/fullchain.pem; \nssl_certificate_key /etc/letsencrypt/live/${expectedDomain}/privkey.pem; `;
20
+ const domain = await getDomainFromConfig(config);
21
+ expect(domain).equal(expectedDomain);
22
+ });
23
+ });
24
+ describe("ssl", () => {
25
+ let session, peer, server;
26
+ before(async () => {
27
+ const directory = "./tmp/peerbit/" + +new Date();
28
+ session = await TestSession.connected(1, {
29
+ directory: path.join(directory, "node"),
30
+ });
31
+ peer = session.peers[0];
32
+ server = await startApiServer(peer, {
33
+ trust: new Trust(getTrustPath(directory)),
34
+ port: 12345,
35
+ });
36
+ });
37
+ after(async () => {
38
+ await peer.stop();
39
+ await session.stop();
40
+ await server.close();
41
+ });
42
+ it("_", () => { });
43
+ /* These test are flaky, or have side effects, and should not be running in ci yet
44
+ it("certbot", async () => {
45
+ const { exec } = await import("child_process");
46
+ const containerName = "nginx-certbot-" + +new Date();
47
+ const domain = await createTestDomain();
48
+ await startCertbot(
49
+ domain,
50
+ "marcus@dao.xyz",
51
+ path.join(__filename, "../tmp/config"),
52
+ false,
53
+ containerName
54
+ );
55
+ expect(domain.length > 0).to.be.true;
56
+ const exist =
57
+ (await new Promise((resolve, reject) => {
58
+ exec(
59
+ "docker ps --format '{{.Names}}' | egrep '^" +
60
+ containerName +
61
+ "$'",
62
+ (error, stdout, stderr) => {
63
+ resolve(stdout.trimEnd());
64
+ if (error || stderr) {
65
+ reject("Failed to check docker container exist");
66
+ }
67
+ }
68
+ );
69
+ })) === containerName;
70
+ expect(exist).to.be.true;
71
+ await new Promise((resolve, reject) => {
72
+ exec(
73
+ "docker container stop " + containerName,
74
+ (error, stdout, stderr) => {
75
+ resolve(stdout.trimEnd());
76
+ if (error || stderr) {
77
+ reject("Failed to check docker container exist");
78
+ }
79
+ }
80
+ );
81
+ });
82
+ });
83
+
84
+ it("can create aws record", async () => {
85
+ const ak = process.env.TEST_AWS_ACCESS_KEY_ID;
86
+ const sk = process.env.TEST_AWS_SECREY_ACCESS_KEY;
87
+ const subdomain = uuid();
88
+ await createRecord({
89
+ domain: subdomain + ".peerchecker.com",
90
+ hostedZoneId: "Z0762538EEV3HRTQOXY3",
91
+ credentials:
92
+ ak && sk
93
+ ? {
94
+ accessKeyId: ak,
95
+ secretAccessKey: sk,
96
+ }
97
+ : undefined,
98
+ });
99
+ }); */
100
+ });
101
+ //# sourceMappingURL=domain.integration.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.integration.spec.js","sourceRoot":"","sources":["../../test/domain.integration.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACzB,MAAM,MAAM,GACX,+IAA+I,CAAC;QACjJ,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,cAAc,GAAG,SAAS,CAAC;QACjC,MAAM,MAAM,GAAG,kDAAkD,cAAc,mEAAmE,cAAc,gBAAgB,CAAC;QACjL,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACpB,IAAI,OAAoB,EAAE,IAAmB,EAAE,MAAmB,CAAC;IAEnE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,SAAS,GAAG,gBAAgB,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACjD,OAAO,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE;YACxC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;SACvC,CAAC,CAAC;QACH,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE;YACnC,KAAK,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,EAAE,KAAK;SACX,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAwDM;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=launch.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.spec.d.ts","sourceRoot":"","sources":["../../test/launch.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ describe("spawn", () => {
3
+ it("no-test", () => { });
4
+ /* it("launch and stop", async () => {
5
+ const results = await launchNodes({
6
+ email: "marcus@dao.xyz",
7
+ count: 1,
8
+ namePrefix: "test-counter",
9
+ grantAccess: [await (await Ed25519Keypair.create()).publicKey.toPeerId()]
10
+ });
11
+ const domain = await waitForDomain(results[0].publicIp);
12
+ const client = await createClient(await Ed25519Keypair.create(), {
13
+ address: domain,
14
+ origin: {
15
+ type: "aws",
16
+ instanceId: results[0].instanceId,
17
+ region: "us-east-1",
18
+ },
19
+ });
20
+ await client.terminate();
21
+ }); */
22
+ });
23
+ //# sourceMappingURL=launch.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.spec.js","sourceRoot":"","sources":["../../test/launch.spec.ts"],"names":[],"mappings":";AAAA,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACxB;;;;;;;;;;;;;;;;;UAiBM;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=signed-request.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signed-request.spec.d.ts","sourceRoot":"","sources":["../../test/signed-request.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { Ed25519Keypair } from "@peerbit/crypto";
2
+ import { expect } from "chai";
3
+ import { signRequest, verifyRequest } from "../src/signed-request.js";
4
+ describe("signed-request", () => {
5
+ let signedRequest;
6
+ const data = "hello";
7
+ let keypair;
8
+ beforeEach(async () => {
9
+ keypair = await Ed25519Keypair.create();
10
+ signedRequest = {
11
+ data,
12
+ headers: {},
13
+ method: "POST",
14
+ url: "https://example.com/hello",
15
+ };
16
+ await signRequest(signedRequest.headers, signedRequest.method, new URL(signedRequest.url).pathname, data, keypair);
17
+ });
18
+ it("verifies", async () => {
19
+ expect((await verifyRequest(signedRequest.headers, signedRequest.method, new URL(signedRequest.url).pathname, data)).equals(keypair.publicKey)).to.be.true;
20
+ });
21
+ it("invalid time", async () => {
22
+ signedRequest.headers["X-Peerbit-Signature-Time"] = String(Number(signedRequest.headers["X-Peerbit-Signature-Time"]) + 1);
23
+ await expect(verifyRequest(signedRequest.headers, signedRequest.method, new URL(signedRequest.url).pathname, data)).rejectedWith("Invalid signature");
24
+ });
25
+ it("invalid method", async () => {
26
+ await expect(verifyRequest(signedRequest.headers, "?", new URL(signedRequest.url).pathname, data)).rejectedWith("Invalid signature");
27
+ });
28
+ it("invalid url", async () => {
29
+ await expect(verifyRequest(signedRequest.headers, signedRequest.method, "?", data)).rejectedWith("Invalid signature");
30
+ });
31
+ it("invalid data", async () => {
32
+ await expect(verifyRequest(signedRequest.headers, signedRequest.method, new URL(signedRequest.url).pathname, "bye")).rejectedWith("Invalid signature");
33
+ });
34
+ });
35
+ //# sourceMappingURL=signed-request.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signed-request.spec.js","sourceRoot":"","sources":["../../test/signed-request.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEtE,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC/B,IAAI,aAKH,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC;IACrB,IAAI,OAAuB,CAAC;IAC5B,UAAU,CAAC,KAAK,IAAI,EAAE;QACrB,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC;QACxC,aAAa,GAAG;YACf,IAAI;YACJ,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,2BAA2B;SAChC,CAAC;QACF,MAAM,WAAW,CAChB,aAAa,CAAC,OAAO,EACrB,aAAa,CAAC,MAAM,EACpB,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EACnC,IAAI,EACJ,OAAO,CACP,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QACzB,MAAM,CACL,CACC,MAAM,aAAa,CAClB,aAAa,CAAC,OAAO,EACrB,aAAa,CAAC,MAAM,EACpB,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EACnC,IAAI,CACJ,CACD,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAC3B,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC7B,aAAa,CAAC,OAAO,CAAC,0BAA0B,CAAC,GAAG,MAAM,CACzD,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,0BAA0B,CAAW,CAAC,GAAG,CAAC,CACvE,CAAC;QACF,MAAM,MAAM,CACX,aAAa,CACZ,aAAa,CAAC,OAAO,EACrB,aAAa,CAAC,MAAM,EACpB,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EACnC,IAAI,CACJ,CACD,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,MAAM,CACX,aAAa,CACZ,aAAa,CAAC,OAAO,EACrB,GAAG,EACH,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EACnC,IAAI,CACJ,CACD,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,MAAM,CACX,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CACrE,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,MAAM,CACX,aAAa,CACZ,aAAa,CAAC,OAAO,EACrB,aAAa,CAAC,MAAM,EACpB,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EACnC,KAAK,CACL,CACD,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const __dirname: string;
2
+ export declare const modulesPath: string;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../test/utils.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,QAA0C,CAAC;AACjE,eAAO,MAAM,WAAW,QAAiD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import path, { dirname } from "path";
2
+ import { fileURLToPath } from "url";
3
+ // eslint-disable-next-line @typescript-eslint/naming-convention
4
+ export const __dirname = dirname(fileURLToPath(import.meta.url));
5
+ export const modulesPath = path.join(__dirname, "./tmp/cli-test/modules");
6
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../test/utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,gEAAgE;AAChE,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC"}