diff --git a/data/tooling-data.yaml b/data/tooling-data.yaml index 2d73ec893..1030deda0 100644 --- a/data/tooling-data.yaml +++ b/data/tooling-data.yaml @@ -3531,3 +3531,21 @@ homepage: 'https://github.com/clairey-zx81/json-model' supportedDialects: draft: ['2020-12'] + +- name: 'schema-envoy' + description: "Converts a JSON Schema into an LLM provider's accepted schema subset (OpenAI strict mode, Gemini's two schema surfaces) and returns a machine-checked report of every value whose accept/reject status changed as a result, with a concrete witness value for each. Also returns a residual validator covering exactly the constraints the provider drops, so those constraints can still be enforced on the response." + toolingTypes: ['util-schema-to-schema'] + languages: ['JavaScript', 'TypeScript'] + environments: ['Node.js'] + dependsOnValidators: ['https://github.com/ajv-validator/ajv'] + maintainers: + - name: 'Tamer Kalla' + username: 'tamerkalla' + platform: 'github' + license: 'MIT' + source: 'https://github.com/tamerkalla/schema-envoy' + homepage: 'https://www.npmjs.com/package/schema-envoy' + supportedDialects: + draft: ['7', '2020-12'] + lastUpdated: '2026-09-09' + diff --git a/lib/calendarUtils.ts b/lib/calendarUtils.ts index 269b7bd0a..be369fa22 100644 --- a/lib/calendarUtils.ts +++ b/lib/calendarUtils.ts @@ -17,7 +17,7 @@ export function printEventsForNextWeeks(icalData: { [x: string]: any }) { const arrayDates = []; if (!icalData) { console.error('iCal data is empty or invalid.'); - return; + return []; } // Calculate the range of dates for the next 12 weeks from today diff --git a/pages/community/index.page.tsx b/pages/community/index.page.tsx index c93b25461..7dde00d58 100644 --- a/pages/community/index.page.tsx +++ b/pages/community/index.page.tsx @@ -39,10 +39,16 @@ export const getStaticProps: GetStaticProps = async () => { .slice(0, 5); const remoteICalUrl = - 'https://calendar.google.com/calendar/ical/json.schema.community%40gmail.com/public/basic.ics'; - const datesInfo = await fetchRemoteICalFile(remoteICalUrl) - .then((icalData: any) => printEventsForNextWeeks(ical.parseICS(icalData))) - .catch((error) => console.error('Error:', error)); + 'https://calendar.google.com/calendar/ical/info%40json-schema.org/public/basic.ics'; + const datesInfo = + (await fetchRemoteICalFile(remoteICalUrl) + .then((icalData: any) => + icalData ? printEventsForNextWeeks(ical.parseICS(icalData)) : [], + ) + .catch((error) => { + console.error('Error:', error); + return []; + })) || []; return { props: { blogPosts, diff --git a/pages/index.page.tsx b/pages/index.page.tsx index 20150514d..913f2a27a 100644 --- a/pages/index.page.tsx +++ b/pages/index.page.tsx @@ -45,9 +45,15 @@ export const getStaticProps: GetStaticProps = async () => { .slice(0, 5); const remoteICalUrl = 'https://calendar.google.com/calendar/ical/info%40json-schema.org/public/basic.ics'; - const datesInfo = await fetchRemoteICalFile(remoteICalUrl) - .then((icalData: any) => printEventsForNextWeeks(ical.parseICS(icalData))) - .catch((error) => console.error('Error:', error)); + const datesInfo = + (await fetchRemoteICalFile(remoteICalUrl) + .then((icalData: any) => + icalData ? printEventsForNextWeeks(ical.parseICS(icalData)) : [], + ) + .catch((error) => { + console.error('Error:', error); + return []; + })) || []; return { props: { blogPosts, datesInfo, fallback: false } }; };