@peerbit/server 4.0.3 → 4.0.5
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/lib/esm/aws.js +27 -27
- package/lib/esm/aws.js.map +1 -1
- package/lib/esm/cli.js +97 -97
- package/lib/esm/cli.js.map +1 -1
- package/lib/esm/client.js +24 -24
- package/lib/esm/client.js.map +1 -1
- package/lib/esm/config.js +2 -0
- package/lib/esm/config.js.map +1 -1
- package/lib/esm/docker.js +1 -1
- package/lib/esm/peerbit.js +8 -8
- package/lib/esm/remotes.js +1 -1
- package/lib/esm/server.js +10 -10
- package/lib/esm/server.js.map +1 -1
- package/lib/esm/session.js +2 -2
- package/lib/esm/signes-request.js +1 -1
- package/lib/esm/signes-request.js.map +1 -1
- package/package.json +4 -4
- package/src/aws.ts +27 -27
- package/src/cli.ts +101 -103
- package/src/client.ts +24 -24
- package/src/config.ts +3 -1
- package/src/docker.ts +1 -1
- package/src/peerbit.ts +8 -8
- package/src/remotes.ts +1 -1
- package/src/server.ts +11 -11
- package/src/session.ts +2 -2
- package/src/signes-request.ts +1 -1
package/lib/esm/aws.js
CHANGED
|
@@ -15,9 +15,9 @@ export const createRecord = async (options) => {
|
|
|
15
15
|
credentials: options.credentials
|
|
16
16
|
? {
|
|
17
17
|
accessKeyId: options.credentials.accessKeyId,
|
|
18
|
-
secretAccessKey: options.credentials.secretAccessKey
|
|
18
|
+
secretAccessKey: options.credentials.secretAccessKey
|
|
19
19
|
}
|
|
20
|
-
: undefined
|
|
20
|
+
: undefined
|
|
21
21
|
});
|
|
22
22
|
const cmd = new ChangeResourceRecordSetsCommand({
|
|
23
23
|
ChangeBatch: {
|
|
@@ -28,12 +28,12 @@ export const createRecord = async (options) => {
|
|
|
28
28
|
Name: options.domain,
|
|
29
29
|
Type: v4 ? "A" : "AAAA",
|
|
30
30
|
TTL: 60,
|
|
31
|
-
ResourceRecords: [{ Value: myIp }]
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
]
|
|
31
|
+
ResourceRecords: [{ Value: myIp }]
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
35
|
},
|
|
36
|
-
HostedZoneId: options.hostedZoneId
|
|
36
|
+
HostedZoneId: options.hostedZoneId
|
|
37
37
|
});
|
|
38
38
|
await client.send(cmd);
|
|
39
39
|
};
|
|
@@ -82,7 +82,7 @@ export const AWS_LINUX_ARM_AMIs = {
|
|
|
82
82
|
/* "us-gov-east-1",
|
|
83
83
|
"us-gov-west-1", */
|
|
84
84
|
"us-west-1": "ami-0dca369228f3b2ce7",
|
|
85
|
-
"us-west-2": "ami-0c79a55dda52434da"
|
|
85
|
+
"us-west-2": "ami-0c79a55dda52434da"
|
|
86
86
|
};
|
|
87
87
|
export const launchNodes = async (properties) => {
|
|
88
88
|
if (properties.count && properties.count > 10) {
|
|
@@ -91,22 +91,22 @@ export const launchNodes = async (properties) => {
|
|
|
91
91
|
". To prevent unwanted behaviour you can also launch 10 nodes at once");
|
|
92
92
|
}
|
|
93
93
|
const count = properties.count || 1;
|
|
94
|
-
const { EC2Client, CreateTagsCommand, RunInstancesCommand, DescribeSecurityGroupsCommand, CreateSecurityGroupCommand, AuthorizeSecurityGroupIngressCommand, DescribeInstancesCommand
|
|
94
|
+
const { EC2Client, CreateTagsCommand, RunInstancesCommand, DescribeSecurityGroupsCommand, CreateSecurityGroupCommand, AuthorizeSecurityGroupIngressCommand, DescribeInstancesCommand } = await import("@aws-sdk/client-ec2");
|
|
95
95
|
const client = new EC2Client({ region: properties.region });
|
|
96
96
|
const regionString = await client.config.region();
|
|
97
97
|
let securityGroupOut = (await client.send(new DescribeSecurityGroupsCommand({
|
|
98
98
|
Filters: [
|
|
99
|
-
{ Name: "tag:" + PURPOSE_TAG_NAME, Values: [PURPOSE_TAG_VALUE] }
|
|
100
|
-
]
|
|
99
|
+
{ Name: "tag:" + PURPOSE_TAG_NAME, Values: [PURPOSE_TAG_VALUE] }
|
|
100
|
+
]
|
|
101
101
|
})))?.SecurityGroups?.[0];
|
|
102
102
|
if (!securityGroupOut) {
|
|
103
103
|
securityGroupOut = await client.send(new CreateSecurityGroupCommand({
|
|
104
104
|
GroupName: "peerbit-node",
|
|
105
|
-
Description: "Security group for running Peerbit nodes"
|
|
105
|
+
Description: "Security group for running Peerbit nodes"
|
|
106
106
|
}));
|
|
107
107
|
await client.send(new CreateTagsCommand({
|
|
108
108
|
Resources: [securityGroupOut.GroupId],
|
|
109
|
-
Tags: [{ Key: PURPOSE_TAG_NAME, Value: PURPOSE_TAG_VALUE }]
|
|
109
|
+
Tags: [{ Key: PURPOSE_TAG_NAME, Value: PURPOSE_TAG_VALUE }]
|
|
110
110
|
}));
|
|
111
111
|
await client.send(new AuthorizeSecurityGroupIngressCommand({
|
|
112
112
|
GroupId: securityGroupOut.GroupId,
|
|
@@ -115,44 +115,44 @@ export const launchNodes = async (properties) => {
|
|
|
115
115
|
IpRanges: [{ CidrIp: "0.0.0.0/0" }],
|
|
116
116
|
IpProtocol: "tcp",
|
|
117
117
|
FromPort: 80,
|
|
118
|
-
ToPort: 80
|
|
118
|
+
ToPort: 80
|
|
119
119
|
},
|
|
120
120
|
{
|
|
121
121
|
IpRanges: [{ CidrIp: "0.0.0.0/0" }],
|
|
122
122
|
IpProtocol: "tcp",
|
|
123
123
|
FromPort: 443,
|
|
124
|
-
ToPort: 443
|
|
124
|
+
ToPort: 443
|
|
125
125
|
},
|
|
126
126
|
{
|
|
127
127
|
IpRanges: [{ CidrIp: "0.0.0.0/0" }],
|
|
128
128
|
IpProtocol: "tcp",
|
|
129
129
|
FromPort: 9002,
|
|
130
|
-
ToPort: 9002
|
|
130
|
+
ToPort: 9002
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
IpRanges: [{ CidrIp: "0.0.0.0/0" }],
|
|
134
134
|
IpProtocol: "tcp",
|
|
135
135
|
FromPort: 8082,
|
|
136
|
-
ToPort: 8082
|
|
136
|
+
ToPort: 8082
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
IpRanges: [{ CidrIp: "0.0.0.0/0" }],
|
|
140
140
|
IpProtocol: "tcp",
|
|
141
141
|
FromPort: 4002,
|
|
142
|
-
ToPort: 4005
|
|
142
|
+
ToPort: 4005
|
|
143
143
|
},
|
|
144
144
|
{
|
|
145
145
|
IpRanges: [{ CidrIp: "0.0.0.0/0" }],
|
|
146
146
|
IpProtocol: "tcp",
|
|
147
147
|
FromPort: 22,
|
|
148
|
-
ToPort: 22
|
|
149
|
-
}
|
|
150
|
-
]
|
|
148
|
+
ToPort: 22
|
|
149
|
+
} // SSH
|
|
150
|
+
]
|
|
151
151
|
}));
|
|
152
152
|
}
|
|
153
153
|
const instanceTag = "Peerbit" + (properties.namePrefix ? "-" + properties.namePrefix : "");
|
|
154
154
|
let existingCounter = (await client.send(new DescribeInstancesCommand({
|
|
155
|
-
Filters: [{ Name: "tag:Purpose", Values: [instanceTag] }]
|
|
155
|
+
Filters: [{ Name: "tag:Purpose", Values: [instanceTag] }]
|
|
156
156
|
}))).Reservations?.length || 0;
|
|
157
157
|
console.log("Region: " + regionString);
|
|
158
158
|
const instanceOut = await client.send(new RunInstancesCommand({
|
|
@@ -161,7 +161,7 @@ export const launchNodes = async (properties) => {
|
|
|
161
161
|
InstanceType: "t4g." + (properties.size || "micro"),
|
|
162
162
|
UserData: Buffer.from(setupUserData(properties.email, properties.grantAccess)).toString("base64"),
|
|
163
163
|
MinCount: count,
|
|
164
|
-
MaxCount: count
|
|
164
|
+
MaxCount: count
|
|
165
165
|
// InstanceInitiatedShutdownBehavior: 'terminate' // to enable termination when node shutting itself down
|
|
166
166
|
}));
|
|
167
167
|
if (!instanceOut.Instances || instanceOut.Instances.length === 0) {
|
|
@@ -178,15 +178,15 @@ export const launchNodes = async (properties) => {
|
|
|
178
178
|
Resources: [instance.InstanceId],
|
|
179
179
|
Tags: [
|
|
180
180
|
{ Key: "Name", Value: name },
|
|
181
|
-
{ Key: "Purpose", Value: instanceTag }
|
|
182
|
-
]
|
|
181
|
+
{ Key: "Purpose", Value: instanceTag }
|
|
182
|
+
]
|
|
183
183
|
}));
|
|
184
184
|
}
|
|
185
185
|
// wait for instance ips to become available
|
|
186
186
|
let publicIps = [];
|
|
187
187
|
for (let i = 0; i < 10; i++) {
|
|
188
188
|
const info = await client.send(new DescribeInstancesCommand({
|
|
189
|
-
InstanceIds: instanceOut.Instances.map((x) => x.InstanceId)
|
|
189
|
+
InstanceIds: instanceOut.Instances.map((x) => x.InstanceId)
|
|
190
190
|
}));
|
|
191
191
|
const foundInstances = info
|
|
192
192
|
.Reservations.map((x) => x.Instances.map((y) => y))
|
|
@@ -211,7 +211,7 @@ export const launchNodes = async (properties) => {
|
|
|
211
211
|
instanceId: instanceOut.Instances[ix].InstanceId,
|
|
212
212
|
publicIp: v,
|
|
213
213
|
name: names[ix],
|
|
214
|
-
region: regionString
|
|
214
|
+
region: regionString
|
|
215
215
|
};
|
|
216
216
|
}); // TODO types
|
|
217
217
|
};
|
package/lib/esm/aws.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws.js","sourceRoot":"","sources":["../../src/aws.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,OAKlC,EAAiB,EAAE;IACnB,MAAM,EAAE,aAAa,EAAE,+BAA+B,EAAE,GAAG,MAAM,MAAM,CACtE,0BAA0B,CAC1B,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAEhD,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;IAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAExB,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;KACnC;IACD,8EAA8E;IAC9E,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW;YAC/B,CAAC,CAAC;gBACA,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW;gBAC5C,eAAe,EAAE,OAAO,CAAC,WAAW,CAAC,eAAe;aACnD;YACH,CAAC,CAAC,SAAS;KACZ,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,+BAA+B,CAAC;QAC/C,WAAW,EAAE;YACZ,OAAO,EAAE;gBACR;oBACC,MAAM,EAAE,QAAQ;oBAChB,iBAAiB,EAAE;wBAClB,IAAI,EAAE,OAAO,CAAC,MAAM;wBACpB,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;wBACvB,GAAG,EAAE,EAAE;wBACP,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;qBAClC;iBACD;aACD;SACD;QACD,YAAY,EAAE,OAAO,CAAC,YAAY;KAClC,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,cAAwB,EAAE,EAAE,EAAE;IACnE,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,OAAO;;;;;mCAK2B,KAAK;gBACxB,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;CACxD,CAAC;AACF,CAAC,CAAC;AACF,MAAM,gBAAgB,GAAG,SAAS,CAAC;AACnC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAEpC,gEAAgE;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACzD,mBAAmB;IACnB,gBAAgB,EAAE,uBAAuB;IACzC,gBAAgB,EAAE,uBAAuB;IACzC,gBAAgB,EAAE,uBAAuB;IACzC,YAAY,EAAE,uBAAuB;IACrC,gBAAgB,EAAE,uBAAuB;IACzC,gBAAgB,EAAE,uBAAuB;IACzC,oBAAoB;IACpB;4BACqB;IACrB,cAAc,EAAE,uBAAuB;IACvC;4BACqB;IACrB,cAAc,EAAE,uBAAuB;IACvC,sBAAsB;IACtB,YAAY,EAAE,uBAAuB;IACrC;wBACiB;IACjB,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,uBAAuB;IACpC;;wBAEiB;IACjB,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,uBAAuB;IACpC;2BACoB;IACpB,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,uBAAuB;CACpC,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,UAOjC,EAEC,EAAE;IACH,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,GAAG,EAAE,EAAE;QAC9C,MAAM,IAAI,KAAK,CACd,gCAAgC;YAC/B,UAAU,CAAC,KAAK;YAChB,sEAAsE,CACvE,CAAC;KACF;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;IAEpC,MAAM,EACL,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,6BAA6B,EAC7B,0BAA0B,EAC1B,oCAAoC,EACpC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"aws.js","sourceRoot":"","sources":["../../src/aws.ts"],"names":[],"mappings":"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"}
|