@abtnode/blocklet-services 1.16.17-beta-3232a7af → 1.16.17-beta-703fb879

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 (81) hide show
  1. package/api/index.js +2 -0
  2. package/api/libs/connect/session.js +17 -2
  3. package/api/libs/open-graph/emoji.js +80 -0
  4. package/api/libs/open-graph/index.js +14 -1
  5. package/api/routes/federated.js +108 -2
  6. package/api/routes/oauth.js +46 -9
  7. package/api/routes/user-session.js +165 -0
  8. package/api/routes/user.js +21 -0
  9. package/api/services/auth/connect/login.js +13 -2
  10. package/api/services/auth/index.js +17 -8
  11. package/api/services/image/index.js +5 -0
  12. package/api/util/index.js +8 -1
  13. package/api/util/user-session.js +47 -0
  14. package/build/asset-manifest.json +79 -75
  15. package/build/index.html +1 -1
  16. package/build/service-worker.js +1 -1
  17. package/build/service-worker.js.map +1 -1
  18. package/build/static/css/{5982.ac464505.chunk.css → 8702.3ffd8486.chunk.css} +1 -1
  19. package/build/static/js/1148.e5dc907a.chunk.js +2 -0
  20. package/build/static/js/{6711.fa6dfc37.chunk.js → 1359.add26d23.chunk.js} +2 -2
  21. package/build/static/js/{2093.e2fce549.chunk.js → 2093.3192d241.chunk.js} +3 -3
  22. package/build/static/js/{2653.1307684f.chunk.js → 2653.6a6c1c6c.chunk.js} +2 -2
  23. package/build/static/js/2972.2d5268c3.chunk.js +2 -0
  24. package/build/static/js/3025.e2b1dac4.chunk.js +2 -0
  25. package/build/static/js/{9409.7d4a802c.chunk.js → 3033.1bbcc14e.chunk.js} +2 -2
  26. package/build/static/js/{1462.a4d2a902.chunk.js → 3131.f75fa792.chunk.js} +2 -2
  27. package/build/static/js/{3688.6edc63ba.chunk.js → 3688.2cea0226.chunk.js} +2 -2
  28. package/build/static/js/{4023.8cfc3ec6.chunk.js → 4023.a79b0858.chunk.js} +2 -2
  29. package/build/static/js/4076.e73cb63a.chunk.js +2 -0
  30. package/build/static/js/{6737.53cccea9.chunk.js → 4587.5b31e02e.chunk.js} +2 -2
  31. package/build/static/js/4716.1ecc2bb6.chunk.js +2 -0
  32. package/build/static/js/{4802.b2e38d47.chunk.js → 4802.d185b9f1.chunk.js} +2 -2
  33. package/build/static/js/5012.551dbbc3.chunk.js +2 -0
  34. package/build/static/js/5547.5a341867.chunk.js +3 -0
  35. package/build/static/js/5569.a7e151fc.chunk.js +2 -0
  36. package/build/static/js/{1565.f3579441.chunk.js → 5662.919cc4a2.chunk.js} +2 -2
  37. package/build/static/js/{9102.6dab0f45.chunk.js → 5982.d9eb7e90.chunk.js} +2 -2
  38. package/build/static/js/{6139.f7ca5bd6.chunk.js → 6139.cf6eb9b1.chunk.js} +2 -2
  39. package/build/static/js/6473.d89e783e.chunk.js +2 -0
  40. package/build/static/js/{8437.13d39ce4.chunk.js → 6637.b2e35031.chunk.js} +2 -2
  41. package/build/static/js/6658.0a27e04e.chunk.js +2 -0
  42. package/build/static/js/7050.3281ad5f.chunk.js +2 -0
  43. package/build/static/js/{716.cf9ba82c.chunk.js → 716.438b9c22.chunk.js} +3 -3
  44. package/build/static/js/779.99b3f0d2.chunk.js +2 -0
  45. package/build/static/js/7858.bac05f8f.chunk.js +2 -0
  46. package/build/static/js/8622.8478c900.chunk.js +2 -0
  47. package/build/static/js/8641.f2bb0ffc.chunk.js +2 -0
  48. package/build/static/js/{5982.0abe67c3.chunk.js → 8702.957f131a.chunk.js} +2 -2
  49. package/build/static/js/873.d6d31b32.chunk.js +3 -0
  50. package/build/static/js/{8792.fa2c5f5e.chunk.js → 8792.eff43237.chunk.js} +2 -2
  51. package/build/static/js/8944.09a1c53a.chunk.js +2 -0
  52. package/build/static/js/9403.b72e020c.chunk.js +2 -0
  53. package/build/static/js/9596.0e51cd6e.chunk.js +2 -0
  54. package/build/static/js/9900.b66896e6.chunk.js +2 -0
  55. package/build/static/js/{4682.f90d26fd.chunk.js → 9982.4f1ebb7f.chunk.js} +2 -2
  56. package/build/static/js/main.3cf7fedb.js +3 -0
  57. package/package.json +22 -22
  58. package/build/static/js/1480.88c590c2.chunk.js +0 -2
  59. package/build/static/js/1760.374a6e01.chunk.js +0 -2
  60. package/build/static/js/2393.528e5343.chunk.js +0 -2
  61. package/build/static/js/2836.f3dbcb77.chunk.js +0 -2
  62. package/build/static/js/3025.7dc2fe04.chunk.js +0 -2
  63. package/build/static/js/4164.5adbbbba.chunk.js +0 -2
  64. package/build/static/js/4420.05d9cb43.chunk.js +0 -2
  65. package/build/static/js/4716.bd8bed1b.chunk.js +0 -2
  66. package/build/static/js/5176.1963ce79.chunk.js +0 -2
  67. package/build/static/js/5547.e35129c6.chunk.js +0 -3
  68. package/build/static/js/6186.67c279db.chunk.js +0 -2
  69. package/build/static/js/6378.29466d9e.chunk.js +0 -2
  70. package/build/static/js/6576.02f6c898.chunk.js +0 -2
  71. package/build/static/js/6856.2eb98754.chunk.js +0 -2
  72. package/build/static/js/7226.4eca7c02.chunk.js +0 -3
  73. package/build/static/js/941.7757135a.chunk.js +0 -2
  74. package/build/static/js/9620.301493bc.chunk.js +0 -2
  75. package/build/static/js/9899.277d673f.chunk.js +0 -2
  76. package/build/static/js/main.f1e55cd8.js +0 -3
  77. /package/build/static/js/{2093.e2fce549.chunk.js.LICENSE.txt → 2093.3192d241.chunk.js.LICENSE.txt} +0 -0
  78. /package/build/static/js/{5547.e35129c6.chunk.js.LICENSE.txt → 5547.5a341867.chunk.js.LICENSE.txt} +0 -0
  79. /package/build/static/js/{716.cf9ba82c.chunk.js.LICENSE.txt → 716.438b9c22.chunk.js.LICENSE.txt} +0 -0
  80. /package/build/static/js/{7226.4eca7c02.chunk.js.LICENSE.txt → 873.d6d31b32.chunk.js.LICENSE.txt} +0 -0
  81. /package/build/static/js/{main.f1e55cd8.js.LICENSE.txt → main.3cf7fedb.js.LICENSE.txt} +0 -0
