@abtnode/blocklet-services 1.16.8-next-c66e39c7 → 1.16.8-next-199ae4cb
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/emails/components/asset.js +4 -1
- package/api/emails/components/attachments.js +3 -3
- package/api/emails/components/token.js +5 -2
- package/api/emails/components/transaction.js +4 -8
- package/api/emails/libs/chain.js +15 -0
- package/api/libs/connect/session.js +7 -3
- package/api/libs/email.js +7 -3
- package/api/routes/blocklet.js +1 -1
- package/api/services/auth/connect/login.js +2 -2
- package/api/services/auth/connect/setup.js +0 -1
- package/api/services/auth/connect/switch-passport.js +2 -1
- package/api/services/auth/index.js +2 -10
- package/api/services/auth/session.js +7 -0
- package/api/socket/channel/did.js +9 -4
- package/build/asset-manifest.json +5 -5
- package/build/index.html +1 -1
- package/build/static/js/343.7d02e7f8.chunk.js +2 -0
- package/build/static/js/main.fa5222a7.js +3 -0
- package/package.json +36 -36
- package/api/emails/test.js +0 -166
- package/api/emails/types.js +0 -2
- package/build/static/js/343.f1104d63.chunk.js +0 -2
- package/build/static/js/main.2fbec507.js +0 -3
- /package/build/static/js/{main.2fbec507.js.LICENSE.txt → main.fa5222a7.js.LICENSE.txt} +0 -0
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
4
|
const components_1 = require("@react-email/components");
|
|
5
|
+
const chain_1 = require("../libs/chain");
|
|
5
6
|
function Asset({ locale, data, }) {
|
|
6
7
|
const title = { zh: '接收', en: 'Received' }[locale] || 'Received';
|
|
7
|
-
|
|
8
|
+
const chainHost = data.chainHost || (0, chain_1.getChainHost)(data.chainId);
|
|
9
|
+
const url = `https://${chainHost}/explorer/assets/${data.did}`;
|
|
10
|
+
return ((0, jsx_runtime_1.jsxs)("a", Object.assign({ href: url, target: "_blank", style: Object.assign(Object.assign({}, assetStyle), { margin: '1em 0', textDecoration: 'none', color: 'initial', display: 'block' }) }, { children: [(0, jsx_runtime_1.jsxs)(components_1.Row, Object.assign({ style: titleStyle }, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { children: title }), (0, jsx_runtime_1.jsx)(components_1.Column, Object.assign({ align: "right", style: summaryStyle }, { children: "+1 Asset" }))] })), (0, jsx_runtime_1.jsx)(components_1.Text, Object.assign({ style: remarkStyle }, { children: data.did }))] })));
|
|
8
11
|
}
|
|
9
12
|
exports.default = Asset;
|
|
10
13
|
const assetStyle = {
|
|
@@ -32,10 +32,10 @@ function Attachments({ locale, severity = 'normal', attachments = [], }) {
|
|
|
32
32
|
case 'divider':
|
|
33
33
|
return (0, jsx_runtime_1.jsx)(components_1.Hr, {});
|
|
34
34
|
// case 'vc':
|
|
35
|
-
case '
|
|
36
|
-
return (0, jsx_runtime_1.jsx)(asset_1.default, { data:
|
|
35
|
+
case 'asset':
|
|
36
|
+
return (0, jsx_runtime_1.jsx)(asset_1.default, { data: item.data, locale: locale });
|
|
37
37
|
case 'section':
|
|
38
|
-
return (0, jsx_runtime_1.jsx)(compose_1.default, { data: item.
|
|
38
|
+
return (0, jsx_runtime_1.jsx)(compose_1.default, { data: item.fields });
|
|
39
39
|
default:
|
|
40
40
|
return null;
|
|
41
41
|
}
|
|
@@ -2,10 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
4
|
const components_1 = require("@react-email/components");
|
|
5
|
+
const chain_1 = require("../libs/chain");
|
|
5
6
|
function Token({ locale, data, }) {
|
|
6
7
|
const showAddress = data.address.slice(0, 4) + '...' + data.address.slice(-4);
|
|
8
|
+
const from = { zh: '来自', en: 'from' }[locale] || 'from';
|
|
7
9
|
const title = { zh: '接收', en: 'Received' }[locale] || 'Received';
|
|
8
|
-
|
|
10
|
+
const chainHost = data.chainHost || (0, chain_1.getChainHost)(data.chainId);
|
|
11
|
+
const url = `https://${chainHost}/explorer/tokens/${data.address}/tx`;
|
|
12
|
+
return ((0, jsx_runtime_1.jsxs)("a", Object.assign({ href: url, target: "_blank", style: Object.assign(Object.assign({}, assetStyle), { margin: '1em 0', textDecoration: 'none', color: 'initial', display: 'block' }) }, { children: [(0, jsx_runtime_1.jsxs)(components_1.Row, Object.assign({ style: titleStyle }, { children: [(0, jsx_runtime_1.jsx)(components_1.Column, { children: title }), (0, jsx_runtime_1.jsxs)(components_1.Column, Object.assign({ align: "right", style: summaryStyle }, { children: ["+", data.amount, " ", data.symbol] }))] })), (0, jsx_runtime_1.jsxs)(components_1.Text, Object.assign({ style: remarkStyle }, { children: [from, " ", showAddress] }))] })));
|
|
9
13
|
}
|
|
10
14
|
exports.default = Token;
|
|
11
15
|
const assetStyle = {
|
|
@@ -24,7 +28,6 @@ const remarkStyle = {
|
|
|
24
28
|
};
|
|
25
29
|
const summaryStyle = {
|
|
26
30
|
color: '#49c3ad',
|
|
27
|
-
// float: 'right',
|
|
28
31
|
};
|
|
29
32
|
const titleStyle = {
|
|
30
33
|
marginBottom: '6px',
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const chain_1 = require("../libs/chain");
|
|
4
5
|
function Transaction({ locale, data, }) {
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
main: 'main.abtnetwork.io',
|
|
8
|
-
};
|
|
9
|
-
const host = 'explorer.arcblockio.cn';
|
|
10
|
-
const chianHost = chainMap[data.chainId] || host;
|
|
11
|
-
const url = `https://${chianHost}/explorer/txs/${data.hash}`;
|
|
6
|
+
const chainHost = (0, chain_1.getChainHost)(data.chainId);
|
|
7
|
+
const url = `https://${chainHost}/explorer/txs/${data.hash}`;
|
|
12
8
|
const title = { zh: '交易详情', en: 'Transaction Details' }[locale] || 'Transaction Details';
|
|
13
9
|
const subTitle = { zh: '交易哈希', en: 'Transaction Hash' }[locale] || 'Transaction Hash';
|
|
14
|
-
return ((0, jsx_runtime_1.jsxs)("a", Object.assign({ href: url, target: "_blank", style: { margin: '1em 0', textDecoration: 'none', color: 'initial' } }, { children: [(0, jsx_runtime_1.jsx)("h6", Object.assign({ style: { color: '#a5a5a5', margin: 0 } }, { children:
|
|
10
|
+
return ((0, jsx_runtime_1.jsxs)("a", Object.assign({ href: url, target: "_blank", style: { margin: '1em 0', textDecoration: 'none', color: 'initial' } }, { children: [(0, jsx_runtime_1.jsx)("h6", Object.assign({ style: { color: '#a5a5a5', margin: 0 } }, { children: chainHost })), (0, jsx_runtime_1.jsx)("p", Object.assign({ style: { color: '#4598fa', margin: '6px 0' } }, { children: title })), (0, jsx_runtime_1.jsxs)("div", { children: [subTitle, ": ", data.hash] })] })));
|
|
15
11
|
}
|
|
16
12
|
exports.default = Transaction;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getChainHost = void 0;
|
|
4
|
+
function getChainHost(chainId) {
|
|
5
|
+
const defaultHost = 'explorer.arcblockio.cn';
|
|
6
|
+
if (!chainId)
|
|
7
|
+
return defaultHost;
|
|
8
|
+
const chainMap = {
|
|
9
|
+
beta: 'beta.abtnetwork.io',
|
|
10
|
+
main: 'main.abtnetwork.io',
|
|
11
|
+
};
|
|
12
|
+
const chainHost = chainMap[chainId] || defaultHost;
|
|
13
|
+
return chainHost;
|
|
14
|
+
}
|
|
15
|
+
exports.getChainHost = getChainHost;
|
|
@@ -30,6 +30,7 @@ const {
|
|
|
30
30
|
createPassportVC,
|
|
31
31
|
createPassport,
|
|
32
32
|
upsertToPassports,
|
|
33
|
+
getPassportClaimUrl,
|
|
33
34
|
} = require('@abtnode/auth/lib/passport');
|
|
34
35
|
const { getKeyPairClaim, getAuthPrincipalForMigrateAppToV2 } = require('@abtnode/auth/lib/server');
|
|
35
36
|
const merge = require('lodash/merge');
|
|
@@ -131,7 +132,7 @@ const checkAppOwner = ({ role, blocklet, userDid, locale = 'en' }) => {
|
|
|
131
132
|
|
|
132
133
|
module.exports = {
|
|
133
134
|
login: {
|
|
134
|
-
onConnect: async ({ node, request, userDid, locale, passportId = '', componentId, action }) => {
|
|
135
|
+
onConnect: async ({ node, request, userDid, locale, passportId = '', componentId, action, baseUrl }) => {
|
|
135
136
|
const blocklet = await request.getBlocklet();
|
|
136
137
|
const config = await request.getServiceConfig(NODE_SERVICES.AUTH, { componentId });
|
|
137
138
|
const { did: teamDid, wallet: blockletWallet } = await request.getBlockletInfo();
|
|
@@ -155,6 +156,7 @@ module.exports = {
|
|
|
155
156
|
item: vcTypes,
|
|
156
157
|
trustedIssuers,
|
|
157
158
|
optional: !invitedUserOnly,
|
|
159
|
+
claimUrl: getPassportClaimUrl(baseUrl),
|
|
158
160
|
};
|
|
159
161
|
if (passportId) {
|
|
160
162
|
claims.verifiableCredential.target = passportId;
|
|
@@ -499,7 +501,7 @@ module.exports = {
|
|
|
499
501
|
},
|
|
500
502
|
|
|
501
503
|
switchPassport: {
|
|
502
|
-
onConnect: async ({ node, request, locale, userDid, previousUserDid, componentId }) => {
|
|
504
|
+
onConnect: async ({ node, request, locale, userDid, previousUserDid, componentId, baseUrl }) => {
|
|
503
505
|
if (userDid && previousUserDid && userDid !== previousUserDid) {
|
|
504
506
|
throw new Error(messages.userMismatch[locale]);
|
|
505
507
|
}
|
|
@@ -537,6 +539,7 @@ module.exports = {
|
|
|
537
539
|
item: vcTypes,
|
|
538
540
|
trustedIssuers,
|
|
539
541
|
optional: !invitedUserOnly,
|
|
542
|
+
claimUrl: getPassportClaimUrl(baseUrl),
|
|
540
543
|
},
|
|
541
544
|
};
|
|
542
545
|
},
|
|
@@ -828,7 +831,7 @@ module.exports = {
|
|
|
828
831
|
authPrincipal: getAuthPrincipalForMigrateAppToV2(node),
|
|
829
832
|
},
|
|
830
833
|
{
|
|
831
|
-
verifiableCredential: async ({ extraParams: { locale }, context: { request } }) => {
|
|
834
|
+
verifiableCredential: async ({ extraParams: { locale }, context: { request, baseUrl } }) => {
|
|
832
835
|
const blocklet = await request.getBlocklet();
|
|
833
836
|
const { wallet } = await request.getBlockletInfo();
|
|
834
837
|
|
|
@@ -841,6 +844,7 @@ module.exports = {
|
|
|
841
844
|
item: vcTypes,
|
|
842
845
|
trustedIssuers,
|
|
843
846
|
optional: false,
|
|
847
|
+
claimUrl: getPassportClaimUrl(baseUrl),
|
|
844
848
|
};
|
|
845
849
|
},
|
|
846
850
|
keyPair: getKeyPairClaim(node, { declare: false }),
|
package/api/libs/email.js
CHANGED
|
@@ -13,7 +13,7 @@ const schemaEmail = Joi.string().email().required();
|
|
|
13
13
|
|
|
14
14
|
const validateEmail = schemaEmail.validateAsync.bind(schemaEmail);
|
|
15
15
|
|
|
16
|
-
async function sendEmail(receiver, notification, { teamDid, node }) {
|
|
16
|
+
async function sendEmail(receiver, notification, { teamDid, node, locale }) {
|
|
17
17
|
if (!receiver) {
|
|
18
18
|
throw new Error('receiver is required');
|
|
19
19
|
}
|
|
@@ -54,14 +54,18 @@ async function sendEmail(receiver, notification, { teamDid, node }) {
|
|
|
54
54
|
url,
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
const subject = `[${appInfo.title}] ${
|
|
58
|
+
notification.title ||
|
|
59
|
+
{ zh: '您收到了一个通知', en: 'You have received a notification' }[locale] ||
|
|
60
|
+
'You have received a notification'
|
|
61
|
+
}`;
|
|
59
62
|
|
|
60
63
|
const html = render(
|
|
61
64
|
NotificationEmail({
|
|
62
65
|
subject,
|
|
63
66
|
...notification,
|
|
64
67
|
appInfo,
|
|
68
|
+
locale,
|
|
65
69
|
})
|
|
66
70
|
);
|
|
67
71
|
const emailData = {
|
package/api/routes/blocklet.js
CHANGED
|
@@ -7,8 +7,8 @@ const { onConnect, onApprove } = login;
|
|
|
7
7
|
module.exports = function createRoutes(node, authenticator, createSessionToken) {
|
|
8
8
|
return {
|
|
9
9
|
action: 'login',
|
|
10
|
-
onConnect: async ({ req, userDid, extraParams: { locale, passportId = '', componentId } }) => {
|
|
11
|
-
return onConnect({ node, request: req, userDid, locale, passportId, componentId, action: 'login' });
|
|
10
|
+
onConnect: async ({ req, userDid, extraParams: { locale, passportId = '', componentId }, baseUrl }) => {
|
|
11
|
+
return onConnect({ node, request: req, userDid, locale, passportId, componentId, action: 'login', baseUrl });
|
|
12
12
|
},
|
|
13
13
|
|
|
14
14
|
onAuth: async ({
|
|
@@ -68,7 +68,6 @@ module.exports = function createRoutes(node, _authenticator, createSessionToken)
|
|
|
68
68
|
locale,
|
|
69
69
|
lastLoginAt: new Date().toISOString(),
|
|
70
70
|
lastLoginIp: get(req, 'headers[x-real-ip]') || '',
|
|
71
|
-
// FIXME: @linchen this temporary field should not be recorded in user state
|
|
72
71
|
extra: {
|
|
73
72
|
baseUrl,
|
|
74
73
|
},
|
|
@@ -5,13 +5,14 @@ const { onConnect, onApprove } = switchPassport;
|
|
|
5
5
|
module.exports = function createRoutes(node, authenticator, createSessionToken) {
|
|
6
6
|
return {
|
|
7
7
|
action: 'switch-passport',
|
|
8
|
-
onConnect: async ({ req, userDid, extraParams: { locale, connectedDid } }) => {
|
|
8
|
+
onConnect: async ({ req, userDid, baseUrl, extraParams: { locale, connectedDid } }) => {
|
|
9
9
|
return onConnect({
|
|
10
10
|
node,
|
|
11
11
|
request: req,
|
|
12
12
|
locale,
|
|
13
13
|
userDid,
|
|
14
14
|
previousUserDid: connectedDid,
|
|
15
|
+
baseUrl,
|
|
15
16
|
});
|
|
16
17
|
},
|
|
17
18
|
|
|
@@ -11,9 +11,6 @@ const {
|
|
|
11
11
|
WHO_CAN_ACCESS,
|
|
12
12
|
WHO_CAN_ACCESS_PREFIX_ROLES,
|
|
13
13
|
ROLES,
|
|
14
|
-
WELLKNOWN_SERVICE_PATH_PREFIX,
|
|
15
|
-
USER_AVATAR_URL_PREFIX,
|
|
16
|
-
USER_AVATAR_PATH_PREFIX,
|
|
17
14
|
} = require('@abtnode/constant');
|
|
18
15
|
const { BLOCKLET_MODES } = require('@blocklet/constant');
|
|
19
16
|
const { setUserInfoHeaders } = require('@abtnode/auth/lib/auth');
|
|
@@ -70,13 +67,8 @@ const init = ({ node, options }) => {
|
|
|
70
67
|
if (token) {
|
|
71
68
|
const teamDid = req.getBlockletDid();
|
|
72
69
|
const { secret } = await req.getBlockletInfo();
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
result.avatar = `${WELLKNOWN_SERVICE_PATH_PREFIX}${USER_AVATAR_PATH_PREFIX}/${
|
|
76
|
-
result.avatar.split('/').slice(-1)[0]
|
|
77
|
-
}`;
|
|
78
|
-
}
|
|
79
|
-
req.user = result;
|
|
70
|
+
const user = await verifySessionToken(token, secret, teamDid);
|
|
71
|
+
req.user = user;
|
|
80
72
|
}
|
|
81
73
|
} catch {
|
|
82
74
|
// Do nothing
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const nocache = require('nocache');
|
|
2
2
|
const SealedBox = require('tweetnacl-sealedbox-js');
|
|
3
3
|
const { decodeEncryptionKey } = require('@abtnode/util/lib/security');
|
|
4
|
+
const { WELLKNOWN_SERVICE_PATH_PREFIX, USER_AVATAR_URL_PREFIX, USER_AVATAR_PATH_PREFIX } = require('@abtnode/constant');
|
|
4
5
|
|
|
5
6
|
const { PREFIXES } = require('../../util/constants');
|
|
6
7
|
|
|
@@ -24,6 +25,12 @@ module.exports = {
|
|
|
24
25
|
user.role = req.user.role;
|
|
25
26
|
}
|
|
26
27
|
|
|
28
|
+
if (user.avatar && user.avatar.startsWith(USER_AVATAR_URL_PREFIX)) {
|
|
29
|
+
user.avatar = `${WELLKNOWN_SERVICE_PATH_PREFIX}${USER_AVATAR_PATH_PREFIX}/${
|
|
30
|
+
user.avatar.split('/').slice(-1)[0]
|
|
31
|
+
}`;
|
|
32
|
+
}
|
|
33
|
+
|
|
27
34
|
const encKey = '_ek_';
|
|
28
35
|
let nextToken = '';
|
|
29
36
|
if (req.query[encKey]) {
|
|
@@ -58,7 +58,10 @@ const sendToDid = async ({ sender, receiver: rawDid, notification, options, node
|
|
|
58
58
|
if (receiverEmail) {
|
|
59
59
|
try {
|
|
60
60
|
await validateEmail(receiverEmail);
|
|
61
|
-
receiverEmailList.push(
|
|
61
|
+
receiverEmailList.push({
|
|
62
|
+
email: receiverEmail,
|
|
63
|
+
locale: userInfoItem?.locale || 'en',
|
|
64
|
+
});
|
|
62
65
|
} catch {
|
|
63
66
|
/* empty */
|
|
64
67
|
}
|
|
@@ -94,9 +97,11 @@ const sendToDid = async ({ sender, receiver: rawDid, notification, options, node
|
|
|
94
97
|
// NOTICE: 目前只有 notification 的通知能够发送邮件,并且 type 可能为 undefined
|
|
95
98
|
if ([undefined, NOTIFICATION_TYPES.NOTIFICATION].includes(data.type)) {
|
|
96
99
|
for (const receiverEmail of receiverEmailList) {
|
|
97
|
-
sendEmail(receiverEmail, data, { teamDid: sender.appDid, node }).catch(
|
|
98
|
-
|
|
99
|
-
|
|
100
|
+
sendEmail(receiverEmail.email, data, { teamDid: sender.appDid, node, locale: receiverEmail.locale }).catch(
|
|
101
|
+
(error) => {
|
|
102
|
+
logger.error('Failed to send email', { error });
|
|
103
|
+
}
|
|
104
|
+
);
|
|
100
105
|
}
|
|
101
106
|
}
|
|
102
107
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
3
|
"main.css": "/.blocklet/proxy/blocklet-service/static/css/main.632501d5.css",
|
|
4
|
-
"main.js": "/.blocklet/proxy/blocklet-service/static/js/main.
|
|
4
|
+
"main.js": "/.blocklet/proxy/blocklet-service/static/js/main.fa5222a7.js",
|
|
5
5
|
"static/js/716.0d2a2d32.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/716.0d2a2d32.chunk.js",
|
|
6
6
|
"static/js/359.c47779c2.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/359.c47779c2.chunk.js",
|
|
7
7
|
"static/js/255.279b1bca.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/255.279b1bca.chunk.js",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"static/js/460.df719a3e.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/460.df719a3e.chunk.js",
|
|
11
11
|
"static/js/868.ac8df3a0.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/868.ac8df3a0.chunk.js",
|
|
12
12
|
"static/js/547.03d5d719.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/547.03d5d719.chunk.js",
|
|
13
|
-
"static/js/343.
|
|
13
|
+
"static/js/343.7d02e7f8.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/343.7d02e7f8.chunk.js",
|
|
14
14
|
"static/js/682.a8bf723a.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/682.a8bf723a.chunk.js",
|
|
15
15
|
"static/js/711.56427a24.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/711.56427a24.chunk.js",
|
|
16
16
|
"static/js/437.075e8453.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/437.075e8453.chunk.js",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"router-template-styles/styles.css": "/.blocklet/proxy/blocklet-service/router-template-styles/styles.css",
|
|
46
46
|
"index.html": "/.blocklet/proxy/blocklet-service/index.html",
|
|
47
47
|
"main.632501d5.css.map": "/.blocklet/proxy/blocklet-service/static/css/main.632501d5.css.map",
|
|
48
|
-
"main.
|
|
48
|
+
"main.fa5222a7.js.map": "/.blocklet/proxy/blocklet-service/static/js/main.fa5222a7.js.map",
|
|
49
49
|
"716.0d2a2d32.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/716.0d2a2d32.chunk.js.map",
|
|
50
50
|
"359.c47779c2.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/359.c47779c2.chunk.js.map",
|
|
51
51
|
"255.279b1bca.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/255.279b1bca.chunk.js.map",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"460.df719a3e.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/460.df719a3e.chunk.js.map",
|
|
55
55
|
"868.ac8df3a0.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/868.ac8df3a0.chunk.js.map",
|
|
56
56
|
"547.03d5d719.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/547.03d5d719.chunk.js.map",
|
|
57
|
-
"343.
|
|
57
|
+
"343.7d02e7f8.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/343.7d02e7f8.chunk.js.map",
|
|
58
58
|
"682.a8bf723a.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/682.a8bf723a.chunk.js.map",
|
|
59
59
|
"711.56427a24.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/711.56427a24.chunk.js.map",
|
|
60
60
|
"437.075e8453.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/437.075e8453.chunk.js.map",
|
|
@@ -70,6 +70,6 @@
|
|
|
70
70
|
},
|
|
71
71
|
"entrypoints": [
|
|
72
72
|
"static/css/main.632501d5.css",
|
|
73
|
-
"static/js/main.
|
|
73
|
+
"static/js/main.fa5222a7.js"
|
|
74
74
|
]
|
|
75
75
|
}
|
package/build/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"/><meta name="theme-color" content="#000000"/><title>Blocklet Service</title><script src=".well-known/service/api/env"></script><script src="/__blocklet__.js"></script><script defer="defer" src="/.blocklet/proxy/blocklet-service/static/js/main.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"/><meta name="theme-color" content="#000000"/><title>Blocklet Service</title><script src=".well-known/service/api/env"></script><script src="/__blocklet__.js"></script><script defer="defer" src="/.blocklet/proxy/blocklet-service/static/js/main.fa5222a7.js"></script><link href="/.blocklet/proxy/blocklet-service/static/css/main.632501d5.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|