@abtnode/core 1.8.64 → 1.8.65-beta-5405baf2
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/blocklet/downloader/blocklet-downloader.js +205 -0
- package/lib/blocklet/downloader/bundle-downloader.js +267 -0
- package/lib/blocklet/downloader/constants.js +3 -0
- package/lib/blocklet/downloader/resolve-download.js +168 -0
- package/lib/blocklet/manager/disk.js +77 -468
- package/lib/router/helper.js +10 -4
- package/lib/router/manager.js +22 -21
- package/lib/states/site.js +1 -0
- package/lib/validators/router.js +6 -8
- package/package.json +17 -17
package/lib/router/helper.js
CHANGED
|
@@ -728,6 +728,7 @@ module.exports = function getRouterHelpers({ dataDirs, routingSnapshot, routerMa
|
|
|
728
728
|
rules: [rule],
|
|
729
729
|
},
|
|
730
730
|
skipCheckDynamicBlacklist: true,
|
|
731
|
+
skipValidation: true,
|
|
731
732
|
},
|
|
732
733
|
context
|
|
733
734
|
);
|
|
@@ -1070,10 +1071,15 @@ module.exports = function getRouterHelpers({ dataDirs, routingSnapshot, routerMa
|
|
|
1070
1071
|
},
|
|
1071
1072
|
});
|
|
1072
1073
|
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1074
|
+
[
|
|
1075
|
+
BlockletEvents.certIssued,
|
|
1076
|
+
EVENTS.CERT_ADDED,
|
|
1077
|
+
EVENTS.CERT_REMOVED,
|
|
1078
|
+
EVENTS.CERT_ISSUED,
|
|
1079
|
+
EVENTS.CERT_UPDATED,
|
|
1080
|
+
].forEach((event) => {
|
|
1081
|
+
certManager.on(event, () => providers[providerName].reload());
|
|
1082
|
+
});
|
|
1077
1083
|
|
|
1078
1084
|
await providers[providerName].start();
|
|
1079
1085
|
}
|
package/lib/router/manager.js
CHANGED
|
@@ -8,6 +8,7 @@ const path = require('path');
|
|
|
8
8
|
const os = require('os');
|
|
9
9
|
const fse = require('fs-extra');
|
|
10
10
|
const get = require('lodash/get');
|
|
11
|
+
const toLower = require('lodash/toLower');
|
|
11
12
|
const { EventEmitter } = require('events');
|
|
12
13
|
const uuid = require('uuid');
|
|
13
14
|
const isUrl = require('is-url');
|
|
@@ -154,20 +155,20 @@ class RouterManager extends EventEmitter {
|
|
|
154
155
|
|
|
155
156
|
// eslint-disable-next-line no-unused-vars
|
|
156
157
|
async updateRoutingSite(params, context = {}) {
|
|
157
|
-
await validateUpdateSite(params, context);
|
|
158
|
-
const
|
|
159
|
-
if (!
|
|
158
|
+
const site = await validateUpdateSite(params, context);
|
|
159
|
+
const existed = await states.site.findOne({ _id: site.id });
|
|
160
|
+
if (!existed) {
|
|
160
161
|
throw new Error('Can not update non-existing site');
|
|
161
162
|
}
|
|
162
163
|
|
|
163
164
|
const updateSet = {};
|
|
164
165
|
|
|
165
|
-
if (
|
|
166
|
-
updateSet.corsAllowedOrigins =
|
|
166
|
+
if (site.corsAllowedOrigins) {
|
|
167
|
+
updateSet.corsAllowedOrigins = site.corsAllowedOrigins.filter((x) => x !== '__none__');
|
|
167
168
|
}
|
|
168
169
|
|
|
169
|
-
if (
|
|
170
|
-
const newDomain =
|
|
170
|
+
if (site.domain) {
|
|
171
|
+
const newDomain = site.domain;
|
|
171
172
|
const ruleCountInDB = await states.site.count({
|
|
172
173
|
$or: [{ domain: newDomain }, { domainAliases: newDomain }, { 'domainAliases.value': newDomain }],
|
|
173
174
|
});
|
|
@@ -179,18 +180,18 @@ class RouterManager extends EventEmitter {
|
|
|
179
180
|
updateSet.domain = newDomain;
|
|
180
181
|
}
|
|
181
182
|
|
|
182
|
-
const updated = await states.site.update({ _id:
|
|
183
|
+
const updated = await states.site.update({ _id: site.id }, { $set: updateSet }, { multi: false, upsert: false });
|
|
183
184
|
|
|
184
|
-
logger.info('router.site.updated', {
|
|
185
|
-
this.emit('router.site.updated',
|
|
185
|
+
logger.info('router.site.updated', { site, updated });
|
|
186
|
+
this.emit('router.site.updated', site.id);
|
|
186
187
|
|
|
187
|
-
const dbSite = await states.site.findOne({ _id:
|
|
188
|
+
const dbSite = await states.site.findOne({ _id: site.id });
|
|
188
189
|
await attachRuntimeDomainAliases({ sites: dbSite, context, node: states.node });
|
|
189
190
|
return dbSite;
|
|
190
191
|
}
|
|
191
192
|
|
|
192
|
-
async addDomainAlias({ id, domainAlias, force }, context = {}) {
|
|
193
|
-
await validateAddDomainAlias(
|
|
193
|
+
async addDomainAlias({ id, domainAlias: tmpAlias, force }, context = {}) {
|
|
194
|
+
const domainAlias = await validateAddDomainAlias(tmpAlias, context);
|
|
194
195
|
const dbSite = await states.site.findOne({ _id: id });
|
|
195
196
|
if (!dbSite) {
|
|
196
197
|
throw new Error(`site ${id} does not exist`);
|
|
@@ -222,10 +223,10 @@ class RouterManager extends EventEmitter {
|
|
|
222
223
|
}
|
|
223
224
|
}
|
|
224
225
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
226
|
+
const updateResult = await states.site.update(
|
|
227
|
+
{ _id: id },
|
|
228
|
+
{ $push: { domainAliases: { value: domainAlias, isProtected: false } } }
|
|
229
|
+
);
|
|
229
230
|
logger.debug('add domain alias update result', { id, updateResult, domainAlias });
|
|
230
231
|
|
|
231
232
|
const newSite = await states.site.findOne({ _id: id });
|
|
@@ -234,8 +235,8 @@ class RouterManager extends EventEmitter {
|
|
|
234
235
|
return newSite;
|
|
235
236
|
}
|
|
236
237
|
|
|
237
|
-
async deleteDomainAlias({ id, domainAlias }, context = {}) {
|
|
238
|
-
await validateAddDomainAlias(
|
|
238
|
+
async deleteDomainAlias({ id, domainAlias: tmpAlias }, context = {}) {
|
|
239
|
+
const domainAlias = await validateAddDomainAlias(tmpAlias, context);
|
|
239
240
|
const dbSite = await states.site.findOne({ _id: id });
|
|
240
241
|
if (!dbSite) {
|
|
241
242
|
throw new Error(`site ${id} does not exist`);
|
|
@@ -243,10 +244,10 @@ class RouterManager extends EventEmitter {
|
|
|
243
244
|
|
|
244
245
|
dbSite.domainAliases = dbSite.domainAliases.filter((x) => {
|
|
245
246
|
if (typeof x === 'string') {
|
|
246
|
-
return x !== domainAlias;
|
|
247
|
+
return toLower(x) !== domainAlias;
|
|
247
248
|
}
|
|
248
249
|
|
|
249
|
-
return x.value !== domainAlias;
|
|
250
|
+
return toLower(x.value) !== domainAlias;
|
|
250
251
|
});
|
|
251
252
|
|
|
252
253
|
const updateResult = await states.site.update({ _id: id }, { $set: { domainAliases: dbSite.domainAliases } });
|
package/lib/states/site.js
CHANGED
package/lib/validators/router.js
CHANGED
|
@@ -5,6 +5,8 @@ const { getMultipleLangParams } = require('./util');
|
|
|
5
5
|
|
|
6
6
|
const WILDCARD_DOMAIN_REGEX = /^\*.(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/;
|
|
7
7
|
|
|
8
|
+
const DOMAIN_SCHEMA = Joi.string().domain({ minDomainSegments: 1, tlds: false }).lowercase();
|
|
9
|
+
|
|
8
10
|
const domainMessages = {
|
|
9
11
|
en: {
|
|
10
12
|
'alternatives.match': 'Illegal domain, please enter a domain like arcblock, arcblock.io, *.arcblock.io',
|
|
@@ -79,11 +81,7 @@ const ruleSchema = {
|
|
|
79
81
|
};
|
|
80
82
|
|
|
81
83
|
const corsSchema = Joi.array()
|
|
82
|
-
.items(
|
|
83
|
-
Joi.string().domain({ minDomainSegments: 1, tlds: false }),
|
|
84
|
-
Joi.string().valid(DOMAIN_FOR_DEFAULT_SITE, '__none__'),
|
|
85
|
-
Joi.string().ip()
|
|
86
|
-
)
|
|
84
|
+
.items(DOMAIN_SCHEMA, Joi.string().valid(DOMAIN_FOR_DEFAULT_SITE, '__none__'), Joi.string().ip())
|
|
87
85
|
.min(1)
|
|
88
86
|
.optional();
|
|
89
87
|
|
|
@@ -91,7 +89,7 @@ const ruleJoiSchema = Joi.object(ruleSchema);
|
|
|
91
89
|
|
|
92
90
|
const addDomainAlias = Joi.alternatives()
|
|
93
91
|
.try(
|
|
94
|
-
|
|
92
|
+
DOMAIN_SCHEMA,
|
|
95
93
|
Joi.string().regex(WILDCARD_DOMAIN_REGEX) // 这种其实是一种特殊的 tld
|
|
96
94
|
)
|
|
97
95
|
.required();
|
|
@@ -108,7 +106,7 @@ const updateAliases = domainAliases.required();
|
|
|
108
106
|
const addSiteSchema = Joi.object({
|
|
109
107
|
domain: Joi.alternatives()
|
|
110
108
|
.try(
|
|
111
|
-
|
|
109
|
+
DOMAIN_SCHEMA,
|
|
112
110
|
Joi.string().valid('', DOMAIN_FOR_DEFAULT_SITE),
|
|
113
111
|
Joi.string().regex(WILDCARD_DOMAIN_REGEX) // 这种其实是一种特殊的 tld
|
|
114
112
|
)
|
|
@@ -125,7 +123,7 @@ const updateSite = Joi.object({
|
|
|
125
123
|
corsAllowedOrigins: corsSchema,
|
|
126
124
|
domain: Joi.alternatives()
|
|
127
125
|
.try(
|
|
128
|
-
|
|
126
|
+
DOMAIN_SCHEMA,
|
|
129
127
|
Joi.string().regex(WILDCARD_DOMAIN_REGEX) // 这种其实是一种特殊的 tld
|
|
130
128
|
)
|
|
131
129
|
.optional()
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.8.
|
|
6
|
+
"version": "1.8.65-beta-5405baf2",
|
|
7
7
|
"description": "",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"files": [
|
|
@@ -19,18 +19,18 @@
|
|
|
19
19
|
"author": "wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)",
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@abtnode/auth": "1.8.
|
|
23
|
-
"@abtnode/certificate-manager": "1.8.
|
|
24
|
-
"@abtnode/constant": "1.8.
|
|
25
|
-
"@abtnode/cron": "1.8.
|
|
26
|
-
"@abtnode/db": "1.8.
|
|
27
|
-
"@abtnode/logger": "1.8.
|
|
28
|
-
"@abtnode/queue": "1.8.
|
|
29
|
-
"@abtnode/rbac": "1.8.
|
|
30
|
-
"@abtnode/router-provider": "1.8.
|
|
31
|
-
"@abtnode/static-server": "1.8.
|
|
32
|
-
"@abtnode/timemachine": "1.8.
|
|
33
|
-
"@abtnode/util": "1.8.
|
|
22
|
+
"@abtnode/auth": "1.8.65-beta-5405baf2",
|
|
23
|
+
"@abtnode/certificate-manager": "1.8.65-beta-5405baf2",
|
|
24
|
+
"@abtnode/constant": "1.8.65-beta-5405baf2",
|
|
25
|
+
"@abtnode/cron": "1.8.65-beta-5405baf2",
|
|
26
|
+
"@abtnode/db": "1.8.65-beta-5405baf2",
|
|
27
|
+
"@abtnode/logger": "1.8.65-beta-5405baf2",
|
|
28
|
+
"@abtnode/queue": "1.8.65-beta-5405baf2",
|
|
29
|
+
"@abtnode/rbac": "1.8.65-beta-5405baf2",
|
|
30
|
+
"@abtnode/router-provider": "1.8.65-beta-5405baf2",
|
|
31
|
+
"@abtnode/static-server": "1.8.65-beta-5405baf2",
|
|
32
|
+
"@abtnode/timemachine": "1.8.65-beta-5405baf2",
|
|
33
|
+
"@abtnode/util": "1.8.65-beta-5405baf2",
|
|
34
34
|
"@arcblock/did": "1.18.37",
|
|
35
35
|
"@arcblock/did-motif": "^1.1.10",
|
|
36
36
|
"@arcblock/did-util": "1.18.37",
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
"@arcblock/jwt": "^1.18.37",
|
|
39
39
|
"@arcblock/pm2-events": "^0.0.5",
|
|
40
40
|
"@arcblock/vc": "1.18.37",
|
|
41
|
-
"@blocklet/constant": "1.8.
|
|
42
|
-
"@blocklet/meta": "1.8.
|
|
43
|
-
"@blocklet/sdk": "1.8.
|
|
41
|
+
"@blocklet/constant": "1.8.65-beta-5405baf2",
|
|
42
|
+
"@blocklet/meta": "1.8.65-beta-5405baf2",
|
|
43
|
+
"@blocklet/sdk": "1.8.65-beta-5405baf2",
|
|
44
44
|
"@did-space/client": "^0.1.66",
|
|
45
45
|
"@fidm/x509": "^1.2.1",
|
|
46
46
|
"@ocap/mcrypto": "1.18.37",
|
|
@@ -88,5 +88,5 @@
|
|
|
88
88
|
"express": "^4.18.2",
|
|
89
89
|
"jest": "^27.5.1"
|
|
90
90
|
},
|
|
91
|
-
"gitHead": "
|
|
91
|
+
"gitHead": "e5dc838baded7031096118462a604fd70d78ff1c"
|
|
92
92
|
}
|