@abtnode/blocklet-services 1.16.52-beta-20250912-112002-e3499e9c → 1.16.52-beta-20250917-070942-7ee57044
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/routes/mcp.js +235 -1
- package/api/routes/oauth/server.js +4 -4
- package/api/services/dashboard/index.js +24 -6
- package/api/services/mcp/server.js +1 -1
- package/api/services/notification/blocklet-events-notifier.js +2 -2
- package/api/services/notification/queue.js +9 -9
- package/dist/assets/{access-control-Cv9mJe55.js → access-control-CXa4XdTR.js} +1 -1
- package/dist/assets/{add-component-core-ETZM-c0n.js → add-component-core-C8Wvhlwd.js} +1 -1
- package/dist/assets/{add-resource-CefrvxMv.js → add-resource-CKVcDfq1.js} +1 -1
- package/dist/assets/{addon-CdW1jH1F.js → addon-CGYbwnAQ.js} +1 -1
- package/dist/assets/{advanced-BalF9O34.js → advanced-BHQ085Rc.js} +1 -1
- package/dist/assets/{aigne-BqpFNqN9.js → aigne-CSzB6EAi.js} +1 -1
- package/dist/assets/{appearance-CiCcnDqj.js → appearance-wlMh61hK.js} +1 -1
- package/dist/assets/{arrow-down.svg-C3DZxwUV.js → arrow-down.svg-2NUXhc9M.js} +1 -1
- package/dist/assets/{audit-logs-BiFwhSvl.js → audit-logs-OiH-ZCCu.js} +1 -1
- package/dist/assets/{authorize-FiuAZHUA.js → authorize-C1p1aX84.js} +1 -1
- package/dist/assets/{base32-Ccz4U5Ob.js → base32-Bs5DmmgZ.js} +1 -1
- package/dist/assets/{bind-account-BR2YWYwk.js → bind-account-CnWbtI8I.js} +1 -1
- package/dist/assets/{branding-DiGxInL8.js → branding-Bk8D93gd.js} +2 -2
- package/dist/assets/{branding-Cq_kEjOF.js → branding-BnhQzGq_.js} +1 -1
- package/dist/assets/{branding-B7YBinhB.js → branding-C1lgysY6.js} +1 -1
- package/dist/assets/{bundle-avatar-D8QkKBVi.js → bundle-avatar-CF-8YjIk.js} +1 -1
- package/dist/assets/{complete-uOY3lczm.js → complete-C_JNPzD5.js} +1 -1
- package/dist/assets/{component-CMw-pVd2.js → component-IFve4dXC.js} +3 -3
- package/dist/assets/{config-DIuLHS8J.js → config-BPieGs6J.js} +1 -1
- package/dist/assets/{config-T8EypEzR.js → config-CKpqEH5r.js} +1 -1
- package/dist/assets/{config-C7Wu3S5C.js → config-DBzwJyqc.js} +1 -1
- package/dist/assets/{config-navigation-CQlAn_Fg.js → config-navigation-pmywYpni.js} +3 -3
- package/dist/assets/{config-space-BVmSIh3O.js → config-space-Da0MmMPn.js} +1 -1
- package/dist/assets/{confirm-BAs5EAFg.js → confirm-BSaR4_fO.js} +1 -1
- package/dist/assets/{connect-BPVdZurv.js → connect-9m4Nmfes.js} +1 -1
- package/dist/assets/{connect-NnsibVv5.js → connect-BuRk8HoH.js} +1 -1
- package/dist/assets/{connect-to-D2kVCXUW.js → connect-to-DhIpK6hj.js} +1 -1
- package/dist/assets/{dashboard-CpCxXsDT.js → dashboard-DgmOVZgS.js} +3 -3
- package/dist/assets/{delete-confirm-ARBINDJj.js → delete-confirm-BR2z4Ljn.js} +1 -1
- package/dist/assets/{domain-B6x4146t.js → domain-CkwVqsGZ.js} +1 -1
- package/dist/assets/{domain-action-card-CVS3TpUQ.js → domain-action-card-DmX4ipuD.js} +1 -1
- package/dist/assets/{domains-BfVUABUm.js → domains-IK6JBOMk.js} +1 -1
- package/dist/assets/{email-o5PQki4m.js → email-C7dt-OoA.js} +1 -1
- package/dist/assets/engine-B4t4bO94.js +1 -0
- package/dist/assets/{exchange-passport-BIcDPCdx.js → exchange-passport-BlpeYXD-.js} +1 -1
- package/dist/assets/{form-DeTq6JLt.js → form-BoRGzdQH.js} +1 -1
- package/dist/assets/{fuel-CYXB7lNo.js → fuel-DPqYXNcT.js} +1 -1
- package/dist/assets/{gen-access-key-CK6ABJ7d.js → gen-access-key-DTf8XM_B.js} +1 -1
- package/dist/assets/{gen-simple-access-key-DSfDrkH_.js → gen-simple-access-key-BHpsJW1z.js} +1 -1
- package/dist/assets/{get-safe-url-C_gWJx9x.js → get-safe-url-C5Vpma4S.js} +1 -1
- package/dist/assets/{hdkey-CRIeweuD.js → hdkey-iF7Zd5Mt.js} +1 -1
- package/dist/assets/{home-keIz_0pz.js → home-Bq8Kaby6.js} +1 -1
- package/dist/assets/{iframe-7-UjiotN.js → iframe-BZdurKlN.js} +1 -1
- package/dist/assets/{index-DwFmgPTz.js → index-0r-rUxmD.js} +1 -1
- package/dist/assets/{index-CndEvJBJ.js → index-6k6hDX7K.js} +4 -4
- package/dist/assets/{index-DX_0Aq5L.js → index-BE6_aQqm.js} +1 -1
- package/dist/assets/{index-x_ddpRFT.js → index-BJftyOWK.js} +1 -1
- package/dist/assets/{index-74AbVj6G.js → index-BTbAsTsB.js} +1 -1
- package/dist/assets/{index-DWKcHcSX.js → index-BcOGe7jx.js} +1 -1
- package/dist/assets/{index-IfDPTJfj.js → index-BioPPNyR.js} +1 -1
- package/dist/assets/{index-2WK89lpX.js → index-BxgIheOv.js} +1 -1
- package/dist/assets/{index-C9c1djN6.js → index-C7WNgxRc.js} +1 -1
- package/dist/assets/{index-IbUh2bsl.js → index-C91ORskB.js} +1 -1
- package/dist/assets/{index-EyN3xjNK.js → index-CvK2LB0C.js} +3 -3
- package/dist/assets/{index-8j3VjBVi.js → index-Cw5ltvNg.js} +1 -1
- package/dist/assets/{index-BOhhZADu.js → index-D0zr5fnU.js} +4 -4
- package/dist/assets/{index-ClW80nSf.js → index-DGBu1iXZ.js} +1 -1
- package/dist/assets/{index-6ZWzS1uw.js → index-DIzco3bK.js} +1 -1
- package/dist/assets/{index-B0NAcL5r.js → index-DVNnjX93.js} +1 -1
- package/dist/assets/{index-DxR3NtV9.js → index-DlbJhxX4.js} +1 -1
- package/dist/assets/{index-DCk5kGsh.js → index-DtDqVnOd.js} +1 -1
- package/dist/assets/{index-BNPLpp0r.js → index-DzHxtRuX.js} +1 -1
- package/dist/assets/{index-B65XBOLV.js → index-VRhIKoNb.js} +1 -1
- package/dist/assets/{index-CsmgTpTJ.js → index-ZScchkNG.js} +1 -1
- package/dist/assets/{index-BMBJylNT.js → index-klWBrV7H.js} +1 -1
- package/dist/assets/{index-CjxZFYCF.js → index-ptPisY0K.js} +1 -1
- package/dist/assets/{invitation-BY2PtFvw.js → invitation-BbSlWYAY.js} +1 -1
- package/dist/assets/{invite-Cr9pbzvJ.js → invite-DKkAcNxp.js} +1 -1
- package/dist/assets/{isURL-CfmrW_0C.js → isURL-BOLVWN6q.js} +1 -1
- package/dist/assets/{issue-passport-D97rQRNT.js → issue-passport-kvrsHOXO.js} +1 -1
- package/dist/assets/{item-C1_2OTms.js → item-CRpPGQS5.js} +1 -1
- package/dist/assets/{landing-page-BoP0vrKb.js → landing-page-Bb2t2ubc.js} +1 -1
- package/dist/assets/{layout-BakYeqaY.js → layout-O4FRf5d2.js} +1 -1
- package/dist/assets/{list-DTe8sKwq.js → list-BeJAd6oJ.js} +3 -3
- package/dist/assets/{list-Bfj_fOi0.js → list-BmwWshfg.js} +1 -1
- package/dist/assets/{localization-DcpcwZBX.js → localization-EdFO66I_.js} +1 -1
- package/dist/assets/{log-BLHTF_kk.js → log-DwbFr2nR.js} +1 -1
- package/dist/assets/{login-PJHIZpiF.js → login-D2_PE9lX.js} +1 -1
- package/dist/assets/{login-oauth-callback-BjziPtPn.js → login-oauth-callback-BQNBl6bZ.js} +1 -1
- package/dist/assets/{logo-uploader-DNn2MCLm.js → logo-uploader-vRfbxowv.js} +2 -2
- package/dist/assets/{lost-passport-ChRfu4fx.js → lost-passport-pY1dhWDO.js} +1 -1
- package/dist/assets/{open-window-BRoSM1sQ.js → open-window-C0eYx4_v.js} +1 -1
- package/dist/assets/{over-due-invoice-payment-nX6ANuRm.js → over-due-invoice-payment-OBj9thMb.js} +1 -1
- package/dist/assets/{overview-CLlEtBem.js → overview-Rpt1OYCM.js} +1 -1
- package/dist/assets/{passport-item-BbcSxETN.js → passport-item-Bq1c8VJl.js} +1 -1
- package/dist/assets/{permission-D4s1M96M.js → permission-Doi0-9cF.js} +1 -1
- package/dist/assets/{preferences-B-KNknmh.js → preferences-zYe_BxLJ.js} +1 -1
- package/dist/assets/{profile-embed-0Ro9kKTX.js → profile-embed-BqOWDoBR.js} +1 -1
- package/dist/assets/{publish-resource-1jZoHwxW.js → publish-resource-CnXtK3LB.js} +1 -1
- package/dist/assets/{runtime-DiVv_EHB.js → runtime-DjdnpZoh.js} +1 -1
- package/dist/assets/sdk-ChXfsb2q.js +1 -0
- package/dist/assets/{security-Cmd-bjYK.js → security-Bdj-FYH4.js} +1 -1
- package/dist/assets/{session-BrZcMmG5.js → session-D-9YOhAy.js} +1 -1
- package/dist/assets/{setup-BVolXtjE.js → setup-CYAJarl4.js} +1 -1
- package/dist/assets/{spaces-CHljP8tP.js → spaces-Cq_dfNLt.js} +1 -1
- package/dist/assets/{start-CYrTYI-f.js → start-EO_1F43S.js} +1 -1
- package/dist/assets/{status--5cDGjcC.js → status-DJWbsb5u.js} +1 -1
- package/dist/assets/{step-actions-CqrWvcHB.js → step-actions-C91dncKW.js} +1 -1
- package/dist/assets/{studio-BsPkV54q.js → studio-B3QjabKr.js} +1 -1
- package/dist/assets/{team-DSjEanO-.js → team-RDmDo4cZ.js} +1 -1
- package/dist/assets/{traffic-mRcZHvLN.js → traffic-BUIhb2HS.js} +1 -1
- package/dist/assets/{transfer-CuD5trOJ.js → transfer-Dfbnhl7y.js} +1 -1
- package/dist/assets/{unsubscribe-yhkp0l4C.js → unsubscribe-Xjc5jAJO.js} +1 -1
- package/dist/assets/{use-app-logo-BZU1I0dB.js → use-app-logo-DesKuFha.js} +1 -1
- package/dist/assets/{user-center-5ESBGQA5.js → user-center-DdBnHKdX.js} +3 -3
- package/dist/assets/{user-follower-B6mKehgT.js → user-follower-DuL1BMYz.js} +1 -1
- package/dist/assets/{user-sessions-DN6scq-_.js → user-sessions-SImh8rHV.js} +1 -1
- package/dist/assets/{util-HCACAM-i.js → util-BlUZ4Q2D.js} +1 -1
- package/dist/assets/{util-BXcTwFDD.js → util-CHZLxs1T.js} +1 -1
- package/dist/assets/{wait-connect-CbVia-91.js → wait-connect-zz_yxj4x.js} +1 -1
- package/dist/assets/{wizard-B_NDaiA9.js → wizard-CRrvtL2U.js} +1 -1
- package/dist/assets/{wizard-components-DsmO8JXs.js → wizard-components-CR8h5HCI.js} +2 -2
- package/dist/assets/{wrap-locale-CScOhszz.js → wrap-locale-BraEpa0W.js} +1 -1
- package/dist/assets/{zh-C2gGkXmP.js → zh-DQDxmpdl.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/package.json +25 -25
- package/dist/assets/engine-Coh-wnMb.js +0 -1
- package/dist/assets/sdk-DqccdvPq.js +0 -1
package/api/routes/mcp.js
CHANGED
|
@@ -4,13 +4,27 @@ const get = require('lodash/get');
|
|
|
4
4
|
const getBlockletInfo = require('@blocklet/meta/lib/info');
|
|
5
5
|
const { checkPublicAccess } = require('@blocklet/meta/lib/util');
|
|
6
6
|
// eslint-disable-next-line import/no-unresolved
|
|
7
|
-
const { StreamableHTTPServerTransport } = require('@
|
|
7
|
+
const { StreamableHTTPServerTransport } = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
8
|
+
// eslint-disable-next-line import/no-unresolved
|
|
9
|
+
const { Client } = require('@modelcontextprotocol/sdk/client/index.js');
|
|
10
|
+
// eslint-disable-next-line import/no-unresolved
|
|
11
|
+
const { StreamableHTTPClientTransport } = require('@modelcontextprotocol/sdk/client/streamableHttp.js');
|
|
12
|
+
const { z } = require('zod');
|
|
13
|
+
const flatten = require('lodash/flatten');
|
|
14
|
+
const { version } = require('../../package.json');
|
|
8
15
|
|
|
9
16
|
const { initMcpServer } = require('../services/mcp/server');
|
|
10
17
|
const logger = require('../libs/logger')('mcp:server:routes');
|
|
11
18
|
|
|
12
19
|
const isMCPSupported = (b) => get(b.meta, 'capabilities.mcp', false);
|
|
13
20
|
|
|
21
|
+
// Zod schema for MCP tools request validation
|
|
22
|
+
const mcpToolsRequestSchema = z.object({
|
|
23
|
+
name: z.string().min(1, 'Tool name is required'),
|
|
24
|
+
componentDid: z.string().min(1, 'Component DID is required'),
|
|
25
|
+
input: z.any(),
|
|
26
|
+
});
|
|
27
|
+
|
|
14
28
|
const transport = new StreamableHTTPServerTransport({
|
|
15
29
|
sessionIdGenerator: undefined, // set to undefined for stateless servers
|
|
16
30
|
});
|
|
@@ -130,5 +144,225 @@ module.exports = {
|
|
|
130
144
|
}
|
|
131
145
|
}
|
|
132
146
|
});
|
|
147
|
+
|
|
148
|
+
server.get(
|
|
149
|
+
joinURL(WELLKNOWN_SERVICE_PATH_PREFIX, '/mcp/tools'),
|
|
150
|
+
/**
|
|
151
|
+
* @see https://team.arcblock.io/comment/discussions/aPYG3ocSGNIhFHFr5wFcquZx#53f1867b-3439-43c8-b63c-bf53fffcfe8c
|
|
152
|
+
* @param {import('express').Request} req
|
|
153
|
+
* @param {import('express').Response} res
|
|
154
|
+
* @returns
|
|
155
|
+
*/
|
|
156
|
+
async (req, res) => {
|
|
157
|
+
if (!req.user) {
|
|
158
|
+
return res.status(401).json({ error: 'Unauthorized' });
|
|
159
|
+
}
|
|
160
|
+
const blocklet = await req.getBlocklet();
|
|
161
|
+
const info = getBlockletInfo(blocklet);
|
|
162
|
+
const mapServers = blocklet.children
|
|
163
|
+
.map((x) => {
|
|
164
|
+
if (isMCPSupported(x)) {
|
|
165
|
+
return {
|
|
166
|
+
name: x.meta.title,
|
|
167
|
+
description: x.meta.description,
|
|
168
|
+
componentDid: x.meta.did,
|
|
169
|
+
appPid: blocklet.appPid,
|
|
170
|
+
endpoint: joinURL(info.appUrl, x.mountPoint, '/mcp'),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return null;
|
|
175
|
+
})
|
|
176
|
+
.filter(Boolean);
|
|
177
|
+
|
|
178
|
+
const toolMartixs = await Promise.all(
|
|
179
|
+
mapServers.map(async (x) => {
|
|
180
|
+
const client = new Client({
|
|
181
|
+
name: 'blocklet-service-mcp-client',
|
|
182
|
+
version,
|
|
183
|
+
});
|
|
184
|
+
const currentTransport = new StreamableHTTPClientTransport(new URL(x.endpoint), {
|
|
185
|
+
requestInit: {
|
|
186
|
+
headers: {
|
|
187
|
+
Cookie: req.headers.cookie,
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
});
|
|
191
|
+
await client.connect(currentTransport);
|
|
192
|
+
const { tools } = await client.listTools().catch((error) => {
|
|
193
|
+
console.error('error listing tools', error);
|
|
194
|
+
return { tools: [] };
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
return tools.map((tool) => ({
|
|
198
|
+
...tool,
|
|
199
|
+
appPid: x.appPid,
|
|
200
|
+
componentDid: x.componentDid,
|
|
201
|
+
}));
|
|
202
|
+
})
|
|
203
|
+
);
|
|
204
|
+
const tools = flatten(toolMartixs);
|
|
205
|
+
|
|
206
|
+
return res.send(tools);
|
|
207
|
+
}
|
|
208
|
+
);
|
|
209
|
+
|
|
210
|
+
server.get(
|
|
211
|
+
joinURL(WELLKNOWN_SERVICE_PATH_PREFIX, '/mcp/tools.js'),
|
|
212
|
+
/**
|
|
213
|
+
*
|
|
214
|
+
* @see https://team.arcblock.io/comment/discussions/aPYG3ocSGNIhFHFr5wFcquZx#53f1867b-3439-43c8-b63c-bf53fffcfe8c
|
|
215
|
+
* @param {import('express').Request} req
|
|
216
|
+
* @param {import('express').Response} res
|
|
217
|
+
* @returns
|
|
218
|
+
*/
|
|
219
|
+
async (req, res) => {
|
|
220
|
+
const blocklet = await req.getBlocklet();
|
|
221
|
+
const info = getBlockletInfo(blocklet);
|
|
222
|
+
const toolsApiUrl = joinURL(info.appUrl, WELLKNOWN_SERVICE_PATH_PREFIX, '/mcp/tools');
|
|
223
|
+
|
|
224
|
+
// 定义为 js
|
|
225
|
+
res.type('js');
|
|
226
|
+
|
|
227
|
+
// @note: 这么做的好处是,未登录到登录成功之后,页面没有刷新也能很快地注册 tools
|
|
228
|
+
return res.send(`
|
|
229
|
+
function getCookiesAsObject() {
|
|
230
|
+
const cookieStr = document.cookie;
|
|
231
|
+
if (!cookieStr.trim()) {
|
|
232
|
+
return {};
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
const cookies = {};
|
|
236
|
+
const cookiePairs = cookieStr.split('; ');
|
|
237
|
+
|
|
238
|
+
cookiePairs.forEach(pair => {
|
|
239
|
+
const eqIndex = pair.indexOf('=');
|
|
240
|
+
if (eqIndex === -1) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
const key = pair.substring(0, eqIndex);
|
|
245
|
+
const value = pair.substring(eqIndex + 1);
|
|
246
|
+
const decodedKey = decodeURIComponent(key);
|
|
247
|
+
const decodedValue = decodeURIComponent(value);
|
|
248
|
+
cookies[decodedKey] = decodedValue;
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
return cookies;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
async function registerTools() {
|
|
255
|
+
try {
|
|
256
|
+
const cookies = getCookiesAsObject();
|
|
257
|
+
if (cookies.login_token) {
|
|
258
|
+
// 发送 GET 请求获取工具列表,携带 cookie
|
|
259
|
+
const response = await fetch('${toolsApiUrl}', {
|
|
260
|
+
method: 'GET',
|
|
261
|
+
credentials: 'include', // 自动携带 cookie
|
|
262
|
+
headers: {
|
|
263
|
+
'Content-Type': 'application/json'
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
if (response.ok) {
|
|
268
|
+
const tools = await response.json();
|
|
269
|
+
dsBridge.call("arc__registerTools", tools);
|
|
270
|
+
console.info("registerTools success");
|
|
271
|
+
} else {
|
|
272
|
+
console.error("Failed to fetch tools:", response.status, response.statusText);
|
|
273
|
+
dsBridge.call("arc__registerTools", []);
|
|
274
|
+
}
|
|
275
|
+
} else {
|
|
276
|
+
dsBridge.call("arc__registerTools", []);
|
|
277
|
+
}
|
|
278
|
+
} catch (error) {
|
|
279
|
+
console.error("registerTools", error);
|
|
280
|
+
dsBridge.call("arc__registerTools", []);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
let lastLoginToken = null;
|
|
285
|
+
async function watchCookieChanges() {
|
|
286
|
+
const cookies = getCookiesAsObject();
|
|
287
|
+
const currentLoginToken = cookies.login_token || null;
|
|
288
|
+
|
|
289
|
+
if (currentLoginToken !== lastLoginToken) {
|
|
290
|
+
lastLoginToken = currentLoginToken;
|
|
291
|
+
await registerTools();
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
registerTools();
|
|
296
|
+
|
|
297
|
+
const cookies = getCookiesAsObject();
|
|
298
|
+
lastLoginToken = cookies.login_token || null;
|
|
299
|
+
setInterval(watchCookieChanges, 1000);
|
|
300
|
+
`);
|
|
301
|
+
}
|
|
302
|
+
);
|
|
303
|
+
|
|
304
|
+
server.post(
|
|
305
|
+
joinURL(WELLKNOWN_SERVICE_PATH_PREFIX, '/mcp/tools'),
|
|
306
|
+
/**
|
|
307
|
+
* @see https://team.arcblock.io/comment/discussions/aPYG3ocSGNIhFHFr5wFcquZx#53f1867b-3439-43c8-b63c-bf53fffcfe8c
|
|
308
|
+
* @param {import('express').Request} req
|
|
309
|
+
* @param {import('express').Response} res
|
|
310
|
+
*
|
|
311
|
+
*/
|
|
312
|
+
async (req, res) => {
|
|
313
|
+
if (!req.user) {
|
|
314
|
+
return res.status(401).json({ error: 'Unauthorized' });
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
// Validate request body with Zod
|
|
318
|
+
let name;
|
|
319
|
+
let componentDid;
|
|
320
|
+
let input;
|
|
321
|
+
try {
|
|
322
|
+
const validatedData = await mcpToolsRequestSchema.parseAsync(req.body);
|
|
323
|
+
({ name, componentDid, input } = validatedData);
|
|
324
|
+
} catch (error) {
|
|
325
|
+
console.error(error);
|
|
326
|
+
if (error instanceof z.ZodError) {
|
|
327
|
+
return res.status(400).json({
|
|
328
|
+
error: error.errors.map((e) => ({
|
|
329
|
+
field: e.path.join('.'),
|
|
330
|
+
message: e.message,
|
|
331
|
+
})),
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
return res.status(400).json({ error: error.message });
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
const blocklet = await req.getBlocklet();
|
|
338
|
+
const info = getBlockletInfo(blocklet);
|
|
339
|
+
const mountPoint = blocklet.children.find((x) => {
|
|
340
|
+
return x.meta.did === componentDid && isMCPSupported(x);
|
|
341
|
+
})?.mountPoint;
|
|
342
|
+
if (!mountPoint) {
|
|
343
|
+
return res.status(404).json({ error: `Component not found by ${componentDid}` });
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
const endpoint = joinURL(info.appUrl, mountPoint, '/mcp');
|
|
347
|
+
const client = new Client({
|
|
348
|
+
name: 'blocklet-service-proxy',
|
|
349
|
+
version,
|
|
350
|
+
});
|
|
351
|
+
const currentTransport = new StreamableHTTPClientTransport(new URL(endpoint), {
|
|
352
|
+
requestInit: {
|
|
353
|
+
headers: {
|
|
354
|
+
Cookie: req.headers.cookie,
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
});
|
|
358
|
+
await client.connect(currentTransport);
|
|
359
|
+
const output = await client.callTool({
|
|
360
|
+
name,
|
|
361
|
+
arguments: input,
|
|
362
|
+
});
|
|
363
|
+
|
|
364
|
+
return res.send(output);
|
|
365
|
+
}
|
|
366
|
+
);
|
|
133
367
|
},
|
|
134
368
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/* eslint-disable import/no-unresolved */
|
|
2
2
|
const { joinURL } = require('ufo');
|
|
3
3
|
const { OAUTH_ENDPOINTS, OAUTH_CLIENT_SECRET_TTL, WELLKNOWN_SERVICE_PATH_PREFIX } = require('@abtnode/constant');
|
|
4
|
-
const { authorizationHandler } = require('@
|
|
5
|
-
const { tokenHandler } = require('@
|
|
6
|
-
const { revocationHandler } = require('@
|
|
7
|
-
const { clientRegistrationHandler } = require('@
|
|
4
|
+
const { authorizationHandler } = require('@modelcontextprotocol/sdk/server/auth/handlers/authorize.js');
|
|
5
|
+
const { tokenHandler } = require('@modelcontextprotocol/sdk/server/auth/handlers/token.js');
|
|
6
|
+
const { revocationHandler } = require('@modelcontextprotocol/sdk/server/auth/handlers/revoke.js');
|
|
7
|
+
const { clientRegistrationHandler } = require('@modelcontextprotocol/sdk/server/auth/handlers/register.js');
|
|
8
8
|
|
|
9
9
|
const { createBlockletOAuthServerProvider } = require('../../services/oauth/server');
|
|
10
10
|
const { redirectWithoutCache, getRedirectUrl } = require('../../util');
|
|
@@ -183,12 +183,20 @@ function createNotificationWebsocketServer(node, ensureWsUser, options) {
|
|
|
183
183
|
authenticate: createWebsocketAuthenticator(ensureWsUser, [], options),
|
|
184
184
|
|
|
185
185
|
hooks: {
|
|
186
|
-
authenticateJoinChannel: ({ topic: channel, socket }) => {
|
|
186
|
+
authenticateJoinChannel: async ({ topic: channel, socket }) => {
|
|
187
187
|
const [blockletDid, userDid] = channel.split('/');
|
|
188
188
|
if (get(socket, 'authInfo.teamDid') !== blockletDid) {
|
|
189
189
|
throw new Error("You cannot join other blocklet's channel");
|
|
190
190
|
}
|
|
191
|
-
|
|
191
|
+
const did = get(socket, 'authInfo.did');
|
|
192
|
+
const user = await node.getUser({
|
|
193
|
+
teamDid: blockletDid,
|
|
194
|
+
user: { did },
|
|
195
|
+
options: { enableConnectedAccount: true },
|
|
196
|
+
});
|
|
197
|
+
const dids = (user?.connectedAccounts || [])?.map((item) => item.did);
|
|
198
|
+
|
|
199
|
+
if (!dids.includes(userDid)) {
|
|
192
200
|
throw new Error("You cannot join other user's channel");
|
|
193
201
|
}
|
|
194
202
|
},
|
|
@@ -200,20 +208,30 @@ function createNotificationWebsocketServer(node, ensureWsUser, options) {
|
|
|
200
208
|
});
|
|
201
209
|
|
|
202
210
|
// 发送给用户
|
|
203
|
-
eventHub.on(EVENTS.NOTIFICATION_BLOCKLET_CREATE, (data) => {
|
|
211
|
+
eventHub.on(EVENTS.NOTIFICATION_BLOCKLET_CREATE, async (data) => {
|
|
204
212
|
if (data?.entityType === 'blocklet' && data.entityId) {
|
|
205
213
|
const did = data.entityId;
|
|
206
214
|
const { receiver } = data.receivers[0] ?? {};
|
|
207
|
-
const
|
|
215
|
+
const user = await node.getUser({
|
|
216
|
+
teamDid: did,
|
|
217
|
+
user: { did: receiver },
|
|
218
|
+
options: { enableConnectedAccount: true },
|
|
219
|
+
});
|
|
220
|
+
const eventName = `${did}/${user.did}/${EVENTS.NOTIFICATION_BLOCKLET_CREATE}`;
|
|
208
221
|
wsServer.broadcast(eventName, eventName, data, { noCluster: true });
|
|
209
222
|
}
|
|
210
223
|
});
|
|
211
224
|
|
|
212
|
-
eventHub.on(EVENTS.NOTIFICATION_BLOCKLET_READ, (data) => {
|
|
225
|
+
eventHub.on(EVENTS.NOTIFICATION_BLOCKLET_READ, async (data) => {
|
|
213
226
|
const did = data.teamDid;
|
|
214
227
|
const { receiver } = data;
|
|
215
228
|
if (receiver && did) {
|
|
216
|
-
const
|
|
229
|
+
const user = await node.getUser({
|
|
230
|
+
teamDid: did,
|
|
231
|
+
user: { did: receiver },
|
|
232
|
+
options: { enableConnectedAccount: true },
|
|
233
|
+
});
|
|
234
|
+
const eventName = `${did}/${user.did}/${EVENTS.NOTIFICATION_BLOCKLET_READ}`;
|
|
217
235
|
wsServer.broadcast(eventName, eventName, data, { noCluster: true });
|
|
218
236
|
}
|
|
219
237
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// eslint-disable-next-line import/no-unresolved
|
|
2
|
-
const { McpServer } = require('@
|
|
2
|
+
const { McpServer } = require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
3
3
|
const path = require('path');
|
|
4
4
|
const { initDbhubServer } = require('@blocklet/dbhub');
|
|
5
5
|
const logger = require('../../libs/logger')('mcp:server');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const get = require('lodash/get');
|
|
2
2
|
const uniqBy = require('lodash/uniqBy');
|
|
3
3
|
const uniq = require('lodash/uniq');
|
|
4
|
-
|
|
4
|
+
const { isInstanceWorker } = require('@abtnode/util/lib/pm2/is-instence-worker');
|
|
5
5
|
const JWT = require('@arcblock/jwt');
|
|
6
6
|
|
|
7
7
|
const { ROLES } = require('@abtnode/constant');
|
|
@@ -147,7 +147,7 @@ const init = ({ node, notificationService }) => {
|
|
|
147
147
|
].forEach((eventName) => {
|
|
148
148
|
eventHub.on(eventName, async (data) => {
|
|
149
149
|
// Only first worker process handle blocklet event
|
|
150
|
-
if (
|
|
150
|
+
if (isInstanceWorker()) {
|
|
151
151
|
return;
|
|
152
152
|
}
|
|
153
153
|
|
|
@@ -6,6 +6,7 @@ const md5 = require('@abtnode/util/lib/md5');
|
|
|
6
6
|
const { wipeSensitiveData } = require('@blocklet/meta/lib/util');
|
|
7
7
|
const cloneDeep = require('@abtnode/util/lib/deep-clone');
|
|
8
8
|
const { NOTIFICATION_TYPES } = require('@blocklet/sdk/lib/validators/notification');
|
|
9
|
+
const { isInstanceWorker } = require('@abtnode/util/lib/pm2/is-instence-worker');
|
|
9
10
|
const {
|
|
10
11
|
NODE_MODES,
|
|
11
12
|
EVENTS,
|
|
@@ -16,7 +17,6 @@ const {
|
|
|
16
17
|
const { nanoid } = require('@blocklet/meta/lib/util');
|
|
17
18
|
const get = require('lodash/get');
|
|
18
19
|
const uniqBy = require('lodash/uniqBy');
|
|
19
|
-
const { getWalletDid } = require('@blocklet/meta/lib/did-utils');
|
|
20
20
|
const { getBlockletInfo } = require('../../cache');
|
|
21
21
|
const { updateNotificationSendStatus } = require('../../socket/channel/did');
|
|
22
22
|
const eventHub =
|
|
@@ -314,7 +314,7 @@ const init = ({ node, notificationService }) => {
|
|
|
314
314
|
|
|
315
315
|
const email = userInfo?.email;
|
|
316
316
|
|
|
317
|
-
const receiverDid =
|
|
317
|
+
const receiverDid = userInfo.did;
|
|
318
318
|
|
|
319
319
|
const channelEnabled = emailEnabled && channels.includes(NOTIFICATION_SEND_CHANNEL.EMAIL);
|
|
320
320
|
|
|
@@ -366,7 +366,7 @@ const init = ({ node, notificationService }) => {
|
|
|
366
366
|
const insertToWebhookPushQueue = async (props, nodeInfo, isResend) => {
|
|
367
367
|
const { channels, notification, sender, userInfo, teamDid } = props;
|
|
368
368
|
|
|
369
|
-
const receiverDid =
|
|
369
|
+
const receiverDid = userInfo.did;
|
|
370
370
|
|
|
371
371
|
const commonParams = {
|
|
372
372
|
node,
|
|
@@ -444,7 +444,7 @@ const init = ({ node, notificationService }) => {
|
|
|
444
444
|
return;
|
|
445
445
|
}
|
|
446
446
|
|
|
447
|
-
const receiverDid =
|
|
447
|
+
const receiverDid = userInfo.did;
|
|
448
448
|
|
|
449
449
|
const commonParams = {
|
|
450
450
|
node,
|
|
@@ -484,7 +484,7 @@ const init = ({ node, notificationService }) => {
|
|
|
484
484
|
const insertToWalletPushQueue = (props, nodeInfo, isResend) => {
|
|
485
485
|
const { channels, notification, sender, userInfo, teamDid, options = {} } = props;
|
|
486
486
|
|
|
487
|
-
const receiverDid =
|
|
487
|
+
const receiverDid = userInfo.did;
|
|
488
488
|
|
|
489
489
|
const commonParams = {
|
|
490
490
|
node,
|
|
@@ -524,7 +524,7 @@ const init = ({ node, notificationService }) => {
|
|
|
524
524
|
};
|
|
525
525
|
|
|
526
526
|
const insertToNotificationReceiver = async (nodeInfo, userInfo, teamDid, notificationId) => {
|
|
527
|
-
const receiverDid =
|
|
527
|
+
const receiverDid = userInfo.did;
|
|
528
528
|
|
|
529
529
|
const receiverInstance = {
|
|
530
530
|
receiver: receiverDid,
|
|
@@ -585,7 +585,7 @@ const init = ({ node, notificationService }) => {
|
|
|
585
585
|
receiver,
|
|
586
586
|
});
|
|
587
587
|
// websocket 通知
|
|
588
|
-
const receiverDid =
|
|
588
|
+
const receiverDid = userInfo.did;
|
|
589
589
|
try {
|
|
590
590
|
websocketQueue.push({
|
|
591
591
|
input: {
|
|
@@ -661,7 +661,7 @@ const init = ({ node, notificationService }) => {
|
|
|
661
661
|
eventHub.on(EVENTS.NOTIFICATION_CREATE_QUEUED, async (data) => {
|
|
662
662
|
// Only first worker process handle blocklet event
|
|
663
663
|
try {
|
|
664
|
-
if (
|
|
664
|
+
if (isInstanceWorker()) {
|
|
665
665
|
return;
|
|
666
666
|
}
|
|
667
667
|
if (!data.notification) {
|
|
@@ -698,7 +698,7 @@ const init = ({ node, notificationService }) => {
|
|
|
698
698
|
});
|
|
699
699
|
|
|
700
700
|
users.forEach((userInfo) => {
|
|
701
|
-
const receiverDid =
|
|
701
|
+
const receiverDid = userInfo.did;
|
|
702
702
|
queue.push({
|
|
703
703
|
...rest,
|
|
704
704
|
teamDid,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{D as h,j as e,ak as l,y as E,bp as A,b6 as g,bq as L,at as N,W as y}from"./vendor-mui-core-CmD-NPnl.js";import{r as m}from"./vendor-react-Dvs43sk9.js";import{T as I,H as j}from"./vendor-ux-ESjuHpb6.js";import{A as b}from"./config-
|
|
1
|
+
import{D as h,j as e,ak as l,y as E,bp as A,b6 as g,bq as L,at as N,W as y}from"./vendor-mui-core-CmD-NPnl.js";import{r as m}from"./vendor-react-Dvs43sk9.js";import{T as I,H as j}from"./vendor-ux-ESjuHpb6.js";import{A as b}from"./config-DBzwJyqc.js";import{a as O}from"./page-header-8LlFejLk.js";import{m as v,f as R,c as o,h as T}from"./index-6k6hDX7K.js";import{S as Y}from"./layout-O4FRf5d2.js";import{S as D}from"./step-actions-C91dncKW.js";import{S as P}from"./button-bUtVfsu_.js";import"./vendor-utils-DQK0pEML.js";import"./vendor-hooks-DLNZ8kxG.js";import"./lottie-web-4koyQiv_.js";import"./vendor-arcblock-C-xQV6LY.js";import"./content-layout-DYZYIlLo.js";import"./use-mobile-CQ7Tw4aD.js";function W({onNext:a=()=>{}}){const C=h(),{t:n,locale:p}=I(),[i,c]=m.useState(!1),[S,d]=m.useState(""),{blocklet:r}=v();m.useEffect(()=>{const t=R.findServiceFromMeta(r.meta,o.NODE_SERVICES.AUTH);d(t?.config?.whoCanAccess||o.WHO_CAN_ACCESS.ALL)},[r]);const f=async t=>{let s=o.ACCESS_POLICY_PUBLIC;t===o.WHO_CAN_ACCESS.ALL?s=o.ACCESS_POLICY_PUBLIC:t===o.WHO_CAN_ACCESS.INVITED?s=o.ACCESS_POLICY_INVITED_ONLY:t===o.WHO_CAN_ACCESS.OWNER?s=o.ACCESS_POLICY_OWNER_ONLY:t===o.WHO_CAN_ACCESS.ADMIN&&(s=o.ACCESS_POLICY_ADMIN_ONLY);try{c(!0),await T.updateBlockletSecurityRule({input:{did:r.meta.did,data:{id:o.SECURITY_RULE_DEFAULT_ID,accessPolicyId:s}}}),c(!1)}catch(_){c(!1),j.error(_.message)}},x=async t=>{i||(d(t.target.value),await f(t.target.value))},u={marginRight:4,fontSize:18,verticalAlign:"text-bottom",color:C.palette.text.secondary};return e.jsxs(k,{children:[e.jsx(l,{className:"header",children:e.jsx(O,{title:n("blocklet.config.access.title"),subTitle:n("blocklet.config.access.description")})}),e.jsx(l,{className:"form-container",children:e.jsx(E,{component:"fieldset",children:e.jsx(A,{name:"inherit",value:S,onChange:x,children:b.map(t=>e.jsxs(l,{sx:{mb:2,"&:last-child":{mb:0}},children:[e.jsx(g,{value:t.value,control:e.jsx(L,{size:"small",color:"primary"}),label:e.jsxs("span",{style:{display:"flex",alignItems:"center",position:"relative"},children:[e.jsx(t.icon,{style:u}),e.jsx("span",{style:{marginTop:2},children:t.title[p]})]})}),e.jsx(l,{className:"tip",children:t.description[p]})]},t.value))})})}),e.jsx(D,{mt:8,disabled:i,blocklet:r,onStartNow:()=>a("complete"),children:e.jsx(P,{loading:i,variant:"contained",disabled:i,onClick:()=>a(),children:n("setup.continue")})})]})}W.propTypes={onNext:y.func};const k=N(Y)`
|
|
2
2
|
height: 100%;
|
|
3
3
|
overflow-y: auto;
|
|
4
4
|
.header {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{W as F,j as l,a6 as jt,at as ot,ak as te,D as qt,T as Ie,J as Yt,b6 as Zr,a5 as ei,I as No,bU as Ao,S as Do,ch as va,dQ as ya,aP as Mo,F as ba,z as Gn,bH as xa,bI as wa,bJ as Sa,bC as Ea,aX as Bo,V as ka,aO as Ta,cO as ja,cP as Oa,bA as Ca,bD as Ia,M as ti,am as Fo,aq as Ra,b1 as ut,b7 as Pa,ds as La,a8 as $o,ad as Uo,aV as _a,aj as qo,Q as Tn,Y as Na,bv as Wo,o as zo,aU as Aa,ar as Xt,c6 as Da,c5 as Ma,c1 as Ei,U as ki,ah as Ba,dM as Fa,O as $a,K as Ua,P as qa,ai as Wa,an as Vo,A as Ti,aI as za,dI as Va}from"./vendor-mui-core-CmD-NPnl.js";import{r as q,g as ni,u as Ka,i as Ga,p as Ha,e as Xa,a as Ut,d as Ya,f as In,j as Ja}from"./vendor-react-Dvs43sk9.js";import{r as ri,S as Qa,s as Ko,A as Za}from"./item-
|
|
1
|
+
import{W as F,j as l,a6 as jt,at as ot,ak as te,D as qt,T as Ie,J as Yt,b6 as Zr,a5 as ei,I as No,bU as Ao,S as Do,ch as va,dQ as ya,aP as Mo,F as ba,z as Gn,bH as xa,bI as wa,bJ as Sa,bC as Ea,aX as Bo,V as ka,aO as Ta,cO as ja,cP as Oa,bA as Ca,bD as Ia,M as ti,am as Fo,aq as Ra,b1 as ut,b7 as Pa,ds as La,a8 as $o,ad as Uo,aV as _a,aj as qo,Q as Tn,Y as Na,bv as Wo,o as zo,aU as Aa,ar as Xt,c6 as Da,c5 as Ma,c1 as Ei,U as ki,ah as Ba,dM as Fa,O as $a,K as Ua,P as qa,ai as Wa,an as Vo,A as Ti,aI as za,dI as Va}from"./vendor-mui-core-CmD-NPnl.js";import{r as q,g as ni,u as Ka,i as Ga,p as Ha,e as Xa,a as Ut,d as Ya,f as In,j as Ja}from"./vendor-react-Dvs43sk9.js";import{r as ri,S as Qa,s as Ko,A as Za}from"./item-CRpPGQS5.js";import{D as bt,F as ii,J as Go,T as St,ab as xt,H as Hn,aL as ji,l as Qt,C as Ho,$ as zn,V as Xo,I as el,O as tl,a7 as Br,bb as nl}from"./vendor-ux-ESjuHpb6.js";import{Z as un,f as $t,c as rl,ch as il,bd as ol,av as sl,aB as Xn,b9 as al,bW as Yo,ci as ll,bS as cl,cj as ul,ck as dl,a4 as hl,X as Bt,bG as fl,v as Jo,aM as pl,cl as ml,G as gl,cm as vl,a8 as Yn,cn as Qo,bl as Zo,k as Jn,ah as Oi,co as yl,ao as bl,cp as xl,cq as wl,cr as Rn,cs as Ci,ba as Sl}from"./index-6k6hDX7K.js";import{j as Ii,o as El,T as kl,L as Tl,P as jl}from"./vendor-arcblock-C-xQV6LY.js";import{u as Ri}from"./launch-result-message-DN12F68Q.js";import{a as Fr}from"./page-header-8LlFejLk.js";import{e as yt,B as Ol,C as nn,J as Qn,D as Pi,R as es,Q as Cl,a8 as Il,A as Rl,o as or,U as Pl,am as Ll,an as _l,ao as Nl,a as bn,S as Al,b as Dl}from"./vendor-utils-DQK0pEML.js";import{f as $r}from"./index-DBs9Ljax.js";import{e as Ml}from"./engine-B4t4bO94.js";import{u as Bl,C as Fl}from"./config-space-Da0MmMPn.js";import{R as Pn}from"./required-B2SKELXR.js";import{S as $l}from"./index-DzHxtRuX.js";import{a as ts,h as Ul,w as ql,f as Wl,b as zl,d as Vl,e as Kl,M as Gl}from"./index-kiLQKwVa.js";import{k as jn,a as Hl,b as Xl,u as ns,g as Yl,o as Jl}from"./vendor-hooks-DLNZ8kxG.js";import{g as Ql}from"./get-safe-url-C5Vpma4S.js";import{r as rs,A as Zl}from"./config-BPieGs6J.js";import{r as ec}from"./index-BPy8_fa2.js";import{r as tc}from"./cloneDeep-sSKmkjV3.js";import{u as oi}from"./useLocalStorage-vyIYLydJ.js";import{v as Li}from"./index-1BANSka2.js";import{u as nc}from"./session-D-9YOhAy.js";import{W as rc}from"./did-address-D6qV21Cc.js";import{a as _i}from"./api-sewNv0AE.js";import{v as ic,e as oc}from"./util-BlUZ4Q2D.js";import{u as is}from"./use-mobile-D93Bk2Ru.js";import{C as sc}from"./content-layout-DYZYIlLo.js";import{C as ac,D as lc,a as cc}from"./connect-to-DhIpK6hj.js";import{d as sr}from"./search-4YYphs0l.js";const Lf="blocklet-add-component-registry",_f="server-add-registry",Nf=e=>`resource-${e}-add-registry`;function os(e){const{info:t}=un();return q.useMemo(()=>!e||!e.docker?.image||e.docker?.image&&e.docker?.runBaseScript?!0:window.blocklet?window.blocklet.enableDocker&&window.blocklet.enableDockerNetwork:t.enableDocker&&t.enableDockerNetwork,[e,t])}function ss({disabled:e=!1,children:t,onConfirm:r}){return q.useEffect(()=>{if(e)return()=>{};const i=s=>{s.code==="Enter"&&(s.metaKey===!0||s.ctrlKey===!0)&&(s.preventDefault(),s.stopPropagation(),r())};return document.addEventListener("keydown",i),()=>{document.removeEventListener("keydown",i)}},[e,r]),t}ss.propTypes={disabled:F.bool,children:F.any.isRequired,onConfirm:F.func.isRequired};function as({onContinue:e,nextDisabled:t=!1,launching:r=!1,texts:i={listenName:"",launchingText:"",buttonNext:""},description:s=""}){const[n,o]=q.useState(!1);return l.jsxs(l.Fragment,{children:[l.jsx(uc,{children:l.jsxs(ss,{disabled:t,onConfirm:e,children:[l.jsx("div",{className:"eula-trigger",onClick:()=>o(a=>!a),children:i.listenName}),l.jsx(bt,{disabled:t,color:"primary",variant:"contained",className:"next-button",onClick:e,children:r?l.jsxs(l.Fragment,{children:[l.jsx(jt,{size:14}),i.launchingText]}):i.buttonNext})]})}),l.jsx(ii,{open:n,title:i.listenName,onClose:()=>o(!1),children:s})]})}as.propTypes={onContinue:F.func.isRequired,nextDisabled:F.bool,launching:F.bool,description:F.any,texts:F.object};const uc=ot.div`
|
|
2
2
|
margin: 0 auto;
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: space-between;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{J as v,j as l}from"./vendor-mui-core-CmD-NPnl.js";import{j as B,r}from"./vendor-react-Dvs43sk9.js";import{C as W,D as L}from"./vendor-utils-DQK0pEML.js";import{T as O,F as T}from"./vendor-ux-ESjuHpb6.js";import{h as d,b as A,m as F}from"./vendor-hooks-DLNZ8kxG.js";import{A as _,S as $}from"./add-component-core-
|
|
1
|
+
import{J as v,j as l}from"./vendor-mui-core-CmD-NPnl.js";import{j as B,r}from"./vendor-react-Dvs43sk9.js";import{C as W,D as L}from"./vendor-utils-DQK0pEML.js";import{T as O,F as T}from"./vendor-ux-ESjuHpb6.js";import{h as d,b as A,m as F}from"./vendor-hooks-DLNZ8kxG.js";import{A as _,S as $}from"./add-component-core-C8Wvhlwd.js";import{m as K,I as z}from"./index-6k6hDX7K.js";import"./lottie-web-4koyQiv_.js";import"./item-CRpPGQS5.js";import"./index-DBs9Ljax.js";import"./delete-confirm-BR2z4Ljn.js";import"./click-to-copy-BWrdBff2.js";import"./confirm-BSaR4_fO.js";import"./session-D-9YOhAy.js";import"./get-safe-url-C5Vpma4S.js";import"./did-address-D6qV21Cc.js";import"./wait-connect-zz_yxj4x.js";import"./vendor-arcblock-C-xQV6LY.js";import"./launch-result-message-DN12F68Q.js";import"./page-header-8LlFejLk.js";import"./engine-B4t4bO94.js";import"./config-space-Da0MmMPn.js";import"./spaces-Cq_dfNLt.js";import"./api-sewNv0AE.js";import"./required-B2SKELXR.js";import"./index-DzHxtRuX.js";import"./Google-Co0ES_Ef.js";import"./cloneDeep-sSKmkjV3.js";import"./form-wrapper-BCRhnWhi.js";import"./logo-uploader-vRfbxowv.js";import"./collapse-GMtfQlRs.js";import"./index-kiLQKwVa.js";import"./config-BPieGs6J.js";import"./isURL-BOLVWN6q.js";import"./section-CndbjVtx.js";import"./form-text-input-qFGxuulC.js";import"./edit.svg-DycWG9v3.js";import"./index-BPy8_fa2.js";import"./index-BE6_aQqm.js";import"./useLocalStorage-vyIYLydJ.js";import"./index-1BANSka2.js";import"./util-BlUZ4Q2D.js";import"./use-mobile-D93Bk2Ru.js";import"./content-layout-DYZYIlLo.js";import"./connect-to-DhIpK6hj.js";import"./index-ptPisY0K.js";import"./index-DRYJ0xIl.js";import"./index-BojVbZw0.js";import"./index-BUKvf-Yt.js";import"./search-4YYphs0l.js";function _t(){const{t:u}=O(),{blocklet:h}=K(),{componentDid:s}=B(),w=v(t=>t.breakpoints.down("md")),e=new URL(window.location.href),f=e.searchParams.get("mode")==="dialog",n=e.searchParams.get("resourceType")||"",m=e.searchParams.get("resourceDid")||s,g=e.searchParams.get("store")||"",C=e.searchParams.get("showFromUrl")!=="false",R=e.searchParams.get("showResourcesSwitch")!=="false",S=e.searchParams.get("enableRunBackground")!=="false",b=e.searchParams.get("showCategory")!=="false",a=h?.meta?.did,i=g.split(",").filter(Boolean).map(t=>{try{return new URL(t.startsWith("http")?t:`https://${t}`).origin}catch(o){return console.error(o),null}}).filter(Boolean),[y,E]=r.useState(i.map(t=>({url:t,name:t.replace("https://","")}))),[P,D]=r.useState(null),[U,j]=r.useState("");r.useEffect(()=>{(async()=>{try{const t=await Promise.all(i.map(async o=>{const x=W(o,"/api/store.json"),{data:M}=await L.get(x);return{url:o,name:M.name}}));E(t||[])}catch(t){console.error(t)}})()},[i.join(",")]);const k=()=>{window.parent.postMessage({event:"resourceDialog.close",componentDid:s},"*")};r.useEffect(()=>{const t=z();return a&&t.connect(),()=>{a&&t.isConnected()&&t.disconnect()}},[a]),d(()=>{window.parent.postMessage({event:"resourceDialog.loaded",componentDid:s},"*")});const c=A(t=>{t.data?.event==="resourceDialog.select"&&t.data?.componentDid===s&&(D(t.data.data),j(t.data.storeUrl))});d(()=>{window.addEventListener("message",c)}),F(()=>{window.removeEventListener("message",c)});const p=({inDialog:t=!0}={})=>l.jsx(_,{stores:y,selectedMeta:P,storeUrl:U,resourceType:n,resourceDid:m,mode:"embed",inDialog:t,storageKey:$(`${n}+${m}`),showResourcesSwitch:R,showFromUrl:C,enableRunBackground:S,showCategory:b});return f?l.jsx(T,{className:"resource-dialog",title:u("blocklet.publish.addResource"),maxWidth:!1,fullWidth:!1,PaperProps:{style:w?{width:"100%",height:window.innerHeight}:{maxWidth:1350,minWidth:930,width:"80%"}},onClose:(t,o)=>{o!=="backdropClick"&&k()},showCloseButton:!0,disableEscapeKeyDown:!0,open:!0,children:p()}):p({inDialog:!1})}export{_t as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as t,k as x}from"./vendor-react-Dvs43sk9.js";import{j as e,I as u,at as C,W as o}from"./vendor-mui-core-CmD-NPnl.js";import{G as M,Y as f,K as b}from"./vendor-ux-ESjuHpb6.js";import{aj as H}from"./index-
|
|
1
|
+
import{r as t,k as x}from"./vendor-react-Dvs43sk9.js";import{j as e,I as u,at as C,W as o}from"./vendor-mui-core-CmD-NPnl.js";import{G as M,Y as f,K as b}from"./vendor-ux-ESjuHpb6.js";import{aj as H}from"./index-6k6hDX7K.js";import{t as Z}from"./question-mark-circle.svg-B4stD6SS.js";const g=s=>t.createElement("svg",{width:21,height:20,viewBox:"0 0 21 20",xmlns:"http://www.w3.org/2000/svg",...s},t.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.60567 17.3203C7.38971 16.9661 7.19606 16.5686 7.02468 16.1402C6.86016 15.7289 6.7127 15.2804 6.58436 14.801C6.01415 15.0849 5.48171 15.439 4.99946 15.855C5.7556 16.5015 6.63848 17.004 7.60567 17.3203ZM8.26264 15.645C8.10246 15.2446 7.95842 14.7971 7.83425 14.3104C8.53612 14.104 9.26539 13.9991 9.9998 14H10.0015C10.7359 13.9991 11.4652 14.104 12.167 14.3104C12.0429 14.7971 11.8988 15.2446 11.7386 15.645C11.4556 16.3525 11.1353 16.8804 10.8137 17.2204C10.4935 17.559 10.2185 17.6667 10.0006 17.6667C9.78281 17.6667 9.50783 17.559 9.18757 17.2204C8.86599 16.8804 8.54566 16.3525 8.26264 15.645ZM10.0007 12.6667C10.8258 12.6657 11.6453 12.7785 12.4365 13.0005C12.5533 12.274 12.6295 11.49 12.6565 10.6666H7.34483C7.37175 11.49 7.448 12.274 7.56482 13.0006C8.35599 12.7785 9.17556 12.6657 10.0007 12.6667ZM7.34483 9.33331C7.37175 8.50999 7.448 7.72596 7.56482 6.99945C8.35598 7.22152 9.17556 7.33433 10.0007 7.33334C10.8258 7.33433 11.6453 7.22153 12.4365 6.99947C12.5533 7.72597 12.6295 8.51 12.6565 9.33331H7.34483ZM13.9905 10.6666C13.9603 11.6495 13.8639 12.5916 13.7104 13.4645C14.5207 13.8311 15.2715 14.3159 15.9385 14.9026C16.9065 13.7315 17.5347 12.2691 17.6722 10.6666H13.9905ZM17.6721 9.33331H13.9904C13.9603 8.35043 13.8639 7.40842 13.7104 6.5355C14.5207 6.16891 15.2715 5.68412 15.9385 5.09743C16.9065 6.26854 17.5347 7.73084 17.6721 9.33331ZM19.0006 10.0017C18.9997 14.9715 14.9706 19 10.0006 19H10.0006C5.03005 19 1.00061 14.9706 1.00061 10C1.00061 9.99999 1.00061 9.99999 1.00061 9.99998C1.00062 5.02943 5.03005 1 10.0006 1C14.9712 1 19.0006 5.02944 19.0006 10C19.0006 10.0006 19.0006 10.0011 19.0006 10.0017ZM2.32907 9.33331C2.46651 7.73082 3.09476 6.2685 4.0628 5.09738C4.72975 5.68407 5.48055 6.16888 6.29084 6.53548C6.13742 7.40841 6.041 8.35042 6.01083 9.33331H2.32907ZM2.32907 10.6666H6.01083C6.04099 11.6496 6.13742 12.5916 6.29084 13.4645C5.48055 13.8311 4.72975 14.3159 4.06281 14.9026C3.09475 13.7315 2.46649 12.2692 2.32907 10.6666ZM12.9766 16.1402C13.1411 15.7289 13.2886 15.2804 13.4169 14.8009C13.9871 15.0849 14.5196 15.4389 15.0018 15.8549C14.2457 16.5014 13.3628 17.004 12.3956 17.3202C12.6116 16.9661 12.8052 16.5686 12.9766 16.1402ZM12.3956 2.67976C13.3628 2.996 14.2457 3.49858 15.0018 4.14508C14.5196 4.56106 13.9871 4.91516 13.4169 5.19908C13.2886 4.71963 13.1411 4.2711 12.9766 3.85979C12.8052 3.43137 12.6116 3.03387 12.3956 2.67976ZM11.7386 4.355C11.8988 4.75545 12.0429 5.20292 12.167 5.68962C11.4652 5.89603 10.7359 6.00096 10.0015 6.00001H9.9998C9.26539 6.00096 8.53612 5.89602 7.83424 5.68961C7.95841 5.20291 8.10246 4.75544 8.26264 4.355C8.54566 3.64747 8.86599 3.11964 9.18757 2.7796C9.50783 2.44096 9.78281 2.33333 10.0006 2.33333C10.2185 2.33333 10.4935 2.44096 10.8137 2.7796C11.1353 3.11964 11.4556 3.64747 11.7386 4.355ZM7.02468 3.85979C6.86015 4.2711 6.71269 4.71961 6.58436 5.19906C6.01414 4.91513 5.4817 4.56103 4.99945 4.14504C5.7556 3.49854 6.63848 2.99596 7.60567 2.67973C7.38971 3.03385 7.19606 3.43136 7.02468 3.85979Z",fill:"currentColor"}));function j({SessionContext:s,extraItems:n=[],showLocale:r=!0,showHelper:l=!0,showSessionManager:c=!0,sessionManagerProps:i={}}){const{session:d}=t.useContext(s),{locale:p}=t.useContext(M),w=x(),h=()=>{if(w.pathname.indexOf("/store")>-1){window.open("https://www.arcblock.io/content/docs/createblocklet","_blank");return}window.open("https://www.arcblock.io/content/docs/blocklet-developer","_blank")};return e.jsxs(e.Fragment,{children:[n.map((a,m)=>t.cloneElement(a,{key:m})),r&&e.jsx(v,{"data-cy":"locale-addon",icon:g,size:23,showText:!1,className:"locale-addon"}),e.jsx(H,{}),l&&e.jsx(u,{onClick:h,children:e.jsx(Z,{})}),c&&e.jsx(k,{locale:p,session:d,size:24,showRole:!0,...i,showManageBlocklet:!1})]})}j.propTypes={SessionContext:o.object.isRequired,extraItems:o.array,showLocale:o.bool,showSessionManager:o.bool,showHelper:o.bool,sessionManagerProps:o.object};const k=C(b)`
|
|
2
2
|
.user-addon {
|
|
3
3
|
.user-avatar {
|
|
4
4
|
width: 28px;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as P}from"./vendor-react-Dvs43sk9.js";import{j as k,a6 as ce,ak as T,Q as qe,cw as Ne,T as ee,W as F,b6 as Me,a5 as Pe,bC as Fe,aX as ze,at as je,U as Je,b1 as le,z as Be,A as Ue,cx as ke,be as ne,a3 as W,cy as We,am as ge,bd as ye}from"./vendor-mui-core-CmD-NPnl.js";import{Z as te,a8 as Ve,v as Se,f as Ke,W as He,bc as Ge,p as Ze,bd as Ye,aB as Qe,be as K,bf as Xe,c as et,aU as be,B as Re,$ as Ae,X as Z,bg as tt}from"./index-
|
|
1
|
+
import{r as P}from"./vendor-react-Dvs43sk9.js";import{j as k,a6 as ce,ak as T,Q as qe,cw as Ne,T as ee,W as F,b6 as Me,a5 as Pe,bC as Fe,aX as ze,at as je,U as Je,b1 as le,z as Be,A as Ue,cx as ke,be as ne,a3 as W,cy as We,am as ge,bd as ye}from"./vendor-mui-core-CmD-NPnl.js";import{Z as te,a8 as Ve,v as Se,f as Ke,W as He,bc as Ge,p as Ze,bd as Ye,aB as Qe,be as K,bf as Xe,c as et,aU as be,B as Re,$ as Ae,X as Z,bg as tt}from"./index-6k6hDX7K.js";import{w as ue,P as rt}from"./permission-Doi0-9cF.js";import{T as oe,D as G,H,F as Oe,an as st,J as ve,G as nt}from"./vendor-ux-ESjuHpb6.js";import{l as Ee}from"./vendor-hooks-DLNZ8kxG.js";import{C as me}from"./confirm-BSaR4_fO.js";import{f as ie}from"./index-DBs9Ljax.js";import{u as at}from"./useSetState-DFuQZPPV.js";import{u as Ce}from"./session-D-9YOhAy.js";import{S as U}from"./section-CndbjVtx.js";import{C as it}from"./click-to-copy-BWrdBff2.js";import{u as De}from"./team-RDmDo4cZ.js";import{w as ot,Z as lt}from"./vendor-utils-DQK0pEML.js";import{v as ct}from"./index-1BANSka2.js";import{W as ut}from"./did-address-D6qV21Cc.js";import{V as ft}from"./status-DJWbsb5u.js";import"./vendor-arcblock-C-xQV6LY.js";import"./lottie-web-4koyQiv_.js";import"./required-B2SKELXR.js";import"./isURL-BOLVWN6q.js";import"./use-app-logo-DesKuFha.js";import"./omit-C2ouGG7F.js";const dt=localStorage.getItem("enableDebug")==="true";function mt({teamDid:$,size:D="small",...L}){const{t:E}=oe(),{api:j}=te(),[w,p]=P.useState(!1),[i,g]=P.useState(null),m=()=>{p(!1),g(null)},f=async()=>{try{p(!0);const a=await j.clearCache({input:{teamDid:$}});H.success(E("blocklet.config.clearCache.success",{count:a.removed?.length||0}))}catch(a){H.error(ie(a))}finally{p(!1),g(null)}},e={title:E("blocklet.config.clearCache.title"),description:E("blocklet.config.clearCache.description"),confirm:E("common.confirm"),cancel:E("common.cancel"),onConfirm:f,onCancel:m};return k.jsxs("div",{...L,children:[k.jsxs(G,{onClick:()=>g(e),color:"error",variant:"outlined",size:D,children:[w?k.jsx(ce,{size:16,style:{marginRight:5}}):null,E("blocklet.config.clearCache.action")]}),i&&k.jsx(me,{title:i.title,description:i.description,confirm:i.confirm,cancel:i.cancel,onConfirm:i.onConfirm,onCancel:i.onCancel})]})}function Ie({onChange:$=()=>{},disabled:D=!1,loading:L=!1,inService:E=!1}){const{t:j}=oe(),{api:w,session:p}=Ce(),{blocklet:i}=Ve(),[g,m]=at({newAppSk:"",isConnectOpen:!1,confirmDialogOpen:!1}),f=()=>m({isConnectOpen:!1}),e=()=>{if(Ke.isInProgress(i.status)){H.error(j("blocklet.error.isInProgress"));return}m({confirmDialogOpen:!0})};return k.jsxs(k.Fragment,{children:[k.jsx(U,{title:j("blocklet.config.migrate.button"),desc:j("blocklet.config.migrate.description"),children:k.jsx(T,{sx:{alignSelf:{xs:"flex-start",md:"flex-end"}},children:k.jsxs(qe,{style:{flexShrink:0},variant:"contained",color:"primary",size:"small","data-cy":"config-did",disabled:D||L,onClick:e,children:[k.jsx(Ne,{style:{fontSize:"1.3em",marginRight:4}}),j("blocklet.config.migrate.button")]})})}),k.jsxs(k.Fragment,{children:[g.isConnectOpen&&k.jsx(Se,{popup:!0,open:g.isConnectOpen,forceConnected:!1,saveConnect:!1,action:"rotate-key-pair",checkFn:w.get,checkTimeout:5*60*1e3,onSuccess:()=>{$(),E&&p.logout(),f()},extraParams:{appDid:i.appDid},messages:{title:j("setup.keyPair.title"),scan:j("setup.keyPair.scan"),confirm:j("setup.keyPair.confirm"),success:j("setup.keyPair.success")},onClose:f}),g.confirmDialogOpen&&k.jsx(me,{title:k.jsx(ee,{sx:{fontSize:"20px",fontWeight:"500"},children:j("blocklet.config.migrate.title")}),description:k.jsx(ee,{sx:{fontSize:"14px",color:"#9397A1"},children:j("blocklet.config.migrate.confirm")}),confirm:j("common.confirm"),cancel:j("common.cancel"),onConfirm:()=>m({confirmDialogOpen:!1,isConnectOpen:!0}),onCancel:()=>m({confirmDialogOpen:!1})})]})]})}Ie.propTypes={onChange:F.func,disabled:F.bool,loading:F.bool,inService:F.bool};function Te({onCancel:$,onSuccess:D,onError:L=()=>{}}){const{api:E}=P.useContext(He),[j,w]=P.useState(!1),{t:p,locale:i}=oe(),[g,m]=P.useState(""),[f,e]=P.useState(!1),[a,n]=P.useState(0),[r,t]=P.useState(""),{endpoint:l}=De(),[s,o]=P.useState(!1),u=c=>{m(null),w(!0);try{t(c.result),n(_.length-1)}catch(h){const b=ie(h);m(b),L(h)}finally{w(!1)}},d=()=>{e(!0),n(1)},y=()=>{e(!1),n(0)},_=[{body:k.jsxs(T,{children:[k.jsx(ee,{children:p("team.transferApp.transferDialog.tips.progress")}),k.jsx(ee,{sx:{mt:3,mb:2},children:p("team.transferApp.transferDialog.tips.newOwnerPermissions")})]}),cancel:p("common.cancel"),confirm:p("team.transferApp.transferDialog.createTransferLink"),onCancel:$,onConfirm:d},{cancel:p("common.cancel"),confirm:p("team.transferApp.transferDialog.createTransferLink"),body:()=>k.jsx(Se,{action:"transfer-app-owner",open:f,locale:i,checkFn:E.get,onClose:y,onSuccess:u,checkTimeout:5*60*1e3,extraParams:{},messages:{title:p("team.transferApp.connectDialog.title"),scan:p("team.transferApp.connectDialog.scan"),confirm:p("team.transferApp.connectDialog.confirm"),success:p("team.transferApp.connectDialog.success")},popup:!0})},{body:()=>{const c=Ge({transferId:r.transferId,endpoint:l});return k.jsxs(k.Fragment,{children:[k.jsx(T,{component:Y,dangerouslySetInnerHTML:{__html:p("team.transferApp.transferDialog.createSuccessTip1")}}),k.jsx(T,{component:Y,sx:{mt:2},children:k.jsx(Y,{children:p("team.transferApp.transferDialog.createSuccessTip3")})}),k.jsxs(T,{children:[k.jsx(T,{component:Y,sx:{mt:2},children:k.jsx(Y,{children:p("team.transferApp.transferDialog.createSuccessTip2",{expireDate:Ze(r.expireDate,i)})})}),k.jsx(T,{sx:{my:1},children:k.jsx(it,{children:c})})]}),k.jsx("div",{children:k.jsx(Me,{value:"end",control:k.jsx(Pe,{checked:s,onChange:h=>o(h.target.checked)}),label:p("team.transferApp.transferDialog.iKnow"),labelPlacement:"end"})})]})},confirm:p("common.confirm"),onConfirm:D}],v=_[a];return k.jsxs(Oe,{title:k.jsx(Y,{className:"title",children:p("team.transferApp.transferDialog.title")}),fullWidth:!0,open:!0,showCloseButton:!1,actions:k.jsxs(k.Fragment,{children:[v.cancel&&k.jsx(G,{onClick:v.onCancel,color:"inherit",children:v.cancel}),k.jsxs(G,{onClick:v.onConfirm,color:"error",disabled:j||a===_.length-1&&!s,variant:"contained",autoFocus:!0,children:[j&&k.jsx(ce,{size:16}),v.confirm]})]}),children:[k.jsx(Fe,{component:"div",children:typeof v.body=="function"?v.body():v.body}),!!g&&k.jsx(ze,{severity:"error",variant:"icon",children:g})]})}Te.propTypes={onCancel:F.func.isRequired,onSuccess:F.func.isRequired,onError:F.func};const Y=je.div`
|
|
2
2
|
font-size: 16px;
|
|
3
3
|
font-weight: bold;
|
|
4
4
|
&.title {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as t,ak as d,Q as p,at as x,W as u}from"./vendor-mui-core-CmD-NPnl.js";import{r as o}from"./vendor-react-Dvs43sk9.js";import{G as g}from"./vendor-ux-ESjuHpb6.js";import{a as h}from"./page-header-8LlFejLk.js";import{a8 as j}from"./index-
|
|
1
|
+
import{j as t,ak as d,Q as p,at as x,W as u}from"./vendor-mui-core-CmD-NPnl.js";import{r as o}from"./vendor-react-Dvs43sk9.js";import{G as g}from"./vendor-ux-ESjuHpb6.js";import{a as h}from"./page-header-8LlFejLk.js";import{a8 as j}from"./index-6k6hDX7K.js";import{A as b}from"./config-BPieGs6J.js";import{S as k}from"./step-actions-C91dncKW.js";import{S}from"./layout-O4FRf5d2.js";import"./vendor-utils-DQK0pEML.js";import"./vendor-hooks-DLNZ8kxG.js";import"./lottie-web-4koyQiv_.js";import"./vendor-arcblock-C-xQV6LY.js";import"./isURL-BOLVWN6q.js";import"./section-CndbjVtx.js";import"./required-B2SKELXR.js";import"./form-wrapper-BCRhnWhi.js";import"./form-text-input-qFGxuulC.js";import"./edit.svg-DycWG9v3.js";import"./wait-connect-zz_yxj4x.js";import"./get-safe-url-C5Vpma4S.js";import"./index-BPy8_fa2.js";import"./index-DBs9Ljax.js";import"./index-BE6_aQqm.js";import"./use-mobile-CQ7Tw4aD.js";import"./content-layout-DYZYIlLo.js";function y({onNext:s=()=>{},onPrevious:l=()=>{}}){const{t:r}=o.useContext(g),{blocklet:e}=j(),i=o.useMemo(()=>e?.meta?.requirements,[e]),n=o.useRef(null),[a,m]=o.useState(!1),f=async()=>{try{m(!0),(await n.current.onSubmit()||!i?.aigne)&&s()}catch(c){console.error("error",c)}finally{m(!1)}};return t.jsxs(C,{children:[t.jsx("div",{className:"header",children:t.jsx(h,{title:r("setting.aigne.config"),onClickBack:l})}),t.jsx(d,{className:"form-container",children:t.jsx(b,{orientation:"vertical",hideSubmitButton:!0,hideDivider:!0,ref:n,source:"setup",forceValidate:i?.aigne})}),t.jsxs(k,{blocklet:e,children:[!i?.aigne&&t.jsx(p,{className:"bottom-button-skip",sx:{mr:1},onClick:()=>s(),children:r("setup.skip")}),t.jsx(p,{className:"start-now bottom-button",loading:a,variant:"contained",disabled:a,onClick:f,children:r("setup.continue")})]})]})}y.propTypes={onNext:u.func,onPrevious:u.func};const C=x(S)`
|
|
2
2
|
height: 100%;
|
|
3
3
|
overflow-y: auto;
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as E,A as T}from"./vendor-utils-DQK0pEML.js";import{Z as k,a8 as j,c as M}from"./index-
|
|
1
|
+
import{C as E,A as T}from"./vendor-utils-DQK0pEML.js";import{Z as k,a8 as j,c as M}from"./index-6k6hDX7K.js";import{r as e}from"./vendor-react-Dvs43sk9.js";import{T as B}from"./vendor-ux-ESjuHpb6.js";import{u as D}from"./use-mobile-D93Bk2Ru.js";import{D as H,j as o,ak as w,a6 as I}from"./vendor-mui-core-CmD-NPnl.js";import"./vendor-arcblock-C-xQV6LY.js";import"./vendor-hooks-DLNZ8kxG.js";import"./lottie-web-4koyQiv_.js";function K(){const{info:x,inService:g}=k(),{blocklet:y}=j(),{locale:u}=B(),f=e.useRef(null),r=H(),[L,R]=e.useState(0),m=D(),[t,S]=e.useState(!0),s=e.useRef(null);let a="";g?a=M.WELLKNOWN_SERVICE_PATH_PREFIX:a=x.routing.adminPath;const c=new URLSearchParams;g?c.set("appUrl",window.location.origin):c.set("authKey","__sst"),c.set("schemaKey",E(window.location.origin,a,`/api/theme?id=${encodeURIComponent(y.meta.did)}`));const l=e.useCallback(()=>{if(s.current){const n=T(JSON.parse(JSON.stringify(r)),["palette","typography","shape","direction","breakpoints","mixins","shadows","transitions","zIndex"]);s.current.contentWindow.postMessage({type:"SEND_THEME",payload:n},window.location.origin)}},[r]),d=e.useCallback(()=>{s.current&&s.current.contentWindow.postMessage({type:"SEND_LOCALE",payload:u},window.location.origin)},[u]);return e.useEffect(()=>{const n=i=>{i.origin===window.location.origin&&(i.data.type==="REQUEST_THEME"&&l(),i.data.type==="THEME_BUILDER_LOADED"&&(d(),S(!1)))};return window.addEventListener("message",n),()=>{window.removeEventListener("message",n)}},[l,d]),e.useEffect(()=>{t===!1&&l()},[r,t,l]),e.useEffect(()=>{t===!1&&d()},[u,t,d]),e.useEffect(()=>{const n=document.querySelector("#arc__dashboard-main"),i=document.querySelector(".dashboard-content"),p=()=>{if(f.current){const{height:C}=n.getBoundingClientRect(),{top:b}=i.getBoundingClientRect(),{top:_}=f.current.getBoundingClientRect();let h=C-_+b-(m?108:164);m&&(h=Math.min(h,600)),R(h)}};return p(),window.addEventListener("resize",p),()=>{window.removeEventListener("resize",p)}},[m,r]),o.jsxs(o.Fragment,{children:[o.jsx(w,{ref:f}),t&&o.jsx(w,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"500px"},children:o.jsx(I,{})}),o.jsx("iframe",{title:"Theme Builder",ref:s,src:`${E(window.location.origin,a,"/hosted/theme-builder/")}?${c.toString()}`,style:{border:0,width:"100%",height:`${L}px`,display:t?"none":"block"}})]})}export{K as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{cC as o,cD as l,cE as r,cF as n}from"./index-
|
|
1
|
+
import{cC as o,cD as l,cE as r,cF as n}from"./index-6k6hDX7K.js";import{r as e}from"./vendor-react-Dvs43sk9.js";const i=Object.freeze(Object.defineProperty({__proto__:null,default:o},Symbol.toStringTag,{value:"Module"})),u=Object.freeze(Object.defineProperty({__proto__:null,default:l},Symbol.toStringTag,{value:"Module"})),d=Object.freeze(Object.defineProperty({__proto__:null,default:r},Symbol.toStringTag,{value:"Module"})),s=Object.freeze(Object.defineProperty({__proto__:null,default:n},Symbol.toStringTag,{value:"Module"})),f=t=>e.createElement("svg",{width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.0608 6.75011L11.5304 7.28044L8.70722 10.1036C8.31669 10.4942 7.68353 10.4942 7.293 10.1036L4.46978 7.28044L3.93945 6.75011L5.00011 5.68945L5.53044 6.21978L8.00011 8.68945L10.4698 6.21978L11.0001 5.68945L12.0608 6.75011Z",fill:"currentColor"}));export{d as E,u as L,i as P,s as T,f as l};
|