@chtc/web-components 2.0.1 → 2.0.3
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/Article/{Article.d.ts → components/Article.d.ts} +1 -1
- package/Article/components/Article.d.ts.map +1 -0
- package/Article/{Article.js → components/Article.js} +3 -2
- package/Article/components/Article.js.map +1 -0
- package/{ArticleCard → Article/components}/ArticleCard.d.ts +1 -1
- package/Article/components/ArticleCard.d.ts.map +1 -0
- package/{ArticleCard → Article/components}/ArticleCard.js +1 -1
- package/Article/components/ArticleCard.js.map +1 -0
- package/{HorizontalArticleCard → Article/components}/HorizontalArticleCard.d.ts +1 -1
- package/Article/components/HorizontalArticleCard.d.ts.map +1 -0
- package/{HorizontalArticleCard → Article/components}/HorizontalArticleCard.js +1 -1
- package/{HorizontalArticleCard → Article/components}/HorizontalArticleCard.js.map +1 -1
- package/Article/index.d.ts +8 -1
- package/Article/index.d.ts.map +1 -1
- package/Article/index.js +7 -1
- package/Article/index.js.map +1 -1
- package/Article/types.d.ts +40 -0
- package/Article/types.d.ts.map +1 -0
- package/Article/types.js +2 -0
- package/Article/types.js.map +1 -0
- package/Article/utils/filterArticles.d.ts +9 -0
- package/Article/utils/filterArticles.d.ts.map +1 -0
- package/Article/utils/filterArticles.js +13 -0
- package/Article/utils/filterArticles.js.map +1 -0
- package/Article/utils/getArticle.d.ts +10 -0
- package/Article/utils/getArticle.d.ts.map +1 -0
- package/Article/utils/getArticle.js +34 -0
- package/Article/utils/getArticle.js.map +1 -0
- package/Article/utils/getArticles.d.ts +10 -0
- package/Article/utils/getArticles.d.ts.map +1 -0
- package/Article/utils/getArticles.js +16 -0
- package/Article/utils/getArticles.js.map +1 -0
- package/Article/utils/sortArticles.d.ts +5 -0
- package/Article/utils/sortArticles.d.ts.map +1 -0
- package/Article/utils/sortArticles.js +6 -0
- package/Article/utils/sortArticles.js.map +1 -0
- package/BigNumber/BigNumber.d.ts +1 -1
- package/BigNumber/BigNumber.d.ts.map +1 -1
- package/ColorBar/ColorBar.d.ts +1 -1
- package/ColorBar/ColorBar.d.ts.map +1 -1
- package/ConfirmButton/ConfirmButton.d.ts +1 -1
- package/ConfirmButton/ConfirmButton.d.ts.map +1 -1
- package/Milestone/index.d.ts +4 -0
- package/Milestone/index.d.ts.map +1 -0
- package/Milestone/index.js +3 -0
- package/Milestone/index.js.map +1 -0
- package/Milestone/types.d.ts +18 -0
- package/Milestone/types.d.ts.map +1 -0
- package/Milestone/types.js +2 -0
- package/Milestone/types.js.map +1 -0
- package/Milestone/utils/findCurrentMilestone.d.ts +15 -0
- package/Milestone/utils/findCurrentMilestone.d.ts.map +1 -0
- package/Milestone/utils/findCurrentMilestone.js +18 -0
- package/Milestone/utils/findCurrentMilestone.js.map +1 -0
- package/Milestone/utils/getMilestones.d.ts +16 -0
- package/Milestone/utils/getMilestones.d.ts.map +1 -0
- package/Milestone/utils/getMilestones.js +14 -0
- package/Milestone/utils/getMilestones.js.map +1 -0
- package/PieChart/PieChart.d.ts +1 -1
- package/PieChart/PieChart.d.ts.map +1 -1
- package/Presentation/components/Presentation.d.ts +4 -0
- package/Presentation/components/Presentation.d.ts.map +1 -0
- package/Presentation/{Presentation.js → components/Presentation.js} +3 -3
- package/Presentation/components/Presentation.js.map +1 -0
- package/{PresentationCard → Presentation/components}/PresentationCard.d.ts +3 -3
- package/Presentation/components/PresentationCard.d.ts.map +1 -0
- package/{PresentationCard → Presentation/components}/PresentationCard.js +4 -4
- package/Presentation/components/PresentationCard.js.map +1 -0
- package/Presentation/index.d.ts +6 -1
- package/Presentation/index.d.ts.map +1 -1
- package/Presentation/index.js +5 -1
- package/Presentation/index.js.map +1 -1
- package/Presentation/types.d.ts +36 -0
- package/Presentation/types.d.ts.map +1 -0
- package/Presentation/types.js +2 -0
- package/Presentation/types.js.map +1 -0
- package/Presentation/utils/filterPresentations.d.ts +9 -0
- package/Presentation/utils/filterPresentations.d.ts.map +1 -0
- package/Presentation/utils/filterPresentations.js +13 -0
- package/Presentation/utils/filterPresentations.js.map +1 -0
- package/Presentation/utils/getPresentation.d.ts +10 -0
- package/Presentation/utils/getPresentation.d.ts.map +1 -0
- package/Presentation/utils/getPresentation.js +35 -0
- package/Presentation/utils/getPresentation.js.map +1 -0
- package/Presentation/utils/getPresentations.d.ts +12 -0
- package/Presentation/utils/getPresentations.d.ts.map +1 -0
- package/Presentation/utils/getPresentations.js +18 -0
- package/Presentation/utils/getPresentations.js.map +1 -0
- package/Release/index.d.ts +4 -0
- package/Release/index.d.ts.map +1 -0
- package/Release/index.js +3 -0
- package/Release/index.js.map +1 -0
- package/Release/types.d.ts +26 -0
- package/Release/types.d.ts.map +1 -0
- package/Release/types.js +2 -0
- package/Release/types.js.map +1 -0
- package/Release/utils/getReleases.d.ts +13 -0
- package/Release/utils/getReleases.d.ts.map +1 -0
- package/Release/utils/getReleases.js +17 -0
- package/Release/utils/getReleases.js.map +1 -0
- package/Release/utils/organizeReleases.d.ts +10 -0
- package/Release/utils/organizeReleases.d.ts.map +1 -0
- package/Release/utils/organizeReleases.js +26 -0
- package/Release/utils/organizeReleases.js.map +1 -0
- package/Security/index.d.ts +7 -0
- package/Security/index.d.ts.map +1 -0
- package/Security/index.js +6 -0
- package/Security/index.js.map +1 -0
- package/Security/types.d.ts +53 -0
- package/Security/types.d.ts.map +1 -0
- package/Security/types.js +2 -0
- package/Security/types.js.map +1 -0
- package/Security/utils/getAdvisoryCvss.d.ts +8 -0
- package/Security/utils/getAdvisoryCvss.d.ts.map +1 -0
- package/Security/utils/getAdvisoryCvss.js +18 -0
- package/Security/utils/getAdvisoryCvss.js.map +1 -0
- package/Security/utils/getAdvisoryPublishedTime.d.ts +5 -0
- package/Security/utils/getAdvisoryPublishedTime.d.ts.map +1 -0
- package/Security/utils/getAdvisoryPublishedTime.js +6 -0
- package/Security/utils/getAdvisoryPublishedTime.js.map +1 -0
- package/Security/utils/getPatchedVersions.d.ts +5 -0
- package/Security/utils/getPatchedVersions.d.ts.map +1 -0
- package/Security/utils/getPatchedVersions.js +9 -0
- package/Security/utils/getPatchedVersions.js.map +1 -0
- package/Security/utils/getRecentAdvisories.d.ts +16 -0
- package/Security/utils/getRecentAdvisories.d.ts.map +1 -0
- package/Security/utils/getRecentAdvisories.js +19 -0
- package/Security/utils/getRecentAdvisories.js.map +1 -0
- package/Security/utils/getSecurityAdvisories.d.ts +12 -0
- package/Security/utils/getSecurityAdvisories.d.ts.map +1 -0
- package/Security/utils/getSecurityAdvisories.js +18 -0
- package/Security/utils/getSecurityAdvisories.js.map +1 -0
- package/Staff/components/StaffCard.d.ts +4 -0
- package/Staff/components/StaffCard.d.ts.map +1 -0
- package/Staff/components/StaffCard.js.map +1 -0
- package/Staff/index.d.ts +4 -0
- package/Staff/index.d.ts.map +1 -0
- package/Staff/index.js +3 -0
- package/Staff/index.js.map +1 -0
- package/Staff/types.d.ts +34 -0
- package/Staff/types.d.ts.map +1 -0
- package/Staff/types.js +2 -0
- package/Staff/types.js.map +1 -0
- package/Staff/utils/getStaff.d.ts +19 -0
- package/Staff/utils/getStaff.d.ts.map +1 -0
- package/Staff/utils/getStaff.js +36 -0
- package/Staff/utils/getStaff.js.map +1 -0
- package/Table/Table.d.ts +1 -1
- package/Table/Table.d.ts.map +1 -1
- package/TimeBar/TimeBar.d.ts +1 -1
- package/TimeBar/TimeBar.d.ts.map +1 -1
- package/UW/Banner/Banner.d.ts +1 -1
- package/UW/Banner/Banner.d.ts.map +1 -1
- package/UW/Footer/ContactCard.d.ts +1 -1
- package/UW/Footer/ContactCard.d.ts.map +1 -1
- package/UW/Footer/Footer.d.ts +1 -1
- package/UW/Footer/Footer.d.ts.map +1 -1
- package/UW/Footer/FooterMenu.d.ts +1 -1
- package/UW/Footer/FooterMenu.d.ts.map +1 -1
- package/UW/Footer/FooterSection.d.ts +1 -1
- package/UW/Footer/FooterSection.d.ts.map +1 -1
- package/UW/Footer/MenuLink.d.ts +1 -1
- package/UW/Footer/MenuLink.d.ts.map +1 -1
- package/UW/Footer/SocialLink.d.ts +1 -1
- package/UW/Footer/SocialLink.d.ts.map +1 -1
- package/UW/Logo/Logo.d.ts +1 -1
- package/UW/Logo/Logo.d.ts.map +1 -1
- package/content/index.d.ts +4 -8
- package/content/index.d.ts.map +1 -1
- package/content/index.js +5 -8
- package/content/index.js.map +1 -1
- package/github/getAllPages.d.ts +11 -0
- package/github/getAllPages.d.ts.map +1 -0
- package/github/getAllPages.js +34 -0
- package/github/getAllPages.js.map +1 -0
- package/github/getRawFile.d.ts +7 -0
- package/github/getRawFile.d.ts.map +1 -0
- package/github/getRawFile.js +13 -0
- package/github/getRawFile.js.map +1 -0
- package/github/getRepoPaths.d.ts +7 -0
- package/github/getRepoPaths.d.ts.map +1 -0
- package/github/getRepoPaths.js +10 -0
- package/github/getRepoPaths.js.map +1 -0
- package/github/getTree.d.ts +7 -0
- package/github/getTree.d.ts.map +1 -0
- package/github/getTree.js +11 -0
- package/github/getTree.js.map +1 -0
- package/github/githubFetch.d.ts +13 -0
- package/github/githubFetch.d.ts.map +1 -0
- package/github/githubFetch.js +36 -0
- package/github/githubFetch.js.map +1 -0
- package/github/index.d.ts +10 -0
- package/github/index.d.ts.map +1 -0
- package/github/index.js +9 -0
- package/github/index.js.map +1 -0
- package/github/types.d.ts +32 -0
- package/github/types.d.ts.map +1 -0
- package/github/types.js +2 -0
- package/github/types.js.map +1 -0
- package/index.d.ts +10 -18
- package/index.d.ts.map +1 -1
- package/index.js +12 -18
- package/index.js.map +1 -1
- package/markdownComponents/MarkdownContent.d.ts +1 -1
- package/markdownComponents/MarkdownContent.d.ts.map +1 -1
- package/package.json +13 -7
- package/themes/index.d.ts +3 -0
- package/themes/index.d.ts.map +1 -1
- package/themes/index.js +5 -0
- package/themes/index.js.map +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/types.d.ts +3 -50
- package/types.d.ts.map +1 -1
- package/types.js +1 -1
- package/types.js.map +1 -1
- package/utils/formatLongDate.d.ts +7 -0
- package/utils/formatLongDate.d.ts.map +1 -0
- package/utils/{formatDate.js → formatLongDate.js} +4 -3
- package/utils/formatLongDate.js.map +1 -0
- package/utils/getDateFromPath.d.ts +6 -0
- package/utils/getDateFromPath.d.ts.map +1 -0
- package/utils/getDateFromPath.js +9 -0
- package/utils/getDateFromPath.js.map +1 -0
- package/utils/getSlugFromPath.d.ts +8 -0
- package/utils/getSlugFromPath.d.ts.map +1 -0
- package/utils/getSlugFromPath.js +11 -0
- package/utils/getSlugFromPath.js.map +1 -0
- package/utils/getTagColor.d.ts +3 -0
- package/utils/getTagColor.d.ts.map +1 -0
- package/utils/getTagColor.js +21 -0
- package/utils/getTagColor.js.map +1 -0
- package/utils/index.d.ts +6 -3
- package/utils/index.d.ts.map +1 -1
- package/utils/index.js +6 -3
- package/utils/index.js.map +1 -1
- package/utils/isDatedMarkdown.d.ts +7 -0
- package/utils/isDatedMarkdown.d.ts.map +1 -0
- package/utils/isDatedMarkdown.js +9 -0
- package/utils/isDatedMarkdown.js.map +1 -0
- package/utils/toArray.d.ts +7 -0
- package/utils/toArray.d.ts.map +1 -0
- package/utils/toArray.js +12 -0
- package/utils/toArray.js.map +1 -0
- package/Article/Article.d.ts.map +0 -1
- package/Article/Article.js.map +0 -1
- package/ArticleCard/ArticleCard.d.ts.map +0 -1
- package/ArticleCard/ArticleCard.js.map +0 -1
- package/ArticleCard/index.d.ts +0 -2
- package/ArticleCard/index.d.ts.map +0 -1
- package/ArticleCard/index.js +0 -2
- package/ArticleCard/index.js.map +0 -1
- package/HorizontalArticleCard/HorizontalArticleCard.d.ts.map +0 -1
- package/HorizontalArticleCard/index.d.ts +0 -2
- package/HorizontalArticleCard/index.d.ts.map +0 -1
- package/HorizontalArticleCard/index.js +0 -2
- package/HorizontalArticleCard/index.js.map +0 -1
- package/Presentation/Presentation.d.ts +0 -4
- package/Presentation/Presentation.d.ts.map +0 -1
- package/Presentation/Presentation.js.map +0 -1
- package/PresentationCard/PresentationCard.d.ts.map +0 -1
- package/PresentationCard/PresentationCard.js.map +0 -1
- package/PresentationCard/index.d.ts +0 -2
- package/PresentationCard/index.d.ts.map +0 -1
- package/PresentationCard/index.js +0 -2
- package/PresentationCard/index.js.map +0 -1
- package/StaffCard/StaffCard.d.ts +0 -15
- package/StaffCard/StaffCard.d.ts.map +0 -1
- package/StaffCard/StaffCard.js.map +0 -1
- package/StaffCard/index.d.ts +0 -2
- package/StaffCard/index.d.ts.map +0 -1
- package/StaffCard/index.js +0 -2
- package/StaffCard/index.js.map +0 -1
- package/utils/filterArticles.d.ts +0 -4
- package/utils/filterArticles.d.ts.map +0 -1
- package/utils/filterArticles.js +0 -5
- package/utils/filterArticles.js.map +0 -1
- package/utils/formatDate.d.ts +0 -6
- package/utils/formatDate.d.ts.map +0 -1
- package/utils/formatDate.js.map +0 -1
- package/utils/getArticle.d.ts +0 -4
- package/utils/getArticle.d.ts.map +0 -1
- package/utils/getArticle.js +0 -32
- package/utils/getArticle.js.map +0 -1
- package/utils/getArticles.d.ts +0 -36
- package/utils/getArticles.d.ts.map +0 -1
- package/utils/getArticles.js +0 -35
- package/utils/getArticles.js.map +0 -1
- package/utils/tagColor.d.ts +0 -6
- package/utils/tagColor.d.ts.map +0 -1
- package/utils/tagColor.js +0 -20
- package/utils/tagColor.js.map +0 -1
- /package/{StaffCard → Staff/components}/StaffCard.js +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Card, CardContent, CardMedia, Chip, Link, Stack, Typography, } from "@mui/material";
|
|
3
3
|
import { useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
4
|
-
import MarkdownContent from "
|
|
5
|
-
import smallHeaderComponents from "
|
|
6
|
-
import { getTagColor } from "
|
|
7
|
-
import { formatLongDate } from "
|
|
4
|
+
import MarkdownContent from "../../markdownComponents/MarkdownContent";
|
|
5
|
+
import smallHeaderComponents from "../../smallHeaderComponents/smallHeaderComponents";
|
|
6
|
+
import { getTagColor } from "../../utils/getTagColor";
|
|
7
|
+
import { formatLongDate } from "../../utils/formatLongDate";
|
|
8
8
|
const PresentationCard = ({ presentation: { title, presenter, event, date, description, keywords = [], thumbnail, youtubeId, }, maxDescriptionHeight, href, cardSx, }) => {
|
|
9
9
|
var _a, _b;
|
|
10
10
|
const [showGradient, setShowGradient] = useState(maxDescriptionHeight ? true : false);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PresentationCard.js","sourceRoot":"","sources":["../../../src/Presentation/components/PresentationCard.tsx"],"names":[],"mappings":"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"}
|
package/Presentation/index.d.ts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
export { default } from "./Presentation";
|
|
1
|
+
export { default as Presentation } from "./components/Presentation";
|
|
2
|
+
export { default as PresentationCard, type PresentationCardProps } from "./components/PresentationCard";
|
|
3
|
+
export { getPresentation } from "./utils/getPresentation";
|
|
4
|
+
export { getPresentations } from "./utils/getPresentations";
|
|
5
|
+
export { filterPresentations } from "./utils/filterPresentations";
|
|
6
|
+
export type * from "./types";
|
|
2
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAExG,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,mBAAmB,SAAS,CAAC"}
|
package/Presentation/index.js
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export { default } from "./Presentation";
|
|
1
|
+
export { default as Presentation } from "./components/Presentation";
|
|
2
|
+
export { default as PresentationCard } from "./components/PresentationCard";
|
|
3
|
+
export { getPresentation } from "./utils/getPresentation";
|
|
4
|
+
export { getPresentations } from "./utils/getPresentations";
|
|
5
|
+
export { filterPresentations } from "./utils/filterPresentations";
|
|
2
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAA8B,MAAM,+BAA+B,CAAC;AAExG,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Website } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* A presentation from the shared presentations repository.
|
|
4
|
+
*
|
|
5
|
+
* Every field is optional in the source markdown, so parsers must not assume
|
|
6
|
+
* a key is present. A single presentation with missing frontmatter used to
|
|
7
|
+
* throw and take a whole static export down with it.
|
|
8
|
+
*/
|
|
9
|
+
export interface PresentationData {
|
|
10
|
+
title: string;
|
|
11
|
+
presenter: string;
|
|
12
|
+
event?: string;
|
|
13
|
+
date: string;
|
|
14
|
+
/** Sites this presentation should appear on. */
|
|
15
|
+
publish_on?: Website[];
|
|
16
|
+
/** Defaults to true when absent. */
|
|
17
|
+
published?: boolean;
|
|
18
|
+
description?: string;
|
|
19
|
+
keywords?: string[];
|
|
20
|
+
links?: PresentationLink[];
|
|
21
|
+
thumbnail?: {
|
|
22
|
+
src: string;
|
|
23
|
+
alt: string;
|
|
24
|
+
};
|
|
25
|
+
youtubeId?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface PresentationLink {
|
|
28
|
+
name: string;
|
|
29
|
+
value: string;
|
|
30
|
+
}
|
|
31
|
+
/** A presentation plus the fields derived from its location in the repository. */
|
|
32
|
+
export interface BackendPresentation extends PresentationData {
|
|
33
|
+
slug: string[];
|
|
34
|
+
path: string;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Presentation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;IACvB,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,kFAAkF;AAClF,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Presentation/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Website } from "../../types";
|
|
2
|
+
import type { BackendPresentation } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Keep the published presentations tagged for a site. A presentation with no
|
|
5
|
+
* `published` field counts as published.
|
|
6
|
+
*/
|
|
7
|
+
export declare function filterPresentations(presentations: BackendPresentation[], publish_on: Website): BackendPresentation[];
|
|
8
|
+
export default filterPresentations;
|
|
9
|
+
//# sourceMappingURL=filterPresentations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterPresentations.d.ts","sourceRoot":"","sources":["../../../src/Presentation/utils/filterPresentations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,mBAAmB,EAAE,EACpC,UAAU,EAAE,OAAO,GAClB,mBAAmB,EAAE,CAMvB;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keep the published presentations tagged for a site. A presentation with no
|
|
3
|
+
* `published` field counts as published.
|
|
4
|
+
*/
|
|
5
|
+
export function filterPresentations(presentations, publish_on) {
|
|
6
|
+
return presentations.filter((presentation) => {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
return ((_a = presentation.published) !== null && _a !== void 0 ? _a : true) &&
|
|
9
|
+
((_b = presentation.publish_on) !== null && _b !== void 0 ? _b : []).includes(publish_on);
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
export default filterPresentations;
|
|
13
|
+
//# sourceMappingURL=filterPresentations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterPresentations.js","sourceRoot":"","sources":["../../../src/Presentation/utils/filterPresentations.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,aAAoC,EACpC,UAAmB;IAEnB,OAAO,aAAa,CAAC,MAAM,CACzB,CAAC,YAAY,EAAE,EAAE;;QACf,OAAA,CAAC,MAAA,YAAY,CAAC,SAAS,mCAAI,IAAI,CAAC;YAChC,CAAC,MAAA,YAAY,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;KAAA,CACvD,CAAC;AACJ,CAAC;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { GitHubFetchOptions } from "../../github/types";
|
|
2
|
+
import type { BackendPresentation } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Fetch and parse one presentation from a GitHub repository.
|
|
5
|
+
*
|
|
6
|
+
* @param path Path of the markdown file inside the repo, e.g. `2025-06-04-some-talk.md`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getPresentation(organization: string, repo: string, path: string, branch: string, options?: GitHubFetchOptions): Promise<BackendPresentation>;
|
|
9
|
+
export default getPresentation;
|
|
10
|
+
//# sourceMappingURL=getPresentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPresentation.d.ts","sourceRoot":"","sources":["../../../src/Presentation/utils/getPresentation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI7D,OAAO,KAAK,EAAE,mBAAmB,EAAoB,MAAM,UAAU,CAAC;AAEtE;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAuB9B;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import matter from "@11ty/gray-matter";
|
|
2
|
+
import { getRawFile } from "../../github/getRawFile";
|
|
3
|
+
import { getSlugFromPath } from "../../utils/getSlugFromPath";
|
|
4
|
+
import { toArray } from "../../utils/toArray";
|
|
5
|
+
/**
|
|
6
|
+
* Fetch and parse one presentation from a GitHub repository.
|
|
7
|
+
*
|
|
8
|
+
* @param path Path of the markdown file inside the repo, e.g. `2025-06-04-some-talk.md`.
|
|
9
|
+
*/
|
|
10
|
+
export async function getPresentation(organization, repo, path, branch, options) {
|
|
11
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
12
|
+
const text = await getRawFile(organization, repo, path, branch, options);
|
|
13
|
+
const data = ((_a = matter(text).data) !== null && _a !== void 0 ? _a : {});
|
|
14
|
+
// `?? undefined` collapses YAML nulls (a key written with no value) so the
|
|
15
|
+
// components' default parameters kick in instead of receiving null.
|
|
16
|
+
return {
|
|
17
|
+
title: (_b = data.title) !== null && _b !== void 0 ? _b : "",
|
|
18
|
+
presenter: (_c = data.presenter) !== null && _c !== void 0 ? _c : "",
|
|
19
|
+
event: (_d = data.event) !== null && _d !== void 0 ? _d : undefined,
|
|
20
|
+
date: (_e = data.date) !== null && _e !== void 0 ? _e : "",
|
|
21
|
+
publish_on: toArray(data.publish_on),
|
|
22
|
+
published: (_f = data.published) !== null && _f !== void 0 ? _f : undefined,
|
|
23
|
+
description: (_g = data.description) !== null && _g !== void 0 ? _g : undefined,
|
|
24
|
+
keywords: toArray(data.keywords),
|
|
25
|
+
links: toArray(data.links),
|
|
26
|
+
thumbnail: ((_h = data.image) === null || _h === void 0 ? void 0 : _h.path)
|
|
27
|
+
? { src: data.image.path, alt: (_j = data.image.alt) !== null && _j !== void 0 ? _j : "" }
|
|
28
|
+
: undefined,
|
|
29
|
+
youtubeId: (_k = data.youtube_video_id) !== null && _k !== void 0 ? _k : undefined,
|
|
30
|
+
slug: getSlugFromPath(path),
|
|
31
|
+
path,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export default getPresentation;
|
|
35
|
+
//# sourceMappingURL=getPresentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPresentation.js","sourceRoot":"","sources":["../../../src/Presentation/utils/getPresentation.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,YAAoB,EACpB,IAAY,EACZ,IAAY,EACZ,MAAc,EACd,OAA4B;;IAE5B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,CAAC,MAAA,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,mCAAI,EAAE,CAAwB,CAAC;IAE9D,2EAA2E;IAC3E,oEAAoE;IACpE,OAAO;QACL,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE;QACvB,SAAS,EAAE,MAAA,IAAI,CAAC,SAAS,mCAAI,EAAE;QAC/B,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,SAAS;QAC9B,IAAI,EAAE,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE;QACrB,UAAU,EAAE,OAAO,CAAU,IAAI,CAAC,UAAU,CAAC;QAC7C,SAAS,EAAE,MAAA,IAAI,CAAC,SAAS,mCAAI,SAAS;QACtC,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,SAAS;QAC1C,QAAQ,EAAE,OAAO,CAAS,IAAI,CAAC,QAAQ,CAAC;QACxC,KAAK,EAAE,OAAO,CAAmB,IAAI,CAAC,KAAK,CAAC;QAC5C,SAAS,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,IAAI;YACzB,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,mCAAI,EAAE,EAAE;YACrD,CAAC,CAAC,SAAS;QACb,SAAS,EAAE,MAAA,IAAI,CAAC,gBAAgB,mCAAI,SAAS;QAC7C,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC;QAC3B,IAAI;KACL,CAAC;AACJ,CAAC;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { GitHubFetchOptions } from "../../github/types";
|
|
2
|
+
import type { BackendPresentation } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Fetch and parse every presentation in a GitHub repository.
|
|
5
|
+
*
|
|
6
|
+
* Presentations are the `YYYY-MM-DD-title.md` files at the repository root.
|
|
7
|
+
* Nothing is filtered here; use `filterPresentations` to pick a site's
|
|
8
|
+
* published talks.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getPresentations(organization: string, repo: string, branch: string, options?: GitHubFetchOptions): Promise<BackendPresentation[]>;
|
|
11
|
+
export default getPresentations;
|
|
12
|
+
//# sourceMappingURL=getPresentations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPresentations.d.ts","sourceRoot":"","sources":["../../../src/Presentation/utils/getPresentations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAQhC;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { getRepoPaths } from "../../github/getRepoPaths";
|
|
2
|
+
import { isDatedMarkdown } from "../../utils/isDatedMarkdown";
|
|
3
|
+
import { getPresentation } from "./getPresentation";
|
|
4
|
+
/**
|
|
5
|
+
* Fetch and parse every presentation in a GitHub repository.
|
|
6
|
+
*
|
|
7
|
+
* Presentations are the `YYYY-MM-DD-title.md` files at the repository root.
|
|
8
|
+
* Nothing is filtered here; use `filterPresentations` to pick a site's
|
|
9
|
+
* published talks.
|
|
10
|
+
*/
|
|
11
|
+
export async function getPresentations(organization, repo, branch, options) {
|
|
12
|
+
const paths = await getRepoPaths(organization, repo, branch, options);
|
|
13
|
+
return Promise.all(paths
|
|
14
|
+
.filter(isDatedMarkdown)
|
|
15
|
+
.map((path) => getPresentation(organization, repo, path, branch, options)));
|
|
16
|
+
}
|
|
17
|
+
export default getPresentations;
|
|
18
|
+
//# sourceMappingURL=getPresentations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPresentations.js","sourceRoot":"","sources":["../../../src/Presentation/utils/getPresentations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,YAAoB,EACpB,IAAY,EACZ,MAAc,EACd,OAA4B;IAE5B,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtE,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK;SACF,MAAM,CAAC,eAAe,CAAC;SACvB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAC7E,CAAC;AACJ,CAAC;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Release/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,mBAAmB,SAAS,CAAC"}
|
package/Release/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Release/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2B,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subset of GitHub's release payload that the sites render.
|
|
3
|
+
* https://docs.github.com/en/rest/releases/releases
|
|
4
|
+
*/
|
|
5
|
+
export interface GitHubRelease {
|
|
6
|
+
id: number;
|
|
7
|
+
name: string;
|
|
8
|
+
tag_name: string;
|
|
9
|
+
target_commitish: string;
|
|
10
|
+
body: string;
|
|
11
|
+
html_url: string;
|
|
12
|
+
published_at: string;
|
|
13
|
+
prerelease: boolean;
|
|
14
|
+
draft: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Releases grouped by minor version (`v7.18`), each with its `.0` release and
|
|
18
|
+
* the patch releases that followed it.
|
|
19
|
+
*/
|
|
20
|
+
export type OrganizedReleases = {
|
|
21
|
+
[minorVersion: string]: {
|
|
22
|
+
mainRelease?: GitHubRelease;
|
|
23
|
+
minorReleases: GitHubRelease[];
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Release/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,YAAY,EAAE,MAAM,GAAG;QACtB,WAAW,CAAC,EAAE,aAAa,CAAC;QAC5B,aAAa,EAAE,aAAa,EAAE,CAAC;KAChC,CAAC;CACH,CAAC"}
|
package/Release/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Release/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { GitHubFetchOptions } from "../../github/types";
|
|
2
|
+
import type { GitHubRelease } from "../types";
|
|
3
|
+
export interface GetReleasesOptions extends GitHubFetchOptions {
|
|
4
|
+
/** Include release candidates and other prereleases. Defaults to false. */
|
|
5
|
+
includePrereleases?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Every release of a repository, as GitHub orders them (newest first).
|
|
9
|
+
* Drafts are always dropped; prereleases are dropped unless asked for.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getReleases(organization: string, repo: string, options?: GetReleasesOptions): Promise<GitHubRelease[]>;
|
|
12
|
+
export default getReleases;
|
|
13
|
+
//# sourceMappingURL=getReleases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getReleases.d.ts","sourceRoot":"","sources":["../../../src/Release/utils/getReleases.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAKD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,aAAa,EAAE,CAAC,CAY1B;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { getAllPages } from "../../github/getAllPages";
|
|
2
|
+
/** Tags like `v7.18.0-rc.0` that GitHub may or may not have flagged as prerelease. */
|
|
3
|
+
const RELEASE_CANDIDATE = /-rc(\.|\d|$)/i;
|
|
4
|
+
/**
|
|
5
|
+
* Every release of a repository, as GitHub orders them (newest first).
|
|
6
|
+
* Drafts are always dropped; prereleases are dropped unless asked for.
|
|
7
|
+
*/
|
|
8
|
+
export async function getReleases(organization, repo, options = {}) {
|
|
9
|
+
const { includePrereleases = false, ...fetchOptions } = options;
|
|
10
|
+
const url = `https://api.github.com/repos/${organization}/${repo}/releases`;
|
|
11
|
+
const releases = await getAllPages(url, fetchOptions);
|
|
12
|
+
return releases.filter((release) => !release.draft &&
|
|
13
|
+
(includePrereleases ||
|
|
14
|
+
(!release.prerelease && !RELEASE_CANDIDATE.test(release.tag_name))));
|
|
15
|
+
}
|
|
16
|
+
export default getReleases;
|
|
17
|
+
//# sourceMappingURL=getReleases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getReleases.js","sourceRoot":"","sources":["../../../src/Release/utils/getReleases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AASvD,sFAAsF;AACtF,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,YAAoB,EACpB,IAAY,EACZ,UAA8B,EAAE;IAEhC,MAAM,EAAE,kBAAkB,GAAG,KAAK,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAChE,MAAM,GAAG,GAAG,gCAAgC,YAAY,IAAI,IAAI,WAAW,CAAC;IAE5E,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAgB,GAAG,EAAE,YAAY,CAAC,CAAC;IAErE,OAAO,QAAQ,CAAC,MAAM,CACpB,CAAC,OAAO,EAAE,EAAE,CACV,CAAC,OAAO,CAAC,KAAK;QACd,CAAC,kBAAkB;YACjB,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CACxE,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { GitHubRelease, OrganizedReleases } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Group releases by minor version. Only groups that have a `.0` release are
|
|
4
|
+
* kept, so a stray patch release without its parent doesn't render alone.
|
|
5
|
+
*
|
|
6
|
+
* Tags that aren't `vMAJOR.MINOR.PATCH` are ignored.
|
|
7
|
+
*/
|
|
8
|
+
export declare function organizeReleases(releases: GitHubRelease[]): OrganizedReleases;
|
|
9
|
+
export default organizeReleases;
|
|
10
|
+
//# sourceMappingURL=organizeReleases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organizeReleases.d.ts","sourceRoot":"","sources":["../../../src/Release/utils/organizeReleases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAoB7E;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Group releases by minor version. Only groups that have a `.0` release are
|
|
3
|
+
* kept, so a stray patch release without its parent doesn't render alone.
|
|
4
|
+
*
|
|
5
|
+
* Tags that aren't `vMAJOR.MINOR.PATCH` are ignored.
|
|
6
|
+
*/
|
|
7
|
+
export function organizeReleases(releases) {
|
|
8
|
+
var _a;
|
|
9
|
+
const organized = {};
|
|
10
|
+
for (const release of releases) {
|
|
11
|
+
const match = release.tag_name.match(/^(v\d+\.\d+)\.(\d+)$/);
|
|
12
|
+
if (!match)
|
|
13
|
+
continue;
|
|
14
|
+
const [, minorVersion, patch] = match;
|
|
15
|
+
const group = ((_a = organized[minorVersion]) !== null && _a !== void 0 ? _a : (organized[minorVersion] = { minorReleases: [] }));
|
|
16
|
+
if (patch === "0") {
|
|
17
|
+
group.mainRelease = release;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
group.minorReleases.push(release);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return Object.fromEntries(Object.entries(organized).filter(([, group]) => group.mainRelease));
|
|
24
|
+
}
|
|
25
|
+
export default organizeReleases;
|
|
26
|
+
//# sourceMappingURL=organizeReleases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organizeReleases.js","sourceRoot":"","sources":["../../../src/Release/utils/organizeReleases.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAyB;;IACxD,MAAM,SAAS,GAAsB,EAAE,CAAC;IAExC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,MAAM,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;QACtC,MAAM,KAAK,GAAG,OAAC,SAAS,CAAC,YAAY,qCAAtB,SAAS,CAAC,YAAY,IAAM,EAAE,aAAa,EAAE,EAAE,EAAE,EAAC,CAAC;QAElE,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAClB,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CACnE,CAAC;AACJ,CAAC;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { getSecurityAdvisories } from "./utils/getSecurityAdvisories";
|
|
2
|
+
export { getAdvisoryPublishedTime } from "./utils/getAdvisoryPublishedTime";
|
|
3
|
+
export { getAdvisoryCvss } from "./utils/getAdvisoryCvss";
|
|
4
|
+
export { getRecentAdvisories, RECENT_ADVISORY_WINDOW_DAYS } from "./utils/getRecentAdvisories";
|
|
5
|
+
export { getPatchedVersions } from "./utils/getPatchedVersions";
|
|
6
|
+
export type * from "./types";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,mBAAmB,SAAS,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { getSecurityAdvisories } from "./utils/getSecurityAdvisories";
|
|
2
|
+
export { getAdvisoryPublishedTime } from "./utils/getAdvisoryPublishedTime";
|
|
3
|
+
export { getAdvisoryCvss } from "./utils/getAdvisoryCvss";
|
|
4
|
+
export { getRecentAdvisories, RECENT_ADVISORY_WINDOW_DAYS } from "./utils/getRecentAdvisories";
|
|
5
|
+
export { getPatchedVersions } from "./utils/getPatchedVersions";
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Security/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subset of GitHub's repository security advisory payload that the sites
|
|
3
|
+
* render. https://docs.github.com/en/rest/security-advisories/repository-advisories
|
|
4
|
+
*/
|
|
5
|
+
export interface SecurityAdvisory {
|
|
6
|
+
ghsa_id: string;
|
|
7
|
+
cve_id: string | null;
|
|
8
|
+
html_url: string;
|
|
9
|
+
summary: string;
|
|
10
|
+
description: string | null;
|
|
11
|
+
severity: AdvisorySeverity | null;
|
|
12
|
+
state: "published" | "draft" | "triage" | "closed" | "withdrawn";
|
|
13
|
+
published_at: string | null;
|
|
14
|
+
updated_at: string | null;
|
|
15
|
+
withdrawn_at: string | null;
|
|
16
|
+
identifiers: {
|
|
17
|
+
value: string;
|
|
18
|
+
type: string;
|
|
19
|
+
}[] | null;
|
|
20
|
+
vulnerabilities: AdvisoryVulnerability[] | null;
|
|
21
|
+
cvss_severities: {
|
|
22
|
+
cvss_v3?: AdvisoryCvssScore | null;
|
|
23
|
+
cvss_v4?: AdvisoryCvssScore | null;
|
|
24
|
+
} | null;
|
|
25
|
+
cwes: {
|
|
26
|
+
cwe_id: string;
|
|
27
|
+
name: string;
|
|
28
|
+
}[] | null;
|
|
29
|
+
credits: {
|
|
30
|
+
login: string;
|
|
31
|
+
type: string;
|
|
32
|
+
}[] | null;
|
|
33
|
+
}
|
|
34
|
+
export interface AdvisoryCvssScore {
|
|
35
|
+
vector_string: string | null;
|
|
36
|
+
score: number | null;
|
|
37
|
+
}
|
|
38
|
+
export interface AdvisoryVulnerability {
|
|
39
|
+
package: {
|
|
40
|
+
ecosystem: string;
|
|
41
|
+
name: string | null;
|
|
42
|
+
} | null;
|
|
43
|
+
vulnerable_version_range: string | null;
|
|
44
|
+
patched_versions: string | null;
|
|
45
|
+
}
|
|
46
|
+
export type AdvisorySeverity = "critical" | "high" | "medium" | "low";
|
|
47
|
+
/** The CVSS score to display for an advisory. */
|
|
48
|
+
export interface AdvisoryCvss {
|
|
49
|
+
version: string;
|
|
50
|
+
score: number;
|
|
51
|
+
vector: string | null;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Security/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IACjE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IACtD,eAAe,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC;IAChD,eAAe,EAAE;QACf,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;QACnC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;KACpC,GAAG,IAAI,CAAC;IACT,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IAChD,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3D,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEtE,iDAAiD;AACjD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Security/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AdvisoryCvss, SecurityAdvisory } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* The CVSS score to display, preferring v4 over v3 since that is what GitHub
|
|
4
|
+
* shows on the advisory itself. Returns null when neither is scored.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getAdvisoryCvss(advisory: SecurityAdvisory): AdvisoryCvss | null;
|
|
7
|
+
export default getAdvisoryCvss;
|
|
8
|
+
//# sourceMappingURL=getAdvisoryCvss.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAdvisoryCvss.d.ts","sourceRoot":"","sources":["../../../src/Security/utils/getAdvisoryCvss.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE/D;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAY/E;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The CVSS score to display, preferring v4 over v3 since that is what GitHub
|
|
3
|
+
* shows on the advisory itself. Returns null when neither is scored.
|
|
4
|
+
*/
|
|
5
|
+
export function getAdvisoryCvss(advisory) {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
const v4 = (_a = advisory.cvss_severities) === null || _a === void 0 ? void 0 : _a.cvss_v4;
|
|
8
|
+
if (v4 === null || v4 === void 0 ? void 0 : v4.score) {
|
|
9
|
+
return { version: "4.0", score: v4.score, vector: v4.vector_string };
|
|
10
|
+
}
|
|
11
|
+
const v3 = (_b = advisory.cvss_severities) === null || _b === void 0 ? void 0 : _b.cvss_v3;
|
|
12
|
+
if (v3 === null || v3 === void 0 ? void 0 : v3.score) {
|
|
13
|
+
return { version: "3.1", score: v3.score, vector: v3.vector_string };
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
export default getAdvisoryCvss;
|
|
18
|
+
//# sourceMappingURL=getAdvisoryCvss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAdvisoryCvss.js","sourceRoot":"","sources":["../../../src/Security/utils/getAdvisoryCvss.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,QAA0B;;IACxD,MAAM,EAAE,GAAG,MAAA,QAAQ,CAAC,eAAe,0CAAE,OAAO,CAAC;IAC7C,IAAI,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,KAAK,EAAE,CAAC;QACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,EAAE,GAAG,MAAA,QAAQ,CAAC,eAAe,0CAAE,OAAO,CAAC;IAC7C,IAAI,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,KAAK,EAAE,CAAC;QACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC;IACvE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SecurityAdvisory } from "../types";
|
|
2
|
+
/** Epoch millis an advisory went public; unpublished sorts last (0). */
|
|
3
|
+
export declare function getAdvisoryPublishedTime(advisory: SecurityAdvisory): number;
|
|
4
|
+
export default getAdvisoryPublishedTime;
|
|
5
|
+
//# sourceMappingURL=getAdvisoryPublishedTime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAdvisoryPublishedTime.d.ts","sourceRoot":"","sources":["../../../src/Security/utils/getAdvisoryPublishedTime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,wEAAwE;AACxE,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAE3E;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Epoch millis an advisory went public; unpublished sorts last (0). */
|
|
2
|
+
export function getAdvisoryPublishedTime(advisory) {
|
|
3
|
+
return advisory.published_at ? Date.parse(advisory.published_at) : 0;
|
|
4
|
+
}
|
|
5
|
+
export default getAdvisoryPublishedTime;
|
|
6
|
+
//# sourceMappingURL=getAdvisoryPublishedTime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAdvisoryPublishedTime.js","sourceRoot":"","sources":["../../../src/Security/utils/getAdvisoryPublishedTime.ts"],"names":[],"mappings":"AAEA,wEAAwE;AACxE,MAAM,UAAU,wBAAwB,CAAC,QAA0B;IACjE,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SecurityAdvisory } from "../types";
|
|
2
|
+
/** Non-empty patched version strings across an advisory's affected packages. */
|
|
3
|
+
export declare function getPatchedVersions(advisory: SecurityAdvisory): string[];
|
|
4
|
+
export default getPatchedVersions;
|
|
5
|
+
//# sourceMappingURL=getPatchedVersions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPatchedVersions.d.ts","sourceRoot":"","sources":["../../../src/Security/utils/getPatchedVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAIvE;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Non-empty patched version strings across an advisory's affected packages. */
|
|
2
|
+
export function getPatchedVersions(advisory) {
|
|
3
|
+
var _a;
|
|
4
|
+
return ((_a = advisory.vulnerabilities) !== null && _a !== void 0 ? _a : [])
|
|
5
|
+
.map((vulnerability) => { var _a; return (_a = vulnerability.patched_versions) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
6
|
+
.filter((versions) => Boolean(versions));
|
|
7
|
+
}
|
|
8
|
+
export default getPatchedVersions;
|
|
9
|
+
//# sourceMappingURL=getPatchedVersions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPatchedVersions.js","sourceRoot":"","sources":["../../../src/Security/utils/getPatchedVersions.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,QAA0B;;IAC3D,OAAO,CAAC,MAAA,QAAQ,CAAC,eAAe,mCAAI,EAAE,CAAC;SACpC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,WAAC,OAAA,MAAA,aAAa,CAAC,gBAAgB,0CAAE,IAAI,EAAE,CAAA,EAAA,CAAC;SAC9D,MAAM,CAAC,CAAC,QAAQ,EAAsB,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SecurityAdvisory } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* How recently an advisory must have been published to count as breaking news
|
|
4
|
+
* (e.g. a "New" badge on an advisory list).
|
|
5
|
+
*/
|
|
6
|
+
export declare const RECENT_ADVISORY_WINDOW_DAYS = 7;
|
|
7
|
+
/**
|
|
8
|
+
* Advisories published within the last `windowDays`.
|
|
9
|
+
*
|
|
10
|
+
* `now` is evaluated when the site is built, not when it is viewed, on a
|
|
11
|
+
* statically exported site. Rebuilding several times a day keeps the badge
|
|
12
|
+
* roughly current and lets it age off on its own.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getRecentAdvisories(advisories: SecurityAdvisory[], now?: number, windowDays?: number): SecurityAdvisory[];
|
|
15
|
+
export default getRecentAdvisories;
|
|
16
|
+
//# sourceMappingURL=getRecentAdvisories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRecentAdvisories.d.ts","sourceRoot":"","sources":["../../../src/Security/utils/getRecentAdvisories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,gBAAgB,EAAE,EAC9B,GAAG,GAAE,MAAmB,EACxB,UAAU,GAAE,MAAoC,GAC/C,gBAAgB,EAAE,CAGpB;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { getAdvisoryPublishedTime } from "./getAdvisoryPublishedTime";
|
|
2
|
+
/**
|
|
3
|
+
* How recently an advisory must have been published to count as breaking news
|
|
4
|
+
* (e.g. a "New" badge on an advisory list).
|
|
5
|
+
*/
|
|
6
|
+
export const RECENT_ADVISORY_WINDOW_DAYS = 7;
|
|
7
|
+
/**
|
|
8
|
+
* Advisories published within the last `windowDays`.
|
|
9
|
+
*
|
|
10
|
+
* `now` is evaluated when the site is built, not when it is viewed, on a
|
|
11
|
+
* statically exported site. Rebuilding several times a day keeps the badge
|
|
12
|
+
* roughly current and lets it age off on its own.
|
|
13
|
+
*/
|
|
14
|
+
export function getRecentAdvisories(advisories, now = Date.now(), windowDays = RECENT_ADVISORY_WINDOW_DAYS) {
|
|
15
|
+
const cutoff = now - windowDays * 24 * 60 * 60 * 1000;
|
|
16
|
+
return advisories.filter((advisory) => getAdvisoryPublishedTime(advisory) >= cutoff);
|
|
17
|
+
}
|
|
18
|
+
export default getRecentAdvisories;
|
|
19
|
+
//# sourceMappingURL=getRecentAdvisories.js.map
|