@@ -8,7 +8,16 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
8
8
  return {
9
9
  action: 'login',
10
10
  onConnect: ({ req, userDid, extraParams: { locale, passportId = '', componentId }, baseUrl }) => {
11
- return onConnect({ node, request: req, userDid, locale, passportId, componentId, action: 'login', baseUrl });
11
+ return onConnect({
12
+ node,
13
+ request: req,
14
+ userDid,
15
+ locale,
16
+ passportId,
17
+ componentId,
18
+ action: 'login',
19
+ baseUrl,
20
+ });
12
21
  },
13
22
 
14
23
  onAuth: async ({
@@ -17,7 +26,7 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
17
26
  userDid,
18
27
  userPk,
19
28
  updateSession,
20
- extraParams: { locale, componentId },
29
+ extraParams: { locale, componentId, visitorId },
21
30
  req,
22
31
  baseUrl,
23
32
  }) => {
@@ -34,12 +43,14 @@ module.exports = function createRoutes(node, authenticator, createSessionToken)
34
43
  createSessionToken,
35
44
  componentId,
36
45
  action: 'login',
46
+ visitorId,
37
47
  });
38
48
 
39
49
  await updateSession(
40
50
  {
41
51
  sessionToken: result.sessionToken,
42
52
  refreshToken: result.refreshToken,
53
+ visitorId: result.visitorId,
43
54
  },
44
55
  true
45
56
  );
