@abtnode/blocklet-services 1.16.19-beta-630ac853 → 1.16.19-beta-626e4d43
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 +1 -0
- package/api/middlewares/check-running.js +4 -2
- package/api/routes/user.js +35 -1
- package/api/services/auth/index.js +20 -26
- package/api/services/auth/session.js +2 -3
- package/api/util/attach-shared-utils.js +32 -0
- package/api/validators/login.js +13 -0
- package/build/asset-manifest.json +61 -57
- package/build/index.html +1 -1
- package/build/service-worker.js +1 -1
- package/build/service-worker.js.map +1 -1
- package/build/static/js/1035.ceeeaa2a.chunk.js +2 -0
- package/build/static/js/1275.34d2fab6.chunk.js +2 -0
- package/build/static/js/1318.11dffa16.chunk.js +2 -0
- package/build/static/js/1343.69031e0b.chunk.js +2 -0
- package/build/static/js/1809.2d1a1fe4.chunk.js +2 -0
- package/build/static/js/1946.b8762af5.chunk.js +2 -0
- package/build/static/js/{3490.4d3a51ea.chunk.js → 2362.ab5308a8.chunk.js} +2 -2
- package/build/static/js/{3131.477fef7e.chunk.js → 3131.b2bb8f6c.chunk.js} +2 -2
- package/build/static/js/3842.780dc9e9.chunk.js +3 -0
- package/build/static/js/3925.948d992d.chunk.js +2 -0
- package/build/static/js/{4881.8ba32996.chunk.js → 4881.1de6ed4a.chunk.js} +2 -2
- package/build/static/js/5047.2f665ae5.chunk.js +2 -0
- package/build/static/js/5070.5979037b.chunk.js +2 -0
- package/build/static/js/5434.523d071d.chunk.js +2 -0
- package/build/static/js/5785.38eedf8e.chunk.js +2 -0
- package/build/static/js/5820.c40d570f.chunk.js +2 -0
- package/build/static/js/6326.2816fb2f.chunk.js +2 -0
- package/build/static/js/6400.0d9d1b25.chunk.js +2 -0
- package/build/static/js/{6629.a4a3fb70.chunk.js → 6629.fd9d74f5.chunk.js} +3 -3
- package/build/static/js/717.ec2ba6d0.chunk.js +2 -0
- package/build/static/js/7556.218caceb.chunk.js +2 -0
- package/build/static/js/779.cbad02fa.chunk.js +2 -0
- package/build/static/js/7858.dda2dc10.chunk.js +2 -0
- package/build/static/js/7973.7d559f93.chunk.js +3 -0
- package/build/static/js/8283.20452732.chunk.js +2 -0
- package/build/static/js/8944.f4f91564.chunk.js +2 -0
- package/build/static/js/8983.020df395.chunk.js +2 -0
- package/build/static/js/{9194.8e4efb4f.chunk.js → 9194.6800abab.chunk.js} +2 -2
- package/build/static/js/9900.26718c8f.chunk.js +2 -0
- package/build/static/js/main.6fc39419.js +3 -0
- package/package.json +34 -34
- package/build/static/js/1946.dd7542b8.chunk.js +0 -2
- package/build/static/js/218.74e73a26.chunk.js +0 -2
- package/build/static/js/2761.a62dc611.chunk.js +0 -2
- package/build/static/js/3557.bfa0e436.chunk.js +0 -2
- package/build/static/js/3688.679796d1.chunk.js +0 -2
- package/build/static/js/3842.9917fe86.chunk.js +0 -3
- package/build/static/js/4160.e45b5ba1.chunk.js +0 -2
- package/build/static/js/5070.267c5f25.chunk.js +0 -2
- package/build/static/js/530.a11fe287.chunk.js +0 -2
- package/build/static/js/5673.0dd67df6.chunk.js +0 -2
- package/build/static/js/5710.a221ffa5.chunk.js +0 -2
- package/build/static/js/5856.8f363ad8.chunk.js +0 -3
- package/build/static/js/6032.1a233c60.chunk.js +0 -2
- package/build/static/js/6112.55185ef9.chunk.js +0 -2
- package/build/static/js/779.24f379f7.chunk.js +0 -2
- package/build/static/js/7858.7726a169.chunk.js +0 -2
- package/build/static/js/7892.029c9f9b.chunk.js +0 -2
- package/build/static/js/8283.f3a42d0f.chunk.js +0 -2
- package/build/static/js/8944.15202aad.chunk.js +0 -2
- package/build/static/js/8983.f509aca0.chunk.js +0 -2
- package/build/static/js/9596.ca68de69.chunk.js +0 -2
- package/build/static/js/9900.2dea9cda.chunk.js +0 -2
- package/build/static/js/main.5cfc7d0e.js +0 -3
- /package/build/static/js/{3842.9917fe86.chunk.js.LICENSE.txt → 3842.780dc9e9.chunk.js.LICENSE.txt} +0 -0
- /package/build/static/js/{6629.a4a3fb70.chunk.js.LICENSE.txt → 6629.fd9d74f5.chunk.js.LICENSE.txt} +0 -0
- /package/build/static/js/{5856.8f363ad8.chunk.js.LICENSE.txt → 7973.7d559f93.chunk.js.LICENSE.txt} +0 -0
- /package/build/static/js/{main.5cfc7d0e.js.LICENSE.txt → main.6fc39419.js.LICENSE.txt} +0 -0
package/api/index.js
CHANGED
|
@@ -268,6 +268,7 @@ module.exports = function createServer(node, serverOptions = {}) {
|
|
|
268
268
|
createConnectRelayRoutes.init(server, node, options, wsRouter);
|
|
269
269
|
authRoutes.attachDidAuthHandlers(server);
|
|
270
270
|
authRoutes.createPassportRoutes.init(server, node);
|
|
271
|
+
authRoutes.createCommonRoutes.init(server, node);
|
|
271
272
|
|
|
272
273
|
// API: gql
|
|
273
274
|
[
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const { BlockletStatus } = require('@blocklet/constant');
|
|
2
2
|
const getBlockletMaintenanceTemplate = require('@abtnode/router-templates/lib/blocklet-maintenance');
|
|
3
3
|
const { findComponentByIdV2 } = require('@blocklet/meta/lib/util');
|
|
4
|
+
const logger = require('@abtnode/logger')(require('../../package.json').name);
|
|
4
5
|
|
|
5
6
|
const { shouldGotoStartPage, getRedirectUrl } = require('../util');
|
|
6
7
|
|
|
@@ -21,9 +22,10 @@ const checkRunning = async (req, res, next) => {
|
|
|
21
22
|
].includes(component.status)
|
|
22
23
|
) {
|
|
23
24
|
if (shouldGotoStartPage(req, component)) {
|
|
24
|
-
// FIXME: @wangshijun how to validate this token or generate token here?
|
|
25
25
|
if (req.query.setupToken) {
|
|
26
|
-
|
|
26
|
+
await req.attachSetupToken({ res, token: req.query.setupToken }).catch((error) => {
|
|
27
|
+
logger.error('attach login token failed when redirecting to starting page', { error }); // 不阻跳转
|
|
28
|
+
});
|
|
27
29
|
}
|
|
28
30
|
if (app.settings.initialized) {
|
|
29
31
|
res.redirect(getRedirectUrl({ req, pagePath: '/start' }));
|
package/api/routes/user.js
CHANGED
|
@@ -15,7 +15,7 @@ const { isInvitedUserOnly, createTokenFn, getDidConnectVersion } = require('../u
|
|
|
15
15
|
const initJwt = require('../libs/jwt');
|
|
16
16
|
const { getAvatarByUrl } = require('../libs/auth/utils');
|
|
17
17
|
const { ApiError } = require('../util/error');
|
|
18
|
-
const { loginWalletSchema, loginOAuthSchema, loginUserWalletSchema } = require('../validators/login');
|
|
18
|
+
const { loginWalletSchema, loginOAuthSchema, loginUserWalletSchema, checkUserSchema } = require('../validators/login');
|
|
19
19
|
const verifySig = require('../middlewares/verify-sig');
|
|
20
20
|
const { getAvatarByEmail } = require('../libs/auth/utils');
|
|
21
21
|
const ensureBlocklet = require('../middlewares/ensure-blocklet');
|
|
@@ -474,6 +474,40 @@ module.exports = {
|
|
|
474
474
|
});
|
|
475
475
|
});
|
|
476
476
|
|
|
477
|
+
server.post(`${prefixApi}/checkUser`, async (req, res) => {
|
|
478
|
+
const { users = [], sourceAppPid } = req.body;
|
|
479
|
+
const { error } = checkUserSchema.validate({
|
|
480
|
+
users,
|
|
481
|
+
sourceAppPid,
|
|
482
|
+
});
|
|
483
|
+
if (error) {
|
|
484
|
+
throw new ApiError(400, error.message);
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
const blocklet = await req.getBlocklet();
|
|
488
|
+
const { did: teamDid } = await req.getBlockletInfo();
|
|
489
|
+
const pendingList = users.map(async (item) => {
|
|
490
|
+
if (item?.did && item?.pk) {
|
|
491
|
+
const findUser = await getUserWithinFederated(
|
|
492
|
+
{ sourceAppPid, teamDid, userDid: item.did, userPk: item.pk },
|
|
493
|
+
{ node, blocklet }
|
|
494
|
+
);
|
|
495
|
+
const resItem = { ...item, exist: false, approved: false };
|
|
496
|
+
if (findUser) {
|
|
497
|
+
resItem.exist = true;
|
|
498
|
+
if (findUser.approved) {
|
|
499
|
+
resItem.approved = true;
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
return resItem;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
return item;
|
|
506
|
+
});
|
|
507
|
+
const resList = await Promise.all(pendingList);
|
|
508
|
+
res.json({ users: resList });
|
|
509
|
+
});
|
|
510
|
+
|
|
477
511
|
server.post(`${prefixApi}/logout`, ensureBlocklet(), async (req, res) => {
|
|
478
512
|
if (req.user) {
|
|
479
513
|
const { blocklet } = req;
|
|
@@ -14,6 +14,7 @@ const {
|
|
|
14
14
|
const { BLOCKLET_MODES } = require('@blocklet/constant');
|
|
15
15
|
const { setUserInfoHeaders } = require('@abtnode/auth/lib/auth');
|
|
16
16
|
const { getRolesFromAuthConfig } = require('@blocklet/meta/lib/util');
|
|
17
|
+
const logger = require('@abtnode/logger')(require('../../../package.json').name);
|
|
17
18
|
|
|
18
19
|
const initJwt = require('../../libs/jwt');
|
|
19
20
|
const initAuth = require('../../libs/connect/v1');
|
|
@@ -38,7 +39,7 @@ const createReceiveTransferAppOwnerRoutes = require('./connect/receive-transfer-
|
|
|
38
39
|
const createSessionRoutes = require('./session');
|
|
39
40
|
const createPassportRoutes = require('./passport');
|
|
40
41
|
const { getRedirectUrl, shouldIgnoreUrl } = require('../../util');
|
|
41
|
-
const {
|
|
42
|
+
const { PREFIXES } = require('../../util/constants');
|
|
42
43
|
|
|
43
44
|
const getTokenFromWsConnect = (req, options) => {
|
|
44
45
|
const cookies = cookie.parse(req.headers.cookie || '');
|
|
@@ -62,27 +63,6 @@ const REASON_404 = 'Not Found';
|
|
|
62
63
|
const init = ({ node, options }) => {
|
|
63
64
|
const { createSessionToken, verifySessionToken } = initJwt(node, options);
|
|
64
65
|
|
|
65
|
-
/**
|
|
66
|
-
* set user info to req.user
|
|
67
|
-
*/
|
|
68
|
-
const ensureUser = async ({ req, token } = {}) => {
|
|
69
|
-
try {
|
|
70
|
-
if (token) {
|
|
71
|
-
const teamDid = req.getBlockletDid();
|
|
72
|
-
const { secret } = await req.getBlockletInfo();
|
|
73
|
-
const opt = {
|
|
74
|
-
checkFromDb: (decoded) => sessionCacheDisabledUser.get(decoded?.did),
|
|
75
|
-
teamDid,
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
const user = await verifySessionToken(token, secret, opt);
|
|
79
|
-
req.user = user;
|
|
80
|
-
}
|
|
81
|
-
} catch {
|
|
82
|
-
// Do nothing
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
|
|
86
66
|
/**
|
|
87
67
|
* @typedef {object} CheckAuthRes
|
|
88
68
|
* @property {boolean} blocked
|
|
@@ -227,7 +207,7 @@ const init = ({ node, options }) => {
|
|
|
227
207
|
// set user info to req.user and req.headers
|
|
228
208
|
middlewares.userInfo = async (req, res, next) => {
|
|
229
209
|
const { token } = req;
|
|
230
|
-
await ensureUser({
|
|
210
|
+
await req.ensureUser({ token });
|
|
231
211
|
|
|
232
212
|
setUserInfoHeaders(req);
|
|
233
213
|
|
|
@@ -265,11 +245,25 @@ const init = ({ node, options }) => {
|
|
|
265
245
|
createSessionRoutes.init(router, node, createSessionToken, {
|
|
266
246
|
...options,
|
|
267
247
|
middlewares,
|
|
268
|
-
ensureUser,
|
|
269
248
|
createSessionToken,
|
|
270
249
|
verifySessionToken,
|
|
271
250
|
}),
|
|
272
251
|
};
|
|
252
|
+
routes.createCommonRoutes = {
|
|
253
|
+
init: (router) => {
|
|
254
|
+
PREFIXES.forEach((prefix) => {
|
|
255
|
+
router.get(`${prefix}/redirect-with-login`, async (req, res) => {
|
|
256
|
+
if (req.query.setupToken) {
|
|
257
|
+
await req.attachSetupToken({ res, token: req.query.setupToken }).catch((error) => {
|
|
258
|
+
logger.error('attach login token failed when redirecting with login', { error }); // 不阻塞跳转
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
res.redirect('/');
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
},
|
|
266
|
+
};
|
|
273
267
|
|
|
274
268
|
const ensureWsUser = async (req) => {
|
|
275
269
|
const token = getTokenFromWsConnect(req, options);
|
|
@@ -279,7 +273,7 @@ const init = ({ node, options }) => {
|
|
|
279
273
|
return;
|
|
280
274
|
}
|
|
281
275
|
|
|
282
|
-
await ensureUser({
|
|
276
|
+
await req.ensureUser({ token });
|
|
283
277
|
};
|
|
284
278
|
|
|
285
279
|
// auth middleware for websocket connect
|
|
@@ -292,7 +286,7 @@ const init = ({ node, options }) => {
|
|
|
292
286
|
return;
|
|
293
287
|
}
|
|
294
288
|
|
|
295
|
-
await ensureUser({
|
|
289
|
+
await req.ensureUser({ token });
|
|
296
290
|
|
|
297
291
|
setUserInfoHeaders(req);
|
|
298
292
|
|
|
@@ -20,14 +20,13 @@ module.exports = {
|
|
|
20
20
|
const {
|
|
21
21
|
verifySessionToken,
|
|
22
22
|
middlewares: { sessionBearerToken, refreshBearerToken },
|
|
23
|
-
ensureUser,
|
|
24
23
|
} = options;
|
|
25
24
|
const createToken = createTokenFn(createSessionToken);
|
|
26
25
|
|
|
27
26
|
PREFIXES.forEach((prefix) => {
|
|
28
27
|
const handleSession = async (req, res) => {
|
|
29
28
|
const { token } = req;
|
|
30
|
-
await ensureUser({
|
|
29
|
+
await req.ensureUser({ token });
|
|
31
30
|
|
|
32
31
|
if (!req.user) {
|
|
33
32
|
res.json({ user: null });
|
|
@@ -74,7 +73,7 @@ module.exports = {
|
|
|
74
73
|
const extraApi = `${prefix}/api/user/extra`;
|
|
75
74
|
const checkUser = async (req, res, next) => {
|
|
76
75
|
const { token } = req;
|
|
77
|
-
await ensureUser({
|
|
76
|
+
await req.ensureUser({ token });
|
|
78
77
|
if (!req.user) {
|
|
79
78
|
res.status(403).json(null);
|
|
80
79
|
} else {
|
|
@@ -8,6 +8,7 @@ const cache = require('../cache');
|
|
|
8
8
|
const formatContext = require('./format-context');
|
|
9
9
|
const getDynamicServiceConfig = require('./get-dynamic-service-config');
|
|
10
10
|
const getStaticServiceConfig = require('./get-static-service-config');
|
|
11
|
+
const initJwt = require('../libs/jwt');
|
|
11
12
|
|
|
12
13
|
module.exports = ({ node, req, options }) => {
|
|
13
14
|
req.getBlockletDid = () => req.headers['x-blocklet-did'] || get(options, 'blockletDid', '');
|
|
@@ -98,6 +99,37 @@ module.exports = ({ node, req, options }) => {
|
|
|
98
99
|
return cache.getBlockletInfo({ did, node });
|
|
99
100
|
};
|
|
100
101
|
|
|
102
|
+
const { verifySessionToken } = initJwt(node, options);
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* set user info to req.user
|
|
106
|
+
*/
|
|
107
|
+
req.ensureUser = async ({ token } = {}) => {
|
|
108
|
+
try {
|
|
109
|
+
if (token) {
|
|
110
|
+
const teamDid = req.getBlockletDid();
|
|
111
|
+
const { secret } = await req.getBlockletInfo();
|
|
112
|
+
const opt = {
|
|
113
|
+
checkFromDb: (decoded) => cache.sessionCacheDisabledUser.get(decoded?.did),
|
|
114
|
+
teamDid,
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const user = await verifySessionToken(token, secret, opt);
|
|
118
|
+
req.user = user;
|
|
119
|
+
}
|
|
120
|
+
} catch {
|
|
121
|
+
// Do nothing
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
req.attachSetupToken = async ({ res, token }) => {
|
|
126
|
+
await req.ensureUser({ token });
|
|
127
|
+
|
|
128
|
+
if (req.user) {
|
|
129
|
+
res.cookie('login_token', token, { maxAge: 24 * 60 * 60 * 1000 });
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
|
|
101
133
|
req.cache = cache;
|
|
102
134
|
};
|
|
103
135
|
|
package/api/validators/login.js
CHANGED
|
@@ -31,6 +31,19 @@ const loginUserWalletSchema = Joi.object({
|
|
|
31
31
|
componentId: Joi.string().required(),
|
|
32
32
|
}).empty(null);
|
|
33
33
|
|
|
34
|
+
const checkUserSchema = Joi.object({
|
|
35
|
+
users: Joi.array()
|
|
36
|
+
.items(
|
|
37
|
+
Joi.object({
|
|
38
|
+
did: Joi.DID().trim().required(),
|
|
39
|
+
pk: Joi.string().required(),
|
|
40
|
+
})
|
|
41
|
+
)
|
|
42
|
+
.max(10),
|
|
43
|
+
sourceAppPid: Joi.DID().trim().empty(null),
|
|
44
|
+
});
|
|
45
|
+
|
|
34
46
|
exports.loginWalletSchema = loginWalletSchema;
|
|
35
47
|
exports.loginUserWalletSchema = loginUserWalletSchema;
|
|
36
48
|
exports.loginOAuthSchema = loginOAuthSchema;
|
|
49
|
+
exports.checkUserSchema = checkUserSchema;
|
|
@@ -1,32 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
3
|
"main.css": "/.well-known/service/static/static/css/main.7ea79dc8.css",
|
|
4
|
-
"main.js": "/.well-known/service/static/static/js/main.
|
|
4
|
+
"main.js": "/.well-known/service/static/static/js/main.6fc39419.js",
|
|
5
5
|
"static/js/6218.4f3036a7.chunk.js": "/.well-known/service/static/static/js/6218.4f3036a7.chunk.js",
|
|
6
6
|
"static/js/4076.8055ce74.chunk.js": "/.well-known/service/static/static/js/4076.8055ce74.chunk.js",
|
|
7
7
|
"static/js/6658.98f9956d.chunk.js": "/.well-known/service/static/static/js/6658.98f9956d.chunk.js",
|
|
8
8
|
"static/js/3025.76882d0f.chunk.js": "/.well-known/service/static/static/js/3025.76882d0f.chunk.js",
|
|
9
|
-
"static/js/7858.
|
|
9
|
+
"static/js/7858.dda2dc10.chunk.js": "/.well-known/service/static/static/js/7858.dda2dc10.chunk.js",
|
|
10
10
|
"static/js/4587.0d0fd3ae.chunk.js": "/.well-known/service/static/static/js/4587.0d0fd3ae.chunk.js",
|
|
11
|
-
"static/js/779.
|
|
11
|
+
"static/js/779.cbad02fa.chunk.js": "/.well-known/service/static/static/js/779.cbad02fa.chunk.js",
|
|
12
12
|
"static/js/8622.03f917b3.chunk.js": "/.well-known/service/static/static/js/8622.03f917b3.chunk.js",
|
|
13
13
|
"static/js/1148.d3c53aea.chunk.js": "/.well-known/service/static/static/js/1148.d3c53aea.chunk.js",
|
|
14
|
-
"static/js/8944.
|
|
14
|
+
"static/js/8944.f4f91564.chunk.js": "/.well-known/service/static/static/js/8944.f4f91564.chunk.js",
|
|
15
15
|
"static/js/5468.21a861b9.chunk.js": "/.well-known/service/static/static/js/5468.21a861b9.chunk.js",
|
|
16
16
|
"static/js/9982.4f1ebb7f.chunk.js": "/.well-known/service/static/static/js/9982.4f1ebb7f.chunk.js",
|
|
17
17
|
"static/js/1359.add26d23.chunk.js": "/.well-known/service/static/static/js/1359.add26d23.chunk.js",
|
|
18
18
|
"static/js/6637.b2e35031.chunk.js": "/.well-known/service/static/static/js/6637.b2e35031.chunk.js",
|
|
19
|
-
"static/js/
|
|
20
|
-
"static/js/
|
|
19
|
+
"static/js/717.ec2ba6d0.chunk.js": "/.well-known/service/static/static/js/717.ec2ba6d0.chunk.js",
|
|
20
|
+
"static/js/5047.2f665ae5.chunk.js": "/.well-known/service/static/static/js/5047.2f665ae5.chunk.js",
|
|
21
21
|
"static/js/4882.0435e418.chunk.js": "/.well-known/service/static/static/js/4882.0435e418.chunk.js",
|
|
22
|
+
"static/js/5434.523d071d.chunk.js": "/.well-known/service/static/static/js/5434.523d071d.chunk.js",
|
|
22
23
|
"static/js/3033.f950a32b.chunk.js": "/.well-known/service/static/static/js/3033.f950a32b.chunk.js",
|
|
23
|
-
"static/js/3842.
|
|
24
|
-
"static/js/3131.
|
|
25
|
-
"static/js/
|
|
26
|
-
"static/js/8983.
|
|
27
|
-
"static/js/9900.
|
|
28
|
-
"static/js/8283.
|
|
29
|
-
"static/js/
|
|
24
|
+
"static/js/3842.780dc9e9.chunk.js": "/.well-known/service/static/static/js/3842.780dc9e9.chunk.js",
|
|
25
|
+
"static/js/3131.b2bb8f6c.chunk.js": "/.well-known/service/static/static/js/3131.b2bb8f6c.chunk.js",
|
|
26
|
+
"static/js/5785.38eedf8e.chunk.js": "/.well-known/service/static/static/js/5785.38eedf8e.chunk.js",
|
|
27
|
+
"static/js/8983.020df395.chunk.js": "/.well-known/service/static/static/js/8983.020df395.chunk.js",
|
|
28
|
+
"static/js/9900.26718c8f.chunk.js": "/.well-known/service/static/static/js/9900.26718c8f.chunk.js",
|
|
29
|
+
"static/js/8283.20452732.chunk.js": "/.well-known/service/static/static/js/8283.20452732.chunk.js",
|
|
30
|
+
"static/js/6326.2816fb2f.chunk.js": "/.well-known/service/static/static/js/6326.2816fb2f.chunk.js",
|
|
30
31
|
"static/js/2653.980158ea.chunk.js": "/.well-known/service/static/static/js/2653.980158ea.chunk.js",
|
|
31
32
|
"static/js/3593.b9a1a7f5.chunk.js": "/.well-known/service/static/static/js/3593.b9a1a7f5.chunk.js",
|
|
32
33
|
"static/css/4802.bf353f58.chunk.css": "/.well-known/service/static/static/css/4802.bf353f58.chunk.css",
|
|
@@ -37,7 +38,7 @@
|
|
|
37
38
|
"static/js/356.df75c406.chunk.js": "/.well-known/service/static/static/js/356.df75c406.chunk.js",
|
|
38
39
|
"static/js/4023.8c5c7db4.chunk.js": "/.well-known/service/static/static/js/4023.8c5c7db4.chunk.js",
|
|
39
40
|
"static/js/8792.13a6919f.chunk.js": "/.well-known/service/static/static/js/8792.13a6919f.chunk.js",
|
|
40
|
-
"static/js/1946.
|
|
41
|
+
"static/js/1946.b8762af5.chunk.js": "/.well-known/service/static/static/js/1946.b8762af5.chunk.js",
|
|
41
42
|
"static/js/5569.e4bfe697.chunk.js": "/.well-known/service/static/static/js/5569.e4bfe697.chunk.js",
|
|
42
43
|
"static/css/5547.75913953.chunk.css": "/.well-known/service/static/static/css/5547.75913953.chunk.css",
|
|
43
44
|
"static/js/5547.1bea60f5.chunk.js": "/.well-known/service/static/static/js/5547.1bea60f5.chunk.js",
|
|
@@ -55,46 +56,47 @@
|
|
|
55
56
|
"static/js/2940.5fc76234.chunk.js": "/.well-known/service/static/static/js/2940.5fc76234.chunk.js",
|
|
56
57
|
"static/js/4319.8d9e189e.chunk.js": "/.well-known/service/static/static/js/4319.8d9e189e.chunk.js",
|
|
57
58
|
"static/js/556.e1875260.chunk.js": "/.well-known/service/static/static/js/556.e1875260.chunk.js",
|
|
58
|
-
"static/js/
|
|
59
|
+
"static/js/6400.0d9d1b25.chunk.js": "/.well-known/service/static/static/js/6400.0d9d1b25.chunk.js",
|
|
60
|
+
"static/js/6629.fd9d74f5.chunk.js": "/.well-known/service/static/static/js/6629.fd9d74f5.chunk.js",
|
|
59
61
|
"static/js/9997.540afd6e.chunk.js": "/.well-known/service/static/static/js/9997.540afd6e.chunk.js",
|
|
60
62
|
"static/js/3953.ddf8be86.chunk.js": "/.well-known/service/static/static/js/3953.ddf8be86.chunk.js",
|
|
61
63
|
"static/js/5725.c401d636.chunk.js": "/.well-known/service/static/static/js/5725.c401d636.chunk.js",
|
|
62
|
-
"static/js/
|
|
64
|
+
"static/js/1275.34d2fab6.chunk.js": "/.well-known/service/static/static/js/1275.34d2fab6.chunk.js",
|
|
63
65
|
"static/js/7606.25231f8c.chunk.js": "/.well-known/service/static/static/js/7606.25231f8c.chunk.js",
|
|
64
66
|
"static/js/476.f196e88a.chunk.js": "/.well-known/service/static/static/js/476.f196e88a.chunk.js",
|
|
65
|
-
"static/js/3490.4d3a51ea.chunk.js": "/.well-known/service/static/static/js/3490.4d3a51ea.chunk.js",
|
|
66
67
|
"static/js/3430.28c5bd04.chunk.js": "/.well-known/service/static/static/js/3430.28c5bd04.chunk.js",
|
|
68
|
+
"static/js/2362.ab5308a8.chunk.js": "/.well-known/service/static/static/js/2362.ab5308a8.chunk.js",
|
|
67
69
|
"static/js/9996.5545ea26.chunk.js": "/.well-known/service/static/static/js/9996.5545ea26.chunk.js",
|
|
68
70
|
"static/js/7313.b53b59d8.chunk.js": "/.well-known/service/static/static/js/7313.b53b59d8.chunk.js",
|
|
69
71
|
"static/css/424.13cf051c.chunk.css": "/.well-known/service/static/static/css/424.13cf051c.chunk.css",
|
|
70
72
|
"static/js/424.d91b48b7.chunk.js": "/.well-known/service/static/static/js/424.d91b48b7.chunk.js",
|
|
71
73
|
"static/js/4009.65d1c083.chunk.js": "/.well-known/service/static/static/js/4009.65d1c083.chunk.js",
|
|
72
|
-
"static/js/5070.
|
|
74
|
+
"static/js/5070.5979037b.chunk.js": "/.well-known/service/static/static/js/5070.5979037b.chunk.js",
|
|
73
75
|
"static/js/1249.ce085f29.chunk.js": "/.well-known/service/static/static/js/1249.ce085f29.chunk.js",
|
|
74
76
|
"static/js/9529.c7112fae.chunk.js": "/.well-known/service/static/static/js/9529.c7112fae.chunk.js",
|
|
75
77
|
"static/js/2664.da443f31.chunk.js": "/.well-known/service/static/static/js/2664.da443f31.chunk.js",
|
|
78
|
+
"static/js/5820.c40d570f.chunk.js": "/.well-known/service/static/static/js/5820.c40d570f.chunk.js",
|
|
76
79
|
"static/js/4917.6e72ef28.chunk.js": "/.well-known/service/static/static/js/4917.6e72ef28.chunk.js",
|
|
77
80
|
"static/js/3979.f9a5aa48.chunk.js": "/.well-known/service/static/static/js/3979.f9a5aa48.chunk.js",
|
|
78
81
|
"static/js/5403.1ee6610b.chunk.js": "/.well-known/service/static/static/js/5403.1ee6610b.chunk.js",
|
|
79
82
|
"static/js/7832.81aaf011.chunk.js": "/.well-known/service/static/static/js/7832.81aaf011.chunk.js",
|
|
80
83
|
"static/js/716.8cd88d8c.chunk.js": "/.well-known/service/static/static/js/716.8cd88d8c.chunk.js",
|
|
81
|
-
"static/js/
|
|
84
|
+
"static/js/7973.7d559f93.chunk.js": "/.well-known/service/static/static/js/7973.7d559f93.chunk.js",
|
|
85
|
+
"static/js/1035.ceeeaa2a.chunk.js": "/.well-known/service/static/static/js/1035.ceeeaa2a.chunk.js",
|
|
82
86
|
"static/js/8604.ece06cf7.chunk.js": "/.well-known/service/static/static/js/8604.ece06cf7.chunk.js",
|
|
83
|
-
"static/js/2761.a62dc611.chunk.js": "/.well-known/service/static/static/js/2761.a62dc611.chunk.js",
|
|
84
87
|
"static/js/1.138935fc.chunk.js": "/.well-known/service/static/static/js/1.138935fc.chunk.js",
|
|
85
|
-
"static/js/
|
|
86
|
-
"static/js/
|
|
88
|
+
"static/js/1343.69031e0b.chunk.js": "/.well-known/service/static/static/js/1343.69031e0b.chunk.js",
|
|
89
|
+
"static/js/7556.218caceb.chunk.js": "/.well-known/service/static/static/js/7556.218caceb.chunk.js",
|
|
87
90
|
"static/js/4961.89add60c.chunk.js": "/.well-known/service/static/static/js/4961.89add60c.chunk.js",
|
|
88
|
-
"static/js/
|
|
89
|
-
"static/js/218.74e73a26.chunk.js": "/.well-known/service/static/static/js/218.74e73a26.chunk.js",
|
|
91
|
+
"static/js/3925.948d992d.chunk.js": "/.well-known/service/static/static/js/3925.948d992d.chunk.js",
|
|
90
92
|
"static/js/5645.3c5c0f93.chunk.js": "/.well-known/service/static/static/js/5645.3c5c0f93.chunk.js",
|
|
91
93
|
"static/js/2988.62cc135c.chunk.js": "/.well-known/service/static/static/js/2988.62cc135c.chunk.js",
|
|
92
94
|
"static/css/3154.e954fcda.chunk.css": "/.well-known/service/static/static/css/3154.e954fcda.chunk.css",
|
|
93
95
|
"static/js/9657.b03b88e5.chunk.js": "/.well-known/service/static/static/js/9657.b03b88e5.chunk.js",
|
|
94
|
-
"static/js/
|
|
95
|
-
"static/js/4881.
|
|
96
|
-
"static/js/9194.
|
|
97
|
-
"static/js/
|
|
96
|
+
"static/js/1318.11dffa16.chunk.js": "/.well-known/service/static/static/js/1318.11dffa16.chunk.js",
|
|
97
|
+
"static/js/4881.1de6ed4a.chunk.js": "/.well-known/service/static/static/js/4881.1de6ed4a.chunk.js",
|
|
98
|
+
"static/js/9194.6800abab.chunk.js": "/.well-known/service/static/static/js/9194.6800abab.chunk.js",
|
|
99
|
+
"static/js/1809.2d1a1fe4.chunk.js": "/.well-known/service/static/static/js/1809.2d1a1fe4.chunk.js",
|
|
98
100
|
"static/media/ubuntu-mono-all-400-normal.woff": "/.well-known/service/static/static/media/ubuntu-mono-all-400-normal.c879328bc62e9c68268f.woff",
|
|
99
101
|
"service-worker.js": "/.well-known/service/static/service-worker.js",
|
|
100
102
|
"static/media/lato-all-400-normal.woff": "/.well-known/service/static/static/media/lato-all-400-normal.3dc1eff492ab1f598560.woff",
|
|
@@ -119,32 +121,33 @@
|
|
|
119
121
|
"index.html": "/.well-known/service/static/index.html",
|
|
120
122
|
"static/media/space-connected.svg": "/.well-known/service/static/static/media/space-connected.9a4e18fd2bc7d065191b0d241a131c28.svg",
|
|
121
123
|
"main.7ea79dc8.css.map": "/.well-known/service/static/static/css/main.7ea79dc8.css.map",
|
|
122
|
-
"main.
|
|
124
|
+
"main.6fc39419.js.map": "/.well-known/service/static/static/js/main.6fc39419.js.map",
|
|
123
125
|
"6218.4f3036a7.chunk.js.map": "/.well-known/service/static/static/js/6218.4f3036a7.chunk.js.map",
|
|
124
126
|
"4076.8055ce74.chunk.js.map": "/.well-known/service/static/static/js/4076.8055ce74.chunk.js.map",
|
|
125
127
|
"6658.98f9956d.chunk.js.map": "/.well-known/service/static/static/js/6658.98f9956d.chunk.js.map",
|
|
126
128
|
"3025.76882d0f.chunk.js.map": "/.well-known/service/static/static/js/3025.76882d0f.chunk.js.map",
|
|
127
|
-
"7858.
|
|
129
|
+
"7858.dda2dc10.chunk.js.map": "/.well-known/service/static/static/js/7858.dda2dc10.chunk.js.map",
|
|
128
130
|
"4587.0d0fd3ae.chunk.js.map": "/.well-known/service/static/static/js/4587.0d0fd3ae.chunk.js.map",
|
|
129
|
-
"779.
|
|
131
|
+
"779.cbad02fa.chunk.js.map": "/.well-known/service/static/static/js/779.cbad02fa.chunk.js.map",
|
|
130
132
|
"8622.03f917b3.chunk.js.map": "/.well-known/service/static/static/js/8622.03f917b3.chunk.js.map",
|
|
131
133
|
"1148.d3c53aea.chunk.js.map": "/.well-known/service/static/static/js/1148.d3c53aea.chunk.js.map",
|
|
132
|
-
"8944.
|
|
134
|
+
"8944.f4f91564.chunk.js.map": "/.well-known/service/static/static/js/8944.f4f91564.chunk.js.map",
|
|
133
135
|
"5468.21a861b9.chunk.js.map": "/.well-known/service/static/static/js/5468.21a861b9.chunk.js.map",
|
|
134
136
|
"9982.4f1ebb7f.chunk.js.map": "/.well-known/service/static/static/js/9982.4f1ebb7f.chunk.js.map",
|
|
135
137
|
"1359.add26d23.chunk.js.map": "/.well-known/service/static/static/js/1359.add26d23.chunk.js.map",
|
|
136
138
|
"6637.b2e35031.chunk.js.map": "/.well-known/service/static/static/js/6637.b2e35031.chunk.js.map",
|
|
137
|
-
"
|
|
138
|
-
"
|
|
139
|
+
"717.ec2ba6d0.chunk.js.map": "/.well-known/service/static/static/js/717.ec2ba6d0.chunk.js.map",
|
|
140
|
+
"5047.2f665ae5.chunk.js.map": "/.well-known/service/static/static/js/5047.2f665ae5.chunk.js.map",
|
|
139
141
|
"4882.0435e418.chunk.js.map": "/.well-known/service/static/static/js/4882.0435e418.chunk.js.map",
|
|
142
|
+
"5434.523d071d.chunk.js.map": "/.well-known/service/static/static/js/5434.523d071d.chunk.js.map",
|
|
140
143
|
"3033.f950a32b.chunk.js.map": "/.well-known/service/static/static/js/3033.f950a32b.chunk.js.map",
|
|
141
|
-
"3842.
|
|
142
|
-
"3131.
|
|
143
|
-
"
|
|
144
|
-
"8983.
|
|
145
|
-
"9900.
|
|
146
|
-
"8283.
|
|
147
|
-
"
|
|
144
|
+
"3842.780dc9e9.chunk.js.map": "/.well-known/service/static/static/js/3842.780dc9e9.chunk.js.map",
|
|
145
|
+
"3131.b2bb8f6c.chunk.js.map": "/.well-known/service/static/static/js/3131.b2bb8f6c.chunk.js.map",
|
|
146
|
+
"5785.38eedf8e.chunk.js.map": "/.well-known/service/static/static/js/5785.38eedf8e.chunk.js.map",
|
|
147
|
+
"8983.020df395.chunk.js.map": "/.well-known/service/static/static/js/8983.020df395.chunk.js.map",
|
|
148
|
+
"9900.26718c8f.chunk.js.map": "/.well-known/service/static/static/js/9900.26718c8f.chunk.js.map",
|
|
149
|
+
"8283.20452732.chunk.js.map": "/.well-known/service/static/static/js/8283.20452732.chunk.js.map",
|
|
150
|
+
"6326.2816fb2f.chunk.js.map": "/.well-known/service/static/static/js/6326.2816fb2f.chunk.js.map",
|
|
148
151
|
"2653.980158ea.chunk.js.map": "/.well-known/service/static/static/js/2653.980158ea.chunk.js.map",
|
|
149
152
|
"3593.b9a1a7f5.chunk.js.map": "/.well-known/service/static/static/js/3593.b9a1a7f5.chunk.js.map",
|
|
150
153
|
"4802.bf353f58.chunk.css.map": "/.well-known/service/static/static/css/4802.bf353f58.chunk.css.map",
|
|
@@ -155,7 +158,7 @@
|
|
|
155
158
|
"356.df75c406.chunk.js.map": "/.well-known/service/static/static/js/356.df75c406.chunk.js.map",
|
|
156
159
|
"4023.8c5c7db4.chunk.js.map": "/.well-known/service/static/static/js/4023.8c5c7db4.chunk.js.map",
|
|
157
160
|
"8792.13a6919f.chunk.js.map": "/.well-known/service/static/static/js/8792.13a6919f.chunk.js.map",
|
|
158
|
-
"1946.
|
|
161
|
+
"1946.b8762af5.chunk.js.map": "/.well-known/service/static/static/js/1946.b8762af5.chunk.js.map",
|
|
159
162
|
"5569.e4bfe697.chunk.js.map": "/.well-known/service/static/static/js/5569.e4bfe697.chunk.js.map",
|
|
160
163
|
"5547.75913953.chunk.css.map": "/.well-known/service/static/static/css/5547.75913953.chunk.css.map",
|
|
161
164
|
"5547.1bea60f5.chunk.js.map": "/.well-known/service/static/static/js/5547.1bea60f5.chunk.js.map",
|
|
@@ -173,49 +176,50 @@
|
|
|
173
176
|
"2940.5fc76234.chunk.js.map": "/.well-known/service/static/static/js/2940.5fc76234.chunk.js.map",
|
|
174
177
|
"4319.8d9e189e.chunk.js.map": "/.well-known/service/static/static/js/4319.8d9e189e.chunk.js.map",
|
|
175
178
|
"556.e1875260.chunk.js.map": "/.well-known/service/static/static/js/556.e1875260.chunk.js.map",
|
|
176
|
-
"
|
|
179
|
+
"6400.0d9d1b25.chunk.js.map": "/.well-known/service/static/static/js/6400.0d9d1b25.chunk.js.map",
|
|
180
|
+
"6629.fd9d74f5.chunk.js.map": "/.well-known/service/static/static/js/6629.fd9d74f5.chunk.js.map",
|
|
177
181
|
"9997.540afd6e.chunk.js.map": "/.well-known/service/static/static/js/9997.540afd6e.chunk.js.map",
|
|
178
182
|
"3953.ddf8be86.chunk.js.map": "/.well-known/service/static/static/js/3953.ddf8be86.chunk.js.map",
|
|
179
183
|
"5725.c401d636.chunk.js.map": "/.well-known/service/static/static/js/5725.c401d636.chunk.js.map",
|
|
180
|
-
"
|
|
184
|
+
"1275.34d2fab6.chunk.js.map": "/.well-known/service/static/static/js/1275.34d2fab6.chunk.js.map",
|
|
181
185
|
"7606.25231f8c.chunk.js.map": "/.well-known/service/static/static/js/7606.25231f8c.chunk.js.map",
|
|
182
186
|
"476.f196e88a.chunk.js.map": "/.well-known/service/static/static/js/476.f196e88a.chunk.js.map",
|
|
183
|
-
"3490.4d3a51ea.chunk.js.map": "/.well-known/service/static/static/js/3490.4d3a51ea.chunk.js.map",
|
|
184
187
|
"3430.28c5bd04.chunk.js.map": "/.well-known/service/static/static/js/3430.28c5bd04.chunk.js.map",
|
|
188
|
+
"2362.ab5308a8.chunk.js.map": "/.well-known/service/static/static/js/2362.ab5308a8.chunk.js.map",
|
|
185
189
|
"9996.5545ea26.chunk.js.map": "/.well-known/service/static/static/js/9996.5545ea26.chunk.js.map",
|
|
186
190
|
"7313.b53b59d8.chunk.js.map": "/.well-known/service/static/static/js/7313.b53b59d8.chunk.js.map",
|
|
187
191
|
"424.13cf051c.chunk.css.map": "/.well-known/service/static/static/css/424.13cf051c.chunk.css.map",
|
|
188
192
|
"424.d91b48b7.chunk.js.map": "/.well-known/service/static/static/js/424.d91b48b7.chunk.js.map",
|
|
189
193
|
"4009.65d1c083.chunk.js.map": "/.well-known/service/static/static/js/4009.65d1c083.chunk.js.map",
|
|
190
|
-
"5070.
|
|
194
|
+
"5070.5979037b.chunk.js.map": "/.well-known/service/static/static/js/5070.5979037b.chunk.js.map",
|
|
191
195
|
"1249.ce085f29.chunk.js.map": "/.well-known/service/static/static/js/1249.ce085f29.chunk.js.map",
|
|
192
196
|
"9529.c7112fae.chunk.js.map": "/.well-known/service/static/static/js/9529.c7112fae.chunk.js.map",
|
|
193
197
|
"2664.da443f31.chunk.js.map": "/.well-known/service/static/static/js/2664.da443f31.chunk.js.map",
|
|
198
|
+
"5820.c40d570f.chunk.js.map": "/.well-known/service/static/static/js/5820.c40d570f.chunk.js.map",
|
|
194
199
|
"4917.6e72ef28.chunk.js.map": "/.well-known/service/static/static/js/4917.6e72ef28.chunk.js.map",
|
|
195
200
|
"3979.f9a5aa48.chunk.js.map": "/.well-known/service/static/static/js/3979.f9a5aa48.chunk.js.map",
|
|
196
201
|
"5403.1ee6610b.chunk.js.map": "/.well-known/service/static/static/js/5403.1ee6610b.chunk.js.map",
|
|
197
202
|
"7832.81aaf011.chunk.js.map": "/.well-known/service/static/static/js/7832.81aaf011.chunk.js.map",
|
|
198
203
|
"716.8cd88d8c.chunk.js.map": "/.well-known/service/static/static/js/716.8cd88d8c.chunk.js.map",
|
|
199
|
-
"
|
|
204
|
+
"7973.7d559f93.chunk.js.map": "/.well-known/service/static/static/js/7973.7d559f93.chunk.js.map",
|
|
205
|
+
"1035.ceeeaa2a.chunk.js.map": "/.well-known/service/static/static/js/1035.ceeeaa2a.chunk.js.map",
|
|
200
206
|
"8604.ece06cf7.chunk.js.map": "/.well-known/service/static/static/js/8604.ece06cf7.chunk.js.map",
|
|
201
|
-
"2761.a62dc611.chunk.js.map": "/.well-known/service/static/static/js/2761.a62dc611.chunk.js.map",
|
|
202
207
|
"1.138935fc.chunk.js.map": "/.well-known/service/static/static/js/1.138935fc.chunk.js.map",
|
|
203
|
-
"
|
|
204
|
-
"
|
|
208
|
+
"1343.69031e0b.chunk.js.map": "/.well-known/service/static/static/js/1343.69031e0b.chunk.js.map",
|
|
209
|
+
"7556.218caceb.chunk.js.map": "/.well-known/service/static/static/js/7556.218caceb.chunk.js.map",
|
|
205
210
|
"4961.89add60c.chunk.js.map": "/.well-known/service/static/static/js/4961.89add60c.chunk.js.map",
|
|
206
|
-
"
|
|
207
|
-
"218.74e73a26.chunk.js.map": "/.well-known/service/static/static/js/218.74e73a26.chunk.js.map",
|
|
211
|
+
"3925.948d992d.chunk.js.map": "/.well-known/service/static/static/js/3925.948d992d.chunk.js.map",
|
|
208
212
|
"5645.3c5c0f93.chunk.js.map": "/.well-known/service/static/static/js/5645.3c5c0f93.chunk.js.map",
|
|
209
213
|
"2988.62cc135c.chunk.js.map": "/.well-known/service/static/static/js/2988.62cc135c.chunk.js.map",
|
|
210
214
|
"3154.e954fcda.chunk.css.map": "/.well-known/service/static/static/css/3154.e954fcda.chunk.css.map",
|
|
211
215
|
"9657.b03b88e5.chunk.js.map": "/.well-known/service/static/static/js/9657.b03b88e5.chunk.js.map",
|
|
212
|
-
"
|
|
213
|
-
"4881.
|
|
214
|
-
"9194.
|
|
215
|
-
"
|
|
216
|
+
"1318.11dffa16.chunk.js.map": "/.well-known/service/static/static/js/1318.11dffa16.chunk.js.map",
|
|
217
|
+
"4881.1de6ed4a.chunk.js.map": "/.well-known/service/static/static/js/4881.1de6ed4a.chunk.js.map",
|
|
218
|
+
"9194.6800abab.chunk.js.map": "/.well-known/service/static/static/js/9194.6800abab.chunk.js.map",
|
|
219
|
+
"1809.2d1a1fe4.chunk.js.map": "/.well-known/service/static/static/js/1809.2d1a1fe4.chunk.js.map"
|
|
216
220
|
},
|
|
217
221
|
"entrypoints": [
|
|
218
222
|
"static/css/main.7ea79dc8.css",
|
|
219
|
-
"static/js/main.
|
|
223
|
+
"static/js/main.6fc39419.js"
|
|
220
224
|
]
|
|
221
225
|
}
|
package/build/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico?imageFilter=resize&w=32"/><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><link rel="manifest" href="/.well-known/service/manifest.json"/><script src="/.well-known/service/api/env"></script><script src="/__blocklet__.js"></script><style>body{margin:0;padding:0}</style><script defer="defer" src="/.well-known/service/static/static/js/main.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico?imageFilter=resize&w=32"/><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><link rel="manifest" href="/.well-known/service/manifest.json"/><script src="/.well-known/service/api/env"></script><script src="/__blocklet__.js"></script><style>body{margin:0;padding:0}</style><script defer="defer" src="/.well-known/service/static/static/js/main.6fc39419.js"></script><link href="/.well-known/service/static/static/css/main.7ea79dc8.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|