@dylanpiercey/work 0.0.157 → 0.0.159
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/index.mjs +466 -1934
- package/dist/public/assets/_BEMlWJ3i.js +1 -0
- package/dist/public/assets/_BF3jdOKL.js +1 -0
- package/dist/public/assets/_BN2MNMec.js +1 -0
- package/dist/public/assets/_BX85X6vL.js +1 -0
- package/dist/public/assets/_BgTyVBoz.js +1 -0
- package/dist/public/assets/_BtPnCFTI.js +1 -0
- package/dist/public/assets/_C62EU_76.js +1 -0
- package/dist/public/assets/_C9t1K6t0.js +1 -0
- package/dist/public/assets/_CV1AUMfT.js +1 -0
- package/dist/public/assets/_DONc62ot.js +1 -0
- package/dist/public/assets/_DQxAgIZ5.js +1 -0
- package/dist/public/assets/_DRrf0ps3.js +1 -0
- package/dist/public/assets/_DUwNzfo2.js +1 -0
- package/dist/public/assets/_DgrVjbbj.js +83 -0
- package/dist/public/assets/_DgrVjbbj.js.br +0 -0
- package/dist/public/assets/_DliuBq2F.js +1 -0
- package/dist/public/assets/_DrrcCvtP.js +1 -0
- package/dist/public/assets/_DrrcCvtP.js.br +0 -0
- package/dist/public/assets/_Dt9shJET.js +1 -0
- package/dist/public/assets/{_dHGVn24e.js → _DzlXAMSp.js} +45 -45
- package/dist/public/assets/_DzlXAMSp.js.br +0 -0
- package/dist/public/assets/_KbIm5gXb.js +1 -0
- package/dist/public/assets/_kP4m5eyY.js +1 -0
- package/dist/public/assets/_kRAx7xJD.js +1 -0
- package/dist/public/assets/_wGg-Flxh.js +1 -0
- package/dist/public/assets/{app-page-D2BI9pqy.css → app-page-DkJHV2Hb.css} +1 -1
- package/dist/public/assets/app-page-DkJHV2Hb.css.br +0 -0
- package/dist/public/assets/diff-view-B7Akkn43.js +2 -0
- package/dist/public/assets/{diff-view-CDR_rQOe.css → diff-view-D_kTcxOl.css} +1 -1
- package/dist/public/assets/diff-view-D_kTcxOl.css.br +0 -0
- package/dist/public/assets/{icon-arrow-down-xhBqf52S.css → icon-arrow-down-ptjlirxL.css} +1 -1
- package/dist/public/assets/icon-arrow-down-ptjlirxL.css.br +0 -0
- package/dist/public/assets/new-CjRAL7y8.js +1 -0
- package/dist/public/assets/settings-CjRAL7y8.js +1 -0
- package/dist/public/assets/w-CjRAL7y8.js +1 -0
- package/dist/public/assets/w._-CjRAL7y8.js +1 -0
- package/dist/public/assets/w._-DvPeuuNc.js +1 -0
- package/package.json +1 -1
- package/dist/public/assets/_2vYIuIib.js +0 -1
- package/dist/public/assets/_BB0LITVp.js +0 -1
- package/dist/public/assets/_BIJpL70W.js +0 -1
- package/dist/public/assets/_BQi9QWKd.js +0 -1
- package/dist/public/assets/_BcEuKTJx.js +0 -1
- package/dist/public/assets/_Bsl8llqw.js +0 -1
- package/dist/public/assets/_BxQ_-xPH.js +0 -1
- package/dist/public/assets/_C-2aR8XG.js +0 -1
- package/dist/public/assets/_C3ym7hxu.js +0 -1
- package/dist/public/assets/_CUAQigw_.js +0 -83
- package/dist/public/assets/_CUAQigw_.js.br +0 -0
- package/dist/public/assets/_Cf-9k3zD.js +0 -1
- package/dist/public/assets/_Cjgj-pBB.js +0 -1
- package/dist/public/assets/_Cjgj-pBB.js.br +0 -0
- package/dist/public/assets/_D66zCDkb.js +0 -1
- package/dist/public/assets/_DOiEoSai.js +0 -1
- package/dist/public/assets/_DfpiGKYM.js +0 -1
- package/dist/public/assets/_Jqsd_7oO.js +0 -1
- package/dist/public/assets/_SbAHZSQh.js +0 -1
- package/dist/public/assets/_YoOFMyGk.js +0 -1
- package/dist/public/assets/_dHGVn24e.js.br +0 -0
- package/dist/public/assets/_eF6YdkxU.js +0 -1
- package/dist/public/assets/_qEbnUCeE.js +0 -1
- package/dist/public/assets/_r5iIfsdp.js +0 -1
- package/dist/public/assets/app-page-D2BI9pqy.css.br +0 -0
- package/dist/public/assets/diff-view-CDR_rQOe.css.br +0 -0
- package/dist/public/assets/diff-view-CyDQspSd.js +0 -2
- package/dist/public/assets/icon-arrow-down-xhBqf52S.css.br +0 -0
- package/dist/public/assets/new-xKLJRIst.js +0 -1
- package/dist/public/assets/settings-xKLJRIst.js +0 -1
- package/dist/public/assets/w-xKLJRIst.js +0 -1
- package/dist/public/assets/w._-CaFh5fWn.js +0 -1
- package/dist/public/assets/w._-xKLJRIst.js +0 -1
package/dist/index.mjs
CHANGED
|
@@ -6697,13 +6697,13 @@ var _layout_default = _template("a", (input) => {
|
|
|
6697
6697
|
* A lost events socket alone does not count — polling keeps the app live,
|
|
6698
6698
|
* so the "Reconnecting…" pill stays quiet for bus-only blips. */
|
|
6699
6699
|
var reachable = true;
|
|
6700
|
-
var listeners = /* @__PURE__ */ new Set();
|
|
6700
|
+
var listeners$1 = /* @__PURE__ */ new Set();
|
|
6701
6701
|
/** Notify only on change: the pill's grace-period timer restarts on every
|
|
6702
6702
|
* `false` it hears, which would keep it permanently armed. */
|
|
6703
6703
|
function setReachable(next) {
|
|
6704
6704
|
if (reachable === next) return;
|
|
6705
6705
|
reachable = next;
|
|
6706
|
-
for (const fn of listeners) fn(next);
|
|
6706
|
+
for (const fn of listeners$1) fn(next);
|
|
6707
6707
|
}
|
|
6708
6708
|
//#endregion
|
|
6709
6709
|
//#region src/client/session.ts
|
|
@@ -6941,6 +6941,21 @@ function repoLabel(fullName) {
|
|
|
6941
6941
|
if (parts.length >= 3 && parts[0].includes(".") && parts[0] === primaryHost) return parts.slice(1).join("/");
|
|
6942
6942
|
return fullName;
|
|
6943
6943
|
}
|
|
6944
|
+
//#endregion
|
|
6945
|
+
//#region src/client/workspace-order.ts
|
|
6946
|
+
/** Can a workspace digit open it? A pending (restoring) row is in the list
|
|
6947
|
+
* but has nothing to mount yet, so it is skipped rather than given a number
|
|
6948
|
+
* it cannot use. */
|
|
6949
|
+
var openable = (ws) => ws.status === "active" && !ws.pending;
|
|
6950
|
+
/**
|
|
6951
|
+
* The workspaces ⌘/Ctrl+1–9 number, in the order the sidebar draws them.
|
|
6952
|
+
*
|
|
6953
|
+
* The nav sorts by name (see `side-nav`'s `sortedIds`) while the API hands
|
|
6954
|
+
* the shell its list newest-first, so indexing the raw array made the 3 key
|
|
6955
|
+
* open a different workspace than the row wearing the 3 badge. One list,
|
|
6956
|
+
* read by both the badge and the shortcut.
|
|
6957
|
+
*/
|
|
6958
|
+
var numbered = (all) => all.filter(openable).sort((a, b) => a.name.localeCompare(b.name));
|
|
6944
6959
|
var toastKind = {
|
|
6945
6960
|
error: "_bm",
|
|
6946
6961
|
warn: "_bn",
|
|
@@ -7170,6 +7185,7 @@ function setTheme(mode) {
|
|
|
7170
7185
|
//#region src/client/theme.ts
|
|
7171
7186
|
var LIGHT_CHROME = "#fafafa";
|
|
7172
7187
|
var DARK_CHROME = "#131316";
|
|
7188
|
+
var listeners = /* @__PURE__ */ new Set();
|
|
7173
7189
|
/** Force light/dark, or clear to follow the OS. The layout declares
|
|
7174
7190
|
* `:root[data-theme=…] { color-scheme: … }`; native `light-dark()` and the
|
|
7175
7191
|
* bundler's polyfill both key off that. */
|
|
@@ -7179,6 +7195,7 @@ function applyTheme(mode) {
|
|
|
7179
7195
|
if (mode === "system") root.removeAttribute("data-theme");
|
|
7180
7196
|
else root.setAttribute("data-theme", mode);
|
|
7181
7197
|
syncThemeColorMetas(mode, root.style.getPropertyValue("--accent").trim() || "");
|
|
7198
|
+
for (const listener of listeners) listener(mode);
|
|
7182
7199
|
}
|
|
7183
7200
|
/** Rebuild theme-color metas for the current force (or both media queries
|
|
7184
7201
|
* when following the system). Accent, when set, still paints the chrome. */
|
|
@@ -7252,19 +7269,19 @@ function applyInstance(inst) {
|
|
|
7252
7269
|
if (icon) icon.href = `/api/instance/icon${inst.accent ? `?v=${inst.accent.slice(1)}` : ""}`;
|
|
7253
7270
|
syncThemeColorMetas(theme(), inst.accent || "");
|
|
7254
7271
|
}
|
|
7255
|
-
var agentList = "_ed
|
|
7272
|
+
var agentList = "_ed _ck _d1 _eb";
|
|
7256
7273
|
var agentRow = "_fA _d2";
|
|
7257
7274
|
var toolGrid = "_fI _eb";
|
|
7258
7275
|
var toolRow = "_fJ _ec";
|
|
7259
7276
|
var themeSeg = "_f7 _be";
|
|
7260
|
-
var checkList = "_gC
|
|
7261
|
-
var list$2 = "_ed
|
|
7277
|
+
var checkList = "_gC _ci";
|
|
7278
|
+
var list$2 = "_ed _ck _d1 _eb";
|
|
7262
7279
|
var flatCardRow = "_ee _ec";
|
|
7263
7280
|
var pop$1 = "_fu __";
|
|
7264
7281
|
var spinner = "_fx _2 _G";
|
|
7265
7282
|
var busy = "_fk _fj";
|
|
7266
7283
|
var pop = "_fm __";
|
|
7267
|
-
var sectionCount = "
|
|
7284
|
+
var sectionCount = "_ch _N _O";
|
|
7268
7285
|
var iconBtn$1 = "_5 _l";
|
|
7269
7286
|
//#endregion
|
|
7270
7287
|
//#region src/tags/icons/icon-refresh.marko
|
|
@@ -7407,7 +7424,7 @@ var icon_agent_default = _template("L", (input) => {
|
|
|
7407
7424
|
n: $badge__closures
|
|
7408
7425
|
});
|
|
7409
7426
|
});
|
|
7410
|
-
var usageNote = "
|
|
7427
|
+
var usageNote = "_hc _X";
|
|
7411
7428
|
//#endregion
|
|
7412
7429
|
//#region src/tags/icons/icon-warning.marko
|
|
7413
7430
|
var icon_warning_default = _template("sb", (input) => {
|
|
@@ -7437,11 +7454,11 @@ var usage_meters_default = _template("H", (input) => {
|
|
|
7437
7454
|
const $scope0_reason = _scope_reason(), $sg__input_agent__OR__input_hideName = _serialize_guard($scope0_reason, 0), $sg__input_agent = _serialize_guard($scope0_reason, 1), $si__input_agent = _serialize_if($scope0_reason, 1), $sg__input_hideName = _serialize_guard($scope0_reason, 2), $si__input_agent__OR__input_hideName = _serialize_if($scope0_reason, 0);
|
|
7438
7455
|
const $scope0_id = _scope_id();
|
|
7439
7456
|
const agent = input.agent;
|
|
7440
|
-
_html(`<div${_attr_class(["
|
|
7457
|
+
_html(`<div${_attr_class(["_g7", { ["_g8"]: input.hideName }])}><div${_attr_class("_g9")}>`);
|
|
7441
7458
|
_if(() => {
|
|
7442
7459
|
if (!input.hideName) {
|
|
7443
7460
|
const $scope1_id = _scope_id();
|
|
7444
|
-
_html(`<strong${_attr_class("
|
|
7461
|
+
_html(`<strong${_attr_class("_hr")}>${_text_resume($scope1_id, "b", agent.agent, $sg__input_agent)}</strong>`);
|
|
7445
7462
|
$si__input_agent__OR__input_hideName && writeScope($scope1_id, { _: $si__input_agent && _scope_with_id($scope0_id) });
|
|
7446
7463
|
return 0;
|
|
7447
7464
|
}
|
|
@@ -7449,7 +7466,7 @@ var usage_meters_default = _template("H", (input) => {
|
|
|
7449
7466
|
_if(() => {
|
|
7450
7467
|
if (agent.plan && agent.plan.toLowerCase() !== agent.agent.toLowerCase()) {
|
|
7451
7468
|
const $scope2_id = _scope_id();
|
|
7452
|
-
_html(`<span${_attr_class("
|
|
7469
|
+
_html(`<span${_attr_class("_g_")}>${_text_resume($scope2_id, "b", agent.plan.replace(/^default_/, "").replaceAll("_", " "), $sg__input_agent)}</span>`);
|
|
7453
7470
|
$si__input_agent && writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
|
|
7454
7471
|
return 0;
|
|
7455
7472
|
}
|
|
@@ -7457,21 +7474,21 @@ var usage_meters_default = _template("H", (input) => {
|
|
|
7457
7474
|
_if(() => {
|
|
7458
7475
|
if (agent.stale_seconds != null) {
|
|
7459
7476
|
const $scope3_id = _scope_id();
|
|
7460
|
-
_html(`<span${_attr_class("
|
|
7477
|
+
_html(`<span${_attr_class("_ha")}${_attr("title", `${agent.note || "provider unreachable"}. Last cached numbers, ${duration(agent.stale_seconds * 1e3)} old`)}>`);
|
|
7461
7478
|
icon_warning_default({ size: 12 });
|
|
7462
7479
|
_html(` ${_text_resume($scope3_id, "c", duration(agent.stale_seconds * 1e3), $sg__input_agent * 2)} old</span>${_el_resume($scope3_id, "a", $sg__input_agent)}`);
|
|
7463
7480
|
$si__input_agent && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
|
|
7464
7481
|
return 0;
|
|
7465
7482
|
}
|
|
7466
7483
|
}, $scope0_id, "e", $sg__input_agent, $sg__input_agent, $sg__input_agent__OR__input_hideName, 0, 1);
|
|
7467
|
-
_html(`</div><div${_attr_class(["
|
|
7484
|
+
_html(`</div><div${_attr_class(["_hb", { ["_hs"]: agent.stale_seconds != null }])}>`);
|
|
7468
7485
|
_for_of(agent.windows || [], (win) => {
|
|
7469
7486
|
const $scope4_id = _scope_id();
|
|
7470
7487
|
const pct = pctText(win.used_percent);
|
|
7471
7488
|
const label = resetLabel(win.resets_at, agent.stale_seconds != null);
|
|
7472
|
-
const fillClass = win.used_percent >= 90 ? "
|
|
7473
|
-
const pctClass = win.used_percent >= 90 ? "
|
|
7474
|
-
_html(`<div${_attr_class("
|
|
7489
|
+
const fillClass = win.used_percent >= 90 ? "_hk" : win.used_percent >= 70 ? "_hj" : win.used_percent >= 40 ? "_hi" : "_hh";
|
|
7490
|
+
const pctClass = win.used_percent >= 90 ? "_hp" : win.used_percent >= 70 ? "_ho" : win.used_percent >= 40 ? "_hn" : "_hm";
|
|
7491
|
+
_html(`<div${_attr_class("_hd")}${_attr("title", `${win.window}: ${pct} used${win.resets_at ? `, resets ${new Date(win.resets_at).toLocaleString()}` : ""}`)}><span${_attr_class("_he")}>${_text_resume($scope4_id, "c", win.window, $sg__input_agent)}</span><span${_attr_class("_hf")}><span${_attr_class(["_hg", fillClass])}${_attr_style(`width:${Math.min(100, Math.max(2, win.used_percent))}%`)}></span>${_el_resume($scope4_id, "e", $sg__input_agent)}</span><span${_attr_class(["_hl", pctClass])}>${_text_resume($scope4_id, "g", pct, $sg__input_agent)}</span>${_el_resume($scope4_id, "f", $sg__input_agent)}<span${_attr_class("_hq")}>`);
|
|
7475
7492
|
_if(() => {
|
|
7476
7493
|
if (label) {
|
|
7477
7494
|
const $scope6_id = _scope_id();
|
|
@@ -7588,14 +7605,14 @@ var sso_auth_default = _template("D", (input) => {
|
|
|
7588
7605
|
localCode = null;
|
|
7589
7606
|
}
|
|
7590
7607
|
}, "D0", $scope0_id);
|
|
7591
|
-
_html(`<div${_attr_class(["
|
|
7608
|
+
_html(`<div${_attr_class(["_iz", input.class])}>`);
|
|
7592
7609
|
_for_of(input.items, (s) => {
|
|
7593
7610
|
const $scope1_id = _scope_id();
|
|
7594
|
-
_html(`<div${_attr_class("
|
|
7611
|
+
_html(`<div${_attr_class("_iA")}><span${_attr_class("_iC")}><span${_attr_class("_iD")}>${_text_resume($scope1_id, "d", s.org, $sg__input_items)}</span><span${_attr_class(["_iE", "_iF"])} title="Repos and PRs in this org stay hidden until the GitHub CLI is authorized for it.">SSO not authorized</span></span>`);
|
|
7595
7612
|
_if(() => {
|
|
7596
7613
|
if (!busy) {
|
|
7597
7614
|
const $scope2_id = _scope_id();
|
|
7598
|
-
_html(`<button type=button${_attr_class([btnSm, "_r"])} title="Re-authorize GitHub CLI (same device flow as Sign in)">Authorize</button>${_el_resume($scope2_id, "a")}<button type=button${_attr_class([btnSm, "
|
|
7615
|
+
_html(`<button type=button${_attr_class([btnSm, "_r"])} title="Re-authorize GitHub CLI (same device flow as Sign in)">Authorize</button>${_el_resume($scope2_id, "a")}<button type=button${_attr_class([btnSm, "_iG"])}${_attr("title", `Ignore ${s.org} — stop asking about it`)}>Ignore</button>${_el_resume($scope2_id, "b")}`);
|
|
7599
7616
|
_script($scope2_id, "D1");
|
|
7600
7617
|
writeScope($scope2_id, {});
|
|
7601
7618
|
return 0;
|
|
@@ -7610,13 +7627,13 @@ var sso_auth_default = _template("D", (input) => {
|
|
|
7610
7627
|
_if(() => {
|
|
7611
7628
|
if (localBusy && localCode) {
|
|
7612
7629
|
const $scope4_id = _scope_id();
|
|
7613
|
-
_html(`<div${_attr_class(["
|
|
7630
|
+
_html(`<div${_attr_class(["_iA", "_iH"])}><span${_attr_class("_G")}></span> Enter code <strong${_attr_class("_iI")}>${_text_resume($scope4_id, "d", localCode)}</strong> at <a${_attr("href", `https://${host}/login/device`)}${_attr_class("_iJ")}>${_text_resume($scope4_id, "f", host, _serialize_guard($scope0_reason, 3))}/login/device</a>${_el_resume($scope4_id, "e")}</div>`);
|
|
7614
7631
|
_script($scope4_id, "D2");
|
|
7615
7632
|
writeScope($scope4_id, {});
|
|
7616
7633
|
return 0;
|
|
7617
7634
|
} else if (localBusy) {
|
|
7618
7635
|
const $scope6_id = _scope_id();
|
|
7619
|
-
_html(`<div${_attr_class(["
|
|
7636
|
+
_html(`<div${_attr_class(["_iA", "_iH"])}><span${_attr_class("_G")}></span>Starting GitHub re-authorization…</div>`);
|
|
7620
7637
|
writeScope($scope6_id, {});
|
|
7621
7638
|
return 1;
|
|
7622
7639
|
}
|
|
@@ -7624,14 +7641,14 @@ var sso_auth_default = _template("D", (input) => {
|
|
|
7624
7641
|
_if(() => {
|
|
7625
7642
|
if (localError) {
|
|
7626
7643
|
const $scope5_id = _scope_id();
|
|
7627
|
-
_html(`<p${_attr_class(["
|
|
7644
|
+
_html(`<p${_attr_class(["_iA", "_iK"])}>${_text_resume($scope5_id, "b", localError)}</p>`);
|
|
7628
7645
|
writeScope($scope5_id, {});
|
|
7629
7646
|
return 0;
|
|
7630
7647
|
}
|
|
7631
7648
|
}, $scope0_id, "d", 1, 1, 1, 0, 1);
|
|
7632
7649
|
_for_of(skipped, (s) => {
|
|
7633
7650
|
const $scope3_id = _scope_id();
|
|
7634
|
-
_html(`<div${_attr_class(["
|
|
7651
|
+
_html(`<div${_attr_class(["_iA", "_iB"])}><span${_attr_class("_iC")}><span${_attr_class("_iD")}>${_text_resume($scope3_id, "d", s.org, $sg__input_skipped)}</span><span${_attr_class("_iE")}>Ignored</span></span><button type=button${_attr_class([btnSm, "_iG"])}${_attr("title", `Ask about ${s.org} again`)}>Undo</button>${_el_resume($scope3_id, "f")}</div>`);
|
|
7635
7652
|
_script($scope3_id, "D3");
|
|
7636
7653
|
writeScope($scope3_id, {
|
|
7637
7654
|
i: s?.org,
|
|
@@ -7718,11 +7735,11 @@ var skill_chip_default = _template("C", (input) => {
|
|
|
7718
7735
|
return 0;
|
|
7719
7736
|
}
|
|
7720
7737
|
}, $scope2_id, "c", $sg__input_hint, $sg__input_hint, $sg__input_hint__OR__input_description__OR__input_sourceUrl__OR__input_source__OR__input_noteLocal__OR__input_tags__OR__input_actions__OR__input_trailing, 0, 1);
|
|
7721
|
-
_html(`</button>${_el_resume($scope2_id, "a")}<div${_attr("id", popId)} popover=auto${_attr_class(pop)}><span${_attr_class(["
|
|
7738
|
+
_html(`</button>${_el_resume($scope2_id, "a")}<div${_attr("id", popId)} popover=auto${_attr_class(pop)}><span${_attr_class(["_cm", "_y"])}>${_text_resume($scope2_id, "f", input.name, $sg__input_name)}</span>`);
|
|
7722
7739
|
_if(() => {
|
|
7723
7740
|
if (input.description) {
|
|
7724
7741
|
const $scope4_id = _scope_id();
|
|
7725
|
-
_html(`<span${_attr_class("
|
|
7742
|
+
_html(`<span${_attr_class("_co")}${_attr("title", input.description)}>${_text_resume($scope4_id, "b", input.description, $sg__input_description)}</span>${_el_resume($scope4_id, "a", $sg__input_description)}`);
|
|
7726
7743
|
$si__input_busy__OR__input_description && _subscribe($si__input_description && $input_description__closures, writeScope($scope4_id, { _: _scope_with_id($scope2_id) }));
|
|
7727
7744
|
return 0;
|
|
7728
7745
|
}
|
|
@@ -7730,12 +7747,12 @@ var skill_chip_default = _template("C", (input) => {
|
|
|
7730
7747
|
_if(() => {
|
|
7731
7748
|
if (input.sourceUrl) {
|
|
7732
7749
|
const $scope5_id = _scope_id();
|
|
7733
|
-
_html(`<a${_attr_class(["
|
|
7750
|
+
_html(`<a${_attr_class(["_co", "_K"])}${_attr("href", input.sourceUrl)} target=_blank rel=noopener${_attr("title", `Open ${input.source} on GitHub`)}>${_text_resume($scope5_id, "b", input.source, $sg__input_source)}</a>${_el_resume($scope5_id, "a", _serialize_guard($scope0_reason, 6))}`);
|
|
7734
7751
|
$si__input_busy__OR__input_sourceUrl__OR__input_source__OR__input_noteLocal && _subscribe($si__input_source && $input_source__closures, _subscribe($si__input_sourceUrl && $input_sourceUrl__closures, writeScope($scope5_id, { _: _scope_with_id($scope2_id) })));
|
|
7735
7752
|
return 0;
|
|
7736
7753
|
} else if (input.source) {
|
|
7737
7754
|
const $scope6_id = _scope_id();
|
|
7738
|
-
_html(`<span${_attr_class("
|
|
7755
|
+
_html(`<span${_attr_class("_co")}>${_text_resume($scope6_id, "b", input.source, $sg__input_source)}</span>`);
|
|
7739
7756
|
$si__input_busy__OR__input_sourceUrl__OR__input_source__OR__input_noteLocal && _subscribe($si__input_source && $input_source__closures, writeScope($scope6_id, {
|
|
7740
7757
|
_: _scope_with_id($scope2_id),
|
|
7741
7758
|
Cs: $si__input_source && 1
|
|
@@ -7743,7 +7760,7 @@ var skill_chip_default = _template("C", (input) => {
|
|
|
7743
7760
|
return 1;
|
|
7744
7761
|
} else if (input.noteLocal) {
|
|
7745
7762
|
const $scope10_id = _scope_id();
|
|
7746
|
-
_html(`<span${_attr_class(["
|
|
7763
|
+
_html(`<span${_attr_class(["_co", "_x"])} title="Not installed from a source, so it cannot be updated">local only</span>`);
|
|
7747
7764
|
_serialize_if($scope0_reason, 8) && writeScope($scope10_id, {});
|
|
7748
7765
|
return 2;
|
|
7749
7766
|
}
|
|
@@ -7751,7 +7768,7 @@ var skill_chip_default = _template("C", (input) => {
|
|
|
7751
7768
|
_if(() => {
|
|
7752
7769
|
if (input.tags) {
|
|
7753
7770
|
const $scope7_id = _scope_id();
|
|
7754
|
-
_html(`<span${_attr_class("
|
|
7771
|
+
_html(`<span${_attr_class("_cn")}>`);
|
|
7755
7772
|
_dynamic_tag($scope7_id, "b", input.tags, {}, 0, 0, $sg__input_tags);
|
|
7756
7773
|
_html("</span>");
|
|
7757
7774
|
$si__input_busy__OR__input_tags && _subscribe($si__input_tags && $input_tags__closures, writeScope($scope7_id, { _: _scope_with_id($scope2_id) }));
|
|
@@ -7872,7 +7889,7 @@ var icon_moon_default = _template("jb", (input) => {
|
|
|
7872
7889
|
});
|
|
7873
7890
|
//#endregion
|
|
7874
7891
|
//#region src/tags/prompt-dialog.css.ts
|
|
7875
|
-
var promptDlg = "
|
|
7892
|
+
var promptDlg = "_ih _hL";
|
|
7876
7893
|
//#endregion
|
|
7877
7894
|
//#region src/tags/dialog-close.marko
|
|
7878
7895
|
var dialog_close_default = _template("f", (input) => {
|
|
@@ -7896,7 +7913,7 @@ var modal_view_default = _template("s", (input) => {
|
|
|
7896
7913
|
const { label, class: inputClass, open: _open, openChange: _openChange, dismissable: _dismissable, content, footer, closedby: _closedby, onCancel: _onCancel, onClose: _onClose, "aria-label": inputAriaLabel, "aria-labelledby": inputLabelledBy, ...htmlInput } = input;
|
|
7897
7914
|
const dismissable = input.dismissable !== false;
|
|
7898
7915
|
let open = input.open;
|
|
7899
|
-
_html(`<dialog${_attr_class(["
|
|
7916
|
+
_html(`<dialog${_attr_class(["_hK", inputClass])}${_attr("aria-labelledby", inputLabelledBy)}${inputLabelledBy ? _attr("aria-label", inputAriaLabel) : _attr("aria-label", inputAriaLabel || label)} closedby=${dismissable ? "any" : "none"}${_attrs_partial({
|
|
7900
7917
|
...htmlInput,
|
|
7901
7918
|
open: null
|
|
7902
7919
|
}, {
|
|
@@ -7906,20 +7923,20 @@ var modal_view_default = _template("s", (input) => {
|
|
|
7906
7923
|
closedby: 1,
|
|
7907
7924
|
"on-cancel": 1,
|
|
7908
7925
|
"on-close": 1
|
|
7909
|
-
}, "a", $scope0_id, "dialog")}><div${_attr_class("
|
|
7926
|
+
}, "a", $scope0_id, "dialog")}><div${_attr_class("_hN")}>`);
|
|
7910
7927
|
_dynamic_tag($scope0_id, "c", content, {}, 0, 0, _serialize_guard($scope0_reason, 6));
|
|
7911
7928
|
_html("</div>");
|
|
7912
7929
|
_if(() => {
|
|
7913
7930
|
if (footer) {
|
|
7914
7931
|
const $scope1_id = _scope_id();
|
|
7915
|
-
_html(`<form method=dialog${_attr_class("
|
|
7932
|
+
_html(`<form method=dialog${_attr_class("_hO")}>`);
|
|
7916
7933
|
_dynamic_tag($scope1_id, "b", footer.content, {}, 0, 0, _serialize_guard($scope0_reason, 7));
|
|
7917
7934
|
_html("</form>");
|
|
7918
7935
|
$si__input_openChange__OR__input_footer && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 7) && _scope_with_id($scope0_id) });
|
|
7919
7936
|
return 0;
|
|
7920
7937
|
} else if (input.openChange) {
|
|
7921
7938
|
const $scope2_id = _scope_id();
|
|
7922
|
-
_html(`<form method=dialog${_attr_class("
|
|
7939
|
+
_html(`<form method=dialog${_attr_class("_hO")}>`);
|
|
7923
7940
|
dialog_close_default({
|
|
7924
7941
|
class: ["_q", "_r"],
|
|
7925
7942
|
content: _content("s0", () => {
|
|
@@ -8003,7 +8020,7 @@ var prompt_dialog_default = _template("v", (input) => {
|
|
|
8003
8020
|
content: _content("v7", () => {
|
|
8004
8021
|
_scope_reason();
|
|
8005
8022
|
const $scope2_id = _scope_id();
|
|
8006
|
-
_html(`<h2${_attr_class("
|
|
8023
|
+
_html(`<h2${_attr_class("_hM")}${_attr("id", titleId)}>${_text_resume($scope2_id, "b", input.label, $sg__input_label)}</h2><input${_attr_input_value($scope2_id, "c", value, _resume((_new_value) => {
|
|
8007
8024
|
value = _new_value;
|
|
8008
8025
|
}, "v0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "c")}`);
|
|
8009
8026
|
_script($scope2_id, "v5");
|
|
@@ -8618,7 +8635,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8618
8635
|
return 0;
|
|
8619
8636
|
}
|
|
8620
8637
|
}, $scope0_id, "f", 1, 1, 1, 0, 1);
|
|
8621
|
-
_html(`<section${_attr_class("
|
|
8638
|
+
_html(`<section${_attr_class("_cf")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_cg")}><h2${_attr("id", agentsId)}${_attr_class("_ct")}>Agents</h2><div${_attr_class("_z")}></div><label${_attr_class("_fB")}><span${_attr_class("_X")}>Default</span><span${_attr_class("_o")}>`);
|
|
8622
8639
|
_attr_select_value($scope0_id, "n", input$3.preferred, _resume(function(v) {
|
|
8623
8640
|
setPreferred(v);
|
|
8624
8641
|
}, "y2", $scope0_id), () => {
|
|
@@ -8643,7 +8660,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8643
8660
|
agent: a.id,
|
|
8644
8661
|
size: 18
|
|
8645
8662
|
});
|
|
8646
|
-
_html(`<div${_attr_class("
|
|
8663
|
+
_html(`<div${_attr_class("_cl")}><span${_attr_class("_cn")}><span${_attr_class("_cm")}>${_text_resume($scope1_id, "g", a.label)}</span>`);
|
|
8647
8664
|
_if(() => {
|
|
8648
8665
|
if (lone && input$3.preferred === lone.id) {
|
|
8649
8666
|
const $scope81_id = _scope_id();
|
|
@@ -8661,7 +8678,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8661
8678
|
return 0;
|
|
8662
8679
|
} else if (!a.installed) {
|
|
8663
8680
|
const $scope82_id = _scope_id();
|
|
8664
|
-
_html(`<span${_attr_class("
|
|
8681
|
+
_html(`<span${_attr_class("_co")}>Not installed</span>`);
|
|
8665
8682
|
writeScope($scope82_id, {});
|
|
8666
8683
|
return 1;
|
|
8667
8684
|
}
|
|
@@ -8779,17 +8796,17 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8779
8796
|
_if(() => {
|
|
8780
8797
|
if (!usage && families.length) {
|
|
8781
8798
|
const $scope88_id = _scope_id();
|
|
8782
|
-
_html(`<p${_attr_class("
|
|
8799
|
+
_html(`<p${_attr_class("_cq")}><span${_attr_class("_G")}></span> Loading usage…</p>`);
|
|
8783
8800
|
writeScope($scope88_id, {});
|
|
8784
8801
|
return 0;
|
|
8785
8802
|
} else if (usage?.error) {
|
|
8786
8803
|
const $scope8_id = _scope_id();
|
|
8787
|
-
_html(`<p${_attr_class("
|
|
8804
|
+
_html(`<p${_attr_class("_cq")}>${_text_resume($scope8_id, "b", usage.error)}</p>`);
|
|
8788
8805
|
writeScope($scope8_id, {});
|
|
8789
8806
|
return 1;
|
|
8790
8807
|
}
|
|
8791
8808
|
}, $scope0_id, "r", 1, 1, 1, 0, 1);
|
|
8792
|
-
_html(`</section><section${_attr_class("
|
|
8809
|
+
_html(`</section><section${_attr_class("_cf")}${_attr("aria-labelledby", githubId)}><div${_attr_class("_cg")}><h2${_attr("id", githubId)}${_attr_class("_ct")}>GitHub</h2>`);
|
|
8793
8810
|
_if(() => {
|
|
8794
8811
|
if (setup && !addingHost) {
|
|
8795
8812
|
const $scope42_id = _scope_id();
|
|
@@ -8831,7 +8848,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8831
8848
|
return 0;
|
|
8832
8849
|
}
|
|
8833
8850
|
}, $scope0_id, "w", 1, 1, 1, 0, 1);
|
|
8834
|
-
_html(`</div><div${_attr_class(["
|
|
8851
|
+
_html(`</div><div${_attr_class(["_ck", "_d1"])}>`);
|
|
8835
8852
|
_for_of(setup?.github || [], (h) => {
|
|
8836
8853
|
const $scope6_id = _scope_id();
|
|
8837
8854
|
const $for_content3__h_host__closures = /* @__PURE__ */ new Set();
|
|
@@ -8843,7 +8860,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8843
8860
|
size: 18,
|
|
8844
8861
|
class: "_fT"
|
|
8845
8862
|
});
|
|
8846
|
-
_html(`<div${_attr_class("
|
|
8863
|
+
_html(`<div${_attr_class("_cl")}><span${_attr_class("_cn")}><span${_attr_class("_cm")}>${_text_resume($scope6_id, "g", h.host)}</span>`);
|
|
8847
8864
|
_if(() => {
|
|
8848
8865
|
if (h.isEnterprise) {
|
|
8849
8866
|
const $scope91_id = _scope_id();
|
|
@@ -8856,12 +8873,12 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8856
8873
|
_if(() => {
|
|
8857
8874
|
if (busy) {
|
|
8858
8875
|
const $scope13_id = _scope_id();
|
|
8859
|
-
_html(`<span${_attr_class(["
|
|
8876
|
+
_html(`<span${_attr_class(["_co", "_fU"])}><span${_attr_class("_G")}></span>${_text_resume($scope13_id, "c", authCodes.has(h.host) ? "Waiting for the browser…" : active.get(h.host) || "Starting…")}</span>`);
|
|
8860
8877
|
_subscribe($authCodes__closures, _subscribe($active__closures, writeScope($scope13_id, { Ch2: 1 })));
|
|
8861
8878
|
return 0;
|
|
8862
8879
|
} else if (h.authed) {
|
|
8863
8880
|
const $scope89_id = _scope_id();
|
|
8864
|
-
_html(`<span${_attr_class(["
|
|
8881
|
+
_html(`<span${_attr_class(["_co", "_fU"])}>`);
|
|
8865
8882
|
icon_check_default({
|
|
8866
8883
|
size: 12,
|
|
8867
8884
|
class: "_fV"
|
|
@@ -8872,7 +8889,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8872
8889
|
} else if (h.error) {
|
|
8873
8890
|
const $scope90_id = _scope_id();
|
|
8874
8891
|
_html(`<span${_attr_class([
|
|
8875
|
-
"
|
|
8892
|
+
"_co",
|
|
8876
8893
|
"_fU",
|
|
8877
8894
|
"_fW"
|
|
8878
8895
|
])}>`);
|
|
@@ -8882,7 +8899,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8882
8899
|
return 2;
|
|
8883
8900
|
} else {
|
|
8884
8901
|
const $scope92_id = _scope_id();
|
|
8885
|
-
_html(`<span${_attr_class(["
|
|
8902
|
+
_html(`<span${_attr_class(["_co", "_fU"])}>Not signed in</span>`);
|
|
8886
8903
|
writeScope($scope92_id, {});
|
|
8887
8904
|
return 3;
|
|
8888
8905
|
}
|
|
@@ -8913,7 +8930,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8913
8930
|
if (h.isEnterprise) {
|
|
8914
8931
|
const $scope33_id = _scope_id();
|
|
8915
8932
|
_html(`<button${_attr_class([
|
|
8916
|
-
"
|
|
8933
|
+
"_cp",
|
|
8917
8934
|
"_8",
|
|
8918
8935
|
"_9",
|
|
8919
8936
|
{ ["_s"]: confirmingRemove === h.host }
|
|
@@ -8993,12 +9010,12 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
8993
9010
|
_if(() => {
|
|
8994
9011
|
if (setup && !setup.github.length) {
|
|
8995
9012
|
const $scope95_id = _scope_id();
|
|
8996
|
-
_html(`<p${_attr_class("
|
|
9013
|
+
_html(`<p${_attr_class("_cq")}>Install the GitHub CLI below to sign in.</p>`);
|
|
8997
9014
|
writeScope($scope95_id, {});
|
|
8998
9015
|
return 0;
|
|
8999
9016
|
}
|
|
9000
9017
|
}, $scope0_id, "y", 1, 1, 1, 0, 1);
|
|
9001
|
-
_html(`</section><section${_attr_class("
|
|
9018
|
+
_html(`</section><section${_attr_class("_cf")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_cg")}><h2${_attr("id", machineId)}${_attr_class("_ct")}>Machine</h2></div><div${_attr_class(["_ck", "_d1"])}><div${_attr_class(["_d2", "_d3"])}><div${_attr_class(["_d4", { ["_d5"]: skillsOpen }])}><button${_attr_class("_d6")} aria-expanded=true>`);
|
|
9002
9019
|
_set_serialize_reason(1);
|
|
9003
9020
|
const $childScope10 = _peek_scope_id();
|
|
9004
9021
|
icon_chevron_right_default({
|
|
@@ -9064,7 +9081,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9064
9081
|
_if(() => {
|
|
9065
9082
|
if (looksLikeSource(skillQuery)) {
|
|
9066
9083
|
const $scope15_id = _scope_id();
|
|
9067
|
-
_html(`<li${_attr_class(toolRow)}><div${_attr_class("
|
|
9084
|
+
_html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["_fL", "_y"])}>${_text_resume($scope15_id, "d", skillQuery.trim())}</span>`);
|
|
9068
9085
|
_if(() => {
|
|
9069
9086
|
if (active.has(skillQuery.trim())) {
|
|
9070
9087
|
const $scope16_id = _scope_id();
|
|
@@ -9076,7 +9093,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9076
9093
|
return 0;
|
|
9077
9094
|
} else {
|
|
9078
9095
|
const $scope99_id = _scope_id();
|
|
9079
|
-
_html(`<span${_attr_class("
|
|
9096
|
+
_html(`<span${_attr_class("_co")}>Add straight from this source</span>`);
|
|
9080
9097
|
writeScope($scope99_id, {});
|
|
9081
9098
|
return 1;
|
|
9082
9099
|
}
|
|
@@ -9099,7 +9116,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9099
9116
|
_for_of(skillHits || [], (h) => {
|
|
9100
9117
|
const $scope17_id = _scope_id();
|
|
9101
9118
|
const $for_content4__h_installs__closures = /* @__PURE__ */ new Set();
|
|
9102
|
-
_html(`<li${_attr_class(toolRow)}><div${_attr_class("
|
|
9119
|
+
_html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["_fL", "_y"])}>${_text_resume($scope17_id, "d", h.name)}</span>`);
|
|
9103
9120
|
_if(() => {
|
|
9104
9121
|
if (active.has(h.skillId)) {
|
|
9105
9122
|
const $scope18_id = _scope_id();
|
|
@@ -9108,7 +9125,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9108
9125
|
return 0;
|
|
9109
9126
|
} else {
|
|
9110
9127
|
const $scope100_id = _scope_id();
|
|
9111
|
-
_html(`<span${_attr_class("
|
|
9128
|
+
_html(`<span${_attr_class("_co")}${_attr("title", h.source)}>${_text_resume($scope100_id, "b", h.source)}</span>${_el_resume($scope100_id, "a")}`);
|
|
9112
9129
|
writeScope($scope100_id, {});
|
|
9113
9130
|
return 1;
|
|
9114
9131
|
}
|
|
@@ -9175,12 +9192,12 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9175
9192
|
_if(() => {
|
|
9176
9193
|
if (skills && !skills.agents.length) {
|
|
9177
9194
|
const $scope103_id = _scope_id();
|
|
9178
|
-
_html(`<p${_attr_class("
|
|
9195
|
+
_html(`<p${_attr_class("_cq")}>No agent CLIs are installed, so a skill would have nowhere to go. Install one from Agents above.</p>`);
|
|
9179
9196
|
writeScope($scope103_id, {});
|
|
9180
9197
|
return 0;
|
|
9181
9198
|
} else if (skills && !skills.available) {
|
|
9182
9199
|
const $scope20_id = _scope_id();
|
|
9183
|
-
_html(`<p${_attr_class("
|
|
9200
|
+
_html(`<p${_attr_class("_cq")}>The skills CLI is not installed, so skills can be listed but not added or removed. <button${_attr_class(btnSm)}${_attr("disabled", active.has("skills"))}>${_text_resume($scope20_id, "c", active.has("skills") ? "Installing…" : "Install it")}</button>${_el_resume($scope20_id, "b")}</p>`);
|
|
9184
9201
|
_script($scope20_id, "y60");
|
|
9185
9202
|
_subscribe($active__closures, writeScope($scope20_id, { Ch2: 6 }));
|
|
9186
9203
|
return 1;
|
|
@@ -9262,7 +9279,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9262
9279
|
_if(() => {
|
|
9263
9280
|
if (skills && !skills.global.length && skills.available && skills.agents.length) {
|
|
9264
9281
|
const $scope108_id = _scope_id();
|
|
9265
|
-
_html(`<p${_attr_class("
|
|
9282
|
+
_html(`<p${_attr_class("_cq")}>No skills installed. Search below, or paste an owner/repo.</p>`);
|
|
9266
9283
|
writeScope($scope108_id, {});
|
|
9267
9284
|
return 0;
|
|
9268
9285
|
}
|
|
@@ -9354,7 +9371,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9354
9371
|
}, $scope24_id, "i", 1, 1, 1, 0, 1);
|
|
9355
9372
|
_for_of(hits || [], (h) => {
|
|
9356
9373
|
const $scope25_id = _scope_id();
|
|
9357
|
-
_html(`<li${_attr_class(toolRow)}><div${_attr_class("
|
|
9374
|
+
_html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["_fL", "_y"])}>${_text_resume($scope25_id, "d", h.name)}</span>`);
|
|
9358
9375
|
_if(() => {
|
|
9359
9376
|
if (active.has(h.name)) {
|
|
9360
9377
|
const $scope26_id = _scope_id();
|
|
@@ -9363,7 +9380,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9363
9380
|
return 0;
|
|
9364
9381
|
} else if (h.description) {
|
|
9365
9382
|
const $scope112_id = _scope_id();
|
|
9366
|
-
_html(`<span${_attr_class("
|
|
9383
|
+
_html(`<span${_attr_class("_co")}${_attr("title", h.description)}>${_text_resume($scope112_id, "b", h.description)}</span>${_el_resume($scope112_id, "a")}`);
|
|
9367
9384
|
writeScope($scope112_id, {});
|
|
9368
9385
|
return 1;
|
|
9369
9386
|
}
|
|
@@ -9412,7 +9429,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9412
9429
|
_if(() => {
|
|
9413
9430
|
if (setup && !setup.mise.installed) {
|
|
9414
9431
|
const $scope27_id = _scope_id();
|
|
9415
|
-
_html(`<p${_attr_class("
|
|
9432
|
+
_html(`<p${_attr_class("_cq")}>mise is not installed. It provides every tool below. <button${_attr_class(btnSm)}${_attr("disabled", active.has("mise"))}>${_text_resume($scope27_id, "c", active.has("mise") ? "Installing…" : "Install mise")}</button>${_el_resume($scope27_id, "b")}</p>`);
|
|
9416
9433
|
_script($scope27_id, "y71");
|
|
9417
9434
|
_subscribe($active__closures, writeScope($scope27_id, { Ch2: 10 }));
|
|
9418
9435
|
return 0;
|
|
@@ -9643,7 +9660,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9643
9660
|
label: "Dark"
|
|
9644
9661
|
}
|
|
9645
9662
|
];
|
|
9646
|
-
_html(`</div></div></section><section${_attr_class("
|
|
9663
|
+
_html(`</div></div></section><section${_attr_class("_cf")}${_attr("aria-labelledby", appearanceId)}><div${_attr_class("_cg")}><h2${_attr("id", appearanceId)}${_attr_class("_ct")}>Appearance</h2></div><div${_attr_class(["_ck", "_f3"])}><div${_attr_class("_ge")}><img${_attr_class("_gf")}${_attr("src", `/api/instance/icon${accent ? `?v=${accent.slice(1)}` : ""}`)} alt aria-hidden=true>${_el_resume($scope0_id, "av", $sg__input_instance_accent)}<span${_attr_class("_gg")}><span${_attr_class("_gh")}>${_text_resume($scope0_id, "ay", input$3.instance.name || "work", _serialize_guard($scope0_reason, 7))}</span><span${_attr_class("_gi")}>Sidebar, tab title, home-screen icon and notifications</span></span></div><label${_attr_class("_f4")}><span${_attr_class("_f5")}>Name</span><input${_attr_input_value($scope0_id, "b2", input$3.instance.name, _resume(function(v) {
|
|
9647
9664
|
setInstance({ name: v });
|
|
9648
9665
|
}, "y4", $scope0_id))}${_attr_class(["_Z", "_f6"])} type=text placeholder=work maxlength=32 autocomplete=off spellcheck=false>${_el_resume($scope0_id, "b2")}</label><div${_attr_class("_f4")}><span${_attr_class("_f5")}>Theme</span><span${_attr_class("_f8")}><span${_attr_class(themeSeg)} role=radiogroup aria-label="Color theme">`);
|
|
9649
9666
|
_for_of(themeOpts, (opt) => {
|
|
@@ -9741,7 +9758,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9741
9758
|
return 1;
|
|
9742
9759
|
}
|
|
9743
9760
|
}, $scope0_id, "bg", $sg__input_instance_accent, $sg__input_instance_accent, 1, 0, 1);
|
|
9744
|
-
_html(`</label>${_el_resume($scope0_id, "be", $sg__input_instance_accent)}</span></div></div></section><section${_attr_class("
|
|
9761
|
+
_html(`</label>${_el_resume($scope0_id, "be", $sg__input_instance_accent)}</span></div></div></section><section${_attr_class("_cf")}${_attr("aria-labelledby", backupId)}><div${_attr_class("_cg")}><h2${_attr("id", backupId)}${_attr_class("_ct")}>Backup</h2></div><div${_attr_class(["_ck", "_d1"])}><div${_attr_class("_d2")}><div${_attr_class("_gr")}><div${_attr_class("_cl")}>`);
|
|
9745
9762
|
_if(() => {
|
|
9746
9763
|
if (backupBusy === "preflight") {
|
|
9747
9764
|
const $scope65_id = _scope_id();
|
|
@@ -9750,7 +9767,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9750
9767
|
return 0;
|
|
9751
9768
|
} else {
|
|
9752
9769
|
const $scope133_id = _scope_id();
|
|
9753
|
-
_html(`<span${_attr_class("
|
|
9770
|
+
_html(`<span${_attr_class("_co")}>Save workspaces, settings, skills and tool pins to a file. Code stays on GitHub.</span>`);
|
|
9754
9771
|
writeScope($scope133_id, {});
|
|
9755
9772
|
return 1;
|
|
9756
9773
|
}
|
|
@@ -9789,7 +9806,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9789
9806
|
_for_of(preflight.workspaces, (w) => {
|
|
9790
9807
|
const $scope135_id = _scope_id();
|
|
9791
9808
|
const $for_content18__w_name__closures = /* @__PURE__ */ new Set();
|
|
9792
|
-
_html(`<li${_attr_class("_gw")}><span${_attr_class("
|
|
9809
|
+
_html(`<li${_attr_class("_gw")}><span${_attr_class("_cm")}>${_text_resume($scope135_id, "c", w.name)}</span><ul${_attr_class("_gv")}>`);
|
|
9793
9810
|
_for_of(w.repos, (r) => {
|
|
9794
9811
|
const $scope136_id = _scope_id();
|
|
9795
9812
|
const $for_content19__r_more__closures = /* @__PURE__ */ new Set();
|
|
@@ -9866,7 +9883,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9866
9883
|
return 0;
|
|
9867
9884
|
}
|
|
9868
9885
|
}, $scope0_id, "bp", 1, 1, 1, 0, 1);
|
|
9869
|
-
_html(`</div><div${_attr_class("_d2")}><div${_attr_class("_gr")}><div${_attr_class("
|
|
9886
|
+
_html(`</div><div${_attr_class("_d2")}><div${_attr_class("_gr")}><div${_attr_class("_cl")}>`);
|
|
9870
9887
|
_if(() => {
|
|
9871
9888
|
if (backupBusy === "restore") {
|
|
9872
9889
|
const $scope66_id = _scope_id();
|
|
@@ -9875,12 +9892,12 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9875
9892
|
return 0;
|
|
9876
9893
|
} else if (restoreDone) {
|
|
9877
9894
|
const $scope74_id = _scope_id();
|
|
9878
|
-
_html(`<span${_attr_class("
|
|
9895
|
+
_html(`<span${_attr_class("_co")}>${_text_resume($scope74_id, "b", restoreDone)}</span>`);
|
|
9879
9896
|
writeScope($scope74_id, {});
|
|
9880
9897
|
return 1;
|
|
9881
9898
|
} else {
|
|
9882
9899
|
const $scope144_id = _scope_id();
|
|
9883
|
-
_html(`<span${_attr_class("
|
|
9900
|
+
_html(`<span${_attr_class("_co")}>Load a backup file. Repos clone in the background.</span>`);
|
|
9884
9901
|
writeScope($scope144_id, {});
|
|
9885
9902
|
return 2;
|
|
9886
9903
|
}
|
|
@@ -9906,7 +9923,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9906
9923
|
_html(`<ul${_attr_class(checkList)}>`);
|
|
9907
9924
|
_for_of(preview.workspaces, (w) => {
|
|
9908
9925
|
const $scope71_id = _scope_id();
|
|
9909
|
-
_html(`<li><label${_attr_class(["_gD", { ["_gF"]: w.exists || !!w.unknownHost }])}><input${_attr_input_checked($scope71_id, "b", restoreWs.has(w.id))}${_attr_class("_gE")} type=checkbox${_attr("disabled", w.exists || !!w.unknownHost)}>${_el_resume($scope71_id, "b")}<span${_attr_class("
|
|
9926
|
+
_html(`<li><label${_attr_class(["_gD", { ["_gF"]: w.exists || !!w.unknownHost }])}><input${_attr_input_checked($scope71_id, "b", restoreWs.has(w.id))}${_attr_class("_gE")} type=checkbox${_attr("disabled", w.exists || !!w.unknownHost)}>${_el_resume($scope71_id, "b")}<span${_attr_class("_cl")}><span${_attr_class("_cn")}><span${_attr_class("_cm")}>${_text_resume($scope71_id, "f", w.name)}</span>`);
|
|
9910
9927
|
_if(() => {
|
|
9911
9928
|
if (w.status === "archived") {
|
|
9912
9929
|
const $scope148_id = _scope_id();
|
|
@@ -9928,7 +9945,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9928
9945
|
return 1;
|
|
9929
9946
|
}
|
|
9930
9947
|
}, $scope71_id, "h", 1, 1, 1, 0, 1);
|
|
9931
|
-
_html(`</span><span${_attr_class("
|
|
9948
|
+
_html(`</span><span${_attr_class("_co")}>${_text_resume($scope71_id, "j", w.repos.join(", ") || "no repos")}</span></span></label>${_el_resume($scope71_id, "a")}</li>`);
|
|
9932
9949
|
_script($scope71_id, "y83");
|
|
9933
9950
|
_subscribe($restoreWs__closures, writeScope($scope71_id, {
|
|
9934
9951
|
n: w?.unknownHost,
|
|
@@ -9939,7 +9956,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9939
9956
|
return 0;
|
|
9940
9957
|
} else {
|
|
9941
9958
|
const $scope146_id = _scope_id();
|
|
9942
|
-
_html(`<p${_attr_class("
|
|
9959
|
+
_html(`<p${_attr_class("_cq")}>No workspaces in this file.</p>`);
|
|
9943
9960
|
writeScope($scope146_id, {});
|
|
9944
9961
|
return 1;
|
|
9945
9962
|
}
|
|
@@ -9979,7 +9996,7 @@ var settings_page_default = _template("y", (input$3) => {
|
|
|
9979
9996
|
_if(() => {
|
|
9980
9997
|
if (p.total) {
|
|
9981
9998
|
const $scope73_id = _scope_id();
|
|
9982
|
-
_html(`<li><label${_attr_class(["_gD", { ["_gF"]: !p.missing.length && p.key !== "settings" }])}><input${_attr_input_checked($scope73_id, "b", restoreParts[p.key])}${_attr_class("_gE")} type=checkbox${_attr("disabled", !p.missing.length && p.key !== "settings")}>${_el_resume($scope73_id, "b")}<span${_attr_class("
|
|
9999
|
+
_html(`<li><label${_attr_class(["_gD", { ["_gF"]: !p.missing.length && p.key !== "settings" }])}><input${_attr_input_checked($scope73_id, "b", restoreParts[p.key])}${_attr_class("_gE")} type=checkbox${_attr("disabled", !p.missing.length && p.key !== "settings")}>${_el_resume($scope73_id, "b")}<span${_attr_class("_cl")}><span${_attr_class("_cm")}>${_text_resume($scope73_id, "e", p.label)}</span><span${_attr_class("_co")}>`);
|
|
9983
10000
|
_if(() => {
|
|
9984
10001
|
if (p.key === "settings") {
|
|
9985
10002
|
const $scope145_id = _scope_id();
|
|
@@ -10322,12 +10339,12 @@ var ARM_MS = 3500;
|
|
|
10322
10339
|
function disarmLater(fn) {
|
|
10323
10340
|
return setTimeout(fn, ARM_MS);
|
|
10324
10341
|
}
|
|
10325
|
-
var prChip = "
|
|
10326
|
-
var portChip = "
|
|
10342
|
+
var prChip = "_hv _u _hu";
|
|
10343
|
+
var portChip = "_hw _u _hu";
|
|
10327
10344
|
var prState = {
|
|
10328
|
-
open: "
|
|
10329
|
-
merged: "
|
|
10330
|
-
closed: "
|
|
10345
|
+
open: "_hA",
|
|
10346
|
+
merged: "_hB",
|
|
10347
|
+
closed: "_hC"
|
|
10331
10348
|
};
|
|
10332
10349
|
//#endregion
|
|
10333
10350
|
//#region src/tags/icons/icon-diff.marko
|
|
@@ -10418,7 +10435,7 @@ var side_nav_chips_default = _template("z", (input) => {
|
|
|
10418
10435
|
const name = repo.full_name.split("/").at(-1);
|
|
10419
10436
|
return repos.some((r) => r.full_name !== repo.full_name && r.full_name.split("/").at(-1) === name) ? repoLabel(repo.full_name) : name;
|
|
10420
10437
|
}, "z4", $scope1_id);
|
|
10421
|
-
_html(`<div${_attr_class("
|
|
10438
|
+
_html(`<div${_attr_class("_ht")}>`);
|
|
10422
10439
|
_for_of(repos, (repo) => {
|
|
10423
10440
|
const $scope2_id = _scope_id();
|
|
10424
10441
|
const $for_content__repo_worktree__closures = /* @__PURE__ */ new Set();
|
|
@@ -10434,11 +10451,11 @@ var side_nav_chips_default = _template("z", (input) => {
|
|
|
10434
10451
|
[prState.merged]: pr$1.state === "MERGED",
|
|
10435
10452
|
[prState.closed]: pr$1.state === "CLOSED"
|
|
10436
10453
|
}
|
|
10437
|
-
])}${_attr("title", prTitle(repo, pr$1))}><a${_attr_class(["
|
|
10454
|
+
])}${_attr("title", prTitle(repo, pr$1))}><a${_attr_class(["_hx", { ["_hF"]: !open }])}${_attr("href", pr$1.url)} target=_blank rel=noopener>${_text_resume($scope3_id, "c", repoLabel$1(repo))}#${_text_resume($scope3_id, "d", pr$1.number, 2)}</a>${_el_resume($scope3_id, "b")}`);
|
|
10438
10455
|
_if(() => {
|
|
10439
10456
|
if (open) {
|
|
10440
10457
|
const $scope4_id = _scope_id();
|
|
10441
|
-
_html(`<a${_attr_class(["
|
|
10458
|
+
_html(`<a${_attr_class(["_hx", "_hy"])}${_attr("href", `/w/${input.workspaceId}/review?pr=${encodeURIComponent(`${repo.worktree}/${pr$1.number}`)}`)}${_attr("title", `Review #${pr$1.number} changes`)}>`);
|
|
10442
10459
|
icon_diff_default({ size: 12 });
|
|
10443
10460
|
_html(`</a>${_el_resume($scope4_id, "a")}`);
|
|
10444
10461
|
_subscribe($for_content__repo_worktree__closures, _subscribe($si__input_workspaceId && $input_workspaceId__closures, writeScope($scope4_id, {})));
|
|
@@ -10446,9 +10463,9 @@ var side_nav_chips_default = _template("z", (input) => {
|
|
|
10446
10463
|
} else {
|
|
10447
10464
|
const $scope6_id = _scope_id();
|
|
10448
10465
|
_html(`<button type=button${_attr_class([
|
|
10449
|
-
"
|
|
10450
|
-
"
|
|
10451
|
-
"
|
|
10466
|
+
"_hx",
|
|
10467
|
+
"_hy",
|
|
10468
|
+
"_hz"
|
|
10452
10469
|
])}${_attr("title", `Dismiss #${pr$1.number}`)}>`);
|
|
10453
10470
|
icon_xmark_default({ size: 12 });
|
|
10454
10471
|
_html(`</button>${_el_resume($scope6_id, "a")}`);
|
|
@@ -10476,21 +10493,21 @@ var side_nav_chips_default = _template("z", (input) => {
|
|
|
10476
10493
|
_if(() => {
|
|
10477
10494
|
if (dead.has(p.port)) {
|
|
10478
10495
|
const $scope7_id = _scope_id();
|
|
10479
|
-
_html(`<span${_attr_class(["
|
|
10496
|
+
_html(`<span${_attr_class(["_hx", "_hD"])}${_attr("title", dead.get(p.port))} aria-disabled=true>:${_text_resume($scope7_id, "b", p.port, 2)}</span>${_el_resume($scope7_id, "a")}`);
|
|
10480
10497
|
_subscribe($dead__closures, writeScope($scope7_id, { Ca3: 1 }));
|
|
10481
10498
|
return 0;
|
|
10482
10499
|
} else {
|
|
10483
10500
|
const $scope8_id = _scope_id();
|
|
10484
|
-
_html(`<button type=button${_attr_class(["
|
|
10501
|
+
_html(`<button type=button${_attr_class(["_hx", "_hE"])}${_attr("title", `Open port ${p.port}`)}>:${_text_resume($scope8_id, "b", p.port, 2)}</button>${_el_resume($scope8_id, "a")}`);
|
|
10485
10502
|
_script($scope8_id, "z6");
|
|
10486
10503
|
writeScope($scope8_id, {});
|
|
10487
10504
|
return 1;
|
|
10488
10505
|
}
|
|
10489
10506
|
}, $scope5_id, "b", 1, 1, 1, 0, 1);
|
|
10490
10507
|
_html(`<button type=button${_attr_class([
|
|
10491
|
-
"
|
|
10492
|
-
"
|
|
10493
|
-
"
|
|
10508
|
+
"_hx",
|
|
10509
|
+
"_hy",
|
|
10510
|
+
"_hz",
|
|
10494
10511
|
{ ["_s"]: armedPid === p.pid }
|
|
10495
10512
|
])}${armedPid === p.pid ? " title=Kill?" : _attr("title", `Kill ${p.cmd} (pid ${p.pid})`)}>`);
|
|
10496
10513
|
icon_xmark_default({ size: 12 });
|
|
@@ -10586,7 +10603,7 @@ var usage_pcts_default = _template("I", (input) => {
|
|
|
10586
10603
|
return 0;
|
|
10587
10604
|
}
|
|
10588
10605
|
}, $scope2_id, "b", $sg__input_agent, $sg__input_agent, $sg__input_agent, 0, 1);
|
|
10589
|
-
_html(`<span${_attr_class("_gJ")}>${_text_resume($scope2_id, "d", win$1.window, $sg__input_agent)}</span><span${_attr_class(["_gK", win$1.used_percent >= 90 ? "
|
|
10606
|
+
_html(`<span${_attr_class("_gJ")}>${_text_resume($scope2_id, "d", win$1.window, $sg__input_agent)}</span><span${_attr_class(["_gK", win$1.used_percent >= 90 ? "_hp" : win$1.used_percent >= 70 ? "_ho" : win$1.used_percent >= 40 ? "_hn" : "_hm"])}>${_text_resume($scope2_id, "f", pctText(win$1.used_percent), $sg__input_agent)}</span>${_el_resume($scope2_id, "e", $sg__input_agent)}</span>`);
|
|
10590
10607
|
$si__input_agent && writeScope($scope2_id, {});
|
|
10591
10608
|
}, "window", $scope1_id, "a", $sg__input_agent, $sg__input_agent__OR__input_class, $sg__input_agent, "</span>", 1);
|
|
10592
10609
|
$si__input_agent__OR__input_class && writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
|
|
@@ -11380,12 +11397,7 @@ var side_nav_default = _template("B", (input) => {
|
|
|
11380
11397
|
const byId = new Map(workspaces.map((w) => [w.id, w]));
|
|
11381
11398
|
const allStatus = input.allStatus || {};
|
|
11382
11399
|
const orderedIds = sortedIds(itemIds, byId);
|
|
11383
|
-
const keyIndex = (() =>
|
|
11384
|
-
const m = /* @__PURE__ */ new Map();
|
|
11385
|
-
let n = 0;
|
|
11386
|
-
for (const id of orderedIds) if (!byId.get(id)?.pending) m.set(id, n++);
|
|
11387
|
-
return m;
|
|
11388
|
-
})();
|
|
11400
|
+
const keyIndex = new Map(numbered(workspaces).map((w, i) => [w.id, i]));
|
|
11389
11401
|
const isPage = view === "nav";
|
|
11390
11402
|
const backHref = ws ? `/w/${ws.id}` : "/new";
|
|
11391
11403
|
const iconSrc = `/api/instance/icon${input.instanceAccent ? `?v=${input.instanceAccent.slice(1)}` : ""}`;
|
|
@@ -11606,9 +11618,9 @@ var side_nav_default = _template("B", (input) => {
|
|
|
11606
11618
|
d: wsId,
|
|
11607
11619
|
_: _scope_with_id($scope7_id),
|
|
11608
11620
|
b: _serialize_if($scope0_reason, 4) && _existing_scope($childScope3),
|
|
11609
|
-
|
|
11610
|
-
|
|
11611
|
-
|
|
11621
|
+
Cb5: $si__input_workspace && 1,
|
|
11622
|
+
Cbc: $si__input_workspace__OR__input_allWorkspaces && 1,
|
|
11623
|
+
Cbd: $si__input_allStatus && 1
|
|
11612
11624
|
})))));
|
|
11613
11625
|
}, (id) => id, $scope7_id, "a", $sg__input_workspace__OR__input_allWorkspaces, $sg__input_workspace__OR__input_allWorkspaces, $sg__input_workspace__OR__input_allWorkspaces, "</div>", 1);
|
|
11614
11626
|
_if(() => {
|
|
@@ -11683,18 +11695,18 @@ var side_nav_default = _template("B", (input) => {
|
|
|
11683
11695
|
_subscribe($si__input_allStatus && $allStatus__closures, _subscribe($si__input_workspace__OR__input_allWorkspaces && $byId__closures, _subscribe($view__closures, _subscribe($si__input_tab__OR__input_tabChange && $tab__closures, _subscribe($si__input_workspace && $ws_id__closures, _subscribe($si__input_onCloseSession && $input_onCloseSession__closures, _subscribe($si__input_onRenameSession && $input_onRenameSession__closures, _subscribe($si__input_onReviewOther && $input_onReviewOther__closures, _subscribe($si__input_onReviewOpened && $input_onReviewOpened__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, _subscribe($si__input_agents && $input_agents__closures, _subscribe($si__input_sessions && $input_sessions__closures, writeScope($scope9_id, {
|
|
11684
11696
|
d: hoverId,
|
|
11685
11697
|
b: _existing_scope($childScope4),
|
|
11686
|
-
|
|
11687
|
-
|
|
11688
|
-
|
|
11689
|
-
|
|
11690
|
-
|
|
11691
|
-
|
|
11692
|
-
|
|
11693
|
-
|
|
11694
|
-
|
|
11695
|
-
|
|
11696
|
-
|
|
11697
|
-
|
|
11698
|
+
Cax: $si__input_sessions && 1,
|
|
11699
|
+
Cay: $si__input_agents && 1,
|
|
11700
|
+
Caz: $si__input_onNewSession && 1,
|
|
11701
|
+
Cb0: $si__input_onReviewOpened && 1,
|
|
11702
|
+
Cb1: $si__input_onReviewOther && 1,
|
|
11703
|
+
Cb2: $si__input_onRenameSession && 1,
|
|
11704
|
+
Cb3: $si__input_onCloseSession && 1,
|
|
11705
|
+
Cb5: $si__input_workspace && 2,
|
|
11706
|
+
Cb6: $si__input_tab__OR__input_tabChange && 1,
|
|
11707
|
+
Cb7: 1,
|
|
11708
|
+
Cbc: $si__input_workspace__OR__input_allWorkspaces && 2,
|
|
11709
|
+
Cbd: $si__input_allStatus && 2
|
|
11698
11710
|
})))))))))))));
|
|
11699
11711
|
return 0;
|
|
11700
11712
|
}
|
|
@@ -11793,29 +11805,29 @@ var side_nav_default = _template("B", (input) => {
|
|
|
11793
11805
|
aj: byId,
|
|
11794
11806
|
al: allStatus,
|
|
11795
11807
|
am: orderedIds,
|
|
11796
|
-
|
|
11797
|
-
|
|
11798
|
-
|
|
11799
|
-
|
|
11800
|
-
|
|
11808
|
+
ao: keyIndex,
|
|
11809
|
+
ap: isPage,
|
|
11810
|
+
as: backHref,
|
|
11811
|
+
at: iconSrc,
|
|
11812
|
+
au: pageIds,
|
|
11801
11813
|
aa: input.viewChange || void 0,
|
|
11802
|
-
|
|
11803
|
-
|
|
11804
|
-
|
|
11805
|
-
|
|
11806
|
-
|
|
11807
|
-
|
|
11808
|
-
|
|
11809
|
-
|
|
11810
|
-
|
|
11811
|
-
|
|
11812
|
-
|
|
11813
|
-
|
|
11814
|
-
|
|
11815
|
-
|
|
11816
|
-
|
|
11817
|
-
|
|
11818
|
-
|
|
11814
|
+
av: $si__input_instanceName && $input_instanceName__closures,
|
|
11815
|
+
bh: $si__input_instanceAccent && $iconSrc__closures,
|
|
11816
|
+
b9: $notifyOn__closures,
|
|
11817
|
+
ax: $si__input_sessions && $input_sessions__closures,
|
|
11818
|
+
ay: $si__input_agents && $input_agents__closures,
|
|
11819
|
+
az: $si__input_onNewSession && $input_onNewSession__closures,
|
|
11820
|
+
b0: $si__input_onReviewOpened && $input_onReviewOpened__closures,
|
|
11821
|
+
b1: $si__input_onReviewOther && $input_onReviewOther__closures,
|
|
11822
|
+
b2: $si__input_onRenameSession && $input_onRenameSession__closures,
|
|
11823
|
+
b3: $si__input_onCloseSession && $input_onCloseSession__closures,
|
|
11824
|
+
b5: $si__input_workspace && $ws_id__closures,
|
|
11825
|
+
b6: $si__input_tab__OR__input_tabChange && $tab__closures,
|
|
11826
|
+
b7: $view__closures,
|
|
11827
|
+
bb: $leaveNav2__closures,
|
|
11828
|
+
bc: $si__input_workspace__OR__input_allWorkspaces && $byId__closures,
|
|
11829
|
+
bd: $si__input_allStatus && $allStatus__closures,
|
|
11830
|
+
bf: $si__input_workspace__OR__input_allWorkspaces && $keyIndex__closures
|
|
11819
11831
|
});
|
|
11820
11832
|
_resume_branch($scope0_id);
|
|
11821
11833
|
});
|
|
@@ -12098,7 +12110,7 @@ var diff_send_default = _template("j", (input) => {
|
|
|
12098
12110
|
let sendTarget = null;
|
|
12099
12111
|
const sessions = input.sessions || [];
|
|
12100
12112
|
const sendPick = sessions.some((s) => s.id === sendTarget) ? sendTarget : sessions[0]?.id ?? null;
|
|
12101
|
-
_html(`<span${_attr_class("
|
|
12113
|
+
_html(`<span${_attr_class("_hG")}><button type=button${_attr_class("_q")} title="Copy comments as markdown">${_text_resume($scope0_id, "c", "Copy")}</button>${_el_resume($scope0_id, "b")}`);
|
|
12102
12114
|
_if(() => {
|
|
12103
12115
|
if (sessions.length === 1) {
|
|
12104
12116
|
const $scope1_id = _scope_id();
|
|
@@ -12108,11 +12120,11 @@ var diff_send_default = _template("j", (input) => {
|
|
|
12108
12120
|
return 0;
|
|
12109
12121
|
} else if (sessions.length) {
|
|
12110
12122
|
const $scope2_id = _scope_id();
|
|
12111
|
-
_html(`<span${_attr_class("
|
|
12123
|
+
_html(`<span${_attr_class("_hH")}><button type=button${_attr_class(["_r", "_hI"])}${_attr("disabled", sending)}>${_text_resume($scope2_id, "c", "Send to")}</button>${_el_resume($scope2_id, "b")}`);
|
|
12112
12124
|
_attr_select_value($scope2_id, "d", sendTarget, _resume((_new_sendTarget) => {
|
|
12113
12125
|
sendTarget = _new_sendTarget;
|
|
12114
12126
|
}, "j0", $scope2_id), () => {
|
|
12115
|
-
_html(`<select${_attr_class("
|
|
12127
|
+
_html(`<select${_attr_class("_hJ")} aria-label="Send comments to session"${_attr("disabled", sending)}>`);
|
|
12116
12128
|
_for_of(sessions, (s) => {
|
|
12117
12129
|
const $scope3_id = _scope_id();
|
|
12118
12130
|
_html(`<option${_attr_option_value(s.id)}>${_text_resume($scope3_id, "b", s.title || s.agent, $sg__input_sessions)}</option>${_el_resume($scope3_id, "a", $sg__input_sessions)}`);
|
|
@@ -12139,1491 +12151,6 @@ var diff_send_default = _template("j", (input) => {
|
|
|
12139
12151
|
});
|
|
12140
12152
|
_resume_branch($scope0_id);
|
|
12141
12153
|
});
|
|
12142
|
-
//#endregion
|
|
12143
|
-
//#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/constants.js
|
|
12144
|
-
var GIT_DIFF_FILE_BREAK_REGEX = /(?=^diff --git)/gm;
|
|
12145
|
-
var FILENAME_HEADER_REGEX = /^(---|\+\+\+)\s+([^\t\r\n]+)/;
|
|
12146
|
-
var FILENAME_HEADER_REGEX_GIT = /^(---|\+\+\+)\s+[ab]\/([^\t\r\n]+)/;
|
|
12147
|
-
var ALTERNATE_FILE_NAMES_GIT = /^diff --git (?:"a\/(.+?)"|a\/(.+?)) (?:"b\/(.+?)"|b\/(.+?))$/;
|
|
12148
|
-
var INDEX_LINE_METADATA = /^index ([0-9a-f]+)\.\.([0-9a-f]+)(?: (\d+))?$/i;
|
|
12149
|
-
Object.freeze({
|
|
12150
|
-
fromStart: 0,
|
|
12151
|
-
fromEnd: 0
|
|
12152
|
-
});
|
|
12153
|
-
//#endregion
|
|
12154
|
-
//#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js
|
|
12155
|
-
function cleanLastNewline(contents) {
|
|
12156
|
-
let end = contents.length;
|
|
12157
|
-
if (contents.charCodeAt(end - 1) === 10) {
|
|
12158
|
-
end--;
|
|
12159
|
-
if (contents.charCodeAt(end - 1) === 13) end--;
|
|
12160
|
-
}
|
|
12161
|
-
return contents.slice(0, end);
|
|
12162
|
-
}
|
|
12163
|
-
//#endregion
|
|
12164
|
-
//#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/detachString.js
|
|
12165
|
-
var stringDetachEncoder = new TextEncoder();
|
|
12166
|
-
var stringDetachDecoder = new TextDecoder("utf-8", { ignoreBOM: true });
|
|
12167
|
-
var SURROGATE_CODE_UNIT_PATTERN = /[\uD800-\uDFFF]/;
|
|
12168
|
-
var STRING_DETACH_INITIAL_BUFFER_SIZE = 1024;
|
|
12169
|
-
var stringDetachBuffer = new Uint8Array(STRING_DETACH_INITIAL_BUFFER_SIZE);
|
|
12170
|
-
function releaseStringDetachBuffer() {
|
|
12171
|
-
if (stringDetachBuffer.length !== STRING_DETACH_INITIAL_BUFFER_SIZE) stringDetachBuffer = new Uint8Array(STRING_DETACH_INITIAL_BUFFER_SIZE);
|
|
12172
|
-
}
|
|
12173
|
-
function detachString(value) {
|
|
12174
|
-
if (value.length === 0) return value;
|
|
12175
|
-
if (SURROGATE_CODE_UNIT_PATTERN.test(value)) return JSON.parse(JSON.stringify(value));
|
|
12176
|
-
const requiredByteLength = value.length * 3;
|
|
12177
|
-
if (stringDetachBuffer.length < requiredByteLength) stringDetachBuffer = new Uint8Array(requiredByteLength);
|
|
12178
|
-
const { written } = stringDetachEncoder.encodeInto(value, stringDetachBuffer);
|
|
12179
|
-
return stringDetachDecoder.decode(stringDetachBuffer.subarray(0, written));
|
|
12180
|
-
}
|
|
12181
|
-
//#endregion
|
|
12182
|
-
//#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js
|
|
12183
|
-
/** Converts a unified hunk side's start/count into its consumed-file range. */
|
|
12184
|
-
function getHunkSideStartBoundary(start, count) {
|
|
12185
|
-
return start - (count === 0 ? 0 : 1);
|
|
12186
|
-
}
|
|
12187
|
-
function getHunkSideEndBoundary(start, count) {
|
|
12188
|
-
return getHunkSideStartBoundary(start, count) + count;
|
|
12189
|
-
}
|
|
12190
|
-
//#endregion
|
|
12191
|
-
//#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js
|
|
12192
|
-
var MAX_ALIGNMENT_COMPARISONS = 4096;
|
|
12193
|
-
var MIN_IMPROVEMENT_PER_PAIR = .5;
|
|
12194
|
-
/**
|
|
12195
|
-
* Re-split count-mismatched change blocks in every hunk so paired lines are
|
|
12196
|
-
* chosen by content similarity instead of position, then slide blank-line
|
|
12197
|
-
* insert/delete blocks to the top of their blank run. Mutates `hunks` in
|
|
12198
|
-
* place; rendered row counts are unchanged (a split block covers the same
|
|
12199
|
-
* split/unified rows as the original).
|
|
12200
|
-
*/
|
|
12201
|
-
function realignChangeContentBySimilarity(diff) {
|
|
12202
|
-
for (const hunk of diff.hunks) {
|
|
12203
|
-
for (let index = 0; index < hunk.hunkContent.length; index++) {
|
|
12204
|
-
const content = hunk.hunkContent[index];
|
|
12205
|
-
if (content.type !== "change") continue;
|
|
12206
|
-
const replacement = realignChangeBlock(diff, content);
|
|
12207
|
-
if (replacement != null) {
|
|
12208
|
-
hunk.hunkContent.splice(index, 1, ...replacement);
|
|
12209
|
-
index += replacement.length - 1;
|
|
12210
|
-
}
|
|
12211
|
-
}
|
|
12212
|
-
slideBlankBoundaryBlocksUp(hunk, diff);
|
|
12213
|
-
}
|
|
12214
|
-
}
|
|
12215
|
-
/**
|
|
12216
|
-
* Slide pure insert/delete blocks made entirely of blank lines to the top of
|
|
12217
|
-
* the blank run they sit in. Adding or removing a blank line next to
|
|
12218
|
-
* existing blanks is ambiguous, and the diff library reports the change at
|
|
12219
|
-
* the run's bottom — so pressing Enter at the end of a line marks a blank
|
|
12220
|
-
* *below* the caret as inserted while the caret's own new line renders as
|
|
12221
|
-
* context. Sliding up anchors the change to the content above it (the caret
|
|
12222
|
-
* line after an Enter) instead.
|
|
12223
|
-
*
|
|
12224
|
-
* The slide is all-or-nothing: it only applies when the block comes to rest
|
|
12225
|
-
* directly beneath remaining in-hunk content. A slide that would consume the
|
|
12226
|
-
* hunk's entire leading context was stopped by the hunk's edge — a context
|
|
12227
|
-
* window cut, not the top of the blank run — and that landing spot is
|
|
12228
|
-
* arbitrary, so the block keeps the library's bottom-of-run anchor (which
|
|
12229
|
-
* sits against the content below the run). Non-blank blocks never slide, so
|
|
12230
|
-
* code that merely ends like its neighbor (an added function before an
|
|
12231
|
-
* identical `}`) keeps the library's canonical position.
|
|
12232
|
-
*/
|
|
12233
|
-
function slideBlankBoundaryBlocksUp(hunk, diff) {
|
|
12234
|
-
const { hunkContent } = hunk;
|
|
12235
|
-
for (let index = 1; index < hunkContent.length; index++) {
|
|
12236
|
-
const block = hunkContent[index];
|
|
12237
|
-
const previous = hunkContent[index - 1];
|
|
12238
|
-
if (block.type !== "change" || block.additions > 0 && block.deletions > 0 || previous.type !== "context") continue;
|
|
12239
|
-
const isInsert = block.additions > 0;
|
|
12240
|
-
const lines = isInsert ? diff.additionLines : diff.deletionLines;
|
|
12241
|
-
const blockStart = isInsert ? block.additionLineIndex : block.deletionLineIndex;
|
|
12242
|
-
const blockLength = isInsert ? block.additions : block.deletions;
|
|
12243
|
-
const unit = lines[blockStart] ?? "";
|
|
12244
|
-
if (unit.trim() !== "") continue;
|
|
12245
|
-
let uniform = true;
|
|
12246
|
-
for (let offset = 1; offset < blockLength; offset++) if (lines[blockStart + offset] !== unit) {
|
|
12247
|
-
uniform = false;
|
|
12248
|
-
break;
|
|
12249
|
-
}
|
|
12250
|
-
if (!uniform) continue;
|
|
12251
|
-
let slide = 0;
|
|
12252
|
-
while (slide < previous.lines && diff.additionLines[previous.additionLineIndex + previous.lines - 1 - slide] === unit) slide++;
|
|
12253
|
-
if (slide === 0) continue;
|
|
12254
|
-
if (index === 1 && slide === previous.lines) continue;
|
|
12255
|
-
block.additionLineIndex -= slide;
|
|
12256
|
-
block.deletionLineIndex -= slide;
|
|
12257
|
-
const blockAdditionEnd = block.additionLineIndex + block.additions;
|
|
12258
|
-
const blockDeletionEnd = block.deletionLineIndex + block.deletions;
|
|
12259
|
-
const next = hunkContent[index + 1];
|
|
12260
|
-
if (next?.type === "context") {
|
|
12261
|
-
next.lines += slide;
|
|
12262
|
-
next.additionLineIndex = blockAdditionEnd;
|
|
12263
|
-
next.deletionLineIndex = blockDeletionEnd;
|
|
12264
|
-
} else hunkContent.splice(index + 1, 0, {
|
|
12265
|
-
type: "context",
|
|
12266
|
-
lines: slide,
|
|
12267
|
-
additionLineIndex: blockAdditionEnd,
|
|
12268
|
-
deletionLineIndex: blockDeletionEnd
|
|
12269
|
-
});
|
|
12270
|
-
previous.lines -= slide;
|
|
12271
|
-
if (previous.lines === 0) {
|
|
12272
|
-
hunkContent.splice(index - 1, 1);
|
|
12273
|
-
index--;
|
|
12274
|
-
}
|
|
12275
|
-
}
|
|
12276
|
-
}
|
|
12277
|
-
function realignChangeBlock(diff, content) {
|
|
12278
|
-
const { deletions, additions, deletionLineIndex, additionLineIndex } = content;
|
|
12279
|
-
const pairCount = Math.min(deletions, additions);
|
|
12280
|
-
const surplus = Math.abs(additions - deletions);
|
|
12281
|
-
if (pairCount === 0 || surplus === 0 || pairCount * (surplus + 1) > MAX_ALIGNMENT_COMPARISONS) return null;
|
|
12282
|
-
const strippedDeletions = [];
|
|
12283
|
-
for (let line = 0; line < deletions; line++) strippedDeletions.push(stripWhitespace(diff.deletionLines[deletionLineIndex + line] ?? ""));
|
|
12284
|
-
const strippedAdditions = [];
|
|
12285
|
-
for (let line = 0; line < additions; line++) strippedAdditions.push(stripWhitespace(diff.additionLines[additionLineIndex + line] ?? ""));
|
|
12286
|
-
const additionsAreLonger = additions > deletions;
|
|
12287
|
-
let bestOffset = 0;
|
|
12288
|
-
let bestScore = -1;
|
|
12289
|
-
for (let offset = 0; offset <= surplus; offset++) {
|
|
12290
|
-
let score = 0;
|
|
12291
|
-
for (let pair = 0; pair < pairCount; pair++) score += lineSimilarity(strippedDeletions[pair + (additionsAreLonger ? 0 : offset)], strippedAdditions[pair + (additionsAreLonger ? offset : 0)]);
|
|
12292
|
-
if (offset === 0) bestScore = score + pairCount * MIN_IMPROVEMENT_PER_PAIR;
|
|
12293
|
-
else if (score > bestScore) {
|
|
12294
|
-
bestScore = score;
|
|
12295
|
-
bestOffset = offset;
|
|
12296
|
-
}
|
|
12297
|
-
}
|
|
12298
|
-
if (bestOffset === 0) return null;
|
|
12299
|
-
const blocks = [];
|
|
12300
|
-
const pushBlock = (blockDeletions, blockAdditions, blockDeletionIndex, blockAdditionIndex) => {
|
|
12301
|
-
if (blockDeletions > 0 || blockAdditions > 0) blocks.push({
|
|
12302
|
-
type: "change",
|
|
12303
|
-
deletions: blockDeletions,
|
|
12304
|
-
additions: blockAdditions,
|
|
12305
|
-
deletionLineIndex: blockDeletionIndex,
|
|
12306
|
-
additionLineIndex: blockAdditionIndex
|
|
12307
|
-
});
|
|
12308
|
-
};
|
|
12309
|
-
if (additionsAreLonger) {
|
|
12310
|
-
pushBlock(0, bestOffset, deletionLineIndex, additionLineIndex);
|
|
12311
|
-
pushBlock(pairCount, pairCount, deletionLineIndex, additionLineIndex + bestOffset);
|
|
12312
|
-
pushBlock(0, additions - pairCount - bestOffset, deletionLineIndex + pairCount, additionLineIndex + bestOffset + pairCount);
|
|
12313
|
-
} else {
|
|
12314
|
-
pushBlock(bestOffset, 0, deletionLineIndex, additionLineIndex);
|
|
12315
|
-
pushBlock(pairCount, pairCount, deletionLineIndex + bestOffset, additionLineIndex);
|
|
12316
|
-
pushBlock(deletions - pairCount - bestOffset, 0, deletionLineIndex + bestOffset + pairCount, additionLineIndex + pairCount);
|
|
12317
|
-
}
|
|
12318
|
-
return blocks;
|
|
12319
|
-
}
|
|
12320
|
-
var WHITESPACE = /\s+/g;
|
|
12321
|
-
function stripWhitespace(line) {
|
|
12322
|
-
return line.replace(WHITESPACE, "");
|
|
12323
|
-
}
|
|
12324
|
-
function lineSimilarity(a, b) {
|
|
12325
|
-
if (a === b) return 1;
|
|
12326
|
-
const maxLength = Math.max(a.length, b.length);
|
|
12327
|
-
const minLength = Math.min(a.length, b.length);
|
|
12328
|
-
if (minLength === 0) return 0;
|
|
12329
|
-
let prefix = 0;
|
|
12330
|
-
while (prefix < minLength && a[prefix] === b[prefix]) prefix++;
|
|
12331
|
-
let suffix = 0;
|
|
12332
|
-
while (suffix < minLength - prefix && a[a.length - 1 - suffix] === b[b.length - 1 - suffix]) suffix++;
|
|
12333
|
-
return (prefix + suffix) / maxLength;
|
|
12334
|
-
}
|
|
12335
|
-
//#endregion
|
|
12336
|
-
//#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js
|
|
12337
|
-
function processFile(fileDiffString, options) {
|
|
12338
|
-
try {
|
|
12339
|
-
return _processFile(fileDiffString, options);
|
|
12340
|
-
} finally {
|
|
12341
|
-
releaseStringDetachBuffer();
|
|
12342
|
-
}
|
|
12343
|
-
}
|
|
12344
|
-
function _processFile(fileDiffString, { cacheKey, isGitDiff = GIT_DIFF_FILE_BREAK_REGEX.test(fileDiffString), oldFile, newFile, throwOnError = false } = {}) {
|
|
12345
|
-
let lastHunkEnd = 0;
|
|
12346
|
-
const hunks = splitAtLinePrefix(fileDiffString, "@@ ");
|
|
12347
|
-
let currentFile;
|
|
12348
|
-
const isPartial = oldFile == null || newFile == null;
|
|
12349
|
-
let deletionLineIndex = 0;
|
|
12350
|
-
let additionLineIndex = 0;
|
|
12351
|
-
for (const hunk of hunks) {
|
|
12352
|
-
const lines = splitWithNewlines(hunk);
|
|
12353
|
-
const firstLine = lines[0];
|
|
12354
|
-
if (firstLine == null) {
|
|
12355
|
-
if (throwOnError) throw Error("parsePatchContent: invalid hunk");
|
|
12356
|
-
else console.error("parsePatchContent: invalid hunk", hunk);
|
|
12357
|
-
continue;
|
|
12358
|
-
}
|
|
12359
|
-
const fileHeader = parseHunkHeader(firstLine);
|
|
12360
|
-
let additionLines = 0;
|
|
12361
|
-
let deletionLines = 0;
|
|
12362
|
-
if (fileHeader == null || currentFile == null) {
|
|
12363
|
-
if (currentFile != null) {
|
|
12364
|
-
if (throwOnError) throw Error("parsePatchContent: Invalid hunk");
|
|
12365
|
-
else console.error("parsePatchContent: Invalid hunk", hunk);
|
|
12366
|
-
continue;
|
|
12367
|
-
}
|
|
12368
|
-
currentFile = {
|
|
12369
|
-
name: "",
|
|
12370
|
-
type: "change",
|
|
12371
|
-
hunks: [],
|
|
12372
|
-
splitLineCount: 0,
|
|
12373
|
-
unifiedLineCount: 0,
|
|
12374
|
-
isPartial,
|
|
12375
|
-
additionLines: !isPartial && oldFile != null && newFile != null ? splitFileContents(newFile.contents) : [],
|
|
12376
|
-
deletionLines: !isPartial && oldFile != null && newFile != null ? splitFileContents(oldFile.contents) : [],
|
|
12377
|
-
cacheKey: maybeDetachOptionalString(cacheKey)
|
|
12378
|
-
};
|
|
12379
|
-
if (currentFile.additionLines.length === 1 && newFile?.contents === "") currentFile.additionLines.length = 0;
|
|
12380
|
-
if (currentFile.deletionLines.length === 1 && oldFile?.contents === "") currentFile.deletionLines.length = 0;
|
|
12381
|
-
for (const line of lines) {
|
|
12382
|
-
if (line.startsWith("diff --git")) {
|
|
12383
|
-
const filenameMatch = line.trim().match(ALTERNATE_FILE_NAMES_GIT);
|
|
12384
|
-
const prevName = filenameMatch?.[1] ?? filenameMatch?.[2];
|
|
12385
|
-
const name = filenameMatch?.[3] ?? filenameMatch?.[4];
|
|
12386
|
-
if (prevName == null || name == null) {
|
|
12387
|
-
if (throwOnError) throw Error("parsePatchContent: invalid git diff header");
|
|
12388
|
-
else console.error("parsePatchContent: invalid git diff header", line);
|
|
12389
|
-
continue;
|
|
12390
|
-
}
|
|
12391
|
-
currentFile.name = detachString(name.trim());
|
|
12392
|
-
if (prevName !== name) currentFile.prevName = detachString(prevName.trim());
|
|
12393
|
-
continue;
|
|
12394
|
-
}
|
|
12395
|
-
const filenameMatch = line.startsWith("---") || line.startsWith("+++") ? line.match(isGitDiff ? FILENAME_HEADER_REGEX_GIT : FILENAME_HEADER_REGEX) : null;
|
|
12396
|
-
if (filenameMatch != null) {
|
|
12397
|
-
const [, type, fileName] = filenameMatch;
|
|
12398
|
-
if (type === "---" && fileName !== "/dev/null") {
|
|
12399
|
-
const detachedFileName = detachString(fileName.trim());
|
|
12400
|
-
currentFile.prevName = detachedFileName;
|
|
12401
|
-
currentFile.name = detachedFileName;
|
|
12402
|
-
} else if (type === "+++" && fileName !== "/dev/null") currentFile.name = detachString(fileName.trim());
|
|
12403
|
-
} else if (isGitDiff) {
|
|
12404
|
-
if (line.startsWith("new mode ")) currentFile.mode = detachString(line.slice(8).trim());
|
|
12405
|
-
if (line.startsWith("old mode ")) currentFile.prevMode = detachString(line.slice(8).trim());
|
|
12406
|
-
if (line.startsWith("new file mode")) {
|
|
12407
|
-
currentFile.type = "new";
|
|
12408
|
-
currentFile.mode = detachString(line.slice(13).trim());
|
|
12409
|
-
}
|
|
12410
|
-
if (line.startsWith("deleted file mode")) {
|
|
12411
|
-
currentFile.type = "deleted";
|
|
12412
|
-
currentFile.mode = detachString(line.slice(17).trim());
|
|
12413
|
-
}
|
|
12414
|
-
if (line.startsWith("similarity index")) if (line.startsWith("similarity index 100%")) currentFile.type = "rename-pure";
|
|
12415
|
-
else currentFile.type = "rename-changed";
|
|
12416
|
-
if (line.startsWith("index ")) {
|
|
12417
|
-
const [, prevObjectId, newObjectId, mode] = line.trim().match(INDEX_LINE_METADATA) ?? [];
|
|
12418
|
-
if (prevObjectId != null) currentFile.prevObjectId = detachString(prevObjectId);
|
|
12419
|
-
if (newObjectId != null) currentFile.newObjectId = detachString(newObjectId);
|
|
12420
|
-
if (mode != null) currentFile.mode = detachString(mode);
|
|
12421
|
-
}
|
|
12422
|
-
if (line.startsWith("rename from ")) currentFile.prevName = detachString(line.slice(12).trim());
|
|
12423
|
-
if (line.startsWith("rename to ")) currentFile.name = detachString(line.slice(10).trim());
|
|
12424
|
-
}
|
|
12425
|
-
}
|
|
12426
|
-
continue;
|
|
12427
|
-
}
|
|
12428
|
-
let currentContent;
|
|
12429
|
-
let lastLineType;
|
|
12430
|
-
while (lines.length > 0 && (lines[lines.length - 1] === "\n" || lines[lines.length - 1] === "\r" || lines[lines.length - 1] === "\r\n" || lines[lines.length - 1] === "")) lines.pop();
|
|
12431
|
-
const { additionStart, deletionStart } = fileHeader;
|
|
12432
|
-
deletionLineIndex = isPartial ? deletionLineIndex : deletionStart - 1;
|
|
12433
|
-
additionLineIndex = isPartial ? additionLineIndex : additionStart - 1;
|
|
12434
|
-
const hunkData = {
|
|
12435
|
-
collapsedBefore: 0,
|
|
12436
|
-
splitLineCount: 0,
|
|
12437
|
-
splitLineStart: 0,
|
|
12438
|
-
unifiedLineCount: 0,
|
|
12439
|
-
unifiedLineStart: 0,
|
|
12440
|
-
additionCount: fileHeader.additionCount,
|
|
12441
|
-
additionStart,
|
|
12442
|
-
additionLines,
|
|
12443
|
-
deletionCount: fileHeader.deletionCount,
|
|
12444
|
-
deletionStart,
|
|
12445
|
-
deletionLines,
|
|
12446
|
-
deletionLineIndex,
|
|
12447
|
-
additionLineIndex,
|
|
12448
|
-
hunkContent: [],
|
|
12449
|
-
hunkContext: maybeDetachOptionalString(fileHeader.hunkContext),
|
|
12450
|
-
hunkSpecs: detachString(firstLine),
|
|
12451
|
-
noEOFCRAdditions: false,
|
|
12452
|
-
noEOFCRDeletions: false
|
|
12453
|
-
};
|
|
12454
|
-
let parsedAdditionLines = 0;
|
|
12455
|
-
let parsedDeletionLines = 0;
|
|
12456
|
-
for (let lineIndex = 1; lineIndex < lines.length; lineIndex++) {
|
|
12457
|
-
const rawLine = lines[lineIndex];
|
|
12458
|
-
if (parsedAdditionLines >= hunkData.additionCount && parsedDeletionLines >= hunkData.deletionCount && !rawLine.startsWith("\\")) {
|
|
12459
|
-
if (throwOnError && isHunkBodyLine(rawLine) && !isFormatPatchVersionSeparator(rawLine)) throw Error("parsePatchContent: hunk has more lines than expected");
|
|
12460
|
-
break;
|
|
12461
|
-
}
|
|
12462
|
-
const firstChar = rawLine[0];
|
|
12463
|
-
if (firstChar !== "+" && firstChar !== "-" && firstChar !== " " && firstChar !== "\\") {
|
|
12464
|
-
if (throwOnError) throw Error("parsePatchContent: invalid hunk line");
|
|
12465
|
-
console.error(`parseLineType: Invalid firstChar: "${firstChar}", full line: "${rawLine}"`);
|
|
12466
|
-
console.error("processFile: invalid rawLine:", rawLine);
|
|
12467
|
-
continue;
|
|
12468
|
-
}
|
|
12469
|
-
const type = parseRawLineType(firstChar);
|
|
12470
|
-
if (type === "addition") {
|
|
12471
|
-
if (throwOnError && parsedAdditionLines >= hunkData.additionCount) throw Error("parsePatchContent: hunk has too many addition lines");
|
|
12472
|
-
const line = getParsedLineContent(rawLine);
|
|
12473
|
-
if (currentContent == null || currentContent.type !== "change") {
|
|
12474
|
-
currentContent = createContentGroup("change", deletionLineIndex, additionLineIndex);
|
|
12475
|
-
hunkData.hunkContent.push(currentContent);
|
|
12476
|
-
}
|
|
12477
|
-
additionLineIndex++;
|
|
12478
|
-
parsedAdditionLines++;
|
|
12479
|
-
if (isPartial) currentFile.additionLines.push(line);
|
|
12480
|
-
currentContent.additions++;
|
|
12481
|
-
additionLines++;
|
|
12482
|
-
lastLineType = "addition";
|
|
12483
|
-
} else if (type === "deletion") {
|
|
12484
|
-
if (throwOnError && parsedDeletionLines >= hunkData.deletionCount) throw Error("parsePatchContent: hunk has too many deletion lines");
|
|
12485
|
-
const line = getParsedLineContent(rawLine);
|
|
12486
|
-
if (currentContent == null || currentContent.type !== "change") {
|
|
12487
|
-
currentContent = createContentGroup("change", deletionLineIndex, additionLineIndex);
|
|
12488
|
-
hunkData.hunkContent.push(currentContent);
|
|
12489
|
-
}
|
|
12490
|
-
deletionLineIndex++;
|
|
12491
|
-
parsedDeletionLines++;
|
|
12492
|
-
if (isPartial) currentFile.deletionLines.push(line);
|
|
12493
|
-
currentContent.deletions++;
|
|
12494
|
-
deletionLines++;
|
|
12495
|
-
lastLineType = "deletion";
|
|
12496
|
-
} else if (type === "context") {
|
|
12497
|
-
if (throwOnError && (parsedDeletionLines >= hunkData.deletionCount || parsedAdditionLines >= hunkData.additionCount)) throw Error("parsePatchContent: hunk has too many context lines");
|
|
12498
|
-
const line = getParsedLineContent(rawLine);
|
|
12499
|
-
if (currentContent == null || currentContent.type !== "context") {
|
|
12500
|
-
currentContent = createContentGroup("context", deletionLineIndex, additionLineIndex);
|
|
12501
|
-
hunkData.hunkContent.push(currentContent);
|
|
12502
|
-
}
|
|
12503
|
-
additionLineIndex++;
|
|
12504
|
-
deletionLineIndex++;
|
|
12505
|
-
parsedAdditionLines++;
|
|
12506
|
-
parsedDeletionLines++;
|
|
12507
|
-
if (isPartial) {
|
|
12508
|
-
currentFile.deletionLines.push(line);
|
|
12509
|
-
currentFile.additionLines.push(line);
|
|
12510
|
-
}
|
|
12511
|
-
currentContent.lines++;
|
|
12512
|
-
lastLineType = "context";
|
|
12513
|
-
} else if (type === "metadata" && currentContent != null) {
|
|
12514
|
-
if (currentContent.type === "context") {
|
|
12515
|
-
hunkData.noEOFCRAdditions = true;
|
|
12516
|
-
hunkData.noEOFCRDeletions = true;
|
|
12517
|
-
} else if (lastLineType === "deletion") hunkData.noEOFCRDeletions = true;
|
|
12518
|
-
else if (lastLineType === "addition") hunkData.noEOFCRAdditions = true;
|
|
12519
|
-
if (isPartial && (lastLineType === "addition" || lastLineType === "context")) {
|
|
12520
|
-
const lastIndex = currentFile.additionLines.length - 1;
|
|
12521
|
-
if (lastIndex >= 0) currentFile.additionLines[lastIndex] = cleanLastNewline(currentFile.additionLines[lastIndex]);
|
|
12522
|
-
}
|
|
12523
|
-
if (isPartial && (lastLineType === "deletion" || lastLineType === "context")) {
|
|
12524
|
-
const lastIndex = currentFile.deletionLines.length - 1;
|
|
12525
|
-
if (lastIndex >= 0) currentFile.deletionLines[lastIndex] = cleanLastNewline(currentFile.deletionLines[lastIndex]);
|
|
12526
|
-
}
|
|
12527
|
-
}
|
|
12528
|
-
}
|
|
12529
|
-
if (throwOnError && (parsedAdditionLines !== hunkData.additionCount || parsedDeletionLines !== hunkData.deletionCount)) throw Error("parsePatchContent: hunk line count mismatch");
|
|
12530
|
-
hunkData.additionLines = additionLines;
|
|
12531
|
-
hunkData.deletionLines = deletionLines;
|
|
12532
|
-
hunkData.collapsedBefore = Math.max(getHunkSideStartBoundary(hunkData.additionStart, hunkData.additionCount) - lastHunkEnd, 0);
|
|
12533
|
-
currentFile.hunks.push(hunkData);
|
|
12534
|
-
lastHunkEnd = getHunkSideEndBoundary(hunkData.additionStart, hunkData.additionCount);
|
|
12535
|
-
for (const content of hunkData.hunkContent) if (content.type === "context") {
|
|
12536
|
-
hunkData.splitLineCount += content.lines;
|
|
12537
|
-
hunkData.unifiedLineCount += content.lines;
|
|
12538
|
-
} else {
|
|
12539
|
-
hunkData.splitLineCount += Math.max(content.additions, content.deletions);
|
|
12540
|
-
hunkData.unifiedLineCount += content.deletions + content.additions;
|
|
12541
|
-
}
|
|
12542
|
-
hunkData.splitLineStart = currentFile.splitLineCount + hunkData.collapsedBefore;
|
|
12543
|
-
hunkData.unifiedLineStart = currentFile.unifiedLineCount + hunkData.collapsedBefore;
|
|
12544
|
-
currentFile.splitLineCount += hunkData.collapsedBefore + hunkData.splitLineCount;
|
|
12545
|
-
currentFile.unifiedLineCount += hunkData.collapsedBefore + hunkData.unifiedLineCount;
|
|
12546
|
-
}
|
|
12547
|
-
if (currentFile == null) return;
|
|
12548
|
-
if (throwOnError && isPartial && !isGitDiff && currentFile.hunks.length === 0) throw Error("parsePatchContent: unified file has no hunks");
|
|
12549
|
-
if (currentFile.hunks.length > 0 && !isPartial && currentFile.additionLines.length > 0 && currentFile.deletionLines.length > 0) {
|
|
12550
|
-
const lastHunk = currentFile.hunks[currentFile.hunks.length - 1];
|
|
12551
|
-
const lastHunkEnd = getHunkSideEndBoundary(lastHunk.additionStart, lastHunk.additionCount);
|
|
12552
|
-
const totalFileLines = currentFile.additionLines.length;
|
|
12553
|
-
const collapsedAfter = Math.max(totalFileLines - lastHunkEnd, 0);
|
|
12554
|
-
currentFile.splitLineCount += collapsedAfter;
|
|
12555
|
-
currentFile.unifiedLineCount += collapsedAfter;
|
|
12556
|
-
}
|
|
12557
|
-
if (!isGitDiff) {
|
|
12558
|
-
if (currentFile.prevName != null && currentFile.name !== currentFile.prevName) if (currentFile.hunks.length > 0) currentFile.type = "rename-changed";
|
|
12559
|
-
else currentFile.type = "rename-pure";
|
|
12560
|
-
else if ((oldFile == null || oldFile.contents === "") && newFile != null && newFile.contents !== "") currentFile.type = "new";
|
|
12561
|
-
else if (oldFile != null && oldFile.contents !== "" && (newFile == null || newFile.contents === "")) currentFile.type = "deleted";
|
|
12562
|
-
}
|
|
12563
|
-
if (currentFile.type !== "rename-pure" && currentFile.type !== "rename-changed") currentFile.prevName = void 0;
|
|
12564
|
-
realignChangeContentBySimilarity(currentFile);
|
|
12565
|
-
return currentFile;
|
|
12566
|
-
}
|
|
12567
|
-
function splitFileContents(contents) {
|
|
12568
|
-
const lines = splitWithNewlines(contents);
|
|
12569
|
-
for (let index = 0; index < lines.length; index++) lines[index] = detachString(lines[index]);
|
|
12570
|
-
return lines;
|
|
12571
|
-
}
|
|
12572
|
-
function splitWithNewlines(contents) {
|
|
12573
|
-
if (contents.length === 0) return [""];
|
|
12574
|
-
const lines = [];
|
|
12575
|
-
let startIndex = 0;
|
|
12576
|
-
for (;;) {
|
|
12577
|
-
const newlineIndex = contents.indexOf("\n", startIndex);
|
|
12578
|
-
if (newlineIndex === -1) break;
|
|
12579
|
-
lines.push(contents.slice(startIndex, newlineIndex + 1));
|
|
12580
|
-
startIndex = newlineIndex + 1;
|
|
12581
|
-
}
|
|
12582
|
-
if (startIndex < contents.length) lines.push(contents.slice(startIndex));
|
|
12583
|
-
return lines;
|
|
12584
|
-
}
|
|
12585
|
-
function isHunkBodyLine(line) {
|
|
12586
|
-
const firstChar = line[0];
|
|
12587
|
-
return firstChar === "+" || firstChar === "-" || firstChar === " ";
|
|
12588
|
-
}
|
|
12589
|
-
function isFormatPatchVersionSeparator(line) {
|
|
12590
|
-
if (!line.startsWith("--")) return false;
|
|
12591
|
-
for (let index = 2; index < line.length; index++) {
|
|
12592
|
-
const char = line[index];
|
|
12593
|
-
if (char !== " " && char !== " " && char !== "\n" && char !== "\r") return false;
|
|
12594
|
-
}
|
|
12595
|
-
return true;
|
|
12596
|
-
}
|
|
12597
|
-
function parseHunkHeader(line) {
|
|
12598
|
-
if (!line.startsWith("@@ -")) return;
|
|
12599
|
-
let index = 4;
|
|
12600
|
-
const deletionStartResult = readPositiveInteger(line, index);
|
|
12601
|
-
if (deletionStartResult == null) return;
|
|
12602
|
-
const deletionStart = deletionStartResult.value;
|
|
12603
|
-
index = deletionStartResult.endIndex;
|
|
12604
|
-
let deletionCount = 1;
|
|
12605
|
-
if (line[index] === ",") {
|
|
12606
|
-
const deletionCountResult = readPositiveInteger(line, index + 1);
|
|
12607
|
-
if (deletionCountResult == null) return;
|
|
12608
|
-
deletionCount = deletionCountResult.value;
|
|
12609
|
-
index = deletionCountResult.endIndex;
|
|
12610
|
-
}
|
|
12611
|
-
if (line[index] !== " " || line[index + 1] !== "+") return;
|
|
12612
|
-
index += 2;
|
|
12613
|
-
const additionStartResult = readPositiveInteger(line, index);
|
|
12614
|
-
if (additionStartResult == null) return;
|
|
12615
|
-
const additionStart = additionStartResult.value;
|
|
12616
|
-
index = additionStartResult.endIndex;
|
|
12617
|
-
let additionCount = 1;
|
|
12618
|
-
if (line[index] === ",") {
|
|
12619
|
-
const additionCountResult = readPositiveInteger(line, index + 1);
|
|
12620
|
-
if (additionCountResult == null) return;
|
|
12621
|
-
additionCount = additionCountResult.value;
|
|
12622
|
-
index = additionCountResult.endIndex;
|
|
12623
|
-
}
|
|
12624
|
-
if (line[index] !== " " || line[index + 1] !== "@" || line[index + 2] !== "@") return;
|
|
12625
|
-
let hunkContext;
|
|
12626
|
-
const contextStartIndex = index + 3;
|
|
12627
|
-
if (line[contextStartIndex] === " ") hunkContext = trimLineEnd(line.slice(contextStartIndex + 1));
|
|
12628
|
-
return {
|
|
12629
|
-
additionCount,
|
|
12630
|
-
additionStart,
|
|
12631
|
-
deletionCount,
|
|
12632
|
-
deletionStart,
|
|
12633
|
-
hunkContext
|
|
12634
|
-
};
|
|
12635
|
-
}
|
|
12636
|
-
function readPositiveInteger(value, startIndex) {
|
|
12637
|
-
let index = startIndex;
|
|
12638
|
-
let parsedValue = 0;
|
|
12639
|
-
for (; index < value.length; index++) {
|
|
12640
|
-
const digit = value.charCodeAt(index) - 48;
|
|
12641
|
-
if (digit < 0 || digit > 9) break;
|
|
12642
|
-
parsedValue = parsedValue * 10 + digit;
|
|
12643
|
-
}
|
|
12644
|
-
if (index === startIndex) return;
|
|
12645
|
-
return {
|
|
12646
|
-
value: parsedValue,
|
|
12647
|
-
endIndex: index
|
|
12648
|
-
};
|
|
12649
|
-
}
|
|
12650
|
-
function trimLineEnd(value) {
|
|
12651
|
-
if (value.endsWith("\r\n")) return value.slice(0, -2);
|
|
12652
|
-
if (value.endsWith("\n")) return value.slice(0, -1);
|
|
12653
|
-
return value;
|
|
12654
|
-
}
|
|
12655
|
-
function splitAtLinePrefix(contents, prefix) {
|
|
12656
|
-
if (contents.length === 0) return [""];
|
|
12657
|
-
const newlinePrefix = `\n${prefix}`;
|
|
12658
|
-
const firstBoundaryIndex = contents.startsWith(prefix) ? 0 : findLinePrefixIndex(contents, newlinePrefix, 0);
|
|
12659
|
-
if (firstBoundaryIndex === -1) return [contents];
|
|
12660
|
-
const parts = [];
|
|
12661
|
-
if (firstBoundaryIndex > 0) parts.push(contents.slice(0, firstBoundaryIndex));
|
|
12662
|
-
let startIndex = firstBoundaryIndex;
|
|
12663
|
-
for (;;) {
|
|
12664
|
-
const nextBoundaryIndex = findLinePrefixIndex(contents, newlinePrefix, startIndex + 1);
|
|
12665
|
-
if (nextBoundaryIndex === -1) break;
|
|
12666
|
-
parts.push(contents.slice(startIndex, nextBoundaryIndex));
|
|
12667
|
-
startIndex = nextBoundaryIndex;
|
|
12668
|
-
}
|
|
12669
|
-
parts.push(contents.slice(startIndex));
|
|
12670
|
-
return parts;
|
|
12671
|
-
}
|
|
12672
|
-
function findLinePrefixIndex(contents, newlinePrefix, fromIndex) {
|
|
12673
|
-
const index = contents.indexOf(newlinePrefix, fromIndex);
|
|
12674
|
-
return index === -1 ? -1 : index + 1;
|
|
12675
|
-
}
|
|
12676
|
-
function maybeDetachOptionalString(value) {
|
|
12677
|
-
return value == null ? value : detachString(value);
|
|
12678
|
-
}
|
|
12679
|
-
function parseRawLineType(firstChar) {
|
|
12680
|
-
return firstChar === " " ? "context" : firstChar === "\\" ? "metadata" : firstChar === "+" ? "addition" : "deletion";
|
|
12681
|
-
}
|
|
12682
|
-
function getParsedLineContent(rawLine) {
|
|
12683
|
-
const processedLine = rawLine.slice(1);
|
|
12684
|
-
return detachString(processedLine === "" ? "\n" : processedLine);
|
|
12685
|
-
}
|
|
12686
|
-
function createContentGroup(type, deletionLineIndex, additionLineIndex) {
|
|
12687
|
-
if (type === "change") return {
|
|
12688
|
-
type: "change",
|
|
12689
|
-
additions: 0,
|
|
12690
|
-
deletions: 0,
|
|
12691
|
-
additionLineIndex,
|
|
12692
|
-
deletionLineIndex
|
|
12693
|
-
};
|
|
12694
|
-
return {
|
|
12695
|
-
type: "context",
|
|
12696
|
-
lines: 0,
|
|
12697
|
-
additionLineIndex,
|
|
12698
|
-
deletionLineIndex
|
|
12699
|
-
};
|
|
12700
|
-
}
|
|
12701
|
-
//#endregion
|
|
12702
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/base.js
|
|
12703
|
-
var Diff = class {
|
|
12704
|
-
diff(oldStr, newStr, options = {}) {
|
|
12705
|
-
let callback;
|
|
12706
|
-
if (typeof options === "function") {
|
|
12707
|
-
callback = options;
|
|
12708
|
-
options = {};
|
|
12709
|
-
} else if ("callback" in options) callback = options.callback;
|
|
12710
|
-
const oldString = this.castInput(oldStr, options);
|
|
12711
|
-
const newString = this.castInput(newStr, options);
|
|
12712
|
-
const oldTokens = this.removeEmpty(this.tokenize(oldString, options));
|
|
12713
|
-
const newTokens = this.removeEmpty(this.tokenize(newString, options));
|
|
12714
|
-
return this.diffWithOptionsObj(oldTokens, newTokens, options, callback);
|
|
12715
|
-
}
|
|
12716
|
-
diffWithOptionsObj(oldTokens, newTokens, options, callback) {
|
|
12717
|
-
var _a;
|
|
12718
|
-
const done = (value) => {
|
|
12719
|
-
value = this.postProcess(value, options);
|
|
12720
|
-
if (callback) {
|
|
12721
|
-
setTimeout(function() {
|
|
12722
|
-
callback(value);
|
|
12723
|
-
}, 0);
|
|
12724
|
-
return;
|
|
12725
|
-
} else return value;
|
|
12726
|
-
};
|
|
12727
|
-
const newLen = newTokens.length, oldLen = oldTokens.length;
|
|
12728
|
-
let editLength = 1;
|
|
12729
|
-
let maxEditLength = newLen + oldLen;
|
|
12730
|
-
if (options.maxEditLength != null) maxEditLength = Math.min(maxEditLength, options.maxEditLength);
|
|
12731
|
-
const maxExecutionTime = (_a = options.timeout) !== null && _a !== void 0 ? _a : Infinity;
|
|
12732
|
-
const abortAfterTimestamp = Date.now() + maxExecutionTime;
|
|
12733
|
-
const bestPath = [{
|
|
12734
|
-
oldPos: -1,
|
|
12735
|
-
lastComponent: void 0
|
|
12736
|
-
}];
|
|
12737
|
-
let newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options);
|
|
12738
|
-
if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens));
|
|
12739
|
-
let minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;
|
|
12740
|
-
const execEditLength = () => {
|
|
12741
|
-
for (let diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {
|
|
12742
|
-
let basePath;
|
|
12743
|
-
const removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];
|
|
12744
|
-
if (removePath) bestPath[diagonalPath - 1] = void 0;
|
|
12745
|
-
let canAdd = false;
|
|
12746
|
-
if (addPath) {
|
|
12747
|
-
const addPathNewPos = addPath.oldPos - diagonalPath;
|
|
12748
|
-
canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;
|
|
12749
|
-
}
|
|
12750
|
-
const canRemove = removePath && removePath.oldPos + 1 < oldLen;
|
|
12751
|
-
if (!canAdd && !canRemove) {
|
|
12752
|
-
bestPath[diagonalPath] = void 0;
|
|
12753
|
-
continue;
|
|
12754
|
-
}
|
|
12755
|
-
if (!canRemove || canAdd && removePath.oldPos < addPath.oldPos) basePath = this.addToPath(addPath, true, false, 0, options);
|
|
12756
|
-
else basePath = this.addToPath(removePath, false, true, 1, options);
|
|
12757
|
-
newPos = this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options);
|
|
12758
|
-
if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) return done(this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true;
|
|
12759
|
-
else {
|
|
12760
|
-
bestPath[diagonalPath] = basePath;
|
|
12761
|
-
if (basePath.oldPos + 1 >= oldLen) maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);
|
|
12762
|
-
if (newPos + 1 >= newLen) minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);
|
|
12763
|
-
}
|
|
12764
|
-
}
|
|
12765
|
-
editLength++;
|
|
12766
|
-
};
|
|
12767
|
-
if (callback) (function exec() {
|
|
12768
|
-
setTimeout(function() {
|
|
12769
|
-
if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) return callback(void 0);
|
|
12770
|
-
if (!execEditLength()) exec();
|
|
12771
|
-
}, 0);
|
|
12772
|
-
})();
|
|
12773
|
-
else while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {
|
|
12774
|
-
const ret = execEditLength();
|
|
12775
|
-
if (ret) return ret;
|
|
12776
|
-
}
|
|
12777
|
-
}
|
|
12778
|
-
addToPath(path, added, removed, oldPosInc, options) {
|
|
12779
|
-
const last = path.lastComponent;
|
|
12780
|
-
if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) return {
|
|
12781
|
-
oldPos: path.oldPos + oldPosInc,
|
|
12782
|
-
lastComponent: {
|
|
12783
|
-
count: last.count + 1,
|
|
12784
|
-
added,
|
|
12785
|
-
removed,
|
|
12786
|
-
previousComponent: last.previousComponent
|
|
12787
|
-
}
|
|
12788
|
-
};
|
|
12789
|
-
else return {
|
|
12790
|
-
oldPos: path.oldPos + oldPosInc,
|
|
12791
|
-
lastComponent: {
|
|
12792
|
-
count: 1,
|
|
12793
|
-
added,
|
|
12794
|
-
removed,
|
|
12795
|
-
previousComponent: last
|
|
12796
|
-
}
|
|
12797
|
-
};
|
|
12798
|
-
}
|
|
12799
|
-
extractCommon(basePath, newTokens, oldTokens, diagonalPath, options) {
|
|
12800
|
-
const newLen = newTokens.length, oldLen = oldTokens.length;
|
|
12801
|
-
let oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;
|
|
12802
|
-
while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options)) {
|
|
12803
|
-
newPos++;
|
|
12804
|
-
oldPos++;
|
|
12805
|
-
commonCount++;
|
|
12806
|
-
if (options.oneChangePerToken) basePath.lastComponent = {
|
|
12807
|
-
count: 1,
|
|
12808
|
-
previousComponent: basePath.lastComponent,
|
|
12809
|
-
added: false,
|
|
12810
|
-
removed: false
|
|
12811
|
-
};
|
|
12812
|
-
}
|
|
12813
|
-
if (commonCount && !options.oneChangePerToken) basePath.lastComponent = {
|
|
12814
|
-
count: commonCount,
|
|
12815
|
-
previousComponent: basePath.lastComponent,
|
|
12816
|
-
added: false,
|
|
12817
|
-
removed: false
|
|
12818
|
-
};
|
|
12819
|
-
basePath.oldPos = oldPos;
|
|
12820
|
-
return newPos;
|
|
12821
|
-
}
|
|
12822
|
-
equals(left, right, options) {
|
|
12823
|
-
if (options.comparator) return options.comparator(left, right);
|
|
12824
|
-
else return left === right || !!options.ignoreCase && left.toLowerCase() === right.toLowerCase();
|
|
12825
|
-
}
|
|
12826
|
-
removeEmpty(array) {
|
|
12827
|
-
const ret = [];
|
|
12828
|
-
for (let i = 0; i < array.length; i++) if (array[i]) ret.push(array[i]);
|
|
12829
|
-
return ret;
|
|
12830
|
-
}
|
|
12831
|
-
castInput(value, options) {
|
|
12832
|
-
return value;
|
|
12833
|
-
}
|
|
12834
|
-
tokenize(value, options) {
|
|
12835
|
-
return Array.from(value);
|
|
12836
|
-
}
|
|
12837
|
-
join(chars) {
|
|
12838
|
-
return chars.join("");
|
|
12839
|
-
}
|
|
12840
|
-
postProcess(changeObjects, options) {
|
|
12841
|
-
return changeObjects;
|
|
12842
|
-
}
|
|
12843
|
-
get useLongestToken() {
|
|
12844
|
-
return false;
|
|
12845
|
-
}
|
|
12846
|
-
buildValues(lastComponent, newTokens, oldTokens) {
|
|
12847
|
-
const components = [];
|
|
12848
|
-
let nextComponent;
|
|
12849
|
-
while (lastComponent) {
|
|
12850
|
-
components.push(lastComponent);
|
|
12851
|
-
nextComponent = lastComponent.previousComponent;
|
|
12852
|
-
delete lastComponent.previousComponent;
|
|
12853
|
-
lastComponent = nextComponent;
|
|
12854
|
-
}
|
|
12855
|
-
components.reverse();
|
|
12856
|
-
const componentLen = components.length;
|
|
12857
|
-
let componentPos = 0, newPos = 0, oldPos = 0;
|
|
12858
|
-
for (; componentPos < componentLen; componentPos++) {
|
|
12859
|
-
const component = components[componentPos];
|
|
12860
|
-
if (!component.removed) {
|
|
12861
|
-
if (!component.added && this.useLongestToken) {
|
|
12862
|
-
let value = newTokens.slice(newPos, newPos + component.count);
|
|
12863
|
-
value = value.map(function(value, i) {
|
|
12864
|
-
const oldValue = oldTokens[oldPos + i];
|
|
12865
|
-
return oldValue.length > value.length ? oldValue : value;
|
|
12866
|
-
});
|
|
12867
|
-
component.value = this.join(value);
|
|
12868
|
-
} else component.value = this.join(newTokens.slice(newPos, newPos + component.count));
|
|
12869
|
-
newPos += component.count;
|
|
12870
|
-
if (!component.added) oldPos += component.count;
|
|
12871
|
-
} else {
|
|
12872
|
-
component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count));
|
|
12873
|
-
oldPos += component.count;
|
|
12874
|
-
}
|
|
12875
|
-
}
|
|
12876
|
-
return components;
|
|
12877
|
-
}
|
|
12878
|
-
};
|
|
12879
|
-
//#endregion
|
|
12880
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/character.js
|
|
12881
|
-
var CharacterDiff = class extends Diff {};
|
|
12882
|
-
new CharacterDiff();
|
|
12883
|
-
//#endregion
|
|
12884
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/util/string.js
|
|
12885
|
-
function longestCommonPrefix(str1, str2) {
|
|
12886
|
-
let i;
|
|
12887
|
-
for (i = 0; i < str1.length && i < str2.length; i++) if (str1[i] != str2[i]) return str1.slice(0, i);
|
|
12888
|
-
return str1.slice(0, i);
|
|
12889
|
-
}
|
|
12890
|
-
function longestCommonSuffix(str1, str2) {
|
|
12891
|
-
let i;
|
|
12892
|
-
if (!str1 || !str2 || str1[str1.length - 1] != str2[str2.length - 1]) return "";
|
|
12893
|
-
for (i = 0; i < str1.length && i < str2.length; i++) if (str1[str1.length - (i + 1)] != str2[str2.length - (i + 1)]) return str1.slice(-i);
|
|
12894
|
-
return str1.slice(-i);
|
|
12895
|
-
}
|
|
12896
|
-
function replacePrefix(string, oldPrefix, newPrefix) {
|
|
12897
|
-
if (string.slice(0, oldPrefix.length) != oldPrefix) throw Error(`string ${JSON.stringify(string)} doesn't start with prefix ${JSON.stringify(oldPrefix)}; this is a bug`);
|
|
12898
|
-
return newPrefix + string.slice(oldPrefix.length);
|
|
12899
|
-
}
|
|
12900
|
-
function replaceSuffix(string, oldSuffix, newSuffix) {
|
|
12901
|
-
if (!oldSuffix) return string + newSuffix;
|
|
12902
|
-
if (string.slice(-oldSuffix.length) != oldSuffix) throw Error(`string ${JSON.stringify(string)} doesn't end with suffix ${JSON.stringify(oldSuffix)}; this is a bug`);
|
|
12903
|
-
return string.slice(0, -oldSuffix.length) + newSuffix;
|
|
12904
|
-
}
|
|
12905
|
-
function removePrefix(string, oldPrefix) {
|
|
12906
|
-
return replacePrefix(string, oldPrefix, "");
|
|
12907
|
-
}
|
|
12908
|
-
function removeSuffix(string, oldSuffix) {
|
|
12909
|
-
return replaceSuffix(string, oldSuffix, "");
|
|
12910
|
-
}
|
|
12911
|
-
function maximumOverlap(string1, string2) {
|
|
12912
|
-
return string2.slice(0, overlapCount(string1, string2));
|
|
12913
|
-
}
|
|
12914
|
-
function overlapCount(a, b) {
|
|
12915
|
-
let startA = 0;
|
|
12916
|
-
if (a.length > b.length) startA = a.length - b.length;
|
|
12917
|
-
let endB = b.length;
|
|
12918
|
-
if (a.length < b.length) endB = a.length;
|
|
12919
|
-
const map = Array(endB);
|
|
12920
|
-
let k = 0;
|
|
12921
|
-
map[0] = 0;
|
|
12922
|
-
for (let j = 1; j < endB; j++) {
|
|
12923
|
-
if (b[j] == b[k]) map[j] = map[k];
|
|
12924
|
-
else map[j] = k;
|
|
12925
|
-
while (k > 0 && b[j] != b[k]) k = map[k];
|
|
12926
|
-
if (b[j] == b[k]) k++;
|
|
12927
|
-
}
|
|
12928
|
-
k = 0;
|
|
12929
|
-
for (let i = startA; i < a.length; i++) {
|
|
12930
|
-
while (k > 0 && a[i] != b[k]) k = map[k];
|
|
12931
|
-
if (a[i] == b[k]) k++;
|
|
12932
|
-
}
|
|
12933
|
-
return k;
|
|
12934
|
-
}
|
|
12935
|
-
/**
|
|
12936
|
-
* Split a string into segments using a word segmenter, merging consecutive
|
|
12937
|
-
* segments if they are both whitespace segments. Whitespace segments can
|
|
12938
|
-
* appear adjacent to one another for two reasons:
|
|
12939
|
-
* - newlines always get their own segment
|
|
12940
|
-
* - where a diacritic is attached to a whitespace character in the text, the
|
|
12941
|
-
* segment ends after the diacritic, so e.g. " \u0300 " becomes two segments.
|
|
12942
|
-
* This function therefore runs the segmenter's .segment() method and then
|
|
12943
|
-
* merges consecutive segments of whitespace into a single part.
|
|
12944
|
-
*/
|
|
12945
|
-
function segment(string, segmenter) {
|
|
12946
|
-
const parts = [];
|
|
12947
|
-
for (const segmentObj of Array.from(segmenter.segment(string))) {
|
|
12948
|
-
const segment = segmentObj.segment;
|
|
12949
|
-
if (parts.length && /\s/.test(parts[parts.length - 1]) && /\s/.test(segment)) parts[parts.length - 1] += segment;
|
|
12950
|
-
else parts.push(segment);
|
|
12951
|
-
}
|
|
12952
|
-
return parts;
|
|
12953
|
-
}
|
|
12954
|
-
function trailingWs(string, segmenter) {
|
|
12955
|
-
if (segmenter) return leadingAndTrailingWs(string, segmenter)[1];
|
|
12956
|
-
let i;
|
|
12957
|
-
for (i = string.length - 1; i >= 0; i--) if (!string[i].match(/\s/)) break;
|
|
12958
|
-
return string.substring(i + 1);
|
|
12959
|
-
}
|
|
12960
|
-
function leadingWs(string, segmenter) {
|
|
12961
|
-
if (segmenter) return leadingAndTrailingWs(string, segmenter)[0];
|
|
12962
|
-
const match = string.match(/^\s*/);
|
|
12963
|
-
return match ? match[0] : "";
|
|
12964
|
-
}
|
|
12965
|
-
function leadingAndTrailingWs(string, segmenter) {
|
|
12966
|
-
if (!segmenter) return [leadingWs(string), trailingWs(string)];
|
|
12967
|
-
if (segmenter.resolvedOptions().granularity != "word") throw new Error("The segmenter passed must have a granularity of \"word\"");
|
|
12968
|
-
const segments = segment(string, segmenter);
|
|
12969
|
-
const firstSeg = segments[0];
|
|
12970
|
-
const lastSeg = segments[segments.length - 1];
|
|
12971
|
-
return [/\s/.test(firstSeg) ? firstSeg : "", /\s/.test(lastSeg) ? lastSeg : ""];
|
|
12972
|
-
}
|
|
12973
|
-
//#endregion
|
|
12974
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/word.js
|
|
12975
|
-
var extendedWordChars = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}";
|
|
12976
|
-
var tokenizeIncludingWhitespace = new RegExp(`[${extendedWordChars}]+|\\s+|[^${extendedWordChars}]`, "ug");
|
|
12977
|
-
var WordDiff = class extends Diff {
|
|
12978
|
-
equals(left, right, options) {
|
|
12979
|
-
if (options.ignoreCase) {
|
|
12980
|
-
left = left.toLowerCase();
|
|
12981
|
-
right = right.toLowerCase();
|
|
12982
|
-
}
|
|
12983
|
-
return left.trim() === right.trim();
|
|
12984
|
-
}
|
|
12985
|
-
tokenize(value, options = {}) {
|
|
12986
|
-
let parts;
|
|
12987
|
-
if (options.intlSegmenter) {
|
|
12988
|
-
const segmenter = options.intlSegmenter;
|
|
12989
|
-
if (segmenter.resolvedOptions().granularity != "word") throw new Error("The segmenter passed must have a granularity of \"word\"");
|
|
12990
|
-
parts = segment(value, segmenter);
|
|
12991
|
-
} else parts = value.match(tokenizeIncludingWhitespace) || [];
|
|
12992
|
-
const tokens = [];
|
|
12993
|
-
let prevPart = null;
|
|
12994
|
-
parts.forEach((part) => {
|
|
12995
|
-
if (/\s/.test(part)) {
|
|
12996
|
-
if (prevPart == null) tokens.push(part);
|
|
12997
|
-
else tokens.push(tokens.pop() + part);
|
|
12998
|
-
} else if (prevPart != null && /\s/.test(prevPart)) {
|
|
12999
|
-
if (tokens[tokens.length - 1] == prevPart) tokens.push(tokens.pop() + part);
|
|
13000
|
-
else tokens.push(prevPart + part);
|
|
13001
|
-
} else tokens.push(part);
|
|
13002
|
-
prevPart = part;
|
|
13003
|
-
});
|
|
13004
|
-
return tokens;
|
|
13005
|
-
}
|
|
13006
|
-
join(tokens) {
|
|
13007
|
-
return tokens.map((token, i) => {
|
|
13008
|
-
if (i == 0) return token;
|
|
13009
|
-
else return token.replace(/^\s+/, "");
|
|
13010
|
-
}).join("");
|
|
13011
|
-
}
|
|
13012
|
-
postProcess(changes, options) {
|
|
13013
|
-
if (!changes || options.oneChangePerToken) return changes;
|
|
13014
|
-
let lastKeep = null;
|
|
13015
|
-
let insertion = null;
|
|
13016
|
-
let deletion = null;
|
|
13017
|
-
changes.forEach((change) => {
|
|
13018
|
-
if (change.added) insertion = change;
|
|
13019
|
-
else if (change.removed) deletion = change;
|
|
13020
|
-
else {
|
|
13021
|
-
if (insertion || deletion) dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, change, options.intlSegmenter);
|
|
13022
|
-
lastKeep = change;
|
|
13023
|
-
insertion = null;
|
|
13024
|
-
deletion = null;
|
|
13025
|
-
}
|
|
13026
|
-
});
|
|
13027
|
-
if (insertion || deletion) dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, null, options.intlSegmenter);
|
|
13028
|
-
return changes;
|
|
13029
|
-
}
|
|
13030
|
-
};
|
|
13031
|
-
new WordDiff();
|
|
13032
|
-
function dedupeWhitespaceInChangeObjects(startKeep, deletion, insertion, endKeep, segmenter) {
|
|
13033
|
-
if (deletion && insertion) {
|
|
13034
|
-
const [oldWsPrefix, oldWsSuffix] = leadingAndTrailingWs(deletion.value, segmenter);
|
|
13035
|
-
const [newWsPrefix, newWsSuffix] = leadingAndTrailingWs(insertion.value, segmenter);
|
|
13036
|
-
if (startKeep) {
|
|
13037
|
-
const commonWsPrefix = longestCommonPrefix(oldWsPrefix, newWsPrefix);
|
|
13038
|
-
startKeep.value = replaceSuffix(startKeep.value, newWsPrefix, commonWsPrefix);
|
|
13039
|
-
deletion.value = removePrefix(deletion.value, commonWsPrefix);
|
|
13040
|
-
insertion.value = removePrefix(insertion.value, commonWsPrefix);
|
|
13041
|
-
}
|
|
13042
|
-
if (endKeep) {
|
|
13043
|
-
const commonWsSuffix = longestCommonSuffix(oldWsSuffix, newWsSuffix);
|
|
13044
|
-
endKeep.value = replacePrefix(endKeep.value, newWsSuffix, commonWsSuffix);
|
|
13045
|
-
deletion.value = removeSuffix(deletion.value, commonWsSuffix);
|
|
13046
|
-
insertion.value = removeSuffix(insertion.value, commonWsSuffix);
|
|
13047
|
-
}
|
|
13048
|
-
} else if (insertion) {
|
|
13049
|
-
if (startKeep) {
|
|
13050
|
-
const ws = leadingWs(insertion.value, segmenter);
|
|
13051
|
-
insertion.value = insertion.value.substring(ws.length);
|
|
13052
|
-
}
|
|
13053
|
-
if (endKeep) {
|
|
13054
|
-
const ws = leadingWs(endKeep.value, segmenter);
|
|
13055
|
-
endKeep.value = endKeep.value.substring(ws.length);
|
|
13056
|
-
}
|
|
13057
|
-
} else if (startKeep && endKeep) {
|
|
13058
|
-
const newWsFull = leadingWs(endKeep.value, segmenter), [delWsStart, delWsEnd] = leadingAndTrailingWs(deletion.value, segmenter);
|
|
13059
|
-
const newWsStart = longestCommonPrefix(newWsFull, delWsStart);
|
|
13060
|
-
deletion.value = removePrefix(deletion.value, newWsStart);
|
|
13061
|
-
const newWsEnd = longestCommonSuffix(removePrefix(newWsFull, newWsStart), delWsEnd);
|
|
13062
|
-
deletion.value = removeSuffix(deletion.value, newWsEnd);
|
|
13063
|
-
endKeep.value = replacePrefix(endKeep.value, newWsFull, newWsEnd);
|
|
13064
|
-
startKeep.value = replaceSuffix(startKeep.value, newWsFull, newWsFull.slice(0, newWsFull.length - newWsEnd.length));
|
|
13065
|
-
} else if (endKeep) {
|
|
13066
|
-
const endKeepWsPrefix = leadingWs(endKeep.value, segmenter);
|
|
13067
|
-
const overlap = maximumOverlap(trailingWs(deletion.value, segmenter), endKeepWsPrefix);
|
|
13068
|
-
deletion.value = removeSuffix(deletion.value, overlap);
|
|
13069
|
-
} else if (startKeep) {
|
|
13070
|
-
const overlap = maximumOverlap(trailingWs(startKeep.value, segmenter), leadingWs(deletion.value, segmenter));
|
|
13071
|
-
deletion.value = removePrefix(deletion.value, overlap);
|
|
13072
|
-
}
|
|
13073
|
-
}
|
|
13074
|
-
var WordsWithSpaceDiff = class extends Diff {
|
|
13075
|
-
tokenize(value) {
|
|
13076
|
-
const regex = new RegExp(`(\\r?\\n)|[${extendedWordChars}]+|[^\\S\\n\\r]+|[^${extendedWordChars}]`, "ug");
|
|
13077
|
-
return value.match(regex) || [];
|
|
13078
|
-
}
|
|
13079
|
-
};
|
|
13080
|
-
new WordsWithSpaceDiff();
|
|
13081
|
-
//#endregion
|
|
13082
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/line.js
|
|
13083
|
-
var LineDiff = class extends Diff {
|
|
13084
|
-
constructor() {
|
|
13085
|
-
super(...arguments);
|
|
13086
|
-
this.tokenize = tokenize;
|
|
13087
|
-
}
|
|
13088
|
-
equals(left, right, options) {
|
|
13089
|
-
if (options.ignoreWhitespace) {
|
|
13090
|
-
if (!options.newlineIsToken || !left.includes("\n")) left = left.trim();
|
|
13091
|
-
if (!options.newlineIsToken || !right.includes("\n")) right = right.trim();
|
|
13092
|
-
} else if (options.ignoreNewlineAtEof && !options.newlineIsToken) {
|
|
13093
|
-
if (left.endsWith("\n")) left = left.slice(0, -1);
|
|
13094
|
-
if (right.endsWith("\n")) right = right.slice(0, -1);
|
|
13095
|
-
}
|
|
13096
|
-
return super.equals(left, right, options);
|
|
13097
|
-
}
|
|
13098
|
-
};
|
|
13099
|
-
var lineDiff = new LineDiff();
|
|
13100
|
-
function diffLines(oldStr, newStr, options) {
|
|
13101
|
-
return lineDiff.diff(oldStr, newStr, options);
|
|
13102
|
-
}
|
|
13103
|
-
function tokenize(value, options) {
|
|
13104
|
-
if (options.stripTrailingCr) value = value.replace(/\r\n/g, "\n");
|
|
13105
|
-
const retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/);
|
|
13106
|
-
if (!linesAndNewlines[linesAndNewlines.length - 1]) linesAndNewlines.pop();
|
|
13107
|
-
for (let i = 0; i < linesAndNewlines.length; i++) {
|
|
13108
|
-
const line = linesAndNewlines[i];
|
|
13109
|
-
if (i % 2 && !options.newlineIsToken) retLines[retLines.length - 1] += line;
|
|
13110
|
-
else retLines.push(line);
|
|
13111
|
-
}
|
|
13112
|
-
return retLines;
|
|
13113
|
-
}
|
|
13114
|
-
//#endregion
|
|
13115
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/sentence.js
|
|
13116
|
-
function isSentenceEndPunct(char) {
|
|
13117
|
-
return char == "." || char == "!" || char == "?";
|
|
13118
|
-
}
|
|
13119
|
-
var SentenceDiff = class extends Diff {
|
|
13120
|
-
tokenize(value) {
|
|
13121
|
-
var _a;
|
|
13122
|
-
const result = [];
|
|
13123
|
-
let tokenStartI = 0;
|
|
13124
|
-
for (let i = 0; i < value.length; i++) {
|
|
13125
|
-
if (i == value.length - 1) {
|
|
13126
|
-
result.push(value.slice(tokenStartI));
|
|
13127
|
-
break;
|
|
13128
|
-
}
|
|
13129
|
-
if (isSentenceEndPunct(value[i]) && value[i + 1].match(/\s/)) {
|
|
13130
|
-
result.push(value.slice(tokenStartI, i + 1));
|
|
13131
|
-
i = tokenStartI = i + 1;
|
|
13132
|
-
while ((_a = value[i + 1]) === null || _a === void 0 ? void 0 : _a.match(/\s/)) i++;
|
|
13133
|
-
result.push(value.slice(tokenStartI, i + 1));
|
|
13134
|
-
tokenStartI = i + 1;
|
|
13135
|
-
}
|
|
13136
|
-
}
|
|
13137
|
-
return result;
|
|
13138
|
-
}
|
|
13139
|
-
};
|
|
13140
|
-
new SentenceDiff();
|
|
13141
|
-
//#endregion
|
|
13142
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/css.js
|
|
13143
|
-
var CssDiff = class extends Diff {
|
|
13144
|
-
tokenize(value) {
|
|
13145
|
-
return value.split(/([{}:;,]|\s+)/);
|
|
13146
|
-
}
|
|
13147
|
-
};
|
|
13148
|
-
new CssDiff();
|
|
13149
|
-
//#endregion
|
|
13150
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/json.js
|
|
13151
|
-
var JsonDiff = class extends Diff {
|
|
13152
|
-
constructor() {
|
|
13153
|
-
super(...arguments);
|
|
13154
|
-
this.tokenize = tokenize;
|
|
13155
|
-
}
|
|
13156
|
-
get useLongestToken() {
|
|
13157
|
-
return true;
|
|
13158
|
-
}
|
|
13159
|
-
castInput(value, options) {
|
|
13160
|
-
const { undefinedReplacement, stringifyReplacer = (k, v) => typeof v === "undefined" ? undefinedReplacement : v } = options;
|
|
13161
|
-
return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), null, " ");
|
|
13162
|
-
}
|
|
13163
|
-
equals(left, right, options) {
|
|
13164
|
-
return super.equals(left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1"), options);
|
|
13165
|
-
}
|
|
13166
|
-
};
|
|
13167
|
-
new JsonDiff();
|
|
13168
|
-
function canonicalize(obj, stack, replacementStack, replacer, key) {
|
|
13169
|
-
stack = stack || [];
|
|
13170
|
-
replacementStack = replacementStack || [];
|
|
13171
|
-
if (replacer) obj = replacer(key === void 0 ? "" : key, obj);
|
|
13172
|
-
let i;
|
|
13173
|
-
for (i = 0; i < stack.length; i += 1) if (stack[i] === obj) return replacementStack[i];
|
|
13174
|
-
let canonicalizedObj;
|
|
13175
|
-
if ("[object Array]" === Object.prototype.toString.call(obj)) {
|
|
13176
|
-
stack.push(obj);
|
|
13177
|
-
canonicalizedObj = new Array(obj.length);
|
|
13178
|
-
replacementStack.push(canonicalizedObj);
|
|
13179
|
-
for (i = 0; i < obj.length; i += 1) canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, String(i));
|
|
13180
|
-
stack.pop();
|
|
13181
|
-
replacementStack.pop();
|
|
13182
|
-
return canonicalizedObj;
|
|
13183
|
-
}
|
|
13184
|
-
if (obj && obj.toJSON) obj = obj.toJSON();
|
|
13185
|
-
if (typeof obj === "object" && obj !== null) {
|
|
13186
|
-
stack.push(obj);
|
|
13187
|
-
canonicalizedObj = {};
|
|
13188
|
-
replacementStack.push(canonicalizedObj);
|
|
13189
|
-
const sortedKeys = [];
|
|
13190
|
-
let key;
|
|
13191
|
-
for (key in obj)
|
|
13192
|
-
/* istanbul ignore else */
|
|
13193
|
-
if (Object.prototype.hasOwnProperty.call(obj, key)) sortedKeys.push(key);
|
|
13194
|
-
sortedKeys.sort();
|
|
13195
|
-
for (i = 0; i < sortedKeys.length; i += 1) {
|
|
13196
|
-
key = sortedKeys[i];
|
|
13197
|
-
canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack, replacer, key);
|
|
13198
|
-
}
|
|
13199
|
-
stack.pop();
|
|
13200
|
-
replacementStack.pop();
|
|
13201
|
-
} else canonicalizedObj = obj;
|
|
13202
|
-
return canonicalizedObj;
|
|
13203
|
-
}
|
|
13204
|
-
//#endregion
|
|
13205
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/array.js
|
|
13206
|
-
var ArrayDiff = class extends Diff {
|
|
13207
|
-
tokenize(value) {
|
|
13208
|
-
return value.slice();
|
|
13209
|
-
}
|
|
13210
|
-
join(value) {
|
|
13211
|
-
return value;
|
|
13212
|
-
}
|
|
13213
|
-
removeEmpty(value) {
|
|
13214
|
-
return value;
|
|
13215
|
-
}
|
|
13216
|
-
};
|
|
13217
|
-
new ArrayDiff();
|
|
13218
|
-
//#endregion
|
|
13219
|
-
//#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/patch/create.js
|
|
13220
|
-
/**
|
|
13221
|
-
* Returns true if the filename contains characters that require C-style
|
|
13222
|
-
* quoting (as used by Git and GNU diffutils in diff output).
|
|
13223
|
-
*/
|
|
13224
|
-
function needsQuoting(s) {
|
|
13225
|
-
for (let i = 0; i < s.length; i++) if (s[i] < " " || s[i] > "~" || s[i] === "\"" || s[i] === "\\") return true;
|
|
13226
|
-
return false;
|
|
13227
|
-
}
|
|
13228
|
-
/**
|
|
13229
|
-
* C-style quotes a filename, encoding special characters as escape sequences
|
|
13230
|
-
* and non-ASCII bytes as octal escapes. This is the inverse of
|
|
13231
|
-
* `parseQuotedFileName` in parse.ts.
|
|
13232
|
-
*
|
|
13233
|
-
* Non-ASCII bytes are encoded as UTF-8 before being emitted as octal escapes.
|
|
13234
|
-
* This matches the behaviour of both Git and GNU diffutils, which always emit
|
|
13235
|
-
* UTF-8 octal escapes regardless of the underlying filesystem encoding (e.g.
|
|
13236
|
-
* Git for Windows converts from NTFS's UTF-16 to UTF-8 internally).
|
|
13237
|
-
*
|
|
13238
|
-
* If the filename doesn't need quoting, returns it as-is.
|
|
13239
|
-
*/
|
|
13240
|
-
function quoteFileNameIfNeeded(s) {
|
|
13241
|
-
if (!needsQuoting(s)) return s;
|
|
13242
|
-
let result = "\"";
|
|
13243
|
-
const bytes = new TextEncoder().encode(s);
|
|
13244
|
-
let i = 0;
|
|
13245
|
-
while (i < bytes.length) {
|
|
13246
|
-
const b = bytes[i];
|
|
13247
|
-
if (b === 7) result += "\\a";
|
|
13248
|
-
else if (b === 8) result += "\\b";
|
|
13249
|
-
else if (b === 9) result += "\\t";
|
|
13250
|
-
else if (b === 10) result += "\\n";
|
|
13251
|
-
else if (b === 11) result += "\\v";
|
|
13252
|
-
else if (b === 12) result += "\\f";
|
|
13253
|
-
else if (b === 13) result += "\\r";
|
|
13254
|
-
else if (b === 34) result += "\\\"";
|
|
13255
|
-
else if (b === 92) result += "\\\\";
|
|
13256
|
-
else if (b >= 32 && b <= 126) result += String.fromCharCode(b);
|
|
13257
|
-
else result += "\\" + b.toString(8).padStart(3, "0");
|
|
13258
|
-
i++;
|
|
13259
|
-
}
|
|
13260
|
-
result += "\"";
|
|
13261
|
-
return result;
|
|
13262
|
-
}
|
|
13263
|
-
var INCLUDE_HEADERS = {
|
|
13264
|
-
includeIndex: true,
|
|
13265
|
-
includeUnderline: true,
|
|
13266
|
-
includeFileHeaders: true
|
|
13267
|
-
};
|
|
13268
|
-
function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
|
|
13269
|
-
let optionsObj;
|
|
13270
|
-
if (!options) optionsObj = {};
|
|
13271
|
-
else if (typeof options === "function") optionsObj = { callback: options };
|
|
13272
|
-
else optionsObj = options;
|
|
13273
|
-
if (typeof optionsObj.context === "undefined") optionsObj.context = 4;
|
|
13274
|
-
const context = optionsObj.context;
|
|
13275
|
-
if (optionsObj.newlineIsToken) throw new Error("newlineIsToken may not be used with patch-generation functions, only with diffing functions");
|
|
13276
|
-
if (!optionsObj.callback) return diffLinesResultToPatch(diffLines(oldStr, newStr, optionsObj));
|
|
13277
|
-
else {
|
|
13278
|
-
const { callback } = optionsObj;
|
|
13279
|
-
diffLines(oldStr, newStr, Object.assign(Object.assign({}, optionsObj), { callback: (diff) => {
|
|
13280
|
-
const patch = diffLinesResultToPatch(diff);
|
|
13281
|
-
callback(patch);
|
|
13282
|
-
} }));
|
|
13283
|
-
}
|
|
13284
|
-
function diffLinesResultToPatch(diff) {
|
|
13285
|
-
if (!diff) return;
|
|
13286
|
-
diff.push({
|
|
13287
|
-
value: "",
|
|
13288
|
-
lines: []
|
|
13289
|
-
});
|
|
13290
|
-
function contextLines(lines) {
|
|
13291
|
-
return lines.map(function(entry) {
|
|
13292
|
-
return " " + entry;
|
|
13293
|
-
});
|
|
13294
|
-
}
|
|
13295
|
-
const hunks = [];
|
|
13296
|
-
let oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;
|
|
13297
|
-
for (let i = 0; i < diff.length; i++) {
|
|
13298
|
-
const current = diff[i], lines = current.lines || splitLines(current.value);
|
|
13299
|
-
current.lines = lines;
|
|
13300
|
-
if (current.added || current.removed) {
|
|
13301
|
-
if (!oldRangeStart) {
|
|
13302
|
-
const prev = diff[i - 1];
|
|
13303
|
-
oldRangeStart = oldLine;
|
|
13304
|
-
newRangeStart = newLine;
|
|
13305
|
-
if (prev) {
|
|
13306
|
-
curRange = context > 0 ? contextLines(prev.lines.slice(-context)) : [];
|
|
13307
|
-
oldRangeStart -= curRange.length;
|
|
13308
|
-
newRangeStart -= curRange.length;
|
|
13309
|
-
}
|
|
13310
|
-
}
|
|
13311
|
-
for (const line of lines) curRange.push((current.added ? "+" : "-") + line);
|
|
13312
|
-
if (current.added) newLine += lines.length;
|
|
13313
|
-
else oldLine += lines.length;
|
|
13314
|
-
} else {
|
|
13315
|
-
if (oldRangeStart) {
|
|
13316
|
-
if (lines.length <= context * 2 && i < diff.length - 2) for (const line of contextLines(lines)) curRange.push(line);
|
|
13317
|
-
else {
|
|
13318
|
-
const contextSize = Math.min(lines.length, context);
|
|
13319
|
-
for (const line of contextLines(lines.slice(0, contextSize))) curRange.push(line);
|
|
13320
|
-
const hunk = {
|
|
13321
|
-
oldStart: oldRangeStart,
|
|
13322
|
-
oldLines: oldLine - oldRangeStart + contextSize,
|
|
13323
|
-
newStart: newRangeStart,
|
|
13324
|
-
newLines: newLine - newRangeStart + contextSize,
|
|
13325
|
-
lines: curRange
|
|
13326
|
-
};
|
|
13327
|
-
hunks.push(hunk);
|
|
13328
|
-
oldRangeStart = 0;
|
|
13329
|
-
newRangeStart = 0;
|
|
13330
|
-
curRange = [];
|
|
13331
|
-
}
|
|
13332
|
-
}
|
|
13333
|
-
oldLine += lines.length;
|
|
13334
|
-
newLine += lines.length;
|
|
13335
|
-
}
|
|
13336
|
-
}
|
|
13337
|
-
for (const hunk of hunks) for (let i = 0; i < hunk.lines.length; i++) if (hunk.lines[i].endsWith("\n")) hunk.lines[i] = hunk.lines[i].slice(0, -1);
|
|
13338
|
-
else {
|
|
13339
|
-
hunk.lines.splice(i + 1, 0, "\");
|
|
13340
|
-
i++;
|
|
13341
|
-
}
|
|
13342
|
-
return {
|
|
13343
|
-
oldFileName,
|
|
13344
|
-
newFileName,
|
|
13345
|
-
oldHeader,
|
|
13346
|
-
newHeader,
|
|
13347
|
-
hunks
|
|
13348
|
-
};
|
|
13349
|
-
}
|
|
13350
|
-
}
|
|
13351
|
-
/**
|
|
13352
|
-
* creates a unified diff patch.
|
|
13353
|
-
*
|
|
13354
|
-
* @param patch either a single structured patch object (as returned by `structuredPatch`) or an
|
|
13355
|
-
* array of them (as returned by `parsePatch`).
|
|
13356
|
-
* @param headerOptions behaves the same as the `headerOptions` option of `createTwoFilesPatch`.
|
|
13357
|
-
* Ignored for patches where `isGit` is `true`.
|
|
13358
|
-
*
|
|
13359
|
-
* When a patch has `isGit: true`, `formatPatch` output is changed to more closely match Git's
|
|
13360
|
-
* output: it emits a `diff --git` header, emits Git extended headers as appropriate based on
|
|
13361
|
-
* properties like `isRename`, `isCreate`, `newMode`, etc, and will omit `---`/`+++` file
|
|
13362
|
-
* headers for patches with no hunks (e.g. renames without content changes).
|
|
13363
|
-
*/
|
|
13364
|
-
function formatPatch(patch, headerOptions) {
|
|
13365
|
-
var _a, _b, _c, _d, _e, _f;
|
|
13366
|
-
if (!headerOptions) headerOptions = INCLUDE_HEADERS;
|
|
13367
|
-
if (Array.isArray(patch)) {
|
|
13368
|
-
if (patch.length > 1 && !headerOptions.includeFileHeaders && !patch.every((p) => p.isGit)) throw new Error("Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)");
|
|
13369
|
-
return patch.map((p) => formatPatch(p, headerOptions)).join("\n");
|
|
13370
|
-
}
|
|
13371
|
-
const ret = [];
|
|
13372
|
-
if (patch.isGit) {
|
|
13373
|
-
headerOptions = INCLUDE_HEADERS;
|
|
13374
|
-
if (!patch.oldFileName) throw new Error("oldFileName must be specified for Git patches");
|
|
13375
|
-
if (!patch.newFileName) throw new Error("newFileName must be specified for Git patches");
|
|
13376
|
-
let gitOldName = patch.oldFileName;
|
|
13377
|
-
let gitNewName = patch.newFileName;
|
|
13378
|
-
if (patch.isCreate && gitOldName === "/dev/null") gitOldName = gitNewName.replace(/^b\//, "a/");
|
|
13379
|
-
else if (patch.isDelete && gitNewName === "/dev/null") gitNewName = gitOldName.replace(/^a\//, "b/");
|
|
13380
|
-
ret.push("diff --git " + quoteFileNameIfNeeded(gitOldName) + " " + quoteFileNameIfNeeded(gitNewName));
|
|
13381
|
-
if (patch.isDelete) ret.push("deleted file mode " + ((_a = patch.oldMode) !== null && _a !== void 0 ? _a : "100644"));
|
|
13382
|
-
if (patch.isCreate) ret.push("new file mode " + ((_b = patch.newMode) !== null && _b !== void 0 ? _b : "100644"));
|
|
13383
|
-
if (patch.oldMode && patch.newMode && !patch.isDelete && !patch.isCreate) {
|
|
13384
|
-
ret.push("old mode " + patch.oldMode);
|
|
13385
|
-
ret.push("new mode " + patch.newMode);
|
|
13386
|
-
}
|
|
13387
|
-
if (patch.isRename) {
|
|
13388
|
-
ret.push("rename from " + quoteFileNameIfNeeded(((_c = patch.oldFileName) !== null && _c !== void 0 ? _c : "").replace(/^a\//, "")));
|
|
13389
|
-
ret.push("rename to " + quoteFileNameIfNeeded(((_d = patch.newFileName) !== null && _d !== void 0 ? _d : "").replace(/^b\//, "")));
|
|
13390
|
-
}
|
|
13391
|
-
if (patch.isCopy) {
|
|
13392
|
-
ret.push("copy from " + quoteFileNameIfNeeded(((_e = patch.oldFileName) !== null && _e !== void 0 ? _e : "").replace(/^a\//, "")));
|
|
13393
|
-
ret.push("copy to " + quoteFileNameIfNeeded(((_f = patch.newFileName) !== null && _f !== void 0 ? _f : "").replace(/^b\//, "")));
|
|
13394
|
-
}
|
|
13395
|
-
} else {
|
|
13396
|
-
if (headerOptions.includeIndex && patch.oldFileName == patch.newFileName && patch.oldFileName !== void 0) ret.push("Index: " + patch.oldFileName);
|
|
13397
|
-
if (headerOptions.includeUnderline) ret.push("===================================================================");
|
|
13398
|
-
}
|
|
13399
|
-
const hasHunks = patch.hunks.length > 0;
|
|
13400
|
-
if (headerOptions.includeFileHeaders && patch.oldFileName !== void 0 && patch.newFileName !== void 0 && (!patch.isGit || hasHunks)) {
|
|
13401
|
-
ret.push("--- " + quoteFileNameIfNeeded(patch.oldFileName) + (patch.oldHeader ? " " + patch.oldHeader : ""));
|
|
13402
|
-
ret.push("+++ " + quoteFileNameIfNeeded(patch.newFileName) + (patch.newHeader ? " " + patch.newHeader : ""));
|
|
13403
|
-
}
|
|
13404
|
-
for (let i = 0; i < patch.hunks.length; i++) {
|
|
13405
|
-
const hunk = patch.hunks[i];
|
|
13406
|
-
const oldStart = hunk.oldLines === 0 ? hunk.oldStart - 1 : hunk.oldStart;
|
|
13407
|
-
const newStart = hunk.newLines === 0 ? hunk.newStart - 1 : hunk.newStart;
|
|
13408
|
-
ret.push("@@ -" + oldStart + "," + hunk.oldLines + " +" + newStart + "," + hunk.newLines + " @@");
|
|
13409
|
-
for (const line of hunk.lines) ret.push(line);
|
|
13410
|
-
}
|
|
13411
|
-
return ret.join("\n") + "\n";
|
|
13412
|
-
}
|
|
13413
|
-
function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
|
|
13414
|
-
if (typeof options === "function") options = { callback: options };
|
|
13415
|
-
if (!(options === null || options === void 0 ? void 0 : options.callback)) {
|
|
13416
|
-
const patchObj = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);
|
|
13417
|
-
if (!patchObj) return;
|
|
13418
|
-
return formatPatch(patchObj, options === null || options === void 0 ? void 0 : options.headerOptions);
|
|
13419
|
-
} else {
|
|
13420
|
-
const { callback } = options;
|
|
13421
|
-
structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, Object.assign(Object.assign({}, options), { callback: (patchObj) => {
|
|
13422
|
-
if (!patchObj) callback(void 0);
|
|
13423
|
-
else callback(formatPatch(patchObj, options.headerOptions));
|
|
13424
|
-
} }));
|
|
13425
|
-
}
|
|
13426
|
-
}
|
|
13427
|
-
/**
|
|
13428
|
-
* Split `text` into an array of lines, including the trailing newline character (where present)
|
|
13429
|
-
*/
|
|
13430
|
-
function splitLines(text) {
|
|
13431
|
-
const hasTrailingNl = text.endsWith("\n");
|
|
13432
|
-
const result = text.split("\n").map((line) => line + "\n");
|
|
13433
|
-
if (hasTrailingNl) result.pop();
|
|
13434
|
-
else result.push(result.pop().slice(0, -1));
|
|
13435
|
-
return result;
|
|
13436
|
-
}
|
|
13437
|
-
//#endregion
|
|
13438
|
-
//#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js
|
|
13439
|
-
var MISSING_FILE_NAME = "/dev/null";
|
|
13440
|
-
/**
|
|
13441
|
-
* Parses a diff from two file contents objects.
|
|
13442
|
-
*
|
|
13443
|
-
* If both `oldFile` and `newFile` have a `cacheKey`, the resulting diff will
|
|
13444
|
-
* automatically get a combined cache key in the format `oldKey:newKey`.
|
|
13445
|
-
*/
|
|
13446
|
-
function parseDiffFromFile(oldFile, newFile, options, throwOnError = false) {
|
|
13447
|
-
if (oldFile === null && newFile === null) throw new Error("parseDiffFromFile: You must pass oldFile, newFile, or both");
|
|
13448
|
-
const resolvedOldFile = oldFile ?? createMissingFile();
|
|
13449
|
-
const resolvedNewFile = newFile ?? createMissingFile();
|
|
13450
|
-
const fileData = processFile(createTwoFilesPatch(resolvedOldFile.name, resolvedNewFile.name, resolvedOldFile.contents, resolvedNewFile.contents, resolvedOldFile.header, resolvedNewFile.header, options), {
|
|
13451
|
-
cacheKey: (() => {
|
|
13452
|
-
const oldCacheKey = oldFile?.cacheKey ?? oldFile?.name;
|
|
13453
|
-
const newCacheKey = newFile?.cacheKey ?? newFile?.name;
|
|
13454
|
-
if (oldCacheKey != null && newCacheKey != null) return oldCacheKey + ":" + newCacheKey;
|
|
13455
|
-
return oldCacheKey ?? newCacheKey;
|
|
13456
|
-
})(),
|
|
13457
|
-
oldFile: resolvedOldFile,
|
|
13458
|
-
newFile: resolvedNewFile,
|
|
13459
|
-
throwOnError
|
|
13460
|
-
});
|
|
13461
|
-
if (fileData == null) throw new Error("parseDiffFrom: FileInvalid diff -- probably need to fix something -- if the files are the same maybe?");
|
|
13462
|
-
if (oldFile === null) {
|
|
13463
|
-
fileData.type = "new";
|
|
13464
|
-
fileData.prevName = void 0;
|
|
13465
|
-
} else if (newFile === null) {
|
|
13466
|
-
fileData.type = "deleted";
|
|
13467
|
-
fileData.prevName = void 0;
|
|
13468
|
-
}
|
|
13469
|
-
const language = newFile?.lang ?? (newFile === null ? oldFile?.lang : void 0);
|
|
13470
|
-
if (language != null) fileData.lang = language;
|
|
13471
|
-
return fileData;
|
|
13472
|
-
}
|
|
13473
|
-
function createMissingFile() {
|
|
13474
|
-
return {
|
|
13475
|
-
name: MISSING_FILE_NAME,
|
|
13476
|
-
contents: ""
|
|
13477
|
-
};
|
|
13478
|
-
}
|
|
13479
|
-
var MAX_PER_FILE = 40;
|
|
13480
|
-
/** Substring search over path + lines pierre actually renders (hunk
|
|
13481
|
-
* change + context). Full-file old/new text is much larger than the
|
|
13482
|
-
* visible diff — counting those made Next feel broken ("32 matches"
|
|
13483
|
-
* with nothing on screen for many steps). */
|
|
13484
|
-
/** Last search, keyed by files identity + query: the find box asks up to
|
|
13485
|
-
* three times per keystroke (immediate paint, debounced state, template). */
|
|
13486
|
-
var last;
|
|
13487
|
-
/** Files with hits, or null when the list hit its cap and so can't say
|
|
13488
|
-
* which files are clean (paint then falls back to walking every host). */
|
|
13489
|
-
function hitKeys(hits) {
|
|
13490
|
-
return hits.length >= 200 ? null : [...new Set(hits.map((h) => h.key))];
|
|
13491
|
-
}
|
|
13492
|
-
function searchDiffFiles(files, raw) {
|
|
13493
|
-
const query = raw.trim();
|
|
13494
|
-
if (!query) return [];
|
|
13495
|
-
if (last && last.files === files && last.query === query) return last.hits;
|
|
13496
|
-
const hits = searchUncached(files, query);
|
|
13497
|
-
last = {
|
|
13498
|
-
files,
|
|
13499
|
-
query,
|
|
13500
|
-
hits
|
|
13501
|
-
};
|
|
13502
|
-
return hits;
|
|
13503
|
-
}
|
|
13504
|
-
/** Hunk line sets and split lines are query-independent and dominate the
|
|
13505
|
-
* cost (pierre re-parses the whole file); keep them per file object. */
|
|
13506
|
-
var parsed = /* @__PURE__ */ new WeakMap();
|
|
13507
|
-
function parsedFor(file) {
|
|
13508
|
-
let p = parsed.get(file);
|
|
13509
|
-
if (!p) {
|
|
13510
|
-
p = {
|
|
13511
|
-
visible: visibleHunkLines(file.old, file.new),
|
|
13512
|
-
newLines: file.new == null ? null : file.new.split("\n"),
|
|
13513
|
-
oldLines: file.old == null ? null : file.old.split("\n")
|
|
13514
|
-
};
|
|
13515
|
-
parsed.set(file, p);
|
|
13516
|
-
}
|
|
13517
|
-
return p;
|
|
13518
|
-
}
|
|
13519
|
-
function searchUncached(files, query) {
|
|
13520
|
-
const sensitive = /[A-Z]/.test(query);
|
|
13521
|
-
const needle = sensitive ? query : query.toLowerCase();
|
|
13522
|
-
const ascii = !/[^\x00-\x7f]/.test(needle);
|
|
13523
|
-
const hits = [];
|
|
13524
|
-
for (const file of files) {
|
|
13525
|
-
if (hits.length >= 200) break;
|
|
13526
|
-
const before = hits.length;
|
|
13527
|
-
if (ascii) {
|
|
13528
|
-
const oldHay = sensitive ? file.old || "" : (file.old || "").toLowerCase();
|
|
13529
|
-
const newHay = sensitive ? file.new || "" : (file.new || "").toLowerCase();
|
|
13530
|
-
if (!oldHay.includes(needle) && !newHay.includes(needle)) {
|
|
13531
|
-
if (pathMeaningfulMatch(file.path, needle, sensitive)) hits.push({
|
|
13532
|
-
key: file.key,
|
|
13533
|
-
path: file.path,
|
|
13534
|
-
repo: file.repo,
|
|
13535
|
-
line: 0,
|
|
13536
|
-
side: null,
|
|
13537
|
-
preview: file.path
|
|
13538
|
-
});
|
|
13539
|
-
continue;
|
|
13540
|
-
}
|
|
13541
|
-
}
|
|
13542
|
-
const { visible, newLines, oldLines } = parsedFor(file);
|
|
13543
|
-
const seen = /* @__PURE__ */ new Set();
|
|
13544
|
-
scanSide(file, newLines, "additions", needle, sensitive, seen, hits, visible.additions);
|
|
13545
|
-
scanSide(file, oldLines, "deletions", needle, sensitive, seen, hits, visible.deletions);
|
|
13546
|
-
if (hits.length === before && pathMeaningfulMatch(file.path, needle, sensitive)) hits.push({
|
|
13547
|
-
key: file.key,
|
|
13548
|
-
path: file.path,
|
|
13549
|
-
repo: file.repo,
|
|
13550
|
-
line: 0,
|
|
13551
|
-
side: null,
|
|
13552
|
-
preview: file.path
|
|
13553
|
-
});
|
|
13554
|
-
}
|
|
13555
|
-
return hits;
|
|
13556
|
-
}
|
|
13557
|
-
/** True when needle hits the path somewhere other than only the final
|
|
13558
|
-
* extension (`file.marko` + "marko" → false; `marko/src/x.ts` → true). */
|
|
13559
|
-
function pathMeaningfulMatch(path, needle, sensitive) {
|
|
13560
|
-
const hay = sensitive ? path : path.toLowerCase();
|
|
13561
|
-
if (!hay.includes(needle)) return false;
|
|
13562
|
-
const slash = path.lastIndexOf("/");
|
|
13563
|
-
const base = slash >= 0 ? path.slice(slash + 1) : path;
|
|
13564
|
-
const dot = base.lastIndexOf(".");
|
|
13565
|
-
if (dot <= 0) return true;
|
|
13566
|
-
const ext = base.slice(dot + 1);
|
|
13567
|
-
if (!(sensitive ? ext : ext.toLowerCase()).includes(needle)) return true;
|
|
13568
|
-
const extStartInPath = path.length - ext.length;
|
|
13569
|
-
for (let at = hay.indexOf(needle); at !== -1; at = hay.indexOf(needle, at + 1)) if (at < extStartInPath) return true;
|
|
13570
|
-
return false;
|
|
13571
|
-
}
|
|
13572
|
-
/** 1-based line numbers pierre shows for each side (hunk ranges only). */
|
|
13573
|
-
function visibleHunkLines(oldText, newText) {
|
|
13574
|
-
const additions = /* @__PURE__ */ new Set();
|
|
13575
|
-
const deletions = /* @__PURE__ */ new Set();
|
|
13576
|
-
if (oldText == null && newText == null) return {
|
|
13577
|
-
additions,
|
|
13578
|
-
deletions
|
|
13579
|
-
};
|
|
13580
|
-
try {
|
|
13581
|
-
const meta = parseDiffFromFile(oldText == null ? null : {
|
|
13582
|
-
name: "old",
|
|
13583
|
-
contents: oldText
|
|
13584
|
-
}, newText == null ? null : {
|
|
13585
|
-
name: "new",
|
|
13586
|
-
contents: newText
|
|
13587
|
-
});
|
|
13588
|
-
for (const h of meta.hunks) {
|
|
13589
|
-
for (let i = 0; i < h.additionCount; i++) additions.add(h.additionStart + i);
|
|
13590
|
-
for (let i = 0; i < h.deletionCount; i++) deletions.add(h.deletionStart + i);
|
|
13591
|
-
}
|
|
13592
|
-
} catch {}
|
|
13593
|
-
return {
|
|
13594
|
-
additions,
|
|
13595
|
-
deletions
|
|
13596
|
-
};
|
|
13597
|
-
}
|
|
13598
|
-
function scanSide(file, lines, side, needle, sensitive, seen, hits, visible) {
|
|
13599
|
-
if (!lines || hits.length >= 200 || !visible.size) return;
|
|
13600
|
-
let fromFile = 0;
|
|
13601
|
-
for (let i = 0; i < lines.length; i++) {
|
|
13602
|
-
if (hits.length >= 200 || fromFile >= MAX_PER_FILE) return;
|
|
13603
|
-
const lineNo = i + 1;
|
|
13604
|
-
if (!visible.has(lineNo)) continue;
|
|
13605
|
-
const line = lines[i];
|
|
13606
|
-
const at = (sensitive ? line : line.toLowerCase()).indexOf(needle);
|
|
13607
|
-
if (at < 0) continue;
|
|
13608
|
-
if (side === "deletions" && seen.has(line)) continue;
|
|
13609
|
-
if (side === "additions") seen.add(line);
|
|
13610
|
-
fromFile++;
|
|
13611
|
-
hits.push({
|
|
13612
|
-
key: file.key,
|
|
13613
|
-
path: file.path,
|
|
13614
|
-
repo: file.repo,
|
|
13615
|
-
line: lineNo,
|
|
13616
|
-
side,
|
|
13617
|
-
preview: clip(line, at, needle.length)
|
|
13618
|
-
});
|
|
13619
|
-
}
|
|
13620
|
-
}
|
|
13621
|
-
function clip(line, at, len) {
|
|
13622
|
-
const pad = 36;
|
|
13623
|
-
const start = Math.max(0, at - pad);
|
|
13624
|
-
const end = Math.min(line.length, at + len + pad);
|
|
13625
|
-
return (start > 0 ? "…" : "") + line.slice(start, end) + (end < line.length ? "…" : "");
|
|
13626
|
-
}
|
|
13627
12154
|
var findInput = "_cw _n";
|
|
13628
12155
|
var findIconBtn = "_cz _l";
|
|
13629
12156
|
//#endregion
|
|
@@ -13645,6 +12172,8 @@ var icon_arrow_down_default = _template("N", (input) => {
|
|
|
13645
12172
|
});
|
|
13646
12173
|
//#endregion
|
|
13647
12174
|
//#region src/tags/diff-find.marko
|
|
12175
|
+
var hitKeys;
|
|
12176
|
+
var searchDiffFiles;
|
|
13648
12177
|
var setSearchPaint$1;
|
|
13649
12178
|
var diff_find_default = _template("i", (input) => {
|
|
13650
12179
|
const $scope0_reason = _scope_reason();
|
|
@@ -14294,7 +12823,7 @@ var $content = (input) => {
|
|
|
14294
12823
|
_for_of(dir.dirs, (child) => {
|
|
14295
12824
|
const $scope1_id = _scope_id();
|
|
14296
12825
|
const shut = input.collapsed.has(input.collapsedKey(child.path));
|
|
14297
|
-
_html(`<div${_attr_class("
|
|
12826
|
+
_html(`<div${_attr_class("_h9")}><button type=button${_attr_class(["_h_", { ["_h1"]: shut }])}${_attr("title", child.path)}${_attr_style(`--depth:${child.depth}`)}><span${_attr_class("_ig")}>`);
|
|
14298
12827
|
_if(() => {
|
|
14299
12828
|
if (shut) {
|
|
14300
12829
|
const $scope4_id = _scope_id();
|
|
@@ -14308,7 +12837,7 @@ var $content = (input) => {
|
|
|
14308
12837
|
return 1;
|
|
14309
12838
|
}
|
|
14310
12839
|
}, $scope1_id, "c", $sg__input, $sg__input, $sg__input, "</span>", 1);
|
|
14311
|
-
_html(`<span${_attr_class("
|
|
12840
|
+
_html(`<span${_attr_class("_ia")}>${_text_resume($scope1_id, "e", child.label, $sg__input_dir)}/</span></button>${_el_resume($scope1_id, "b")}`);
|
|
14312
12841
|
_if(() => {
|
|
14313
12842
|
if (!shut) {
|
|
14314
12843
|
const $scope2_id = _scope_id();
|
|
@@ -14355,11 +12884,11 @@ var $content = (input) => {
|
|
|
14355
12884
|
}, "path", $scope0_id, "a", $sg__input, $sg__input_dir, $sg__input_dir, 0, 1);
|
|
14356
12885
|
_for_of(dir.files, ({ file, name }) => {
|
|
14357
12886
|
const $scope3_id = _scope_id();
|
|
14358
|
-
_html(`<a${_attr("href", input.hrefFor(file.key))}${_attr_class(["
|
|
12887
|
+
_html(`<a${_attr("href", input.hrefFor(file.key))}${_attr_class(["_ic", { ["_ib"]: input.collapsedFiles?.has(file.key) }])}${input.collapsedFiles?.has(file.key) ? _attr("title", `${file.path} (folded — click to open)`) : _attr("title", file.path)}${_attr_style(`--depth:${dir.depth + 1}`)}><span${_attr_class("_ba")}${_attr("data-status", file.status)}>${_text_resume($scope3_id, "c", file.status, $sg__input_dir)}</span>${_el_resume($scope3_id, "b", $sg__input_dir)}<span${_attr_class("_id")}>${_text_resume($scope3_id, "e", name, $sg__input_dir)}</span>`);
|
|
14359
12888
|
_if(() => {
|
|
14360
12889
|
if (input.newKeys.has(file.key)) {
|
|
14361
12890
|
const $scope6_id = _scope_id();
|
|
14362
|
-
_html(`<span${_attr_class(["_A", "
|
|
12891
|
+
_html(`<span${_attr_class(["_A", "_ie"])} title="Changed since your last visit"></span>`);
|
|
14363
12892
|
_serialize_if($scope0_reason, 1) && writeScope($scope6_id, {});
|
|
14364
12893
|
return 0;
|
|
14365
12894
|
}
|
|
@@ -14367,7 +12896,7 @@ var $content = (input) => {
|
|
|
14367
12896
|
_if(() => {
|
|
14368
12897
|
if (input.commentKeys.has(file.key)) {
|
|
14369
12898
|
const $scope7_id = _scope_id();
|
|
14370
|
-
_html(`<span${_attr_class("
|
|
12899
|
+
_html(`<span${_attr_class("_if")}>`);
|
|
14371
12900
|
icon_comment_default({ size: 12 });
|
|
14372
12901
|
_html("</span>");
|
|
14373
12902
|
_serialize_if($scope0_reason, 0) && writeScope($scope7_id, {});
|
|
@@ -14425,7 +12954,7 @@ var diff_tree_default = _template("l", (input) => {
|
|
|
14425
12954
|
scope: input.scope ?? null,
|
|
14426
12955
|
file: key
|
|
14427
12956
|
}), "l0", $scope0_id);
|
|
14428
|
-
_html(`<aside${_attr_class(["
|
|
12957
|
+
_html(`<aside${_attr_class(["_h2", { ["_h1"]: input.open === false }])}><div${_attr_class("_h3")}>`);
|
|
14429
12958
|
_set_serialize_reason(2);
|
|
14430
12959
|
const $childScope = _peek_scope_id();
|
|
14431
12960
|
file_filter_default({
|
|
@@ -14434,18 +12963,18 @@ var diff_tree_default = _template("l", (input) => {
|
|
|
14434
12963
|
filter = _new_filter;
|
|
14435
12964
|
}, "l1", $scope0_id)
|
|
14436
12965
|
});
|
|
14437
|
-
_html(`</div><div${_attr_class("
|
|
12966
|
+
_html(`</div><div${_attr_class("_h4")}>`);
|
|
14438
12967
|
_if(() => {
|
|
14439
12968
|
if (!input.sections.length && filter) {
|
|
14440
12969
|
const $scope3_id = _scope_id();
|
|
14441
|
-
_html(`<p${_attr_class("
|
|
12970
|
+
_html(`<p${_attr_class("_h5")}>No files match.</p>`);
|
|
14442
12971
|
writeScope($scope3_id, {});
|
|
14443
12972
|
return 0;
|
|
14444
12973
|
}
|
|
14445
12974
|
}, $scope0_id, "e", 1, 1, 1, 0, 1);
|
|
14446
12975
|
_for_of(input.sections, (section) => {
|
|
14447
12976
|
const $scope1_id = _scope_id();
|
|
14448
|
-
_html(`<div${_attr_class("
|
|
12977
|
+
_html(`<div${_attr_class("_h6")}><button type=button${_attr_class(["_h7", { ["_h1"]: collapsedRepos.has(section.id) }])}><span${_attr_class("_ig")}>`);
|
|
14449
12978
|
_if(() => {
|
|
14450
12979
|
if (collapsedRepos.has(section.id)) {
|
|
14451
12980
|
const $scope4_id = _scope_id();
|
|
@@ -14459,12 +12988,12 @@ var diff_tree_default = _template("l", (input) => {
|
|
|
14459
12988
|
return 1;
|
|
14460
12989
|
}
|
|
14461
12990
|
}, $scope1_id, "c", 1, 1, 1, "</span>", 1);
|
|
14462
|
-
_html(`<span${_attr_class("
|
|
12991
|
+
_html(`<span${_attr_class("_ia")}>${_text_resume($scope1_id, "e", section.label, $sg__input_sections)}</span></button>${_el_resume($scope1_id, "b")}`);
|
|
14463
12992
|
_if(() => {
|
|
14464
12993
|
if (!collapsedRepos.has(section.id) || openedRepos.has(section.id)) {
|
|
14465
12994
|
const $scope2_id = _scope_id();
|
|
14466
12995
|
const root = treeDirs(section.files);
|
|
14467
|
-
_html(`<div${_attr_class("
|
|
12996
|
+
_html(`<div${_attr_class("_h8")}${_attr("hidden", collapsedRepos.has(section.id))}>`);
|
|
14468
12997
|
_set_serialize_reason(1);
|
|
14469
12998
|
const $childScope2 = _peek_scope_id();
|
|
14470
12999
|
diff_tree_dir_default({
|
|
@@ -14534,7 +13063,7 @@ var diff_tree_default = _template("l", (input) => {
|
|
|
14534
13063
|
});
|
|
14535
13064
|
_resume_branch($scope0_id);
|
|
14536
13065
|
});
|
|
14537
|
-
var sheetDir = "
|
|
13066
|
+
var sheetDir = "_it _bb";
|
|
14538
13067
|
//#endregion
|
|
14539
13068
|
//#region src/tags/diff-file-sheet.marko
|
|
14540
13069
|
var diff_file_sheet_default = _template("g", (input) => {
|
|
@@ -14590,9 +13119,9 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
14590
13119
|
_if(() => {
|
|
14591
13120
|
if (open) {
|
|
14592
13121
|
const $scope1_id = _scope_id();
|
|
14593
|
-
_html(`<div${_attr_class("
|
|
13122
|
+
_html(`<div${_attr_class("_ik")}></div>${_el_resume($scope1_id, "a")}<div${_attr_class("_il")} role=dialog aria-label="Jump to file"><div${_attr_class("_im")}><strong${_attr_class("_ij")}>Files</strong><span${_attr_class("_in")}>${_text_resume($scope1_id, "f", input.files.length, $sg__input_files_length)}${_text_resume($scope1_id, "g", input.files.length !== total ? ` / ${total}` : "", _serialize_guard($scope0_reason, 2) * 2)}</span><button type=button${_attr_class([iconBtnLg, "_ii"])} title=Close aria-label=Close>`);
|
|
14594
13123
|
icon_xmark_default({ size: 16 });
|
|
14595
|
-
_html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("
|
|
13124
|
+
_html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("_iv")}>`);
|
|
14596
13125
|
_set_serialize_reason(2);
|
|
14597
13126
|
const $childScope = _peek_scope_id();
|
|
14598
13127
|
file_filter_default({
|
|
@@ -14601,13 +13130,13 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
14601
13130
|
filter = _new_filter;
|
|
14602
13131
|
}, "g1", $scope1_id)
|
|
14603
13132
|
});
|
|
14604
|
-
_html(`</div><div${_attr_class("
|
|
13133
|
+
_html(`</div><div${_attr_class("_io")}>`);
|
|
14605
13134
|
_for_of(groups, (group) => {
|
|
14606
13135
|
const $scope2_id = _scope_id();
|
|
14607
|
-
_html(`<div${_attr_class("
|
|
13136
|
+
_html(`<div${_attr_class("_ip")}><div${_attr_class("_iq")}>${_text_resume($scope2_id, "c", group.repo, $sg__input_files)}</div>`);
|
|
14608
13137
|
_for_of(group.dirs, ({ dir, files }) => {
|
|
14609
13138
|
const $scope3_id = _scope_id();
|
|
14610
|
-
_html(`<div${_attr_class("
|
|
13139
|
+
_html(`<div${_attr_class("_ir")}>`);
|
|
14611
13140
|
_if(() => {
|
|
14612
13141
|
if (dir) {
|
|
14613
13142
|
const $scope5_id = _scope_id();
|
|
@@ -14618,11 +13147,11 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
14618
13147
|
}, $scope3_id, "b", $sg__input_files, $sg__input_files, $sg__input_files, 0, 1);
|
|
14619
13148
|
_for_of(files, ({ file, name }) => {
|
|
14620
13149
|
const $scope4_id = _scope_id();
|
|
14621
|
-
_html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["
|
|
13150
|
+
_html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["_is", "_y"])}><span${_attr_class("_ba")}${_attr("data-status", file.status)}>${_text_resume($scope4_id, "c", file.status, $sg__input_files)}</span>${_el_resume($scope4_id, "b", $sg__input_files)}<span${_attr_class("_iu")}><bdi>${_text_resume($scope4_id, "e", name, $sg__input_files)}</bdi></span>`);
|
|
14622
13151
|
_if(() => {
|
|
14623
13152
|
if (newKeys.has(file.key)) {
|
|
14624
13153
|
const $scope6_id = _scope_id();
|
|
14625
|
-
_html(`<span${_attr_class(["_A", "
|
|
13154
|
+
_html(`<span${_attr_class(["_A", "_ix"])} title="Changed since your last visit"></span>`);
|
|
14626
13155
|
_serialize_if($scope0_reason, 1) && writeScope($scope6_id, {});
|
|
14627
13156
|
return 0;
|
|
14628
13157
|
}
|
|
@@ -14632,7 +13161,7 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
14632
13161
|
const $scope7_id = _scope_id();
|
|
14633
13162
|
icon_comment_default({
|
|
14634
13163
|
size: 12,
|
|
14635
|
-
class: "
|
|
13164
|
+
class: "_iy"
|
|
14636
13165
|
});
|
|
14637
13166
|
_serialize_if($scope0_reason, 0) && writeScope($scope7_id, {});
|
|
14638
13167
|
return 0;
|
|
@@ -14657,7 +13186,7 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
14657
13186
|
_if(() => {
|
|
14658
13187
|
if (!input.files.length) {
|
|
14659
13188
|
const $scope8_id = _scope_id();
|
|
14660
|
-
_html(`<p${_attr_class("
|
|
13189
|
+
_html(`<p${_attr_class("_iw")}>No files match.</p>`);
|
|
14661
13190
|
$si__input_files_length && writeScope($scope8_id, {});
|
|
14662
13191
|
return 0;
|
|
14663
13192
|
}
|
|
@@ -14700,7 +13229,7 @@ var setSearchPaint;
|
|
|
14700
13229
|
var diff_view_default = _template("m", (input) => {
|
|
14701
13230
|
const $scope0_reason = _scope_reason(), $si__input_sessions = _serialize_if($scope0_reason, 7), $si__input_workspaceBranch = _serialize_if($scope0_reason, 8), $si__input_workspaceName = _serialize_if($scope0_reason, 9);
|
|
14702
13231
|
const $scope0_id = _scope_id();
|
|
14703
|
-
const $findFocus_getter = _hoist($scope0_id, "
|
|
13232
|
+
const $findFocus_getter = _hoist($scope0_id, "m52");
|
|
14704
13233
|
const $error__closures = /* @__PURE__ */ new Set();
|
|
14705
13234
|
const $scope__closures = /* @__PURE__ */ new Set();
|
|
14706
13235
|
const $input_sessions__closures = /* @__PURE__ */ new Set();
|
|
@@ -14795,6 +13324,11 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14795
13324
|
}
|
|
14796
13325
|
});
|
|
14797
13326
|
}, "m3", $scope0_id);
|
|
13327
|
+
const posBox = {
|
|
13328
|
+
anchor: null,
|
|
13329
|
+
raf: 0,
|
|
13330
|
+
run: 0
|
|
13331
|
+
};
|
|
14798
13332
|
const pinToTop = _resume((el) => {
|
|
14799
13333
|
const root = ((scrollEl) => scrollEl())(_el_read_error);
|
|
14800
13334
|
if (!root) {
|
|
@@ -14804,15 +13338,19 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14804
13338
|
const top = el.getBoundingClientRect().top - root.getBoundingClientRect().top + root.scrollTop;
|
|
14805
13339
|
root.scrollTo({ top: Math.max(0, top - 8) });
|
|
14806
13340
|
}, "m4", $scope0_id);
|
|
13341
|
+
const cancelRestore = _resume(() => {
|
|
13342
|
+
posBox.run++;
|
|
13343
|
+
}, "m5", $scope0_id);
|
|
14807
13344
|
const retryFrames = _resume((attempt, ms = 2500) => {
|
|
14808
13345
|
const started = Date.now();
|
|
14809
13346
|
const tick = () => {
|
|
14810
13347
|
if (!attempt() && Date.now() - started < ms) requestAnimationFrame(tick);
|
|
14811
13348
|
};
|
|
14812
13349
|
tick();
|
|
14813
|
-
}, "
|
|
13350
|
+
}, "m6");
|
|
14814
13351
|
const focusPrSection = _resume((pr) => {
|
|
14815
13352
|
if (!pr) return;
|
|
13353
|
+
cancelRestore();
|
|
14816
13354
|
const list = repos || [];
|
|
14817
13355
|
const focused = list.find((r) => r.pr && `${r.worktree}/${r.pr.number}` === pr);
|
|
14818
13356
|
const keep = new Set(openedRepos);
|
|
@@ -14828,26 +13366,22 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14828
13366
|
if (el) pinToTop(el);
|
|
14829
13367
|
return !!el;
|
|
14830
13368
|
});
|
|
14831
|
-
}, "
|
|
14832
|
-
const findFile = _resume((key) => ((scrollEl) => scrollEl())(_el_read_error)?.querySelector(`details[data-key="${CSS.escape(key)}"]`) ?? null, "
|
|
13369
|
+
}, "m7", $scope0_id);
|
|
13370
|
+
const findFile = _resume((key) => ((scrollEl) => scrollEl())(_el_read_error)?.querySelector(`details[data-key="${CSS.escape(key)}"]`) ?? null, "m8", $scope0_id);
|
|
14833
13371
|
const openFile = _resume((key) => {
|
|
14834
13372
|
const el = findFile(key);
|
|
14835
13373
|
if (el) el.open = true;
|
|
14836
13374
|
return el;
|
|
14837
|
-
}, "
|
|
13375
|
+
}, "m9", $scope0_id);
|
|
14838
13376
|
const jumpTo = _resume((key) => {
|
|
13377
|
+
cancelRestore();
|
|
14839
13378
|
input.onFileChange?.(key);
|
|
14840
13379
|
retryFrames(() => {
|
|
14841
13380
|
const el = openFile(key);
|
|
14842
13381
|
if (el) pinToTop(el);
|
|
14843
13382
|
return !!el;
|
|
14844
13383
|
});
|
|
14845
|
-
}, "
|
|
14846
|
-
const posBox = {
|
|
14847
|
-
anchor: null,
|
|
14848
|
-
raf: 0,
|
|
14849
|
-
run: 0
|
|
14850
|
-
};
|
|
13384
|
+
}, "m10", $scope0_id);
|
|
14851
13385
|
const anchorAt = _resume(() => {
|
|
14852
13386
|
const root = ((scrollEl) => scrollEl())(_el_read_error);
|
|
14853
13387
|
if (!root || !root.scrollTop) return null;
|
|
@@ -14864,17 +13398,17 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14864
13398
|
};
|
|
14865
13399
|
}
|
|
14866
13400
|
return best;
|
|
14867
|
-
}, "
|
|
13401
|
+
}, "m11", $scope0_id);
|
|
14868
13402
|
const noteScroll = _resume(() => {
|
|
14869
13403
|
if (posBox.raf) return;
|
|
14870
13404
|
posBox.raf = requestAnimationFrame(() => {
|
|
14871
13405
|
posBox.raf = 0;
|
|
14872
13406
|
if (((scrollEl) => scrollEl())(_el_read_error)?.isConnected) posBox.anchor = anchorAt();
|
|
14873
13407
|
});
|
|
14874
|
-
}, "
|
|
13408
|
+
}, "m12", $scope0_id);
|
|
14875
13409
|
const savePos = _resume(() => {
|
|
14876
13410
|
if (repos) setDiffPos(input.workspaceId, posBox.anchor);
|
|
14877
|
-
}, "
|
|
13411
|
+
}, "m13", $scope0_id);
|
|
14878
13412
|
const restorePos = _resume((pos) => {
|
|
14879
13413
|
const run = ++posBox.run;
|
|
14880
13414
|
const started = Date.now();
|
|
@@ -14904,7 +13438,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14904
13438
|
} else if (!pinnedAt && Date.now() - started < 2500) requestAnimationFrame(tick);
|
|
14905
13439
|
};
|
|
14906
13440
|
requestAnimationFrame(tick);
|
|
14907
|
-
}, "
|
|
13441
|
+
}, "m14", $scope0_id);
|
|
14908
13442
|
const headBox = {
|
|
14909
13443
|
sig: "",
|
|
14910
13444
|
timer: 0
|
|
@@ -14926,8 +13460,8 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14926
13460
|
comments = reviewData.comments || [];
|
|
14927
13461
|
headBox.sig = prHeadSigFromDiff(diffData);
|
|
14928
13462
|
if (input.focusPr) focusPrSection(input.focusPr);
|
|
14929
|
-
|
|
14930
|
-
else if (!refresh && loadBox.seq === 1) {
|
|
13463
|
+
if (input.focusFile) jumpTo(input.focusFile);
|
|
13464
|
+
else if (!input.focusPr && !refresh && loadBox.seq === 1) {
|
|
14931
13465
|
const pos = diffPos(input.workspaceId);
|
|
14932
13466
|
if (pos && pos.scope === which) restorePos(pos);
|
|
14933
13467
|
}
|
|
@@ -14937,14 +13471,14 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14937
13471
|
} finally {
|
|
14938
13472
|
if (seq === loadBox.seq) loading = false;
|
|
14939
13473
|
}
|
|
14940
|
-
}, "
|
|
13474
|
+
}, "m15", $scope0_id);
|
|
14941
13475
|
const setScope = _resume((next, persist = true) => {
|
|
14942
13476
|
if (next === scope) return;
|
|
14943
13477
|
scope = next;
|
|
14944
13478
|
if (persist) setDiffScope(next);
|
|
14945
13479
|
input.onScopeChange?.(next);
|
|
14946
13480
|
load(next);
|
|
14947
|
-
}, "
|
|
13481
|
+
}, "m16", $scope0_id);
|
|
14948
13482
|
const sendGate = { busy: 0 };
|
|
14949
13483
|
const loadReview = _resume(async () => {
|
|
14950
13484
|
if (sendGate.busy) return;
|
|
@@ -14953,15 +13487,15 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14953
13487
|
if (sendGate.busy) return;
|
|
14954
13488
|
comments = reviewData.comments || [];
|
|
14955
13489
|
} catch {}
|
|
14956
|
-
}, "
|
|
14957
|
-
const reload = _resume(() => load(scope, true), "
|
|
13490
|
+
}, "m17", $scope0_id);
|
|
13491
|
+
const reload = _resume(() => load(scope, true), "m18", $scope0_id);
|
|
14958
13492
|
const reloadSoon = _resume(() => {
|
|
14959
13493
|
if (headBox.timer) clearTimeout(headBox.timer);
|
|
14960
13494
|
headBox.timer = setTimeout(() => {
|
|
14961
13495
|
headBox.timer = 0;
|
|
14962
13496
|
reload();
|
|
14963
13497
|
}, 250);
|
|
14964
|
-
}, "
|
|
13498
|
+
}, "m19", $scope0_id);
|
|
14965
13499
|
const markSeen = _resume(() => {
|
|
14966
13500
|
if (!repos) return;
|
|
14967
13501
|
const heads = {};
|
|
@@ -14980,7 +13514,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
14980
13514
|
}),
|
|
14981
13515
|
keepalive: true
|
|
14982
13516
|
}).catch(() => {});
|
|
14983
|
-
}, "
|
|
13517
|
+
}, "m20", $scope0_id);
|
|
14984
13518
|
const repoList = repos || [];
|
|
14985
13519
|
const allFiles = repoList.flatMap((r) => r.files.map((f) => ({
|
|
14986
13520
|
...f,
|
|
@@ -15003,7 +13537,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15003
13537
|
else map.set(f.repo, [f]);
|
|
15004
13538
|
}
|
|
15005
13539
|
return map;
|
|
15006
|
-
}, "
|
|
13540
|
+
}, "m21");
|
|
15007
13541
|
const filesByRepo = groupByRepo(allFiles);
|
|
15008
13542
|
const shownByRepo = groupByRepo(shownFiles);
|
|
15009
13543
|
const commentsByFile = (() => {
|
|
@@ -15022,7 +13556,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15022
13556
|
}));
|
|
15023
13557
|
const localDifferIds = new Set(repoList.filter((repo) => !!repo.pr && !!repo.localHead && (repo.localHead !== repo.head || repo.branch !== repo.pr.headRefName)).map((r) => r.id));
|
|
15024
13558
|
const hasFiles = !repos || allFiles.length > 0;
|
|
15025
|
-
const fileWorktree = _resume((repo) => repo.includes("#") ? repo.split("#")[0] : repo, "
|
|
13559
|
+
const fileWorktree = _resume((repo) => repo.includes("#") ? repo.split("#")[0] : repo, "m22");
|
|
15026
13560
|
const anchorFor = _resume((file, range) => {
|
|
15027
13561
|
const section = repoList.find((r) => r.id === file.repo);
|
|
15028
13562
|
const source = range.side === "deletions" ? file.old : file.new;
|
|
@@ -15030,7 +13564,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15030
13564
|
head: section?.head,
|
|
15031
13565
|
snippet: source == null ? void 0 : quoteRange(source, range.start, range.end, range.side === "deletions" ? "deletions" : "additions")
|
|
15032
13566
|
};
|
|
15033
|
-
}, "
|
|
13567
|
+
}, "m23", $scope0_id);
|
|
15034
13568
|
const saveComment = _resume(async (file, text) => {
|
|
15035
13569
|
const range = draft;
|
|
15036
13570
|
draft = null;
|
|
@@ -15054,16 +13588,16 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15054
13588
|
} catch (err) {
|
|
15055
13589
|
error = String(err.message || err);
|
|
15056
13590
|
}
|
|
15057
|
-
}, "
|
|
13591
|
+
}, "m24", $scope0_id);
|
|
15058
13592
|
const deleteRemote = _resume((ids) => ids === "all" ? fetch(`/api/workspaces/${input.workspaceId}/review`, {
|
|
15059
13593
|
method: "POST",
|
|
15060
13594
|
headers: { "content-type": "application/json" },
|
|
15061
13595
|
body: JSON.stringify({ action: "clear" })
|
|
15062
|
-
}) : Promise.all(ids.map((id) => fetch(`/api/workspaces/${input.workspaceId}/review/${id}`, { method: "DELETE" }))), "
|
|
13596
|
+
}) : Promise.all(ids.map((id) => fetch(`/api/workspaces/${input.workspaceId}/review/${id}`, { method: "DELETE" }))), "m25", $scope0_id);
|
|
15063
13597
|
const removeComment = _resume(async (id) => {
|
|
15064
13598
|
comments = comments.filter((c) => c.id !== id);
|
|
15065
13599
|
await deleteRemote([id]).catch(() => {});
|
|
15066
|
-
}, "
|
|
13600
|
+
}, "m26", $scope0_id);
|
|
15067
13601
|
const editComment = _resume(async (id, text) => {
|
|
15068
13602
|
const prev = comments.find((c) => c.id === id);
|
|
15069
13603
|
if (!prev) return;
|
|
@@ -15084,7 +13618,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15084
13618
|
error = String(err.message || err);
|
|
15085
13619
|
throw err;
|
|
15086
13620
|
}
|
|
15087
|
-
}, "
|
|
13621
|
+
}, "m27", $scope0_id);
|
|
15088
13622
|
const dispatch = _resume(async (list, to, consume) => {
|
|
15089
13623
|
if (!list.length) return true;
|
|
15090
13624
|
sendGate.busy++;
|
|
@@ -15120,13 +13654,13 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15120
13654
|
} finally {
|
|
15121
13655
|
sendGate.busy--;
|
|
15122
13656
|
}
|
|
15123
|
-
}, "
|
|
15124
|
-
const copyMarkdown = _resume(() => dispatch(comments, { clipboard: true }, "all"), "
|
|
15125
|
-
const sendTo = _resume((sessionId) => dispatch(comments, { session: sessionId }, "all"), "
|
|
13657
|
+
}, "m28", $scope0_id);
|
|
13658
|
+
const copyMarkdown = _resume(() => dispatch(comments, { clipboard: true }, "all"), "m29", $scope0_id);
|
|
13659
|
+
const sendTo = _resume((sessionId) => dispatch(comments, { session: sessionId }, "all"), "m30", $scope0_id);
|
|
15126
13660
|
const sendOneComment = _resume((id, sessionId) => {
|
|
15127
13661
|
const comment = comments.find((c) => c.id === id);
|
|
15128
13662
|
return comment ? dispatch([comment], { session: sessionId }, [id]) : Promise.resolve(false);
|
|
15129
|
-
}, "
|
|
13663
|
+
}, "m31", $scope0_id);
|
|
15130
13664
|
const sendDraftComment = _resume((file, text, sessionId) => {
|
|
15131
13665
|
const range = draft;
|
|
15132
13666
|
const trimmed = text.trim();
|
|
@@ -15144,12 +13678,12 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15144
13678
|
...anchorFor(file, range)
|
|
15145
13679
|
};
|
|
15146
13680
|
return dispatch([one], { session: sessionId }, []);
|
|
15147
|
-
}, "
|
|
13681
|
+
}, "m32", $scope0_id);
|
|
15148
13682
|
const openFind = _resume(() => {
|
|
15149
13683
|
findOpen = true;
|
|
15150
13684
|
findTick++;
|
|
15151
13685
|
((findFocus) => findFocus())(_hoist_read_error);
|
|
15152
|
-
}, "
|
|
13686
|
+
}, "m33", $scope0_id);
|
|
15153
13687
|
const onFindState = (next) => {
|
|
15154
13688
|
findState = next;
|
|
15155
13689
|
if (!next.hit) return;
|
|
@@ -15196,12 +13730,12 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15196
13730
|
openedRepos = /* @__PURE__ */ new Set([...openedRepos, id]);
|
|
15197
13731
|
collapsedRepos = /* @__PURE__ */ new Set([...collapsedRepos, id]);
|
|
15198
13732
|
}
|
|
15199
|
-
}, "
|
|
13733
|
+
}, "m34", $scope0_id);
|
|
15200
13734
|
_html(`<div${_attr_class("_eS")}><div${_attr_class("_eX")}><div${_attr_class("_eY")}><div${_attr_class(["_e8", { ["_e7"]: !comments.length }])}>`);
|
|
15201
13735
|
_if(() => {
|
|
15202
13736
|
if (input.onExit) {
|
|
15203
13737
|
const $scope1_id = _scope_id();
|
|
15204
|
-
_html(`<a${_attr("href", `/w/${input.workspaceId}`)}${_attr_class([iconBtnRow, "_eZ"])} title="Back to terminal (
|
|
13738
|
+
_html(`<a${_attr("href", `/w/${input.workspaceId}`)}${_attr_class([iconBtnRow, "_eZ"])} title="Back to terminal (⌘/Ctrl+Shift+D)">`);
|
|
15205
13739
|
icon_back_default({ size: 14 });
|
|
15206
13740
|
_html(`</a>${_el_resume($scope1_id, "a", _serialize_guard($scope0_reason, 1))}`);
|
|
15207
13741
|
_serialize_if($scope0_reason, 0) && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 1) && _scope_with_id($scope0_id) });
|
|
@@ -15244,7 +13778,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15244
13778
|
])} title=${treeOpen ? "\"Hide file tree\"" : "\"Show file tree\""}>`);
|
|
15245
13779
|
icon_sidebar_default({ size: 14 });
|
|
15246
13780
|
_html(`</button>${_el_resume($scope12_id, "a")}`);
|
|
15247
|
-
_script($scope12_id, "
|
|
13781
|
+
_script($scope12_id, "m53");
|
|
15248
13782
|
writeScope($scope12_id, {});
|
|
15249
13783
|
return 0;
|
|
15250
13784
|
}
|
|
@@ -15261,7 +13795,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15261
13795
|
if (hasFiles) {
|
|
15262
13796
|
const $scope13_id = _scope_id();
|
|
15263
13797
|
_html(`<button${_attr_class(["_q", "_fg"])} title="Jump to file">Files (${_text_resume($scope13_id, "b", shownFiles.length, 2)})</button>${_el_resume($scope13_id, "a")}`);
|
|
15264
|
-
_script($scope13_id, "
|
|
13798
|
+
_script($scope13_id, "m54");
|
|
15265
13799
|
writeScope($scope13_id, {});
|
|
15266
13800
|
return 0;
|
|
15267
13801
|
}
|
|
@@ -15281,12 +13815,12 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15281
13815
|
open: findOpen,
|
|
15282
13816
|
openChange: _resume((_new_findOpen) => {
|
|
15283
13817
|
findOpen = _new_findOpen;
|
|
15284
|
-
}, "
|
|
13818
|
+
}, "m35", $scope0_id),
|
|
15285
13819
|
stateChange: function(s) {
|
|
15286
13820
|
onFindState(s);
|
|
15287
13821
|
}
|
|
15288
13822
|
});
|
|
15289
|
-
_var($scope0_id, "r", $childScope3, "
|
|
13823
|
+
_var($scope0_id, "r", $childScope3, "m55");
|
|
15290
13824
|
_html(`</div>${_el_resume($scope0_id, "p")}`);
|
|
15291
13825
|
_if(() => {
|
|
15292
13826
|
if (hasFiles) {
|
|
@@ -15298,7 +13832,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15298
13832
|
])} title="Find in review (⌘/Ctrl+F)" aria-label="Find in review"${_attr("hidden", findOpen)}>`);
|
|
15299
13833
|
icon_search_default({ size: 14 });
|
|
15300
13834
|
_html(`</button>${_el_resume($scope14_id, "a")}`);
|
|
15301
|
-
_script($scope14_id, "
|
|
13835
|
+
_script($scope14_id, "m56");
|
|
15302
13836
|
writeScope($scope14_id, {});
|
|
15303
13837
|
return 0;
|
|
15304
13838
|
}
|
|
@@ -15310,8 +13844,8 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15310
13844
|
toast_default({
|
|
15311
13845
|
onDismiss: _resume(function() {
|
|
15312
13846
|
error = null;
|
|
15313
|
-
}, "
|
|
15314
|
-
content: _content("
|
|
13847
|
+
}, "m36", $scope6_id),
|
|
13848
|
+
content: _content("m57", () => {
|
|
15315
13849
|
_scope_reason();
|
|
15316
13850
|
const $scope7_id = _scope_id();
|
|
15317
13851
|
_html(_text_resume($scope7_id, "a", error));
|
|
@@ -15340,7 +13874,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15340
13874
|
kind: "warn",
|
|
15341
13875
|
placement: "inline",
|
|
15342
13876
|
title: `${repo.worktree}: base not found`,
|
|
15343
|
-
content: _content("
|
|
13877
|
+
content: _content("m58", () => {
|
|
15344
13878
|
_scope_reason();
|
|
15345
13879
|
const $scope10_id = _scope_id();
|
|
15346
13880
|
_html(`${_text_resume($scope10_id, "a", repo.base)}${_text_resume($scope10_id, "b", scope !== "committed" ? ", showing uncommitted changes only" : "", 2)}.`);
|
|
@@ -15356,12 +13890,12 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15356
13890
|
_if(() => {
|
|
15357
13891
|
if (repos && !allFiles.length) {
|
|
15358
13892
|
const $scope11_id = _scope_id();
|
|
15359
|
-
_html(`<p${_attr_class("
|
|
13893
|
+
_html(`<p${_attr_class("_cr")}>${_text_resume($scope11_id, "b", repoList.some((r) => r.unborn) ? "No commits yet." : scope === "dirty" ? "Nothing uncommitted." : repoList.some((r) => r.pr) ? "No file changes on these PRs." : "No changes vs base.")}</p>`);
|
|
15360
13894
|
writeScope($scope11_id, {});
|
|
15361
13895
|
return 0;
|
|
15362
13896
|
} else if (repos && !shownFiles.length && !findState.hit) {
|
|
15363
13897
|
const $scope8_id = _scope_id();
|
|
15364
|
-
_html(`<p${_attr_class("
|
|
13898
|
+
_html(`<p${_attr_class("_cr")}>${_text_resume($scope8_id, "b", findState.query.trim() ? "No matches in review." : onlyNew && !fileFilter ? "Nothing changed since your last visit." : `No files match "${fileFilter}".`)}</p>`);
|
|
15365
13899
|
writeScope($scope8_id, {});
|
|
15366
13900
|
return 1;
|
|
15367
13901
|
}
|
|
@@ -15384,14 +13918,14 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15384
13918
|
opened: openedRepos.has(repo.id),
|
|
15385
13919
|
onToggle: _resume(function() {
|
|
15386
13920
|
toggleSection(repo.id);
|
|
15387
|
-
}, "
|
|
13921
|
+
}, "m37", $scope4_id),
|
|
15388
13922
|
workspaceBranch: input.workspaceBranch || "",
|
|
15389
13923
|
workspaceName: input.workspaceName || "",
|
|
15390
13924
|
localDiffers: localDifferIds.has(repo.id),
|
|
15391
13925
|
onlyNew,
|
|
15392
13926
|
onToggleNew: _resume(function() {
|
|
15393
13927
|
onlyNew = !onlyNew;
|
|
15394
|
-
}, "
|
|
13928
|
+
}, "m38", $scope4_id),
|
|
15395
13929
|
onReload: reload,
|
|
15396
13930
|
loading,
|
|
15397
13931
|
findHit: findState.hit,
|
|
@@ -15402,7 +13936,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15402
13936
|
collapsedFiles,
|
|
15403
13937
|
onFileToggle: _resume(function(key, open) {
|
|
15404
13938
|
setFilesCollapsed([key], !open);
|
|
15405
|
-
}, "
|
|
13939
|
+
}, "m39", $scope4_id),
|
|
15406
13940
|
onSelect: _resume(function(file, range) {
|
|
15407
13941
|
draft = {
|
|
15408
13942
|
key: file.key,
|
|
@@ -15410,28 +13944,28 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15410
13944
|
start: Math.min(range.start, range.end),
|
|
15411
13945
|
end: Math.max(range.start, range.end)
|
|
15412
13946
|
};
|
|
15413
|
-
}, "
|
|
13947
|
+
}, "m40", $scope4_id),
|
|
15414
13948
|
onSaveComment: _resume(function(file, text) {
|
|
15415
13949
|
saveComment(file, text);
|
|
15416
|
-
}, "
|
|
13950
|
+
}, "m41", $scope4_id),
|
|
15417
13951
|
onSendDraft: _resume(function(file, text, sessionId) {
|
|
15418
13952
|
return sendDraftComment(file, text, sessionId);
|
|
15419
|
-
}, "
|
|
13953
|
+
}, "m42", $scope4_id),
|
|
15420
13954
|
onCancelDraft: _resume(function() {
|
|
15421
13955
|
draft = null;
|
|
15422
|
-
}, "
|
|
13956
|
+
}, "m43", $scope4_id),
|
|
15423
13957
|
onDeleteComment: _resume(function(id) {
|
|
15424
13958
|
removeComment(id);
|
|
15425
|
-
}, "
|
|
13959
|
+
}, "m44", $scope4_id),
|
|
15426
13960
|
onEditComment: _resume(function(id, text) {
|
|
15427
13961
|
editComment(id, text);
|
|
15428
|
-
}, "
|
|
13962
|
+
}, "m45", $scope4_id),
|
|
15429
13963
|
onSendComment: _resume(function(id, sessionId) {
|
|
15430
13964
|
return sendOneComment(id, sessionId);
|
|
15431
|
-
}, "
|
|
13965
|
+
}, "m46", $scope4_id),
|
|
15432
13966
|
onError: _resume(function(message) {
|
|
15433
13967
|
error = message;
|
|
15434
|
-
}, "
|
|
13968
|
+
}, "m47", $scope4_id)
|
|
15435
13969
|
});
|
|
15436
13970
|
_subscribe($toggleSection2__closures, _subscribe($sendDraftComment2__closures, _subscribe($sendOneComment2__closures, _subscribe($editComment2__closures, _subscribe($removeComment2__closures, _subscribe($saveComment2__closures, _subscribe($localDifferIds__closures, _subscribe($commentsByFile__closures, _subscribe($shownKeySet__closures, _subscribe($repoList_length__closures, _subscribe($reload2__closures, _subscribe($expandingRepos__closures, _subscribe($openedRepos__closures, _subscribe($setFilesCollapsed2__closures, _subscribe($collapsedFiles__closures, _subscribe($collapsedRepos__closures, _subscribe($findState_hit__closures, _subscribe($onlyNew__closures, _subscribe($loading__closures, _subscribe($draft__closures, _subscribe($si__input_workspaceName && $input_workspaceName__closures, _subscribe($si__input_workspaceBranch && $input_workspaceBranch__closures, _subscribe($si__input_sessions && $input_sessions__closures, writeScope($scope4_id, { a: _existing_scope($childScope5) }))))))))))))))))))))))));
|
|
15437
13971
|
return 0;
|
|
@@ -15453,17 +13987,17 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15453
13987
|
collapsedRepos,
|
|
15454
13988
|
collapsedReposChange: _resume((_new_collapsedRepos) => {
|
|
15455
13989
|
collapsedRepos = _new_collapsedRepos;
|
|
15456
|
-
}, "
|
|
13990
|
+
}, "m48", $scope0_id),
|
|
15457
13991
|
openedRepos,
|
|
15458
13992
|
openedReposChange: _resume((_new_openedRepos) => {
|
|
15459
13993
|
openedRepos = _new_openedRepos;
|
|
15460
|
-
}, "
|
|
13994
|
+
}, "m49", $scope0_id),
|
|
15461
13995
|
commentKeys,
|
|
15462
13996
|
newKeys,
|
|
15463
13997
|
collapsedFiles,
|
|
15464
13998
|
onDirToggle: _resume(function(keys, collapsed) {
|
|
15465
13999
|
setFilesCollapsed(keys, collapsed);
|
|
15466
|
-
}, "
|
|
14000
|
+
}, "m50", $scope0_id),
|
|
15467
14001
|
workspaceId: input.workspaceId,
|
|
15468
14002
|
scope
|
|
15469
14003
|
});
|
|
@@ -15473,7 +14007,7 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15473
14007
|
open: fileSheet,
|
|
15474
14008
|
openChange: _resume((_new_fileSheet) => {
|
|
15475
14009
|
fileSheet = _new_fileSheet;
|
|
15476
|
-
}, "
|
|
14010
|
+
}, "m51", $scope0_id),
|
|
15477
14011
|
files: shownFiles,
|
|
15478
14012
|
filter: fileFilter,
|
|
15479
14013
|
filterChange: $filterChange,
|
|
@@ -15485,10 +14019,10 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15485
14019
|
});
|
|
15486
14020
|
_html("</div>");
|
|
15487
14021
|
const $return = $findFocus_getter;
|
|
15488
|
-
_script($scope0_id, "m58");
|
|
15489
14022
|
_script($scope0_id, "m59");
|
|
15490
14023
|
_script($scope0_id, "m60");
|
|
15491
14024
|
_script($scope0_id, "m61");
|
|
14025
|
+
_script($scope0_id, "m62");
|
|
15492
14026
|
writeScope($scope0_id, {
|
|
15493
14027
|
a3: input.workspaceId,
|
|
15494
14028
|
a4: input.scope,
|
|
@@ -15531,85 +14065,86 @@ var diff_view_default = _template("m", (input) => {
|
|
|
15531
14065
|
bk: nearBox.io,
|
|
15532
14066
|
bl: nearBox.root,
|
|
15533
14067
|
bn: observeNear,
|
|
15534
|
-
|
|
15535
|
-
|
|
15536
|
-
br:
|
|
15537
|
-
|
|
15538
|
-
|
|
15539
|
-
|
|
15540
|
-
|
|
15541
|
-
|
|
15542
|
-
|
|
15543
|
-
c3:
|
|
15544
|
-
|
|
15545
|
-
c6:
|
|
15546
|
-
c7:
|
|
15547
|
-
|
|
15548
|
-
ca: headBox.
|
|
15549
|
-
|
|
15550
|
-
|
|
15551
|
-
|
|
15552
|
-
|
|
15553
|
-
|
|
15554
|
-
cn:
|
|
15555
|
-
|
|
15556
|
-
cq:
|
|
15557
|
-
|
|
15558
|
-
ct: repoList
|
|
15559
|
-
cu:
|
|
15560
|
-
|
|
15561
|
-
cx:
|
|
15562
|
-
cy:
|
|
15563
|
-
|
|
15564
|
-
|
|
15565
|
-
|
|
15566
|
-
|
|
15567
|
-
|
|
15568
|
-
|
|
15569
|
-
df:
|
|
15570
|
-
dg:
|
|
15571
|
-
dh:
|
|
15572
|
-
|
|
15573
|
-
dk:
|
|
15574
|
-
|
|
15575
|
-
do:
|
|
15576
|
-
dp:
|
|
15577
|
-
|
|
15578
|
-
dt:
|
|
15579
|
-
du:
|
|
15580
|
-
dv:
|
|
15581
|
-
dw:
|
|
15582
|
-
|
|
15583
|
-
e0:
|
|
14068
|
+
bp: posBox.run,
|
|
14069
|
+
bq: posBox.raf,
|
|
14070
|
+
br: posBox.anchor,
|
|
14071
|
+
bt: pinToTop,
|
|
14072
|
+
bu: cancelRestore,
|
|
14073
|
+
bv: retryFrames,
|
|
14074
|
+
bx: focusPrSection,
|
|
14075
|
+
by: findFile,
|
|
14076
|
+
c0: openFile,
|
|
14077
|
+
c3: jumpTo,
|
|
14078
|
+
c4: anchorAt,
|
|
14079
|
+
c6: noteScroll,
|
|
14080
|
+
c7: savePos,
|
|
14081
|
+
c8: restorePos,
|
|
14082
|
+
ca: headBox.sig,
|
|
14083
|
+
cb: headBox.timer,
|
|
14084
|
+
cd: loadBox.seq,
|
|
14085
|
+
cf: load,
|
|
14086
|
+
ci: setScope,
|
|
14087
|
+
cl: sendGate.busy,
|
|
14088
|
+
cn: loadReview,
|
|
14089
|
+
co: reload,
|
|
14090
|
+
cq: reloadSoon,
|
|
14091
|
+
cr: markSeen,
|
|
14092
|
+
ct: repoList,
|
|
14093
|
+
cu: repoList.length,
|
|
14094
|
+
cv: allFiles,
|
|
14095
|
+
cx: allFiles?.length,
|
|
14096
|
+
cy: fileFiltered,
|
|
14097
|
+
cz: findKeys,
|
|
14098
|
+
d2: shownFiles?.length,
|
|
14099
|
+
d4: shownKeySet,
|
|
14100
|
+
d6: groupByRepo,
|
|
14101
|
+
d9: filesByRepo,
|
|
14102
|
+
dc: commentsByFile,
|
|
14103
|
+
df: localDifferIds,
|
|
14104
|
+
dg: hasFiles,
|
|
14105
|
+
dh: fileWorktree,
|
|
14106
|
+
di: anchorFor,
|
|
14107
|
+
dk: saveComment,
|
|
14108
|
+
dl: deleteRemote,
|
|
14109
|
+
do: removeComment,
|
|
14110
|
+
dp: editComment,
|
|
14111
|
+
dq: dispatch,
|
|
14112
|
+
dt: copyMarkdown,
|
|
14113
|
+
du: sendTo,
|
|
14114
|
+
dv: sendOneComment,
|
|
14115
|
+
dw: sendDraftComment,
|
|
14116
|
+
dx: openFind,
|
|
14117
|
+
e0: toggleSection,
|
|
14118
|
+
e1: findFocus,
|
|
15584
14119
|
b4: input.findOpenChange || void 0,
|
|
15585
14120
|
b6: input.findTickChange || void 0,
|
|
15586
14121
|
l: _existing_scope($childScope2),
|
|
15587
14122
|
q: _existing_scope($childScope3),
|
|
15588
|
-
|
|
15589
|
-
|
|
15590
|
-
|
|
15591
|
-
|
|
15592
|
-
|
|
15593
|
-
|
|
15594
|
-
|
|
15595
|
-
|
|
15596
|
-
|
|
15597
|
-
|
|
15598
|
-
|
|
15599
|
-
|
|
15600
|
-
|
|
15601
|
-
|
|
15602
|
-
|
|
15603
|
-
|
|
15604
|
-
|
|
15605
|
-
|
|
15606
|
-
|
|
15607
|
-
|
|
15608
|
-
|
|
15609
|
-
|
|
15610
|
-
|
|
15611
|
-
|
|
15612
|
-
|
|
14123
|
+
e8: $error__closures,
|
|
14124
|
+
ec: $scope__closures,
|
|
14125
|
+
e3: $si__input_sessions && $input_sessions__closures,
|
|
14126
|
+
e4: $si__input_workspaceBranch && $input_workspaceBranch__closures,
|
|
14127
|
+
e5: $si__input_workspaceName && $input_workspaceName__closures,
|
|
14128
|
+
e7: $draft__closures,
|
|
14129
|
+
e9: $loading__closures,
|
|
14130
|
+
eb: $onlyNew__closures,
|
|
14131
|
+
eg: $findState_hit__closures,
|
|
14132
|
+
eh: $collapsedRepos__closures,
|
|
14133
|
+
ei: $collapsedFiles__closures,
|
|
14134
|
+
ej: $setFilesCollapsed2__closures,
|
|
14135
|
+
ek: $openedRepos__closures,
|
|
14136
|
+
el: $expandingRepos__closures,
|
|
14137
|
+
en: $reload2__closures,
|
|
14138
|
+
ep: $repoList_length__closures,
|
|
14139
|
+
er: $shownKeySet__closures,
|
|
14140
|
+
et: $commentsByFile__closures,
|
|
14141
|
+
eu: $localDifferIds__closures,
|
|
14142
|
+
ew: $saveComment2__closures,
|
|
14143
|
+
ex: $removeComment2__closures,
|
|
14144
|
+
ey: $editComment2__closures,
|
|
14145
|
+
f1: $sendOneComment2__closures,
|
|
14146
|
+
f2: $sendDraftComment2__closures,
|
|
14147
|
+
f3: $toggleSection2__closures,
|
|
15613
14148
|
z: _existing_scope($childScope6),
|
|
15614
14149
|
a0: _existing_scope($childScope7)
|
|
15615
14150
|
});
|
|
@@ -15751,8 +14286,8 @@ var icon_clipboard_default = _template("Y", (input) => {
|
|
|
15751
14286
|
});
|
|
15752
14287
|
_serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
|
|
15753
14288
|
});
|
|
15754
|
-
var resultRow = "
|
|
15755
|
-
var resultBranch = "
|
|
14289
|
+
var resultRow = "_gV _I";
|
|
14290
|
+
var resultBranch = "_gX _4 _l";
|
|
15756
14291
|
//#endregion
|
|
15757
14292
|
//#region src/tags/icons/icon-branch.marko
|
|
15758
14293
|
var icon_branch_default = _template("U", (input) => {
|
|
@@ -15782,11 +14317,11 @@ var branch_pick_default = _template("d", (input) => {
|
|
|
15782
14317
|
let branchFilter = "";
|
|
15783
14318
|
let reloadTick = 0;
|
|
15784
14319
|
let refreshing = false;
|
|
15785
|
-
_html(`<div${_attr_class("
|
|
14320
|
+
_html(`<div${_attr_class("_gZ")}>`);
|
|
15786
14321
|
_if(() => {
|
|
15787
14322
|
{
|
|
15788
14323
|
const $scope4_id = _scope_id();
|
|
15789
|
-
_html(`<p${_attr_class("
|
|
14324
|
+
_html(`<p${_attr_class("_cq")}><span${_attr_class("_G")}></span> Loading branches…</p>`);
|
|
15790
14325
|
writeScope($scope4_id, {});
|
|
15791
14326
|
return 0;
|
|
15792
14327
|
}
|
|
@@ -15887,21 +14422,21 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
15887
14422
|
_resume_branch($scope9_id);
|
|
15888
14423
|
}, $scope0_id) };
|
|
15889
14424
|
const hasBody = !!(pasted || results.length || filter && (!catalog || !pasted) || compact && ssoPending.length);
|
|
15890
|
-
_html(`<div${_attr_class([compact ? "_fo" : "
|
|
14425
|
+
_html(`<div${_attr_class([compact ? "_fo" : "_gN", {
|
|
15891
14426
|
["_fp"]: compact && !input$2.open,
|
|
15892
14427
|
["_fq"]: input$2.pinned
|
|
15893
14428
|
}])}>`);
|
|
15894
14429
|
_if(() => {
|
|
15895
14430
|
if (!compact && ssoPending.length) {
|
|
15896
14431
|
const $scope11_id = _scope_id();
|
|
15897
|
-
_html(`<div${_attr_class("
|
|
14432
|
+
_html(`<div${_attr_class("_gQ")}>`);
|
|
15898
14433
|
ssoBlock.content({});
|
|
15899
14434
|
_html("</div>");
|
|
15900
14435
|
writeScope($scope11_id, {});
|
|
15901
14436
|
return 0;
|
|
15902
14437
|
}
|
|
15903
14438
|
}, $scope0_id, "b", 1, 1, 1, 0, 1);
|
|
15904
|
-
_html(`<div${!compact && input$2.action ? _attr_class("
|
|
14439
|
+
_html(`<div${!compact && input$2.action ? _attr_class("_gO") : _attr_class("_gP")}><label${_attr_class(["_1", compact && "_fr"])}>`);
|
|
15905
14440
|
icon_search_default({
|
|
15906
14441
|
size: 14,
|
|
15907
14442
|
class: "_2"
|
|
@@ -15935,11 +14470,11 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
15935
14470
|
return 0;
|
|
15936
14471
|
}
|
|
15937
14472
|
}, $scope0_id, "h", _serialize_guard($scope0_reason, 0), $sg__input_compact, 1, 0, 1);
|
|
15938
|
-
_html(`<div${_attr_class([compact ? pop$1 : "
|
|
14473
|
+
_html(`<div${_attr_class([compact ? pop$1 : "_gR"])}${_attr("hidden", !hasBody || compact && !input$2.open && !input$2.pinned)}>`);
|
|
15939
14474
|
_if(() => {
|
|
15940
14475
|
if (compact && ssoPending.length) {
|
|
15941
14476
|
const $scope12_id = _scope_id();
|
|
15942
|
-
_html(`<div${_attr_class("
|
|
14477
|
+
_html(`<div${_attr_class("_gQ")}>`);
|
|
15943
14478
|
ssoBlock.content({});
|
|
15944
14479
|
_html("</div>");
|
|
15945
14480
|
writeScope($scope12_id, {});
|
|
@@ -15949,16 +14484,16 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
15949
14484
|
_if(() => {
|
|
15950
14485
|
if (pasted) {
|
|
15951
14486
|
const $scope3_id = _scope_id();
|
|
15952
|
-
_html(`<ul${_attr_class("
|
|
14487
|
+
_html(`<ul${_attr_class("_gS")}><li><div${_attr_class(["_gU", "_gT"])}><button${_attr_class(resultRow)}${pasteWillFork ? _attr("title", `Fork ${pasted} to your account and add the fork`) : _attr("title", `Add ${pasted} as-is (pushes go to that repo)`)}>`);
|
|
15953
14488
|
icon_plus_default({
|
|
15954
14489
|
size: 12,
|
|
15955
|
-
class: "
|
|
14490
|
+
class: "_g1"
|
|
15956
14491
|
});
|
|
15957
|
-
_html(`<span${_attr_class("
|
|
14492
|
+
_html(`<span${_attr_class("_g2")}>${_text_resume($scope3_id, "f", repoLabel(pasted))}</span></button>${_el_resume($scope3_id, "c")}`);
|
|
15958
14493
|
_if(() => {
|
|
15959
14494
|
if (pastedForkable) {
|
|
15960
14495
|
const $scope10_id = _scope_id();
|
|
15961
|
-
_html(`<button${_attr_class(["
|
|
14496
|
+
_html(`<button${_attr_class(["_gY", { ["_gW"]: pasteWillFork }])}${pasteWillFork ? " title=\"Will fork to your account; click to clone as-is instead\"" : _attr("title", `Fork ${pasted} to your account and clone the fork`)} aria-pressed=${pasteWillFork ? "true" : "false"}>`);
|
|
15962
14497
|
_if(() => {
|
|
15963
14498
|
if (pasteWillFork) {
|
|
15964
14499
|
const $scope14_id = _scope_id();
|
|
@@ -15978,7 +14513,7 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
15978
14513
|
return 0;
|
|
15979
14514
|
}
|
|
15980
14515
|
}, $scope3_id, "g", 1, 1, 1, 0, 1);
|
|
15981
|
-
_html(`<button${_attr_class([resultBranch, { ["
|
|
14516
|
+
_html(`<button${_attr_class([resultBranch, { ["_gW"]: branchesFor === pasted }])}${_attr("title", `Pick a base branch for ${pasted}`)}${_attr("aria-label", `Pick a base branch for ${pasted}`)}>`);
|
|
15982
14517
|
icon_branch_default({ size: 12 });
|
|
15983
14518
|
_html(`</button>${_el_resume($scope3_id, "h")}</div>`);
|
|
15984
14519
|
_if(() => {
|
|
@@ -16005,7 +14540,7 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
16005
14540
|
return 0;
|
|
16006
14541
|
} else if (filter && !catalog) {
|
|
16007
14542
|
const $scope13_id = _scope_id();
|
|
16008
|
-
_html(`<p${_attr_class("
|
|
14543
|
+
_html(`<p${_attr_class("_cq")}>Loading repos…</p>`);
|
|
16009
14544
|
writeScope($scope13_id, {});
|
|
16010
14545
|
return 1;
|
|
16011
14546
|
}
|
|
@@ -16013,15 +14548,15 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
16013
14548
|
_if(() => {
|
|
16014
14549
|
if (results.length) {
|
|
16015
14550
|
const $scope5_id = _scope_id();
|
|
16016
|
-
_html(`<ul${_attr_class("
|
|
14551
|
+
_html(`<ul${_attr_class("_gS")}>`);
|
|
16017
14552
|
_for_of(results, (repo, i) => {
|
|
16018
14553
|
const $scope6_id = _scope_id();
|
|
16019
|
-
_html(`<li><div${_attr_class(["
|
|
14554
|
+
_html(`<li><div${_attr_class(["_gU", { ["_gT"]: i === highlight }])}><button${_attr_class(resultRow)}>`);
|
|
16020
14555
|
icon_plus_default({
|
|
16021
14556
|
size: 12,
|
|
16022
|
-
class: "
|
|
14557
|
+
class: "_g1"
|
|
16023
14558
|
});
|
|
16024
|
-
_html(`<span${_attr_class("
|
|
14559
|
+
_html(`<span${_attr_class("_g2")}>${_text_resume($scope6_id, "e", repoLabel(repo.nameWithOwner))}</span></button>${_el_resume($scope6_id, "b")}<button${_attr_class([resultBranch, { ["_gW"]: branchesFor === repo.nameWithOwner }])}${_attr("title", `Pick a base branch for ${repo.nameWithOwner}`)}${_attr("aria-label", `Pick a base branch for ${repo.nameWithOwner}`)}>`);
|
|
16025
14560
|
icon_branch_default({ size: 12 });
|
|
16026
14561
|
_html(`</button>${_el_resume($scope6_id, "f")}</div>${_el_resume($scope6_id, "a")}`);
|
|
16027
14562
|
_if(() => {
|
|
@@ -16056,7 +14591,7 @@ var repo_picker_default = _template("w", (input$2) => {
|
|
|
16056
14591
|
return 0;
|
|
16057
14592
|
} else if (filter && catalog && !pasted) {
|
|
16058
14593
|
const $scope8_id = _scope_id();
|
|
16059
|
-
_html(`<p${_attr_class("
|
|
14594
|
+
_html(`<p${_attr_class("_cq")}>No repos match "${_text_resume($scope8_id, "b", filter, 2)}". Paste a clone URL to add any repo.</p>`);
|
|
16060
14595
|
writeScope($scope8_id, {});
|
|
16061
14596
|
return 1;
|
|
16062
14597
|
}
|
|
@@ -16378,12 +14913,12 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16378
14913
|
_if(() => {
|
|
16379
14914
|
if (pendingAction && actionStep) {
|
|
16380
14915
|
const $scope10_id = _scope_id();
|
|
16381
|
-
_html(`<p${_attr_class("
|
|
14916
|
+
_html(`<p${_attr_class("_ce")}><span${_attr_class("_G")}></span>${_text_resume($scope10_id, "c", actionStep)}</p>`);
|
|
16382
14917
|
writeScope($scope10_id, {});
|
|
16383
14918
|
return 0;
|
|
16384
14919
|
}
|
|
16385
14920
|
}, $scope0_id, "f", 1, 1, 1, 0, 1);
|
|
16386
|
-
_html(`<section${_attr_class("
|
|
14921
|
+
_html(`<section${_attr_class("_cf")}><div${_attr_class("_cg")}><h2${_attr_class("_ct")}>Repos</h2><span${_attr_class(sectionCount)}>${_text_resume($scope0_id, "k", ws.repos.length)}</span><div${_attr_class("_z")}></div><button${_attr_class([iconBtnRow, "_eR"])} title="Add repo" aria-label="Add repo"${_attr("hidden", addingRepo)}>`);
|
|
16387
14922
|
icon_plus_default({ size: 16 });
|
|
16388
14923
|
_html(`</button>${_el_resume($scope0_id, "m")}`);
|
|
16389
14924
|
_set_serialize_reason(26);
|
|
@@ -16417,7 +14952,7 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16417
14952
|
_html(`</button>${_el_resume($scope0_id, "q")}</div><ul${_attr_class(list$2)}>`);
|
|
16418
14953
|
_for_of(ws.repos, (row) => {
|
|
16419
14954
|
const $scope1_id = _scope_id();
|
|
16420
|
-
_html(`<li${_attr_class(flatCardRow)}><div${_attr_class("
|
|
14955
|
+
_html(`<li${_attr_class(flatCardRow)}><div${_attr_class("_cl")}><span${_attr_class(["_cm", "_y"])}>${_text_resume($scope1_id, "d", row.worktree)}/</span><span${_attr_class("_cn")}><a${_attr_class(["_co", "_K"])}${_attr("href", repoWebUrl(row.full_name))} target=_blank rel=noopener${_attr("title", `Open ${row.full_name} on GitHub`)}>${_text_resume($scope1_id, "g", repoLabel(row.full_name))}</a>${_el_resume($scope1_id, "f")}`);
|
|
16421
14956
|
_if(() => {
|
|
16422
14957
|
if (row.base_branch !== row.default_branch) {
|
|
16423
14958
|
const $scope20_id = _scope_id();
|
|
@@ -16438,7 +14973,7 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16438
14973
|
} else {
|
|
16439
14974
|
const $scope9_id = _scope_id();
|
|
16440
14975
|
_html(`<button${_attr_class([
|
|
16441
|
-
"
|
|
14976
|
+
"_cp",
|
|
16442
14977
|
"_8",
|
|
16443
14978
|
"_9",
|
|
16444
14979
|
{ ["_s"]: confirmingRemove === row.full_name }
|
|
@@ -16471,13 +15006,13 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16471
15006
|
}, "full_name", $scope0_id, "t", 1, 1, 1, 0, 1);
|
|
16472
15007
|
_for_of([...busy].filter((n) => !inWorkspace.has(n)), (name) => {
|
|
16473
15008
|
const $scope24_id = _scope_id();
|
|
16474
|
-
_html(`<li${_attr_class([flatCardRow, "
|
|
15009
|
+
_html(`<li${_attr_class([flatCardRow, "_cj"])}><span${_attr_class("_G")}></span><div${_attr_class("_cl")}><span${_attr_class("_co")}>Adding ${_text_resume($scope24_id, "e", name, 2)}…</span></div></li>`);
|
|
16475
15010
|
writeScope($scope24_id, {});
|
|
16476
15011
|
}, (n) => n, $scope0_id, "u", 1, 1, 1, 0, 1);
|
|
16477
15012
|
_if(() => {
|
|
16478
15013
|
if (!ws.repos.length && !busy.size) {
|
|
16479
15014
|
const $scope25_id = _scope_id();
|
|
16480
|
-
_html(`<li${_attr_class(flatCardRow)}><span${_attr_class("
|
|
15015
|
+
_html(`<li${_attr_class(flatCardRow)}><span${_attr_class("_co")}>No repos yet. Add one to start.</span></li>`);
|
|
16481
15016
|
writeScope($scope25_id, {});
|
|
16482
15017
|
return 0;
|
|
16483
15018
|
}
|
|
@@ -16495,7 +15030,7 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16495
15030
|
_if(() => {
|
|
16496
15031
|
if (allSkills.length) {
|
|
16497
15032
|
const $scope2_id = _scope_id();
|
|
16498
|
-
_html(`<section${_attr_class("
|
|
15033
|
+
_html(`<section${_attr_class("_cf")}><div${_attr_class("_cg")}><h2${_attr_class("_ct")}>Skills</h2><span${_attr_class(sectionCount)}>${_text_resume($scope2_id, "e", wsSkills.length)}/${_text_resume($scope2_id, "f", allSkills.length, 2)}</span></div><ul${_attr_class(list$2)}>`);
|
|
16499
15034
|
_for_of(allSkills, ({ s, linked }) => {
|
|
16500
15035
|
const $scope3_id = _scope_id();
|
|
16501
15036
|
const isBusy = skillBusy.has(s.id);
|
|
@@ -16558,7 +15093,7 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16558
15093
|
if (linked) {
|
|
16559
15094
|
const $scope11_id = _scope_id();
|
|
16560
15095
|
_html(`<button${_attr_class([
|
|
16561
|
-
"
|
|
15096
|
+
"_cp",
|
|
16562
15097
|
"_8",
|
|
16563
15098
|
"_9",
|
|
16564
15099
|
"_eP",
|
|
@@ -16611,7 +15146,7 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16611
15146
|
_if(() => {
|
|
16612
15147
|
if (running.length) {
|
|
16613
15148
|
const $scope15_id = _scope_id();
|
|
16614
|
-
_html(`<section${_attr_class("
|
|
15149
|
+
_html(`<section${_attr_class("_cf")}><div${_attr_class("_cg")}><h2${_attr_class("_ct")}>Running</h2><span${_attr_class(sectionCount)}>${_text_resume($scope15_id, "e", running.length)}</span></div><ul${_attr_class(list$2)}>`);
|
|
16615
15150
|
_for_of(running, (p) => {
|
|
16616
15151
|
const $scope16_id = _scope_id();
|
|
16617
15152
|
_html(`<li${_attr_class("_eD")}${_attr("title", `${p.cmd} ${p.args}`.trim())}><span${_attr_class(["_y", "_eE"])}>${_text_resume($scope16_id, "c", p.cmd)}</span><span${_attr_class(["_y", "_eF"])}>${_text_resume($scope16_id, "e", p.args)}</span><span${_attr_class("_eG")}>`);
|
|
@@ -16622,7 +15157,7 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16622
15157
|
writeScope($scope34_id, { d: port });
|
|
16623
15158
|
}, (x) => String(x), $scope16_id, "g", 1, 1, 1, 0, 1);
|
|
16624
15159
|
_html(`<span${_attr_class(["_y", "_eH"])}>${_text_resume($scope16_id, "i", p.pid)}</span><button${_attr_class([
|
|
16625
|
-
"
|
|
15160
|
+
"_cp",
|
|
16626
15161
|
"_8",
|
|
16627
15162
|
"_eQ"
|
|
16628
15163
|
])} type=button${_attr("title", `Kill process ${p.pid}`)}${_attr("aria-label", `Kill process ${p.pid}`)}>`);
|
|
@@ -16705,13 +15240,13 @@ var manage_workspace_default = _template("r", (input) => {
|
|
|
16705
15240
|
});
|
|
16706
15241
|
_resume_branch($scope0_id);
|
|
16707
15242
|
});
|
|
16708
|
-
var curRepos = "_ed
|
|
15243
|
+
var curRepos = "_ed _ck _d1 _eb";
|
|
16709
15244
|
var curRow = "_el _ee _ec";
|
|
16710
|
-
var curEmpty = "_en
|
|
15245
|
+
var curEmpty = "_en _cq";
|
|
16711
15246
|
var curBase = "_eq _Y _X";
|
|
16712
|
-
var archived = "_ev
|
|
15247
|
+
var archived = "_ev _cf";
|
|
16713
15248
|
var archivedHint = "_ew _X";
|
|
16714
|
-
var archivedList = "_ed
|
|
15249
|
+
var archivedList = "_ed _ck _d1 _eb";
|
|
16715
15250
|
var archivedRow = "_ex _ee _ec";
|
|
16716
15251
|
//#endregion
|
|
16717
15252
|
//#region src/tags/icons/icon-group.marko
|
|
@@ -16732,8 +15267,8 @@ var icon_group_default = _template("fb", (input) => {
|
|
|
16732
15267
|
});
|
|
16733
15268
|
//#endregion
|
|
16734
15269
|
//#region src/tags/join-dialog.css.ts
|
|
16735
|
-
var dlg = "
|
|
16736
|
-
var hint = "
|
|
15270
|
+
var dlg = "_hP _hL";
|
|
15271
|
+
var hint = "_hQ _X";
|
|
16737
15272
|
//#endregion
|
|
16738
15273
|
//#region src/tags/join-dialog.marko
|
|
16739
15274
|
var api$3;
|
|
@@ -16862,26 +15397,26 @@ var join_dialog_default = _template("o", (input) => {
|
|
|
16862
15397
|
content: _content("o12", () => {
|
|
16863
15398
|
_scope_reason();
|
|
16864
15399
|
const $scope1_id = _scope_id();
|
|
16865
|
-
_html(`<h2${_attr_class("
|
|
15400
|
+
_html(`<h2${_attr_class("_hM")}${_attr("id", titleId)}>Join a workspace</h2><p${_attr_class(hint)}>Paste an invite: the same repos, on your own lane of their branch.</p><textarea${_attr_class([
|
|
16866
15401
|
"_Z",
|
|
16867
15402
|
"_y",
|
|
16868
|
-
"
|
|
15403
|
+
"_hS"
|
|
16869
15404
|
])} placeholder="{ "name": …, "branch": …, "repos": ["owner/name", …] }" aria-label="Workspace invite" rows=6 autocomplete=off spellcheck=false${_attr("disabled", busy)} autofocus>${_attr_textarea_value($scope1_id, "c", invite, setInvite)}</textarea>${_el_resume($scope1_id, "c")}`);
|
|
16870
15405
|
_if(() => {
|
|
16871
15406
|
if (parsed.error) {
|
|
16872
15407
|
const $scope8_id = _scope_id();
|
|
16873
|
-
_html(`<p${_attr_class([hint, "
|
|
15408
|
+
_html(`<p${_attr_class([hint, "_hR"])}>${_text_resume($scope8_id, "b", parsed.error)}</p>`);
|
|
16874
15409
|
_subscribe($parsed_error__closures, writeScope($scope8_id, { Cag: 1 }));
|
|
16875
15410
|
return 0;
|
|
16876
15411
|
} else if (parsed.ok) {
|
|
16877
15412
|
const $scope3_id = _scope_id();
|
|
16878
|
-
_html(`<ul${_attr_class("
|
|
15413
|
+
_html(`<ul${_attr_class("_hT")}>`);
|
|
16879
15414
|
_for_of(parsed.ok.repos, (fullName) => {
|
|
16880
15415
|
const $scope9_id = _scope_id();
|
|
16881
|
-
_html(`<li${_attr_class("
|
|
15416
|
+
_html(`<li${_attr_class("_hU")}><span${_attr_class("_hV")}>${_text_resume($scope9_id, "c", repoLabel(fullName))}</span></li>`);
|
|
16882
15417
|
writeScope($scope9_id, {});
|
|
16883
15418
|
}, (r) => r, $scope3_id, "a", 1, 1, 1, "</ul>", 1);
|
|
16884
|
-
_html(`<p${_attr_class(hint)}>Your own lane of <span${_attr_class("_y")}>${_text_resume($scope3_id, "d", parsed.ok.branch)}</span> in each; PRs target theirs.</p><label${_attr_class("
|
|
15419
|
+
_html(`<p${_attr_class(hint)}>Your own lane of <span${_attr_class("_y")}>${_text_resume($scope3_id, "d", parsed.ok.branch)}</span> in each; PRs target theirs.</p><label${_attr_class("_hW")}><span${_attr_class("_ct")}>Name</span><input${_attr_input_value($scope3_id, "g", name, _resume((_new_name) => {
|
|
16885
15420
|
name = _new_name;
|
|
16886
15421
|
}, "o1", $scope3_id))}${_attr_class("_Z")}${_attr("placeholder", parsed.ok.name)}${_attr("disabled", busy)}>${_el_resume($scope3_id, "g")}</label>`);
|
|
16887
15422
|
_script($scope3_id, "o8");
|
|
@@ -16918,10 +15453,10 @@ var join_dialog_default = _template("o", (input) => {
|
|
|
16918
15453
|
_if(() => {
|
|
16919
15454
|
if (busy && steps$2.length) {
|
|
16920
15455
|
const $scope6_id = _scope_id();
|
|
16921
|
-
_html(`<ul${_attr_class("
|
|
15456
|
+
_html(`<ul${_attr_class("_hX")}>`);
|
|
16922
15457
|
_for_of(steps$2, (step$2, i) => {
|
|
16923
15458
|
const $scope7_id = _scope_id();
|
|
16924
|
-
_html(`<li${_attr_class(["
|
|
15459
|
+
_html(`<li${_attr_class(["_hZ", { ["_hY"]: i === steps$2.length - 1 }])}>`);
|
|
16925
15460
|
_if(() => {
|
|
16926
15461
|
if (i === steps$2.length - 1) {
|
|
16927
15462
|
const $scope10_id = _scope_id();
|
|
@@ -16930,7 +15465,7 @@ var join_dialog_default = _template("o", (input) => {
|
|
|
16930
15465
|
return 0;
|
|
16931
15466
|
} else {
|
|
16932
15467
|
const $scope11_id = _scope_id();
|
|
16933
|
-
_html(`<span${_attr_class("
|
|
15468
|
+
_html(`<span${_attr_class("_h0")}>`);
|
|
16934
15469
|
icon_check_default({ size: 14 });
|
|
16935
15470
|
_html("</span>");
|
|
16936
15471
|
writeScope($scope11_id, {});
|
|
@@ -17137,9 +15672,9 @@ var new_workspace_default = _template("t", (input) => {
|
|
|
17137
15672
|
return 0;
|
|
17138
15673
|
}
|
|
17139
15674
|
}, $scope0_id, "e", 1, 1, 1, 0, 1);
|
|
17140
|
-
_html(`<label${_attr_class("_eh")}><span${_attr_class("
|
|
15675
|
+
_html(`<label${_attr_class("_eh")}><span${_attr_class("_ct")}>Name</span><input${_attr_input_value($scope0_id, "h", name, _resume((_new_name) => {
|
|
17141
15676
|
name = _new_name;
|
|
17142
|
-
}, "t0", $scope0_id))}${_attr_class(inputLg)} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope0_id, "h")}</label><section${_attr_class("
|
|
15677
|
+
}, "t0", $scope0_id))}${_attr_class(inputLg)} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope0_id, "h")}</label><section${_attr_class("_cf")}><div${_attr_class("_ej")}><h2${_attr_class("_ct")}>Repos</h2></div><ul${_attr_class(curRepos)}>`);
|
|
17143
15678
|
_for_of(selected, (repo) => {
|
|
17144
15679
|
const $scope4_id = _scope_id();
|
|
17145
15680
|
_html(`<li${_attr_class("_ek")}><div${_attr_class(curRow)}><span${_attr_class("_eo")}>${_text_resume($scope4_id, "d", repoLabel(repo.fullName))}</span>`);
|
|
@@ -17284,10 +15819,10 @@ var new_workspace_default = _template("t", (input) => {
|
|
|
17284
15819
|
_if(() => {
|
|
17285
15820
|
if (archived$1.length) {
|
|
17286
15821
|
const $scope6_id = _scope_id();
|
|
17287
|
-
_html(`<section${_attr_class(archived)}><div${_attr_class("_ej")}><h2${_attr_class("
|
|
15822
|
+
_html(`<section${_attr_class(archived)}><div${_attr_class("_ej")}><h2${_attr_class("_ct")}>Archived</h2><span${_attr_class(sectionCount)}>${_text_resume($scope6_id, "e", archived$1.length, $sg__input_workspaces)}</span></div><p${_attr_class(archivedHint)}>Restore an archived workspace instead of creating a new one.</p><ul${_attr_class(archivedList)}>`);
|
|
17288
15823
|
_for_of(archived$1, (ws) => {
|
|
17289
15824
|
const $scope7_id = _scope_id();
|
|
17290
|
-
_html(`<li${_attr_class(archivedRow)}><div${_attr_class("
|
|
15825
|
+
_html(`<li${_attr_class(archivedRow)}><div${_attr_class("_cl")}><span${_attr_class("_cm")}>${_text_resume($scope7_id, "d", ws.name, $sg__input_workspaces)}</span><span${_attr_class([metaTrunc, "_y"])}${_attr("title", ws.display_path || ws.path)}>${_text_resume($scope7_id, "f", ws.display_path || ws.path, $sg__input_workspaces)}</span>${_el_resume($scope7_id, "e", $sg__input_workspaces)}</div><button type=button${_attr_class(btnSm)}${_attr("disabled", busy || !!restoring)}>`);
|
|
17291
15826
|
_if(() => {
|
|
17292
15827
|
if (restoring === ws.id) {
|
|
17293
15828
|
const $scope19_id = _scope_id();
|
|
@@ -17859,7 +16394,7 @@ var work_view_default = _template("J", (input) => {
|
|
|
17859
16394
|
const onKey = _resume((e) => {
|
|
17860
16395
|
const target = e.target;
|
|
17861
16396
|
const typing = !!target && !target.closest(".xterm") && (target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.tagName === "SELECT" || target.isContentEditable);
|
|
17862
|
-
if (e.key === "Escape" && view !== "term" && !document.querySelector("dialog[open]") && !(
|
|
16397
|
+
if (e.key === "Escape" && view !== "term" && view !== "diff" && !e.defaultPrevented && !document.querySelector("dialog[open]") && !(typing && target.tagName !== "SELECT" && target.value)) {
|
|
17863
16398
|
e.preventDefault();
|
|
17864
16399
|
if (view === "new") exitCreate();
|
|
17865
16400
|
else view = home;
|
|
@@ -17871,10 +16406,10 @@ var work_view_default = _template("J", (input) => {
|
|
|
17871
16406
|
}
|
|
17872
16407
|
}, "J14", $scope0_id);
|
|
17873
16408
|
const navShown = view === "nav" && input.navState?.view === "nav";
|
|
17874
|
-
_html(`<div${_attr_class(["
|
|
17875
|
-
["
|
|
17876
|
-
["
|
|
17877
|
-
}])}><div${_attr_class("
|
|
16409
|
+
_html(`<div${_attr_class(["_b_", {
|
|
16410
|
+
["_b8"]: navShown,
|
|
16411
|
+
["_b9"]: !input.active
|
|
16412
|
+
}])}><div${_attr_class("_ca")}>`);
|
|
17878
16413
|
_if(() => {
|
|
17879
16414
|
if (error) {
|
|
17880
16415
|
const $scope8_id = _scope_id();
|
|
@@ -17897,7 +16432,7 @@ var work_view_default = _template("J", (input) => {
|
|
|
17897
16432
|
_if(() => {
|
|
17898
16433
|
if (diffMounted && ws) {
|
|
17899
16434
|
const $scope1_id = _scope_id();
|
|
17900
|
-
_html(`<div${_attr_class("
|
|
16435
|
+
_html(`<div${_attr_class("_cb")}${_attr_or("data-live", view === "diff", "")}${_attr("inert", view !== "diff")}>`);
|
|
17901
16436
|
_set_serialize_reason({
|
|
17902
16437
|
0: $sg__input_workspace,
|
|
17903
16438
|
1: $sg__input_workspace,
|
|
@@ -17954,7 +16489,7 @@ var work_view_default = _template("J", (input) => {
|
|
|
17954
16489
|
_if(() => {
|
|
17955
16490
|
if (manageMounted && ws) {
|
|
17956
16491
|
const $scope2_id = _scope_id();
|
|
17957
|
-
_html(`<div${_attr_class("
|
|
16492
|
+
_html(`<div${_attr_class("_cb")}${_attr_or("data-live", view === "manage", "")}${_attr("inert", view !== "manage")}>`);
|
|
17958
16493
|
_set_serialize_reason({
|
|
17959
16494
|
0: $sg__input_workspace,
|
|
17960
16495
|
1: _serialize_guard($scope0_reason, 9)
|
|
@@ -17980,7 +16515,7 @@ var work_view_default = _template("J", (input) => {
|
|
|
17980
16515
|
_if(() => {
|
|
17981
16516
|
if (settingsMounted) {
|
|
17982
16517
|
const $scope3_id = _scope_id();
|
|
17983
|
-
_html(`<div${_attr_class("
|
|
16518
|
+
_html(`<div${_attr_class("_cb")}${_attr_or("data-live", view === "settings", "")}${_attr("inert", view !== "settings")}>`);
|
|
17984
16519
|
_set_serialize_reason({
|
|
17985
16520
|
0: _serialize_guard($scope0_reason, 0),
|
|
17986
16521
|
1: $sg__input_workspace,
|
|
@@ -18022,7 +16557,7 @@ var work_view_default = _template("J", (input) => {
|
|
|
18022
16557
|
_if(() => {
|
|
18023
16558
|
if (newMounted) {
|
|
18024
16559
|
const $scope4_id = _scope_id();
|
|
18025
|
-
_html(`<div${_attr_class("
|
|
16560
|
+
_html(`<div${_attr_class("_cb")}${_attr_or("data-live", view === "new", "")}${_attr("inert", view !== "new")}>`);
|
|
18026
16561
|
_set_serialize_reason({
|
|
18027
16562
|
0: 1,
|
|
18028
16563
|
1: _serialize_guard($scope0_reason, 13),
|
|
@@ -18047,13 +16582,13 @@ var work_view_default = _template("J", (input) => {
|
|
|
18047
16582
|
return 0;
|
|
18048
16583
|
}
|
|
18049
16584
|
}, $scope0_id, "g", 1, 1, 1, 0, 1);
|
|
18050
|
-
_html(`<div${_attr_class("
|
|
16585
|
+
_html(`<div${_attr_class("_cc")}${_attr("inert", view !== "term")}>`);
|
|
18051
16586
|
_if(() => {
|
|
18052
16587
|
if (ws && shownSessions) {
|
|
18053
16588
|
const $scope5_id = _scope_id();
|
|
18054
16589
|
_for_of(input.active ? shownSessions : shownSessions.filter((x) => x.id === curTab), (s) => {
|
|
18055
16590
|
const $scope6_id = _scope_id();
|
|
18056
|
-
_html(`<div${_attr_class("
|
|
16591
|
+
_html(`<div${_attr_class("_cd")}${_attr_or("data-live", s.id === curTab, "")}${_attr("inert", s.id !== curTab)}>`);
|
|
18057
16592
|
_set_serialize_reason(2);
|
|
18058
16593
|
const $childScope5 = _peek_scope_id();
|
|
18059
16594
|
term_default({
|
|
@@ -18079,7 +16614,7 @@ var work_view_default = _template("J", (input) => {
|
|
|
18079
16614
|
_if(() => {
|
|
18080
16615
|
if (!shownSessions.length && view === "term") {
|
|
18081
16616
|
const $scope7_id = _scope_id();
|
|
18082
|
-
_html(`<div${_attr_class("
|
|
16617
|
+
_html(`<div${_attr_class("_cr")}><span>No sessions in this workspace.</span><button${_attr_class(["_q", "_r"])}${_attr("disabled", spawning)}>${_text_resume($scope7_id, "c", spawning ? "Starting…" : `Start ${input.preferred || "shell"}`)}</button>${_el_resume($scope7_id, "b")}</div>`);
|
|
18083
16618
|
_script($scope7_id, "J38");
|
|
18084
16619
|
_subscribe($spawning__closures, _subscribe($si__input_preferred && $input_preferred__closures, writeScope($scope7_id, {})));
|
|
18085
16620
|
return 0;
|
|
@@ -18089,7 +16624,7 @@ var work_view_default = _template("J", (input) => {
|
|
|
18089
16624
|
return 0;
|
|
18090
16625
|
} else if (ws) {
|
|
18091
16626
|
const $scope10_id = _scope_id();
|
|
18092
|
-
_html(`<p${_attr_class("
|
|
16627
|
+
_html(`<p${_attr_class("_cr")}>Loading sessions…</p>`);
|
|
18093
16628
|
writeScope($scope10_id, {});
|
|
18094
16629
|
return 1;
|
|
18095
16630
|
}
|
|
@@ -18638,7 +17173,6 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18638
17173
|
let status = boot.status;
|
|
18639
17174
|
let settings = boot.settings;
|
|
18640
17175
|
const last = boot.prefs["last-workspace"];
|
|
18641
|
-
const openable = _resume((ws) => ws.status === "active" && !ws.pending, "c0");
|
|
18642
17176
|
const bootActive = boot.workspaces.filter(openable);
|
|
18643
17177
|
let selectedId = (initial.workspaceId && bootActive.some((ws) => ws.id === initial.workspaceId) ? initial.workspaceId : null) || (last && bootActive.some((ws) => ws.id === last) ? last : null) || bootActive[0]?.id || null;
|
|
18644
17178
|
let openIds = selectedId ? [selectedId] : [];
|
|
@@ -18669,7 +17203,7 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18669
17203
|
if (fallback && !openIds.includes(fallback)) openIds = openIds.concat(fallback);
|
|
18670
17204
|
prefs.setLastWorkspace(selectedId);
|
|
18671
17205
|
}
|
|
18672
|
-
}, "
|
|
17206
|
+
}, "c0", $scope0_id);
|
|
18673
17207
|
const load = _resume(async () => {
|
|
18674
17208
|
try {
|
|
18675
17209
|
applyWorkspaces(await api("/api/workspaces"));
|
|
@@ -18677,7 +17211,7 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18677
17211
|
if (isTransientApiError(err)) return;
|
|
18678
17212
|
error = `Loading workspaces failed: ${err.message || String(err)}`;
|
|
18679
17213
|
}
|
|
18680
|
-
}, "
|
|
17214
|
+
}, "c1", $scope0_id);
|
|
18681
17215
|
const patchStatusSessions = _resume((workspaceId, sessions) => {
|
|
18682
17216
|
const prev = status[workspaceId];
|
|
18683
17217
|
if (!prev) return;
|
|
@@ -18697,7 +17231,7 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18697
17231
|
waiting: live.filter((state) => state.phase === "waiting").length
|
|
18698
17232
|
}
|
|
18699
17233
|
};
|
|
18700
|
-
}, "
|
|
17234
|
+
}, "c2", $scope0_id);
|
|
18701
17235
|
const statusMem = {
|
|
18702
17236
|
run: void 0,
|
|
18703
17237
|
fresh: false
|
|
@@ -18713,7 +17247,7 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18713
17247
|
if (!isTransientApiError(err)) throw err;
|
|
18714
17248
|
}
|
|
18715
17249
|
}))();
|
|
18716
|
-
}, "
|
|
17250
|
+
}, "c3", $scope0_id);
|
|
18717
17251
|
const openWorkspace = _resume(async (id) => {
|
|
18718
17252
|
const ws = workspaces.find((w) => w.id === id);
|
|
18719
17253
|
if (ws?.pending && ws.status === "active") return;
|
|
@@ -18734,7 +17268,7 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18734
17268
|
openIds = openIds.filter((x) => x !== id).concat(id);
|
|
18735
17269
|
if (openIds.length > OPEN_VIEWS_MAX) openIds = openIds.slice(-6);
|
|
18736
17270
|
prefs.setLastWorkspace(id);
|
|
18737
|
-
}, "
|
|
17271
|
+
}, "c4", $scope0_id);
|
|
18738
17272
|
const go = _resume((r) => {
|
|
18739
17273
|
let id = r.workspaceId || selectedId;
|
|
18740
17274
|
if (id && !workspaces.some((w) => w.id === id && !w.pending)) id = selectedId && workspaces.some((w) => w.id === selectedId && !w.pending) ? selectedId : null;
|
|
@@ -18753,7 +17287,7 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18753
17287
|
workspaceId: id
|
|
18754
17288
|
};
|
|
18755
17289
|
navNonce++;
|
|
18756
|
-
}, "
|
|
17290
|
+
}, "c5", $scope0_id);
|
|
18757
17291
|
_html(`<div${_attr_class("_d")}>`);
|
|
18758
17292
|
_if(() => {
|
|
18759
17293
|
if (error) {
|
|
@@ -18761,8 +17295,8 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18761
17295
|
toast_default({
|
|
18762
17296
|
onDismiss: _resume(function() {
|
|
18763
17297
|
error = null;
|
|
18764
|
-
}, "
|
|
18765
|
-
content: _content("
|
|
17298
|
+
}, "c6", $scope4_id),
|
|
17299
|
+
content: _content("c39", () => {
|
|
18766
17300
|
_scope_reason();
|
|
18767
17301
|
const $scope5_id = _scope_id();
|
|
18768
17302
|
_html(_text_resume($scope5_id, "a", error));
|
|
@@ -18791,29 +17325,29 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18791
17325
|
...settings,
|
|
18792
17326
|
instance
|
|
18793
17327
|
};
|
|
18794
|
-
}, "
|
|
17328
|
+
}, "c7", $scope3_id),
|
|
18795
17329
|
setup,
|
|
18796
17330
|
setupChange: _resume(function(s) {
|
|
18797
17331
|
setup = s;
|
|
18798
17332
|
if (s.ready) showSetup = false;
|
|
18799
|
-
}, "
|
|
17333
|
+
}, "c8", $scope3_id),
|
|
18800
17334
|
preferredChange: _resume(function(agent) {
|
|
18801
17335
|
if (!settings) return;
|
|
18802
17336
|
settings = {
|
|
18803
17337
|
...settings,
|
|
18804
17338
|
preferredAgent: agent
|
|
18805
17339
|
};
|
|
18806
|
-
}, "
|
|
17340
|
+
}, "c9", $scope3_id),
|
|
18807
17341
|
agentsChange: _resume(function(agents) {
|
|
18808
17342
|
if (!settings) return;
|
|
18809
17343
|
settings = {
|
|
18810
17344
|
...settings,
|
|
18811
17345
|
agents
|
|
18812
17346
|
};
|
|
18813
|
-
}, "
|
|
17347
|
+
}, "c10", $scope3_id)
|
|
18814
17348
|
});
|
|
18815
17349
|
_html(`<div${_attr_class("_k")}><button type=button${_attr_class("_q")}>Later, go to workspaces</button>${_el_resume($scope3_id, "d")}</div></div>`);
|
|
18816
|
-
_script($scope3_id, "
|
|
17350
|
+
_script($scope3_id, "c40");
|
|
18817
17351
|
writeScope($scope3_id, { b: _existing_scope($childScope) });
|
|
18818
17352
|
return 0;
|
|
18819
17353
|
}
|
|
@@ -18831,7 +17365,7 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18831
17365
|
workspaceId: null,
|
|
18832
17366
|
view: "new"
|
|
18833
17367
|
});
|
|
18834
|
-
}, "
|
|
17368
|
+
}, "c11", $scope0_id);
|
|
18835
17369
|
_html(`<div${_attr_class(["_f", {
|
|
18836
17370
|
["_g"]: !selectedId && showSetup,
|
|
18837
17371
|
["_e"]: navView === "nav"
|
|
@@ -18852,42 +17386,42 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18852
17386
|
view: "term",
|
|
18853
17387
|
sessionId: id
|
|
18854
17388
|
});
|
|
18855
|
-
}, "
|
|
17389
|
+
}, "c12", $scope0_id),
|
|
18856
17390
|
view: navView,
|
|
18857
17391
|
viewChange: _resume(function(v) {
|
|
18858
17392
|
if (v === "term") goHome();
|
|
18859
|
-
}, "
|
|
17393
|
+
}, "c13", $scope0_id),
|
|
18860
17394
|
allWorkspaces: workspaces,
|
|
18861
17395
|
allStatus: status,
|
|
18862
17396
|
agents: settings ? settings.agents : [],
|
|
18863
17397
|
onError: _resume(function(message) {
|
|
18864
17398
|
error = message;
|
|
18865
|
-
}, "
|
|
17399
|
+
}, "c14", $scope0_id),
|
|
18866
17400
|
onSelectWorkspace: _resume(function(id) {
|
|
18867
17401
|
openWorkspace(id);
|
|
18868
|
-
}, "
|
|
17402
|
+
}, "c15", $scope0_id),
|
|
18869
17403
|
onNewSession: _resume(function(wsId, agent) {
|
|
18870
17404
|
navState?.newSession(wsId, agent);
|
|
18871
|
-
}, "
|
|
17405
|
+
}, "c16", $scope0_id),
|
|
18872
17406
|
onCloseSession: _resume(function(id) {
|
|
18873
17407
|
navState?.closeSession(id);
|
|
18874
|
-
}, "
|
|
17408
|
+
}, "c17", $scope0_id),
|
|
18875
17409
|
onRenameSession: _resume(function(s, title) {
|
|
18876
17410
|
navState?.renameSession(s.id, title);
|
|
18877
|
-
}, "
|
|
17411
|
+
}, "c18", $scope0_id),
|
|
18878
17412
|
onReviewOpened: _resume(function(pr) {
|
|
18879
17413
|
if (navWs) go({
|
|
18880
17414
|
workspaceId: navWs.id,
|
|
18881
17415
|
view: "diff",
|
|
18882
17416
|
pr: pr ?? null
|
|
18883
17417
|
});
|
|
18884
|
-
}, "
|
|
17418
|
+
}, "c19", $scope0_id),
|
|
18885
17419
|
onReviewOther: _resume(function(wsId) {
|
|
18886
17420
|
go({
|
|
18887
17421
|
workspaceId: wsId,
|
|
18888
17422
|
view: "diff"
|
|
18889
17423
|
});
|
|
18890
|
-
}, "
|
|
17424
|
+
}, "c20", $scope0_id)
|
|
18891
17425
|
});
|
|
18892
17426
|
_html(`<div${_attr_class("_h")}>`);
|
|
18893
17427
|
_for_of(selectedId ? openIds : [null], (id) => {
|
|
@@ -18909,7 +17443,7 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18909
17443
|
navState,
|
|
18910
17444
|
navStateChange: _resume((_new_navState) => {
|
|
18911
17445
|
navState = _new_navState;
|
|
18912
|
-
}, "
|
|
17446
|
+
}, "c21", $scope2_id),
|
|
18913
17447
|
preferred: settings ? settings.preferredAgent : "shell",
|
|
18914
17448
|
agents: settings ? settings.agents : [],
|
|
18915
17449
|
instance: settings ? settings.instance : NO_INSTANCE,
|
|
@@ -18919,11 +17453,11 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18919
17453
|
...settings,
|
|
18920
17454
|
instance
|
|
18921
17455
|
};
|
|
18922
|
-
}, "
|
|
17456
|
+
}, "c22", $scope2_id),
|
|
18923
17457
|
setup,
|
|
18924
17458
|
onSetupChange: _resume(function(s) {
|
|
18925
17459
|
setup = s;
|
|
18926
|
-
}, "
|
|
17460
|
+
}, "c23", $scope2_id),
|
|
18927
17461
|
initialView: ws?.id === initial.workspaceId || !initial.workspaceId ? initial.view : void 0,
|
|
18928
17462
|
initialTab: ws?.id === initial.workspaceId ? initial.sessionId ?? null : null,
|
|
18929
17463
|
initialPr: ws?.id === initial.workspaceId ? initial.pr ?? null : null,
|
|
@@ -18939,43 +17473,43 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18939
17473
|
scope: r.scope,
|
|
18940
17474
|
file: r.file
|
|
18941
17475
|
};
|
|
18942
|
-
}, "
|
|
17476
|
+
}, "c24", $scope2_id),
|
|
18943
17477
|
onPreferredChange: _resume(function(agent) {
|
|
18944
17478
|
if (!settings) return;
|
|
18945
17479
|
settings = {
|
|
18946
17480
|
...settings,
|
|
18947
17481
|
preferredAgent: agent
|
|
18948
17482
|
};
|
|
18949
|
-
}, "
|
|
17483
|
+
}, "c25", $scope2_id),
|
|
18950
17484
|
onAgentsChange: _resume(function(agents) {
|
|
18951
17485
|
if (!settings) return;
|
|
18952
17486
|
settings = {
|
|
18953
17487
|
...settings,
|
|
18954
17488
|
agents
|
|
18955
17489
|
};
|
|
18956
|
-
}, "
|
|
17490
|
+
}, "c26", $scope2_id),
|
|
18957
17491
|
nav: current ? nav : null,
|
|
18958
17492
|
navNonce,
|
|
18959
17493
|
onSelectWorkspace: _resume(function(wsId) {
|
|
18960
17494
|
openWorkspace(wsId);
|
|
18961
|
-
}, "
|
|
17495
|
+
}, "c27", $scope2_id),
|
|
18962
17496
|
onWorkspaceChange: _resume(function(next) {
|
|
18963
17497
|
applyWorkspaces(workspaces.map((w) => w.id === next.id ? next : w));
|
|
18964
|
-
}, "
|
|
17498
|
+
}, "c28", $scope2_id),
|
|
18965
17499
|
onWorkspaceDeleted: _resume(function(id) {
|
|
18966
17500
|
applyWorkspaces(workspaces.filter((w) => w.id !== id));
|
|
18967
|
-
}, "
|
|
17501
|
+
}, "c29", $scope2_id),
|
|
18968
17502
|
onNew: _resume(function() {
|
|
18969
17503
|
creating = true;
|
|
18970
|
-
}, "
|
|
17504
|
+
}, "c30", $scope2_id),
|
|
18971
17505
|
onExitCreate: _resume(function() {
|
|
18972
17506
|
creating = false;
|
|
18973
|
-
}, "
|
|
17507
|
+
}, "c31", $scope2_id),
|
|
18974
17508
|
onCreated: _resume(function(ws) {
|
|
18975
17509
|
if (!workspaces.some((w) => w.id === ws.id)) workspaces = [ws, ...workspaces];
|
|
18976
17510
|
creating = false;
|
|
18977
17511
|
openWorkspace(ws.id);
|
|
18978
|
-
}, "
|
|
17512
|
+
}, "c32", $scope2_id)
|
|
18979
17513
|
});
|
|
18980
17514
|
_html(`</div>${_el_resume($scope2_id, "a")}`);
|
|
18981
17515
|
_subscribe($openWorkspace2__closures, _subscribe($applyWorkspaces2__closures, _subscribe($navState__closures, _subscribe($setup2__closures, _subscribe($navNonce__closures, _subscribe($nav__closures, _subscribe($creating__closures, _subscribe($settings__closures, _subscribe($status__closures, _subscribe($workspaces__closures, _subscribe($si__input_initial && $initial_file__closures, _subscribe($si__input_initial && $initial_scope__closures, _subscribe($si__input_initial && $initial_pr__closures, _subscribe($si__input_initial && $initial_sessionId__closures, _subscribe($si__input_initial && $initial_view__closures, _subscribe($si__input_initial && $initial_workspaceId__closures, writeScope($scope2_id, { b: _existing_scope($childScope3) })))))))))))))))));
|
|
@@ -18998,36 +17532,35 @@ var app_shell_default = _template("c", (input) => {
|
|
|
18998
17532
|
workspaceName: navWs?.name,
|
|
18999
17533
|
onOpenNav: _resume(function() {
|
|
19000
17534
|
navState?.toggleNav();
|
|
19001
|
-
}, "
|
|
17535
|
+
}, "c33", $scope0_id),
|
|
19002
17536
|
sessions: navSessions,
|
|
19003
17537
|
sessionId: navTab,
|
|
19004
17538
|
agents: settings ? settings.agents : [],
|
|
19005
17539
|
onNewSession: _resume(function(agent) {
|
|
19006
17540
|
if (navWs) navState?.newSession(navWs.id, agent);
|
|
19007
|
-
}, "
|
|
17541
|
+
}, "c34", $scope0_id),
|
|
19008
17542
|
onOpenTab: _resume(function(id) {
|
|
19009
17543
|
if (navWs) go({
|
|
19010
17544
|
workspaceId: navWs.id,
|
|
19011
17545
|
view: "term",
|
|
19012
17546
|
sessionId: id
|
|
19013
17547
|
});
|
|
19014
|
-
}, "
|
|
17548
|
+
}, "c35", $scope0_id),
|
|
19015
17549
|
onCloseSession: _resume(function(id) {
|
|
19016
17550
|
navState?.closeSession(id);
|
|
19017
|
-
}, "
|
|
17551
|
+
}, "c36", $scope0_id),
|
|
19018
17552
|
onRenameSession: _resume(function(id, title) {
|
|
19019
17553
|
navState?.renameSession(id, title);
|
|
19020
|
-
}, "
|
|
17554
|
+
}, "c37", $scope0_id),
|
|
19021
17555
|
keys: navState?.keys ?? null,
|
|
19022
17556
|
reviewFindOpen: !!navState?.reviewFindOpen,
|
|
19023
17557
|
onToggleReviewFind: _resume(function() {
|
|
19024
17558
|
navState?.toggleReviewFind();
|
|
19025
|
-
}, "
|
|
17559
|
+
}, "c38", $scope0_id)
|
|
19026
17560
|
});
|
|
19027
|
-
_html(
|
|
17561
|
+
_html("</div>");
|
|
17562
|
+
_script($scope0_id, "c41");
|
|
19028
17563
|
_script($scope0_id, "c42");
|
|
19029
|
-
_script($scope0_id, "c43");
|
|
19030
|
-
_script($scope0_id, "c44");
|
|
19031
17564
|
writeScope($scope0_id, {
|
|
19032
17565
|
r: boot?.prefs,
|
|
19033
17566
|
x: initial.workspaceId,
|
|
@@ -19040,55 +17573,54 @@ var app_shell_default = _template("c", (input) => {
|
|
|
19040
17573
|
a4: status,
|
|
19041
17574
|
a5: settings,
|
|
19042
17575
|
a6: $si__input_initial && last,
|
|
19043
|
-
a7:
|
|
19044
|
-
a9: $si__input_initial && bootActive,
|
|
19045
|
-
ab:
|
|
19046
|
-
ad:
|
|
19047
|
-
|
|
19048
|
-
|
|
19049
|
-
|
|
19050
|
-
|
|
19051
|
-
|
|
19052
|
-
|
|
19053
|
-
|
|
19054
|
-
|
|
19055
|
-
|
|
19056
|
-
|
|
19057
|
-
|
|
19058
|
-
|
|
19059
|
-
|
|
19060
|
-
|
|
19061
|
-
az:
|
|
19062
|
-
|
|
19063
|
-
|
|
19064
|
-
|
|
19065
|
-
|
|
19066
|
-
|
|
19067
|
-
|
|
19068
|
-
|
|
19069
|
-
|
|
19070
|
-
|
|
19071
|
-
|
|
19072
|
-
bo:
|
|
19073
|
-
|
|
19074
|
-
c6: $error__closures,
|
|
17576
|
+
a7: $si__input_initial && bootActive,
|
|
17577
|
+
a9: $si__input_initial && bootActive?.length,
|
|
17578
|
+
ab: selectedId,
|
|
17579
|
+
ad: openIds,
|
|
17580
|
+
ag: creating,
|
|
17581
|
+
ah: route,
|
|
17582
|
+
ai: route?.view,
|
|
17583
|
+
aj: route?.sessionId,
|
|
17584
|
+
ak: nav,
|
|
17585
|
+
al: navNonce,
|
|
17586
|
+
an: lastUrl.route,
|
|
17587
|
+
ap: setup,
|
|
17588
|
+
aq: wantSetup,
|
|
17589
|
+
ar: showSetup,
|
|
17590
|
+
at: error,
|
|
17591
|
+
au: navState,
|
|
17592
|
+
av: navState?.view,
|
|
17593
|
+
aw: navState?.sessions,
|
|
17594
|
+
az: applyWorkspaces,
|
|
17595
|
+
b0: load,
|
|
17596
|
+
b1: patchStatusSessions,
|
|
17597
|
+
b3: statusMem.fresh,
|
|
17598
|
+
b4: statusMem.run,
|
|
17599
|
+
b6: loadStatus,
|
|
17600
|
+
b7: openWorkspace,
|
|
17601
|
+
b9: go,
|
|
17602
|
+
bb: navWs,
|
|
17603
|
+
bh: navView,
|
|
17604
|
+
bl: navSessions?.[0]?.id,
|
|
17605
|
+
bo: goHome,
|
|
17606
|
+
c3: $error__closures,
|
|
19075
17607
|
f: _existing_scope($childScope2),
|
|
19076
|
-
|
|
19077
|
-
|
|
19078
|
-
|
|
19079
|
-
|
|
19080
|
-
|
|
19081
|
-
|
|
19082
|
-
|
|
19083
|
-
|
|
19084
|
-
|
|
19085
|
-
|
|
19086
|
-
|
|
19087
|
-
|
|
19088
|
-
|
|
19089
|
-
|
|
19090
|
-
|
|
19091
|
-
|
|
17608
|
+
bp: $si__input_initial && $initial_workspaceId__closures,
|
|
17609
|
+
bq: $si__input_initial && $initial_view__closures,
|
|
17610
|
+
br: $si__input_initial && $initial_sessionId__closures,
|
|
17611
|
+
bs: $si__input_initial && $initial_pr__closures,
|
|
17612
|
+
bt: $si__input_initial && $initial_scope__closures,
|
|
17613
|
+
bu: $si__input_initial && $initial_file__closures,
|
|
17614
|
+
bv: $workspaces__closures,
|
|
17615
|
+
bw: $status__closures,
|
|
17616
|
+
bx: $settings__closures,
|
|
17617
|
+
bz: $creating__closures,
|
|
17618
|
+
c0: $nav__closures,
|
|
17619
|
+
c1: $navNonce__closures,
|
|
17620
|
+
c2: $setup2__closures,
|
|
17621
|
+
c4: $navState__closures,
|
|
17622
|
+
c5: $applyWorkspaces2__closures,
|
|
17623
|
+
c6: $openWorkspace2__closures,
|
|
19092
17624
|
h: _existing_scope($childScope4)
|
|
19093
17625
|
});
|
|
19094
17626
|
_resume_branch($scope0_id);
|
|
@@ -27370,4 +25902,4 @@ server.listen(port, () => {
|
|
|
27370
25902
|
//#endregion
|
|
27371
25903
|
export {};
|
|
27372
25904
|
|
|
27373
|
-
;var __MARKO_MANIFEST__={"
|
|
25905
|
+
;var __MARKO_MANIFEST__={"T$MNY0k":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/w._-CjRAL7y8.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-CjRAL7y8.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"LH2lXAg":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/w-CjRAL7y8.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w-CjRAL7y8.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"ibphXY4":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/w._-DvPeuuNc.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-DvPeuuNc.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"ZLT8joi":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/new-CjRAL7y8.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/new-CjRAL7y8.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"AA0T2xt":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/settings-CjRAL7y8.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/settings-CjRAL7y8.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"_m":{"block":[2,"stylesheet#/assets/diff-view-D_kTcxOl.css",6,"<link",0," rel=\"stylesheet\" href=\"",1,"assets/diff-view-D_kTcxOl.css\"",">",2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">"],"defer":[2,"/assets/diff-view-B7Akkn43.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/diff-view-B7Akkn43.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">"]}};
|