@abtnode/blocklet-services 1.7.12 → 1.7.15
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/api/index.js +6 -3
- package/api/middlewares/check-blocklet.js +14 -0
- package/api/services/auth/connect/login.js +21 -2
- package/api/services/auth/connect/switch-passport.js +10 -0
- package/api/services/auth/connect/switch-profile.js +11 -1
- package/api/util/index.js +45 -6
- package/build/asset-manifest.json +28 -28
- package/build/index.html +1 -1
- package/build/{precache-manifest.5f319c29c408a50466b0d034dc444e5f.js → precache-manifest.fa7b4ab579d57fabdd2f661bbe9477eb.js} +27 -27
- package/build/service-worker.js +1 -1
- package/build/static/js/0.0e886baa.chunk.js +3 -0
- package/build/static/js/{0.86df5972.chunk.js.LICENSE.txt → 0.0e886baa.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/0.0e886baa.chunk.js.map +1 -0
- package/build/static/js/1.ad8ebbc7.chunk.js +2 -0
- package/build/static/js/1.ad8ebbc7.chunk.js.map +1 -0
- package/build/static/js/10.4bc669a4.chunk.js +2 -0
- package/build/static/js/10.4bc669a4.chunk.js.map +1 -0
- package/build/static/js/4.5ba3405d.chunk.js +3 -0
- package/build/static/js/{4.6313a12f.chunk.js.LICENSE.txt → 4.5ba3405d.chunk.js.LICENSE.txt} +31 -43
- package/build/static/js/4.5ba3405d.chunk.js.map +1 -0
- package/build/static/js/5.bbb19a41.chunk.js +2 -0
- package/build/static/js/5.bbb19a41.chunk.js.map +1 -0
- package/build/static/js/6.81f46015.chunk.js +2 -0
- package/build/static/js/6.81f46015.chunk.js.map +1 -0
- package/build/static/js/7.bf50e386.chunk.js +2 -0
- package/build/static/js/7.bf50e386.chunk.js.map +1 -0
- package/build/static/js/8.7b812796.chunk.js +2 -0
- package/build/static/js/8.7b812796.chunk.js.map +1 -0
- package/build/static/js/9.fb2b8a65.chunk.js +2 -0
- package/build/static/js/9.fb2b8a65.chunk.js.map +1 -0
- package/build/static/js/main.de8a9159.chunk.js +2 -0
- package/build/static/js/main.de8a9159.chunk.js.map +1 -0
- package/build/static/js/{runtime-main.c57b91d0.js → runtime-main.829b2277.js} +2 -2
- package/build/static/js/{runtime-main.c57b91d0.js.map → runtime-main.829b2277.js.map} +1 -1
- package/package.json +32 -29
- package/build/static/js/0.86df5972.chunk.js +0 -3
- package/build/static/js/0.86df5972.chunk.js.map +0 -1
- package/build/static/js/1.b67e3571.chunk.js +0 -2
- package/build/static/js/1.b67e3571.chunk.js.map +0 -1
- package/build/static/js/10.6f840670.chunk.js +0 -2
- package/build/static/js/10.6f840670.chunk.js.map +0 -1
- package/build/static/js/4.6313a12f.chunk.js +0 -3
- package/build/static/js/4.6313a12f.chunk.js.map +0 -1
- package/build/static/js/5.4fa6174b.chunk.js +0 -2
- package/build/static/js/5.4fa6174b.chunk.js.map +0 -1
- package/build/static/js/6.84afc8e0.chunk.js +0 -2
- package/build/static/js/6.84afc8e0.chunk.js.map +0 -1
- package/build/static/js/7.33ef0515.chunk.js +0 -2
- package/build/static/js/7.33ef0515.chunk.js.map +0 -1
- package/build/static/js/8.6684f959.chunk.js +0 -2
- package/build/static/js/8.6684f959.chunk.js.map +0 -1
- package/build/static/js/9.d7a1d6be.chunk.js +0 -2
- package/build/static/js/9.d7a1d6be.chunk.js.map +0 -1
- package/build/static/js/main.d9f162f2.chunk.js +0 -2
- package/build/static/js/main.d9f162f2.chunk.js.map +0 -1
package/api/index.js
CHANGED
|
@@ -32,6 +32,7 @@ const createBlockletRoutes = require('./routes/blocklet');
|
|
|
32
32
|
const createDnsResolver = require('./routes/dns-resolver');
|
|
33
33
|
const checkRunning = require('./middlewares/check-running');
|
|
34
34
|
const checkAdminPermission = require('./middlewares/check-admin-permission');
|
|
35
|
+
const checkBlocklet = require('./middlewares/check-blocklet');
|
|
35
36
|
const proxyToDaemon = require('./middlewares/proxy-to-daemon');
|
|
36
37
|
const attachSharedUtils = require('./util/attach-shared-utils');
|
|
37
38
|
|
|
@@ -202,6 +203,8 @@ module.exports = function createServer(node, serverOptions = {}) {
|
|
|
202
203
|
res.sendWebPage();
|
|
203
204
|
});
|
|
204
205
|
|
|
206
|
+
server.use(checkBlocklet);
|
|
207
|
+
|
|
205
208
|
// Middleware: check running
|
|
206
209
|
// Request would not arrive here before blocklet is installed, because there is no config in router provider(nginx)
|
|
207
210
|
server.use(checkRunning);
|
|
@@ -220,8 +223,8 @@ module.exports = function createServer(node, serverOptions = {}) {
|
|
|
220
223
|
});
|
|
221
224
|
|
|
222
225
|
// After all service middleware, we can now safely pass all traffic to blocklets
|
|
223
|
-
server.use((req, res, next) => {
|
|
224
|
-
const { target } = ensureProxyUrl(req);
|
|
226
|
+
server.use(async (req, res, next) => {
|
|
227
|
+
const { target } = await ensureProxyUrl(req);
|
|
225
228
|
|
|
226
229
|
if (target) {
|
|
227
230
|
proxy.safeWeb(req, res, {
|
|
@@ -287,7 +290,7 @@ module.exports = function createServer(node, serverOptions = {}) {
|
|
|
287
290
|
|
|
288
291
|
// Final: directly proxy all websocket request to target blocklet
|
|
289
292
|
wsRouter.use('**', async (req, socket, head) => {
|
|
290
|
-
const { target } = ensureProxyUrl(req);
|
|
293
|
+
const { target } = await ensureProxyUrl(req);
|
|
291
294
|
if (target) {
|
|
292
295
|
let isOpen = false;
|
|
293
296
|
let timer;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const logger = require('@abtnode/logger')(require('../../package.json').name);
|
|
2
|
+
|
|
3
|
+
module.exports = async (req, res, next) => {
|
|
4
|
+
const blocklet = await req.getBlocklet?.();
|
|
5
|
+
|
|
6
|
+
if (!blocklet) {
|
|
7
|
+
logger.error('blocklet not found', { url: req.url, method: req.method, headers: req.headers });
|
|
8
|
+
res.status(500).send('blocklet not found');
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
req.blocklet = blocklet;
|
|
13
|
+
next();
|
|
14
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* eslint-disable arrow-parens */
|
|
2
2
|
const get = require('lodash/get');
|
|
3
3
|
const joinUrl = require('url-join');
|
|
4
|
+
const formatContext = require('@abtnode/util/lib/format-context');
|
|
4
5
|
const {
|
|
5
6
|
messages,
|
|
6
7
|
getVCFromClaims,
|
|
@@ -209,7 +210,7 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
|
|
|
209
210
|
try {
|
|
210
211
|
if (user) {
|
|
211
212
|
// Update user
|
|
212
|
-
await node.updateUser({
|
|
213
|
+
const doc = await node.updateUser({
|
|
213
214
|
teamDid,
|
|
214
215
|
user: {
|
|
215
216
|
did: userDid,
|
|
@@ -219,10 +220,19 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
|
|
|
219
220
|
lastLoginAt: new Date().toISOString(),
|
|
220
221
|
},
|
|
221
222
|
});
|
|
223
|
+
await node.createAuditLog(
|
|
224
|
+
{
|
|
225
|
+
action: 'login',
|
|
226
|
+
args: { teamDid, userDid, passport },
|
|
227
|
+
context: formatContext(Object.assign(req, { user: doc })),
|
|
228
|
+
result: doc,
|
|
229
|
+
},
|
|
230
|
+
node
|
|
231
|
+
);
|
|
222
232
|
} else {
|
|
223
233
|
// Create user
|
|
224
234
|
const profile = claims.find((x) => x.type === 'profile');
|
|
225
|
-
await node.addUser({
|
|
235
|
+
const doc = await node.addUser({
|
|
226
236
|
teamDid,
|
|
227
237
|
user: {
|
|
228
238
|
...profile,
|
|
@@ -235,6 +245,15 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
|
|
|
235
245
|
lastLoginAt: new Date().toISOString(),
|
|
236
246
|
},
|
|
237
247
|
});
|
|
248
|
+
await node.createAuditLog(
|
|
249
|
+
{
|
|
250
|
+
action: 'addUser',
|
|
251
|
+
args: { teamDid, userDid, reason: `first login as ${passport.role}` },
|
|
252
|
+
context: formatContext(Object.assign(req, { user: doc })),
|
|
253
|
+
result: doc,
|
|
254
|
+
},
|
|
255
|
+
node
|
|
256
|
+
);
|
|
238
257
|
}
|
|
239
258
|
|
|
240
259
|
// Generate new session token that client can save to localStorage
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const get = require('lodash/get');
|
|
2
|
+
const formatContext = require('@abtnode/util/lib/format-context');
|
|
2
3
|
const { messages, getVCFromClaims, getUser, validatePassportStatus } = require('@abtnode/auth/lib/auth');
|
|
3
4
|
const { ROLES, VC_TYPE_GENERAL_PASSPORT, VC_TYPE_NODE_PASSPORT } = require('@abtnode/constant');
|
|
4
5
|
const {
|
|
@@ -98,6 +99,15 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
|
|
|
98
99
|
|
|
99
100
|
// Recreate passport with correct role
|
|
100
101
|
passport = createUserPassport(vc, { role });
|
|
102
|
+
await node.createAuditLog(
|
|
103
|
+
{
|
|
104
|
+
action: 'switchPassport',
|
|
105
|
+
args: { teamDid, userDid, passport },
|
|
106
|
+
context: formatContext(Object.assign(req, { user })),
|
|
107
|
+
result: {},
|
|
108
|
+
},
|
|
109
|
+
node
|
|
110
|
+
);
|
|
101
111
|
|
|
102
112
|
// Generate new session token that client can save to localStorage
|
|
103
113
|
const sessionToken = await createSessionToken(userDid, { passport, role });
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const get = require('lodash/get');
|
|
2
|
+
const formatContext = require('@abtnode/util/lib/format-context');
|
|
2
3
|
const { messages, getUser } = require('@abtnode/auth/lib/auth');
|
|
3
4
|
const { NODE_SERVICES } = require('@abtnode/constant');
|
|
4
5
|
|
|
@@ -47,7 +48,7 @@ module.exports = function createRoutes(node) {
|
|
|
47
48
|
|
|
48
49
|
// Update user
|
|
49
50
|
const profile = claims.find((x) => x.type === 'profile');
|
|
50
|
-
await node.updateUser({
|
|
51
|
+
const doc = await node.updateUser({
|
|
51
52
|
teamDid,
|
|
52
53
|
user: {
|
|
53
54
|
...user,
|
|
@@ -55,6 +56,15 @@ module.exports = function createRoutes(node) {
|
|
|
55
56
|
locale,
|
|
56
57
|
},
|
|
57
58
|
});
|
|
59
|
+
await node.createAuditLog(
|
|
60
|
+
{
|
|
61
|
+
action: 'switchProfile',
|
|
62
|
+
args: { teamDid, userDid, profile },
|
|
63
|
+
context: formatContext(Object.assign(req, { user })),
|
|
64
|
+
result: doc,
|
|
65
|
+
},
|
|
66
|
+
node
|
|
67
|
+
);
|
|
58
68
|
},
|
|
59
69
|
};
|
|
60
70
|
};
|
package/api/util/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
const joinUrl = require('url-join');
|
|
2
2
|
const get = require('lodash/get');
|
|
3
3
|
const { ROLES } = require('@abtnode/constant');
|
|
4
|
-
const { BlockletSource, BLOCKLET_MODES } = require('@blocklet/meta/lib/constants');
|
|
4
|
+
const { BlockletSource, BLOCKLET_MODES, BlockletGroup } = require('@blocklet/meta/lib/constants');
|
|
5
|
+
const { findWebInterface } = require('@blocklet/meta/lib/util');
|
|
5
6
|
const { WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
6
7
|
|
|
7
|
-
const
|
|
8
|
+
const getGroupPrefix = (req) => {
|
|
8
9
|
if (req.headers['x-group-path-prefix']) {
|
|
9
10
|
return `/${req.headers['x-group-path-prefix']}/`.replace(/\/+/g, '/');
|
|
10
11
|
}
|
|
@@ -12,6 +13,14 @@ const getBaseUrl = (req) => {
|
|
|
12
13
|
return '/';
|
|
13
14
|
};
|
|
14
15
|
|
|
16
|
+
const getComponentPrefix = (req) => {
|
|
17
|
+
if (req.headers['x-path-prefix']) {
|
|
18
|
+
return `/${req.headers['x-path-prefix']}/`.replace(/\/+/g, '/');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return '/';
|
|
22
|
+
};
|
|
23
|
+
|
|
15
24
|
const getLogoFromLogoUrl = (blocklet, version) => {
|
|
16
25
|
try {
|
|
17
26
|
if (!blocklet.meta.logoUrl) {
|
|
@@ -61,7 +70,33 @@ const shouldGotoStartPage = (req, blocklet) => {
|
|
|
61
70
|
return false;
|
|
62
71
|
};
|
|
63
72
|
|
|
64
|
-
const
|
|
73
|
+
const findRootWebPort = (blocklet) => {
|
|
74
|
+
if (!blocklet) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (blocklet.group !== BlockletGroup.gateway) {
|
|
79
|
+
// FIXME blocklet web port should be forced to BLOCKLET_PORT? (convention over configuration)
|
|
80
|
+
const webInterface = findWebInterface(blocklet);
|
|
81
|
+
return blocklet.ports[webInterface?.port || 'BLOCKLET_PORT'];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return findRootWebPort(blocklet.children[0]);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const ensureProxyUrl = async (req) => {
|
|
88
|
+
if (req.url.startsWith('/favicon')) {
|
|
89
|
+
// convert all faviconXXX to favicon to ensure file exists in root blocklet
|
|
90
|
+
req.url = '/favicon.ico';
|
|
91
|
+
|
|
92
|
+
const port = findRootWebPort(await req.getBlocklet());
|
|
93
|
+
if (port) {
|
|
94
|
+
return { target: `http://127.0.0.1:${port}` };
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return { target: null };
|
|
98
|
+
}
|
|
99
|
+
|
|
65
100
|
const target = req.headers['x-blocklet-url'];
|
|
66
101
|
|
|
67
102
|
if (target) {
|
|
@@ -76,15 +111,18 @@ const ensureProxyUrl = (req) => {
|
|
|
76
111
|
};
|
|
77
112
|
|
|
78
113
|
const getRedirectUrl = ({ req, pagePath }) => {
|
|
79
|
-
const
|
|
114
|
+
const groupPrefix = getGroupPrefix(req);
|
|
115
|
+
const componentPrefix = getComponentPrefix(req);
|
|
116
|
+
const redirectPrefix = groupPrefix === componentPrefix ? groupPrefix : componentPrefix;
|
|
117
|
+
|
|
80
118
|
const redirectUrlObj = new URL(`http://localhost${req.url}`);
|
|
81
119
|
// 重定向时考虑 serverUrl 查询参数的处理
|
|
82
120
|
const serverUrl = redirectUrlObj.searchParams.get('serverUrl');
|
|
83
121
|
redirectUrlObj.searchParams.delete('__start__');
|
|
84
122
|
redirectUrlObj.searchParams.delete('serverUrl');
|
|
85
|
-
const redirectUrl = `${
|
|
123
|
+
const redirectUrl = `${redirectPrefix.replace(/\/+$/, '')}${redirectUrlObj.pathname}${redirectUrlObj.search}`;
|
|
86
124
|
|
|
87
|
-
const url = new URL(`http://localhost${joinUrl(
|
|
125
|
+
const url = new URL(`http://localhost${joinUrl(groupPrefix, WELLKNOWN_SERVICE_PATH_PREFIX, pagePath || '/')}`);
|
|
88
126
|
url.searchParams.set('redirect', redirectUrl);
|
|
89
127
|
|
|
90
128
|
const locale = new URL(`http://localhost${req.url}`).searchParams.get('locale');
|
|
@@ -104,4 +142,5 @@ module.exports = {
|
|
|
104
142
|
shouldGotoStartPage,
|
|
105
143
|
ensureProxyUrl,
|
|
106
144
|
getRedirectUrl,
|
|
145
|
+
findRootWebPort,
|
|
107
146
|
};
|
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
|
-
"static/js/0.
|
|
4
|
-
"static/js/0.
|
|
5
|
-
"static/js/1.
|
|
6
|
-
"static/js/1.
|
|
7
|
-
"main.js": "/.blocklet/proxy/blocklet-service/static/js/main.
|
|
8
|
-
"main.js.map": "/.blocklet/proxy/blocklet-service/static/js/main.
|
|
9
|
-
"runtime-main.js": "/.blocklet/proxy/blocklet-service/static/js/runtime-main.
|
|
10
|
-
"runtime-main.js.map": "/.blocklet/proxy/blocklet-service/static/js/runtime-main.
|
|
3
|
+
"static/js/0.0e886baa.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/0.0e886baa.chunk.js",
|
|
4
|
+
"static/js/0.0e886baa.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/0.0e886baa.chunk.js.map",
|
|
5
|
+
"static/js/1.ad8ebbc7.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/1.ad8ebbc7.chunk.js",
|
|
6
|
+
"static/js/1.ad8ebbc7.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/1.ad8ebbc7.chunk.js.map",
|
|
7
|
+
"main.js": "/.blocklet/proxy/blocklet-service/static/js/main.de8a9159.chunk.js",
|
|
8
|
+
"main.js.map": "/.blocklet/proxy/blocklet-service/static/js/main.de8a9159.chunk.js.map",
|
|
9
|
+
"runtime-main.js": "/.blocklet/proxy/blocklet-service/static/js/runtime-main.829b2277.js",
|
|
10
|
+
"runtime-main.js.map": "/.blocklet/proxy/blocklet-service/static/js/runtime-main.829b2277.js.map",
|
|
11
11
|
"static/css/4.6e1172e8.chunk.css": "/.blocklet/proxy/blocklet-service/static/css/4.6e1172e8.chunk.css",
|
|
12
|
-
"static/js/4.
|
|
13
|
-
"static/js/4.
|
|
14
|
-
"static/js/5.
|
|
15
|
-
"static/js/5.
|
|
16
|
-
"static/js/6.
|
|
17
|
-
"static/js/6.
|
|
18
|
-
"static/js/7.
|
|
19
|
-
"static/js/7.
|
|
20
|
-
"static/js/8.
|
|
21
|
-
"static/js/8.
|
|
22
|
-
"static/js/9.
|
|
23
|
-
"static/js/9.
|
|
24
|
-
"static/js/10.
|
|
25
|
-
"static/js/10.
|
|
12
|
+
"static/js/4.5ba3405d.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/4.5ba3405d.chunk.js",
|
|
13
|
+
"static/js/4.5ba3405d.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/4.5ba3405d.chunk.js.map",
|
|
14
|
+
"static/js/5.bbb19a41.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/5.bbb19a41.chunk.js",
|
|
15
|
+
"static/js/5.bbb19a41.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/5.bbb19a41.chunk.js.map",
|
|
16
|
+
"static/js/6.81f46015.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/6.81f46015.chunk.js",
|
|
17
|
+
"static/js/6.81f46015.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/6.81f46015.chunk.js.map",
|
|
18
|
+
"static/js/7.bf50e386.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/7.bf50e386.chunk.js",
|
|
19
|
+
"static/js/7.bf50e386.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/7.bf50e386.chunk.js.map",
|
|
20
|
+
"static/js/8.7b812796.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/8.7b812796.chunk.js",
|
|
21
|
+
"static/js/8.7b812796.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/8.7b812796.chunk.js.map",
|
|
22
|
+
"static/js/9.fb2b8a65.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/9.fb2b8a65.chunk.js",
|
|
23
|
+
"static/js/9.fb2b8a65.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/9.fb2b8a65.chunk.js.map",
|
|
24
|
+
"static/js/10.4bc669a4.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/10.4bc669a4.chunk.js",
|
|
25
|
+
"static/js/10.4bc669a4.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/10.4bc669a4.chunk.js.map",
|
|
26
26
|
"index.html": "/.blocklet/proxy/blocklet-service/index.html",
|
|
27
|
-
"precache-manifest.
|
|
27
|
+
"precache-manifest.fa7b4ab579d57fabdd2f661bbe9477eb.js": "/.blocklet/proxy/blocklet-service/precache-manifest.fa7b4ab579d57fabdd2f661bbe9477eb.js",
|
|
28
28
|
"service-worker.js": "/.blocklet/proxy/blocklet-service/service-worker.js",
|
|
29
29
|
"static/css/4.6e1172e8.chunk.css.map": "/.blocklet/proxy/blocklet-service/static/css/4.6e1172e8.chunk.css.map",
|
|
30
|
-
"static/js/0.
|
|
31
|
-
"static/js/4.
|
|
30
|
+
"static/js/0.0e886baa.chunk.js.LICENSE.txt": "/.blocklet/proxy/blocklet-service/static/js/0.0e886baa.chunk.js.LICENSE.txt",
|
|
31
|
+
"static/js/4.5ba3405d.chunk.js.LICENSE.txt": "/.blocklet/proxy/blocklet-service/static/js/4.5ba3405d.chunk.js.LICENSE.txt",
|
|
32
32
|
"static/media/400.css": "/.blocklet/proxy/blocklet-service/static/media/ubuntu-mono-latin-ext-400-normal.84fa8bc1.woff2",
|
|
33
33
|
"static/media/700.css": "/.blocklet/proxy/blocklet-service/static/media/lato-latin-ext-700-normal.a48b0f04.woff2"
|
|
34
34
|
},
|
|
35
35
|
"entrypoints": [
|
|
36
|
-
"static/js/runtime-main.
|
|
36
|
+
"static/js/runtime-main.829b2277.js",
|
|
37
37
|
"static/css/4.6e1172e8.chunk.css",
|
|
38
|
-
"static/js/4.
|
|
39
|
-
"static/js/main.
|
|
38
|
+
"static/js/4.5ba3405d.chunk.js",
|
|
39
|
+
"static/js/main.de8a9159.chunk.js"
|
|
40
40
|
]
|
|
41
41
|
}
|
package/build/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/.well-known/service/static/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"/><meta name="theme-color" content="#000000"/><title>Blocklet Service</title><script src="
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/.well-known/service/static/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"/><meta name="theme-color" content="#000000"/><title>Blocklet Service</title><script src=".well-known/service/api/env"></script><link href="/.blocklet/proxy/blocklet-service/static/css/4.6e1172e8.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function t(t){for(var n,u,i=t[0],l=t[1],f=t[2],s=t[3]||[],d=0,b=[];d<i.length;d++)u=i[d],Object.prototype.hasOwnProperty.call(o,u)&&o[u]&&b.push(o[u][0]),o[u]=0;for(n in l)Object.prototype.hasOwnProperty.call(l,n)&&(e[n]=l[n]);for(p&&p(t),c.push.apply(c,s);b.length;)b.shift()();return a.push.apply(a,f||[]),r()}function r(){for(var e,t=0;t<a.length;t++){for(var r=a[t],n=!0,l=1;l<r.length;l++){var f=r[l];0!==o[f]&&(n=!1)}n&&(a.splice(t--,1),e=i(i.s=r[0]))}return 0===a.length&&(c.forEach((function(e){if(void 0===o[e]){o[e]=null;var t=document.createElement("link");i.nc&&t.setAttribute("nonce",i.nc),t.rel="prefetch",t.as="script",t.href=u(e),document.head.appendChild(t)}})),c.length=0),e}var n={},o={3:0},a=[],c=[];function u(e){return i.p+"static/js/"+({}[e]||e)+"."+{0:"0e886baa",1:"ad8ebbc7",5:"bbb19a41",6:"81f46015",7:"bf50e386",8:"7b812796",9:"fb2b8a65",10:"4bc669a4"}[e]+".chunk.js"}function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[],r=o[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=n);var a,c=document.createElement("script");c.charset="utf-8",c.timeout=120,i.nc&&c.setAttribute("nonce",i.nc),c.src=u(e);var l=new Error;a=function(t){c.onerror=c.onload=null,clearTimeout(f);var r=o[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+n+": "+a+")",l.name="ChunkLoadError",l.type=n,l.request=a,r[1](l)}o[e]=void 0}};var f=setTimeout((function(){a({type:"timeout",target:c})}),12e4);c.onerror=c.onload=a,document.head.appendChild(c)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/.blocklet/proxy/blocklet-service/",i.oe=function(e){throw console.error(e),e};var l=this["webpackJsonp@abtnode/blocklet-services"]=this["webpackJsonp@abtnode/blocklet-services"]||[],f=l.push.bind(l);l.push=t,l=l.slice();for(var s=0;s<l.length;s++)t(l[s]);var p=f;r()}([])</script><script src="/.blocklet/proxy/blocklet-service/static/js/4.5ba3405d.chunk.js"></script><script src="/.blocklet/proxy/blocklet-service/static/js/main.de8a9159.chunk.js"></script></body></html>
|
|
@@ -1,63 +1,63 @@
|
|
|
1
1
|
self.__precacheManifest = (self.__precacheManifest || []).concat([
|
|
2
2
|
{
|
|
3
|
-
"revision": "
|
|
3
|
+
"revision": "337a19b24f778adf46b25a39ae7caa0d",
|
|
4
4
|
"url": "/.blocklet/proxy/blocklet-service/index.html"
|
|
5
5
|
},
|
|
6
6
|
{
|
|
7
|
-
"revision": "
|
|
7
|
+
"revision": "e2fe3e5a088ed2a118d0",
|
|
8
8
|
"url": "/.blocklet/proxy/blocklet-service/static/css/4.6e1172e8.chunk.css"
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
|
-
"revision": "
|
|
12
|
-
"url": "/.blocklet/proxy/blocklet-service/static/js/0.
|
|
11
|
+
"revision": "e9b8bd4130ce704c6e8b",
|
|
12
|
+
"url": "/.blocklet/proxy/blocklet-service/static/js/0.0e886baa.chunk.js"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"revision": "327dea51c54983f5708f4242bceacaed",
|
|
16
|
-
"url": "/.blocklet/proxy/blocklet-service/static/js/0.
|
|
16
|
+
"url": "/.blocklet/proxy/blocklet-service/static/js/0.0e886baa.chunk.js.LICENSE.txt"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
"revision": "
|
|
20
|
-
"url": "/.blocklet/proxy/blocklet-service/static/js/1.
|
|
19
|
+
"revision": "f70e952e6980c42dd9ed",
|
|
20
|
+
"url": "/.blocklet/proxy/blocklet-service/static/js/1.ad8ebbc7.chunk.js"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
|
-
"revision": "
|
|
24
|
-
"url": "/.blocklet/proxy/blocklet-service/static/js/10.
|
|
23
|
+
"revision": "6649c0da21b46b5ee2ef",
|
|
24
|
+
"url": "/.blocklet/proxy/blocklet-service/static/js/10.4bc669a4.chunk.js"
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
|
-
"revision": "
|
|
28
|
-
"url": "/.blocklet/proxy/blocklet-service/static/js/4.
|
|
27
|
+
"revision": "e2fe3e5a088ed2a118d0",
|
|
28
|
+
"url": "/.blocklet/proxy/blocklet-service/static/js/4.5ba3405d.chunk.js"
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
|
-
"revision": "
|
|
32
|
-
"url": "/.blocklet/proxy/blocklet-service/static/js/4.
|
|
31
|
+
"revision": "f101b2fce3f1d0e331470363e3a5af12",
|
|
32
|
+
"url": "/.blocklet/proxy/blocklet-service/static/js/4.5ba3405d.chunk.js.LICENSE.txt"
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
"revision": "
|
|
36
|
-
"url": "/.blocklet/proxy/blocklet-service/static/js/5.
|
|
35
|
+
"revision": "b81a8615f477a8b3ca39",
|
|
36
|
+
"url": "/.blocklet/proxy/blocklet-service/static/js/5.bbb19a41.chunk.js"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
|
-
"revision": "
|
|
40
|
-
"url": "/.blocklet/proxy/blocklet-service/static/js/6.
|
|
39
|
+
"revision": "1c40c9b1bb09350cdd66",
|
|
40
|
+
"url": "/.blocklet/proxy/blocklet-service/static/js/6.81f46015.chunk.js"
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
|
-
"revision": "
|
|
44
|
-
"url": "/.blocklet/proxy/blocklet-service/static/js/7.
|
|
43
|
+
"revision": "1a64c18f218d0400ad40",
|
|
44
|
+
"url": "/.blocklet/proxy/blocklet-service/static/js/7.bf50e386.chunk.js"
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
|
-
"revision": "
|
|
48
|
-
"url": "/.blocklet/proxy/blocklet-service/static/js/8.
|
|
47
|
+
"revision": "c54ffdb1c50de7905e3d",
|
|
48
|
+
"url": "/.blocklet/proxy/blocklet-service/static/js/8.7b812796.chunk.js"
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
|
-
"revision": "
|
|
52
|
-
"url": "/.blocklet/proxy/blocklet-service/static/js/9.
|
|
51
|
+
"revision": "d16debb8d421cef9037e",
|
|
52
|
+
"url": "/.blocklet/proxy/blocklet-service/static/js/9.fb2b8a65.chunk.js"
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
|
-
"revision": "
|
|
56
|
-
"url": "/.blocklet/proxy/blocklet-service/static/js/main.
|
|
55
|
+
"revision": "c68b2db4b388a2373487",
|
|
56
|
+
"url": "/.blocklet/proxy/blocklet-service/static/js/main.de8a9159.chunk.js"
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
|
-
"revision": "
|
|
60
|
-
"url": "/.blocklet/proxy/blocklet-service/static/js/runtime-main.
|
|
59
|
+
"revision": "014d106a0d49e329b5d9",
|
|
60
|
+
"url": "/.blocklet/proxy/blocklet-service/static/js/runtime-main.829b2277.js"
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
"revision": "a82dcb33d52ed6fa529e5ae8d5fda7f3",
|
package/build/service-worker.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
|
|
15
15
|
|
|
16
16
|
importScripts(
|
|
17
|
-
"/.blocklet/proxy/blocklet-service/precache-manifest.
|
|
17
|
+
"/.blocklet/proxy/blocklet-service/precache-manifest.fa7b4ab579d57fabdd2f661bbe9477eb.js"
|
|
18
18
|
);
|
|
19
19
|
|
|
20
20
|
self.addEventListener('message', (event) => {
|