@abtnode/blocklet-services 1.16.17-beta-a8cf4b25 → 1.16.17-beta-8903a652

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 (28) hide show
  1. package/api/libs/open-graph/index.js +1 -1
  2. package/api/routes/user.js +25 -7
  3. package/api/services/image/index.js +1 -1
  4. package/build/asset-manifest.json +23 -23
  5. package/build/index.html +1 -1
  6. package/build/service-worker.js +1 -1
  7. package/build/static/js/{2093.3192d241.chunk.js → 2093.3ce9b59d.chunk.js} +3 -3
  8. package/build/static/js/3593.b9a1a7f5.chunk.js +2 -0
  9. package/build/static/js/3688.48e7b69c.chunk.js +2 -0
  10. package/build/static/js/4023.1658794f.chunk.js +2 -0
  11. package/build/static/js/468.bbc69bbf.chunk.js +2 -0
  12. package/build/static/js/4716.a8a5b75d.chunk.js +2 -0
  13. package/build/static/js/{5662.34df2fcd.chunk.js → 5662.03f06ae0.chunk.js} +2 -2
  14. package/build/static/js/{716.703a9880.chunk.js → 716.9c76ad65.chunk.js} +3 -3
  15. package/build/static/js/8622.c39b4054.chunk.js +2 -0
  16. package/build/static/js/{8944.70ff7557.chunk.js → 8944.2d60df14.chunk.js} +2 -2
  17. package/build/static/js/main.b3164561.js +3 -0
  18. package/package.json +23 -22
  19. package/build/static/js/3593.17dc42f3.chunk.js +0 -2
  20. package/build/static/js/3688.735c65ce.chunk.js +0 -2
  21. package/build/static/js/4023.a79b0858.chunk.js +0 -2
  22. package/build/static/js/468.5af177b9.chunk.js +0 -2
  23. package/build/static/js/4716.b0917145.chunk.js +0 -2
  24. package/build/static/js/8622.2a685bf5.chunk.js +0 -2
  25. package/build/static/js/main.5f0a940b.js +0 -3
  26. /package/build/static/js/{2093.3192d241.chunk.js.LICENSE.txt → 2093.3ce9b59d.chunk.js.LICENSE.txt} +0 -0
  27. /package/build/static/js/{716.703a9880.chunk.js.LICENSE.txt → 716.9c76ad65.chunk.js.LICENSE.txt} +0 -0
  28. /package/build/static/js/{main.5f0a940b.js.LICENSE.txt → main.b3164561.js.LICENSE.txt} +0 -0
@@ -1,7 +1,7 @@
1
1
  // A simple open graph service based on satori and sharp
2
2
  const fs = require('fs-extra');
3
3
  const path = require('path');
4
- const https = require('https');
4
+ const { https } = require('follow-redirects');
5
5
  const sharp = require('sharp');
6
6
  const joinUrl = require('url-join');
7
7
  const { Joi } = require('@arcblock/validator');
