feat: ✨ add syntax highlight
by Sivritkin Dmitriy
1@@ -25,19 +25,25 @@
2 "class-variance-authority": "^0.7.0",
3 "clsx": "^2.1.1",
4 "dayjs": "^1.11.11",
5+ "diff2html": "^3.4.48",
6+ "lowlight": "^3.1.0",
7 "lucide-react": "^0.395.0",
8 "next": "14.2.4",
9 "next-themes": "^0.3.0",
10 "octokit": "^4.0.2",
11 "react": "^18",
12+ "react-diff-view": "^3.2.1",
13 "react-dom": "^18",
14+ "react-syntax-highlighter": "^15.5.0",
15 "tailwind-merge": "^2.3.0",
16 "tailwindcss-animate": "^1.0.7"
17 },
18 "devDependencies": {
19+ "@types/lowlight": "^0.0.7",
20 "@types/node": "^20",
21 "@types/react": "^18",
22 "@types/react-dom": "^18",
23+ "@types/react-syntax-highlighter": "^15",
24 "eslint": "^8",
25 "eslint-config-next": "14.2.4",
26 "postcss": "^8",@@ -1,10 +1,12 @@
27 import type { Metadata } from "next";
28 import { Rubik as FontSans } from "next/font/google";
29-import "./globals.css";
30 import { ThemeProvider } from "~/app/providers/theme";
31 import { cn } from "~/shared/lib/utils";
32 import { Header } from "~/components/header";
33
34+import "./globals.css";
35+import "react-diff-view/style/index.css";
36+
37 const fontSans = FontSans({ subsets: ["latin"], variable: "--font-sans" });
38
39 export const metadata: Metadata = {@@ -2,6 +2,7 @@ import { $api } from "~/shared/api";
40 import { Card } from "~/shared/ui/card";
41 import relativeTime from "dayjs/plugin/relativeTime";
42 import dayjs from "dayjs";
43+import { DiffComp } from "~/app/diffcomp";
44
45 dayjs.extend(relativeTime);
46
47@@ -16,11 +17,13 @@ export default async function Home() {
48 repo: "github-commit-explorer",
49 ref: data.data[0].sha,
50 });
51- // .then((response) =>
52- // response?.data?.files?.map((file) => file.patch).join("\n"),
53- // );
54
55- console.log("@files", selCommit.data.files);
56+ const aggregatedDiff = selCommit.data.files?.reduce(
57+ (acc, file) => {
58+ return acc + (file.patch || ""); // Ensure to handle cases where patch might be undefined
59+ },
60+ String.raw``,
61+ );
62
63 return (
64 <div className="container mt-3">
65@@ -43,6 +46,7 @@ export default async function Home() {
66 </div>
67 </Card>
68 ))}
69+ <DiffComp text={aggregatedDiff} />
70 </div>
71 </div>
72 );@@ -12,7 +12,7 @@ __metadata:
73 languageName: node
74 linkType: hard
75
76-"@babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.24.1":
77+"@babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.24.1, @babel/runtime@npm:^7.3.1":
78 version: 7.24.7
79 resolution: "@babel/runtime@npm:7.24.7"
80 dependencies:
81@@ -1107,13 +1107,38 @@ __metadata:
82 languageName: node
83 linkType: hard
84
85+"@types/hast@npm:^2.0.0":
86+ version: 2.3.10
87+ resolution: "@types/hast@npm:2.3.10"
88+ dependencies:
89+ "@types/unist": "npm:^2"
90+ checksum: 10c0/16daac35d032e656defe1f103f9c09c341a6dc553c7ec17b388274076fa26e904a71ea5ea41fd368a6d5f1e9e53be275c80af7942b9c466d8511d261c9529c7e
91+ languageName: node
92+ linkType: hard
93+
94+"@types/hast@npm:^3.0.0":
95+ version: 3.0.4
96+ resolution: "@types/hast@npm:3.0.4"
97+ dependencies:
98+ "@types/unist": "npm:*"
99+ checksum: 10c0/3249781a511b38f1d330fd1e3344eed3c4e7ea8eff82e835d35da78e637480d36fad37a78be5a7aed8465d237ad0446abc1150859d0fde395354ea634decf9f7
100+ languageName: node
101+ linkType: hard
102+
103 "@types/json5@npm:^0.0.29":
104 version: 0.0.29
105 resolution: "@types/json5@npm:0.0.29"
106 checksum: 10c0/6bf5337bc447b706bb5b4431d37686aa2ea6d07cfd6f79cc31de80170d6ff9b1c7384a9c0ccbc45b3f512bae9e9f75c2e12109806a15331dc94e8a8db6dbb4ac
107 languageName: node
108 linkType: hard
109
110+"@types/lowlight@npm:^0.0.7":
111+ version: 0.0.7
112+ resolution: "@types/lowlight@npm:0.0.7"
113+ checksum: 10c0/cea5e6e2a89508a4f1a8f9d09d11d2a8ab6780a9bf79eb979a92d9603162c052427bcddb44dfe7b832516760387c7c7cd13a328663d733187f2ce9093847b5ed
114+ languageName: node
115+ linkType: hard
116+
117 "@types/node@npm:^20":
118 version: 20.14.2
119 resolution: "@types/node@npm:20.14.2"
120@@ -1139,6 +1164,15 @@ __metadata:
121 languageName: node
122 linkType: hard
123
124+"@types/react-syntax-highlighter@npm:^15":
125+ version: 15.5.13
126+ resolution: "@types/react-syntax-highlighter@npm:15.5.13"
127+ dependencies:
128+ "@types/react": "npm:*"
129+ checksum: 10c0/e3bca325b27519fb063d3370de20d311c188ec16ffc01e5bc77bdf2d7320756725ee3d0246922cd5d38b75c5065a1bc43d0194e92ecf6556818714b4ffb0967a
130+ languageName: node
131+ linkType: hard
132+
133 "@types/react@npm:*, @types/react@npm:^18":
134 version: 18.3.3
135 resolution: "@types/react@npm:18.3.3"
136@@ -1149,6 +1183,20 @@ __metadata:
137 languageName: node
138 linkType: hard
139
140+"@types/unist@npm:*":
141+ version: 3.0.2
142+ resolution: "@types/unist@npm:3.0.2"
143+ checksum: 10c0/39f220ce184a773c55c18a127062bfc4d0d30c987250cd59bab544d97be6cfec93717a49ef96e81f024b575718f798d4d329eb81c452fc57d6d051af8b043ebf
144+ languageName: node
145+ linkType: hard
146+
147+"@types/unist@npm:^2":
148+ version: 2.0.10
149+ resolution: "@types/unist@npm:2.0.10"
150+ checksum: 10c0/5f247dc2229944355209ad5c8e83cfe29419fa7f0a6d557421b1985a1500444719cc9efcc42c652b55aab63c931813c88033e0202c1ac684bcd4829d66e44731
151+ languageName: node
152+ linkType: hard
153+
154 "@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0":
155 version: 7.2.0
156 resolution: "@typescript-eslint/parser@npm:7.2.0"
157@@ -1220,6 +1268,13 @@ __metadata:
158 languageName: node
159 linkType: hard
160
161+"abbrev@npm:1":
162+ version: 1.1.1
163+ resolution: "abbrev@npm:1.1.1"
164+ checksum: 10c0/3f762677702acb24f65e813070e306c61fafe25d4b2583f9dfc935131f774863f3addd5741572ed576bd69cabe473c5af18e1e108b829cb7b6b4747884f726e6
165+ languageName: node
166+ linkType: hard
167+
168 "abbrev@npm:^2.0.0":
169 version: 2.0.0
170 resolution: "abbrev@npm:2.0.0"
171@@ -1650,6 +1705,27 @@ __metadata:
172 languageName: node
173 linkType: hard
174
175+"character-entities-legacy@npm:^1.0.0":
176+ version: 1.1.4
177+ resolution: "character-entities-legacy@npm:1.1.4"
178+ checksum: 10c0/ea4ca9c29887335eed86d78fc67a640168342b1274da84c097abb0575a253d1265281a5052f9a863979e952bcc267b4ecaaf4fe233a7e1e0d8a47806c65b96c7
179+ languageName: node
180+ linkType: hard
181+
182+"character-entities@npm:^1.0.0":
183+ version: 1.2.4
184+ resolution: "character-entities@npm:1.2.4"
185+ checksum: 10c0/ad015c3d7163563b8a0ee1f587fb0ef305ef344e9fd937f79ca51cccc233786a01d591d989d5bf7b2e66b528ac9efba47f3b1897358324e69932f6d4b25adfe1
186+ languageName: node
187+ linkType: hard
188+
189+"character-reference-invalid@npm:^1.0.0":
190+ version: 1.1.4
191+ resolution: "character-reference-invalid@npm:1.1.4"
192+ checksum: 10c0/29f05081c5817bd1e975b0bf61e77b60a40f62ad371d0f0ce0fdb48ab922278bc744d1fbe33771dced751887a8403f265ff634542675c8d7375f6ff4811efd0e
193+ languageName: node
194+ linkType: hard
195+
196 "chokidar@npm:^3.5.3":
197 version: 3.6.0
198 resolution: "chokidar@npm:3.6.0"
199@@ -1685,6 +1761,13 @@ __metadata:
200 languageName: node
201 linkType: hard
202
203+"classnames@npm:^2.3.2":
204+ version: 2.5.1
205+ resolution: "classnames@npm:2.5.1"
206+ checksum: 10c0/afff4f77e62cea2d79c39962980bf316bacb0d7c49e13a21adaadb9221e1c6b9d3cdb829d8bb1b23c406f4e740507f37e1dcf506f7e3b7113d17c5bab787aa69
207+ languageName: node
208+ linkType: hard
209+
210 "clean-stack@npm:^2.0.0":
211 version: 2.2.0
212 resolution: "clean-stack@npm:2.2.0"
213@@ -1738,6 +1821,13 @@ __metadata:
214 languageName: node
215 linkType: hard
216
217+"comma-separated-tokens@npm:^1.0.0":
218+ version: 1.0.8
219+ resolution: "comma-separated-tokens@npm:1.0.8"
220+ checksum: 10c0/c3bcfeaa6d50313528a006a40bcc0f9576086665c9b48d4b3a76ddd63e7d6174734386c98be1881cbf6ecfc25e1db61cd775a7b896d2ea7a65de28f83a0f9b17
221+ languageName: node
222+ linkType: hard
223+
224 "commander@npm:^4.0.0":
225 version: 4.1.1
226 resolution: "commander@npm:4.1.1"
227@@ -1876,7 +1966,7 @@ __metadata:
228 languageName: node
229 linkType: hard
230
231-"dequal@npm:^2.0.3":
232+"dequal@npm:^2.0.0, dequal@npm:^2.0.3":
233 version: 2.0.3
234 resolution: "dequal@npm:2.0.3"
235 checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888
236@@ -1890,13 +1980,50 @@ __metadata:
237 languageName: node
238 linkType: hard
239
240+"devlop@npm:^1.0.0":
241+ version: 1.1.0
242+ resolution: "devlop@npm:1.1.0"
243+ dependencies:
244+ dequal: "npm:^2.0.0"
245+ checksum: 10c0/e0928ab8f94c59417a2b8389c45c55ce0a02d9ac7fd74ef62d01ba48060129e1d594501b77de01f3eeafc7cb00773819b0df74d96251cf20b31c5b3071f45c0e
246+ languageName: node
247+ linkType: hard
248+
249 "didyoumean@npm:^1.2.2":
250 version: 1.2.2
251 resolution: "didyoumean@npm:1.2.2"
252 checksum: 10c0/95d0b53d23b851aacff56dfadb7ecfedce49da4232233baecfeecb7710248c4aa03f0aa8995062f0acafaf925adf8536bd7044a2e68316fd7d411477599bc27b
253 languageName: node
254 linkType: hard
255
256+"diff-match-patch@npm:^1.0.5":
257+ version: 1.0.5
258+ resolution: "diff-match-patch@npm:1.0.5"
259+ checksum: 10c0/142b6fad627b9ef309d11bd935e82b84c814165a02500f046e2773f4ea894d10ed3017ac20454900d79d4a0322079f5b713cf0986aaf15fce0ec4a2479980c86
260+ languageName: node
261+ linkType: hard
262+
263+"diff2html@npm:^3.4.48":
264+ version: 3.4.48
265+ resolution: "diff2html@npm:3.4.48"
266+ dependencies:
267+ diff: "npm:5.1.0"
268+ highlight.js: "npm:11.9.0"
269+ hogan.js: "npm:3.0.2"
270+ dependenciesMeta:
271+ highlight.js:
272+ optional: true
273+ checksum: 10c0/38d941cc7a116c003105b66758097ea6ff1b0e73bba12809284fcb2bd916fa16403ee950f13b0f0e065182677085cd5d68e3c98bd6008a8098732f710624b825
274+ languageName: node
275+ linkType: hard
276+
277+"diff@npm:5.1.0":
278+ version: 5.1.0
279+ resolution: "diff@npm:5.1.0"
280+ checksum: 10c0/77a0d9beb9ed54796154ac2511872288432124ac90a1cabb1878783c9b4d81f1847f3b746a0630b1e836181461d2c76e1e6b95559bef86ed16294d114862e364
281+ languageName: node
282+ linkType: hard
283+
284 "dir-glob@npm:^3.0.1":
285 version: 3.0.1
286 resolution: "dir-glob@npm:3.0.1"
287@@ -2443,6 +2570,15 @@ __metadata:
288 languageName: node
289 linkType: hard
290
291+"fault@npm:^1.0.0":
292+ version: 1.0.4
293+ resolution: "fault@npm:1.0.4"
294+ dependencies:
295+ format: "npm:^0.2.0"
296+ checksum: 10c0/c86c11500c1b676787296f31ade8473adcc6784f118f07c1a9429730b6288d0412f96e069ce010aa57e4f65a9cccb5abee8868bbe3c5f10de63b20482c9baebd
297+ languageName: node
298+ linkType: hard
299+
300 "file-entry-cache@npm:^6.0.1":
301 version: 6.0.1
302 resolution: "file-entry-cache@npm:6.0.1"
303@@ -2508,6 +2644,13 @@ __metadata:
304 languageName: node
305 linkType: hard
306
307+"format@npm:^0.2.0":
308+ version: 0.2.2
309+ resolution: "format@npm:0.2.2"
310+ checksum: 10c0/6032ba747541a43abf3e37b402b2f72ee08ebcb58bf84d816443dd228959837f1cddf1e8775b29fa27ff133f4bd146d041bfca5f9cf27f048edf3d493cf8fee6
311+ languageName: node
312+ linkType: hard
313+
314 "fs-minipass@npm:^2.0.0":
315 version: 2.1.0
316 resolution: "fs-minipass@npm:2.1.0"
317@@ -2618,21 +2761,32 @@ __metadata:
318 languageName: node
319 linkType: hard
320
321+"gitdiff-parser@npm:^0.3.1":
322+ version: 0.3.1
323+ resolution: "gitdiff-parser@npm:0.3.1"
324+ checksum: 10c0/13394cec117e2cd0db25e8eaabb13f92122483ee91f74983a5fac0efd672e91fe47c5378938bd325a2d3dbab7c0fd2767b3a834cacdefe4e2c812b507c67bcc6
325+ languageName: node
326+ linkType: hard
327+
328 "github-commit-explorer@workspace:.":
329 version: 0.0.0-use.local
330 resolution: "github-commit-explorer@workspace:."
331 dependencies:
332 "@radix-ui/react-dropdown-menu": "npm:^2.0.6"
333 "@radix-ui/react-icons": "npm:^1.3.0"
334 "@radix-ui/react-slot": "npm:^1.0.2"
335+ "@types/lowlight": "npm:^0.0.7"
336 "@types/node": "npm:^20"
337 "@types/react": "npm:^18"
338 "@types/react-dom": "npm:^18"
339+ "@types/react-syntax-highlighter": "npm:^15"
340 class-variance-authority: "npm:^0.7.0"
341 clsx: "npm:^2.1.1"
342 dayjs: "npm:^1.11.11"
343+ diff2html: "npm:^3.4.48"
344 eslint: "npm:^8"
345 eslint-config-next: "npm:14.2.4"
346+ lowlight: "npm:^3.1.0"
347 lucide-react: "npm:^0.395.0"
348 next: "npm:14.2.4"
349 next-themes: "npm:^0.3.0"
350@@ -2641,7 +2795,9 @@ __metadata:
351 prettier: "npm:^3.3.2"
352 prettier-plugin-tailwindcss: "npm:^0.6.4"
353 react: "npm:^18"
354+ react-diff-view: "npm:^3.2.1"
355 react-dom: "npm:^18"
356+ react-syntax-highlighter: "npm:^15.5.0"
357 tailwind-merge: "npm:^2.3.0"
358 tailwindcss: "npm:^3.4.1"
359 tailwindcss-animate: "npm:^1.0.7"
360@@ -2822,6 +2978,52 @@ __metadata:
361 languageName: node
362 linkType: hard
363
364+"hast-util-parse-selector@npm:^2.0.0":
365+ version: 2.2.5
366+ resolution: "hast-util-parse-selector@npm:2.2.5"
367+ checksum: 10c0/29b7ee77960ded6a99d30c287d922243071cc07b39f2006f203bd08ee54eb8f66bdaa86ef6527477c766e2382d520b60ee4e4087f189888c35d8bcc020173648
368+ languageName: node
369+ linkType: hard
370+
371+"hastscript@npm:^6.0.0":
372+ version: 6.0.0
373+ resolution: "hastscript@npm:6.0.0"
374+ dependencies:
375+ "@types/hast": "npm:^2.0.0"
376+ comma-separated-tokens: "npm:^1.0.0"
377+ hast-util-parse-selector: "npm:^2.0.0"
378+ property-information: "npm:^5.0.0"
379+ space-separated-tokens: "npm:^1.0.0"
380+ checksum: 10c0/f76d9cf373cb075c8523c8ad52709f09f7e02b7c9d3152b8d35c65c265b9f1878bed6023f215a7d16523921036d40a7da292cb6f4399af9b5eccac2a5a5eb330
381+ languageName: node
382+ linkType: hard
383+
384+"highlight.js@npm:11.9.0, highlight.js@npm:~11.9.0":
385+ version: 11.9.0
386+ resolution: "highlight.js@npm:11.9.0"
387+ checksum: 10c0/27cfa8717dc9d200aecbdb383eb122d5f45ce715d2f468583785d36fbfe5076ce033abb02486dc13b407171721cda6f474ed3f3a5a8e8c3d91367fa5f51ee374
388+ languageName: node
389+ linkType: hard
390+
391+"highlight.js@npm:^10.4.1, highlight.js@npm:~10.7.0":
392+ version: 10.7.3
393+ resolution: "highlight.js@npm:10.7.3"
394+ checksum: 10c0/073837eaf816922427a9005c56c42ad8786473dc042332dfe7901aa065e92bc3d94ebf704975257526482066abb2c8677cc0326559bb8621e046c21c5991c434
395+ languageName: node
396+ linkType: hard
397+
398+"hogan.js@npm:3.0.2":
399+ version: 3.0.2
400+ resolution: "hogan.js@npm:3.0.2"
401+ dependencies:
402+ mkdirp: "npm:0.3.0"
403+ nopt: "npm:1.0.10"
404+ bin:
405+ hulk: ./bin/hulk
406+ checksum: 10c0/fa5c9d2eaf3fa712e72e67cce5e3435a1c5823282b81051514aefdca7d4b706cc4dbef7a34be19ee320c6ebaf3687d5781f12bc0aac04d3d902aa26861493679
407+ languageName: node
408+ linkType: hard
409+
410 "http-cache-semantics@npm:^4.1.1":
411 version: 4.1.1
412 resolution: "http-cache-semantics@npm:4.1.1"
413@@ -2943,6 +3145,23 @@ __metadata:
414 languageName: node
415 linkType: hard
416
417+"is-alphabetical@npm:^1.0.0":
418+ version: 1.0.4
419+ resolution: "is-alphabetical@npm:1.0.4"
420+ checksum: 10c0/1505b1de5a1fd74022c05fb21b0e683a8f5229366bac8dc4d34cf6935bcfd104d1125a5e6b083fb778847629f76e5bdac538de5367bdf2b927a1356164e23985
421+ languageName: node
422+ linkType: hard
423+
424+"is-alphanumerical@npm:^1.0.0":
425+ version: 1.0.4
426+ resolution: "is-alphanumerical@npm:1.0.4"
427+ dependencies:
428+ is-alphabetical: "npm:^1.0.0"
429+ is-decimal: "npm:^1.0.0"
430+ checksum: 10c0/d623abae7130a7015c6bf33d99151d4e7005572fd170b86568ff4de5ae86ac7096608b87dd4a1d4dbbd497e392b6396930ba76c9297a69455909cebb68005905
431+ languageName: node
432+ linkType: hard
433+
434 "is-array-buffer@npm:^3.0.4":
435 version: 3.0.4
436 resolution: "is-array-buffer@npm:3.0.4"
437@@ -3024,6 +3243,13 @@ __metadata:
438 languageName: node
439 linkType: hard
440
441+"is-decimal@npm:^1.0.0":
442+ version: 1.0.4
443+ resolution: "is-decimal@npm:1.0.4"
444+ checksum: 10c0/a4ad53c4c5c4f5a12214e7053b10326711f6a71f0c63ba1314a77bd71df566b778e4ebd29f9fb6815f07a4dc50c3767fb19bd6fc9fa05e601410f1d64ffeac48
445+ languageName: node
446+ linkType: hard
447+
448 "is-extglob@npm:^2.1.1":
449 version: 2.1.1
450 resolution: "is-extglob@npm:2.1.1"
451@@ -3065,6 +3291,13 @@ __metadata:
452 languageName: node
453 linkType: hard
454
455+"is-hexadecimal@npm:^1.0.0":
456+ version: 1.0.4
457+ resolution: "is-hexadecimal@npm:1.0.4"
458+ checksum: 10c0/ec4c64e5624c0f240922324bc697e166554f09d3ddc7633fc526084502626445d0a871fbd8cae52a9844e83bd0bb414193cc5a66806d7b2867907003fc70c5ea
459+ languageName: node
460+ linkType: hard
461+
462 "is-lambda@npm:^1.0.1":
463 version: 1.0.1
464 resolution: "is-lambda@npm:1.0.1"
465@@ -3398,6 +3631,13 @@ __metadata:
466 languageName: node
467 linkType: hard
468
469+"lodash@npm:^4.17.21":
470+ version: 4.17.21
471+ resolution: "lodash@npm:4.17.21"
472+ checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c
473+ languageName: node
474+ linkType: hard
475+
476 "loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
477 version: 1.4.0
478 resolution: "loose-envify@npm:1.4.0"
479@@ -3409,6 +3649,27 @@ __metadata:
480 languageName: node
481 linkType: hard
482
483+"lowlight@npm:^1.17.0":
484+ version: 1.20.0
485+ resolution: "lowlight@npm:1.20.0"
486+ dependencies:
487+ fault: "npm:^1.0.0"
488+ highlight.js: "npm:~10.7.0"
489+ checksum: 10c0/728bce6f6fe8b157f48d3324e597f452ce0eed2ccff1c0f41a9047380f944e971eb45bceb31f08fbb64d8f338dabb166f10049b35b92c7ec5cf0241d6adb3dea
490+ languageName: node
491+ linkType: hard
492+
493+"lowlight@npm:^3.1.0":
494+ version: 3.1.0
495+ resolution: "lowlight@npm:3.1.0"
496+ dependencies:
497+ "@types/hast": "npm:^3.0.0"
498+ devlop: "npm:^1.0.0"
499+ highlight.js: "npm:~11.9.0"
500+ checksum: 10c0/ee230ba1da3b339bae640479a09a4c82e5727bae38345421767c6407db4d514c10387300900ba79aa8c64dd79ae7f8d1acff847c01d5b0a20364a5ce04685f27
501+ languageName: node
502+ linkType: hard
503+
504 "lru-cache@npm:^10.0.0, lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0":
505 version: 10.2.2
506 resolution: "lru-cache@npm:10.2.2"
507@@ -3580,6 +3841,13 @@ __metadata:
508 languageName: node
509 linkType: hard
510
511+"mkdirp@npm:0.3.0":
512+ version: 0.3.0
513+ resolution: "mkdirp@npm:0.3.0"
514+ checksum: 10c0/cd9e54878490571df79770de1cdceba48ab6682c004616666d23a38315feaf5822d443aeb500ac298a12d7f6f5e11dc05cea3207d500e547d938218bf22d8629
515+ languageName: node
516+ linkType: hard
517+
518 "mkdirp@npm:^1.0.3":
519 version: 1.0.4
520 resolution: "mkdirp@npm:1.0.4"
521@@ -3725,6 +3993,17 @@ __metadata:
522 languageName: node
523 linkType: hard
524
525+"nopt@npm:1.0.10":
526+ version: 1.0.10
527+ resolution: "nopt@npm:1.0.10"
528+ dependencies:
529+ abbrev: "npm:1"
530+ bin:
531+ nopt: ./bin/nopt.js
532+ checksum: 10c0/ddfbd892116a125fd68849ef564dd5b1f0a5ba0dbbf18782e9499e2efad8f4d3790635b47c6b5d3f7e014069e7b3ce5b8112687e9ae093fcd2678188c866fe28
533+ languageName: node
534+ linkType: hard
535+
536 "nopt@npm:^7.0.0":
537 version: 7.2.1
538 resolution: "nopt@npm:7.2.1"
539@@ -3916,6 +4195,20 @@ __metadata:
540 languageName: node
541 linkType: hard
542
543+"parse-entities@npm:^2.0.0":
544+ version: 2.0.0
545+ resolution: "parse-entities@npm:2.0.0"
546+ dependencies:
547+ character-entities: "npm:^1.0.0"
548+ character-entities-legacy: "npm:^1.0.0"
549+ character-reference-invalid: "npm:^1.0.0"
550+ is-alphanumerical: "npm:^1.0.0"
551+ is-decimal: "npm:^1.0.0"
552+ is-hexadecimal: "npm:^1.0.0"
553+ checksum: 10c0/f85a22c0ea406ff26b53fdc28641f01cc36fa49eb2e3135f02693286c89ef0bcefc2262d99b3688e20aac2a14fd10b75c518583e875c1b9fe3d1f937795e0854
554+ languageName: node
555+ linkType: hard
556+
557 "path-exists@npm:^4.0.0":
558 version: 4.0.0
559 resolution: "path-exists@npm:4.0.0"
560@@ -4159,6 +4452,20 @@ __metadata:
561 languageName: node
562 linkType: hard
563
564+"prismjs@npm:^1.27.0":
565+ version: 1.29.0
566+ resolution: "prismjs@npm:1.29.0"
567+ checksum: 10c0/d906c4c4d01b446db549b4f57f72d5d7e6ccaca04ecc670fb85cea4d4b1acc1283e945a9cbc3d81819084a699b382f970e02f9d1378e14af9808d366d9ed7ec6
568+ languageName: node
569+ linkType: hard
570+
571+"prismjs@npm:~1.27.0":
572+ version: 1.27.0
573+ resolution: "prismjs@npm:1.27.0"
574+ checksum: 10c0/841cbf53e837a42df9155c5ce1be52c4a0a8967ac916b52a27d066181a3578186c634e52d06d0547fb62b65c486b99b95f826dd54966619f9721b884f486b498
575+ languageName: node
576+ linkType: hard
577+
578 "proc-log@npm:^3.0.0":
579 version: 3.0.0
580 resolution: "proc-log@npm:3.0.0"
581@@ -4194,6 +4501,15 @@ __metadata:
582 languageName: node
583 linkType: hard
584
585+"property-information@npm:^5.0.0":
586+ version: 5.6.0
587+ resolution: "property-information@npm:5.6.0"
588+ dependencies:
589+ xtend: "npm:^4.0.0"
590+ checksum: 10c0/d54b77c31dc13bb6819559080b2c67d37d94be7dc271f404f139a16a57aa96fcc0b3ad806d4a5baef9e031744853e4afe3df2e37275aacb1f78079bbb652c5af
591+ languageName: node
592+ linkType: hard
593+
594 "punycode@npm:^2.1.0":
595 version: 2.3.1
596 resolution: "punycode@npm:2.3.1"
597@@ -4208,6 +4524,22 @@ __metadata:
598 languageName: node
599 linkType: hard
600
601+"react-diff-view@npm:^3.2.1":
602+ version: 3.2.1
603+ resolution: "react-diff-view@npm:3.2.1"
604+ dependencies:
605+ classnames: "npm:^2.3.2"
606+ diff-match-patch: "npm:^1.0.5"
607+ gitdiff-parser: "npm:^0.3.1"
608+ lodash: "npm:^4.17.21"
609+ shallow-equal: "npm:^3.1.0"
610+ warning: "npm:^4.0.3"
611+ peerDependencies:
612+ react: ">=16.14.0"
613+ checksum: 10c0/a247d2686174d90a7e3e111c6da62654e47db4f2ee12a08a9116eb5d25f43f0c82b842d801ffcd9c6591b72a8829cd9df6c73ebe8f0f383ac7f5b1163ba83f2d
614+ languageName: node
615+ linkType: hard
616+
617 "react-dom@npm:^18":
618 version: 18.3.1
619 resolution: "react-dom@npm:18.3.1"
620@@ -4279,6 +4611,21 @@ __metadata:
621 languageName: node
622 linkType: hard
623
624+"react-syntax-highlighter@npm:^15.5.0":
625+ version: 15.5.0
626+ resolution: "react-syntax-highlighter@npm:15.5.0"
627+ dependencies:
628+ "@babel/runtime": "npm:^7.3.1"
629+ highlight.js: "npm:^10.4.1"
630+ lowlight: "npm:^1.17.0"
631+ prismjs: "npm:^1.27.0"
632+ refractor: "npm:^3.6.0"
633+ peerDependencies:
634+ react: ">= 0.14.0"
635+ checksum: 10c0/2bf57a1ea151f688efc7eba355677577c9bb55f05f9df7ef86627aae42f63f505486cddf3f4a628aecc51ec75e89beb9533201570d03201c4bf7d69d61d2545d
636+ languageName: node
637+ linkType: hard
638+
639 "react@npm:^18":
640 version: 18.3.1
641 resolution: "react@npm:18.3.1"
642@@ -4321,6 +4668,17 @@ __metadata:
643 languageName: node
644 linkType: hard
645
646+"refractor@npm:^3.6.0":
647+ version: 3.6.0
648+ resolution: "refractor@npm:3.6.0"
649+ dependencies:
650+ hastscript: "npm:^6.0.0"
651+ parse-entities: "npm:^2.0.0"
652+ prismjs: "npm:~1.27.0"
653+ checksum: 10c0/63ab62393c8c2fd7108c2ea1eff721c0ad2a1a6eee60fdd1b47f4bb25cf298667dc97d041405b3e718b0817da12b37a86ed07ebee5bd2ca6405611f1bae456db
654+ languageName: node
655+ linkType: hard
656+
657 "regenerator-runtime@npm:^0.14.0":
658 version: 0.14.1
659 resolution: "regenerator-runtime@npm:0.14.1"
660@@ -4523,6 +4881,13 @@ __metadata:
661 languageName: node
662 linkType: hard
663
664+"shallow-equal@npm:^3.1.0":
665+ version: 3.1.0
666+ resolution: "shallow-equal@npm:3.1.0"
667+ checksum: 10c0/57079f8741a86b25229b58b86df5d503414aca324e486ec7ddb2423db65914c80c8282149ef66a6803092847dc0d840da8fc338ea5027bbf4fc877f944df9bf6
668+ languageName: node
669+ linkType: hard
670+
671 "shebang-command@npm:^2.0.0":
672 version: 2.0.0
673 resolution: "shebang-command@npm:2.0.0"
674@@ -4600,6 +4965,13 @@ __metadata:
675 languageName: node
676 linkType: hard
677
678+"space-separated-tokens@npm:^1.0.0":
679+ version: 1.1.5
680+ resolution: "space-separated-tokens@npm:1.1.5"
681+ checksum: 10c0/3ee0a6905f89e1ffdfe474124b1ade9fe97276a377a0b01350bc079b6ec566eb5b219e26064cc5b7f3899c05bde51ffbc9154290b96eaf82916a1e2c2c13ead9
682+ languageName: node
683+ linkType: hard
684+
685 "sprintf-js@npm:^1.1.3":
686 version: 1.1.3
687 resolution: "sprintf-js@npm:1.1.3"
688@@ -5108,6 +5480,15 @@ __metadata:
689 languageName: node
690 linkType: hard
691
692+"warning@npm:^4.0.3":
693+ version: 4.0.3
694+ resolution: "warning@npm:4.0.3"
695+ dependencies:
696+ loose-envify: "npm:^1.0.0"
697+ checksum: 10c0/aebab445129f3e104c271f1637fa38e55eb25f968593e3825bd2f7a12bd58dc3738bb70dc8ec85826621d80b4acfed5a29ebc9da17397c6125864d72301b937e
698+ languageName: node
699+ linkType: hard
700+
701 "which-boxed-primitive@npm:^1.0.2":
702 version: 1.0.2
703 resolution: "which-boxed-primitive@npm:1.0.2"
704@@ -5224,6 +5605,13 @@ __metadata:
705 languageName: node
706 linkType: hard
707
708+"xtend@npm:^4.0.0":
709+ version: 4.0.2
710+ resolution: "xtend@npm:4.0.2"
711+ checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e
712+ languageName: node
713+ linkType: hard
714+
715 "yallist@npm:^4.0.0":
716 version: 4.0.0
717 resolution: "yallist@npm:4.0.0"