github-weekly-reporter 0.5.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/renderer/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,YAAY,CAAC;AAGpC,OAAO,KAAK,EAAsB,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/renderer/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,YAAY,CAAC;AAGpC,OAAO,KAAK,EAAsB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAuBhE,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,KAAK,OAAO,UAAU,EACtB,UAAS,aAAmD,KAC3D,IAuFF,CAAC"}
|
package/dist/renderer/helpers.js
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
// Handlebars custom helpers
|
|
2
2
|
import Handlebars from "handlebars";
|
|
3
3
|
import { Marked } from "marked";
|
|
4
|
-
import
|
|
4
|
+
import sanitizeHtml from "sanitize-html";
|
|
5
5
|
import { getLocale, formatNumber as fmtNumber } from "../i18n/index.js";
|
|
6
6
|
import { parseLocalDate } from "../collector/date-range.js";
|
|
7
|
-
const sanitize = (html) =>
|
|
7
|
+
const sanitize = (html) => sanitizeHtml(html, {
|
|
8
|
+
allowedTags: sanitizeHtml.defaults.allowedTags.concat(["img"]),
|
|
9
|
+
allowedAttributes: {
|
|
10
|
+
...sanitizeHtml.defaults.allowedAttributes,
|
|
11
|
+
a: ["href", "target", "rel"],
|
|
12
|
+
img: ["src", "alt"],
|
|
13
|
+
},
|
|
14
|
+
});
|
|
8
15
|
const externalLinkRenderer = {
|
|
9
16
|
link({ href, text }) {
|
|
10
17
|
const escaped = href.replace(/"/g, """);
|
|
@@ -38,7 +45,7 @@ export const registerHelpers = (hbs, options = { language: "en", timezone: "UTC"
|
|
|
38
45
|
hbs.registerHelper("userWeek", (username) => locale.userWeek(username));
|
|
39
46
|
// Markdown rendering with HTML sanitization
|
|
40
47
|
// All links get target="_blank" rel="noopener nofollow",
|
|
41
|
-
// and
|
|
48
|
+
// and sanitize-html strips any dangerous tags (script, iframe, etc.)
|
|
42
49
|
hbs.registerHelper("md", (text) => new Handlebars.SafeString(sanitize(marked.parse(text ?? ""))));
|
|
43
50
|
hbs.registerHelper("mdInline", (text) => new Handlebars.SafeString(sanitize(marked.parseInline(text ?? ""))));
|
|
44
51
|
// Escape a string for safe embedding inside a JSON-LD <script> block.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/renderer/helpers.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAE5B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/renderer/helpers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "github-weekly-reporter",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"description": "Generate beautiful weekly GitHub activity reports with optional AI narratives",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -48,9 +48,6 @@
|
|
|
48
48
|
"engines": {
|
|
49
49
|
"node": ">=20"
|
|
50
50
|
},
|
|
51
|
-
"overrides": {
|
|
52
|
-
"jsdom": "~28.0.0"
|
|
53
|
-
},
|
|
54
51
|
"dependencies": {
|
|
55
52
|
"@anthropic-ai/sdk": "^0.82.0",
|
|
56
53
|
"@google/generative-ai": "^0.24.1",
|
|
@@ -58,10 +55,10 @@
|
|
|
58
55
|
"@octokit/graphql": "^9.0.3",
|
|
59
56
|
"commander": "^14.0.3",
|
|
60
57
|
"handlebars": "^4.7.9",
|
|
61
|
-
"isomorphic-dompurify": "^3.7.1",
|
|
62
58
|
"libsodium-wrappers": "^0.8.2",
|
|
63
59
|
"marked": "^17.0.5",
|
|
64
60
|
"openai": "^6.33.0",
|
|
61
|
+
"sanitize-html": "^2.17.2",
|
|
65
62
|
"satori": "^0.26.0",
|
|
66
63
|
"sharp": "^0.34.5",
|
|
67
64
|
"yaml": "^2.8.3"
|
|
@@ -70,6 +67,7 @@
|
|
|
70
67
|
"@eslint/js": "^10.0.1",
|
|
71
68
|
"@types/libsodium-wrappers": "^0.8.2",
|
|
72
69
|
"@types/node": "^25.5.2",
|
|
70
|
+
"@types/sanitize-html": "^2.16.1",
|
|
73
71
|
"@vitest/coverage-v8": "^4.1.2",
|
|
74
72
|
"eslint": "^10.2.0",
|
|
75
73
|
"typescript": "^6.0.2",
|