@@ -1,5 +1,5 @@
1
1
  const { NODE_SERVICES, WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
2
- const { getApplicationInfo } = require('@abtnode/auth/lib/auth');
2
+ const { getApplicationInfo, upsertUserSession } = require('@abtnode/auth/lib/auth');
3
3
  const { fromAppDid } = require('@arcblock/did-ext');
4
4
  const { extractUserAvatar } = require('@abtnode/util/lib/user');
5
5
  const formatContext = require('@abtnode/util/lib/format-context');
@@ -99,7 +99,7 @@ async function composeProfileData({ avatar, fullName, email }, { node, req, team
99
99
 
100
100
  async function loginWallet(
101
101
  { did, pk, avatar, email, fullName },
102
- { node, req, locale, componentId, teamDid, updateInfo = true }
102
+ { node, req, locale, componentId, teamDid, updateInfo = true, sourceAppPid }
103
103
  ) {
104
104
  const provider = LOGIN_PROVIDER.WALLET;
105
105
  const { error } = loginWalletSchema.validate({
@@ -145,12 +145,12 @@ async function loginWallet(
145
145
  lastLoginIp,
146
146
  connectedAccount: { provider, did, pk },
147
147
  ...profile,
148
+ sourceAppPid,
148
149
  },
149
150
  };
150
151
  if (!validateUser(loginParams.user) || !validateUser(loginParams.user.connectedAccount)) {
151
152
  throw new ApiError(400, t('userInfoError', locale));
152
153
  }
153
- // TODO: @zhanghan 暂不支持统一登录模式登录
154
154
  const doc = await node.loginUser(loginParams);
155
155
 
156
156
  // NOTICE: 使用 provider: wallet 登录的账号,其账号是由 wallet 产生的,所以不需要到链上 declare 了
@@ -159,7 +159,7 @@ async function loginWallet(
159
159
 
160
160
  async function loginOAuth(
161
161
  { provider, id, avatar, email, fullName },
162
- { node, req, locale, componentId, teamDid, blockletWallet, updateInfo = true }
162
+ { node, req, locale, componentId, teamDid, blockletWallet, updateInfo = true, sourceAppPid }
163
163
  ) {
164
164
  const { error } = loginOAuthSchema.validate({
165
165
  provider,
@@ -207,6 +207,7 @@ async function loginOAuth(
207
207
  lastLoginIp,
208
208
  connectedAccount: { provider, id, did: userDid, pk: userPk },
209
209
  ...profile,
210
+ sourceAppPid,
210
211
  },
211
212
  };
212
213
  if (!validateUser(loginParams.user) || !validateUser(loginParams.user.connectedAccount)) {
@@ -228,6 +229,8 @@ async function login(req, node, options) {
228
229
  id,
229
230
  locale = 'en',
230
231
  updateInfo = true,
232
+ visitorId,
233
+ sourceAppPid,
231
234
  } = req.body;
232
235
 
233
236
  const componentId = req.get('x-blocklet-component-id');
@@ -241,12 +244,12 @@ async function login(req, node, options) {
241
244
  if (provider === LOGIN_PROVIDER.WALLET) {
242
245
  doc = await loginWallet(
243
246
  { did, pk, avatar, email, fullName },
244
- { node, req, locale, componentId, teamDid, updateInfo }
247
+ { node, req, locale, componentId, teamDid, updateInfo, sourceAppPid }
245
248
  );
246
249
  } else {
247
250
  doc = await loginOAuth(
248
251
  { provider, id, avatar, email, fullName },
249
- { node, req, locale, componentId, teamDid, blockletWallet, updateInfo }
252
+ { node, req, locale, componentId, teamDid, blockletWallet, updateInfo, sourceAppPid }
250
253
  );
251
254
  }
252
255
 
@@ -279,7 +282,22 @@ async function login(req, node, options) {
279
282
  },
280
283
  { ...sessionConfig, didConnectVersion: getDidConnectVersion(req) }
281
284
  );
282
- return { user: doc, token: sessionToken, refreshToken };
285
+ const userSession = await upsertUserSession(
286
+ {
287
+ visitorId,
288
+ teamDid,
289
+ userDid: doc.did,
290
+ appPid: teamDid,
291
+ status: 'online',
292
+ },
293
+ { req, node }
294
+ );
295
+ return {
296
+ user: doc,
297
+ token: sessionToken,
298
+ refreshToken,
299
+ visitorId: userSession?.visitorId || '',
300
+ };
283
301
  }
284
302
 
285
303
  module.exports = {
@@ -1,7 +1,7 @@
1
1
  // A simple image service based on sharp
2
2
  // @link https://sharp.pixelplumbing.com/
3
- const http = require('http');
4
3
  const path = require('path');
4
+ const { http } = require('follow-redirects');
5
5
  const { getAppImageCacheDir } = require('@abtnode/util/lib/blocklet');
6
6
 
7
7
  const logger = require('@abtnode/logger')(require('../../../package.json').name);
@@ -1,17 +1,17 @@
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.5f0a940b.js",
5
- "static/js/4716.b0917145.chunk.js": "/.well-known/service/static/static/js/4716.b0917145.chunk.js",
4
+ "main.js": "/.well-known/service/static/static/js/main.b3164561.js",
5
+ "static/js/4716.a8a5b75d.chunk.js": "/.well-known/service/static/static/js/4716.a8a5b75d.chunk.js",
6
6
  "static/js/4076.bcc72fcc.chunk.js": "/.well-known/service/static/static/js/4076.bcc72fcc.chunk.js",
7
7
  "static/js/6658.090d923f.chunk.js": "/.well-known/service/static/static/js/6658.090d923f.chunk.js",
8
8
  "static/js/3025.a48c96f5.chunk.js": "/.well-known/service/static/static/js/3025.a48c96f5.chunk.js",
9
9
  "static/js/7858.e4167dfd.chunk.js": "/.well-known/service/static/static/js/7858.e4167dfd.chunk.js",
10
10
  "static/js/4587.906e3023.chunk.js": "/.well-known/service/static/static/js/4587.906e3023.chunk.js",
11
11
  "static/js/779.b64e7db1.chunk.js": "/.well-known/service/static/static/js/779.b64e7db1.chunk.js",
12
- "static/js/8622.2a685bf5.chunk.js": "/.well-known/service/static/static/js/8622.2a685bf5.chunk.js",
12
+ "static/js/8622.c39b4054.chunk.js": "/.well-known/service/static/static/js/8622.c39b4054.chunk.js",
13
13
  "static/js/1148.4b2a7347.chunk.js": "/.well-known/service/static/static/js/1148.4b2a7347.chunk.js",
14
- "static/js/8944.70ff7557.chunk.js": "/.well-known/service/static/static/js/8944.70ff7557.chunk.js",
14
+ "static/js/8944.2d60df14.chunk.js": "/.well-known/service/static/static/js/8944.2d60df14.chunk.js",
15
15
  "static/js/9982.4f1ebb7f.chunk.js": "/.well-known/service/static/static/js/9982.4f1ebb7f.chunk.js",
16
16
  "static/js/1359.add26d23.chunk.js": "/.well-known/service/static/static/js/1359.add26d23.chunk.js",
17
17
  "static/js/6637.b2e35031.chunk.js": "/.well-known/service/static/static/js/6637.b2e35031.chunk.js",
@@ -23,18 +23,18 @@
23
23
  "static/js/8641.506d61d5.chunk.js": "/.well-known/service/static/static/js/8641.506d61d5.chunk.js",
24
24
  "static/js/9900.cce3f786.chunk.js": "/.well-known/service/static/static/js/9900.cce3f786.chunk.js",
25
25
  "static/js/5982.4f8369df.chunk.js": "/.well-known/service/static/static/js/5982.4f8369df.chunk.js",
26
- "static/js/3688.735c65ce.chunk.js": "/.well-known/service/static/static/js/3688.735c65ce.chunk.js",
26
+ "static/js/3688.48e7b69c.chunk.js": "/.well-known/service/static/static/js/3688.48e7b69c.chunk.js",
27
27
  "static/js/2653.6610534f.chunk.js": "/.well-known/service/static/static/js/2653.6610534f.chunk.js",
28
- "static/js/3593.17dc42f3.chunk.js": "/.well-known/service/static/static/js/3593.17dc42f3.chunk.js",
28
+ "static/js/3593.b9a1a7f5.chunk.js": "/.well-known/service/static/static/js/3593.b9a1a7f5.chunk.js",
29
29
  "static/css/4802.bf353f58.chunk.css": "/.well-known/service/static/static/css/4802.bf353f58.chunk.css",
30
30
  "static/js/4802.fe56c787.chunk.js": "/.well-known/service/static/static/js/4802.fe56c787.chunk.js",
31
31
  "static/js/6771.a1510398.chunk.js": "/.well-known/service/static/static/js/6771.a1510398.chunk.js",
32
32
  "static/css/8702.3ffd8486.chunk.css": "/.well-known/service/static/static/css/8702.3ffd8486.chunk.css",
33
33
  "static/js/8702.2d858942.chunk.js": "/.well-known/service/static/static/js/8702.2d858942.chunk.js",
34
34
  "static/js/6139.cabc22a2.chunk.js": "/.well-known/service/static/static/js/6139.cabc22a2.chunk.js",
35
- "static/js/4023.a79b0858.chunk.js": "/.well-known/service/static/static/js/4023.a79b0858.chunk.js",
35
+ "static/js/4023.1658794f.chunk.js": "/.well-known/service/static/static/js/4023.1658794f.chunk.js",
36
36
  "static/js/8792.8b009f81.chunk.js": "/.well-known/service/static/static/js/8792.8b009f81.chunk.js",
37
- "static/js/5662.34df2fcd.chunk.js": "/.well-known/service/static/static/js/5662.34df2fcd.chunk.js",
37
+ "static/js/5662.03f06ae0.chunk.js": "/.well-known/service/static/static/js/5662.03f06ae0.chunk.js",
38
38
  "static/js/5569.a7e151fc.chunk.js": "/.well-known/service/static/static/js/5569.a7e151fc.chunk.js",
39
39
  "static/css/5547.5f9be15f.chunk.css": "/.well-known/service/static/static/css/5547.5f9be15f.chunk.css",
40
40
  "static/js/5547.5a341867.chunk.js": "/.well-known/service/static/static/js/5547.5a341867.chunk.js",
@@ -65,8 +65,8 @@
65
65
  "static/js/807.249d2d01.chunk.js": "/.well-known/service/static/static/js/807.249d2d01.chunk.js",
66
66
  "static/js/7648.955e20c7.chunk.js": "/.well-known/service/static/static/js/7648.955e20c7.chunk.js",
67
67
  "static/js/7832.741ac84f.chunk.js": "/.well-known/service/static/static/js/7832.741ac84f.chunk.js",
68
- "static/js/2093.3192d241.chunk.js": "/.well-known/service/static/static/js/2093.3192d241.chunk.js",
69
- "static/js/716.703a9880.chunk.js": "/.well-known/service/static/static/js/716.703a9880.chunk.js",
68
+ "static/js/2093.3ce9b59d.chunk.js": "/.well-known/service/static/static/js/2093.3ce9b59d.chunk.js",
69
+ "static/js/716.9c76ad65.chunk.js": "/.well-known/service/static/static/js/716.9c76ad65.chunk.js",
70
70
  "static/js/8604.a8ef404e.chunk.js": "/.well-known/service/static/static/js/8604.a8ef404e.chunk.js",
71
71
  "static/js/6084.30821f2c.chunk.js": "/.well-known/service/static/static/js/6084.30821f2c.chunk.js",
72
72
  "static/js/5673.0dd67df6.chunk.js": "/.well-known/service/static/static/js/5673.0dd67df6.chunk.js",
@@ -77,7 +77,7 @@
77
77
  "static/js/3038.40d611d1.chunk.js": "/.well-known/service/static/static/js/3038.40d611d1.chunk.js",
78
78
  "static/css/3154.e954fcda.chunk.css": "/.well-known/service/static/static/css/3154.e954fcda.chunk.css",
79
79
  "static/js/9657.b03b88e5.chunk.js": "/.well-known/service/static/static/js/9657.b03b88e5.chunk.js",
80
- "static/js/468.5af177b9.chunk.js": "/.well-known/service/static/static/js/468.5af177b9.chunk.js",
80
+ "static/js/468.bbc69bbf.chunk.js": "/.well-known/service/static/static/js/468.bbc69bbf.chunk.js",
81
81
  "static/js/6868.881bd141.chunk.js": "/.well-known/service/static/static/js/6868.881bd141.chunk.js",
82
82
  "static/media/ubuntu-mono-all-400-normal.woff": "/.well-known/service/static/static/media/ubuntu-mono-all-400-normal.c879328bc62e9c68268f.woff",
83
83
  "service-worker.js": "/.well-known/service/static/service-worker.js",
@@ -103,17 +103,17 @@
103
103
  "index.html": "/.well-known/service/static/index.html",
104
104
  "static/media/space-connected.svg": "/.well-known/service/static/static/media/space-connected.9a4e18fd2bc7d065191b0d241a131c28.svg",
105
105
  "main.7ea79dc8.css.map": "/.well-known/service/static/static/css/main.7ea79dc8.css.map",
106
- "main.5f0a940b.js.map": "/.well-known/service/static/static/js/main.5f0a940b.js.map",
107
- "4716.b0917145.chunk.js.map": "/.well-known/service/static/static/js/4716.b0917145.chunk.js.map",
106
+ "main.b3164561.js.map": "/.well-known/service/static/static/js/main.b3164561.js.map",
107
+ "4716.a8a5b75d.chunk.js.map": "/.well-known/service/static/static/js/4716.a8a5b75d.chunk.js.map",
108
108
  "4076.bcc72fcc.chunk.js.map": "/.well-known/service/static/static/js/4076.bcc72fcc.chunk.js.map",
109
109
  "6658.090d923f.chunk.js.map": "/.well-known/service/static/static/js/6658.090d923f.chunk.js.map",
110
110
  "3025.a48c96f5.chunk.js.map": "/.well-known/service/static/static/js/3025.a48c96f5.chunk.js.map",
111
111
  "7858.e4167dfd.chunk.js.map": "/.well-known/service/static/static/js/7858.e4167dfd.chunk.js.map",
112
112
  "4587.906e3023.chunk.js.map": "/.well-known/service/static/static/js/4587.906e3023.chunk.js.map",
113
113
  "779.b64e7db1.chunk.js.map": "/.well-known/service/static/static/js/779.b64e7db1.chunk.js.map",
114
- "8622.2a685bf5.chunk.js.map": "/.well-known/service/static/static/js/8622.2a685bf5.chunk.js.map",
114
+ "8622.c39b4054.chunk.js.map": "/.well-known/service/static/static/js/8622.c39b4054.chunk.js.map",
115
115
  "1148.4b2a7347.chunk.js.map": "/.well-known/service/static/static/js/1148.4b2a7347.chunk.js.map",
116
- "8944.70ff7557.chunk.js.map": "/.well-known/service/static/static/js/8944.70ff7557.chunk.js.map",
116
+ "8944.2d60df14.chunk.js.map": "/.well-known/service/static/static/js/8944.2d60df14.chunk.js.map",
117
117
  "9982.4f1ebb7f.chunk.js.map": "/.well-known/service/static/static/js/9982.4f1ebb7f.chunk.js.map",
118
118
  "1359.add26d23.chunk.js.map": "/.well-known/service/static/static/js/1359.add26d23.chunk.js.map",
119
119
  "6637.b2e35031.chunk.js.map": "/.well-known/service/static/static/js/6637.b2e35031.chunk.js.map",
@@ -125,18 +125,18 @@
125
125
  "8641.506d61d5.chunk.js.map": "/.well-known/service/static/static/js/8641.506d61d5.chunk.js.map",
126
126
  "9900.cce3f786.chunk.js.map": "/.well-known/service/static/static/js/9900.cce3f786.chunk.js.map",
127
127
  "5982.4f8369df.chunk.js.map": "/.well-known/service/static/static/js/5982.4f8369df.chunk.js.map",
128
- "3688.735c65ce.chunk.js.map": "/.well-known/service/static/static/js/3688.735c65ce.chunk.js.map",
128
+ "3688.48e7b69c.chunk.js.map": "/.well-known/service/static/static/js/3688.48e7b69c.chunk.js.map",
129
129
  "2653.6610534f.chunk.js.map": "/.well-known/service/static/static/js/2653.6610534f.chunk.js.map",
130
- "3593.17dc42f3.chunk.js.map": "/.well-known/service/static/static/js/3593.17dc42f3.chunk.js.map",
130
+ "3593.b9a1a7f5.chunk.js.map": "/.well-known/service/static/static/js/3593.b9a1a7f5.chunk.js.map",
131
131
  "4802.bf353f58.chunk.css.map": "/.well-known/service/static/static/css/4802.bf353f58.chunk.css.map",
132
132
  "4802.fe56c787.chunk.js.map": "/.well-known/service/static/static/js/4802.fe56c787.chunk.js.map",
133
133
  "6771.a1510398.chunk.js.map": "/.well-known/service/static/static/js/6771.a1510398.chunk.js.map",
134
134
  "8702.3ffd8486.chunk.css.map": "/.well-known/service/static/static/css/8702.3ffd8486.chunk.css.map",
135
135
  "8702.2d858942.chunk.js.map": "/.well-known/service/static/static/js/8702.2d858942.chunk.js.map",
136
136
  "6139.cabc22a2.chunk.js.map": "/.well-known/service/static/static/js/6139.cabc22a2.chunk.js.map",
137
- "4023.a79b0858.chunk.js.map": "/.well-known/service/static/static/js/4023.a79b0858.chunk.js.map",
137
+ "4023.1658794f.chunk.js.map": "/.well-known/service/static/static/js/4023.1658794f.chunk.js.map",
138
138
  "8792.8b009f81.chunk.js.map": "/.well-known/service/static/static/js/8792.8b009f81.chunk.js.map",
139
- "5662.34df2fcd.chunk.js.map": "/.well-known/service/static/static/js/5662.34df2fcd.chunk.js.map",
139
+ "5662.03f06ae0.chunk.js.map": "/.well-known/service/static/static/js/5662.03f06ae0.chunk.js.map",
140
140
  "5569.a7e151fc.chunk.js.map": "/.well-known/service/static/static/js/5569.a7e151fc.chunk.js.map",
141
141
  "5547.5f9be15f.chunk.css.map": "/.well-known/service/static/static/css/5547.5f9be15f.chunk.css.map",
142
142
  "5547.5a341867.chunk.js.map": "/.well-known/service/static/static/js/5547.5a341867.chunk.js.map",
@@ -167,8 +167,8 @@
167
167
  "807.249d2d01.chunk.js.map": "/.well-known/service/static/static/js/807.249d2d01.chunk.js.map",
168
168
  "7648.955e20c7.chunk.js.map": "/.well-known/service/static/static/js/7648.955e20c7.chunk.js.map",
169
169
  "7832.741ac84f.chunk.js.map": "/.well-known/service/static/static/js/7832.741ac84f.chunk.js.map",
170
- "2093.3192d241.chunk.js.map": "/.well-known/service/static/static/js/2093.3192d241.chunk.js.map",
171
- "716.703a9880.chunk.js.map": "/.well-known/service/static/static/js/716.703a9880.chunk.js.map",
170
+ "2093.3ce9b59d.chunk.js.map": "/.well-known/service/static/static/js/2093.3ce9b59d.chunk.js.map",
171
+ "716.9c76ad65.chunk.js.map": "/.well-known/service/static/static/js/716.9c76ad65.chunk.js.map",
172
172
  "8604.a8ef404e.chunk.js.map": "/.well-known/service/static/static/js/8604.a8ef404e.chunk.js.map",
173
173
  "6084.30821f2c.chunk.js.map": "/.well-known/service/static/static/js/6084.30821f2c.chunk.js.map",
174
174
  "5673.0dd67df6.chunk.js.map": "/.well-known/service/static/static/js/5673.0dd67df6.chunk.js.map",
@@ -179,11 +179,11 @@
179
179
  "3038.40d611d1.chunk.js.map": "/.well-known/service/static/static/js/3038.40d611d1.chunk.js.map",
180
180
  "3154.e954fcda.chunk.css.map": "/.well-known/service/static/static/css/3154.e954fcda.chunk.css.map",
181
181
  "9657.b03b88e5.chunk.js.map": "/.well-known/service/static/static/js/9657.b03b88e5.chunk.js.map",
182
- "468.5af177b9.chunk.js.map": "/.well-known/service/static/static/js/468.5af177b9.chunk.js.map",
182
+ "468.bbc69bbf.chunk.js.map": "/.well-known/service/static/static/js/468.bbc69bbf.chunk.js.map",
183
183
  "6868.881bd141.chunk.js.map": "/.well-known/service/static/static/js/6868.881bd141.chunk.js.map"
184
184
  },
185
185
  "entrypoints": [
186
186
  "static/css/main.7ea79dc8.css",
187
- "static/js/main.5f0a940b.js"
187
+ "static/js/main.b3164561.js"
188
188
  ]
189
189
  }
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><script defer="defer" src="/.well-known/service/static/static/js/main.5f0a940b.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>
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><script defer="defer" src="/.well-known/service/static/static/js/main.b3164561.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>