@@ -88,6 +88,8 @@ const init = ({ node, options }) => {
88
88
  * {boolean} res.blocked
89
89
  * {boolean} res.authenticated
90
90
  * {boolean} res.authorized
91
+ * {boolean} res.ignored
92
+ * {string} res.payable
91
93
  */
92
94
  const checkAuth = async ({ req } = {}) => {
93
95
  const config = (await req.getServiceConfig(NODE_SERVICES.AUTH)) || {};
@@ -100,32 +102,39 @@ const init = ({ node, options }) => {
100
102
 
101
103
  const shouldIgnore = shouldIgnoreUrl(req.url, ignoreUrls);
102
104
  if (shouldIgnore) {
103
- return {};
105
+ return { ignored: true };
104
106
  }
105
107
 
108
+ const teamDid = req.getBlockletDid();
109
+
106
110
  if (!config.whoCanAccess || config.whoCanAccess === WHO_CAN_ACCESS.ALL) {
107
111
  if (config.blockUnauthenticated && !req.user) {
108
112
  return { blocked: true, authenticated: false };
109
113
  }
110
114
  } else if (!req.user) {
111
- return { blocked: true, authenticated: false };
115
+ const rbac = await node.getRBAC(teamDid);
116
+ const allRoles = await rbac.getRoles(teamDid);
117
+ const payableRole = allRoles.find((x) => x.extra?.acquire?.pay);
118
+ return { blocked: true, authenticated: false, payable: payableRole?.extra?.acquire?.pay };
112
119
  } else if (config.whoCanAccess === WHO_CAN_ACCESS.OWNER && req.user.role !== ROLES.OWNER) {
113
120
  return { blocked: true, authenticated: true, authorized: false };
114
121
  } else if (config.whoCanAccess.startsWith(WHO_CAN_ACCESS_PREFIX_ROLES)) {
115
122
  const roles = getRolesFromAuthConfig(config);
116
123
  if (!roles.includes(req.user.role)) {
117
- return { blocked: true, authenticated: true, authorized: false };
124
+ const rbac = await node.getRBAC(teamDid);
125
+ const allRoles = await rbac.getRoles(teamDid);
126
+ const payableRole = allRoles.find((x) => roles.includes(x.name) && x.extra?.acquire?.pay);
127
+ return { blocked: true, authenticated: true, authorized: false, payable: payableRole?.extra?.acquire?.pay };
118
128
  }
119
129
  }
120
130
 
121
131
  if (!config.blockUnauthorized) {
122
- return {};
132
+ return { ignored: true };
123
133
  }
124
134
 
125
135
  const rule = await req.getRoutingRule();
126
136
  if (rule.to && rule.to.interfaceName) {
127
137
  const permissionName = genPermissionName(rule.to.interfaceName);
128
- const teamDid = req.getBlockletDid();
129
138
  const rbac = await node.getRBAC(teamDid);
130
139
 
131
140
  if (await rbac.can(req.user.role, ...permissionName.split('_'))) {
@@ -245,12 +254,12 @@ const init = ({ node, options }) => {
245
254
  };
246
255
 
247
256
  middlewares.checkAuth = async (req, res, next) => {
248
- const { blocked, authenticated, authorized } = await checkAuth({ req });
257
+ const { blocked, authenticated, authorized, payable } = await checkAuth({ req });
249
258
 
250
259
  if (blocked) {
251
260
  if (!authenticated) {
252
261
  if (req.accepts(['html', 'json']) === 'html') {
253
- res.redirect(getRedirectUrl({ req, pagePath: '/login' }));
262
+ res.redirect(getRedirectUrl({ req, pagePath: '/login', params: { payable } }));
254
263
  } else {
255
264
  // Security principles: user should not known the reason
256
265
  res.status(404).json({ code: 404, error: REASON_404 });
@@ -260,7 +269,7 @@ const init = ({ node, options }) => {
260
269
 
261
270
  if (!authorized) {
262
271
  if (req.accepts(['html', 'json']) === 'html') {
263
- res.redirect(getRedirectUrl({ req, pagePath: '/login' }));
272
+ res.redirect(getRedirectUrl({ req, pagePath: '/login', params: { authenticated: 1, payable } }));
264
273
  } else {
265
274
  // Security principles: user should not known the reason
266
275
  res.status(404).json({ code: 404, error: REASON_404 });
@@ -28,6 +28,11 @@ const createImageService = ({ node }) => {
28
28
  status: res.statusCode,
29
29
  });
30
30
 
31
+ if (res.statusCode && res.statusCode >= 400) {
32
+ reject(new Error(`unexpected upstream response status: ${res.statusCode}`));
33
+ return;
34
+ }
35
+
31
36
  const [type, extension] = (res.headers['content-type'] || '').split('/');
32
37
  if (type !== 'image') {
33
38
  reject(new Error(`unexpected response type from upstream: ${type}, expected image`));
package/api/util/index.js CHANGED
@@ -81,7 +81,7 @@ const ensureProxyUrl = async (req) => {
81
81
  return { target };
82
82
  };
83
83
 
84
- const getRedirectUrl = ({ req, pagePath }) => {
84
+ const getRedirectUrl = ({ req, pagePath, params = {} }) => {
85
85
  const groupPrefix = getGroupPrefix(req);
86
86
  const componentPrefix = getComponentPrefix(req);
87
87
  const redirectPrefix = groupPrefix === componentPrefix ? groupPrefix : componentPrefix;
@@ -136,6 +136,13 @@ const getRedirectUrl = ({ req, pagePath }) => {
136
136
  url.searchParams.set('chainHost', chainHost);
137
137
  }
138
138
 
139
+ Object.keys(params).forEach((key) => {
140
+ if (params[key] === undefined) {
141
+ return;
142
+ }
143
+ url.searchParams.set(key, params[key]);
144
+ });
145
+
139
146
  return `${url.pathname}${url.search}`;
140
147
  };
141
148
 
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @typedef {Object} UserSessionRequstData
3
+ * @property {string} teamDid
4
+ * @property {string} userDid
5
+ * @property {string} [visitorId]
6
+ */
7
+
8
+ /**
9
+ * @typedef {Object} UserSessionRequstOption
10
+ * @property {object} req - 当前请求的 req 上下文
11
+ * @property {object} node - 注入的 node 对象
12
+ * @property {string} [sourceAppPid] - 统一登录的 master appPid
13
+ * @property {string} [appPid] - 统一登录的 master appPid
14
+ */
15
+
16
+ /**
17
+ *
18
+ * @param {UserSessionRequstData} data
19
+ * @param {UserSessionRequstOption} options
20
+ * @returns
21
+ */
22
+ async function upsertUserSession(
23
+ { visitorId, teamDid, userDid, appPid, passportId, status },
24
+ { req, node, sourceAppPid }
25
+ ) {
26
+ const lastLoginIp = req.headers['x-real-ip'];
27
+ const ua = req.headers['user-agent'];
28
+
29
+ const doc = await node.upsertUserSession({
30
+ teamDid,
31
+ visitorId,
32
+ lastLoginIp,
33
+ userDid,
34
+ ua,
35
+ appPid,
36
+ passportId,
37
+ status,
38
+ // 如果是来自统一登录流程,则需要向 master 再发起一次记录的请求
39
+ sourceAppPid,
40
+ });
41
+
42
+ return doc;
43
+ }
44
+
45
+ module.exports = {
46
+ upsertUserSession,
47
+ };
@@ -1,64 +1,66 @@
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.f1e55cd8.js",
5
- "static/js/4716.bd8bed1b.chunk.js": "/.well-known/service/static/static/js/4716.bd8bed1b.chunk.js",
6
- "static/js/6856.2eb98754.chunk.js": "/.well-known/service/static/static/js/6856.2eb98754.chunk.js",
7
- "static/js/3025.7dc2fe04.chunk.js": "/.well-known/service/static/static/js/3025.7dc2fe04.chunk.js",
8
- "static/js/9899.277d673f.chunk.js": "/.well-known/service/static/static/js/9899.277d673f.chunk.js",
9
- "static/js/6737.53cccea9.chunk.js": "/.well-known/service/static/static/js/6737.53cccea9.chunk.js",
10
- "static/js/1760.374a6e01.chunk.js": "/.well-known/service/static/static/js/1760.374a6e01.chunk.js",
11
- "static/js/9620.301493bc.chunk.js": "/.well-known/service/static/static/js/9620.301493bc.chunk.js",
12
- "static/js/1480.88c590c2.chunk.js": "/.well-known/service/static/static/js/1480.88c590c2.chunk.js",
13
- "static/js/6186.67c279db.chunk.js": "/.well-known/service/static/static/js/6186.67c279db.chunk.js",
14
- "static/js/4682.f90d26fd.chunk.js": "/.well-known/service/static/static/js/4682.f90d26fd.chunk.js",
15
- "static/js/6711.fa6dfc37.chunk.js": "/.well-known/service/static/static/js/6711.fa6dfc37.chunk.js",
16
- "static/js/8437.13d39ce4.chunk.js": "/.well-known/service/static/static/js/8437.13d39ce4.chunk.js",
17
- "static/js/6378.29466d9e.chunk.js": "/.well-known/service/static/static/js/6378.29466d9e.chunk.js",
4
+ "main.js": "/.well-known/service/static/static/js/main.3cf7fedb.js",
5
+ "static/js/4716.1ecc2bb6.chunk.js": "/.well-known/service/static/static/js/4716.1ecc2bb6.chunk.js",
6
+ "static/js/4076.e73cb63a.chunk.js": "/.well-known/service/static/static/js/4076.e73cb63a.chunk.js",
7
+ "static/js/6658.0a27e04e.chunk.js": "/.well-known/service/static/static/js/6658.0a27e04e.chunk.js",
8
+ "static/js/3025.e2b1dac4.chunk.js": "/.well-known/service/static/static/js/3025.e2b1dac4.chunk.js",
9
+ "static/js/7858.bac05f8f.chunk.js": "/.well-known/service/static/static/js/7858.bac05f8f.chunk.js",
10
+ "static/js/4587.5b31e02e.chunk.js": "/.well-known/service/static/static/js/4587.5b31e02e.chunk.js",
11
+ "static/js/779.99b3f0d2.chunk.js": "/.well-known/service/static/static/js/779.99b3f0d2.chunk.js",
12
+ "static/js/8622.8478c900.chunk.js": "/.well-known/service/static/static/js/8622.8478c900.chunk.js",
13
+ "static/js/1148.e5dc907a.chunk.js": "/.well-known/service/static/static/js/1148.e5dc907a.chunk.js",
14
+ "static/js/8944.09a1c53a.chunk.js": "/.well-known/service/static/static/js/8944.09a1c53a.chunk.js",
15
+ "static/js/9982.4f1ebb7f.chunk.js": "/.well-known/service/static/static/js/9982.4f1ebb7f.chunk.js",
16
+ "static/js/1359.add26d23.chunk.js": "/.well-known/service/static/static/js/1359.add26d23.chunk.js",
17
+ "static/js/6637.b2e35031.chunk.js": "/.well-known/service/static/static/js/6637.b2e35031.chunk.js",
18
+ "static/js/873.d6d31b32.chunk.js": "/.well-known/service/static/static/js/873.d6d31b32.chunk.js",
18
19
  "static/js/5434.523d071d.chunk.js": "/.well-known/service/static/static/js/5434.523d071d.chunk.js",
19
- "static/js/9409.7d4a802c.chunk.js": "/.well-known/service/static/static/js/9409.7d4a802c.chunk.js",
20
- "static/js/4420.05d9cb43.chunk.js": "/.well-known/service/static/static/js/4420.05d9cb43.chunk.js",
21
- "static/js/1462.a4d2a902.chunk.js": "/.well-known/service/static/static/js/1462.a4d2a902.chunk.js",
22
- "static/js/941.7757135a.chunk.js": "/.well-known/service/static/static/js/941.7757135a.chunk.js",
23
- "static/js/6576.02f6c898.chunk.js": "/.well-known/service/static/static/js/6576.02f6c898.chunk.js",
24
- "static/js/5176.1963ce79.chunk.js": "/.well-known/service/static/static/js/5176.1963ce79.chunk.js",
25
- "static/js/9102.6dab0f45.chunk.js": "/.well-known/service/static/static/js/9102.6dab0f45.chunk.js",
26
- "static/js/3688.6edc63ba.chunk.js": "/.well-known/service/static/static/js/3688.6edc63ba.chunk.js",
27
- "static/js/2653.1307684f.chunk.js": "/.well-known/service/static/static/js/2653.1307684f.chunk.js",
20
+ "static/js/3033.1bbcc14e.chunk.js": "/.well-known/service/static/static/js/3033.1bbcc14e.chunk.js",
21
+ "static/js/2972.2d5268c3.chunk.js": "/.well-known/service/static/static/js/2972.2d5268c3.chunk.js",
22
+ "static/js/3131.f75fa792.chunk.js": "/.well-known/service/static/static/js/3131.f75fa792.chunk.js",
23
+ "static/js/9596.0e51cd6e.chunk.js": "/.well-known/service/static/static/js/9596.0e51cd6e.chunk.js",
24
+ "static/js/8641.f2bb0ffc.chunk.js": "/.well-known/service/static/static/js/8641.f2bb0ffc.chunk.js",
25
+ "static/js/9900.b66896e6.chunk.js": "/.well-known/service/static/static/js/9900.b66896e6.chunk.js",
26
+ "static/js/5982.d9eb7e90.chunk.js": "/.well-known/service/static/static/js/5982.d9eb7e90.chunk.js",
27
+ "static/js/3688.2cea0226.chunk.js": "/.well-known/service/static/static/js/3688.2cea0226.chunk.js",
28
+ "static/js/2653.6a6c1c6c.chunk.js": "/.well-known/service/static/static/js/2653.6a6c1c6c.chunk.js",
28
29
  "static/js/3593.17dc42f3.chunk.js": "/.well-known/service/static/static/js/3593.17dc42f3.chunk.js",
29
30
  "static/css/4802.bf353f58.chunk.css": "/.well-known/service/static/static/css/4802.bf353f58.chunk.css",
30
- "static/js/4802.b2e38d47.chunk.js": "/.well-known/service/static/static/js/4802.b2e38d47.chunk.js",
31
+ "static/js/4802.d185b9f1.chunk.js": "/.well-known/service/static/static/js/4802.d185b9f1.chunk.js",
31
32
  "static/js/6771.a1510398.chunk.js": "/.well-known/service/static/static/js/6771.a1510398.chunk.js",
32
- "static/css/5982.ac464505.chunk.css": "/.well-known/service/static/static/css/5982.ac464505.chunk.css",
33
- "static/js/5982.0abe67c3.chunk.js": "/.well-known/service/static/static/js/5982.0abe67c3.chunk.js",
34
- "static/js/6139.f7ca5bd6.chunk.js": "/.well-known/service/static/static/js/6139.f7ca5bd6.chunk.js",
35
- "static/js/4023.8cfc3ec6.chunk.js": "/.well-known/service/static/static/js/4023.8cfc3ec6.chunk.js",
36
- "static/js/8792.fa2c5f5e.chunk.js": "/.well-known/service/static/static/js/8792.fa2c5f5e.chunk.js",
37
- "static/js/1565.f3579441.chunk.js": "/.well-known/service/static/static/js/1565.f3579441.chunk.js",
38
- "static/js/2393.528e5343.chunk.js": "/.well-known/service/static/static/js/2393.528e5343.chunk.js",
33
+ "static/css/8702.3ffd8486.chunk.css": "/.well-known/service/static/static/css/8702.3ffd8486.chunk.css",
34
+ "static/js/8702.957f131a.chunk.js": "/.well-known/service/static/static/js/8702.957f131a.chunk.js",
35
+ "static/js/6139.cf6eb9b1.chunk.js": "/.well-known/service/static/static/js/6139.cf6eb9b1.chunk.js",
36
+ "static/js/4023.a79b0858.chunk.js": "/.well-known/service/static/static/js/4023.a79b0858.chunk.js",
37
+ "static/js/8792.eff43237.chunk.js": "/.well-known/service/static/static/js/8792.eff43237.chunk.js",
38
+ "static/js/5662.919cc4a2.chunk.js": "/.well-known/service/static/static/js/5662.919cc4a2.chunk.js",
39
+ "static/js/5569.a7e151fc.chunk.js": "/.well-known/service/static/static/js/5569.a7e151fc.chunk.js",
39
40
  "static/css/5547.5f9be15f.chunk.css": "/.well-known/service/static/static/css/5547.5f9be15f.chunk.css",
40
- "static/js/5547.e35129c6.chunk.js": "/.well-known/service/static/static/js/5547.e35129c6.chunk.js",
41
+ "static/js/5547.5a341867.chunk.js": "/.well-known/service/static/static/js/5547.5a341867.chunk.js",
41
42
  "static/js/4461.f412553b.chunk.js": "/.well-known/service/static/static/js/4461.f412553b.chunk.js",
42
43
  "static/js/5509.a196d497.chunk.js": "/.well-known/service/static/static/js/5509.a196d497.chunk.js",
43
44
  "static/js/5683.47011724.chunk.js": "/.well-known/service/static/static/js/5683.47011724.chunk.js",
44
- "static/js/2836.f3dbcb77.chunk.js": "/.well-known/service/static/static/js/2836.f3dbcb77.chunk.js",
45
45
  "static/js/7006.8f0645e5.chunk.js": "/.well-known/service/static/static/js/7006.8f0645e5.chunk.js",
46
+ "static/js/9403.b72e020c.chunk.js": "/.well-known/service/static/static/js/9403.b72e020c.chunk.js",
47
+ "static/js/5012.551dbbc3.chunk.js": "/.well-known/service/static/static/js/5012.551dbbc3.chunk.js",
48
+ "static/js/6473.d89e783e.chunk.js": "/.well-known/service/static/static/js/6473.d89e783e.chunk.js",
46
49
  "static/js/5960.35db200d.chunk.js": "/.well-known/service/static/static/js/5960.35db200d.chunk.js",
47
50
  "static/js/2631.54f86f84.chunk.js": "/.well-known/service/static/static/js/2631.54f86f84.chunk.js",
48
51
  "static/js/4355.f459ab57.chunk.js": "/.well-known/service/static/static/js/4355.f459ab57.chunk.js",
49
52
  "static/js/2291.7ffdc7df.chunk.js": "/.well-known/service/static/static/js/2291.7ffdc7df.chunk.js",
50
53
  "static/js/1431.29b0bc0a.chunk.js": "/.well-known/service/static/static/js/1431.29b0bc0a.chunk.js",
51
- "static/js/4164.5adbbbba.chunk.js": "/.well-known/service/static/static/js/4164.5adbbbba.chunk.js",
52
54
  "static/js/4319.8d9e189e.chunk.js": "/.well-known/service/static/static/js/4319.8d9e189e.chunk.js",
53
55
  "static/js/6629.376863d2.chunk.js": "/.well-known/service/static/static/js/6629.376863d2.chunk.js",
54
56
  "static/js/9997.540afd6e.chunk.js": "/.well-known/service/static/static/js/9997.540afd6e.chunk.js",
55
- "static/js/7226.4eca7c02.chunk.js": "/.well-known/service/static/static/js/7226.4eca7c02.chunk.js",
56
57
  "static/js/2838.fcdea2fa.chunk.js": "/.well-known/service/static/static/js/2838.fcdea2fa.chunk.js",
57
58
  "static/js/5465.dd0f7a20.chunk.js": "/.well-known/service/static/static/js/5465.dd0f7a20.chunk.js",
58
59
  "static/js/4764.51208c0d.chunk.js": "/.well-known/service/static/static/js/4764.51208c0d.chunk.js",
59
60
  "static/js/9529.c7112fae.chunk.js": "/.well-known/service/static/static/js/9529.c7112fae.chunk.js",
60
61
  "static/js/2686.890b32ed.chunk.js": "/.well-known/service/static/static/js/2686.890b32ed.chunk.js",
61
62
  "static/js/7606.25231f8c.chunk.js": "/.well-known/service/static/static/js/7606.25231f8c.chunk.js",
63
+ "static/js/7050.3281ad5f.chunk.js": "/.well-known/service/static/static/js/7050.3281ad5f.chunk.js",
62
64
  "static/js/476.f196e88a.chunk.js": "/.well-known/service/static/static/js/476.f196e88a.chunk.js",
63
65
  "static/js/3490.4d3a51ea.chunk.js": "/.well-known/service/static/static/js/3490.4d3a51ea.chunk.js",
64
66
  "static/js/4917.6e72ef28.chunk.js": "/.well-known/service/static/static/js/4917.6e72ef28.chunk.js",
@@ -67,8 +69,8 @@
67
69
  "static/js/807.249d2d01.chunk.js": "/.well-known/service/static/static/js/807.249d2d01.chunk.js",
68
70
  "static/js/7648.955e20c7.chunk.js": "/.well-known/service/static/static/js/7648.955e20c7.chunk.js",
69
71
  "static/js/4932.c7c954aa.chunk.js": "/.well-known/service/static/static/js/4932.c7c954aa.chunk.js",
70
- "static/js/2093.e2fce549.chunk.js": "/.well-known/service/static/static/js/2093.e2fce549.chunk.js",
71
- "static/js/716.cf9ba82c.chunk.js": "/.well-known/service/static/static/js/716.cf9ba82c.chunk.js",
72
+ "static/js/2093.3192d241.chunk.js": "/.well-known/service/static/static/js/2093.3192d241.chunk.js",
73
+ "static/js/716.438b9c22.chunk.js": "/.well-known/service/static/static/js/716.438b9c22.chunk.js",
72
74
  "static/js/5969.2791e4e5.chunk.js": "/.well-known/service/static/static/js/5969.2791e4e5.chunk.js",
73
75
  "static/js/8604.a8ef404e.chunk.js": "/.well-known/service/static/static/js/8604.a8ef404e.chunk.js",
74
76
  "static/js/6465.e704f56b.chunk.js": "/.well-known/service/static/static/js/6465.e704f56b.chunk.js",
@@ -105,64 +107,66 @@
105
107
  "index.html": "/.well-known/service/static/index.html",
106
108
  "static/media/space-connected.svg": "/.well-known/service/static/static/media/space-connected.9a4e18fd2bc7d065191b0d241a131c28.svg",
107
109
  "main.7ea79dc8.css.map": "/.well-known/service/static/static/css/main.7ea79dc8.css.map",
108
- "main.f1e55cd8.js.map": "/.well-known/service/static/static/js/main.f1e55cd8.js.map",
109
- "4716.bd8bed1b.chunk.js.map": "/.well-known/service/static/static/js/4716.bd8bed1b.chunk.js.map",
110
- "6856.2eb98754.chunk.js.map": "/.well-known/service/static/static/js/6856.2eb98754.chunk.js.map",
111
- "3025.7dc2fe04.chunk.js.map": "/.well-known/service/static/static/js/3025.7dc2fe04.chunk.js.map",
112
- "9899.277d673f.chunk.js.map": "/.well-known/service/static/static/js/9899.277d673f.chunk.js.map",
113
- "6737.53cccea9.chunk.js.map": "/.well-known/service/static/static/js/6737.53cccea9.chunk.js.map",
114
- "1760.374a6e01.chunk.js.map": "/.well-known/service/static/static/js/1760.374a6e01.chunk.js.map",
115
- "9620.301493bc.chunk.js.map": "/.well-known/service/static/static/js/9620.301493bc.chunk.js.map",
116
- "1480.88c590c2.chunk.js.map": "/.well-known/service/static/static/js/1480.88c590c2.chunk.js.map",
117
- "6186.67c279db.chunk.js.map": "/.well-known/service/static/static/js/6186.67c279db.chunk.js.map",
118
- "4682.f90d26fd.chunk.js.map": "/.well-known/service/static/static/js/4682.f90d26fd.chunk.js.map",
119
- "6711.fa6dfc37.chunk.js.map": "/.well-known/service/static/static/js/6711.fa6dfc37.chunk.js.map",
120
- "8437.13d39ce4.chunk.js.map": "/.well-known/service/static/static/js/8437.13d39ce4.chunk.js.map",
121
- "6378.29466d9e.chunk.js.map": "/.well-known/service/static/static/js/6378.29466d9e.chunk.js.map",
110
+ "main.3cf7fedb.js.map": "/.well-known/service/static/static/js/main.3cf7fedb.js.map",
111
+ "4716.1ecc2bb6.chunk.js.map": "/.well-known/service/static/static/js/4716.1ecc2bb6.chunk.js.map",
112
+ "4076.e73cb63a.chunk.js.map": "/.well-known/service/static/static/js/4076.e73cb63a.chunk.js.map",
113
+ "6658.0a27e04e.chunk.js.map": "/.well-known/service/static/static/js/6658.0a27e04e.chunk.js.map",
114
+ "3025.e2b1dac4.chunk.js.map": "/.well-known/service/static/static/js/3025.e2b1dac4.chunk.js.map",
115
+ "7858.bac05f8f.chunk.js.map": "/.well-known/service/static/static/js/7858.bac05f8f.chunk.js.map",
116
+ "4587.5b31e02e.chunk.js.map": "/.well-known/service/static/static/js/4587.5b31e02e.chunk.js.map",
117
+ "779.99b3f0d2.chunk.js.map": "/.well-known/service/static/static/js/779.99b3f0d2.chunk.js.map",
118
+ "8622.8478c900.chunk.js.map": "/.well-known/service/static/static/js/8622.8478c900.chunk.js.map",
119
+ "1148.e5dc907a.chunk.js.map": "/.well-known/service/static/static/js/1148.e5dc907a.chunk.js.map",
120
+ "8944.09a1c53a.chunk.js.map": "/.well-known/service/static/static/js/8944.09a1c53a.chunk.js.map",
121
+ "9982.4f1ebb7f.chunk.js.map": "/.well-known/service/static/static/js/9982.4f1ebb7f.chunk.js.map",
122
+ "1359.add26d23.chunk.js.map": "/.well-known/service/static/static/js/1359.add26d23.chunk.js.map",
123
+ "6637.b2e35031.chunk.js.map": "/.well-known/service/static/static/js/6637.b2e35031.chunk.js.map",
124
+ "873.d6d31b32.chunk.js.map": "/.well-known/service/static/static/js/873.d6d31b32.chunk.js.map",
122
125
  "5434.523d071d.chunk.js.map": "/.well-known/service/static/static/js/5434.523d071d.chunk.js.map",
123
- "9409.7d4a802c.chunk.js.map": "/.well-known/service/static/static/js/9409.7d4a802c.chunk.js.map",
124
- "4420.05d9cb43.chunk.js.map": "/.well-known/service/static/static/js/4420.05d9cb43.chunk.js.map",
125
- "1462.a4d2a902.chunk.js.map": "/.well-known/service/static/static/js/1462.a4d2a902.chunk.js.map",
126
- "941.7757135a.chunk.js.map": "/.well-known/service/static/static/js/941.7757135a.chunk.js.map",
127
- "6576.02f6c898.chunk.js.map": "/.well-known/service/static/static/js/6576.02f6c898.chunk.js.map",
128
- "5176.1963ce79.chunk.js.map": "/.well-known/service/static/static/js/5176.1963ce79.chunk.js.map",
129
- "9102.6dab0f45.chunk.js.map": "/.well-known/service/static/static/js/9102.6dab0f45.chunk.js.map",
130
- "3688.6edc63ba.chunk.js.map": "/.well-known/service/static/static/js/3688.6edc63ba.chunk.js.map",
131
- "2653.1307684f.chunk.js.map": "/.well-known/service/static/static/js/2653.1307684f.chunk.js.map",
126
+ "3033.1bbcc14e.chunk.js.map": "/.well-known/service/static/static/js/3033.1bbcc14e.chunk.js.map",
127
+ "2972.2d5268c3.chunk.js.map": "/.well-known/service/static/static/js/2972.2d5268c3.chunk.js.map",
128
+ "3131.f75fa792.chunk.js.map": "/.well-known/service/static/static/js/3131.f75fa792.chunk.js.map",
129
+ "9596.0e51cd6e.chunk.js.map": "/.well-known/service/static/static/js/9596.0e51cd6e.chunk.js.map",
130
+ "8641.f2bb0ffc.chunk.js.map": "/.well-known/service/static/static/js/8641.f2bb0ffc.chunk.js.map",
131
+ "9900.b66896e6.chunk.js.map": "/.well-known/service/static/static/js/9900.b66896e6.chunk.js.map",
132
+ "5982.d9eb7e90.chunk.js.map": "/.well-known/service/static/static/js/5982.d9eb7e90.chunk.js.map",
133
+ "3688.2cea0226.chunk.js.map": "/.well-known/service/static/static/js/3688.2cea0226.chunk.js.map",
134
+ "2653.6a6c1c6c.chunk.js.map": "/.well-known/service/static/static/js/2653.6a6c1c6c.chunk.js.map",
132
135
  "3593.17dc42f3.chunk.js.map": "/.well-known/service/static/static/js/3593.17dc42f3.chunk.js.map",
133
136
  "4802.bf353f58.chunk.css.map": "/.well-known/service/static/static/css/4802.bf353f58.chunk.css.map",
134
- "4802.b2e38d47.chunk.js.map": "/.well-known/service/static/static/js/4802.b2e38d47.chunk.js.map",
137
+ "4802.d185b9f1.chunk.js.map": "/.well-known/service/static/static/js/4802.d185b9f1.chunk.js.map",
135
138
  "6771.a1510398.chunk.js.map": "/.well-known/service/static/static/js/6771.a1510398.chunk.js.map",
136
- "5982.ac464505.chunk.css.map": "/.well-known/service/static/static/css/5982.ac464505.chunk.css.map",
137
- "5982.0abe67c3.chunk.js.map": "/.well-known/service/static/static/js/5982.0abe67c3.chunk.js.map",
138
- "6139.f7ca5bd6.chunk.js.map": "/.well-known/service/static/static/js/6139.f7ca5bd6.chunk.js.map",
139
- "4023.8cfc3ec6.chunk.js.map": "/.well-known/service/static/static/js/4023.8cfc3ec6.chunk.js.map",
140
- "8792.fa2c5f5e.chunk.js.map": "/.well-known/service/static/static/js/8792.fa2c5f5e.chunk.js.map",
141
- "1565.f3579441.chunk.js.map": "/.well-known/service/static/static/js/1565.f3579441.chunk.js.map",
142
- "2393.528e5343.chunk.js.map": "/.well-known/service/static/static/js/2393.528e5343.chunk.js.map",
139
+ "8702.3ffd8486.chunk.css.map": "/.well-known/service/static/static/css/8702.3ffd8486.chunk.css.map",
140
+ "8702.957f131a.chunk.js.map": "/.well-known/service/static/static/js/8702.957f131a.chunk.js.map",
141
+ "6139.cf6eb9b1.chunk.js.map": "/.well-known/service/static/static/js/6139.cf6eb9b1.chunk.js.map",
142
+ "4023.a79b0858.chunk.js.map": "/.well-known/service/static/static/js/4023.a79b0858.chunk.js.map",
143
+ "8792.eff43237.chunk.js.map": "/.well-known/service/static/static/js/8792.eff43237.chunk.js.map",
144
+ "5662.919cc4a2.chunk.js.map": "/.well-known/service/static/static/js/5662.919cc4a2.chunk.js.map",
145
+ "5569.a7e151fc.chunk.js.map": "/.well-known/service/static/static/js/5569.a7e151fc.chunk.js.map",
143
146
  "5547.5f9be15f.chunk.css.map": "/.well-known/service/static/static/css/5547.5f9be15f.chunk.css.map",
144
- "5547.e35129c6.chunk.js.map": "/.well-known/service/static/static/js/5547.e35129c6.chunk.js.map",
147
+ "5547.5a341867.chunk.js.map": "/.well-known/service/static/static/js/5547.5a341867.chunk.js.map",
145
148
  "4461.f412553b.chunk.js.map": "/.well-known/service/static/static/js/4461.f412553b.chunk.js.map",
146
149
  "5509.a196d497.chunk.js.map": "/.well-known/service/static/static/js/5509.a196d497.chunk.js.map",
147
150
  "5683.47011724.chunk.js.map": "/.well-known/service/static/static/js/5683.47011724.chunk.js.map",
148
- "2836.f3dbcb77.chunk.js.map": "/.well-known/service/static/static/js/2836.f3dbcb77.chunk.js.map",
149
151
  "7006.8f0645e5.chunk.js.map": "/.well-known/service/static/static/js/7006.8f0645e5.chunk.js.map",
152
+ "9403.b72e020c.chunk.js.map": "/.well-known/service/static/static/js/9403.b72e020c.chunk.js.map",
153
+ "5012.551dbbc3.chunk.js.map": "/.well-known/service/static/static/js/5012.551dbbc3.chunk.js.map",
154
+ "6473.d89e783e.chunk.js.map": "/.well-known/service/static/static/js/6473.d89e783e.chunk.js.map",
150
155
  "5960.35db200d.chunk.js.map": "/.well-known/service/static/static/js/5960.35db200d.chunk.js.map",
151
156
  "2631.54f86f84.chunk.js.map": "/.well-known/service/static/static/js/2631.54f86f84.chunk.js.map",
152
157
  "4355.f459ab57.chunk.js.map": "/.well-known/service/static/static/js/4355.f459ab57.chunk.js.map",
153
158
  "2291.7ffdc7df.chunk.js.map": "/.well-known/service/static/static/js/2291.7ffdc7df.chunk.js.map",
154
159
  "1431.29b0bc0a.chunk.js.map": "/.well-known/service/static/static/js/1431.29b0bc0a.chunk.js.map",
155
- "4164.5adbbbba.chunk.js.map": "/.well-known/service/static/static/js/4164.5adbbbba.chunk.js.map",
156
160
  "4319.8d9e189e.chunk.js.map": "/.well-known/service/static/static/js/4319.8d9e189e.chunk.js.map",
157
161
  "6629.376863d2.chunk.js.map": "/.well-known/service/static/static/js/6629.376863d2.chunk.js.map",
158
162
  "9997.540afd6e.chunk.js.map": "/.well-known/service/static/static/js/9997.540afd6e.chunk.js.map",
159
- "7226.4eca7c02.chunk.js.map": "/.well-known/service/static/static/js/7226.4eca7c02.chunk.js.map",
160
163
  "2838.fcdea2fa.chunk.js.map": "/.well-known/service/static/static/js/2838.fcdea2fa.chunk.js.map",
161
164
  "5465.dd0f7a20.chunk.js.map": "/.well-known/service/static/static/js/5465.dd0f7a20.chunk.js.map",
162
165
  "4764.51208c0d.chunk.js.map": "/.well-known/service/static/static/js/4764.51208c0d.chunk.js.map",
163
166
  "9529.c7112fae.chunk.js.map": "/.well-known/service/static/static/js/9529.c7112fae.chunk.js.map",
164
167
  "2686.890b32ed.chunk.js.map": "/.well-known/service/static/static/js/2686.890b32ed.chunk.js.map",
165
168
  "7606.25231f8c.chunk.js.map": "/.well-known/service/static/static/js/7606.25231f8c.chunk.js.map",
169
+ "7050.3281ad5f.chunk.js.map": "/.well-known/service/static/static/js/7050.3281ad5f.chunk.js.map",
166
170
  "476.f196e88a.chunk.js.map": "/.well-known/service/static/static/js/476.f196e88a.chunk.js.map",
167
171
  "3490.4d3a51ea.chunk.js.map": "/.well-known/service/static/static/js/3490.4d3a51ea.chunk.js.map",
168
172
  "4917.6e72ef28.chunk.js.map": "/.well-known/service/static/static/js/4917.6e72ef28.chunk.js.map",
@@ -171,8 +175,8 @@
171
175
  "807.249d2d01.chunk.js.map": "/.well-known/service/static/static/js/807.249d2d01.chunk.js.map",
172
176
  "7648.955e20c7.chunk.js.map": "/.well-known/service/static/static/js/7648.955e20c7.chunk.js.map",
173
177
  "4932.c7c954aa.chunk.js.map": "/.well-known/service/static/static/js/4932.c7c954aa.chunk.js.map",
174
- "2093.e2fce549.chunk.js.map": "/.well-known/service/static/static/js/2093.e2fce549.chunk.js.map",
175
- "716.cf9ba82c.chunk.js.map": "/.well-known/service/static/static/js/716.cf9ba82c.chunk.js.map",
178
+ "2093.3192d241.chunk.js.map": "/.well-known/service/static/static/js/2093.3192d241.chunk.js.map",
179
+ "716.438b9c22.chunk.js.map": "/.well-known/service/static/static/js/716.438b9c22.chunk.js.map",
176
180
  "5969.2791e4e5.chunk.js.map": "/.well-known/service/static/static/js/5969.2791e4e5.chunk.js.map",
177
181
  "8604.a8ef404e.chunk.js.map": "/.well-known/service/static/static/js/8604.a8ef404e.chunk.js.map",
178
182
  "6465.e704f56b.chunk.js.map": "/.well-known/service/static/static/js/6465.e704f56b.chunk.js.map",
@@ -188,6 +192,6 @@
188
192
  },
189
193
  "entrypoints": [
190
194
  "static/css/main.7ea79dc8.css",
191
- "static/js/main.f1e55cd8.js"
195
+ "static/js/main.3cf7fedb.js"
192
196
  ]
193
197
  }
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.f1e55cd8.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.3cf7fedb.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>