@openclaw/diffs 2026.10.2 → 2026.10.5-beta.2
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/.setup/{browser.runtime-B8JeyUXz.mjs → browser.runtime-BfvyJ76b.mjs} +7 -11
- package/dist/assets/viewer-runtime.js +97 -1316
- package/dist/index.js +19 -42
- package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts +2 -4
- package/node_modules/@pierre/diffs/dist/components/CodeView.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/CodeView.js +23 -12
- package/node_modules/@pierre/diffs/dist/components/CodeView.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/File.d.ts +2 -0
- package/node_modules/@pierre/diffs/dist/components/File.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/File.js +6 -0
- package/node_modules/@pierre/diffs/dist/components/File.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts +18 -1
- package/node_modules/@pierre/diffs/dist/components/FileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/FileDiff.js +47 -15
- package/node_modules/@pierre/diffs/dist/components/FileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js +11 -11
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFile.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js +18 -17
- package/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/constants.d.ts +1 -3
- package/node_modules/@pierre/diffs/dist/constants.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/constants.js +1 -3
- package/node_modules/@pierre/diffs/dist/constants.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/editor.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/editor.js +16 -3
- package/node_modules/@pierre/diffs/dist/editor/editor.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/editor/editor2.js +1 -1
- package/node_modules/@pierre/diffs/dist/index.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/index.js +2 -2
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js +47 -11
- package/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +20 -13
- package/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +30 -11
- package/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/sprite.d.ts +2 -2
- package/node_modules/@pierre/diffs/dist/sprite.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/sprite.js +57 -0
- package/node_modules/@pierre/diffs/dist/sprite.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/style.js +1 -1
- package/node_modules/@pierre/diffs/dist/types.d.ts +1 -1
- package/node_modules/@pierre/diffs/dist/types.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts +5 -4
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js +32 -9
- package/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +21 -13
- package/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/parseQuotedDiffFileName.d.ts +8 -0
- package/node_modules/@pierre/diffs/dist/utils/parseQuotedDiffFileName.d.ts.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/parseQuotedDiffFileName.js +54 -0
- package/node_modules/@pierre/diffs/dist/utils/parseQuotedDiffFileName.js.map +1 -0
- package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts +13 -10
- package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.d.ts.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js +23 -19
- package/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +39 -0
- package/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/worker-portable.js +39 -0
- package/node_modules/@pierre/diffs/dist/worker/worker-portable.js.map +1 -1
- package/node_modules/@pierre/diffs/dist/worker/worker.js +39 -0
- package/node_modules/@pierre/diffs/dist/worker/worker.js.map +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/core/dist/index.d.mts +28 -28
- package/node_modules/@pierre/diffs/node_modules/@shikijs/core/dist/index.mjs +15 -12
- package/node_modules/@pierre/diffs/node_modules/@shikijs/core/package.json +4 -4
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/{engine-compile-Bdn9ihA2.d.mts → engine-compile-CtqiSkRk.d.mts} +5 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-compile.d.mts +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-compile.mjs +2 -4
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-raw.d.mts +2 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/engine-raw.mjs +2 -4
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/index.d.mts +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/index.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/string-TLTPtCPs.mjs +115 -0
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-oniguruma/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/dist/index.d.mts +31 -32
- package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/dist/index.mjs +2 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/primitive/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/monokai.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/one-dark-pro.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/red.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/solarized-dark.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/dist/solarized-light.mjs +1 -1
- package/node_modules/@pierre/diffs/node_modules/@shikijs/themes/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/dist/index.d.mts +58 -35
- package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/dist/index.mjs +35 -4
- package/node_modules/@pierre/diffs/node_modules/@shikijs/transformers/package.json +3 -3
- package/node_modules/@pierre/diffs/node_modules/@shikijs/types/dist/index.d.mts +76 -76
- package/node_modules/@pierre/diffs/node_modules/@shikijs/types/package.json +1 -1
- package/node_modules/@pierre/diffs/node_modules/micromark-util-types/index.d.ts +6 -3
- package/node_modules/@pierre/diffs/node_modules/micromark-util-types/package.json +2 -36
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-full.d.mts +4 -4
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/bundle-web.d.mts +9 -9
- package/node_modules/@pierre/diffs/node_modules/shiki/dist/types.d.mts +3 -3
- package/node_modules/@pierre/diffs/node_modules/shiki/package.json +10 -10
- package/node_modules/@pierre/diffs/package.json +1 -1
- package/node_modules/@shikijs/langs/dist/ada.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/ahk.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/beancount.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/coq.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/csharp.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/css.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/dart.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/dotenv.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/emacs-lisp.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/gn.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/handlebars.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/julia.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/latex.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/luau.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/marko.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/moonbit.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/nextflow-groovy.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/nextflow.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/nushell.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/php.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/powershell.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/ruby.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/rust.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/sql.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/svelte.mjs +1 -1
- package/node_modules/@shikijs/langs/dist/twig.mjs +3 -3
- package/node_modules/@shikijs/langs/dist/typespec.mjs +1 -1
- package/node_modules/@shikijs/langs/node_modules/@shikijs/types/dist/index.d.mts +76 -76
- package/node_modules/@shikijs/langs/node_modules/@shikijs/types/package.json +1 -1
- package/node_modules/@shikijs/langs/package.json +3 -3
- package/package.json +6 -6
- package/node_modules/@pierre/diffs/node_modules/@shikijs/engine-javascript/dist/scanner-DX8LRFGE.mjs +0 -77
package/dist/index.js
CHANGED
|
@@ -124,22 +124,15 @@ function normalizePathSeparators(pathname) {
|
|
|
124
124
|
if (collapsed.length <= 1) return collapsed;
|
|
125
125
|
return collapsed.replace(/\/+$/, "");
|
|
126
126
|
}
|
|
127
|
-
function resolveDotSegments(pathname) {
|
|
128
|
-
try {
|
|
129
|
-
return new URL(pathname, "http://localhost").pathname;
|
|
130
|
-
} catch {
|
|
131
|
-
return pathname;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
127
|
function normalizePathForSecurity(pathname) {
|
|
135
|
-
return normalizePathSeparators(normalizeLowercaseStringOrEmpty$1(
|
|
128
|
+
return normalizePathSeparators(normalizeLowercaseStringOrEmpty$1(URL.parse(pathname, "http://localhost")?.pathname ?? pathname)) || "/";
|
|
136
129
|
}
|
|
137
|
-
function buildCanonicalPathCandidates(pathname
|
|
130
|
+
function buildCanonicalPathCandidates(pathname) {
|
|
138
131
|
const candidates = /* @__PURE__ */ new Set([normalizePathForSecurity(pathname)]);
|
|
139
132
|
let decoded = pathname;
|
|
140
133
|
let malformedEncoding = false;
|
|
141
134
|
let decodePasses = 0;
|
|
142
|
-
for (let pass = 0; pass <
|
|
135
|
+
for (let pass = 0; pass < MAX_PATH_DECODE_PASSES; pass++) {
|
|
143
136
|
let nextDecoded;
|
|
144
137
|
try {
|
|
145
138
|
nextDecoded = decodeURIComponent(decoded);
|
|
@@ -458,11 +451,7 @@ function createDiffsHttpHandler(params) {
|
|
|
458
451
|
if (!parsed) return false;
|
|
459
452
|
if (parsed.pathname.startsWith("/plugins/diffs/assets/")) return await serveAsset(req, res, parsed.pathname, params.logger);
|
|
460
453
|
if (!parsed.pathname.startsWith(VIEW_PREFIX)) return false;
|
|
461
|
-
const accessConfig = params.resolveAccessConfig
|
|
462
|
-
allowRemoteViewer: params.allowRemoteViewer,
|
|
463
|
-
trustedProxies: params.trustedProxies,
|
|
464
|
-
allowRealIpFallback: params.allowRealIpFallback
|
|
465
|
-
};
|
|
454
|
+
const accessConfig = params.resolveAccessConfig();
|
|
466
455
|
const access = resolveViewerAccess(req, {
|
|
467
456
|
trustedProxies: accessConfig.trustedProxies,
|
|
468
457
|
allowRealIpFallback: accessConfig.allowRealIpFallback
|
|
@@ -588,7 +577,7 @@ const DIFFS_AGENT_GUIDANCE = [
|
|
|
588
577
|
const DEFAULT_TTL_MS = 18e5;
|
|
589
578
|
const MAX_TTL_MS = 216e5;
|
|
590
579
|
const SWEEP_FALLBACK_AGE_MS = 864e5;
|
|
591
|
-
const
|
|
580
|
+
const CLEANUP_INTERVAL_MS = 3e5;
|
|
592
581
|
const CLEANUP_CONCURRENCY = 4;
|
|
593
582
|
const MAX_DECODED_HTML_BYTES = 67108864;
|
|
594
583
|
const ARTIFACT_ID_ATTEMPTS = 8;
|
|
@@ -608,7 +597,6 @@ var DiffArtifactStore = class {
|
|
|
608
597
|
this.rootDir = path.resolve(params.rootDir);
|
|
609
598
|
this.blobStore = params.blobStore;
|
|
610
599
|
this.logger = params.logger;
|
|
611
|
-
this.cleanupIntervalMs = params.cleanupIntervalMs === void 0 ? DEFAULT_CLEANUP_INTERVAL_MS : Math.max(0, Math.floor(params.cleanupIntervalMs));
|
|
612
600
|
}
|
|
613
601
|
async createArtifact(params) {
|
|
614
602
|
const html = Buffer.from(params.html, "utf8");
|
|
@@ -777,7 +765,7 @@ var DiffArtifactStore = class {
|
|
|
777
765
|
scheduleCleanup() {
|
|
778
766
|
const now = Date.now();
|
|
779
767
|
if (this.cleanupStopped || this.cleanupInFlight || now < this.nextCleanupAt) return;
|
|
780
|
-
this.nextCleanupAt = now +
|
|
768
|
+
this.nextCleanupAt = now + CLEANUP_INTERVAL_MS;
|
|
781
769
|
this.cleanupExpired().catch((error) => {
|
|
782
770
|
this.nextCleanupAt = 0;
|
|
783
771
|
this.logger?.warn(`Failed to clean expired diff artifacts: ${String(error)}`);
|
|
@@ -1588,25 +1576,18 @@ async function renderDiffDocument(input, options, target = "both") {
|
|
|
1588
1576
|
const imageBodyHtml = imageSections.length ? [...lead, ...imageSections].join("\n") : void 0;
|
|
1589
1577
|
const viewerRuntime = sections.some((section) => section.usesLanguagePack) ? "language-pack" : "base";
|
|
1590
1578
|
const imageTypography = resolveDiffTypography(buildImageRenderOptions(options).presentation);
|
|
1579
|
+
const document = (bodyHtml, runtimeMode) => buildHtmlDocument({
|
|
1580
|
+
title,
|
|
1581
|
+
bodyHtml,
|
|
1582
|
+
theme: options.presentation.theme,
|
|
1583
|
+
imageMaxWidth: options.image.maxWidth,
|
|
1584
|
+
imageTypography,
|
|
1585
|
+
runtimeMode,
|
|
1586
|
+
viewerRuntime
|
|
1587
|
+
});
|
|
1591
1588
|
return {
|
|
1592
|
-
...viewerBodyHtml ? { html:
|
|
1593
|
-
|
|
1594
|
-
bodyHtml: viewerBodyHtml,
|
|
1595
|
-
theme: options.presentation.theme,
|
|
1596
|
-
imageMaxWidth: options.image.maxWidth,
|
|
1597
|
-
imageTypography,
|
|
1598
|
-
runtimeMode: "viewer",
|
|
1599
|
-
viewerRuntime
|
|
1600
|
-
}) } : {},
|
|
1601
|
-
...imageBodyHtml ? { imageHtml: buildHtmlDocument({
|
|
1602
|
-
title,
|
|
1603
|
-
bodyHtml: imageBodyHtml,
|
|
1604
|
-
theme: options.presentation.theme,
|
|
1605
|
-
imageMaxWidth: options.image.maxWidth,
|
|
1606
|
-
imageTypography,
|
|
1607
|
-
runtimeMode: "image",
|
|
1608
|
-
viewerRuntime
|
|
1609
|
-
}) } : {},
|
|
1589
|
+
...viewerBodyHtml ? { html: document(viewerBodyHtml, "viewer") } : {},
|
|
1590
|
+
...imageBodyHtml ? { imageHtml: document(imageBodyHtml, "image") } : {},
|
|
1610
1591
|
title,
|
|
1611
1592
|
fileCount: sections.length,
|
|
1612
1593
|
inputKind: input.kind,
|
|
@@ -1629,7 +1610,7 @@ const MAX_TITLE_BYTES = 1024;
|
|
|
1629
1610
|
const MAX_PATH_BYTES = 2048;
|
|
1630
1611
|
const MAX_LANG_BYTES = 128;
|
|
1631
1612
|
const MAX_DIFF_ARTIFACT_TTL_SECONDS = 21600;
|
|
1632
|
-
const loadDiffsBrowserRuntime = createLazyRuntimeModule(() => import("./.setup/browser.runtime-
|
|
1613
|
+
const loadDiffsBrowserRuntime = createLazyRuntimeModule(() => import("./.setup/browser.runtime-BfvyJ76b.mjs"));
|
|
1633
1614
|
const DiffsToolSchema = Type.Object({
|
|
1634
1615
|
before: Type.Optional(Type.String({ description: "Original text content." })),
|
|
1635
1616
|
after: Type.Optional(Type.String({ description: "Updated text content." })),
|
|
@@ -1745,7 +1726,7 @@ function createDiffsTool(params) {
|
|
|
1745
1726
|
} : void 0;
|
|
1746
1727
|
if (mode === "view") return textResult(`Diff viewer ready.\n${viewerUrl}`, viewerDetails);
|
|
1747
1728
|
try {
|
|
1748
|
-
const screenshotter =
|
|
1729
|
+
const screenshotter = new (await (loadDiffsBrowserRuntime())).PlaywrightDiffScreenshotter({ config });
|
|
1749
1730
|
const html = requireRenderedHtml(rendered.imageHtml, "image");
|
|
1750
1731
|
const artifactFile = await params.store.createStandaloneFileArtifact({
|
|
1751
1732
|
format: image.format,
|
|
@@ -1918,7 +1899,6 @@ function registerDiffsPlugin(api) {
|
|
|
1918
1899
|
allowRealIpFallback: currentConfig.gateway?.allowRealIpFallback === true
|
|
1919
1900
|
};
|
|
1920
1901
|
};
|
|
1921
|
-
const initialAccessConfig = resolveCurrentAccessConfig();
|
|
1922
1902
|
api.registerTool((ctx) => {
|
|
1923
1903
|
const pluginConfig = resolveCurrentPluginConfig();
|
|
1924
1904
|
return createDiffsTool({
|
|
@@ -1937,9 +1917,6 @@ function registerDiffsPlugin(api) {
|
|
|
1937
1917
|
handler: createDiffsHttpHandler({
|
|
1938
1918
|
store,
|
|
1939
1919
|
logger: api.logger,
|
|
1940
|
-
allowRemoteViewer: initialAccessConfig.allowRemoteViewer,
|
|
1941
|
-
trustedProxies: initialAccessConfig.trustedProxies,
|
|
1942
|
-
allowRealIpFallback: initialAccessConfig.allowRealIpFallback,
|
|
1943
1920
|
resolveAccessConfig: resolveCurrentAccessConfig
|
|
1944
1921
|
})
|
|
1945
1922
|
});
|
|
@@ -268,10 +268,8 @@ declare class CodeView<LAnnotation = undefined, Caret = undefined> {
|
|
|
268
268
|
clearSelectedLines(options?: SelectionWriteOptions): void;
|
|
269
269
|
getItem(itemId: string): CodeViewItem<LAnnotation> | undefined;
|
|
270
270
|
/**
|
|
271
|
-
*
|
|
272
|
-
* editor
|
|
273
|
-
* Returns undefined once the item's session ends (edit off or removal); a
|
|
274
|
-
* collapsed item keeps its suspended editor.
|
|
271
|
+
* Returns the editor while this item is being edited. Partial diffs get an
|
|
272
|
+
* editor after their files load; scrolling away or collapsing keeps it.
|
|
275
273
|
*/
|
|
276
274
|
getEditor(itemId: string): CodeViewEditor<LAnnotation, Caret> | undefined;
|
|
277
275
|
updateItem(input: CodeViewItem<LAnnotation>): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeView.d.ts","names":[],"sources":["../../src/components/CodeView.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CodeView.d.ts","names":[],"sources":["../../src/components/CodeView.ts"],"mappings":"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"}
|
|
@@ -405,25 +405,30 @@ var CodeView = class CodeView {
|
|
|
405
405
|
this.clearReadySubscription();
|
|
406
406
|
this.restoreScrollInteractions();
|
|
407
407
|
this.cleanAllRenderedItems();
|
|
408
|
+
const { items: discardedItems } = this;
|
|
408
409
|
const teardownSessions = [...this.itemEditors.values()].map((record) => {
|
|
409
410
|
const item = this.idToItem.get(record.state.id);
|
|
410
411
|
if (item != null) record.state.removedItem = item.item;
|
|
411
|
-
return
|
|
412
|
-
record,
|
|
413
|
-
instance: item?.instance
|
|
414
|
-
};
|
|
412
|
+
return record;
|
|
415
413
|
});
|
|
416
414
|
this.itemEditors.clear();
|
|
417
415
|
this.attachedEditors.clear();
|
|
418
416
|
this.selectedLines = null;
|
|
419
|
-
this.items
|
|
417
|
+
this.items = [];
|
|
420
418
|
this.idToItem.clear();
|
|
421
419
|
this.instanceToItem.clear();
|
|
422
420
|
let failed = false;
|
|
423
421
|
let failure;
|
|
424
|
-
for (const
|
|
422
|
+
for (const record of teardownSessions) try {
|
|
425
423
|
record.editor.cleanUp("discard");
|
|
426
|
-
|
|
424
|
+
} catch (error) {
|
|
425
|
+
if (!failed) {
|
|
426
|
+
failed = true;
|
|
427
|
+
failure = error;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
for (const item of discardedItems) try {
|
|
431
|
+
item.instance.cleanUp();
|
|
427
432
|
} catch (error) {
|
|
428
433
|
if (!failed) {
|
|
429
434
|
failed = true;
|
|
@@ -613,10 +618,8 @@ var CodeView = class CodeView {
|
|
|
613
618
|
return this.idToItem.get(itemId)?.item;
|
|
614
619
|
}
|
|
615
620
|
/**
|
|
616
|
-
*
|
|
617
|
-
* editor
|
|
618
|
-
* Returns undefined once the item's session ends (edit off or removal); a
|
|
619
|
-
* collapsed item keeps its suspended editor.
|
|
621
|
+
* Returns the editor while this item is being edited. Partial diffs get an
|
|
622
|
+
* editor after their files load; scrolling away or collapsing keeps it.
|
|
620
623
|
*/
|
|
621
624
|
getEditor(itemId) {
|
|
622
625
|
return this.itemEditors.get(itemId)?.editor;
|
|
@@ -691,7 +694,11 @@ var CodeView = class CodeView {
|
|
|
691
694
|
let removedItemsById;
|
|
692
695
|
if (this.items.length === 0) this.appendItemsInternal(items);
|
|
693
696
|
else if (!this.tryAppendItems(items)) removedItemsById = this.reconcileItems(items);
|
|
694
|
-
|
|
697
|
+
try {
|
|
698
|
+
this.syncItemEditors(removedItemsById);
|
|
699
|
+
} finally {
|
|
700
|
+
for (const removedItem of removedItemsById?.values() ?? []) removedItem.instance.cleanUp();
|
|
701
|
+
}
|
|
695
702
|
this.syncSelection();
|
|
696
703
|
}
|
|
697
704
|
/**
|
|
@@ -966,6 +973,10 @@ var CodeView = class CodeView {
|
|
|
966
973
|
const record = this.itemEditors.get(id);
|
|
967
974
|
let createdEditor;
|
|
968
975
|
try {
|
|
976
|
+
if (record == null && item.type === "diff" && !item.instance.__canAttachEditor()) {
|
|
977
|
+
item.instance.__prepareForEditing();
|
|
978
|
+
return;
|
|
979
|
+
}
|
|
969
980
|
if (record == null) {
|
|
970
981
|
assertEditorFactory(createEditor);
|
|
971
982
|
const state = getItemOptionsState(item.instance.options);
|