@mintlify/common 1.0.1212 → 1.0.1213

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.
@@ -11,6 +11,7 @@ export declare const getTags: (node: UpdateMDXComponent) => string[] | undefined
11
11
  export declare const getRssPropsData: (updateComponent: UpdateMDXComponent) => {
12
12
  rssTitle: string | undefined;
13
13
  rssDescription: string | undefined;
14
+ rssDate: string | undefined;
14
15
  };
15
16
  export declare const getUpdateTitle: (updateComponent: UpdateMDXComponent) => string | undefined;
16
17
  export declare const getUpdateDescription: (updateComponent: UpdateMDXComponent) => string | undefined;
package/dist/rss/index.js CHANGED
@@ -84,7 +84,25 @@ export const getRssPropsData = (updateComponent) => {
84
84
  const rssData = attributes.find((attribute) => attribute.type === 'mdxJsxAttribute' && attribute.name === 'rss');
85
85
  const title = getObjectExpressionStringProperty('title', rssData);
86
86
  const description = getObjectExpressionStringProperty('description', rssData);
87
- return { rssTitle: title, rssDescription: description };
87
+ const date = parseRssDate(getObjectExpressionStringProperty('date', rssData));
88
+ return { rssTitle: title, rssDescription: description, rssDate: date };
89
+ };
90
+ const parseRssDate = (value) => {
91
+ if (!value)
92
+ return undefined;
93
+ const parsedDate = new Date(value);
94
+ if (isNaN(parsedDate.getTime()))
95
+ return undefined;
96
+ const isoDateMatch = /^(\d{4})-(\d{2})-(\d{2})/.exec(value);
97
+ if (isoDateMatch && !isValidCalendarDate(isoDateMatch))
98
+ return undefined;
99
+ return parsedDate.toISOString();
100
+ };
101
+ const isValidCalendarDate = ([, year, month, day]) => {
102
+ const date = new Date(Date.UTC(Number(year), Number(month) - 1, Number(day)));
103
+ return (date.getUTCFullYear() === Number(year) &&
104
+ date.getUTCMonth() === Number(month) - 1 &&
105
+ date.getUTCDate() === Number(day));
88
106
  };
89
107
  const getUpdateAnchorId = (updateComponent) => {
90
108
  const idAttribute = updateComponent.attributes.find((attribute) => attribute.type === 'mdxJsxAttribute' &&
@@ -379,11 +397,11 @@ export const containsMarkdownHeading = (updateNode, title) => {
379
397
  // soon to be deprecated, use processUpdateNode.ts instead
380
398
  export const processUpdateNode = ({ updateNode, date, }) => {
381
399
  const updates = [];
382
- const nowOrOldDate = date || new Date().toISOString();
400
+ const { rssTitle, rssDescription, rssDate } = getRssPropsData(updateNode);
401
+ const nowOrOldDate = rssDate || date || new Date().toISOString();
383
402
  const containsRss = containsRssProps(updateNode);
384
403
  const containsMarkdown = containsMarkdownGroups(updateNode);
385
404
  if (containsRss) {
386
- const { rssTitle, rssDescription } = getRssPropsData(updateNode);
387
405
  const newUpdates = processUpdatePerNode({
388
406
  updateNode,
389
407
  date: nowOrOldDate,
@@ -1,9 +1,9 @@
1
1
  import { getRssPropsData, processUpdatePerNode } from './index.js';
2
2
  export const processUpdateNode = ({ updateNode, date, }) => {
3
- const { rssTitle, rssDescription } = getRssPropsData(updateNode);
3
+ const { rssTitle, rssDescription, rssDate } = getRssPropsData(updateNode);
4
4
  return processUpdatePerNode({
5
5
  updateNode,
6
- date,
6
+ date: rssDate || date,
7
7
  title: rssTitle,
8
8
  description: rssDescription,
9
9
  });