@loicngr/kobo 1.4.8 → 1.4.9
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/dist/server/routes/workspaces.js +47 -0
- package/dist/server/services/notion-service.js +40 -3
- package/dist/server/services/settings-service.js +28 -0
- package/dist/server/utils/git-ops.js +32 -4
- package/package.json +1 -1
- package/src/client/dist/spa/assets/ActivityFeed-5m7j8KXA.css +1 -0
- package/src/client/dist/spa/assets/{ActivityFeed--fNtPlUq.js → ActivityFeed-jhus97Cf.js} +3 -3
- package/src/client/dist/spa/assets/{CreatePage-DuMR0Tyj.js → CreatePage-BErPWWmP.js} +2 -2
- package/src/client/dist/spa/assets/DiffViewer-BmAd7k-Q.js +2 -0
- package/src/client/dist/spa/assets/MainLayout-BW7daPf7.js +2 -0
- package/src/client/dist/spa/assets/{MainLayout-DYu8fNdb.css → MainLayout-Drv4zYbW.css} +1 -1
- package/src/client/dist/spa/assets/QBadge-xNMZEqT-.js +1 -0
- package/src/client/dist/spa/assets/QExpansionItem-Ch5P6bzC.js +1 -0
- package/src/client/dist/spa/assets/QList-tXJCQz3K.js +1 -0
- package/src/client/dist/spa/assets/QMenu-BE-OO3N4.js +1 -0
- package/src/client/dist/spa/assets/QPage-CkDrNXyM.js +1 -0
- package/src/client/dist/spa/assets/QSpinnerDots-FJCnAvfw.js +1 -0
- package/src/client/dist/spa/assets/QTooltip-DKxEdudV.js +1 -0
- package/src/client/dist/spa/assets/SettingsPage-B5j-Zv91.js +1 -0
- package/src/client/dist/spa/assets/SettingsPage-BzsaegMp.css +1 -0
- package/src/client/dist/spa/assets/TouchPan-Dc-xrSIS.js +1 -0
- package/src/client/dist/spa/assets/WorkspacePage-DrDOZvHX.css +1 -0
- package/src/client/dist/spa/assets/WorkspacePage-LkjOnfKV.js +4 -0
- package/src/client/dist/spa/assets/_plugin-vue_export-helper-CLHv3piE.js +1 -0
- package/src/client/dist/spa/assets/{cssMode-DwIuT6D2.js → cssMode-hVzqeL3Y.js} +1 -1
- package/src/client/dist/spa/assets/{editor.api-CZwRx7eS.js → editor.api-CDy2oNdA.js} +1 -1
- package/src/client/dist/spa/assets/{editor.main-CiV1E4yZ.js → editor.main-By6Nm4Uo.js} +3 -3
- package/src/client/dist/spa/assets/format-Ex4UmWdz.js +1 -0
- package/src/client/dist/spa/assets/{freemarker2-BXYau27h.js → freemarker2-DsZ7OE8f.js} +1 -1
- package/src/client/dist/spa/assets/{handlebars-uRjhDJ7l.js → handlebars-BwM3WWoa.js} +1 -1
- package/src/client/dist/spa/assets/{html-CHty0VkE.js → html-BevRIlIZ.js} +1 -1
- package/src/client/dist/spa/assets/{htmlMode-C0Nu81V1.js → htmlMode-B1A5H5QY.js} +1 -1
- package/src/client/dist/spa/assets/i18n-BLHRwr9N.js +1 -0
- package/src/client/dist/spa/assets/i18n-yBCUfaG0.js +1 -0
- package/src/client/dist/spa/assets/index-BxBqipDT.js +5 -0
- package/src/client/dist/spa/assets/{javascript-DopShlVO.js → javascript-Cbwf_WZd.js} +1 -1
- package/src/client/dist/spa/assets/{jsonMode-C6u8Hlwv.js → jsonMode-DXxkqMuk.js} +1 -1
- package/src/client/dist/spa/assets/{liquid-D7iBWAJk.js → liquid-CMWSadqH.js} +1 -1
- package/src/client/dist/spa/assets/{mdx-ZH2WuTVe.js → mdx-CXFMxs0m.js} +1 -1
- package/src/client/dist/spa/assets/monaco.contribution-DojwMy68.js +2 -0
- package/src/client/dist/spa/assets/private.use-form-1cZLVjGN.js +1 -0
- package/src/client/dist/spa/assets/{python-mrBT_DCK.js → python-Ct1-RX08.js} +1 -1
- package/src/client/dist/spa/assets/{razor-C4qTMLh9.js → razor-BLUxJqNg.js} +1 -1
- package/src/client/dist/spa/assets/scroll-CWjBCoBR.js +1 -0
- package/src/client/dist/spa/assets/{settings-DQXlzOR-.js → settings-B0JkmJA1.js} +1 -1
- package/src/client/dist/spa/assets/touch-Bojc73iM.js +1 -0
- package/src/client/dist/spa/assets/{tsMode-ejZTZzI4.js → tsMode-DfoQS6sD.js} +1 -1
- package/src/client/dist/spa/assets/{typescript-BnE8IrYe.js → typescript-Ce2TQPtr.js} +1 -1
- package/src/client/dist/spa/assets/use-checkbox-DwkIkUAc.js +1 -0
- package/src/client/dist/spa/assets/{xml-NRlnzXrY.js → xml-C9QcFOCj.js} +1 -1
- package/src/client/dist/spa/assets/{yaml-BZXfWRPQ.js → yaml-CpUUJmRX.js} +1 -1
- package/src/client/dist/spa/index.html +6 -4
- package/src/client/dist/spa/assets/ActivityFeed-BXrsWU-N.css +0 -1
- package/src/client/dist/spa/assets/DiffViewer-CXIRDH82.js +0 -2
- package/src/client/dist/spa/assets/MainLayout-Cya7jQEm.js +0 -2
- package/src/client/dist/spa/assets/QBadge-BBHYbjmH.js +0 -1
- package/src/client/dist/spa/assets/QCheckbox-C3OW_sBe.js +0 -1
- package/src/client/dist/spa/assets/QExpansionItem-Ce5NRok4.js +0 -1
- package/src/client/dist/spa/assets/QPage-vhrZhjiG.js +0 -1
- package/src/client/dist/spa/assets/QSpinnerDots-DxFX2A_Y.js +0 -1
- package/src/client/dist/spa/assets/QTabPanels-Dmc-JwZu.js +0 -1
- package/src/client/dist/spa/assets/QTooltip-DDQMcKoX.js +0 -1
- package/src/client/dist/spa/assets/SettingsPage-BzLP920n.js +0 -1
- package/src/client/dist/spa/assets/SettingsPage-CEJA3OTN.css +0 -1
- package/src/client/dist/spa/assets/TouchPan-DmgViFM9.js +0 -1
- package/src/client/dist/spa/assets/WorkspacePage-BV77y-1V.css +0 -1
- package/src/client/dist/spa/assets/WorkspacePage-B_7qTrmM.js +0 -2
- package/src/client/dist/spa/assets/_plugin-vue_export-helper-D5gezOWD.js +0 -1
- package/src/client/dist/spa/assets/format-DhM1gNfW.js +0 -1
- package/src/client/dist/spa/assets/i18n-CrbCJQHz.js +0 -1
- package/src/client/dist/spa/assets/i18n-dR37S5KE.js +0 -1
- package/src/client/dist/spa/assets/index-sbSu8zxK.js +0 -5
- package/src/client/dist/spa/assets/monaco.contribution-D23eNOu4.js +0 -2
- package/src/client/dist/spa/assets/nodes-Bj1I9JfN.js +0 -1
- package/src/client/dist/spa/assets/touch-Dm5n4n0E.js +0 -1
- package/src/client/dist/spa/assets/use-checkbox-Cfet_Yar.js +0 -1
- package/src/client/dist/spa/assets/use-quasar-Ddv3iBnx.js +0 -1
- /package/src/client/dist/spa/assets/{abap-DVDKJwpW.js → abap-Dvixoi-w.js} +0 -0
- /package/src/client/dist/spa/assets/{apex-DjF5nFAs.js → apex-DP7X7Z9Q.js} +0 -0
- /package/src/client/dist/spa/assets/{azcli-HEPMaiDV.js → azcli-BdzyZYsP.js} +0 -0
- /package/src/client/dist/spa/assets/{bat-D6epFECU.js → bat-BskgK8bi.js} +0 -0
- /package/src/client/dist/spa/assets/{bicep-BspG10fo.js → bicep-BB_erhjR.js} +0 -0
- /package/src/client/dist/spa/assets/{cameligo-DM9kSiq7.js → cameligo-PvLD8t4t.js} +0 -0
- /package/src/client/dist/spa/assets/{clojure-CZn9pzfW.js → clojure-CjHVLzZR.js} +0 -0
- /package/src/client/dist/spa/assets/{coffee-Bu_NglwI.js → coffee-DCoMPIwW.js} +0 -0
- /package/src/client/dist/spa/assets/{cpp-0KJLHDue.js → cpp-kftb9yup.js} +0 -0
- /package/src/client/dist/spa/assets/{csharp-DNzOiVZu.js → csharp-CYKl40UV.js} +0 -0
- /package/src/client/dist/spa/assets/{csp-CUkzJlR0.js → csp-d1_9kWqP.js} +0 -0
- /package/src/client/dist/spa/assets/{css-Uav73wXk.js → css-CSa8r6i8.js} +0 -0
- /package/src/client/dist/spa/assets/{cypher-CP6eoQBS.js → cypher-FoBj7udD.js} +0 -0
- /package/src/client/dist/spa/assets/{dart-Bdl32fSd.js → dart-BoITdHw1.js} +0 -0
- /package/src/client/dist/spa/assets/{dockerfile-BIRJ7ZNM.js → dockerfile-CRYieHSB.js} +0 -0
- /package/src/client/dist/spa/assets/{ecl-Di24nx2U.js → ecl-BisizQmF.js} +0 -0
- /package/src/client/dist/spa/assets/{elixir-DzFG1iYF.js → elixir-DMza7PS-.js} +0 -0
- /package/src/client/dist/spa/assets/{flow9-DNgNh1TU.js → flow9-DZyDUZ6t.js} +0 -0
- /package/src/client/dist/spa/assets/{formatters-BpjOVbqs.js → formatters-B5Igo0Lf.js} +0 -0
- /package/src/client/dist/spa/assets/{fsharp-CuO6_Oy9.js → fsharp-CKv7fFew.js} +0 -0
- /package/src/client/dist/spa/assets/{go-Pj7ToRvM.js → go-DXZqPXQn.js} +0 -0
- /package/src/client/dist/spa/assets/{graphql-BoaedU4s.js → graphql-DrGE7IlY.js} +0 -0
- /package/src/client/dist/spa/assets/{hcl-olXtyJcc.js → hcl-DLEN_UIX.js} +0 -0
- /package/src/client/dist/spa/assets/{ini-BvGNUo-D.js → ini-mQpaJDpd.js} +0 -0
- /package/src/client/dist/spa/assets/{java-Z9-7Isu7.js → java-jjG-xxwG.js} +0 -0
- /package/src/client/dist/spa/assets/{julia-Bdcb8Lkm.js → julia-C50bVRho.js} +0 -0
- /package/src/client/dist/spa/assets/{kotlin-DR_I1UW_.js → kotlin-DwU9Bxzl.js} +0 -0
- /package/src/client/dist/spa/assets/{less-DZxcoWKd.js → less-Duxayr-t.js} +0 -0
- /package/src/client/dist/spa/assets/{lexon-s17AK9YH.js → lexon-D3Je_oKk.js} +0 -0
- /package/src/client/dist/spa/assets/{lua-BzLfjAeg.js → lua-DqW2q2h7.js} +0 -0
- /package/src/client/dist/spa/assets/{m3-DN3Xgolo.js → m3-CO3sU7vD.js} +0 -0
- /package/src/client/dist/spa/assets/{markdown-DCCTbSQf.js → markdown-CbqjBAOS.js} +0 -0
- /package/src/client/dist/spa/assets/{mips-lh5qv6lw.js → mips-Bj7AN96v.js} +0 -0
- /package/src/client/dist/spa/assets/{msdax-ikHtaqdR.js → msdax-aLgc6HYp.js} +0 -0
- /package/src/client/dist/spa/assets/{mysql-yyeeFEN0.js → mysql-QJHu-LiC.js} +0 -0
- /package/src/client/dist/spa/assets/{objective-c-BCpwk8Ct.js → objective-c-BRcZj02O.js} +0 -0
- /package/src/client/dist/spa/assets/{pascal-PL6H1Gn7.js → pascal-j04gUgnY.js} +0 -0
- /package/src/client/dist/spa/assets/{pascaligo-BCtUX6M4.js → pascaligo-6Lz1Pduc.js} +0 -0
- /package/src/client/dist/spa/assets/{perl-DuluA5AL.js → perl-Ny9A9N4B.js} +0 -0
- /package/src/client/dist/spa/assets/{pgsql-B4LkSOFV.js → pgsql-gEZ-9kd2.js} +0 -0
- /package/src/client/dist/spa/assets/{php-B3Ske963.js → php-B81GxKax.js} +0 -0
- /package/src/client/dist/spa/assets/{pla-B0vdKSVA.js → pla-DS3E9Auu.js} +0 -0
- /package/src/client/dist/spa/assets/{postiats-lYIY9h0z.js → postiats-CHuHziKk.js} +0 -0
- /package/src/client/dist/spa/assets/{powerquery-e_CNZlRH.js → powerquery-DWZsw4AU.js} +0 -0
- /package/src/client/dist/spa/assets/{powershell-B7ny7eNr.js → powershell-MAGzBvoK.js} +0 -0
- /package/src/client/dist/spa/assets/{protobuf-T5b6INIm.js → protobuf-CuqThPZN.js} +0 -0
- /package/src/client/dist/spa/assets/{pug-DB5iDfTd.js → pug-DpwILTue.js} +0 -0
- /package/src/client/dist/spa/assets/{qsharp-DwB29woK.js → qsharp-Clbrosr3.js} +0 -0
- /package/src/client/dist/spa/assets/{r-DGAconUr.js → r-dNsdrNRn.js} +0 -0
- /package/src/client/dist/spa/assets/{redis-CBlUxt29.js → redis-DRY-nYja.js} +0 -0
- /package/src/client/dist/spa/assets/{redshift-DUdydw8b.js → redshift-CGzDbZLe.js} +0 -0
- /package/src/client/dist/spa/assets/{restructuredtext-CpFidj3o.js → restructuredtext-DiI6OCjv.js} +0 -0
- /package/src/client/dist/spa/assets/{ruby-DSI1pDHV.js → ruby-DTTFtlqw.js} +0 -0
- /package/src/client/dist/spa/assets/{rust-DuAjdlB2.js → rust-Cv26V_Fa.js} +0 -0
- /package/src/client/dist/spa/assets/{sb-DHK18yUj.js → sb-WM3UPTLr.js} +0 -0
- /package/src/client/dist/spa/assets/{scala-OUOqN_hV.js → scala-Brw-oZFc.js} +0 -0
- /package/src/client/dist/spa/assets/{scheme-1CW-bJnQ.js → scheme-B9_NJi2n.js} +0 -0
- /package/src/client/dist/spa/assets/{scss-C5o7X-EM.js → scss-AJXcdTUI.js} +0 -0
- /package/src/client/dist/spa/assets/{shell-CtGzMV7Q.js → shell-B8rXUKDl.js} +0 -0
- /package/src/client/dist/spa/assets/{solidity-DPkz2VqZ.js → solidity-DBduMAba.js} +0 -0
- /package/src/client/dist/spa/assets/{sophia-nnptfdLN.js → sophia-CLkSrv5f.js} +0 -0
- /package/src/client/dist/spa/assets/{sparql-C6bexdnc.js → sparql-8jfjvjhF.js} +0 -0
- /package/src/client/dist/spa/assets/{sql-CcLlvkTm.js → sql-DCI2HndY.js} +0 -0
- /package/src/client/dist/spa/assets/{st-C7Y7CLp_.js → st-YiBlEXuf.js} +0 -0
- /package/src/client/dist/spa/assets/{swift-7Jj4IMNp.js → swift-BpRZ1CVX.js} +0 -0
- /package/src/client/dist/spa/assets/{systemverilog-BBh4Cn1v.js → systemverilog-2_XLvhYi.js} +0 -0
- /package/src/client/dist/spa/assets/{tcl-BivXXY1v.js → tcl-6xehSJT3.js} +0 -0
- /package/src/client/dist/spa/assets/{twig-CuImSpsA.js → twig-B80I9c0D.js} +0 -0
- /package/src/client/dist/spa/assets/{typespec-s1tz7uxH.js → typespec-BsAPJtGA.js} +0 -0
- /package/src/client/dist/spa/assets/{vb-AURJL6ia.js → vb-B6Q-99Bj.js} +0 -0
- /package/src/client/dist/spa/assets/{wgsl-Dq1-vM4I.js → wgsl-DPkCsCSS.js} +0 -0
|
@@ -227,6 +227,18 @@ app.post('/', async (c) => {
|
|
|
227
227
|
console.error('[workspaces] Failed to save Notion content:', err);
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
|
+
// Update Notion status if both property name and value are configured
|
|
231
|
+
const notionStatusProp = effectiveSettings.notionStatusProperty;
|
|
232
|
+
const notionTargetStatus = effectiveSettings.notionInProgressStatus;
|
|
233
|
+
if (notionContent &&
|
|
234
|
+
body.notionUrl &&
|
|
235
|
+
notionStatusProp &&
|
|
236
|
+
notionTargetStatus &&
|
|
237
|
+
notionContent.status !== notionTargetStatus) {
|
|
238
|
+
notionService.updateNotionStatus(body.notionUrl, notionStatusProp, notionTargetStatus).catch((err) => {
|
|
239
|
+
console.error('[workspaces] Failed to update Notion status:', err);
|
|
240
|
+
});
|
|
241
|
+
}
|
|
230
242
|
// Skip agent launch if setup script failed — workspace stays in 'error' status
|
|
231
243
|
if (!setupScriptFailed) {
|
|
232
244
|
// Transition to brainstorming and build the initial agent prompt
|
|
@@ -915,6 +927,41 @@ app.post('/:id/push', async (c) => {
|
|
|
915
927
|
return c.json({ error: message }, 500);
|
|
916
928
|
}
|
|
917
929
|
});
|
|
930
|
+
/** Rebase the workspace branch onto its source branch. */
|
|
931
|
+
app.post('/:id/rebase', (c) => {
|
|
932
|
+
try {
|
|
933
|
+
const id = c.req.param('id');
|
|
934
|
+
const workspace = workspaceService.getWorkspace(id);
|
|
935
|
+
if (!workspace)
|
|
936
|
+
return c.json({ error: `Workspace '${id}' not found` }, 404);
|
|
937
|
+
const worktreePath = path.join(workspace.projectPath, '.worktrees', workspace.workingBranch);
|
|
938
|
+
gitOps.rebaseBranch(worktreePath, workspace.sourceBranch);
|
|
939
|
+
return c.json({ success: true });
|
|
940
|
+
}
|
|
941
|
+
catch (err) {
|
|
942
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
943
|
+
return c.json({ error: message }, 500);
|
|
944
|
+
}
|
|
945
|
+
});
|
|
946
|
+
/** Change the base branch of an existing PR via gh CLI. */
|
|
947
|
+
app.post('/:id/change-pr-base', async (c) => {
|
|
948
|
+
try {
|
|
949
|
+
const id = c.req.param('id');
|
|
950
|
+
const body = await c.req.json();
|
|
951
|
+
if (!body.base)
|
|
952
|
+
return c.json({ error: 'Missing base parameter' }, 400);
|
|
953
|
+
const workspace = workspaceService.getWorkspace(id);
|
|
954
|
+
if (!workspace)
|
|
955
|
+
return c.json({ error: `Workspace '${id}' not found` }, 404);
|
|
956
|
+
const worktreePath = path.join(workspace.projectPath, '.worktrees', workspace.workingBranch);
|
|
957
|
+
await execFileAsync('gh', ['pr', 'edit', '--base', body.base], { cwd: worktreePath });
|
|
958
|
+
return c.json({ success: true });
|
|
959
|
+
}
|
|
960
|
+
catch (err) {
|
|
961
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
962
|
+
return c.json({ error: message }, 500);
|
|
963
|
+
}
|
|
964
|
+
});
|
|
918
965
|
// POST /api/workspaces/:id/open-pr — create a GitHub PR and send a templated prompt to the agent
|
|
919
966
|
app.post('/:id/open-pr', async (c) => {
|
|
920
967
|
try {
|
|
@@ -324,6 +324,7 @@ export async function extractNotionPage(notionUrl) {
|
|
|
324
324
|
const pageResult = unwrapMcpResult(pageRaw);
|
|
325
325
|
let title = '';
|
|
326
326
|
let ticketId = '';
|
|
327
|
+
let status = '';
|
|
327
328
|
if (pageResult && typeof pageResult === 'object') {
|
|
328
329
|
const result = pageResult;
|
|
329
330
|
const properties = result.properties;
|
|
@@ -333,7 +334,6 @@ export async function extractNotionPage(notionUrl) {
|
|
|
333
334
|
if (propObj.type === 'title' && Array.isArray(propObj.title)) {
|
|
334
335
|
title = extractTextFromRichText(propObj.title);
|
|
335
336
|
}
|
|
336
|
-
// Extract unique_id (e.g., "TK-1120") from Notion database properties
|
|
337
337
|
if (propObj.type === 'unique_id' && propObj.unique_id) {
|
|
338
338
|
const uid = propObj.unique_id;
|
|
339
339
|
const prefix = uid.prefix ?? '';
|
|
@@ -342,6 +342,10 @@ export async function extractNotionPage(notionUrl) {
|
|
|
342
342
|
ticketId = prefix ? `${prefix}-${number}` : String(number);
|
|
343
343
|
}
|
|
344
344
|
}
|
|
345
|
+
if (propObj.type === 'status' && propObj.status) {
|
|
346
|
+
const s = propObj.status;
|
|
347
|
+
status = s.name ?? '';
|
|
348
|
+
}
|
|
345
349
|
}
|
|
346
350
|
}
|
|
347
351
|
}
|
|
@@ -358,10 +362,43 @@ export async function extractNotionPage(notionUrl) {
|
|
|
358
362
|
}
|
|
359
363
|
}
|
|
360
364
|
const { goal, todos, gherkinFeatures } = parseBlocks(blocks);
|
|
361
|
-
return { title, ticketId, goal, todos, gherkinFeatures };
|
|
365
|
+
return { title, ticketId, status, goal, todos, gherkinFeatures };
|
|
366
|
+
}
|
|
367
|
+
finally {
|
|
368
|
+
mcpProcess.stdin?.end();
|
|
369
|
+
mcpProcess.kill();
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
/** Update a status property on a Notion page. Best-effort, does not throw. */
|
|
373
|
+
export async function updateNotionStatus(notionUrl, propertyName, statusValue) {
|
|
374
|
+
const pageId = parseNotionUrl(notionUrl);
|
|
375
|
+
const mcpProcess = spawnMcpProcess();
|
|
376
|
+
try {
|
|
377
|
+
await new Promise((resolve, reject) => {
|
|
378
|
+
const timeout = setTimeout(() => resolve(), 1000);
|
|
379
|
+
mcpProcess.on('error', (err) => {
|
|
380
|
+
clearTimeout(timeout);
|
|
381
|
+
reject(new Error(`Failed to start MCP Notion server: ${err.message}`));
|
|
382
|
+
});
|
|
383
|
+
mcpProcess.stdout?.once('data', () => {
|
|
384
|
+
clearTimeout(timeout);
|
|
385
|
+
resolve();
|
|
386
|
+
});
|
|
387
|
+
});
|
|
388
|
+
await initializeMcp(mcpProcess);
|
|
389
|
+
await callMcpTool(mcpProcess, 'API-patch-page', {
|
|
390
|
+
page_id: pageId,
|
|
391
|
+
properties: {
|
|
392
|
+
[propertyName]: {
|
|
393
|
+
status: { name: statusValue },
|
|
394
|
+
},
|
|
395
|
+
},
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
catch (err) {
|
|
399
|
+
console.error('[notion] Failed to update status:', err instanceof Error ? err.message : err);
|
|
362
400
|
}
|
|
363
401
|
finally {
|
|
364
|
-
// Ensure the MCP process is terminated
|
|
365
402
|
mcpProcess.stdin?.end();
|
|
366
403
|
mcpProcess.kill();
|
|
367
404
|
}
|
|
@@ -101,6 +101,22 @@ const settingsMigrations = [
|
|
|
101
101
|
global.audioNotifications = true;
|
|
102
102
|
},
|
|
103
103
|
},
|
|
104
|
+
{
|
|
105
|
+
version: 5,
|
|
106
|
+
name: 'add-notion-in-progress-status',
|
|
107
|
+
migrate({ global, projects }) {
|
|
108
|
+
if (typeof global.notionStatusProperty !== 'string')
|
|
109
|
+
global.notionStatusProperty = '';
|
|
110
|
+
if (typeof global.notionInProgressStatus !== 'string')
|
|
111
|
+
global.notionInProgressStatus = '';
|
|
112
|
+
for (const p of projects) {
|
|
113
|
+
if (typeof p.notionStatusProperty !== 'string')
|
|
114
|
+
p.notionStatusProperty = '';
|
|
115
|
+
if (typeof p.notionInProgressStatus !== 'string')
|
|
116
|
+
p.notionInProgressStatus = '';
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
},
|
|
104
120
|
];
|
|
105
121
|
/** Current settings schema version — always equals the highest migration version. */
|
|
106
122
|
export const SETTINGS_SCHEMA_VERSION = settingsMigrations.length > 0 ? settingsMigrations[settingsMigrations.length - 1].version : 0;
|
|
@@ -120,6 +136,8 @@ function defaultSettings() {
|
|
|
120
136
|
editorCommand: '',
|
|
121
137
|
browserNotifications: true,
|
|
122
138
|
audioNotifications: true,
|
|
139
|
+
notionStatusProperty: '',
|
|
140
|
+
notionInProgressStatus: '',
|
|
123
141
|
},
|
|
124
142
|
projects: [],
|
|
125
143
|
};
|
|
@@ -134,6 +152,8 @@ function defaultProjectSettings(projectPath) {
|
|
|
134
152
|
prPromptTemplate: '',
|
|
135
153
|
gitConventions: '',
|
|
136
154
|
setupScript: '',
|
|
155
|
+
notionInProgressStatus: '',
|
|
156
|
+
notionStatusProperty: '',
|
|
137
157
|
devServer: {
|
|
138
158
|
startCommand: '',
|
|
139
159
|
stopCommand: '',
|
|
@@ -227,6 +247,8 @@ export function getEffectiveSettings(projectPath) {
|
|
|
227
247
|
sourceBranch: '',
|
|
228
248
|
devServer: null,
|
|
229
249
|
setupScript: '',
|
|
250
|
+
notionStatusProperty: settings.global.notionStatusProperty,
|
|
251
|
+
notionInProgressStatus: settings.global.notionInProgressStatus,
|
|
230
252
|
};
|
|
231
253
|
}
|
|
232
254
|
return {
|
|
@@ -237,6 +259,8 @@ export function getEffectiveSettings(projectPath) {
|
|
|
237
259
|
sourceBranch: project.defaultSourceBranch,
|
|
238
260
|
devServer: project.devServer,
|
|
239
261
|
setupScript: project.setupScript || '',
|
|
262
|
+
notionStatusProperty: project.notionStatusProperty || settings.global.notionStatusProperty,
|
|
263
|
+
notionInProgressStatus: project.notionInProgressStatus || settings.global.notionInProgressStatus,
|
|
240
264
|
};
|
|
241
265
|
}
|
|
242
266
|
/** Merge partial updates into global settings and persist. */
|
|
@@ -250,6 +274,8 @@ export function updateGlobalSettings(data) {
|
|
|
250
274
|
'editorCommand',
|
|
251
275
|
'browserNotifications',
|
|
252
276
|
'audioNotifications',
|
|
277
|
+
'notionStatusProperty',
|
|
278
|
+
'notionInProgressStatus',
|
|
253
279
|
];
|
|
254
280
|
const filtered = pickKnownKeys(data, allowedGlobalKeys);
|
|
255
281
|
settings.global = { ...settings.global, ...filtered };
|
|
@@ -266,6 +292,8 @@ export function upsertProject(projectPath, data) {
|
|
|
266
292
|
'prPromptTemplate',
|
|
267
293
|
'gitConventions',
|
|
268
294
|
'setupScript',
|
|
295
|
+
'notionStatusProperty',
|
|
296
|
+
'notionInProgressStatus',
|
|
269
297
|
'devServer',
|
|
270
298
|
];
|
|
271
299
|
const allowedDevServerKeys = ['startCommand', 'stopCommand'];
|
|
@@ -109,6 +109,29 @@ export function pushBranch(repoPath, branchName, remote = 'origin') {
|
|
|
109
109
|
throw new Error(`Failed to push branch '${branchName}' to '${remote}': ${message}`);
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
|
+
/** Rebase the current branch onto the given base branch. Fetches origin first to get latest changes. */
|
|
113
|
+
export function rebaseBranch(repoPath, baseBranch) {
|
|
114
|
+
try {
|
|
115
|
+
git(repoPath, ['fetch', 'origin', baseBranch]);
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
// fetch may fail if offline — continue with local ref
|
|
119
|
+
}
|
|
120
|
+
try {
|
|
121
|
+
git(repoPath, ['rebase', `origin/${baseBranch}`]);
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
125
|
+
// Abort the rebase if it fails (conflicts etc.)
|
|
126
|
+
try {
|
|
127
|
+
git(repoPath, ['rebase', '--abort']);
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
/* best-effort */
|
|
131
|
+
}
|
|
132
|
+
throw new Error(`Rebase onto '${baseBranch}' failed: ${message}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
112
135
|
/** Try a git command with `base`, falling back to `origin/base` if the local ref is missing. */
|
|
113
136
|
function resolveBase(repoPath, base) {
|
|
114
137
|
try {
|
|
@@ -197,15 +220,20 @@ export function getChangedFiles(repoPath, base) {
|
|
|
197
220
|
if (!line)
|
|
198
221
|
continue;
|
|
199
222
|
const [statusCode, ...pathParts] = line.split('\t');
|
|
200
|
-
|
|
223
|
+
if (!statusCode || pathParts.length === 0)
|
|
224
|
+
continue;
|
|
225
|
+
// For renames/copies (R100 old new), use the new path (last element)
|
|
226
|
+
const filePath = (statusCode.startsWith('R') || statusCode.startsWith('C')
|
|
227
|
+
? pathParts[pathParts.length - 1]
|
|
228
|
+
: pathParts[0])?.replace(/\/$/, '') ?? '';
|
|
201
229
|
if (!filePath)
|
|
202
230
|
continue;
|
|
203
231
|
let status = 'modified';
|
|
204
|
-
if (statusCode
|
|
232
|
+
if (statusCode.startsWith('A'))
|
|
205
233
|
status = 'added';
|
|
206
|
-
else if (statusCode
|
|
234
|
+
else if (statusCode.startsWith('D'))
|
|
207
235
|
status = 'deleted';
|
|
208
|
-
else if (statusCode
|
|
236
|
+
else if (statusCode.startsWith('R'))
|
|
209
237
|
status = 'renamed';
|
|
210
238
|
files.push({ path: filePath, status });
|
|
211
239
|
seen.add(filePath);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loicngr/kobo",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.9",
|
|
4
4
|
"description": "Kōbō — multi-workspace agent manager for Claude Code. Orchestrates isolated git worktrees with dev servers, Notion integration, and MCP tools.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "GPL-3.0-or-later",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.activity-feed[data-v-eb6d7313]{flex-direction:column;gap:4px;display:flex;position:relative;overflow:hidden auto}.af-item[data-v-eb6d7313]{word-break:break-word;overflow-wrap:break-word;flex-shrink:0;padding:6px 10px;overflow-x:hidden}.af-time[data-v-eb6d7313]{color:#555;flex-shrink:0;font-size:10px}.af-tool-label[data-v-eb6d7313]{font-family:Roboto Mono,monospace;font-size:11px}.af-tool-desc[data-v-eb6d7313]{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.af-ask-option-item[data-v-eb6d7313]{padding:2px 0}.af-tool-args[data-v-eb6d7313]{background-color:#ffffff0a;padding:6px 8px;overflow-x:auto}.af-args-pre[data-v-eb6d7313]{color:#888;white-space:pre-wrap;word-break:break-word;margin:0;font-family:Roboto Mono,monospace;font-size:10px}.af-file-change[data-v-eb6d7313]{background:#ffffff08;border:1px solid #ffffff0f;border-radius:6px;padding:6px 8px}.af-file-header[data-v-eb6d7313]{font-family:Roboto Mono,monospace;font-size:11px}.af-lang-badge[data-v-eb6d7313]{text-align:center;background:#ffffff0f;border-radius:3px;min-width:20px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:9px;font-weight:700}.af-file-path[data-v-eb6d7313]{max-width:70%;font-size:11px}.af-diff-stats[data-v-eb6d7313]{white-space:nowrap;font-family:Roboto Mono,monospace;font-size:10px}.af-diff-body[data-v-eb6d7313]{background:#0003;border-radius:4px;max-height:300px;padding:4px 0;overflow:auto}.af-diff-line[data-v-eb6d7313]{white-space:pre;min-width:-moz-fit-content;min-width:fit-content;padding:0 8px;font-family:Roboto Mono,monospace;font-size:10px;line-height:1.5}.af-diff-sign[data-v-eb6d7313]{-webkit-user-select:none;user-select:none;width:12px;display:inline-block}.af-diff-del[data-v-eb6d7313]{color:#f85149;background:#f851491a}.af-diff-add[data-v-eb6d7313]{color:#3fb950;background:#3fb9501a}.af-item--text[data-v-eb6d7313]{background-color:#1a2a3a;border-left:3px solid #3b82f6}.af-item--user[data-v-eb6d7313]{background-color:#1a2a1a;border-left:3px solid #22c55e}.af-item--prompt[data-v-eb6d7313]{background-color:#1a1a2e;border-left:3px solid #6c63ff}.af-text-content[data-v-eb6d7313]{color:#d0d0d0;word-break:break-word;line-height:1.5}.af-markdown[data-v-eb6d7313] p{margin:0 0 8px}.af-markdown[data-v-eb6d7313] p:last-child{margin-bottom:0}.af-markdown[data-v-eb6d7313] h1,.af-markdown[data-v-eb6d7313] h2,.af-markdown[data-v-eb6d7313] h3{color:#e0e0e0;margin:12px 0 6px}.af-markdown[data-v-eb6d7313] h1{font-size:16px}.af-markdown[data-v-eb6d7313] h2{font-size:14px}.af-markdown[data-v-eb6d7313] h3{font-size:13px}.af-markdown[data-v-eb6d7313] ul,.af-markdown[data-v-eb6d7313] ol{margin:4px 0;padding-left:20px}.af-markdown[data-v-eb6d7313] li{margin:2px 0}.af-markdown[data-v-eb6d7313] code{background-color:#ffffff14;border-radius:3px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:11px}.af-markdown[data-v-eb6d7313] pre{background-color:#0000004d;border-radius:4px;margin:6px 0;padding:8px;overflow-x:auto}.af-markdown[data-v-eb6d7313] pre code{background:0 0;padding:0}.af-markdown[data-v-eb6d7313] strong{color:#fff}.af-markdown[data-v-eb6d7313] a{color:#6c63ff}.af-markdown[data-v-eb6d7313] blockquote{color:#aaa;border-left:3px solid #6c63ff;margin:6px 0;padding:4px 12px}.af-markdown[data-v-eb6d7313] table{border-collapse:collapse;margin:6px 0;font-size:11px}.af-markdown[data-v-eb6d7313] table th,.af-markdown[data-v-eb6d7313] table td{border:1px solid #2a2a4a;padding:4px 8px}.af-markdown[data-v-eb6d7313] table th{background-color:#ffffff0d}.af-item--system[data-v-eb6d7313]{background-color:#2a2a1a;border-left:3px solid #f59e0b}.af-system-details[data-v-eb6d7313]{background-color:#ffffff0a;padding:6px 8px;overflow-x:auto}.af-system-content[data-v-eb6d7313]{white-space:pre-wrap}.af-item--error[data-v-eb6d7313]{background-color:#2a1a1a;border-left:3px solid #ef4444}.af-item--raw[data-v-eb6d7313]{white-space:pre-wrap;font-family:Roboto Mono,monospace}.scroll-buttons[data-v-eb6d7313]{align-self:flex-end;gap:6px;margin-right:8px;display:flex;position:sticky;bottom:8px}.scroll-btn[data-v-eb6d7313]{opacity:.7;transition:opacity .15s}.scroll-btn[data-v-eb6d7313]:hover{opacity:1}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{E as e,F as t,H as n,L as r,M as i,N as a,Q as o,U as s,_ as c,_t as l,a as u,d,f,g as p,m,n as ee,p as h,rt as te,u as ne,y as re,yt as g}from"./vue-i18n-nv59vAyH.js";import{b as _,r as ie,rt as ae}from"./nodes-Bj1I9JfN.js";import{a as oe,c as v,s as se}from"./index-sbSu8zxK.js";import{t as y}from"./QSpinnerDots-DxFX2A_Y.js";import{M as b,t as ce}from"./_plugin-vue_export-helper-D5gezOWD.js";import{t as le}from"./QTooltip-DDQMcKoX.js";var{entries:x,setPrototypeOf:ue,isFrozen:S,getPrototypeOf:C,getOwnPropertyDescriptor:de}=Object,{freeze:w,seal:T,create:fe}=Object,{apply:E,construct:D}=typeof Reflect<`u`&&Reflect;w||=function(e){return e},T||=function(e){return e},E||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},D||=function(e){return new e(...[...arguments].slice(1))};var O=M(Array.prototype.forEach),pe=M(Array.prototype.lastIndexOf),me=M(Array.prototype.pop),he=M(Array.prototype.push),ge=M(Array.prototype.splice),_e=M(String.prototype.toLowerCase),ve=M(String.prototype.toString),ye=M(String.prototype.match),k=M(String.prototype.replace),be=M(String.prototype.indexOf),xe=M(String.prototype.trim),A=M(Object.prototype.hasOwnProperty),j=M(RegExp.prototype.test),Se=N(TypeError);function M(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return E(e,t,n)}}function N(e){return function(){return D(e,[...arguments])}}function P(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_e;ue&&ue(e,null);let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(S(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Ce(e){for(let t=0;t<e.length;t++)A(e,t)||(e[t]=null);return e}function F(e){let t=fe(null);for(let[n,r]of x(e))A(e,n)&&(Array.isArray(r)?t[n]=Ce(r):r&&typeof r==`object`&&r.constructor===Object?t[n]=F(r):t[n]=r);return t}function we(e,t){for(;e!==null;){let n=de(e,t);if(n){if(n.get)return M(n.get);if(typeof n.value==`function`)return M(n.value)}e=C(e)}function n(){return null}return n}var Te=w(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),Ee=w(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),De=w([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),Oe=w([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),ke=w(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),Ae=w([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),je=w([`#text`]),Me=w(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns.slot`.split(`.`)),Ne=w(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-rendering.textlength.type.u1.u2.unicode.values.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),Pe=w(`accent.accentunder.align.bevelled.close.columnsalign.columnlines.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lspace.lquote.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),Fe=w([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),I=T(/\{\{[\w\W]*|[\w\W]*\}\}/gm),L=T(/<%[\w\W]*|[\w\W]*%>/gm),Ie=T(/\$\{[\w\W]*/gm),R=T(/^data-[\-\w.\u00B7-\uFFFF]+$/),Le=T(/^aria-[\-\w]+$/),Re=T(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ze=T(/^(?:\w+script|data):/i),Be=T(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ve=T(/^html$/i),He=T(/^[a-z][.\w]*(-[.\w]+)+$/i),Ue=Object.freeze({__proto__:null,ARIA_ATTR:Le,ATTR_WHITESPACE:Be,CUSTOM_ELEMENT:He,DATA_ATTR:R,DOCTYPE_NAME:Ve,ERB_EXPR:L,IS_ALLOWED_URI:Re,IS_SCRIPT_OR_DATA:ze,MUSTACHE_EXPR:I,TMPLIT_EXPR:Ie}),We={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Ge=function(){return typeof window>`u`?null:window},Ke=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},qe=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function Je(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ge(),t=e=>Je(e);if(t.version=`3.3.3`,t.removed=[],!e||!e.document||e.document.nodeType!==We.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e,r=n,i=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:o,Node:s,Element:c,NodeFilter:l,NamedNodeMap:u=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:d,DOMParser:f,trustedTypes:p}=e,m=c.prototype,ee=we(m,`cloneNode`),h=we(m,`remove`),te=we(m,`nextSibling`),ne=we(m,`childNodes`),re=we(m,`parentNode`);if(typeof o==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let g,_=``,{implementation:ie,createNodeIterator:ae,createDocumentFragment:oe,getElementsByTagName:v}=n,{importNode:se}=r,y=qe();t.isSupported=typeof x==`function`&&typeof re==`function`&&ie&&ie.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:b,ERB_EXPR:ce,TMPLIT_EXPR:le,DATA_ATTR:ue,ARIA_ATTR:S,IS_SCRIPT_OR_DATA:C,ATTR_WHITESPACE:de,CUSTOM_ELEMENT:T}=Ue,{IS_ALLOWED_URI:E}=Ue,D=null,M=P({},[...Te,...Ee,...De,...ke,...je]),N=null,Ce=P({},[...Me,...Ne,...Pe,...Fe]),I=Object.seal(fe(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),L=null,Ie=null,R=Object.seal(fe(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Le=!0,ze=!0,Be=!1,He=!0,Ye=!1,Xe=!0,z=!1,B=!1,Ze=!1,V=!1,H=!1,Qe=!1,U=!0,$e=!1,et=!0,tt=!1,W={},G=null,nt=P({},[`annotation-xml`,`audio`,`colgroup`,`desc`,`foreignobject`,`head`,`iframe`,`math`,`mi`,`mn`,`mo`,`ms`,`mtext`,`noembed`,`noframes`,`noscript`,`plaintext`,`script`,`style`,`svg`,`template`,`thead`,`title`,`video`,`xmp`]),rt=null,it=P({},[`audio`,`video`,`img`,`source`,`image`,`track`]),at=null,ot=P({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),st=`http://www.w3.org/1998/Math/MathML`,ct=`http://www.w3.org/2000/svg`,K=`http://www.w3.org/1999/xhtml`,lt=K,ut=!1,dt=null,ft=P({},[st,ct,K],ve),pt=P({},[`mi`,`mo`,`mn`,`ms`,`mtext`]),mt=P({},[`annotation-xml`]),ht=P({},[`title`,`style`,`font`,`a`,`script`]),gt=null,_t=[`application/xhtml+xml`,`text/html`],q=null,vt=null,yt=n.createElement(`form`),bt=function(e){return e instanceof RegExp||e instanceof Function},xt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(vt&&vt===e)){if((!e||typeof e!=`object`)&&(e={}),e=F(e),gt=_t.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,q=gt===`application/xhtml+xml`?ve:_e,D=A(e,`ALLOWED_TAGS`)?P({},e.ALLOWED_TAGS,q):M,N=A(e,`ALLOWED_ATTR`)?P({},e.ALLOWED_ATTR,q):Ce,dt=A(e,`ALLOWED_NAMESPACES`)?P({},e.ALLOWED_NAMESPACES,ve):ft,at=A(e,`ADD_URI_SAFE_ATTR`)?P(F(ot),e.ADD_URI_SAFE_ATTR,q):ot,rt=A(e,`ADD_DATA_URI_TAGS`)?P(F(it),e.ADD_DATA_URI_TAGS,q):it,G=A(e,`FORBID_CONTENTS`)?P({},e.FORBID_CONTENTS,q):nt,L=A(e,`FORBID_TAGS`)?P({},e.FORBID_TAGS,q):F({}),Ie=A(e,`FORBID_ATTR`)?P({},e.FORBID_ATTR,q):F({}),W=A(e,`USE_PROFILES`)?e.USE_PROFILES:!1,Le=e.ALLOW_ARIA_ATTR!==!1,ze=e.ALLOW_DATA_ATTR!==!1,Be=e.ALLOW_UNKNOWN_PROTOCOLS||!1,He=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Ye=e.SAFE_FOR_TEMPLATES||!1,Xe=e.SAFE_FOR_XML!==!1,z=e.WHOLE_DOCUMENT||!1,V=e.RETURN_DOM||!1,H=e.RETURN_DOM_FRAGMENT||!1,Qe=e.RETURN_TRUSTED_TYPE||!1,Ze=e.FORCE_BODY||!1,U=e.SANITIZE_DOM!==!1,$e=e.SANITIZE_NAMED_PROPS||!1,et=e.KEEP_CONTENT!==!1,tt=e.IN_PLACE||!1,E=e.ALLOWED_URI_REGEXP||Re,lt=e.NAMESPACE||K,pt=e.MATHML_TEXT_INTEGRATION_POINTS||pt,mt=e.HTML_INTEGRATION_POINTS||mt,I=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&bt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(I.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&bt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(I.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements==`boolean`&&(I.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Ye&&(ze=!1),H&&(V=!0),W&&(D=P({},je),N=fe(null),W.html===!0&&(P(D,Te),P(N,Me)),W.svg===!0&&(P(D,Ee),P(N,Ne),P(N,Fe)),W.svgFilters===!0&&(P(D,De),P(N,Ne),P(N,Fe)),W.mathMl===!0&&(P(D,ke),P(N,Pe),P(N,Fe))),A(e,`ADD_TAGS`)||(R.tagCheck=null),A(e,`ADD_ATTR`)||(R.attributeCheck=null),e.ADD_TAGS&&(typeof e.ADD_TAGS==`function`?R.tagCheck=e.ADD_TAGS:(D===M&&(D=F(D)),P(D,e.ADD_TAGS,q))),e.ADD_ATTR&&(typeof e.ADD_ATTR==`function`?R.attributeCheck=e.ADD_ATTR:(N===Ce&&(N=F(N)),P(N,e.ADD_ATTR,q))),e.ADD_URI_SAFE_ATTR&&P(at,e.ADD_URI_SAFE_ATTR,q),e.FORBID_CONTENTS&&(G===nt&&(G=F(G)),P(G,e.FORBID_CONTENTS,q)),e.ADD_FORBID_CONTENTS&&(G===nt&&(G=F(G)),P(G,e.ADD_FORBID_CONTENTS,q)),et&&(D[`#text`]=!0),z&&P(D,[`html`,`head`,`body`]),D.table&&(P(D,[`tbody`]),delete L.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw Se(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw Se(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);g=e.TRUSTED_TYPES_POLICY,_=g.createHTML(``)}else g===void 0&&(g=Ke(p,i)),g!==null&&typeof _==`string`&&(_=g.createHTML(``));w&&w(e),vt=e}},St=P({},[...Ee,...De,...Oe]),Ct=P({},[...ke,...Ae]),wt=function(e){let t=re(e);(!t||!t.tagName)&&(t={namespaceURI:lt,tagName:`template`});let n=_e(e.tagName),r=_e(t.tagName);return dt[e.namespaceURI]?e.namespaceURI===ct?t.namespaceURI===K?n===`svg`:t.namespaceURI===st?n===`svg`&&(r===`annotation-xml`||pt[r]):!!St[n]:e.namespaceURI===st?t.namespaceURI===K?n===`math`:t.namespaceURI===ct?n===`math`&&mt[r]:!!Ct[n]:e.namespaceURI===K?t.namespaceURI===ct&&!mt[r]||t.namespaceURI===st&&!pt[r]?!1:!Ct[n]&&(ht[n]||!St[n]):!!(gt===`application/xhtml+xml`&&dt[e.namespaceURI]):!1},J=function(e){he(t.removed,{element:e});try{re(e).removeChild(e)}catch{h(e)}},Tt=function(e,n){try{he(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{he(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(V||H)try{J(n)}catch{}else try{n.setAttribute(e,``)}catch{}},Et=function(e){let t=null,r=null;if(Ze)e=`<remove></remove>`+e;else{let t=ye(e,/^[\r\n\t ]+/);r=t&&t[0]}gt===`application/xhtml+xml`&<===K&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=g?g.createHTML(e):e;if(lt===K)try{t=new f().parseFromString(i,gt)}catch{}if(!t||!t.documentElement){t=ie.createDocument(lt,`template`,null);try{t.documentElement.innerHTML=ut?_:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),lt===K?v.call(t,z?`html`:`body`)[0]:z?t.documentElement:a},Dt=function(e){return ae.call(e.ownerDocument||e,e,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Ot=function(e){return e instanceof d&&(typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||!(e.attributes instanceof u)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`)},kt=function(e){return typeof s==`function`&&e instanceof s};function Y(e,n,r){O(e,e=>{e.call(t,n,r,vt)})}let At=function(e){let n=null;if(Y(y.beforeSanitizeElements,e,null),Ot(e))return J(e),!0;let r=q(e.nodeName);if(Y(y.uponSanitizeElement,e,{tagName:r,allowedTags:D}),Xe&&e.hasChildNodes()&&!kt(e.firstElementChild)&&j(/<[/\w!]/g,e.innerHTML)&&j(/<[/\w!]/g,e.textContent)||e.nodeType===We.progressingInstruction||Xe&&e.nodeType===We.comment&&j(/<[/\w]/g,e.data))return J(e),!0;if(!(R.tagCheck instanceof Function&&R.tagCheck(r))&&(!D[r]||L[r])){if(!L[r]&&Mt(r)&&(I.tagNameCheck instanceof RegExp&&j(I.tagNameCheck,r)||I.tagNameCheck instanceof Function&&I.tagNameCheck(r)))return!1;if(et&&!G[r]){let t=re(e)||e.parentNode,n=ne(e)||e.childNodes;if(n&&t){let r=n.length;for(let i=r-1;i>=0;--i){let r=ee(n[i],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,te(e))}}}return J(e),!0}return e instanceof c&&!wt(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&j(/<\/no(script|embed|frames)/i,e.innerHTML)?(J(e),!0):(Ye&&e.nodeType===We.text&&(n=e.textContent,O([b,ce,le],e=>{n=k(n,e,` `)}),e.textContent!==n&&(he(t.removed,{element:e.cloneNode()}),e.textContent=n)),Y(y.afterSanitizeElements,e,null),!1)},jt=function(e,t,r){if(Ie[t]||U&&(t===`id`||t===`name`)&&(r in n||r in yt))return!1;if(!(ze&&!Ie[t]&&j(ue,t))&&!(Le&&j(S,t))&&!(R.attributeCheck instanceof Function&&R.attributeCheck(t,e))){if(!N[t]||Ie[t]){if(!(Mt(e)&&(I.tagNameCheck instanceof RegExp&&j(I.tagNameCheck,e)||I.tagNameCheck instanceof Function&&I.tagNameCheck(e))&&(I.attributeNameCheck instanceof RegExp&&j(I.attributeNameCheck,t)||I.attributeNameCheck instanceof Function&&I.attributeNameCheck(t,e))||t===`is`&&I.allowCustomizedBuiltInElements&&(I.tagNameCheck instanceof RegExp&&j(I.tagNameCheck,r)||I.tagNameCheck instanceof Function&&I.tagNameCheck(r))))return!1}else if(!at[t]&&!j(E,k(r,de,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&be(r,`data:`)===0&&rt[e])&&!(Be&&!j(C,k(r,de,``)))&&r)return!1}return!0},Mt=function(e){return e!==`annotation-xml`&&ye(e,T)},Nt=function(e){Y(y.beforeSanitizeAttributes,e,null);let{attributes:n}=e;if(!n||Ot(e))return;let r={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:N,forceKeepAttr:void 0},i=n.length;for(;i--;){let{name:a,namespaceURI:o,value:s}=n[i],c=q(a),l=s,u=a===`value`?l:xe(l);if(r.attrName=c,r.attrValue=u,r.keepAttr=!0,r.forceKeepAttr=void 0,Y(y.uponSanitizeAttribute,e,r),u=r.attrValue,$e&&(c===`id`||c===`name`)&&(Tt(a,e),u=`user-content-`+u),Xe&&j(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,u)){Tt(a,e);continue}if(c===`attributename`&&ye(u,`href`)){Tt(a,e);continue}if(r.forceKeepAttr)continue;if(!r.keepAttr){Tt(a,e);continue}if(!He&&j(/\/>/i,u)){Tt(a,e);continue}Ye&&O([b,ce,le],e=>{u=k(u,e,` `)});let d=q(e.nodeName);if(!jt(d,c,u)){Tt(a,e);continue}if(g&&typeof p==`object`&&typeof p.getAttributeType==`function`&&!o)switch(p.getAttributeType(d,c)){case`TrustedHTML`:u=g.createHTML(u);break;case`TrustedScriptURL`:u=g.createScriptURL(u);break}if(u!==l)try{o?e.setAttributeNS(o,a,u):e.setAttribute(a,u),Ot(e)?J(e):me(t.removed)}catch{Tt(a,e)}}Y(y.afterSanitizeAttributes,e,null)},Pt=function e(t){let n=null,r=Dt(t);for(Y(y.beforeSanitizeShadowDOM,t,null);n=r.nextNode();)Y(y.uponSanitizeShadowNode,n,null),At(n),Nt(n),n.content instanceof a&&e(n.content);Y(y.afterSanitizeShadowDOM,t,null)};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,o=null,c=null,l=null;if(ut=!e,ut&&(e=`<!-->`),typeof e!=`string`&&!kt(e))if(typeof e.toString==`function`){if(e=e.toString(),typeof e!=`string`)throw Se(`dirty is not a string, aborting`)}else throw Se(`toString is not a function`);if(!t.isSupported)return e;if(B||xt(n),t.removed=[],typeof e==`string`&&(tt=!1),tt){if(e.nodeName){let t=q(e.nodeName);if(!D[t]||L[t])throw Se(`root node is forbidden and cannot be sanitized in-place`)}}else if(e instanceof s)i=Et(`<!---->`),o=i.ownerDocument.importNode(e,!0),o.nodeType===We.element&&o.nodeName===`BODY`||o.nodeName===`HTML`?i=o:i.appendChild(o);else{if(!V&&!Ye&&!z&&e.indexOf(`<`)===-1)return g&&Qe?g.createHTML(e):e;if(i=Et(e),!i)return V?null:Qe?_:``}i&&Ze&&J(i.firstChild);let u=Dt(tt?e:i);for(;c=u.nextNode();)At(c),Nt(c),c.content instanceof a&&Pt(c.content);if(tt)return e;if(V){if(H)for(l=oe.call(i.ownerDocument);i.firstChild;)l.appendChild(i.firstChild);else l=i;return(N.shadowroot||N.shadowrootmode)&&(l=se.call(r,l,!0)),l}let d=z?i.outerHTML:i.innerHTML;return z&&D[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&j(Ve,i.ownerDocument.doctype.name)&&(d=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
|
|
1
|
+
import{E as e,F as t,H as n,L as r,M as i,N as a,Q as o,U as s,_ as c,_t as l,a as u,d,f,g as p,m,n as ee,p as h,rt as te,u as ne,y as re,yt as g}from"./vue-i18n-nv59vAyH.js";import{L as _,T as ie,bt as ae}from"./scroll-CWjBCoBR.js";import{E as oe,O as se,k as v}from"./index-BxBqipDT.js";import{t as y}from"./QSpinnerDots-FJCnAvfw.js";import{p as b,t as ce}from"./_plugin-vue_export-helper-CLHv3piE.js";import{t as le}from"./QTooltip-DKxEdudV.js";var{entries:x,setPrototypeOf:ue,isFrozen:S,getPrototypeOf:C,getOwnPropertyDescriptor:de}=Object,{freeze:w,seal:T,create:fe}=Object,{apply:E,construct:D}=typeof Reflect<`u`&&Reflect;w||=function(e){return e},T||=function(e){return e},E||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},D||=function(e){return new e(...[...arguments].slice(1))};var O=M(Array.prototype.forEach),pe=M(Array.prototype.lastIndexOf),me=M(Array.prototype.pop),he=M(Array.prototype.push),ge=M(Array.prototype.splice),_e=M(String.prototype.toLowerCase),ve=M(String.prototype.toString),ye=M(String.prototype.match),k=M(String.prototype.replace),be=M(String.prototype.indexOf),xe=M(String.prototype.trim),A=M(Object.prototype.hasOwnProperty),j=M(RegExp.prototype.test),Se=N(TypeError);function M(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return E(e,t,n)}}function N(e){return function(){return D(e,[...arguments])}}function P(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:_e;ue&&ue(e,null);let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(S(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Ce(e){for(let t=0;t<e.length;t++)A(e,t)||(e[t]=null);return e}function F(e){let t=fe(null);for(let[n,r]of x(e))A(e,n)&&(Array.isArray(r)?t[n]=Ce(r):r&&typeof r==`object`&&r.constructor===Object?t[n]=F(r):t[n]=r);return t}function we(e,t){for(;e!==null;){let n=de(e,t);if(n){if(n.get)return M(n.get);if(typeof n.value==`function`)return M(n.value)}e=C(e)}function n(){return null}return n}var Te=w(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),Ee=w(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),De=w([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),Oe=w([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),ke=w(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),Ae=w([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),je=w([`#text`]),Me=w(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns.slot`.split(`.`)),Ne=w(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-rendering.textlength.type.u1.u2.unicode.values.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),Pe=w(`accent.accentunder.align.bevelled.close.columnsalign.columnlines.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lspace.lquote.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),Fe=w([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),I=T(/\{\{[\w\W]*|[\w\W]*\}\}/gm),L=T(/<%[\w\W]*|[\w\W]*%>/gm),Ie=T(/\$\{[\w\W]*/gm),R=T(/^data-[\-\w.\u00B7-\uFFFF]+$/),Le=T(/^aria-[\-\w]+$/),Re=T(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ze=T(/^(?:\w+script|data):/i),Be=T(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ve=T(/^html$/i),He=T(/^[a-z][.\w]*(-[.\w]+)+$/i),Ue=Object.freeze({__proto__:null,ARIA_ATTR:Le,ATTR_WHITESPACE:Be,CUSTOM_ELEMENT:He,DATA_ATTR:R,DOCTYPE_NAME:Ve,ERB_EXPR:L,IS_ALLOWED_URI:Re,IS_SCRIPT_OR_DATA:ze,MUSTACHE_EXPR:I,TMPLIT_EXPR:Ie}),We={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Ge=function(){return typeof window>`u`?null:window},Ke=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},qe=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function Je(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ge(),t=e=>Je(e);if(t.version=`3.3.3`,t.removed=[],!e||!e.document||e.document.nodeType!==We.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e,r=n,i=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:o,Node:s,Element:c,NodeFilter:l,NamedNodeMap:u=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:d,DOMParser:f,trustedTypes:p}=e,m=c.prototype,ee=we(m,`cloneNode`),h=we(m,`remove`),te=we(m,`nextSibling`),ne=we(m,`childNodes`),re=we(m,`parentNode`);if(typeof o==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let g,_=``,{implementation:ie,createNodeIterator:ae,createDocumentFragment:oe,getElementsByTagName:se}=n,{importNode:v}=r,y=qe();t.isSupported=typeof x==`function`&&typeof re==`function`&&ie&&ie.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:b,ERB_EXPR:ce,TMPLIT_EXPR:le,DATA_ATTR:ue,ARIA_ATTR:S,IS_SCRIPT_OR_DATA:C,ATTR_WHITESPACE:de,CUSTOM_ELEMENT:T}=Ue,{IS_ALLOWED_URI:E}=Ue,D=null,M=P({},[...Te,...Ee,...De,...ke,...je]),N=null,Ce=P({},[...Me,...Ne,...Pe,...Fe]),I=Object.seal(fe(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),L=null,Ie=null,R=Object.seal(fe(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Le=!0,ze=!0,Be=!1,He=!0,Ye=!1,Xe=!0,z=!1,B=!1,Ze=!1,V=!1,H=!1,Qe=!1,U=!0,$e=!1,et=!0,tt=!1,W={},G=null,nt=P({},[`annotation-xml`,`audio`,`colgroup`,`desc`,`foreignobject`,`head`,`iframe`,`math`,`mi`,`mn`,`mo`,`ms`,`mtext`,`noembed`,`noframes`,`noscript`,`plaintext`,`script`,`style`,`svg`,`template`,`thead`,`title`,`video`,`xmp`]),rt=null,it=P({},[`audio`,`video`,`img`,`source`,`image`,`track`]),at=null,ot=P({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),st=`http://www.w3.org/1998/Math/MathML`,ct=`http://www.w3.org/2000/svg`,K=`http://www.w3.org/1999/xhtml`,lt=K,ut=!1,dt=null,ft=P({},[st,ct,K],ve),pt=P({},[`mi`,`mo`,`mn`,`ms`,`mtext`]),mt=P({},[`annotation-xml`]),ht=P({},[`title`,`style`,`font`,`a`,`script`]),gt=null,_t=[`application/xhtml+xml`,`text/html`],q=null,vt=null,yt=n.createElement(`form`),bt=function(e){return e instanceof RegExp||e instanceof Function},xt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(vt&&vt===e)){if((!e||typeof e!=`object`)&&(e={}),e=F(e),gt=_t.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,q=gt===`application/xhtml+xml`?ve:_e,D=A(e,`ALLOWED_TAGS`)?P({},e.ALLOWED_TAGS,q):M,N=A(e,`ALLOWED_ATTR`)?P({},e.ALLOWED_ATTR,q):Ce,dt=A(e,`ALLOWED_NAMESPACES`)?P({},e.ALLOWED_NAMESPACES,ve):ft,at=A(e,`ADD_URI_SAFE_ATTR`)?P(F(ot),e.ADD_URI_SAFE_ATTR,q):ot,rt=A(e,`ADD_DATA_URI_TAGS`)?P(F(it),e.ADD_DATA_URI_TAGS,q):it,G=A(e,`FORBID_CONTENTS`)?P({},e.FORBID_CONTENTS,q):nt,L=A(e,`FORBID_TAGS`)?P({},e.FORBID_TAGS,q):F({}),Ie=A(e,`FORBID_ATTR`)?P({},e.FORBID_ATTR,q):F({}),W=A(e,`USE_PROFILES`)?e.USE_PROFILES:!1,Le=e.ALLOW_ARIA_ATTR!==!1,ze=e.ALLOW_DATA_ATTR!==!1,Be=e.ALLOW_UNKNOWN_PROTOCOLS||!1,He=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Ye=e.SAFE_FOR_TEMPLATES||!1,Xe=e.SAFE_FOR_XML!==!1,z=e.WHOLE_DOCUMENT||!1,V=e.RETURN_DOM||!1,H=e.RETURN_DOM_FRAGMENT||!1,Qe=e.RETURN_TRUSTED_TYPE||!1,Ze=e.FORCE_BODY||!1,U=e.SANITIZE_DOM!==!1,$e=e.SANITIZE_NAMED_PROPS||!1,et=e.KEEP_CONTENT!==!1,tt=e.IN_PLACE||!1,E=e.ALLOWED_URI_REGEXP||Re,lt=e.NAMESPACE||K,pt=e.MATHML_TEXT_INTEGRATION_POINTS||pt,mt=e.HTML_INTEGRATION_POINTS||mt,I=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&bt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(I.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&bt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(I.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements==`boolean`&&(I.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Ye&&(ze=!1),H&&(V=!0),W&&(D=P({},je),N=fe(null),W.html===!0&&(P(D,Te),P(N,Me)),W.svg===!0&&(P(D,Ee),P(N,Ne),P(N,Fe)),W.svgFilters===!0&&(P(D,De),P(N,Ne),P(N,Fe)),W.mathMl===!0&&(P(D,ke),P(N,Pe),P(N,Fe))),A(e,`ADD_TAGS`)||(R.tagCheck=null),A(e,`ADD_ATTR`)||(R.attributeCheck=null),e.ADD_TAGS&&(typeof e.ADD_TAGS==`function`?R.tagCheck=e.ADD_TAGS:(D===M&&(D=F(D)),P(D,e.ADD_TAGS,q))),e.ADD_ATTR&&(typeof e.ADD_ATTR==`function`?R.attributeCheck=e.ADD_ATTR:(N===Ce&&(N=F(N)),P(N,e.ADD_ATTR,q))),e.ADD_URI_SAFE_ATTR&&P(at,e.ADD_URI_SAFE_ATTR,q),e.FORBID_CONTENTS&&(G===nt&&(G=F(G)),P(G,e.FORBID_CONTENTS,q)),e.ADD_FORBID_CONTENTS&&(G===nt&&(G=F(G)),P(G,e.ADD_FORBID_CONTENTS,q)),et&&(D[`#text`]=!0),z&&P(D,[`html`,`head`,`body`]),D.table&&(P(D,[`tbody`]),delete L.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw Se(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw Se(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);g=e.TRUSTED_TYPES_POLICY,_=g.createHTML(``)}else g===void 0&&(g=Ke(p,i)),g!==null&&typeof _==`string`&&(_=g.createHTML(``));w&&w(e),vt=e}},St=P({},[...Ee,...De,...Oe]),Ct=P({},[...ke,...Ae]),wt=function(e){let t=re(e);(!t||!t.tagName)&&(t={namespaceURI:lt,tagName:`template`});let n=_e(e.tagName),r=_e(t.tagName);return dt[e.namespaceURI]?e.namespaceURI===ct?t.namespaceURI===K?n===`svg`:t.namespaceURI===st?n===`svg`&&(r===`annotation-xml`||pt[r]):!!St[n]:e.namespaceURI===st?t.namespaceURI===K?n===`math`:t.namespaceURI===ct?n===`math`&&mt[r]:!!Ct[n]:e.namespaceURI===K?t.namespaceURI===ct&&!mt[r]||t.namespaceURI===st&&!pt[r]?!1:!Ct[n]&&(ht[n]||!St[n]):!!(gt===`application/xhtml+xml`&&dt[e.namespaceURI]):!1},J=function(e){he(t.removed,{element:e});try{re(e).removeChild(e)}catch{h(e)}},Tt=function(e,n){try{he(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{he(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(V||H)try{J(n)}catch{}else try{n.setAttribute(e,``)}catch{}},Et=function(e){let t=null,r=null;if(Ze)e=`<remove></remove>`+e;else{let t=ye(e,/^[\r\n\t ]+/);r=t&&t[0]}gt===`application/xhtml+xml`&<===K&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=g?g.createHTML(e):e;if(lt===K)try{t=new f().parseFromString(i,gt)}catch{}if(!t||!t.documentElement){t=ie.createDocument(lt,`template`,null);try{t.documentElement.innerHTML=ut?_:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),lt===K?se.call(t,z?`html`:`body`)[0]:z?t.documentElement:a},Dt=function(e){return ae.call(e.ownerDocument||e,e,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Ot=function(e){return e instanceof d&&(typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||!(e.attributes instanceof u)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`)},kt=function(e){return typeof s==`function`&&e instanceof s};function Y(e,n,r){O(e,e=>{e.call(t,n,r,vt)})}let At=function(e){let n=null;if(Y(y.beforeSanitizeElements,e,null),Ot(e))return J(e),!0;let r=q(e.nodeName);if(Y(y.uponSanitizeElement,e,{tagName:r,allowedTags:D}),Xe&&e.hasChildNodes()&&!kt(e.firstElementChild)&&j(/<[/\w!]/g,e.innerHTML)&&j(/<[/\w!]/g,e.textContent)||e.nodeType===We.progressingInstruction||Xe&&e.nodeType===We.comment&&j(/<[/\w]/g,e.data))return J(e),!0;if(!(R.tagCheck instanceof Function&&R.tagCheck(r))&&(!D[r]||L[r])){if(!L[r]&&Mt(r)&&(I.tagNameCheck instanceof RegExp&&j(I.tagNameCheck,r)||I.tagNameCheck instanceof Function&&I.tagNameCheck(r)))return!1;if(et&&!G[r]){let t=re(e)||e.parentNode,n=ne(e)||e.childNodes;if(n&&t){let r=n.length;for(let i=r-1;i>=0;--i){let r=ee(n[i],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,te(e))}}}return J(e),!0}return e instanceof c&&!wt(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&j(/<\/no(script|embed|frames)/i,e.innerHTML)?(J(e),!0):(Ye&&e.nodeType===We.text&&(n=e.textContent,O([b,ce,le],e=>{n=k(n,e,` `)}),e.textContent!==n&&(he(t.removed,{element:e.cloneNode()}),e.textContent=n)),Y(y.afterSanitizeElements,e,null),!1)},jt=function(e,t,r){if(Ie[t]||U&&(t===`id`||t===`name`)&&(r in n||r in yt))return!1;if(!(ze&&!Ie[t]&&j(ue,t))&&!(Le&&j(S,t))&&!(R.attributeCheck instanceof Function&&R.attributeCheck(t,e))){if(!N[t]||Ie[t]){if(!(Mt(e)&&(I.tagNameCheck instanceof RegExp&&j(I.tagNameCheck,e)||I.tagNameCheck instanceof Function&&I.tagNameCheck(e))&&(I.attributeNameCheck instanceof RegExp&&j(I.attributeNameCheck,t)||I.attributeNameCheck instanceof Function&&I.attributeNameCheck(t,e))||t===`is`&&I.allowCustomizedBuiltInElements&&(I.tagNameCheck instanceof RegExp&&j(I.tagNameCheck,r)||I.tagNameCheck instanceof Function&&I.tagNameCheck(r))))return!1}else if(!at[t]&&!j(E,k(r,de,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&be(r,`data:`)===0&&rt[e])&&!(Be&&!j(C,k(r,de,``)))&&r)return!1}return!0},Mt=function(e){return e!==`annotation-xml`&&ye(e,T)},Nt=function(e){Y(y.beforeSanitizeAttributes,e,null);let{attributes:n}=e;if(!n||Ot(e))return;let r={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:N,forceKeepAttr:void 0},i=n.length;for(;i--;){let{name:a,namespaceURI:o,value:s}=n[i],c=q(a),l=s,u=a===`value`?l:xe(l);if(r.attrName=c,r.attrValue=u,r.keepAttr=!0,r.forceKeepAttr=void 0,Y(y.uponSanitizeAttribute,e,r),u=r.attrValue,$e&&(c===`id`||c===`name`)&&(Tt(a,e),u=`user-content-`+u),Xe&&j(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,u)){Tt(a,e);continue}if(c===`attributename`&&ye(u,`href`)){Tt(a,e);continue}if(r.forceKeepAttr)continue;if(!r.keepAttr){Tt(a,e);continue}if(!He&&j(/\/>/i,u)){Tt(a,e);continue}Ye&&O([b,ce,le],e=>{u=k(u,e,` `)});let d=q(e.nodeName);if(!jt(d,c,u)){Tt(a,e);continue}if(g&&typeof p==`object`&&typeof p.getAttributeType==`function`&&!o)switch(p.getAttributeType(d,c)){case`TrustedHTML`:u=g.createHTML(u);break;case`TrustedScriptURL`:u=g.createScriptURL(u);break}if(u!==l)try{o?e.setAttributeNS(o,a,u):e.setAttribute(a,u),Ot(e)?J(e):me(t.removed)}catch{Tt(a,e)}}Y(y.afterSanitizeAttributes,e,null)},Pt=function e(t){let n=null,r=Dt(t);for(Y(y.beforeSanitizeShadowDOM,t,null);n=r.nextNode();)Y(y.uponSanitizeShadowNode,n,null),At(n),Nt(n),n.content instanceof a&&e(n.content);Y(y.afterSanitizeShadowDOM,t,null)};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,o=null,c=null,l=null;if(ut=!e,ut&&(e=`<!-->`),typeof e!=`string`&&!kt(e))if(typeof e.toString==`function`){if(e=e.toString(),typeof e!=`string`)throw Se(`dirty is not a string, aborting`)}else throw Se(`toString is not a function`);if(!t.isSupported)return e;if(B||xt(n),t.removed=[],typeof e==`string`&&(tt=!1),tt){if(e.nodeName){let t=q(e.nodeName);if(!D[t]||L[t])throw Se(`root node is forbidden and cannot be sanitized in-place`)}}else if(e instanceof s)i=Et(`<!---->`),o=i.ownerDocument.importNode(e,!0),o.nodeType===We.element&&o.nodeName===`BODY`||o.nodeName===`HTML`?i=o:i.appendChild(o);else{if(!V&&!Ye&&!z&&e.indexOf(`<`)===-1)return g&&Qe?g.createHTML(e):e;if(i=Et(e),!i)return V?null:Qe?_:``}i&&Ze&&J(i.firstChild);let u=Dt(tt?e:i);for(;c=u.nextNode();)At(c),Nt(c),c.content instanceof a&&Pt(c.content);if(tt)return e;if(V){if(H)for(l=oe.call(i.ownerDocument);i.firstChild;)l.appendChild(i.firstChild);else l=i;return(N.shadowroot||N.shadowrootmode)&&(l=v.call(r,l,!0)),l}let d=z?i.outerHTML:i.innerHTML;return z&&D[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&j(Ve,i.ownerDocument.doctype.name)&&(d=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
|
|
2
2
|
`+d),Ye&&O([b,ce,le],e=>{d=k(d,e,` `)}),g&&Qe?g.createHTML(d):d},t.setConfig=function(){xt(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}),B=!0},t.clearConfig=function(){vt=null,B=!1},t.isValidAttribute=function(e,t,n){return vt||xt({}),jt(q(e),q(t),n)},t.addHook=function(e,t){typeof t==`function`&&he(y[e],t)},t.removeHook=function(e,t){if(t!==void 0){let n=pe(y[e],t);return n===-1?void 0:ge(y[e],n,1)[0]}return me(y[e])},t.removeHooks=function(e){y[e]=[]},t.removeAllHooks=function(){y=qe()},t}var Ye=Je(),Xe;function z(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var B=z();function Ze(e){B=e}var V={exec:()=>null};function H(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(U.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var Qe=(()=>{try{return!0}catch{return!1}})(),U={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,`i`),blockquoteBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}>`)},$e=/^(?:[ \t]*(?:\n|$))+/,et=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,tt=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,W=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,G=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,nt=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,rt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,it=H(rt).replace(/bull/g,nt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),at=H(rt).replace(/bull/g,nt).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ot=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,st=/^[^\n]+/,ct=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,K=H(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,ct).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),lt=H(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,nt).getRegex(),ut=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,dt=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,ft=H(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,dt).replace(`tag`,ut).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),pt=H(ot).replace(`hr`,W).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,ut).getRegex(),mt={blockquote:H(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,pt).getRegex(),code:et,def:K,fences:tt,heading:G,hr:W,html:ft,lheading:it,list:lt,newline:$e,paragraph:pt,table:V,text:st},ht=H(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,W).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,ut).getRegex(),gt={...mt,lheading:at,table:ht,paragraph:H(ot).replace(`hr`,W).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,ht).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,ut).getRegex()},_t={...mt,html:H(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,dt).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:V,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:H(ot).replace(`hr`,W).replace(`heading`,` *#{1,6} *[^
|
|
3
3
|
]`).replace(`lheading`,it).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},q=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,vt=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,yt=/^( {2,}|\\)\n(?!\s*$)/,bt=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,xt=/[\p{P}\p{S}]/u,St=/[\s\p{P}\p{S}]/u,Ct=/[^\s\p{P}\p{S}]/u,wt=H(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,St).getRegex(),J=/(?!~)[\p{P}\p{S}]/u,Tt=/(?!~)[\s\p{P}\p{S}]/u,Et=/(?:[^\s\p{P}\p{S}]|~)/u,Dt=H(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,Qe?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),Ot=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,kt=H(Ot,`u`).replace(/punct/g,xt).getRegex(),Y=H(Ot,`u`).replace(/punct/g,J).getRegex(),At=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,jt=H(At,`gu`).replace(/notPunctSpace/g,Ct).replace(/punctSpace/g,St).replace(/punct/g,xt).getRegex(),Mt=H(At,`gu`).replace(/notPunctSpace/g,Et).replace(/punctSpace/g,Tt).replace(/punct/g,J).getRegex(),Nt=H(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,Ct).replace(/punctSpace/g,St).replace(/punct/g,xt).getRegex(),Pt=H(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,xt).getRegex(),Ft=H(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Ct).replace(/punctSpace/g,St).replace(/punct/g,xt).getRegex(),It=H(/\\(punct)/,`gu`).replace(/punct/g,xt).getRegex(),Lt=H(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Rt=H(dt).replace(`(?:-->|$)`,`-->`).getRegex(),zt=H(`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,Rt).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Bt=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Vt=H(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,Bt).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ht=H(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Bt).replace(`ref`,ct).getRegex(),Ut=H(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,ct).getRegex(),Wt=H(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,Ht).replace(`nolink`,Ut).getRegex(),Gt=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Kt={_backpedal:V,anyPunctuation:It,autolink:Lt,blockSkip:Dt,br:yt,code:vt,del:V,delLDelim:V,delRDelim:V,emStrongLDelim:kt,emStrongRDelimAst:jt,emStrongRDelimUnd:Nt,escape:q,link:Vt,nolink:Ut,punctuation:wt,reflink:Ht,reflinkSearch:Wt,tag:zt,text:bt,url:V},qt={...Kt,link:H(/^!?\[(label)\]\((.*?)\)/).replace(`label`,Bt).getRegex(),reflink:H(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,Bt).getRegex()},Jt={...Kt,emStrongRDelimAst:Mt,emStrongLDelim:Y,delLDelim:Pt,delRDelim:Ft,url:H(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`protocol`,Gt).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:H(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace(`protocol`,Gt).getRegex()},Yt={...Jt,br:H(yt).replace(`{2,}`,`*`).getRegex(),text:H(Jt.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},Xt={normal:mt,gfm:gt,pedantic:_t},Zt={normal:Kt,gfm:Jt,breaks:Yt,pedantic:qt},Qt={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},$t=e=>Qt[e];function X(e,t){if(t){if(U.escapeTest.test(e))return e.replace(U.escapeReplace,$t)}else if(U.escapeTestNoEncode.test(e))return e.replace(U.escapeReplaceNoEncode,$t);return e}function en(e){try{e=encodeURI(e).replace(U.percentDecode,`%`)}catch{return null}return e}function tn(e,t){let n=e.replace(U.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(U.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``);for(;r<n.length;r++)n[r]=n[r].trim().replace(U.slashPipe,`|`);return n}function nn(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function rn(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function an(e,t=0){let n=t,r=``;for(let t of e)if(t===` `){let e=4-n%4;r+=` `.repeat(e),n+=e}else r+=t,n++;return r}function on(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`);r.state.inLink=!0;let c={type:e[0].charAt(0)===`!`?`image`:`link`,raw:n,href:a,title:o,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,c}function sn(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
|
|
4
4
|
`).map(e=>{let t=e.match(n.other.beginningSpace);if(t===null)return e;let[r]=t;return r.length>=i.length?e.slice(i.length):e}).join(`
|
|
@@ -60,9 +60,9 @@ ${e}</tr>
|
|
|
60
60
|
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+X(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function $(e,t){return fn.parse(e,t)}$.options=$.setOptions=function(e){return fn.setOptions(e),$.defaults=fn.defaults,Ze($.defaults),$},$.getDefaults=z,$.defaults=B,$.use=function(...e){return fn.use(...e),$.defaults=fn.defaults,Ze($.defaults),$},$.walkTokens=function(e,t){return fn.walkTokens(e,t)},$.parseInline=fn.parseInline,$.Parser=Q,$.parser=Q.parse,$.Renderer=ln,$.TextRenderer=un,$.Lexer=Z,$.lexer=Z.lex,$.Tokenizer=cn,$.Hooks=dn,$.parse=$,$.options,$.setOptions,$.use,$.walkTokens,$.parseInline,Q.parse,Z.lex;var pn={key:0,class:`af-empty column items-center justify-center text-center q-pa-xl`},mn={class:`text-grey-6 q-mt-md text-body2`},hn={class:`text-grey-8 text-caption q-mt-xs`},gn={key:1,class:`row justify-center q-my-sm`},_n=[`data-item-id`],vn={class:`af-tool row items-center q-gutter-xs`},yn={class:`af-tool-label text-indigo-4`},bn={class:`af-time`},xn={key:0,class:`text-grey-4 q-mb-xs`},Sn={class:`af-ask-options-list q-mb-sm`},Cn={class:`text-weight-bold text-grey-3`},wn={key:0},Tn={key:1,class:`af-ask-buttons q-gutter-xs`},En=[`onClick`],Dn={class:`af-file-header row items-center no-wrap q-gutter-xs`},On={class:`af-file-path text-grey-4 ellipsis`},kn={class:`af-diff-stats`},An={key:0,class:`text-green-5`},jn={key:1,class:`text-red-5 q-ml-xs`},Mn={class:`af-time`},Nn={key:1,class:`af-diff-line af-diff-del`},Pn={key:0,class:`af-diff-line text-grey-7 text-italic`},Fn=[`onClick`],In={class:`af-tool-label text-grey-7`},Ln={key:0,class:`af-tool-desc text-grey-8`},Rn={class:`af-time`},zn={key:0,class:`af-tool-args q-mt-xs rounded-borders`},Bn={class:`af-args-pre`},Vn={class:`af-text-header row items-center q-mb-xs`},Hn={class:`af-time`},Un=[`innerHTML`],Wn={key:0,class:`af-options q-mt-sm row wrap q-gutter-xs`},Gn={class:`text-weight-bold q-mr-xs`},Kn=[`onClick`],qn={class:`af-system-content text-caption text-amber-6`},Jn={class:`af-time`},Yn={key:0,class:`af-system-details q-mt-xs rounded-borders`},Xn={class:`af-args-pre`},Zn={key:5,class:`row items-center`},Qn={class:`af-error-content text-red-5`},$n={class:`af-time`},er={key:6,class:`row items-center`},tr={class:`af-raw-content text-grey-7`},nr={class:`af-time`},rr={class:`scroll-buttons`},ir=50,ar=50,or=ce(re({__name:`ActivityFeed`,setup(re){function v(e){let t=$.parse(e,{async:!1,breaks:!0,gfm:!0});return Ye.sanitize(t)}let{t:ce}=ee(),x=se(),ue=oe(),S=o(null),C=o(!1),de=o(new Set);function w(e){let t=e.replace(/\*\*/g,``);function n(n){let r=n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),i=e.match(RegExp(`^(?:\\*\\*)?${r}`,`m`));if(i?.index!==void 0)return i.index;let a=t.indexOf(n);return a>=0?a:0}let r=[...t.matchAll(/^-\s*([A-Z])\s*[—–-]\s*(.+)/gm)];if(r.length>=2){let t=n(r[0][0]);return{textBefore:e.substring(0,t).trim(),options:r.map(e=>({key:e[1],label:`${e[1]} — ${e[2]}`}))}}let i=[...t.matchAll(/^([a-zA-Z])\)\s+(.+)/gm)];if(i.length>=2){let t=n(i[0][0].substring(0,3));return{textBefore:e.substring(0,t).trim(),options:i.map(e=>({key:e[1].toUpperCase(),label:e[2].trim()}))}}let a=[...t.matchAll(/^Option\s+(\d+)\s*[—–-]\s*(.+)/gim)];if(a.length>=2){let t=n(a[0][0].substring(0,10));return{textBefore:e.substring(0,t).trim(),options:a.map(e=>({key:e[1],label:e[2].trim()}))}}let o=[...t.matchAll(/^(\d+)\)\s+(.+)/gm)];if(o.length>=2){let t=n(o[0][0].substring(0,3));return{textBefore:e.substring(0,t).trim(),options:o.map(e=>({key:e[1],label:e[2].trim()}))}}let s=[...t.matchAll(/^([a-zA-Z])\.\s+(.+)/gm)];if(s.length>=2){let t=n(s[0][0].substring(0,3));return{textBefore:e.substring(0,t).trim(),options:s.map(e=>({key:e[1].toUpperCase(),label:e[2].trim()}))}}let c=[...t.matchAll(/^([a-zA-Z])\s*:\s+(.+)/gm)];if(c.length>=2){let t=n(c[0][0].substring(0,2));return{textBefore:e.substring(0,t).trim(),options:c.map(e=>({key:e[1].toUpperCase(),label:e[2].trim()}))}}let l=[...t.matchAll(/^\(([a-zA-Z0-9])\)\s+(.+)/gm)];if(l.length>=2){let t=n(l[0][0].substring(0,4));return{textBefore:e.substring(0,t).trim(),options:l.map(e=>({key:e[1].toUpperCase(),label:e[2].trim()}))}}let u=[...t.matchAll(/^\[([a-zA-Z0-9])\]\s+(.+)/gm)];if(u.length>=2){let t=n(u[0][0].substring(0,4));return{textBefore:e.substring(0,t).trim(),options:u.map(e=>({key:e[1].toUpperCase(),label:e[2].trim()}))}}let d=[...t.matchAll(/^\d+\.\s*(.+?)\s*[—–→]\s+(.+)/gm)];if(d.length>=2){let t=n(d[0][0].substring(0,3));return{textBefore:e.substring(0,t).trim(),options:d.map((e,t)=>({key:String(t+1),label:`${e[1]} — ${e[2]}`}))}}let f=[...e.matchAll(/^[-•][^\S\n]*\*\*(.+?)\*\*[^\S\n]*(?:\([^)]*\)[^\S\n]*)?[—–\-→][^\S\n]*(.+)/gm)];if(f.length>=2){let t=e.indexOf(f[0][0]);return{textBefore:e.substring(0,t).trim(),options:f.map((e,t)=>({key:String(t+1),label:`${e[1]} — ${e[2]}`}))}}let p=[...e.matchAll(/^[-•][^\S\n]*\*\*(.+?)\*\*[^\S\n]*(?:\(([^)]*)\))?[^\S\n]*$/gm)];if(p.length>=2){let t=e.indexOf(p[0][0]);return{textBefore:e.substring(0,t).trim(),options:p.map((e,t)=>({key:String(t+1),label:e[2]?`${e[1]} (${e[2]})`:e[1]}))}}return null}let T=new Map;function fe(e,t){return T.has(e)||T.set(e,w(t)),T.get(e)}let E=new Map;function D(e,t){return E.has(e)||E.set(e,Ne(t)),E.get(e)}let O=new Map;function pe(e,t){return O.has(e)||O.set(e,v(t)),O.get(e)}function me(e){let t=e.match(/\s*[—–→]\s*/);return t?e.substring(0,t.index):e}function he(e){let t=x.selectedWorkspaceId;t&&ue.sendChatMessage(t,e)}let ge=ne(()=>{let e=x.activityFeed;for(let t=e.length-1;t>=0;t--)if(e[t].type===`text`)return e[t].id;return null}),_e=ne(()=>{let e=x.activityFeed;for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.meta?.sender===`user`)return null;if(n.type===`tool_use`&&n.content===`AskUserQuestion`)return n.id}return null}),ve=o(-1);function ye(){let t=x.activityFeed,n=t.map((e,t)=>({item:e,idx:t})).filter(({item:e})=>e.meta?.sender===`user`);if(n.length===0)return;ve.value<=0?ve.value=n.length-1:ve.value--;let r=n[ve.value].idx,i=n[ve.value].item.id,a=t.length-r;a>k.value&&(k.value=Math.min(a+10,t.length)),e(()=>{let e=S.value?.querySelector(`[data-item-id="${i}"]`);e&&e.scrollIntoView({behavior:`smooth`,block:`center`})})}n(()=>x.selectedWorkspaceId,()=>{ve.value=-1,T.clear(),E.clear(),O.clear(),A=0,C.value=!1});let k=o(ir),be=ne(()=>{let e=x.activityFeed;return e.length<=k.value?e:e.slice(-k.value)});n(()=>x.selectedWorkspaceId,()=>{k.value=ir}),n(be,e=>{let t=new Set(e.map(e=>e.id));for(let e of T.keys())t.has(e)||T.delete(e);for(let e of E.keys())t.has(e)||E.delete(e);for(let e of O.keys())t.has(e)||O.delete(e)},{flush:`post`});let xe=o(!1),A=0;function j(){let t=S.value;if(t&&(t.scrollHeight-t.scrollTop-t.clientHeight<50?xe.value=!1:t.scrollTop<A&&(xe.value=!0),A=t.scrollTop,t.scrollTop<200&&!C.value)){let n=x.activityFeed.length;if(k.value<n){C.value=!0;let r=t.scrollHeight;k.value=Math.min(k.value+ar,n),e(()=>{S.value&&(S.value.scrollTop+=S.value.scrollHeight-r),C.value=!1})}else if(x.selectedWorkspaceId&&x.hasMoreEvents[x.selectedWorkspaceId]!==!1){C.value=!0;let n=t.scrollHeight;x.fetchOlderEvents(x.selectedWorkspaceId).then(t=>{t?(k.value=x.activityFeed.length,e(()=>{S.value&&(S.value.scrollTop+=S.value.scrollHeight-n),C.value=!1})):C.value=!1})}}}function Se(){if(xe.value)return;let e=S.value;e&&(e.scrollTop=e.scrollHeight)}function M(){xe.value=!1,k.value=ir,e(()=>{let e=S.value;e&&(e.scrollTop=e.scrollHeight)})}n(()=>x.activityFeed.length,()=>{e(Se)}),i(()=>{S.value?.addEventListener(`scroll`,j),e(Se)}),a(()=>{S.value?.removeEventListener(`scroll`,j)});function N(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function P(e){if(e.type!==`tool_use`)return null;let t=e.meta?.input;if(e.content===`Edit`){if(!t?.file_path)return null;let e=t.file_path,n=t.old_string??``,r=t.new_string??``,i=n.split(`
|
|
61
61
|
`),a=r.split(`
|
|
62
62
|
`);return{toolName:`Edit`,filePath:e,oldString:n,newString:r,replaceAll:t.replace_all??!1,additions:a.length,deletions:i.length}}if(e.content===`Write`){if(!t?.file_path)return null;let e=t.file_path,n=t.content??``;return{toolName:`Write`,filePath:e,content:n,additions:n.split(`
|
|
63
|
-
`).length,deletions:0}}if(e.content===`Bash`){let e=(t?.command??``).match(/^\s*rm\s+(?:-[a-zA-Z]*\s+)*(.+)/);if(e)return{toolName:`Bash:rm`,filePath:e[1].trim().replace(/["']/g,``),additions:0,deletions:1}}return null}function Ce(e){let t=x.selectedWorkspace;if(
|
|
63
|
+
`).length,deletions:0}}if(e.content===`Bash`){let e=(t?.command??``).match(/^\s*rm\s+(?:-[a-zA-Z]*\s+)*(.+)/);if(e)return{toolName:`Bash:rm`,filePath:e[1].trim().replace(/["']/g,``),additions:0,deletions:1}}return null}function Ce(e){let t=x.selectedWorkspace;if(t){let n=`${t.projectPath}/.worktrees/${t.workingBranch}/`;if(e.startsWith(n))return e.slice(n.length);if(e.startsWith(t.projectPath+`/`))return e.slice(t.projectPath.length+1)}return e.startsWith(`/`)&&e.split(`/`).length>4?`…/`+e.split(`/`).slice(-3).join(`/`):e}function F(e){return e.split(`/`).pop()??e}function we(e){let t=F(e),n=t.lastIndexOf(`.`);return n>=0?t.substring(n+1):``}function Te(e){return{ts:`JS`,tsx:`TS`,js:`JS`,jsx:`JS`,vue:`VU`,py:`PY`,rs:`RS`,go:`GO`,java:`JA`,php:`PH`,css:`CS`,scss:`SC`,html:`HT`,md:`MD`,json:`JS`,sql:`SQ`,sh:`SH`,yaml:`YA`,yml:`YA`,toml:`TM`}[e.toLowerCase()]??e.substring(0,2).toUpperCase()}function Ee(e){return{ts:`blue-5`,tsx:`blue-5`,js:`yellow-8`,jsx:`yellow-8`,vue:`green-5`,py:`blue-4`,rs:`orange-5`,go:`cyan-5`,java:`red-5`,php:`indigo-4`,css:`purple-4`,scss:`pink-4`,html:`orange-4`,md:`grey-5`,json:`yellow-6`}[e.toLowerCase()]??`grey-5`}function De(e){let t=e.toLowerCase();return t.includes(`read`)||t.includes(`grep`)||t.includes(`glob`)?`search`:t.includes(`write`)||t.includes(`edit`)?`edit`:t.includes(`bash`)||t.includes(`terminal`)?`terminal`:t.includes(`agent`)||t.includes(`task`)?`smart_toy`:`build`}function Oe(e){switch(e.type){case`text`:return e.meta?.sender===`system-prompt`?`af-item--prompt`:e.meta?.sender===`user`?`af-item--user`:`af-item--text`;case`system`:return`af-item--system`;case`error`:return`af-item--error`;case`tool_use`:return`af-item--tool`;case`raw`:return`af-item--raw`;default:return``}}function ke(e){switch(e.meta?.sender){case`system-prompt`:return ce(`activityFeed.initialPrompt`);case`user`:return ce(`activityFeed.you`);default:return ce(`activityFeed.agent`)}}function Ae(e){switch(e.meta?.sender){case`system-prompt`:return`text-indigo-4`;case`user`:return`text-green-4`;default:return`text-blue-4`}}function je(e){if(e.content===`Skill`&&e.meta){let t=e.meta.input;if(t&&typeof t.skill==`string`)return`Skill — ${t.skill}`}return e.content}function Me(e){if(!e.meta)return``;let t=e.meta.input;if(!t)return``;if(typeof t.description==`string`)return t.description;if(typeof t.file_path==`string`)return Ce(t.file_path);if(typeof t.pattern==`string`)return`${typeof t.path==`string`?`${Ce(t.path)}/`:``}${t.pattern}`;if(typeof t.path==`string`)return Ce(t.path);if(typeof t.command==`string`){let e=t.command;return e.length>80?`${e.slice(0,80)}…`:e}return``}function Ne(e){if(e.type!==`tool_use`||e.content!==`AskUserQuestion`)return null;let t=e.meta?.input;return!t?.questions||!Array.isArray(t.questions)?null:t.questions.filter(e=>Array.isArray(e.options)&&e.options.length>0).map(e=>({question:e.question??``,options:e.options.map(e=>({label:e.label??``,description:e.description??``}))}))}function Pe(e){let t=x.selectedWorkspaceId;t&&ue.sendChatMessage(t,e)}function Fe(e){if(!e.meta)return!1;let t=e.meta;return t.input!==void 0&&t.input!==null}function I(e){de.value.has(e)?de.value.delete(e):de.value.add(e)}function L(e){return de.value.has(e)}function Ie(e){if(!e.meta)return``;let t=e.meta;if(!t.input)return``;try{return JSON.stringify(t.input,null,2)}catch{return String(t.input)}}let R=ne(()=>x.activityFeed.some(e=>e.meta?.sender===`user`));function Le(e){return e.type!==`system`||!e.meta?!1:Object.keys(e.meta).length>0}function Re(e){if(!e.meta)return``;try{return JSON.stringify(e.meta,null,2)}catch{return``}}return(e,n)=>(t(),m(`div`,{ref_key:`feedContainer`,ref:S,class:`activity-feed q-pa-sm`},[te(x).activityFeed.length===0?(t(),m(`div`,pn,[c(_,{name:`forum`,size:`48px`,color:`grey-8`}),d(`div`,mn,g(e.$t(`activityFeed.empty`)),1),d(`div`,hn,g(e.$t(`activityFeed.emptyHint`)),1)])):h(``,!0),C.value?(t(),m(`div`,gn,[c(y,{size:`24px`,color:`grey-6`})])):h(``,!0),(t(!0),m(u,null,r(be.value,i=>(t(),m(`div`,{key:i.id,"data-item-id":i.id,class:l([`af-item text-caption rounded-borders`,Oe(i)])},[i.type===`tool_use`&&D(i.id,i)?(t(),m(u,{key:0},[d(`div`,vn,[c(_,{name:`help_outline`,size:`14px`,color:`indigo-4`}),d(`span`,yn,g(e.$t(`activityFeed.question`)),1),c(b),d(`span`,bn,g(N(i.timestamp)),1)]),(t(!0),m(u,null,r(D(i.id,i),(e,n)=>(t(),m(`div`,{key:n,class:`q-mt-sm`},[e.question?(t(),m(`div`,xn,g(e.question),1)):h(``,!0),d(`div`,Sn,[(t(!0),m(u,null,r(e.options,(e,n)=>(t(),m(`div`,{key:n,class:`af-ask-option-item text-caption text-grey-5`},[d(`span`,Cn,g(n+1)+`. `+g(e.label),1),e.description?(t(),m(`span`,wn,` — `+g(e.description),1)):h(``,!0)]))),128))]),i.id===_e.value?(t(),m(`div`,Tn,[(t(!0),m(u,null,r(e.options,(e,n)=>(t(),f(ie,{key:e.label,"no-caps":``,outline:``,dense:``,color:`indigo-4`,class:`af-option-btn`,onClick:t=>Pe(`${n+1}. ${e.label}`)},{default:s(()=>[p(g(e.label),1)]),_:2},1032,[`onClick`]))),128))])):h(``,!0)]))),128))],64)):i.type===`tool_use`&&P(i)?(t(),m(`div`,{key:1,class:`af-file-change cursor-pointer`,onClick:e=>I(i.id)},[d(`div`,Dn,[d(`span`,{class:l([`af-lang-badge`,`text-${Ee(we(P(i).filePath))}`])},g(Te(we(P(i).filePath))),3),d(`span`,On,g(Ce(P(i).filePath)),1),d(`span`,kn,[P(i).additions?(t(),m(`span`,An,`+`+g(P(i).additions),1)):h(``,!0),P(i).deletions?(t(),m(`span`,jn,`-`+g(P(i).deletions),1)):h(``,!0)]),c(_,{name:L(i.id)?`expand_less`:`expand_more`,size:`14px`,color:`grey-6`},null,8,[`name`]),c(b),d(`span`,Mn,g(N(i.timestamp)),1)]),L(i.id)?(t(),m(`div`,{key:0,class:`af-diff-body q-mt-xs`,onClick:n[0]||=ae(()=>{},[`stop`])},[P(i).toolName===`Edit`?(t(),m(u,{key:0},[(t(!0),m(u,null,r((P(i).oldString??``).split(`
|
|
64
64
|
`),(e,r)=>(t(),m(`div`,{key:`del-${r}`,class:`af-diff-line af-diff-del`},[n[1]||=d(`span`,{class:`af-diff-sign`},`-`,-1),p(g(e),1)]))),128)),(t(!0),m(u,null,r((P(i).newString??``).split(`
|
|
65
65
|
`),(e,r)=>(t(),m(`div`,{key:`add-${r}`,class:`af-diff-line af-diff-add`},[n[2]||=d(`span`,{class:`af-diff-sign`},`+`,-1),p(g(e),1)]))),128))],64)):P(i).toolName===`Bash:rm`?(t(),m(`div`,Nn,[...n[3]||=[d(`span`,{class:`af-diff-sign`},`-`,-1),p(`File deleted`,-1)]])):(t(),m(u,{key:2},[(t(!0),m(u,null,r((P(i).content??``).split(`
|
|
66
66
|
`).slice(0,30),(e,r)=>(t(),m(`div`,{key:`w-${r}`,class:`af-diff-line af-diff-add`},[n[4]||=d(`span`,{class:`af-diff-sign`},`+`,-1),p(g(e),1)]))),128)),(P(i).content??``).split(`
|
|
67
67
|
`).length>30?(t(),m(`div`,Pn,`… `+g((P(i).content??``).split(`
|
|
68
|
-
`).length-30)+` more lines`,1)):h(``,!0)],64))])):h(``,!0)],8,En)):i.type===`tool_use`?(t(),m(u,{key:2},[d(`div`,{class:l([`af-tool row items-center q-gutter-xs`,{"cursor-pointer":Fe(i)}]),onClick:e=>Fe(i)&&I(i.id)},[c(_,{name:De(i.content),size:`14px`,color:`grey-6`},null,8,[`name`]),d(`span`,In,g(je(i)),1),Me(i)?(t(),m(`span`,Ln,`— `+g(Me(i)),1)):h(``,!0),Fe(i)?(t(),f(_,{key:1,name:L(i.id)?`expand_less`:`expand_more`,size:`14px`,color:`grey-7`},null,8,[`name`])):h(``,!0),c(b),d(`span`,Rn,g(N(i.timestamp)),1)],10,Fn),L(i.id)?(t(),m(`div`,zn,[d(`pre`,Bn,g(Ie(i)),1)])):h(``,!0)],64)):i.type===`text`?(t(),m(u,{key:3},[d(`div`,Vn,[d(`span`,{class:l([`text-caption text-weight-bold`,Ae(i)])},g(ke(i)),3),i.meta?.pending?(t(),f(y,{key:0,size:`14px`,color:`grey-5`,class:`q-ml-sm`})):h(``,!0),c(b),d(`span`,Hn,g(N(i.timestamp)),1)]),d(`div`,{class:`af-text-content af-markdown`,innerHTML:pe(i.id,i.content)},null,8,Un),fe(i.id,i.content)&&i.id===ge.value&&i.meta?.sender!==`user`?(t(),m(`div`,Wn,[(t(!0),m(u,null,r(fe(i.id,i.content).options,e=>(t(),f(ie,{key:e.key,"no-caps":``,outline:``,dense:``,size:`sm`,color:`indigo-4`,class:`af-option-btn q-pa-xs`,onClick:t=>he(`${e.key}. ${e.label}`)},{default:s(()=>[d(`span`,Gn,g(e.key)+`.`,1),p(` `+g(me(e.label))+` `,1),e.label===me(e.label)?h(``,!0):(t(),f(le,{key:0},{default:s(()=>[p(g(e.label),1)]),_:2},1024))]),_:2},1032,[`onClick`]))),128))])):h(``,!0)],64)):i.type===`system`?(t(),m(u,{key:4},[d(`div`,{class:l([`row items-center`,{"cursor-pointer":Le(i)}]),onClick:e=>Le(i)&&I(i.id)},[c(_,{name:`info`,size:`14px`,color:`amber-6`,class:`q-mr-xs`}),d(`span`,qn,g(i.content),1),Le(i)?(t(),f(_,{key:0,name:L(i.id)?`expand_less`:`expand_more`,size:`14px`,color:`amber-8`,class:`q-ml-xs`},null,8,[`name`])):h(``,!0),c(b),d(`span`,Jn,g(N(i.timestamp)),1)],10,Kn),L(i.id)&&Le(i)?(t(),m(`div`,Yn,[d(`pre`,Xn,g(Re(i)),1)])):h(``,!0)],64)):i.type===`error`?(t(),m(`div`,Zn,[c(_,{name:`error`,size:`14px`,color:`red-5`,class:`q-mr-xs`}),d(`span`,Qn,g(i.content),1),c(b),d(`span`,$n,g(N(i.timestamp)),1)])):(t(),m(`div`,er,[d(`span`,tr,g(i.content),1),c(b),d(`span`,nr,g(N(i.timestamp)),1)]))],10,_n))),128)),d(`div`,rr,[R.value?(t(),f(ie,{key:0,round:``,dense:``,size:`sm`,icon:`person_search`,color:`indigo-8`,class:`scroll-btn`,onClick:ye},{default:s(()=>[c(le,null,{default:s(()=>[p(g(e.$t(`activityFeed.goToPrevious`)),1)]),_:1})]),_:1})):h(``,!0),xe.value?(t(),f(ie,{key:1,round:``,dense:``,size:`sm`,icon:`keyboard_double_arrow_down`,color:`indigo-8`,class:`scroll-btn`,onClick:M},{default:s(()=>[c(le,null,{default:s(()=>[p(g(e.$t(`activityFeed.scrollToBottom`)),1)]),_:1})]),_:1})):h(``,!0)])],512))}}),[[`__scopeId`,`data-v-
|
|
68
|
+
`).length-30)+` more lines`,1)):h(``,!0)],64))])):h(``,!0)],8,En)):i.type===`tool_use`?(t(),m(u,{key:2},[d(`div`,{class:l([`af-tool row items-center q-gutter-xs`,{"cursor-pointer":Fe(i)}]),onClick:e=>Fe(i)&&I(i.id)},[c(_,{name:De(i.content),size:`14px`,color:`grey-6`},null,8,[`name`]),d(`span`,In,g(je(i)),1),Me(i)?(t(),m(`span`,Ln,`— `+g(Me(i)),1)):h(``,!0),Fe(i)?(t(),f(_,{key:1,name:L(i.id)?`expand_less`:`expand_more`,size:`14px`,color:`grey-7`},null,8,[`name`])):h(``,!0),c(b),d(`span`,Rn,g(N(i.timestamp)),1)],10,Fn),L(i.id)?(t(),m(`div`,zn,[d(`pre`,Bn,g(Ie(i)),1)])):h(``,!0)],64)):i.type===`text`?(t(),m(u,{key:3},[d(`div`,Vn,[d(`span`,{class:l([`text-caption text-weight-bold`,Ae(i)])},g(ke(i)),3),i.meta?.pending?(t(),f(y,{key:0,size:`14px`,color:`grey-5`,class:`q-ml-sm`})):h(``,!0),c(b),d(`span`,Hn,g(N(i.timestamp)),1)]),d(`div`,{class:`af-text-content af-markdown`,innerHTML:pe(i.id,i.content)},null,8,Un),fe(i.id,i.content)&&i.id===ge.value&&i.meta?.sender!==`user`?(t(),m(`div`,Wn,[(t(!0),m(u,null,r(fe(i.id,i.content).options,e=>(t(),f(ie,{key:e.key,"no-caps":``,outline:``,dense:``,size:`sm`,color:`indigo-4`,class:`af-option-btn q-pa-xs`,onClick:t=>he(`${e.key}. ${e.label}`)},{default:s(()=>[d(`span`,Gn,g(e.key)+`.`,1),p(` `+g(me(e.label))+` `,1),e.label===me(e.label)?h(``,!0):(t(),f(le,{key:0},{default:s(()=>[p(g(e.label),1)]),_:2},1024))]),_:2},1032,[`onClick`]))),128))])):h(``,!0)],64)):i.type===`system`?(t(),m(u,{key:4},[d(`div`,{class:l([`row items-center`,{"cursor-pointer":Le(i)}]),onClick:e=>Le(i)&&I(i.id)},[c(_,{name:`info`,size:`14px`,color:`amber-6`,class:`q-mr-xs`}),d(`span`,qn,g(i.content),1),Le(i)?(t(),f(_,{key:0,name:L(i.id)?`expand_less`:`expand_more`,size:`14px`,color:`amber-8`,class:`q-ml-xs`},null,8,[`name`])):h(``,!0),c(b),d(`span`,Jn,g(N(i.timestamp)),1)],10,Kn),L(i.id)&&Le(i)?(t(),m(`div`,Yn,[d(`pre`,Xn,g(Re(i)),1)])):h(``,!0)],64)):i.type===`error`?(t(),m(`div`,Zn,[c(_,{name:`error`,size:`14px`,color:`red-5`,class:`q-mr-xs`}),d(`span`,Qn,g(i.content),1),c(b),d(`span`,$n,g(N(i.timestamp)),1)])):(t(),m(`div`,er,[d(`span`,tr,g(i.content),1),c(b),d(`span`,nr,g(N(i.timestamp)),1)]))],10,_n))),128)),d(`div`,rr,[R.value?(t(),f(ie,{key:0,round:``,dense:``,size:`sm`,icon:`person_search`,color:`indigo-8`,class:`scroll-btn`,onClick:ye},{default:s(()=>[c(le,null,{default:s(()=>[p(g(e.$t(`activityFeed.goToPrevious`)),1)]),_:1})]),_:1})):h(``,!0),xe.value?(t(),f(ie,{key:1,round:``,dense:``,size:`sm`,icon:`keyboard_double_arrow_down`,color:`indigo-8`,class:`scroll-btn`,onClick:M},{default:s(()=>[c(le,null,{default:s(()=>[p(g(e.$t(`activityFeed.scrollToBottom`)),1)]),_:1})]),_:1})):h(``,!0)])],512))}}),[[`__scopeId`,`data-v-eb6d7313`]]);export{or as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{F as e,H as t,L as n,M as r,N as i,Q as a,T as ee,U as o,_ as s,a as c,d as l,f as te,g as u,m as d,n as ne,p as f,rt as re,u as p,y as ie,yt as m}from"./vue-i18n-nv59vAyH.js";import{
|
|
2
|
-
`)[0]??``).substring(0,80)||`workspace`}function Ke(e){let t=(e.split(`/`).pop()??``).split(`-`);return t.length>1&&/^[0-9a-f]{12,}$/i.test(t[t.length-1])&&t.pop(),t.join(`-`).toLowerCase().substring(0,50)||`task-${Date.now()}`}function qe(){return F.value&&!U.value?A(`createPage.validationNotionUrl`):!F.value&&!N.value.trim()?A(`createPage.validationDescription`):!F.value&&(!Q()||Q()===`workspace`)&&!M.value.trim()&&!N.value.trim()?A(`createPage.validationName`):L.value.trim()?R.value?null:A(`createPage.validationBranch`):A(`createPage.validationPath`)}async function $(){let e=qe();if(e){D.notify({type:`negative`,message:e,position:`top`});return}H.value=!0;try{let e=Q(),t;t=e===`workspace`?F.value&&U.value?Ke(P.value.trim()):`task-${Date.now()}`:Ge(e);let n=`feature/${t}`,r={name:e,projectPath:L.value.trim(),sourceBranch:R.value,workingBranch:n,model:I.value,...F.value&&U.value?{notionUrl:P.value.trim()}:{},...J.value&&W.value.length>0?{tasks:W.value}:{},...J.value&&G.value.length>0?{acceptanceCriteria:G.value}:{},...z.value?{skipSetupScript:!0}:{},...N.value.trim()?{description:N.value.trim()}:{}},i=await O.createWorkspace(r);se().subscribe(i.id),O.selectWorkspace(i.id),
|
|
1
|
+
import{F as e,H as t,L as n,M as r,N as i,Q as a,T as ee,U as o,_ as s,a as c,d as l,f as te,g as u,m as d,n as ne,p as f,rt as re,u as p,y as ie,yt as m}from"./vue-i18n-nv59vAyH.js";import{L as h,T as g,bt as _,ht as ae,yt as v}from"./scroll-CWjBCoBR.js";import{i as y}from"./private.use-form-1cZLVjGN.js";import{t as oe}from"./settings-B0JkmJA1.js";import{E as se,O as ce,n as le,r as b,w as ue}from"./index-BxBqipDT.js";import{p as x,t as S}from"./_plugin-vue_export-helper-CLHv3piE.js";import{t as C}from"./QTooltip-DKxEdudV.js";import{i as de,n as w,r as T}from"./QMenu-BE-OO3N4.js";import{n as E,r as fe,t as pe}from"./QPage-CkDrNXyM.js";import{t as me}from"./QExpansionItem-Ch5P6bzC.js";var he={class:`create-inner`},ge={class:`create-title text-center text-weight-bold q-mb-lg text-grey-3`},_e={class:`create-card rounded-borders`},ve={class:`card-top-bar row items-center q-px-md q-py-xs`},ye={class:`model-badge cursor-default row items-center q-gutter-xs`},be={class:`text-indigo-3 text-weight-medium text-caption`},xe={key:0,class:`notion-url-wrap`},Se={key:0,class:`notion-error text-caption q-px-md q-pb-xs text-red-5`},Ce={key:1,class:`notion-valid text-caption q-px-md q-pb-xs text-green-4`},we={class:`card-name-wrap`},Te={class:`card-textarea-wrap`},Ee={class:`manual-hint q-px-md q-py-sm text-caption text-grey-6`},De={class:`q-pa-sm manual-section-body`},Oe={class:`row items-center q-gutter-sm q-mb-sm`},ke={class:`col text-caption text-grey-4`},Ae={class:`q-pa-sm manual-section-body`},je={class:`row items-center q-gutter-sm q-mb-sm`},Me={class:`col text-caption text-grey-4`},Ne={class:`card-bottom-bar row items-center wrap q-px-sm q-py-xs q-gutter-xs`},Pe={class:`bottom-select-label row items-center no-wrap`},Fe={class:`bottom-select-label row items-center no-wrap`},Ie={class:`bottom-select-label row items-center no-wrap`},Le={class:`create-hint text-center text-body2 q-mt-md text-grey-8`},D=S(ie({__name:`CreatePage`,setup(ie){let S=ue(),D=de(),O=ce(),k=oe(),{t:A}=ne(),j=a([]),M=a(``),N=a(``),P=a(``),F=a(!1),I=a(`auto`),L=a(``),R=a(null),z=a(!1),B=a([]),V=a(!1),H=a(!1),Re=p(()=>[{label:A(`model.auto`),value:`auto`,description:`Claude picks the optimal model`},{label:A(`model.opus`),value:`claude-opus-4-6`,description:`Most powerful`},{label:A(`model.sonnet`),value:`claude-sonnet-4-6`,description:`Balanced`},{label:A(`model.haiku`),value:`claude-haiku-4-5-20251001`,description:`Fastest`}]),U=p(()=>P.value.trim().startsWith(`https://www.notion.so/`)),W=a([]),G=a([]),K=a(``),q=a(``),J=p(()=>!F.value||!U.value);function Y(){let e=K.value.trim();e&&(W.value.push(e),K.value=``)}function ze(e){W.value.splice(e,1)}function X(){let e=q.value.trim();e&&(G.value.push(e),q.value=``)}function Be(e){G.value.splice(e,1)}function Ve(){F.value=!F.value,F.value||(P.value=``)}async function He(e){if(!e.trim()){B.value=[],R.value=null;return}V.value=!0;try{let t=await fetch(`/api/git/branches?path=${encodeURIComponent(e.trim())}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();B.value=n.local??n.branches??[],B.value.length>0&&!R.value&&(R.value=B.value[0]??null)}catch{B.value=[],R.value=null}finally{V.value=!1}}function Ue(e){let t=k.getProjectByPath(e);t&&(t.defaultSourceBranch&&(R.value=t.defaultSourceBranch),t.defaultModel?I.value=t.defaultModel:k.global.defaultModel&&(I.value=k.global.defaultModel))}let Z=null;t(L,e=>{Z&&clearTimeout(Z),Z=setTimeout(()=>{R.value=null,He(e),Ue(e)},500)});function We(e,t){t(()=>{j.value=k.projectPaths.filter(t=>t.toLowerCase().includes(e.toLowerCase()))})}r(()=>{k.fetchSettings()}),i(()=>{Z&&clearTimeout(Z)});function Ge(e){return e.toLowerCase().replace(/[^a-z0-9\s-]/g,``).trim().replace(/\s+/g,`-`).replace(/-+/g,`-`).substring(0,50)}function Q(){return M.value.trim()?M.value.trim().substring(0,80):!F.value&&N.value.trim()&&(N.value.trim().split(`
|
|
2
|
+
`)[0]??``).substring(0,80)||`workspace`}function Ke(e){let t=(e.split(`/`).pop()??``).split(`-`);return t.length>1&&/^[0-9a-f]{12,}$/i.test(t[t.length-1])&&t.pop(),t.join(`-`).toLowerCase().substring(0,50)||`task-${Date.now()}`}function qe(){return F.value&&!U.value?A(`createPage.validationNotionUrl`):!F.value&&!N.value.trim()?A(`createPage.validationDescription`):!F.value&&(!Q()||Q()===`workspace`)&&!M.value.trim()&&!N.value.trim()?A(`createPage.validationName`):L.value.trim()?R.value?null:A(`createPage.validationBranch`):A(`createPage.validationPath`)}async function $(){let e=qe();if(e){D.notify({type:`negative`,message:e,position:`top`});return}H.value=!0;try{let e=Q(),t;t=e===`workspace`?F.value&&U.value?Ke(P.value.trim()):`task-${Date.now()}`:Ge(e);let n=`feature/${t}`,r={name:e,projectPath:L.value.trim(),sourceBranch:R.value,workingBranch:n,model:I.value,...F.value&&U.value?{notionUrl:P.value.trim()}:{},...J.value&&W.value.length>0?{tasks:W.value}:{},...J.value&&G.value.length>0?{acceptanceCriteria:G.value}:{},...z.value?{skipSetupScript:!0}:{},...N.value.trim()?{description:N.value.trim()}:{}},i=await O.createWorkspace(r);se().subscribe(i.id),O.selectWorkspace(i.id),S.push({name:`workspace`,params:{id:i.id}})}catch{D.notify({type:`negative`,message:A(`createPage.errorCreating`),position:`top`})}finally{H.value=!1}}return(t,r)=>(e(),te(pe,{class:`create-page flex flex-center column`},{default:o(()=>[l(`div`,he,[l(`div`,ge,m(t.$t(`createPage.title`)),1),l(`div`,_e,[l(`div`,ve,[l(`span`,ye,[s(h,{name:`auto_awesome`,size:`14px`,color:`indigo-4`}),l(`span`,be,m(t.$t(`createPage.claudeCode`)),1)]),s(x),s(g,{flat:``,dense:``,"no-caps":``,size:`sm`,color:F.value?`green-4`:`grey-5`,class:`notion-toggle-btn text-caption rounded-borders`,onClick:Ve},{default:o(()=>[s(h,{name:`description`,size:`14px`,class:`q-mr-xs`}),u(` `+m(F.value?t.$t(`createPage.notionEnabled`):t.$t(`createPage.importNotion`)),1)]),_:1},8,[`color`])]),s(y,{color:`grey-9`}),s(ae,{name:`slide`},{default:o(()=>[F.value?(e(),d(`div`,xe,[s(b,{modelValue:P.value,"onUpdate:modelValue":r[0]||=e=>P.value=e,borderless:``,dense:``,placeholder:t.$t(`createPage.notionPlaceholder`),class:`notion-url-input`,"input-class":`notion-url-input-inner`},{prepend:o(()=>[s(h,{name:`link`,size:`16px`,color:U.value?`green-4`:`grey-6`},null,8,[`color`])]),_:1},8,[`modelValue`,`placeholder`]),P.value.trim()&&!U.value?(e(),d(`div`,Se,m(t.$t(`createPage.notionValidation`)),1)):f(``,!0),U.value?(e(),d(`div`,Ce,m(t.$t(`createPage.notionAutoExtract`)),1)):f(``,!0)])):f(``,!0)]),_:1}),F.value?(e(),te(y,{key:0,color:`grey-9`})):f(``,!0),l(`div`,we,[s(b,{modelValue:M.value,"onUpdate:modelValue":r[1]||=e=>M.value=e,borderless:``,dense:``,placeholder:F.value&&U.value?t.$t(`createPage.workspaceName`):t.$t(`createPage.workspaceNamePlaceholder`),class:`name-input`,"input-class":`name-input-inner`},null,8,[`modelValue`,`placeholder`])]),s(y,{color:`grey-9`}),l(`div`,Te,[s(b,{modelValue:N.value,"onUpdate:modelValue":r[2]||=e=>N.value=e,type:`textarea`,borderless:``,autogrow:``,rows:3,placeholder:F.value?t.$t(`createPage.instructions`):t.$t(`createPage.instructionsPlaceholder`),class:`create-textarea`,"input-class":`create-textarea-input`,onKeydown:[v(_($,[`ctrl`]),[`enter`]),v(_($,[`meta`]),[`enter`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),s(y,{color:`grey-9`}),J.value?(e(),d(c,{key:1},[l(`div`,Ee,m(t.$t(`createPage.manualHint`)),1),s(me,{dark:``,dense:``,label:t.$t(`createPage.tasks`,{count:W.value.length}),"header-class":`text-grey-4 manual-expansion-header`,class:`manual-expansion q-mx-sm`},{default:o(()=>[l(`div`,De,[l(`div`,Oe,[s(b,{modelValue:K.value,"onUpdate:modelValue":r[3]||=e=>K.value=e,dark:``,dense:``,borderless:``,placeholder:t.$t(`createPage.addTask`),class:`col manual-input`,"input-class":`manual-input-inner`,onKeydown:v(_(Y,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`]),s(g,{flat:``,dense:``,round:``,icon:`add`,color:`indigo-4`,disable:!K.value.trim(),onClick:Y},{default:o(()=>[s(C,null,{default:o(()=>[u(m(t.$t(`tooltip.addTask`)),1)]),_:1})]),_:1},8,[`disable`])]),(e(!0),d(c,null,n(W.value,(n,r)=>(e(),d(`div`,{key:`task-${r}`,class:`row items-center q-py-xs manual-item`},[l(`span`,ke,m(n),1),s(g,{flat:``,dense:``,round:``,icon:`close`,size:`xs`,color:`grey-6`,onClick:e=>ze(r)},{default:o(()=>[s(C,null,{default:o(()=>[u(m(t.$t(`tooltip.removeTask`)),1)]),_:1})]),_:1},8,[`onClick`])]))),128))])]),_:1},8,[`label`]),s(me,{dark:``,dense:``,label:t.$t(`createPage.acceptanceCriteria`,{count:G.value.length}),"header-class":`text-grey-4 manual-expansion-header`,class:`manual-expansion q-mx-sm q-mb-sm`},{default:o(()=>[l(`div`,Ae,[l(`div`,je,[s(b,{modelValue:q.value,"onUpdate:modelValue":r[4]||=e=>q.value=e,dark:``,dense:``,borderless:``,placeholder:t.$t(`createPage.addCriterion`),class:`col manual-input`,"input-class":`manual-input-inner`,onKeydown:v(_(X,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`]),s(g,{flat:``,dense:``,round:``,icon:`add`,color:`indigo-4`,disable:!q.value.trim(),onClick:X},{default:o(()=>[s(C,null,{default:o(()=>[u(m(t.$t(`tooltip.addCriterion`)),1)]),_:1})]),_:1},8,[`disable`])]),(e(!0),d(c,null,n(G.value,(n,r)=>(e(),d(`div`,{key:`crit-${r}`,class:`row items-center q-py-xs manual-item`},[l(`span`,Me,m(n),1),s(g,{flat:``,dense:``,round:``,icon:`close`,size:`xs`,color:`grey-6`,onClick:e=>Be(r)},{default:o(()=>[s(C,null,{default:o(()=>[u(m(t.$t(`tooltip.removeCriterion`)),1)]),_:1})]),_:1},8,[`onClick`])]))),128))])]),_:1},8,[`label`]),s(y,{color:`grey-9`})],64)):f(``,!0),l(`div`,Ne,[s(E,{modelValue:I.value,"onUpdate:modelValue":r[5]||=e=>I.value=e,options:Re.value,dense:``,borderless:``,class:`bottom-select rounded-borders model-select`,"hide-dropdown-icon":``,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`},{selected:o(()=>[l(`span`,Pe,[u(m(Re.value.find(e=>e.value===I.value)?.label??I.value)+` `,1),s(h,{name:`expand_more`,size:`12px`,color:`grey-5`})])]),option:o(({opt:e,itemProps:t})=>[s(w,ee(t,{class:`model-option`}),{default:o(()=>[s(T,null,{default:o(()=>[s(fe,{class:`text-white`},{default:o(()=>[u(m(e.label),1)]),_:2},1024),s(fe,{caption:``,class:`text-grey-5`},{default:o(()=>[u(m(e.description),1)]),_:2},1024)]),_:2},1024)]),_:2},1040)]),_:1},8,[`modelValue`,`options`]),s(x),s(E,{modelValue:L.value,"onUpdate:modelValue":r[6]||=e=>L.value=e,options:j.value,dense:``,borderless:``,"use-input":``,"hide-selected":``,"fill-input":``,"input-debounce":`0`,"new-value-mode":`add`,class:`bottom-select rounded-borders repo-select`,"hide-dropdown-icon":``,behavior:re(k).projectPaths.length>0?`menu`:`dialog`,onFilter:We,onInputValue:r[7]||=e=>{L.value=e}},{prepend:o(()=>[s(h,{name:`attach_file`,size:`12px`,color:`grey-5`})]),selected:o(()=>[l(`span`,Fe,m(L.value||t.$t(`createPage.projectPath`)),1)]),"no-option":o(()=>[s(w,null,{default:o(()=>[s(T,{class:`text-grey-6 text-caption`},{default:o(()=>[u(m(t.$t(`createPage.enterPath`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`,`options`,`behavior`]),s(E,{modelValue:R.value,"onUpdate:modelValue":r[8]||=e=>R.value=e,options:B.value,dense:``,borderless:``,class:`bottom-select rounded-borders branch-select`,"hide-dropdown-icon":``,loading:V.value,disable:!L.value.trim()||V.value},{selected:o(()=>[l(`span`,Ie,[s(h,{name:`call_split`,size:`12px`,color:`grey-5`,class:`q-mr-xs`}),u(` `+m(R.value??t.$t(`createPage.branch`))+` `,1),s(h,{name:`expand_more`,size:`12px`,color:`grey-5`})])]),"no-option":o(()=>[s(w,null,{default:o(()=>[s(T,{class:`text-grey-6 text-caption`},{default:o(()=>[u(m(L.value.trim()?t.$t(`createPage.noBranches`):t.$t(`createPage.enterPath`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`,`options`,`loading`,`disable`]),s(le,{modelValue:z.value,"onUpdate:modelValue":r[9]||=e=>z.value=e,label:t.$t(`createPage.skipSetupScript`),dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption q-mr-sm`},null,8,[`modelValue`,`label`]),s(g,{label:t.$t(`createPage.create`),"no-caps":``,unelevated:``,class:`create-btn text-weight-bold rounded-borders`,loading:H.value,onClick:$},null,8,[`label`,`loading`])])]),l(`div`,Le,m(F.value?t.$t(`createPage.notionExtractHint`):t.$t(`createPage.notionImportHint`)),1)])]),_:1}))}}),[[`__scopeId`,`data-v-4ffb9e51`]]);export{D as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/editor.main-By6Nm4Uo.js","assets/index-BxBqipDT.js","assets/vue-i18n-nv59vAyH.js","assets/scroll-CWjBCoBR.js","assets/settings-B0JkmJA1.js","assets/use-checkbox-DwkIkUAc.js","assets/private.use-form-1cZLVjGN.js","assets/i18n-yBCUfaG0.js","assets/index-eX_lKHSg.css","assets/editor.api-CDy2oNdA.js","assets/editor-COGk2gAX.css","assets/monaco.contribution-DojwMy68.js","assets/editor-CS3NEPi9.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{D as e,F as t,H as n,L as r,M as i,N as a,Q as o,S as s,U as c,W as l,_ as u,_t as d,a as f,b as p,d as m,f as h,g,j as ee,k as _,m as v,n as y,p as b,u as x,vt as S,y as C,yt as w}from"./vue-i18n-nv59vAyH.js";import{E as T,L as E,T as D,V as O,c as k,ct as A,s as j,z as M}from"./scroll-CWjBCoBR.js";import{a as N,i as P,o as F,r as I,s as L,t as R}from"./private.use-form-1cZLVjGN.js";import{S as z}from"./index-BxBqipDT.js";import{t as B}from"./QSpinnerDots-FJCnAvfw.js";import{p as V,t as H}from"./_plugin-vue_export-helper-CLHv3piE.js";import{t as te}from"./QTooltip-DKxEdudV.js";import{t as U}from"./QBadge-xNMZEqT-.js";import{r as W}from"./touch-Bojc73iM.js";import{n as G,t as K}from"./TouchPan-Dc-xrSIS.js";import{t as q}from"./format-Ex4UmWdz.js";var J=A({name:`QBtnGroup`,props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(e,{slots:t}){let n=x(()=>{let t=[`unelevated`,`outline`,`flat`,`rounded`,`square`,`push`,`stretch`,`glossy`].filter(t=>e[t]===!0).map(e=>`q-btn-group--${e}`).join(` `);return`q-btn-group row no-wrap${t.length===0?``:` `+t}`+(e.spread===!0?` q-btn-group--spread`:` inline`)});return()=>s(`div`,{class:n.value},O(t.default))}}),ne=A({name:`QBtnToggle`,props:{...I,modelValue:{required:!0},options:{type:Array,required:!0,validator:e=>e.every(e=>(`label`in e||`icon`in e||`slot`in e)&&`value`in e)},color:String,textColor:String,toggleColor:{type:String,default:`primary`},toggleTextColor:String,outline:Boolean,flat:Boolean,unelevated:Boolean,rounded:Boolean,push:Boolean,glossy:Boolean,size:String,padding:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,readonly:Boolean,disable:Boolean,stack:Boolean,stretch:Boolean,spread:Boolean,clearable:Boolean,ripple:{type:[Boolean,Object],default:!0}},emits:[`update:modelValue`,`clear`,`click`],setup(e,{slots:t,emit:n}){let r=x(()=>e.options.find(t=>t.value===e.modelValue)!==void 0),i=R(x(()=>({type:`hidden`,name:e.name,value:e.modelValue}))),a=x(()=>T(e)),o=x(()=>({rounded:e.rounded,dense:e.dense,...a.value})),c=x(()=>e.options.map((t,n)=>{let{attrs:r,value:i,slot:a,...s}=t;return{slot:a,props:{key:n,"aria-pressed":i===e.modelValue?`true`:`false`,...r,...s,...o.value,disable:e.disable===!0||s.disable===!0,color:i===e.modelValue?u(s,`toggleColor`):u(s,`color`),textColor:i===e.modelValue?u(s,`toggleTextColor`):u(s,`textColor`),noCaps:u(s,`noCaps`)===!0,noWrap:u(s,`noWrap`)===!0,size:u(s,`size`),padding:u(s,`padding`),ripple:u(s,`ripple`),stack:u(s,`stack`)===!0,stretch:u(s,`stretch`)===!0,onClick(e){l(i,t,e)}}}}));function l(t,r,i){e.readonly!==!0&&(e.modelValue===t?e.clearable===!0&&(n(`update:modelValue`,null,null),n(`clear`)):n(`update:modelValue`,t,r),n(`click`,i))}function u(t,n){return t[n]===void 0?e[n]:t[n]}function d(){let n=c.value.map(e=>s(D,e.props,e.slot===void 0?void 0:t[e.slot]));return e.name!==void 0&&e.disable!==!0&&r.value===!0&&i(n,`push`),M(t.default,n)}return()=>s(J,{class:`q-btn-toggle`,...a.value,rounded:e.rounded,stretch:e.stretch,glossy:e.glossy,spread:e.spread},d)}}),Y=A({props:[`store`,`barStyle`,`verticalBarStyle`,`horizontalBarStyle`],setup(e){return()=>[s(`div`,{class:e.store.scroll.vertical.barClass.value,style:[e.barStyle,e.verticalBarStyle],"aria-hidden":`true`,onMousedown:e.store.onVerticalMousedown}),s(`div`,{class:e.store.scroll.horizontal.barClass.value,style:[e.barStyle,e.horizontalBarStyle],"aria-hidden":`true`,onMousedown:e.store.onHorizontalMousedown}),l(s(`div`,{ref:e.store.scroll.vertical.ref,class:e.store.scroll.vertical.thumbClass.value,style:e.store.scroll.vertical.style.value,"aria-hidden":`true`}),e.store.thumbVertDir),l(s(`div`,{ref:e.store.scroll.horizontal.ref,class:e.store.scroll.horizontal.thumbClass.value,style:e.store.scroll.horizontal.style.value,"aria-hidden":`true`}),e.store.thumbHorizDir)]}}),X=[`vertical`,`horizontal`],Z={vertical:{offset:`offsetY`,scroll:`scrollTop`,dir:`down`,dist:`y`},horizontal:{offset:`offsetX`,scroll:`scrollLeft`,dir:`right`,dist:`x`}},Q={prevent:!0,mouse:!0,mouseAllDir:!0},$=e=>e>=250?50:Math.ceil(e/5),re=A({name:`QScrollArea`,props:{...F,thumbStyle:Object,verticalThumbStyle:Object,horizontalThumbStyle:Object,barStyle:[Array,String,Object],verticalBarStyle:[Array,String,Object],horizontalBarStyle:[Array,String,Object],verticalOffset:{type:Array,default:[0,0]},horizontalOffset:{type:Array,default:[0,0]},contentStyle:[Array,String,Object],contentActiveStyle:[Array,String,Object],delay:{type:[String,Number],default:1e3},visible:{type:Boolean,default:null},tabindex:[String,Number],onScroll:Function},setup(t,{slots:r,emit:i}){let a=o(!1),c=o(!1),l=o(!1),u={vertical:o(0),horizontal:o(0)},d={vertical:{ref:o(null),position:o(0),size:o(0)},horizontal:{ref:o(null),position:o(0),size:o(0)}},{proxy:f}=p(),m=N(t,f.$q),h=null,g,v=o(null),y=x(()=>`q-scrollarea`+(m.value===!0?` q-scrollarea--dark`:``));Object.assign(u,{verticalInner:x(()=>u.vertical.value-t.verticalOffset[0]-t.verticalOffset[1]),horizontalInner:x(()=>u.horizontal.value-t.horizontalOffset[0]-t.horizontalOffset[1])}),d.vertical.percentage=x(()=>{let e=d.vertical.size.value-u.vertical.value;if(e<=0)return 0;let t=q(d.vertical.position.value/e,0,1);return Math.round(t*1e4)/1e4}),d.vertical.thumbHidden=x(()=>(t.visible===null?l.value:t.visible)!==!0&&a.value===!1&&c.value===!1||d.vertical.size.value<=u.vertical.value+1),d.vertical.thumbStart=x(()=>t.verticalOffset[0]+d.vertical.percentage.value*(u.verticalInner.value-d.vertical.thumbSize.value)),d.vertical.thumbSize=x(()=>Math.round(q(u.verticalInner.value*u.verticalInner.value/d.vertical.size.value,$(u.verticalInner.value),u.verticalInner.value))),d.vertical.style=x(()=>({...t.thumbStyle,...t.verticalThumbStyle,top:`${d.vertical.thumbStart.value}px`,height:`${d.vertical.thumbSize.value}px`,right:`${t.horizontalOffset[1]}px`})),d.vertical.thumbClass=x(()=>`q-scrollarea__thumb q-scrollarea__thumb--v absolute-right`+(d.vertical.thumbHidden.value===!0?` q-scrollarea__thumb--invisible`:``)),d.vertical.barClass=x(()=>`q-scrollarea__bar q-scrollarea__bar--v absolute-right`+(d.vertical.thumbHidden.value===!0?` q-scrollarea__bar--invisible`:``)),d.horizontal.percentage=x(()=>{let e=d.horizontal.size.value-u.horizontal.value;if(e<=0)return 0;let t=q(Math.abs(d.horizontal.position.value)/e,0,1);return Math.round(t*1e4)/1e4}),d.horizontal.thumbHidden=x(()=>(t.visible===null?l.value:t.visible)!==!0&&a.value===!1&&c.value===!1||d.horizontal.size.value<=u.horizontal.value+1),d.horizontal.thumbStart=x(()=>t.horizontalOffset[0]+d.horizontal.percentage.value*(u.horizontalInner.value-d.horizontal.thumbSize.value)),d.horizontal.thumbSize=x(()=>Math.round(q(u.horizontalInner.value*u.horizontalInner.value/d.horizontal.size.value,$(u.horizontalInner.value),u.horizontalInner.value))),d.horizontal.style=x(()=>({...t.thumbStyle,...t.horizontalThumbStyle,[f.$q.lang.rtl===!0?`right`:`left`]:`${d.horizontal.thumbStart.value}px`,width:`${d.horizontal.thumbSize.value}px`,bottom:`${t.verticalOffset[1]}px`})),d.horizontal.thumbClass=x(()=>`q-scrollarea__thumb q-scrollarea__thumb--h absolute-bottom`+(d.horizontal.thumbHidden.value===!0?` q-scrollarea__thumb--invisible`:``)),d.horizontal.barClass=x(()=>`q-scrollarea__bar q-scrollarea__bar--h absolute-bottom`+(d.horizontal.thumbHidden.value===!0?` q-scrollarea__bar--invisible`:``));let b=x(()=>d.vertical.thumbHidden.value===!0&&d.horizontal.thumbHidden.value===!0?t.contentStyle:t.contentActiveStyle);function S(){let e={};return X.forEach(t=>{let n=d[t];Object.assign(e,{[t+`Position`]:n.position.value,[t+`Percentage`]:n.percentage.value,[t+`Size`]:n.size.value,[t+`ContainerSize`]:u[t].value,[t+`ContainerInnerSize`]:u[t+`Inner`].value})}),e}let C=L(()=>{let e=S();e.ref=f,i(`scroll`,e)},0);function w(e,t,n){if(X.includes(e)===!1){console.error(`[QScrollArea]: wrong first param of setScrollPosition (vertical/horizontal)`);return}(e===`vertical`?k:j)(v.value,t,n)}function T({height:e,width:t}){let n=!1;u.vertical.value!==e&&(u.vertical.value=e,n=!0),u.horizontal.value!==t&&(u.horizontal.value=t,n=!0),n===!0&&P()}function E({position:e}){let t=!1;d.vertical.position.value!==e.top&&(d.vertical.position.value=e.top,t=!0),d.horizontal.position.value!==e.left&&(d.horizontal.position.value=e.left,t=!0),t===!0&&P()}function D({height:e,width:t}){d.horizontal.size.value!==t&&(d.horizontal.size.value=t,P()),d.vertical.size.value!==e&&(d.vertical.size.value=e,P())}function O(e,t){let n=d[t];if(e.isFirst===!0){if(n.thumbHidden.value===!0)return;g=n.position.value,c.value=!0}else if(c.value!==!0)return;e.isFinal===!0&&(c.value=!1);let r=Z[t],i=(n.size.value-u[t].value)/(u[t+`Inner`].value-n.thumbSize.value),a=e.distance[r.dist];F(g+(e.direction===r.dir?1:-1)*a*i,t)}function A(e,n){let r=d[n];if(r.thumbHidden.value!==!0){let i=n===`vertical`?t.verticalOffset[0]:t.horizontalOffset[0],a=e[Z[n].offset]-i,o=r.thumbStart.value-i;(a<o||a>o+r.thumbSize.value)&&F(q((a-r.thumbSize.value/2)/(u[n+`Inner`].value-r.thumbSize.value),0,1)*Math.max(0,r.size.value-u[n].value),n),r.ref.value!==null&&r.ref.value.dispatchEvent(new MouseEvent(e.type,e))}}function P(){a.value=!0,h!==null&&clearTimeout(h),h=setTimeout(()=>{h=null,a.value=!1},t.delay),t.onScroll!==void 0&&C()}function F(e,t){v.value[Z[t].scroll]=e}let I=null;function R(){I!==null&&clearTimeout(I),I=setTimeout(()=>{I=null,l.value=!0},f.$q.platform.is.ios?50:0)}function z(){I!==null&&(clearTimeout(I),I=null),l.value=!1}let B=null;n(()=>f.$q.lang.rtl,e=>{v.value!==null&&j(v.value,Math.abs(d.horizontal.position.value)*(e===!0?-1:1))}),ee(()=>{B={top:d.vertical.position.value,left:d.horizontal.position.value}}),e(()=>{if(B===null)return;let e=v.value;e!==null&&(j(e,B.left),k(e,B.top))}),_(C.cancel),Object.assign(f,{getScrollTarget:()=>v.value,getScroll:S,getScrollPosition:()=>({top:d.vertical.position.value,left:d.horizontal.position.value}),getScrollPercentage:()=>({top:d.vertical.percentage.value,left:d.horizontal.percentage.value}),setScrollPosition:w,setScrollPercentage(e,t,n){w(e,t*(d[e].size.value-u[e].value)*(e===`horizontal`&&f.$q.lang.rtl===!0?-1:1),n)}});let V={scroll:d,thumbVertDir:[[K,e=>{O(e,`vertical`)},void 0,{vertical:!0,...Q}]],thumbHorizDir:[[K,e=>{O(e,`horizontal`)},void 0,{horizontal:!0,...Q}]],onVerticalMousedown(e){A(e,`vertical`)},onHorizontalMousedown(e){A(e,`horizontal`)}};return()=>s(`div`,{class:y.value,onMouseenter:R,onMouseleave:z},[s(`div`,{ref:v,class:`q-scrollarea__container scroll relative-position fit hide-scrollbar`,tabindex:t.tabindex===void 0?void 0:t.tabindex},[s(`div`,{class:`q-scrollarea__content absolute`,style:b.value},M(r.default,[s(W,{debounce:0,onResize:D})])),s(G,{axis:`both`,onScroll:E})]),s(W,{debounce:0,onResize:T}),s(Y,{store:V,barStyle:t.barStyle,verticalBarStyle:t.verticalBarStyle,horizontalBarStyle:t.horizontalBarStyle})])}}),ie={class:`diff-viewer column full-height`},ae={class:`diff-header row items-center q-px-md q-py-sm no-wrap`},oe={class:`text-body1 text-weight-medium text-grey-3`},se={key:0,class:`text-caption text-grey-6 q-ml-md`,style:{"font-size":`11px`}},ce={class:`text-grey-7`},le={class:`text-green-4`},ue={key:1,class:`text-caption text-grey-5 q-ml-md ellipsis`,style:{"font-size":`11px`,"font-family":`'Roboto Mono', monospace`,"max-width":`400px`}},de={class:`row col no-wrap`,style:{"min-height":`0`}},fe={key:1,class:`text-caption text-grey-8 q-pa-sm`},pe=[`onClick`],me={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},he=[`onClick`],ge={class:`text-caption text-grey-3 ellipsis`,style:{"font-size":`11px`}},_e={class:`col column`,style:{"min-width":`0`,position:`relative`}},ve={key:0,class:`col column items-center justify-center`},ye={key:1,class:`col column items-center justify-center text-grey-8 text-caption`},be=H(C({__name:`DiffViewer`,props:{workspaceId:{}},emits:[`close`,`sendToChat`],setup(e,{emit:s}){let l=e,p=s,{t:ee}=y(),_=o([]),C=o(``),T=o(``),O=o(null),k=o(!1),A=o(!1),j=o(null),M=o(`side`),N=o(new Set),F=null,I=null,L=[];function R(e){let t=0;for(let n of e)n.isDir?t+=R(n.children):t++;return t}let H=x(()=>{let e=[];for(let t of _.value){let n=t.path.split(`/`),r=e;for(let e=0;e<n.length;e++){let i=n[e],a=e===n.length-1,o=n.slice(0,e+1).join(`/`),s=r.find(e=>e.name===i&&e.isDir===!a);s||(s={name:i,path:a?t.path:o,isDir:!a,status:a?t.status:void 0,children:[]},r.push(s)),r=s.children}}function t(e){e.sort((e,t)=>e.isDir===t.isDir?e.name.localeCompare(t.name):e.isDir?-1:1);for(let n of e)n.children.length>0&&t(n.children)}return t(e),e}),W=x(()=>{let e=[];function t(n,r){for(let i of n)i.isDir?(e.push({name:i.name,path:i.path,isDir:!0,depth:r,fileCount:R(i.children)}),N.value.has(i.path)||t(i.children,r+1)):e.push({name:i.name,path:i.path,isDir:!1,depth:r,status:i.status})}return t(H.value,0),e});function G(e){N.value.has(e)?N.value.delete(e):N.value.add(e)}async function K(){k.value=!0;try{let e=await fetch(`/api/workspaces/${l.workspaceId}/diff`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();_.value=t.files,C.value=t.sourceBranch??``,T.value=t.workingBranch??``}catch(e){console.error(`Failed to load diff files:`,e)}finally{k.value=!1}}async function q(e){if(j.value){A.value=!0;try{F||(self.MonacoEnvironment={getWorker(e,t){return t===`json`?new Worker(new URL(`/assets/json.worker-C9p7xCYk.js`,``+import.meta.url),{type:`module`}):t===`css`||t===`scss`||t===`less`?new Worker(new URL(`/assets/css.worker-D1piIYC4.js`,``+import.meta.url),{type:`module`}):t===`html`||t===`handlebars`||t===`razor`?new Worker(new URL(`/assets/html.worker-C4q4XMPn.js`,``+import.meta.url),{type:`module`}):t===`typescript`||t===`javascript`?new Worker(new URL(`/assets/ts.worker-Cj3zTgVE.js`,``+import.meta.url),{type:`module`}):new Worker(new URL(`/assets/editor.worker-CJ9iTmkr.js`,``+import.meta.url),{type:`module`})}},F=await z(()=>import(`./editor.main-By6Nm4Uo.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])),F.editor.defineTheme(`kobo-dark`,{base:`vs-dark`,inherit:!0,rules:[],colors:{"editor.background":`#1a1a2e`,"diffEditor.insertedTextBackground":`#22c55e20`,"diffEditor.removedTextBackground":`#ef444420`}}));let t=await fetch(`/api/workspaces/${l.workspaceId}/diff-file?path=${encodeURIComponent(e)}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json(),r={ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,vue:`html`,html:`html`,css:`css`,scss:`scss`,json:`json`,md:`markdown`,yaml:`yaml`,yml:`yaml`,sh:`shell`,sql:`sql`,py:`python`,rs:`rust`,go:`go`}[e.split(`.`).pop()??``]??`plaintext`;if(I){for(let e of L)e.dispose();L=[];let e=I.getModel();I.dispose(),I=null,e?.original?.dispose(),e?.modified?.dispose()}let i=F.editor.createModel(n.original??``,r),a=F.editor.createModel(n.modified??``,r);I=F.editor.createDiffEditor(j.value,{theme:`kobo-dark`,readOnly:!0,renderSideBySide:M.value===`side`,automaticLayout:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:12,lineHeight:18}),I.setModel({original:i,modified:a}),Y()}catch(e){console.error(`Failed to load file diff:`,e)}finally{A.value=!1}}}let J=o(!1);function Y(){if(!I)return;for(let e of L)e.dispose();L=[];let e=I.getModifiedEditor(),t=I.getOriginalEditor();for(let n of[e,t]){let e=n.onDidChangeCursorSelection(()=>{let e=n.getSelection();J.value=!!(e&&!e.isEmpty())});L.push(e)}}function X(){if(!(!I||!O.value))for(let e of[I.getModifiedEditor(),I.getOriginalEditor()]){let t=e.getSelection();if(t&&!t.isEmpty()){let n=e.getModel();if(!n)continue;let r=n.getValueInRange(t),i=e===I.getModifiedEditor()?`modified`:`original`;p(`sendToChat`,`\`\`\`\n// ${O.value} (${i}) L${t.startLineNumber}-L${t.endLineNumber}\n${r}\n\`\`\``);return}}}n(O,e=>{e&&q(e)}),n(M,()=>{I&&I.updateOptions({renderSideBySide:M.value===`side`})});function Z(e){switch(e){case`added`:return`add_circle`;case`deleted`:return`remove_circle`;case`renamed`:return`drive_file_rename_outline`;default:return`edit`}}function Q(e){switch(e){case`added`:return`#4ade80`;case`deleted`:return`#f87171`;case`renamed`:return`#60a5fa`;default:return`#f59e0b`}}return i(K),a(()=>{for(let e of L)e.dispose();if(L=[],I){let e=I.getModel();I.dispose(),I=null,e?.original?.dispose(),e?.modified?.dispose()}}),(e,n)=>(t(),v(`div`,ie,[m(`div`,ae,[u(E,{name:`difference`,size:`18px`,color:`indigo-4`,class:`q-mr-xs`}),m(`span`,oe,w(e.$t(`diff.title`)),1),u(U,{label:`${_.value.length}`,color:`grey-8`,"text-color":`grey-4`,class:`q-ml-sm`,style:{"font-size":`10px`}},null,8,[`label`]),C.value?(t(),v(`span`,se,[m(`span`,ce,w(C.value),1),u(E,{name:`arrow_forward`,size:`11px`,color:`grey-8`,class:`q-mx-xs`}),m(`span`,le,w(T.value),1)])):b(``,!0),O.value?(t(),v(`span`,ue,w(O.value),1)):b(``,!0),u(V),u(ne,{modelValue:M.value,"onUpdate:modelValue":n[0]||=e=>M.value=e,dense:``,"no-caps":``,size:`sm`,"toggle-color":`indigo-8`,color:`grey-9`,"text-color":`grey-5`,options:[{label:e.$t(`diff.side`),value:`side`},{label:e.$t(`diff.inline`),value:`inline`}],class:`q-mr-sm`},null,8,[`modelValue`,`options`]),u(D,{flat:``,round:``,dense:``,icon:`close`,color:`grey-5`,size:`sm`,onClick:n[1]||=e=>p(`close`)},{default:c(()=>[u(te,null,{default:c(()=>[g(w(e.$t(`tooltip.closeDiffViewer`)),1)]),_:1})]),_:1})]),u(P,{dark:``}),m(`div`,de,[u(re,{class:`diff-file-list q-pa-xs`,style:{width:`280px`,"min-width":`200px`,height:`100%`,"border-right":`1px solid #2a2a4a`}},{default:c(()=>[k.value?(t(),h(B,{key:0,size:`24px`,color:`grey-6`,class:`q-ma-md`})):_.value.length===0?(t(),v(`div`,fe,w(e.$t(`diff.noChanges`)),1)):(t(!0),v(f,{key:2},r(W.value,e=>(t(),v(f,{key:e.path},[e.isDir?(t(),v(`div`,{key:0,class:`diff-dir-item cursor-pointer`,style:S({paddingLeft:`${e.depth*12+4}px`}),onClick:t=>G(e.path)},[u(E,{name:N.value.has(e.path)?`chevron_right`:`expand_more`,size:`14px`,color:`grey-6`},null,8,[`name`]),u(E,{name:`folder`,size:`13px`,color:`amber-7`,class:`q-mx-xs`}),m(`span`,me,w(e.name),1),u(U,{label:e.fileCount,color:`grey-9`,"text-color":`grey-5`,class:`q-ml-xs`,style:{"font-size":`9px`}},null,8,[`label`])],12,pe)):(t(),v(`div`,{key:1,class:d([`diff-file-item cursor-pointer`,{"diff-file-item--active":O.value===e.path}]),style:S({paddingLeft:`${e.depth*12+20}px`}),onClick:t=>O.value=e.path},[u(E,{name:Z(e.status),size:`11px`,style:S({color:Q(e.status)}),class:`q-mr-xs`},null,8,[`name`,`style`]),m(`span`,ge,w(e.name),1)],14,he))],64))),128))]),_:1}),m(`div`,_e,[A.value?(t(),v(`div`,ve,[u(B,{size:`32px`,color:`indigo-4`})])):O.value?b(``,!0):(t(),v(`div`,ye,w(e.$t(`diff.selectFile`)),1)),m(`div`,{ref_key:`editorContainer`,ref:j,class:`col`,style:{"min-height":`0`}},null,512),J.value?(t(),h(D,{key:2,"no-caps":``,dense:``,size:`sm`,color:`primary`,icon:`chat`,label:e.$t(`diff.addToChat`),class:`send-to-chat-btn`,onClick:X},null,8,[`label`])):b(``,!0)])])]))}}),[[`__scopeId`,`data-v-4ed3860e`]]);export{be as default};
|