@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.
Files changed (203) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{Bc2V3wPK.js → B2ow85x_.js} +2 -2
  3. package/.output/public/_nuxt/{U78rMDmo.js → B6CbIr08.js} +1 -1
  4. package/.output/public/_nuxt/{BknRrWsw.js → BLQAF8wp.js} +1 -1
  5. package/.output/public/_nuxt/BXuwtOqb.js +1 -0
  6. package/.output/public/_nuxt/CAMiEhze.js +1 -0
  7. package/.output/public/_nuxt/{BRQ9Cxaw.js → CIBCqZF5.js} +1 -1
  8. package/.output/public/_nuxt/Ce0-nlm9.js +1 -0
  9. package/.output/public/_nuxt/{T11EuTtn.js → ConzneVY.js} +1 -1
  10. package/.output/public/_nuxt/D0qxz_Pn.js +1310 -0
  11. package/.output/public/_nuxt/D3PDtLSF.js +3 -0
  12. package/.output/public/_nuxt/{C73kduX-.js → DdKC0UAK.js} +1 -1
  13. package/.output/public/_nuxt/Detail.BGdvrJGh.css +1 -0
  14. package/.output/public/_nuxt/{C53_p0K1.js → Dkh9ic1y.js} +1 -1
  15. package/.output/public/_nuxt/LEjJTR7-.js +1 -0
  16. package/.output/public/_nuxt/{BTmXUZ_s.js → UqZfMfrZ.js} +1 -1
  17. package/.output/public/_nuxt/builds/latest.json +1 -1
  18. package/.output/public/_nuxt/builds/meta/25438e34-19a2-421d-aede-53fd18f1ccd4.json +1 -0
  19. package/.output/public/_nuxt/dckrK0oj.js +1 -0
  20. package/.output/public/_nuxt/entry.DT4p6_uW.css +1 -0
  21. package/.output/public/_nuxt/pIWeVmPw.js +1 -0
  22. package/.output/public/_nuxt/xrHaPo1U.js +60 -0
  23. package/.output/server/chunks/_/prd-service.mjs.map +1 -1
  24. package/.output/server/chunks/build/{Detail-DMMUwTWr.mjs → Detail-rpcemNXe.mjs} +674 -481
  25. package/.output/server/chunks/build/Detail-rpcemNXe.mjs.map +1 -0
  26. package/.output/server/chunks/build/DiffViewer-styles.B1FB5NJj.mjs +8 -0
  27. package/.output/server/chunks/build/DiffViewer-styles.B1FB5NJj.mjs.map +1 -0
  28. package/.output/server/chunks/build/{_prd_-ByugK4Yi.mjs → _prd_-CeibvZOH.mjs} +67 -233
  29. package/.output/server/chunks/build/_prd_-CeibvZOH.mjs.map +1 -0
  30. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  31. package/.output/server/chunks/build/{default-BKKgG7HJ.mjs → default-iq8SaDDN.mjs} +3 -3
  32. package/.output/server/chunks/build/default-iq8SaDDN.mjs.map +1 -0
  33. package/.output/server/chunks/build/{error-404-Bf6kdO80.mjs → error-404-DFale9A5.mjs} +2 -2
  34. package/.output/server/chunks/build/error-404-DFale9A5.mjs.map +1 -0
  35. package/.output/server/chunks/build/{index-DE1tjHAd.mjs → index-Po00RvHm.mjs} +2 -2
  36. package/.output/server/chunks/build/index-Po00RvHm.mjs.map +1 -0
  37. package/.output/server/chunks/build/{nuxt-link-SvT1nf8Z.mjs → nuxt-link-B4oWFn7n.mjs} +2 -2
  38. package/.output/server/chunks/build/nuxt-link-B4oWFn7n.mjs.map +1 -0
  39. package/.output/server/chunks/build/{repo-graph-DzT45gSB.mjs → repo-graph-BQVFpA-w.mjs} +5 -4
  40. package/.output/server/chunks/build/repo-graph-BQVFpA-w.mjs.map +1 -0
  41. package/.output/server/chunks/build/server.mjs +7 -7
  42. package/.output/server/chunks/build/styles.mjs +4 -5
  43. package/.output/server/chunks/build/{usePrd-hXZOmvAv.mjs → usePrd-Bb6jlnNZ.mjs} +2 -2
  44. package/.output/server/chunks/build/usePrd-Bb6jlnNZ.mjs.map +1 -0
  45. package/.output/server/chunks/nitro/nitro.mjs +983 -678
  46. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  47. package/.output/server/node_modules/@pierre/diffs/dist/components/File.js +324 -0
  48. package/.output/server/node_modules/@pierre/diffs/dist/components/FileDiff.js +395 -0
  49. package/.output/server/node_modules/@pierre/diffs/dist/components/FileStream.js +161 -0
  50. package/.output/server/node_modules/@pierre/diffs/dist/components/web-components.js +25 -0
  51. package/.output/server/node_modules/@pierre/diffs/dist/constants.js +23 -0
  52. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/areLanguagesAttached.js +11 -0
  53. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/attachResolvedLanguages.js +20 -0
  54. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/cleanUpResolvedLanguages.js +11 -0
  55. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/constants.js +8 -0
  56. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/getResolvedLanguages.js +16 -0
  57. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/getResolvedOrResolveLanguage.js +11 -0
  58. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/hasResolvedLanguages.js +11 -0
  59. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/resolveLanguage.js +30 -0
  60. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/languages/resolveLanguages.js +25 -0
  61. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.js +71 -0
  62. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/areThemesAttached.js +12 -0
  63. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/attachResolvedThemes.js +24 -0
  64. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/cleanUpResolvedThemes.js +11 -0
  65. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/constants.js +9 -0
  66. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/getResolvedOrResolveTheme.js +11 -0
  67. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/getResolvedThemes.js +16 -0
  68. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/hasResolvedThemes.js +11 -0
  69. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/registerCustomCSSVariableTheme.js +18 -0
  70. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/registerCustomTheme.js +14 -0
  71. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/resolveTheme.js +35 -0
  72. package/.output/server/node_modules/@pierre/diffs/dist/highlighter/themes/resolveThemes.js +21 -0
  73. package/.output/server/node_modules/@pierre/diffs/dist/index.js +84 -0
  74. package/.output/server/node_modules/@pierre/diffs/dist/managers/LineSelectionManager.js +282 -0
  75. package/.output/server/node_modules/@pierre/diffs/dist/managers/MouseEventManager.js +244 -0
  76. package/.output/server/node_modules/@pierre/diffs/dist/managers/ResizeManager.js +132 -0
  77. package/.output/server/node_modules/@pierre/diffs/dist/managers/ScrollSyncManager.js +62 -0
  78. package/.output/server/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js +32 -0
  79. package/.output/server/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js +655 -0
  80. package/.output/server/node_modules/@pierre/diffs/dist/renderers/FileRenderer.js +243 -0
  81. package/.output/server/node_modules/@pierre/diffs/dist/shiki-stream/stream.js +32 -0
  82. package/.output/server/node_modules/@pierre/diffs/dist/shiki-stream/tokenizer.js +71 -0
  83. package/.output/server/node_modules/@pierre/diffs/dist/sprite.js +55 -0
  84. package/.output/server/node_modules/@pierre/diffs/dist/style.js +6 -0
  85. package/.output/server/node_modules/@pierre/diffs/dist/themes/pierre-dark.js +1328 -0
  86. package/.output/server/node_modules/@pierre/diffs/dist/themes/pierre-light.js +1328 -0
  87. package/.output/server/node_modules/@pierre/diffs/dist/utils/areFilesEqual.js +8 -0
  88. package/.output/server/node_modules/@pierre/diffs/dist/utils/areObjectsEqual.js +18 -0
  89. package/.output/server/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.js +12 -0
  90. package/.output/server/node_modules/@pierre/diffs/dist/utils/areSelectionsEqual.js +8 -0
  91. package/.output/server/node_modules/@pierre/diffs/dist/utils/areThemesEqual.js +9 -0
  92. package/.output/server/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js +8 -0
  93. package/.output/server/node_modules/@pierre/diffs/dist/utils/createAnnotationElement.js +21 -0
  94. package/.output/server/node_modules/@pierre/diffs/dist/utils/createAnnotationWrapperNode.js +12 -0
  95. package/.output/server/node_modules/@pierre/diffs/dist/utils/createCodeNode.js +12 -0
  96. package/.output/server/node_modules/@pierre/diffs/dist/utils/createEmptyRowBuffer.js +16 -0
  97. package/.output/server/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js +84 -0
  98. package/.output/server/node_modules/@pierre/diffs/dist/utils/createHoverContentNode.js +15 -0
  99. package/.output/server/node_modules/@pierre/diffs/dist/utils/createNoNewlineElement.js +24 -0
  100. package/.output/server/node_modules/@pierre/diffs/dist/utils/createPreElement.js +28 -0
  101. package/.output/server/node_modules/@pierre/diffs/dist/utils/createRowNodes.js +20 -0
  102. package/.output/server/node_modules/@pierre/diffs/dist/utils/createSeparator.js +69 -0
  103. package/.output/server/node_modules/@pierre/diffs/dist/utils/createSpanNodeFromToken.js +13 -0
  104. package/.output/server/node_modules/@pierre/diffs/dist/utils/createStyleElement.js +19 -0
  105. package/.output/server/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js +56 -0
  106. package/.output/server/node_modules/@pierre/diffs/dist/utils/createUnsafeCSSStyleNode.js +12 -0
  107. package/.output/server/node_modules/@pierre/diffs/dist/utils/cssWrappers.js +21 -0
  108. package/.output/server/node_modules/@pierre/diffs/dist/utils/diffAcceptRejectHunk.js +82 -0
  109. package/.output/server/node_modules/@pierre/diffs/dist/utils/formatCSSVariablePrefix.js +8 -0
  110. package/.output/server/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js +343 -0
  111. package/.output/server/node_modules/@pierre/diffs/dist/utils/getHighlighterOptions.js +13 -0
  112. package/.output/server/node_modules/@pierre/diffs/dist/utils/getHighlighterThemeStyles.js +40 -0
  113. package/.output/server/node_modules/@pierre/diffs/dist/utils/getHunkSeparatorSlotName.js +8 -0
  114. package/.output/server/node_modules/@pierre/diffs/dist/utils/getIconForType.js +15 -0
  115. package/.output/server/node_modules/@pierre/diffs/dist/utils/getLineAnnotationName.js +8 -0
  116. package/.output/server/node_modules/@pierre/diffs/dist/utils/getLineEndingType.js +11 -0
  117. package/.output/server/node_modules/@pierre/diffs/dist/utils/getLineNodes.js +15 -0
  118. package/.output/server/node_modules/@pierre/diffs/dist/utils/getSingularPatch.js +20 -0
  119. package/.output/server/node_modules/@pierre/diffs/dist/utils/getThemes.js +16 -0
  120. package/.output/server/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js +10 -0
  121. package/.output/server/node_modules/@pierre/diffs/dist/utils/hast_utils.js +42 -0
  122. package/.output/server/node_modules/@pierre/diffs/dist/utils/isWorkerContext.js +8 -0
  123. package/.output/server/node_modules/@pierre/diffs/dist/utils/parseDiffDecorations.js +34 -0
  124. package/.output/server/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js +23 -0
  125. package/.output/server/node_modules/@pierre/diffs/dist/utils/parseLineType.js +17 -0
  126. package/.output/server/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js +211 -0
  127. package/.output/server/node_modules/@pierre/diffs/dist/utils/prerenderHTMLIfNecessary.js +10 -0
  128. package/.output/server/node_modules/@pierre/diffs/dist/utils/processLine.js +42 -0
  129. package/.output/server/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js +339 -0
  130. package/.output/server/node_modules/@pierre/diffs/dist/utils/renderFileWithHighlighter.js +52 -0
  131. package/.output/server/node_modules/@pierre/diffs/dist/utils/setLanguageOverride.js +11 -0
  132. package/.output/server/node_modules/@pierre/diffs/dist/utils/setWrapperNodeProps.js +29 -0
  133. package/.output/server/node_modules/@pierre/diffs/package.json +89 -0
  134. package/.output/server/node_modules/@shikijs/transformers/dist/index.mjs +831 -0
  135. package/.output/server/node_modules/@shikijs/transformers/package.json +37 -0
  136. package/.output/server/node_modules/diff/libesm/convert/dmp.js +21 -0
  137. package/.output/server/node_modules/diff/libesm/convert/xml.js +31 -0
  138. package/.output/server/node_modules/diff/libesm/diff/array.js +16 -0
  139. package/.output/server/node_modules/diff/libesm/diff/base.js +253 -0
  140. package/.output/server/node_modules/diff/libesm/diff/character.js +7 -0
  141. package/.output/server/node_modules/diff/libesm/diff/css.js +10 -0
  142. package/.output/server/node_modules/diff/libesm/diff/json.js +78 -0
  143. package/.output/server/node_modules/diff/libesm/diff/line.js +65 -0
  144. package/.output/server/node_modules/diff/libesm/diff/sentence.js +43 -0
  145. package/.output/server/node_modules/diff/libesm/diff/word.js +296 -0
  146. package/.output/server/node_modules/diff/libesm/index.js +30 -0
  147. package/.output/server/node_modules/diff/libesm/package.json +1 -0
  148. package/.output/server/node_modules/diff/libesm/patch/apply.js +257 -0
  149. package/.output/server/node_modules/diff/libesm/patch/create.js +228 -0
  150. package/.output/server/node_modules/diff/libesm/patch/line-endings.js +44 -0
  151. package/.output/server/node_modules/diff/libesm/patch/parse.js +147 -0
  152. package/.output/server/node_modules/diff/libesm/patch/reverse.js +23 -0
  153. package/.output/server/node_modules/diff/libesm/util/distance-iterator.js +37 -0
  154. package/.output/server/node_modules/diff/libesm/util/params.js +14 -0
  155. package/.output/server/node_modules/diff/libesm/util/string.js +128 -0
  156. package/.output/server/node_modules/diff/package.json +132 -0
  157. package/.output/server/package.json +4 -1
  158. package/README.md +41 -0
  159. package/bin/prd +1 -1
  160. package/dist/host/src/index.js +10 -0
  161. package/dist/host/src/sync.js +201 -0
  162. package/dist/server/utils/db.js +64 -0
  163. package/dist/server/utils/git.js +8 -6
  164. package/dist/server/utils/prd-state.js +24 -2
  165. package/dist/server/utils/repos.js +12 -2
  166. package/dist/server/utils/state-migration.js +4 -3
  167. package/dist/server/utils/sync-apply.js +380 -0
  168. package/dist/server/utils/sync-export.js +183 -0
  169. package/dist/server/utils/sync-identity.js +231 -0
  170. package/dist/server/utils/sync-inspect.js +103 -0
  171. package/dist/server/utils/sync-merge.js +579 -0
  172. package/dist/server/utils/sync-schema.js +100 -0
  173. package/package.json +2 -1
  174. package/.output/public/_nuxt/6tINjQEd.js +0 -141
  175. package/.output/public/_nuxt/B2mIQf5X.js +0 -3
  176. package/.output/public/_nuxt/C0BBSDJ7.js +0 -1
  177. package/.output/public/_nuxt/CN46Bgts.js +0 -1
  178. package/.output/public/_nuxt/CTJgb0zb.js +0 -1
  179. package/.output/public/_nuxt/Cce168lk.js +0 -30
  180. package/.output/public/_nuxt/CyVSeLw5.js +0 -1
  181. package/.output/public/_nuxt/Detail.CYc96mGf.css +0 -1
  182. package/.output/public/_nuxt/ZNypZshD.js +0 -13
  183. package/.output/public/_nuxt/builds/meta/8c342d49-fe70-4f67-a987-821c16f86125.json +0 -1
  184. package/.output/public/_nuxt/entry.Bw0CE6Iz.css +0 -1
  185. package/.output/public/_nuxt/pYJYAY-W.js +0 -60
  186. package/.output/server/chunks/build/Detail-DMMUwTWr.mjs.map +0 -1
  187. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-d2dQvARr.mjs +0 -4
  188. package/.output/server/chunks/build/DiffViewer-styles-1.mjs-d2dQvARr.mjs.map +0 -1
  189. package/.output/server/chunks/build/DiffViewer-styles-2.mjs-X6QKNjM0.mjs +0 -4
  190. package/.output/server/chunks/build/DiffViewer-styles-2.mjs-X6QKNjM0.mjs.map +0 -1
  191. package/.output/server/chunks/build/DiffViewer-styles.0AbHFl6N.mjs +0 -8
  192. package/.output/server/chunks/build/DiffViewer-styles.0AbHFl6N.mjs.map +0 -1
  193. package/.output/server/chunks/build/DiffViewer-styles.BDwAqkTk.mjs +0 -8
  194. package/.output/server/chunks/build/DiffViewer-styles.BDwAqkTk.mjs.map +0 -1
  195. package/.output/server/chunks/build/DiffViewer-styles.DRJh5Ui4.mjs +0 -10
  196. package/.output/server/chunks/build/DiffViewer-styles.DRJh5Ui4.mjs.map +0 -1
  197. package/.output/server/chunks/build/_prd_-ByugK4Yi.mjs.map +0 -1
  198. package/.output/server/chunks/build/default-BKKgG7HJ.mjs.map +0 -1
  199. package/.output/server/chunks/build/error-404-Bf6kdO80.mjs.map +0 -1
  200. package/.output/server/chunks/build/index-DE1tjHAd.mjs.map +0 -1
  201. package/.output/server/chunks/build/nuxt-link-SvT1nf8Z.mjs.map +0 -1
  202. package/.output/server/chunks/build/repo-graph-DzT45gSB.mjs.map +0 -1
  203. package/.output/server/chunks/build/usePrd-hXZOmvAv.mjs.map +0 -1
