@thxgg/steward 0.1.24 → 0.1.26
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{Bc2V3wPK.js → B2ow85x_.js} +2 -2
- package/.output/public/_nuxt/{U78rMDmo.js → B6CbIr08.js} +1 -1
- package/.output/public/_nuxt/{BknRrWsw.js → BLQAF8wp.js} +1 -1
- package/.output/public/_nuxt/BXuwtOqb.js +1 -0
- package/.output/public/_nuxt/CAMiEhze.js +1 -0
- package/.output/public/_nuxt/{BRQ9Cxaw.js → CIBCqZF5.js} +1 -1
- package/.output/public/_nuxt/Ce0-nlm9.js +1 -0
- package/.output/public/_nuxt/{T11EuTtn.js → ConzneVY.js} +1 -1
- package/.output/public/_nuxt/D0qxz_Pn.js +1310 -0
- package/.output/public/_nuxt/D3PDtLSF.js +3 -0
- package/.output/public/_nuxt/{C73kduX-.js → DdKC0UAK.js} +1 -1
- package/.output/public/_nuxt/Detail.BGdvrJGh.css +1 -0
- package/.output/public/_nuxt/{C53_p0K1.js → Dkh9ic1y.js} +1 -1
- package/.output/public/_nuxt/LEjJTR7-.js +1 -0
- package/.output/public/_nuxt/{BTmXUZ_s.js → UqZfMfrZ.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/25438e34-19a2-421d-aede-53fd18f1ccd4.json +1 -0
- package/.output/public/_nuxt/dckrK0oj.js +1 -0
- package/.output/public/_nuxt/entry.DT4p6_uW.css +1 -0
- package/.output/public/_nuxt/pIWeVmPw.js +1 -0
- package/.output/public/_nuxt/xrHaPo1U.js +60 -0
- package/.output/server/chunks/_/prd-service.mjs.map +1 -1
- package/.output/server/chunks/build/{Detail-DMMUwTWr.mjs → Detail-rpcemNXe.mjs} +674 -481
- package/.output/server/chunks/build/Detail-rpcemNXe.mjs.map +1 -0
- package/.output/server/chunks/build/DiffViewer-styles.B1FB5NJj.mjs +8 -0
- package/.output/server/chunks/build/DiffViewer-styles.B1FB5NJj.mjs.map +1 -0
- package/.output/server/chunks/build/{_prd_-ByugK4Yi.mjs → _prd_-CeibvZOH.mjs} +67 -233
- package/.output/server/chunks/build/_prd_-CeibvZOH.mjs.map +1 -0
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/{default-BKKgG7HJ.mjs → default-iq8SaDDN.mjs} +3 -3
- package/.output/server/chunks/build/default-iq8SaDDN.mjs.map +1 -0
- package/.output/server/chunks/build/{error-404-Bf6kdO80.mjs → error-404-DFale9A5.mjs} +2 -2
- package/.output/server/chunks/build/error-404-DFale9A5.mjs.map +1 -0
- package/.output/server/chunks/build/{index-DE1tjHAd.mjs → index-Po00RvHm.mjs} +2 -2
- package/.output/server/chunks/build/index-Po00RvHm.mjs.map +1 -0
- package/.output/server/chunks/build/{nuxt-link-SvT1nf8Z.mjs → nuxt-link-B4oWFn7n.mjs} +2 -2
- package/.output/server/chunks/build/nuxt-link-B4oWFn7n.mjs.map +1 -0
- package/.output/server/chunks/build/{repo-graph-DzT45gSB.mjs → repo-graph-BQVFpA-w.mjs} +5 -4
- package/.output/server/chunks/build/repo-graph-BQVFpA-w.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +7 -7
- package/.output/server/chunks/build/styles.mjs +4 -5
- package/.output/server/chunks/build/{usePrd-hXZOmvAv.mjs → usePrd-Bb6jlnNZ.mjs} +2 -2
- package/.output/server/chunks/build/usePrd-Bb6jlnNZ.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +983 -678
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/node_modules/@pierre/diffs/dist/components/File.js +324 -0
- package/.output/server/node_modules/@pierre/diffs/dist/components/FileDiff.js +395 -0
- package/.output/server/node_modules/@pierre/diffs/dist/components/FileStream.js +161 -0
- package/.output/server/node_modules/@pierre/diffs/dist/components/web-components.js +25 -0
- package/.output/server/node_modules/@pierre/diffs/dist/constants.js +23 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/areLanguagesAttached.js +11 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/attachResolvedLanguages.js +20 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/cleanUpResolvedLanguages.js +11 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/constants.js +8 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/getResolvedLanguages.js +16 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/getResolvedOrResolveLanguage.js +11 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/hasResolvedLanguages.js +11 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/resolveLanguage.js +30 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/resolveLanguages.js +25 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.js +71 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/areThemesAttached.js +12 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/attachResolvedThemes.js +24 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/cleanUpResolvedThemes.js +11 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/constants.js +9 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/getResolvedOrResolveTheme.js +11 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/getResolvedThemes.js +16 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/hasResolvedThemes.js +11 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/registerCustomCSSVariableTheme.js +18 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/registerCustomTheme.js +14 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/resolveTheme.js +35 -0
- package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/resolveThemes.js +21 -0
- package/.output/server/node_modules/@pierre/diffs/dist/index.js +84 -0
- package/.output/server/node_modules/@pierre/diffs/dist/managers/LineSelectionManager.js +282 -0
- package/.output/server/node_modules/@pierre/diffs/dist/managers/MouseEventManager.js +244 -0
- package/.output/server/node_modules/@pierre/diffs/dist/managers/ResizeManager.js +132 -0
- package/.output/server/node_modules/@pierre/diffs/dist/managers/ScrollSyncManager.js +62 -0
- package/.output/server/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js +32 -0
- package/.output/server/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +655 -0
- package/.output/server/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +243 -0
- package/.output/server/node_modules/@pierre/diffs/dist/shiki-stream/stream.js +32 -0
- package/.output/server/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.js +71 -0
- package/.output/server/node_modules/@pierre/diffs/dist/sprite.js +55 -0
- package/.output/server/node_modules/@pierre/diffs/dist/style.js +6 -0
- package/.output/server/node_modules/@pierre/diffs/dist/themes/pierre-dark.js +1328 -0
- package/.output/server/node_modules/@pierre/diffs/dist/themes/pierre-light.js +1328 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/areFilesEqual.js +8 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/areObjectsEqual.js +18 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.js +12 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/areSelectionsEqual.js +8 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/areThemesEqual.js +9 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js +8 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createAnnotationElement.js +21 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createAnnotationWrapperNode.js +12 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createCodeNode.js +12 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createEmptyRowBuffer.js +16 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js +84 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createHoverContentNode.js +15 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createNoNewlineElement.js +24 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createPreElement.js +28 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createRowNodes.js +20 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createSeparator.js +69 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createSpanNodeFromToken.js +13 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createStyleElement.js +19 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js +56 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/createUnsafeCSSStyleNode.js +12 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/cssWrappers.js +21 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/diffAcceptRejectHunk.js +82 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/formatCSSVariablePrefix.js +8 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js +343 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/getHighlighterOptions.js +13 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/getHighlighterThemeStyles.js +40 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/getHunkSeparatorSlotName.js +8 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/getIconForType.js +15 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/getLineAnnotationName.js +8 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/getLineEndingType.js +11 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/getLineNodes.js +15 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/getSingularPatch.js +20 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/getThemes.js +16 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js +10 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/hast_utils.js +42 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/isWorkerContext.js +8 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/parseDiffDecorations.js +34 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js +23 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/parseLineType.js +17 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +211 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/prerenderHTMLIfNecessary.js +10 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/processLine.js +42 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +339 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js +52 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/setLanguageOverride.js +11 -0
- package/.output/server/node_modules/@pierre/diffs/dist/utils/setWrapperNodeProps.js +29 -0
- package/.output/server/node_modules/@pierre/diffs/package.json +89 -0
- package/.output/server/node_modules/@shikijs/transformers/dist/index.mjs +831 -0
- package/.output/server/node_modules/@shikijs/transformers/package.json +37 -0
- package/.output/server/node_modules/diff/libesm/convert/dmp.js +21 -0
- package/.output/server/node_modules/diff/libesm/convert/xml.js +31 -0
- package/.output/server/node_modules/diff/libesm/diff/array.js +16 -0
- package/.output/server/node_modules/diff/libesm/diff/base.js +253 -0
- package/.output/server/node_modules/diff/libesm/diff/character.js +7 -0
- package/.output/server/node_modules/diff/libesm/diff/css.js +10 -0
- package/.output/server/node_modules/diff/libesm/diff/json.js +78 -0
- package/.output/server/node_modules/diff/libesm/diff/line.js +65 -0
- package/.output/server/node_modules/diff/libesm/diff/sentence.js +43 -0
- package/.output/server/node_modules/diff/libesm/diff/word.js +296 -0
- package/.output/server/node_modules/diff/libesm/index.js +30 -0
- package/.output/server/node_modules/diff/libesm/package.json +1 -0
- package/.output/server/node_modules/diff/libesm/patch/apply.js +257 -0
- package/.output/server/node_modules/diff/libesm/patch/create.js +228 -0
- package/.output/server/node_modules/diff/libesm/patch/line-endings.js +44 -0
- package/.output/server/node_modules/diff/libesm/patch/parse.js +147 -0
- package/.output/server/node_modules/diff/libesm/patch/reverse.js +23 -0
- package/.output/server/node_modules/diff/libesm/util/distance-iterator.js +37 -0
- package/.output/server/node_modules/diff/libesm/util/params.js +14 -0
- package/.output/server/node_modules/diff/libesm/util/string.js +128 -0
- package/.output/server/node_modules/diff/package.json +132 -0
- package/.output/server/package.json +4 -1
- package/README.md +41 -0
- package/bin/prd +1 -1
- package/dist/host/src/index.js +10 -0
- package/dist/host/src/sync.js +201 -0
- package/dist/server/utils/db.js +64 -0
- package/dist/server/utils/git.js +8 -6
- package/dist/server/utils/prd-state.js +24 -2
- package/dist/server/utils/repos.js +12 -2
- package/dist/server/utils/state-migration.js +4 -3
- package/dist/server/utils/sync-apply.js +380 -0
- package/dist/server/utils/sync-export.js +183 -0
- package/dist/server/utils/sync-identity.js +231 -0
- package/dist/server/utils/sync-inspect.js +103 -0
- package/dist/server/utils/sync-merge.js +579 -0
- package/dist/server/utils/sync-schema.js +100 -0
- package/package.json +2 -1
- package/.output/public/_nuxt/6tINjQEd.js +0 -141
- package/.output/public/_nuxt/B2mIQf5X.js +0 -3
- package/.output/public/_nuxt/C0BBSDJ7.js +0 -1
- package/.output/public/_nuxt/CN46Bgts.js +0 -1
- package/.output/public/_nuxt/CTJgb0zb.js +0 -1
- package/.output/public/_nuxt/Cce168lk.js +0 -30
- package/.output/public/_nuxt/CyVSeLw5.js +0 -1
- package/.output/public/_nuxt/Detail.CYc96mGf.css +0 -1
- package/.output/public/_nuxt/ZNypZshD.js +0 -13
- package/.output/public/_nuxt/builds/meta/8c342d49-fe70-4f67-a987-821c16f86125.json +0 -1
- package/.output/public/_nuxt/entry.Bw0CE6Iz.css +0 -1
- package/.output/public/_nuxt/pYJYAY-W.js +0 -60
- package/.output/server/chunks/build/Detail-DMMUwTWr.mjs.map +0 -1
- package/.output/server/chunks/build/DiffViewer-styles-1.mjs-d2dQvARr.mjs +0 -4
- package/.output/server/chunks/build/DiffViewer-styles-1.mjs-d2dQvARr.mjs.map +0 -1
- package/.output/server/chunks/build/DiffViewer-styles-2.mjs-X6QKNjM0.mjs +0 -4
- package/.output/server/chunks/build/DiffViewer-styles-2.mjs-X6QKNjM0.mjs.map +0 -1
- package/.output/server/chunks/build/DiffViewer-styles.0AbHFl6N.mjs +0 -8
- package/.output/server/chunks/build/DiffViewer-styles.0AbHFl6N.mjs.map +0 -1
- package/.output/server/chunks/build/DiffViewer-styles.BDwAqkTk.mjs +0 -8
- package/.output/server/chunks/build/DiffViewer-styles.BDwAqkTk.mjs.map +0 -1
- package/.output/server/chunks/build/DiffViewer-styles.DRJh5Ui4.mjs +0 -10
- package/.output/server/chunks/build/DiffViewer-styles.DRJh5Ui4.mjs.map +0 -1
- package/.output/server/chunks/build/_prd_-ByugK4Yi.mjs.map +0 -1
- package/.output/server/chunks/build/default-BKKgG7HJ.mjs.map +0 -1
- package/.output/server/chunks/build/error-404-Bf6kdO80.mjs.map +0 -1
- package/.output/server/chunks/build/index-DE1tjHAd.mjs.map +0 -1
- package/.output/server/chunks/build/nuxt-link-SvT1nf8Z.mjs.map +0 -1
- package/.output/server/chunks/build/repo-graph-DzT45gSB.mjs.map +0 -1
- package/.output/server/chunks/build/usePrd-hXZOmvAv.mjs.map +0 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/utils/areFilesEqual.ts
|
|
2
|
+
function areFilesEqual(fileA, fileB) {
|
|
3
|
+
return fileA?.cacheKey === fileB?.cacheKey && fileA?.contents === fileB?.contents && fileA?.name === fileB?.name && fileA?.lang === fileB?.lang;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
//#endregion
|
|
7
|
+
export { areFilesEqual };
|
|
8
|
+
//# sourceMappingURL=areFilesEqual.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/utils/areObjectsEqual.ts
|
|
2
|
+
function areObjectsEqual(objA, objB, omitKeys) {
|
|
3
|
+
if (objA === objB || objA == null || objB == null) return objA === objB;
|
|
4
|
+
const omitSet = new Set(omitKeys);
|
|
5
|
+
const keysA = Object.keys(objA);
|
|
6
|
+
const keysBSet = new Set(Object.keys(objB));
|
|
7
|
+
for (const key of keysA) {
|
|
8
|
+
keysBSet.delete(key);
|
|
9
|
+
if (omitSet.has(key)) continue;
|
|
10
|
+
if (!(key in objB) || objA[key] !== objB[key]) return false;
|
|
11
|
+
}
|
|
12
|
+
for (const key of Array.from(keysBSet)) if (!omitSet.has(key)) return false;
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
export { areObjectsEqual };
|
|
18
|
+
//# sourceMappingURL=areObjectsEqual.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DEFAULT_THEMES } from "../constants.js";
|
|
2
|
+
import { areThemesEqual } from "./areThemesEqual.js";
|
|
3
|
+
import { areObjectsEqual } from "./areObjectsEqual.js";
|
|
4
|
+
|
|
5
|
+
//#region src/utils/areOptionsEqual.ts
|
|
6
|
+
function areOptionsEqual(optionsA, optionsB) {
|
|
7
|
+
return areThemesEqual(optionsA?.theme ?? DEFAULT_THEMES, optionsB?.theme ?? DEFAULT_THEMES) && areObjectsEqual(optionsA, optionsB, ["theme"]);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { areOptionsEqual };
|
|
12
|
+
//# sourceMappingURL=areOptionsEqual.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/utils/areSelectionsEqual.ts
|
|
2
|
+
function areSelectionsEqual(selectionA, selectionB) {
|
|
3
|
+
return selectionA?.start === selectionB?.start && selectionA?.end === selectionB?.end && selectionA?.side === selectionB?.side && selectionA?.endSide === selectionB?.endSide;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
//#endregion
|
|
7
|
+
export { areSelectionsEqual };
|
|
8
|
+
//# sourceMappingURL=areSelectionsEqual.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/utils/areThemesEqual.ts
|
|
2
|
+
function areThemesEqual(themeA, themeB) {
|
|
3
|
+
if (themeA == null || themeB == null || typeof themeA === "string" || typeof themeB === "string") return themeA === themeB;
|
|
4
|
+
return themeA.dark === themeB.dark && themeA.light === themeB.light;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
//#endregion
|
|
8
|
+
export { areThemesEqual };
|
|
9
|
+
//# sourceMappingURL=areThemesEqual.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createHastElement } from "./hast_utils.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/createAnnotationElement.ts
|
|
4
|
+
function createAnnotationElement(span) {
|
|
5
|
+
return createHastElement({
|
|
6
|
+
tagName: "div",
|
|
7
|
+
children: [createHastElement({
|
|
8
|
+
tagName: "div",
|
|
9
|
+
children: span.annotations?.map((slotId) => createHastElement({
|
|
10
|
+
tagName: "slot",
|
|
11
|
+
properties: { name: slotId }
|
|
12
|
+
})),
|
|
13
|
+
properties: { "data-annotation-content": "" }
|
|
14
|
+
})],
|
|
15
|
+
properties: { "data-line-annotation": `${span.hunkIndex},${span.lineIndex}` }
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { createAnnotationElement };
|
|
21
|
+
//# sourceMappingURL=createAnnotationElement.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/utils/createAnnotationWrapperNode.ts
|
|
2
|
+
function createAnnotationWrapperNode(slot) {
|
|
3
|
+
const wrapper = document.createElement("div");
|
|
4
|
+
wrapper.dataset.annotationSlot = "";
|
|
5
|
+
wrapper.slot = slot;
|
|
6
|
+
wrapper.style.whiteSpace = "normal";
|
|
7
|
+
return wrapper;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { createAnnotationWrapperNode };
|
|
12
|
+
//# sourceMappingURL=createAnnotationWrapperNode.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/utils/createCodeNode.ts
|
|
2
|
+
function createCodeNode({ pre, columnType } = {}) {
|
|
3
|
+
const code = document.createElement("code");
|
|
4
|
+
code.dataset.code = "";
|
|
5
|
+
if (columnType != null) code.dataset[columnType] = "";
|
|
6
|
+
pre?.appendChild(code);
|
|
7
|
+
return code;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { createCodeNode };
|
|
12
|
+
//# sourceMappingURL=createCodeNode.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createHastElement } from "./hast_utils.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/createEmptyRowBuffer.ts
|
|
4
|
+
function createEmptyRowBuffer(size) {
|
|
5
|
+
return createHastElement({
|
|
6
|
+
tagName: "div",
|
|
7
|
+
properties: {
|
|
8
|
+
"data-buffer": "",
|
|
9
|
+
style: `grid-row: span ${size};min-height:calc(${size} * 1lh)`
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
export { createEmptyRowBuffer };
|
|
16
|
+
//# sourceMappingURL=createEmptyRowBuffer.js.map
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { HEADER_METADATA_SLOT_ID } from "../constants.js";
|
|
2
|
+
import { createHastElement, createIconElement, createTextNodeElement } from "./hast_utils.js";
|
|
3
|
+
import { getIconForType } from "./getIconForType.js";
|
|
4
|
+
|
|
5
|
+
//#region src/utils/createFileHeaderElement.ts
|
|
6
|
+
function createFileHeaderElement({ fileOrDiff, themeStyles, themeType }) {
|
|
7
|
+
const fileDiff = "type" in fileOrDiff ? fileOrDiff : void 0;
|
|
8
|
+
const properties = {
|
|
9
|
+
"data-diffs-header": "",
|
|
10
|
+
"data-change-type": fileDiff?.type,
|
|
11
|
+
"data-theme-type": themeType !== "system" ? themeType : void 0,
|
|
12
|
+
style: themeStyles
|
|
13
|
+
};
|
|
14
|
+
return createHastElement({
|
|
15
|
+
tagName: "div",
|
|
16
|
+
children: [createHeaderElement({
|
|
17
|
+
name: fileOrDiff.name,
|
|
18
|
+
prevName: "prevName" in fileOrDiff ? fileOrDiff.prevName : void 0,
|
|
19
|
+
iconType: fileDiff?.type ?? "file"
|
|
20
|
+
}), createMetadataElement(fileDiff)],
|
|
21
|
+
properties
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function createHeaderElement({ name, prevName, iconType }) {
|
|
25
|
+
const children = [createIconElement({
|
|
26
|
+
name: getIconForType(iconType),
|
|
27
|
+
properties: { "data-change-icon": iconType }
|
|
28
|
+
})];
|
|
29
|
+
if (prevName != null) {
|
|
30
|
+
children.push(createHastElement({
|
|
31
|
+
tagName: "div",
|
|
32
|
+
children: [createTextNodeElement(prevName)],
|
|
33
|
+
properties: { "data-prev-name": "" }
|
|
34
|
+
}));
|
|
35
|
+
children.push(createIconElement({
|
|
36
|
+
name: "diffs-icon-arrow-right-short",
|
|
37
|
+
properties: { "data-rename-icon": "" }
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
children.push(createHastElement({
|
|
41
|
+
tagName: "div",
|
|
42
|
+
children: [createTextNodeElement(name)],
|
|
43
|
+
properties: { "data-title": "" }
|
|
44
|
+
}));
|
|
45
|
+
return createHastElement({
|
|
46
|
+
tagName: "div",
|
|
47
|
+
children,
|
|
48
|
+
properties: { "data-header-content": "" }
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function createMetadataElement(fileDiff) {
|
|
52
|
+
const children = [];
|
|
53
|
+
if (fileDiff != null) {
|
|
54
|
+
let additions = 0;
|
|
55
|
+
let deletions = 0;
|
|
56
|
+
for (const hunk of fileDiff.hunks) {
|
|
57
|
+
additions += hunk.additionLines;
|
|
58
|
+
deletions += hunk.deletionLines;
|
|
59
|
+
}
|
|
60
|
+
if (deletions > 0 || additions === 0) children.push(createHastElement({
|
|
61
|
+
tagName: "span",
|
|
62
|
+
children: [createTextNodeElement(`-${deletions}`)],
|
|
63
|
+
properties: { "data-deletions-count": "" }
|
|
64
|
+
}));
|
|
65
|
+
if (additions > 0 || deletions === 0) children.push(createHastElement({
|
|
66
|
+
tagName: "span",
|
|
67
|
+
children: [createTextNodeElement(`+${additions}`)],
|
|
68
|
+
properties: { "data-additions-count": "" }
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
children.push(createHastElement({
|
|
72
|
+
tagName: "slot",
|
|
73
|
+
properties: { name: HEADER_METADATA_SLOT_ID }
|
|
74
|
+
}));
|
|
75
|
+
return createHastElement({
|
|
76
|
+
tagName: "div",
|
|
77
|
+
children,
|
|
78
|
+
properties: { "data-metadata": "" }
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
//#endregion
|
|
83
|
+
export { createFileHeaderElement };
|
|
84
|
+
//# sourceMappingURL=createFileHeaderElement.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/utils/createHoverContentNode.ts
|
|
2
|
+
function createHoverContentNode() {
|
|
3
|
+
const hoverContent = document.createElement("div");
|
|
4
|
+
hoverContent.slot = "hover-slot";
|
|
5
|
+
hoverContent.style.position = "absolute";
|
|
6
|
+
hoverContent.style.top = "0";
|
|
7
|
+
hoverContent.style.bottom = "0";
|
|
8
|
+
hoverContent.style.textAlign = "center";
|
|
9
|
+
hoverContent.style.whiteSpace = "normal";
|
|
10
|
+
return hoverContent;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { createHoverContentNode };
|
|
15
|
+
//# sourceMappingURL=createHoverContentNode.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createHastElement, createTextNodeElement } from "./hast_utils.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/createNoNewlineElement.ts
|
|
4
|
+
function createNoNewlineElement(type) {
|
|
5
|
+
return createHastElement({
|
|
6
|
+
tagName: "div",
|
|
7
|
+
children: [createHastElement({
|
|
8
|
+
tagName: "span",
|
|
9
|
+
properties: { "data-column-number": "" }
|
|
10
|
+
}), createHastElement({
|
|
11
|
+
tagName: "span",
|
|
12
|
+
children: [createTextNodeElement("No newline at end of file")],
|
|
13
|
+
properties: { "data-column-content": "" }
|
|
14
|
+
})],
|
|
15
|
+
properties: {
|
|
16
|
+
"data-no-newline": "",
|
|
17
|
+
"data-line-type": type
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
//#endregion
|
|
23
|
+
export { createNoNewlineElement };
|
|
24
|
+
//# sourceMappingURL=createNoNewlineElement.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createHastElement } from "./hast_utils.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/createPreElement.ts
|
|
4
|
+
function createPreElement(options) {
|
|
5
|
+
return createHastElement({
|
|
6
|
+
tagName: "pre",
|
|
7
|
+
properties: createPreWrapperProperties(options)
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
function createPreWrapperProperties({ diffIndicators, disableBackground, disableLineNumbers, overflow, split, themeType, themeStyles, totalLines }) {
|
|
11
|
+
const properties = {
|
|
12
|
+
"data-diffs": "",
|
|
13
|
+
"data-type": split ? "split" : "file",
|
|
14
|
+
"data-overflow": overflow,
|
|
15
|
+
"data-disable-line-numbers": disableLineNumbers ? "" : void 0,
|
|
16
|
+
"data-background": !disableBackground ? "" : void 0,
|
|
17
|
+
"data-indicators": diffIndicators === "bars" || diffIndicators === "classic" ? diffIndicators : void 0,
|
|
18
|
+
"data-theme-type": themeType !== "system" ? themeType : void 0,
|
|
19
|
+
style: themeStyles,
|
|
20
|
+
tabIndex: 0
|
|
21
|
+
};
|
|
22
|
+
properties.style += `--diffs-min-number-column-width-default:${`${totalLines}`.length}ch;`;
|
|
23
|
+
return properties;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
export { createPreElement, createPreWrapperProperties };
|
|
28
|
+
//# sourceMappingURL=createPreElement.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/utils/createRowNodes.ts
|
|
2
|
+
function createRowNodes(line) {
|
|
3
|
+
const row = document.createElement("div");
|
|
4
|
+
row.dataset.line = `${line}`;
|
|
5
|
+
const lineColumn = document.createElement("div");
|
|
6
|
+
lineColumn.dataset.columnNumber = "";
|
|
7
|
+
lineColumn.textContent = `${line}`;
|
|
8
|
+
const content = document.createElement("div");
|
|
9
|
+
content.dataset.columnContent = "";
|
|
10
|
+
row.appendChild(lineColumn);
|
|
11
|
+
row.appendChild(content);
|
|
12
|
+
return {
|
|
13
|
+
row,
|
|
14
|
+
content
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
export { createRowNodes };
|
|
20
|
+
//# sourceMappingURL=createRowNodes.js.map
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { createHastElement, createIconElement, createTextNodeElement } from "./hast_utils.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/createSeparator.ts
|
|
4
|
+
function createExpandButton(type) {
|
|
5
|
+
return createHastElement({
|
|
6
|
+
tagName: "div",
|
|
7
|
+
children: [createIconElement({
|
|
8
|
+
name: type === "both" ? "diffs-icon-expand-all" : "diffs-icon-expand",
|
|
9
|
+
properties: { "data-icon": "" }
|
|
10
|
+
})],
|
|
11
|
+
properties: {
|
|
12
|
+
"data-expand-button": "",
|
|
13
|
+
"data-expand-both": type === "both" ? "" : void 0,
|
|
14
|
+
"data-expand-up": type === "up" ? "" : void 0,
|
|
15
|
+
"data-expand-down": type === "down" ? "" : void 0
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function createSeparator({ type, content, expandIndex, chunked = false, slotName, isFirstHunk, isLastHunk }) {
|
|
20
|
+
const children = [];
|
|
21
|
+
if (type === "metadata" && content != null) children.push(createHastElement({
|
|
22
|
+
tagName: "div",
|
|
23
|
+
children: [createTextNodeElement(content)],
|
|
24
|
+
properties: { "data-separator-wrapper": "" }
|
|
25
|
+
}));
|
|
26
|
+
if (type === "line-info" && content != null) {
|
|
27
|
+
const contentChildren = [];
|
|
28
|
+
if (expandIndex != null) if (!chunked) contentChildren.push(createExpandButton(!isFirstHunk && !isLastHunk ? "both" : isFirstHunk ? "down" : "up"));
|
|
29
|
+
else {
|
|
30
|
+
if (!isFirstHunk) contentChildren.push(createExpandButton("up"));
|
|
31
|
+
if (!isLastHunk) contentChildren.push(createExpandButton("down"));
|
|
32
|
+
}
|
|
33
|
+
contentChildren.push(createHastElement({
|
|
34
|
+
tagName: "div",
|
|
35
|
+
children: [createHastElement({
|
|
36
|
+
tagName: "span",
|
|
37
|
+
children: [createTextNodeElement(content)],
|
|
38
|
+
properties: { "data-unmodified-lines": "" }
|
|
39
|
+
})],
|
|
40
|
+
properties: { "data-separator-content": "" }
|
|
41
|
+
}));
|
|
42
|
+
children.push(createHastElement({
|
|
43
|
+
tagName: "div",
|
|
44
|
+
children: contentChildren,
|
|
45
|
+
properties: {
|
|
46
|
+
"data-separator-wrapper": "",
|
|
47
|
+
"data-separator-multi-button": contentChildren.length > 2 ? "" : void 0
|
|
48
|
+
}
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
if (type === "custom" && slotName != null) children.push(createHastElement({
|
|
52
|
+
tagName: "slot",
|
|
53
|
+
properties: { name: slotName }
|
|
54
|
+
}));
|
|
55
|
+
return createHastElement({
|
|
56
|
+
tagName: "div",
|
|
57
|
+
children,
|
|
58
|
+
properties: {
|
|
59
|
+
"data-separator": children.length === 0 ? "" : type,
|
|
60
|
+
"data-expand-index": expandIndex,
|
|
61
|
+
"data-separator-first": isFirstHunk ? "" : void 0,
|
|
62
|
+
"data-separator-last": isLastHunk ? "" : void 0
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
//#endregion
|
|
68
|
+
export { createSeparator };
|
|
69
|
+
//# sourceMappingURL=createSeparator.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { getTokenStyleObject, stringifyTokenStyle } from "shiki";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/createSpanNodeFromToken.ts
|
|
4
|
+
function createSpanFromToken(token) {
|
|
5
|
+
const element = document.createElement("span");
|
|
6
|
+
element.style = stringifyTokenStyle(token.htmlStyle ?? getTokenStyleObject(token));
|
|
7
|
+
element.textContent = token.content;
|
|
8
|
+
return element;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { createSpanFromToken };
|
|
13
|
+
//# sourceMappingURL=createSpanNodeFromToken.js.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CORE_CSS_ATTRIBUTE, UNSAFE_CSS_ATTRIBUTE } from "../constants.js";
|
|
2
|
+
import { createHastElement, createTextNodeElement } from "./hast_utils.js";
|
|
3
|
+
import { wrapCoreCSS, wrapUnsafeCSS } from "./cssWrappers.js";
|
|
4
|
+
|
|
5
|
+
//#region src/utils/createStyleElement.ts
|
|
6
|
+
function createStyleElement(content, isCoreCSS = false) {
|
|
7
|
+
return createHastElement({
|
|
8
|
+
tagName: "style",
|
|
9
|
+
children: [createTextNodeElement(isCoreCSS ? wrapCoreCSS(content) : wrapUnsafeCSS(content))],
|
|
10
|
+
properties: {
|
|
11
|
+
[CORE_CSS_ATTRIBUTE]: isCoreCSS ? "" : void 0,
|
|
12
|
+
[UNSAFE_CSS_ATTRIBUTE]: !isCoreCSS ? "" : void 0
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { createStyleElement };
|
|
19
|
+
//# sourceMappingURL=createStyleElement.js.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { findCodeElement } from "./hast_utils.js";
|
|
2
|
+
import { processLine } from "./processLine.js";
|
|
3
|
+
import { transformerStyleToClass } from "@shikijs/transformers";
|
|
4
|
+
|
|
5
|
+
//#region src/utils/createTransformerWithState.ts
|
|
6
|
+
function createTransformerWithState(useCSSClasses = false) {
|
|
7
|
+
const state = { lineInfo: {} };
|
|
8
|
+
const transformers = [{
|
|
9
|
+
line(node) {
|
|
10
|
+
delete node.properties.class;
|
|
11
|
+
return node;
|
|
12
|
+
},
|
|
13
|
+
pre(pre) {
|
|
14
|
+
const code = findCodeElement(pre);
|
|
15
|
+
const children = [];
|
|
16
|
+
if (code != null) {
|
|
17
|
+
let index = 1;
|
|
18
|
+
for (const node of code.children) {
|
|
19
|
+
if (node.type !== "element") continue;
|
|
20
|
+
children.push(processLine(node, index, state));
|
|
21
|
+
index++;
|
|
22
|
+
}
|
|
23
|
+
code.children = children;
|
|
24
|
+
}
|
|
25
|
+
return pre;
|
|
26
|
+
}
|
|
27
|
+
}];
|
|
28
|
+
if (useCSSClasses) transformers.push(tokenStyleNormalizer, toClass);
|
|
29
|
+
return {
|
|
30
|
+
state,
|
|
31
|
+
transformers,
|
|
32
|
+
toClass
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const toClass = transformerStyleToClass({ classPrefix: "hl-" });
|
|
36
|
+
const tokenStyleNormalizer = {
|
|
37
|
+
name: "token-style-normalizer",
|
|
38
|
+
tokens(lines) {
|
|
39
|
+
for (const line of lines) for (const token of line) {
|
|
40
|
+
if (token.htmlStyle != null) continue;
|
|
41
|
+
const style = {};
|
|
42
|
+
if (token.color != null) style.color = token.color;
|
|
43
|
+
if (token.bgColor != null) style["background-color"] = token.bgColor;
|
|
44
|
+
if (token.fontStyle != null && token.fontStyle !== 0) {
|
|
45
|
+
if ((token.fontStyle & 1) !== 0) style["font-style"] = "italic";
|
|
46
|
+
if ((token.fontStyle & 2) !== 0) style["font-weight"] = "bold";
|
|
47
|
+
if ((token.fontStyle & 4) !== 0) style["text-decoration"] = "underline";
|
|
48
|
+
}
|
|
49
|
+
if (Object.keys(style).length > 0) token.htmlStyle = style;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
//#endregion
|
|
55
|
+
export { createTransformerWithState };
|
|
56
|
+
//# sourceMappingURL=createTransformerWithState.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { UNSAFE_CSS_ATTRIBUTE } from "../constants.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/createUnsafeCSSStyleNode.ts
|
|
4
|
+
function createUnsafeCSSStyleNode() {
|
|
5
|
+
const node = document.createElement("style");
|
|
6
|
+
node.setAttribute(UNSAFE_CSS_ATTRIBUTE, "");
|
|
7
|
+
return node;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { createUnsafeCSSStyleNode };
|
|
12
|
+
//# sourceMappingURL=createUnsafeCSSStyleNode.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import style_default from "../style.js";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/cssWrappers.ts
|
|
4
|
+
const LAYER_ORDER = `@layer base, theme, unsafe;`;
|
|
5
|
+
function wrapCoreCSS(mainCSS) {
|
|
6
|
+
return `${LAYER_ORDER}
|
|
7
|
+
${style_default}
|
|
8
|
+
@layer theme {
|
|
9
|
+
${mainCSS}
|
|
10
|
+
}`;
|
|
11
|
+
}
|
|
12
|
+
function wrapUnsafeCSS(unsafeCSS) {
|
|
13
|
+
return `${LAYER_ORDER}
|
|
14
|
+
@layer unsafe {
|
|
15
|
+
${unsafeCSS}
|
|
16
|
+
}`;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
export { wrapCoreCSS, wrapUnsafeCSS };
|
|
21
|
+
//# sourceMappingURL=cssWrappers.js.map
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
//#region src/utils/diffAcceptRejectHunk.ts
|
|
2
|
+
function diffAcceptRejectHunk(diff, hunkIndex, type) {
|
|
3
|
+
diff = {
|
|
4
|
+
...diff,
|
|
5
|
+
hunks: [...diff.hunks],
|
|
6
|
+
oldLines: diff.oldLines != null ? [...diff.oldLines] : void 0,
|
|
7
|
+
newLines: diff.newLines != null ? [...diff.newLines] : void 0,
|
|
8
|
+
cacheKey: diff.cacheKey != null ? `${diff.cacheKey}:${type[0]}-${hunkIndex}` : void 0
|
|
9
|
+
};
|
|
10
|
+
const { newLines, oldLines } = diff;
|
|
11
|
+
if (newLines != null && oldLines != null) {
|
|
12
|
+
const hunk = diff.hunks[hunkIndex];
|
|
13
|
+
if (hunk == null) {
|
|
14
|
+
console.error({
|
|
15
|
+
diff,
|
|
16
|
+
hunkIndex
|
|
17
|
+
});
|
|
18
|
+
throw new Error(`diffResolveRejectHunk: Invalid hunk index: ${hunkIndex}`);
|
|
19
|
+
}
|
|
20
|
+
if (type === "reject") newLines.splice(hunk.additionStart - 1, hunk.additionCount, ...oldLines.slice(hunk.deletionStart - 1, hunk.deletionStart - 1 + hunk.deletionCount));
|
|
21
|
+
else oldLines.splice(hunk.deletionStart - 1, hunk.deletionCount, ...newLines.slice(hunk.additionStart - 1, hunk.additionStart - 1 + hunk.additionCount));
|
|
22
|
+
}
|
|
23
|
+
let deletionOffset = 0;
|
|
24
|
+
let additionOffset = 0;
|
|
25
|
+
let splitOffset = 0;
|
|
26
|
+
let unifiedOffset = 0;
|
|
27
|
+
for (let i = hunkIndex; i < diff.hunks.length; i++) {
|
|
28
|
+
let hunk = diff.hunks[i];
|
|
29
|
+
if (hunk == null) {
|
|
30
|
+
console.error({
|
|
31
|
+
hunk,
|
|
32
|
+
i,
|
|
33
|
+
hunkIndex,
|
|
34
|
+
diff
|
|
35
|
+
});
|
|
36
|
+
throw new Error("diffResolveRejectHunk: iterating through hunks, hunk doesnt exist...");
|
|
37
|
+
}
|
|
38
|
+
hunk = { ...hunk };
|
|
39
|
+
diff.hunks[i] = hunk;
|
|
40
|
+
if (i === hunkIndex) {
|
|
41
|
+
const newContent = {
|
|
42
|
+
type: "context",
|
|
43
|
+
lines: [],
|
|
44
|
+
noEOFCR: false
|
|
45
|
+
};
|
|
46
|
+
for (const content of hunk.hunkContent) if (content.type === "context") {
|
|
47
|
+
newContent.lines.push(...content.lines);
|
|
48
|
+
newContent.noEOFCR = content.noEOFCR;
|
|
49
|
+
} else if (type === "accept") {
|
|
50
|
+
newContent.lines.push(...content.additions);
|
|
51
|
+
newContent.noEOFCR = content.noEOFCRAdditions;
|
|
52
|
+
} else if (type === "reject") {
|
|
53
|
+
newContent.lines.push(...content.deletions);
|
|
54
|
+
newContent.noEOFCR = content.noEOFCRDeletions;
|
|
55
|
+
}
|
|
56
|
+
const lineCount = newContent.lines.length;
|
|
57
|
+
hunk.hunkContent = [newContent];
|
|
58
|
+
splitOffset = lineCount - hunk.splitLineCount;
|
|
59
|
+
hunk.splitLineCount = lineCount;
|
|
60
|
+
unifiedOffset = lineCount - hunk.unifiedLineCount;
|
|
61
|
+
hunk.unifiedLineCount = lineCount;
|
|
62
|
+
deletionOffset = lineCount - hunk.deletionCount;
|
|
63
|
+
hunk.deletionCount = lineCount;
|
|
64
|
+
hunk.deletionLines = 0;
|
|
65
|
+
additionOffset = lineCount - hunk.additionCount;
|
|
66
|
+
hunk.additionCount = lineCount;
|
|
67
|
+
hunk.additionLines = 0;
|
|
68
|
+
diff.splitLineCount += splitOffset;
|
|
69
|
+
diff.unifiedLineCount += unifiedOffset;
|
|
70
|
+
} else {
|
|
71
|
+
hunk.splitLineStart += splitOffset;
|
|
72
|
+
hunk.unifiedLineStart += unifiedOffset;
|
|
73
|
+
hunk.additionStart += additionOffset;
|
|
74
|
+
hunk.deletionStart += deletionOffset;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return diff;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
//#endregion
|
|
81
|
+
export { diffAcceptRejectHunk };
|
|
82
|
+
//# sourceMappingURL=diffAcceptRejectHunk.js.map
|