@@ -0,0 +1,11 @@
1
+ import { ResolvedLanguages } from "./constants.js";
2
+ import { resolveLanguage } from "./resolveLanguage.js";
3
+
4
+ //#region src/highlighter/languages/getResolvedOrResolveLanguage.ts
5
+ function getResolvedOrResolveLanguage(language) {
6
+ return ResolvedLanguages.get(language) ?? resolveLanguage(language);
7
+ }
8
+
9
+ //#endregion
10
+ export { getResolvedOrResolveLanguage };
11
+ //# sourceMappingURL=getResolvedOrResolveLanguage.js.map
@@ -0,0 +1,11 @@
1
+ import { ResolvedLanguages } from "./constants.js";
2
+
3
+ //#region src/highlighter/languages/hasResolvedLanguages.ts
4
+ function hasResolvedLanguages(languages) {
5
+ for (const language of Array.isArray(languages) ? languages : [languages]) if (!ResolvedLanguages.has(language)) return false;
6
+ return true;
7
+ }
8
+
9
+ //#endregion
10
+ export { hasResolvedLanguages };
11
+ //# sourceMappingURL=hasResolvedLanguages.js.map
@@ -0,0 +1,30 @@
1
+ import { ResolvedLanguages, ResolvingLanguages } from "./constants.js";
2
+ import { isWorkerContext } from "../../utils/isWorkerContext.js";
3
+ import { bundledLanguages } from "shiki";
4
+
5
+ //#region src/highlighter/languages/resolveLanguage.ts
6
+ async function resolveLanguage(lang) {
7
+ if (isWorkerContext()) throw new Error(`resolveLanguage("${lang}") cannot be called from a worker context. Languages must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.`);
8
+ const resolver = ResolvingLanguages.get(lang);
9
+ if (resolver != null) return resolver;
10
+ try {
11
+ const loader = bundledLanguages[lang];
12
+ if (loader == null) throw new Error(`resolveLanguage: "${lang}" not found in bundled languages`);
13
+ const resolver$1 = loader().then(({ default: data }) => {
14
+ const resolvedLang = {
15
+ name: lang,
16
+ data
17
+ };
18
+ if (!ResolvedLanguages.has(lang)) ResolvedLanguages.set(lang, resolvedLang);
19
+ return resolvedLang;
20
+ });
21
+ ResolvingLanguages.set(lang, resolver$1);
22
+ return await resolver$1;
23
+ } finally {
24
+ ResolvingLanguages.delete(lang);
25
+ }
26
+ }
27
+
28
+ //#endregion
29
+ export { resolveLanguage };
30
+ //# sourceMappingURL=resolveLanguage.js.map
@@ -0,0 +1,25 @@
1
+ import { resolveLanguage } from "./resolveLanguage.js";
2
+ import { getResolvedOrResolveLanguage } from "./getResolvedOrResolveLanguage.js";
3
+
4
+ //#region src/highlighter/languages/resolveLanguages.ts
5
+ async function resolveLanguages(languages) {
6
+ const resolvedLanguages = [];
7
+ const languagesToResolve = [];
8
+ for (const language of languages) {
9
+ if (language === "text" || language === "ansi") continue;
10
+ const maybeResolvedLanguage = getResolvedOrResolveLanguage(language) ?? resolveLanguage(language);
11
+ if ("then" in maybeResolvedLanguage) languagesToResolve.push(maybeResolvedLanguage);
12
+ else resolvedLanguages.push(maybeResolvedLanguage);
13
+ }
14
+ if (languagesToResolve.length > 0) await Promise.all(languagesToResolve).then((_resolvedLanguages) => {
15
+ for (const resolvedLanguage of _resolvedLanguages) {
16
+ if (resolvedLanguage == null) throw new Error("resolvedLanguages: unable to resolve language");
17
+ resolvedLanguages.push(resolvedLanguage);
18
+ }
19
+ });
20
+ return resolvedLanguages;
21
+ }
22
+
23
+ //#endregion
24
+ export { resolveLanguages };
25
+ //# sourceMappingURL=resolveLanguages.js.map
@@ -0,0 +1,71 @@
1
+ import { attachResolvedLanguages } from "./languages/attachResolvedLanguages.js";
2
+ import { cleanUpResolvedLanguages } from "./languages/cleanUpResolvedLanguages.js";
3
+ import { getResolvedOrResolveLanguage } from "./languages/getResolvedOrResolveLanguage.js";
4
+ import { attachResolvedThemes } from "./themes/attachResolvedThemes.js";
5
+ import { cleanUpResolvedThemes } from "./themes/cleanUpResolvedThemes.js";
6
+ import { getResolvedOrResolveTheme } from "./themes/getResolvedOrResolveTheme.js";
7
+ import { registerCustomTheme } from "./themes/registerCustomTheme.js";
8
+ import { createHighlighter, createJavaScriptRegexEngine } from "shiki";
9
+
10
+ //#region src/highlighter/shared_highlighter.ts
11
+ let highlighter;
12
+ async function getSharedHighlighter({ themes, langs }) {
13
+ highlighter ??= createHighlighter({
14
+ themes: [],
15
+ langs: ["text"],
16
+ engine: createJavaScriptRegexEngine()
17
+ });
18
+ const instance = isHighlighterLoading(highlighter) ? await highlighter : highlighter;
19
+ highlighter = instance;
20
+ const languageLoaders = [];
21
+ for (const language of langs) {
22
+ if (language === "text" || language === "ansi") continue;
23
+ const maybeResolvedLanguage = getResolvedOrResolveLanguage(language);
24
+ if ("then" in maybeResolvedLanguage) languageLoaders.push(maybeResolvedLanguage);
25
+ else attachResolvedLanguages(maybeResolvedLanguage, instance);
26
+ }
27
+ const themeLoaders = [];
28
+ for (const themeName of themes) {
29
+ const maybeResolvedTheme = getResolvedOrResolveTheme(themeName);
30
+ if ("then" in maybeResolvedTheme) themeLoaders.push(maybeResolvedTheme);
31
+ else attachResolvedThemes(maybeResolvedTheme, highlighter);
32
+ }
33
+ if (languageLoaders.length > 0 || themeLoaders.length > 0) await Promise.all([Promise.all(languageLoaders).then((languages) => {
34
+ attachResolvedLanguages(languages, instance);
35
+ }), Promise.all(themeLoaders).then((themes$1) => {
36
+ attachResolvedThemes(themes$1, instance);
37
+ })]);
38
+ return instance;
39
+ }
40
+ function isHighlighterLoaded(h = highlighter) {
41
+ return h != null && !("then" in h);
42
+ }
43
+ function getHighlighterIfLoaded() {
44
+ if (highlighter != null && !("then" in highlighter)) return highlighter;
45
+ }
46
+ function isHighlighterLoading(h = highlighter) {
47
+ return h != null && "then" in h;
48
+ }
49
+ function isHighlighterNull(h = highlighter) {
50
+ return h == null;
51
+ }
52
+ async function preloadHighlighter(options) {
53
+ await getSharedHighlighter(options);
54
+ }
55
+ async function disposeHighlighter() {
56
+ if (highlighter == null) return;
57
+ (await highlighter).dispose();
58
+ cleanUpResolvedLanguages();
59
+ cleanUpResolvedThemes();
60
+ highlighter = void 0;
61
+ }
62
+ registerCustomTheme("pierre-dark", () => {
63
+ return import("../themes/pierre-dark.js");
64
+ });
65
+ registerCustomTheme("pierre-light", () => {
66
+ return import("../themes/pierre-light.js");
67
+ });
68
+
69
+ //#endregion
70
+ export { disposeHighlighter, getHighlighterIfLoaded, getSharedHighlighter, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, preloadHighlighter };
71
+ //# sourceMappingURL=shared_highlighter.js.map
@@ -0,0 +1,12 @@
1
+ import { AttachedThemes } from "./constants.js";
2
+ import { getThemes } from "../../utils/getThemes.js";
3
+
4
+ //#region src/highlighter/themes/areThemesAttached.ts
5
+ function areThemesAttached(themes) {
6
+ for (const theme of getThemes(themes)) if (!AttachedThemes.has(theme)) return false;
7
+ return true;
8
+ }
9
+
10
+ //#endregion
11
+ export { areThemesAttached };
12
+ //# sourceMappingURL=areThemesAttached.js.map
@@ -0,0 +1,24 @@
1
+ import { AttachedThemes, ResolvedThemes } from "./constants.js";
2
+
3
+ //#region src/highlighter/themes/attachResolvedThemes.ts
4
+ function attachResolvedThemes(themes, highlighter) {
5
+ themes = Array.isArray(themes) ? themes : [themes];
6
+ for (let themeRef of themes) {
7
+ let resolvedTheme;
8
+ if (typeof themeRef === "string") {
9
+ resolvedTheme = ResolvedThemes.get(themeRef);
10
+ if (resolvedTheme == null) throw new Error(`loadResolvedThemes: ${themeRef} is not resolved, you must resolve it before calling loadResolvedThemes`);
11
+ } else {
12
+ resolvedTheme = themeRef;
13
+ themeRef = themeRef.name;
14
+ if (!ResolvedThemes.has(themeRef)) ResolvedThemes.set(themeRef, resolvedTheme);
15
+ }
16
+ if (AttachedThemes.has(themeRef)) continue;
17
+ AttachedThemes.add(themeRef);
18
+ highlighter.loadThemeSync(resolvedTheme);
19
+ }
20
+ }
21
+
22
+ //#endregion
23
+ export { attachResolvedThemes };
24
+ //# sourceMappingURL=attachResolvedThemes.js.map
@@ -0,0 +1,11 @@
1
+ import { AttachedThemes, ResolvedThemes } from "./constants.js";
2
+
3
+ //#region src/highlighter/themes/cleanUpResolvedThemes.ts
4
+ function cleanUpResolvedThemes() {
5
+ ResolvedThemes.clear();
6
+ AttachedThemes.clear();
7
+ }
8
+
9
+ //#endregion
10
+ export { cleanUpResolvedThemes };
11
+ //# sourceMappingURL=cleanUpResolvedThemes.js.map
@@ -0,0 +1,9 @@
1
+ //#region src/highlighter/themes/constants.ts
2
+ const ResolvedThemes = /* @__PURE__ */ new Map();
3
+ const ResolvingThemes = /* @__PURE__ */ new Map();
4
+ const RegisteredCustomThemes = /* @__PURE__ */ new Map();
5
+ const AttachedThemes = /* @__PURE__ */ new Set();
6
+
7
+ //#endregion
8
+ export { AttachedThemes, RegisteredCustomThemes, ResolvedThemes, ResolvingThemes };
9
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,11 @@
1
+ import { ResolvedThemes } from "./constants.js";
2
+ import { resolveTheme } from "./resolveTheme.js";
3
+
4
+ //#region src/highlighter/themes/getResolvedOrResolveTheme.ts
5
+ function getResolvedOrResolveTheme(themeName) {
6
+ return ResolvedThemes.get(themeName) ?? resolveTheme(themeName);
7
+ }
8
+
9
+ //#endregion
10
+ export { getResolvedOrResolveTheme };
11
+ //# sourceMappingURL=getResolvedOrResolveTheme.js.map
@@ -0,0 +1,16 @@
1
+ import { ResolvedThemes } from "./constants.js";
2
+
3
+ //#region src/highlighter/themes/getResolvedThemes.ts
4
+ function getResolvedThemes(themeNames) {
5
+ const resolvedThemes = [];
6
+ for (const themeName of themeNames) {
7
+ const theme = ResolvedThemes.get(themeName);
8
+ if (theme == null) throw new Error(`getAllResolvedThemes: ${themeName} is unresolved, you must resolve all necessary themes before calling this function`);
9
+ resolvedThemes.push(theme);
10
+ }
11
+ return resolvedThemes;
12
+ }
13
+
14
+ //#endregion
15
+ export { getResolvedThemes };
16
+ //# sourceMappingURL=getResolvedThemes.js.map
@@ -0,0 +1,11 @@
1
+ import { ResolvedThemes } from "./constants.js";
2
+
3
+ //#region src/highlighter/themes/hasResolvedThemes.ts
4
+ function hasResolvedThemes(themeNames) {
5
+ for (const themeName of themeNames) if (!ResolvedThemes.has(themeName)) return false;
6
+ return true;
7
+ }
8
+
9
+ //#endregion
10
+ export { hasResolvedThemes };
11
+ //# sourceMappingURL=hasResolvedThemes.js.map
@@ -0,0 +1,18 @@
1
+ import { registerCustomTheme } from "./registerCustomTheme.js";
2
+ import { formatCSSVariablePrefix } from "../../utils/formatCSSVariablePrefix.js";
3
+ import { createCssVariablesTheme } from "shiki";
4
+
5
+ //#region src/highlighter/themes/registerCustomCSSVariableTheme.ts
6
+ function registerCustomCSSVariableTheme(name, variableDefaults, fontStyle = false) {
7
+ const theme = createCssVariablesTheme({
8
+ name,
9
+ variablePrefix: formatCSSVariablePrefix("global"),
10
+ variableDefaults,
11
+ fontStyle
12
+ });
13
+ registerCustomTheme(name, () => Promise.resolve(theme));
14
+ }
15
+
16
+ //#endregion
17
+ export { registerCustomCSSVariableTheme };
18
+ //# sourceMappingURL=registerCustomCSSVariableTheme.js.map
@@ -0,0 +1,14 @@
1
+ import { RegisteredCustomThemes } from "./constants.js";
2
+
3
+ //#region src/highlighter/themes/registerCustomTheme.ts
4
+ function registerCustomTheme(themeName, loader) {
5
+ if (RegisteredCustomThemes.has(themeName)) {
6
+ console.error("SharedHighlight.registerCustomTheme: theme name already registered", themeName);
7
+ return;
8
+ }
9
+ RegisteredCustomThemes.set(themeName, loader);
10
+ }
11
+
12
+ //#endregion
13
+ export { registerCustomTheme };
14
+ //# sourceMappingURL=registerCustomTheme.js.map
@@ -0,0 +1,35 @@
1
+ import { isWorkerContext } from "../../utils/isWorkerContext.js";
2
+ import { RegisteredCustomThemes, ResolvedThemes, ResolvingThemes } from "./constants.js";
3
+ import { bundledThemes, normalizeTheme } from "shiki";
4
+
5
+ //#region src/highlighter/themes/resolveTheme.ts
6
+ async function resolveTheme(themeName) {
7
+ if (isWorkerContext()) throw new Error(`resolveTheme("${themeName}") cannot be called from a worker context. Themes must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.`);
8
+ const resolver = ResolvingThemes.get(themeName);
9
+ if (resolver != null) return resolver;
10
+ try {
11
+ const loader = RegisteredCustomThemes.get(themeName) ?? bundledThemes[themeName];
12
+ if (loader == null) throw new Error(`resolveTheme: No valid loader for ${themeName}`);
13
+ const resolver$1 = loader().then((result) => {
14
+ return normalizeAndCacheResolvedTheme(themeName, "default" in result ? result.default : result);
15
+ });
16
+ ResolvingThemes.set(themeName, resolver$1);
17
+ const theme = await resolver$1;
18
+ if (theme.name !== themeName) throw new Error(`resolvedTheme: themeName: ${themeName} does not match theme.name: ${theme.name}`);
19
+ ResolvedThemes.set(theme.name, theme);
20
+ return theme;
21
+ } finally {
22
+ ResolvingThemes.delete(themeName);
23
+ }
24
+ }
25
+ function normalizeAndCacheResolvedTheme(themeName, themeData) {
26
+ const resolvedTheme = ResolvedThemes.get(themeName);
27
+ if (resolvedTheme != null) return resolvedTheme;
28
+ themeData = normalizeTheme(themeData);
29
+ ResolvedThemes.set(themeName, themeData);
30
+ return themeData;
31
+ }
32
+
33
+ //#endregion
34
+ export { resolveTheme };
35
+ //# sourceMappingURL=resolveTheme.js.map
@@ -0,0 +1,21 @@
1
+ import { resolveTheme } from "./resolveTheme.js";
2
+ import { getResolvedOrResolveTheme } from "./getResolvedOrResolveTheme.js";
3
+
4
+ //#region src/highlighter/themes/resolveThemes.ts
5
+ async function resolveThemes(themes) {
6
+ const resolvedThemes = [];
7
+ const themesToResolve = [];
8
+ for (const themeName of themes) {
9
+ const themeData = getResolvedOrResolveTheme(themeName) ?? resolveTheme(themeName);
10
+ if ("then" in themeData) themesToResolve.push(themeData);
11
+ else resolvedThemes.push(themeData);
12
+ }
13
+ if (themesToResolve.length > 0) await Promise.all(themesToResolve).then((resolved) => {
14
+ for (const theme of resolved) if (theme != null) resolvedThemes.push(theme);
15
+ });
16
+ return resolvedThemes;
17
+ }
18
+
19
+ //#endregion
20
+ export { resolveThemes };
21
+ //# sourceMappingURL=resolveThemes.js.map
@@ -0,0 +1,84 @@
1
+ import { ALTERNATE_FILE_NAMES_GIT, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, DEFAULT_THEMES, DIFFS_TAG_NAME, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_MODE_FROM_INDEX, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, SPLIT_WITH_NEWLINES, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE } from "./constants.js";
2
+ import { areSelectionsEqual } from "./utils/areSelectionsEqual.js";
3
+ import { LineSelectionManager, pluckLineSelectionOptions } from "./managers/LineSelectionManager.js";
4
+ import { MouseEventManager, pluckMouseEventOptions } from "./managers/MouseEventManager.js";
5
+ import { ResizeManager } from "./managers/ResizeManager.js";
6
+ import { AttachedLanguages, ResolvedLanguages, ResolvingLanguages } from "./highlighter/languages/constants.js";
7
+ import { areLanguagesAttached } from "./highlighter/languages/areLanguagesAttached.js";
8
+ import { attachResolvedLanguages } from "./highlighter/languages/attachResolvedLanguages.js";
9
+ import { cleanUpResolvedLanguages } from "./highlighter/languages/cleanUpResolvedLanguages.js";
10
+ import { isWorkerContext } from "./utils/isWorkerContext.js";
11
+ import { resolveLanguage } from "./highlighter/languages/resolveLanguage.js";
12
+ import { getResolvedOrResolveLanguage } from "./highlighter/languages/getResolvedOrResolveLanguage.js";
13
+ import { AttachedThemes, RegisteredCustomThemes, ResolvedThemes, ResolvingThemes } from "./highlighter/themes/constants.js";
14
+ import { attachResolvedThemes } from "./highlighter/themes/attachResolvedThemes.js";
15
+ import { cleanUpResolvedThemes } from "./highlighter/themes/cleanUpResolvedThemes.js";
16
+ import { resolveTheme } from "./highlighter/themes/resolveTheme.js";
17
+ import { getResolvedOrResolveTheme } from "./highlighter/themes/getResolvedOrResolveTheme.js";
18
+ import { registerCustomTheme } from "./highlighter/themes/registerCustomTheme.js";
19
+ import { disposeHighlighter, getHighlighterIfLoaded, getSharedHighlighter, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, preloadHighlighter } from "./highlighter/shared_highlighter.js";
20
+ import { getThemes } from "./utils/getThemes.js";
21
+ import { areThemesAttached } from "./highlighter/themes/areThemesAttached.js";
22
+ import { hasResolvedThemes } from "./highlighter/themes/hasResolvedThemes.js";
23
+ import { areThemesEqual } from "./utils/areThemesEqual.js";
24
+ import { createHastElement, createIconElement, createTextNodeElement, findCodeElement } from "./utils/hast_utils.js";
25
+ import { createAnnotationElement } from "./utils/createAnnotationElement.js";
26
+ import { getIconForType } from "./utils/getIconForType.js";
27
+ import { createFileHeaderElement } from "./utils/createFileHeaderElement.js";
28
+ import { createPreElement, createPreWrapperProperties } from "./utils/createPreElement.js";
29
+ import { EXTENSION_TO_FILE_FORMAT, extendFileFormatMap, getFiletypeFromFileName } from "./utils/getFiletypeFromFileName.js";
30
+ import { getHighlighterOptions } from "./utils/getHighlighterOptions.js";
31
+ import { getLineAnnotationName } from "./utils/getLineAnnotationName.js";
32
+ import { cleanLastNewline } from "./utils/cleanLastNewline.js";
33
+ import { processLine } from "./utils/processLine.js";
34
+ import { createTransformerWithState } from "./utils/createTransformerWithState.js";
35
+ import { formatCSSVariablePrefix } from "./utils/formatCSSVariablePrefix.js";
36
+ import { getHighlighterThemeStyles } from "./utils/getHighlighterThemeStyles.js";
37
+ import { getLineNodes } from "./utils/getLineNodes.js";
38
+ import { renderFileWithHighlighter } from "./utils/renderFileWithHighlighter.js";
39
+ import { FileRenderer } from "./renderers/FileRenderer.js";
40
+ import { SVGSpriteSheet } from "./sprite.js";
41
+ import { areFilesEqual } from "./utils/areFilesEqual.js";
42
+ import { createAnnotationWrapperNode } from "./utils/createAnnotationWrapperNode.js";
43
+ import { createCodeNode } from "./utils/createCodeNode.js";
44
+ import { createHoverContentNode } from "./utils/createHoverContentNode.js";
45
+ import { createUnsafeCSSStyleNode } from "./utils/createUnsafeCSSStyleNode.js";
46
+ import { wrapCoreCSS, wrapUnsafeCSS } from "./utils/cssWrappers.js";
47
+ import { prerenderHTMLIfNecessary } from "./utils/prerenderHTMLIfNecessary.js";
48
+ import { setPreNodeProperties } from "./utils/setWrapperNodeProps.js";
49
+ import { File } from "./components/File.js";
50
+ import { ScrollSyncManager } from "./managers/ScrollSyncManager.js";
51
+ import { createEmptyRowBuffer } from "./utils/createEmptyRowBuffer.js";
52
+ import { createNoNewlineElement } from "./utils/createNoNewlineElement.js";
53
+ import { createSeparator } from "./utils/createSeparator.js";
54
+ import { getHunkSeparatorSlotName } from "./utils/getHunkSeparatorSlotName.js";
55
+ import { getTotalLineCountFromHunks } from "./utils/getTotalLineCountFromHunks.js";
56
+ import { createDiffSpanDecoration, pushOrJoinSpan } from "./utils/parseDiffDecorations.js";
57
+ import { renderDiffWithHighlighter } from "./utils/renderDiffWithHighlighter.js";
58
+ import { DiffHunksRenderer } from "./renderers/DiffHunksRenderer.js";
59
+ import { parseLineType } from "./utils/parseLineType.js";
60
+ import { parsePatchFiles } from "./utils/parsePatchFiles.js";
61
+ import { parseDiffFromFile } from "./utils/parseDiffFromFile.js";
62
+ import { FileDiff } from "./components/FileDiff.js";
63
+ import { queueRender } from "./managers/UniversalRenderingManager.js";
64
+ import { ShikiStreamTokenizer } from "./shiki-stream/tokenizer.js";
65
+ import { CodeToTokenTransformStream } from "./shiki-stream/stream.js";
66
+ import { createRowNodes } from "./utils/createRowNodes.js";
67
+ import { createSpanFromToken } from "./utils/createSpanNodeFromToken.js";
68
+ import { FileStream } from "./components/FileStream.js";
69
+ import { getResolvedLanguages } from "./highlighter/languages/getResolvedLanguages.js";
70
+ import { hasResolvedLanguages } from "./highlighter/languages/hasResolvedLanguages.js";
71
+ import { resolveLanguages } from "./highlighter/languages/resolveLanguages.js";
72
+ import { getResolvedThemes } from "./highlighter/themes/getResolvedThemes.js";
73
+ import { registerCustomCSSVariableTheme } from "./highlighter/themes/registerCustomCSSVariableTheme.js";
74
+ import { resolveThemes } from "./highlighter/themes/resolveThemes.js";
75
+ import { areObjectsEqual } from "./utils/areObjectsEqual.js";
76
+ import { areOptionsEqual } from "./utils/areOptionsEqual.js";
77
+ import { createStyleElement } from "./utils/createStyleElement.js";
78
+ import { diffAcceptRejectHunk } from "./utils/diffAcceptRejectHunk.js";
79
+ import { getLineEndingType } from "./utils/getLineEndingType.js";
80
+ import { getSingularPatch } from "./utils/getSingularPatch.js";
81
+ import { setLanguageOverride } from "./utils/setLanguageOverride.js";
82
+ import { codeToHtml, createCssVariablesTheme as createCSSVariablesTheme } from "shiki";
83
+
84
+ export { ALTERNATE_FILE_NAMES_GIT, AttachedLanguages, AttachedThemes, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CodeToTokenTransformStream, DEFAULT_THEMES, DIFFS_TAG_NAME, DiffHunksRenderer, EXTENSION_TO_FILE_FORMAT, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, FILE_MODE_FROM_INDEX, File, FileDiff, FileRenderer, FileStream, GIT_DIFF_FILE_BREAK_REGEX, HEADER_METADATA_SLOT_ID, HUNK_HEADER, LineSelectionManager, MouseEventManager, RegisteredCustomThemes, ResizeManager, ResolvedLanguages, ResolvedThemes, ResolvingLanguages, ResolvingThemes, SPLIT_WITH_NEWLINES, SVGSpriteSheet, ScrollSyncManager, ShikiStreamTokenizer, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, areFilesEqual, areLanguagesAttached, areObjectsEqual, areOptionsEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createCSSVariablesTheme, createCodeNode, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createHastElement, createHoverContentNode, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createTransformerWithState, createUnsafeCSSStyleNode, diffAcceptRejectHunk, disposeHighlighter, extendFileFormatMap, findCodeElement, formatCSSVariablePrefix, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, hasResolvedLanguages, hasResolvedThemes, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, pluckLineSelectionOptions, pluckMouseEventOptions, preloadHighlighter, prerenderHTMLIfNecessary, processLine, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomTheme, renderDiffWithHighlighter, renderFileWithHighlighter, resolveLanguage, resolveLanguages, resolveTheme, resolveThemes, setLanguageOverride, setPreNodeProperties, wrapCoreCSS, wrapUnsafeCSS };