diff --git a/apps/blog/content/memebers/themezv.mdx b/apps/blog/content/memebers/themezv.mdx index 5e398a60..e6f9b75a 100644 --- a/apps/blog/content/memebers/themezv.mdx +++ b/apps/blog/content/memebers/themezv.mdx @@ -1,4 +1,6 @@ --- username: 'themezv' fullName: 'Artem Zverev' +avatarFileName: 'themezv.jpg' +title: 'Software Engineer' --- diff --git a/apps/blog/contentlayer.config.js b/apps/blog/contentlayer.config.js index 635ef854..e60591d4 100644 --- a/apps/blog/contentlayer.config.js +++ b/apps/blog/contentlayer.config.js @@ -1,12 +1,17 @@ // @ts-check - +import rehypeSlug from 'rehype-slug' +import { addTOCRehypePlugin } from './src/generation-utils/addTOCRehypePlugin' +import rehypeAutolinkHeadings from 'rehype-autolink-headings' import { defineDocumentType, makeSource, defineNestedType } from 'contentlayer/source-files' +import { mapHeadingsToTOC } from './src/generation-utils/mapHeadingsToTOC' const Heading = defineNestedType(() => ({ name: 'Heading', fields: { - level: { type: 'enum', options: ['h1', 'h2', 'h3', 'h4', 'h5'], required: true }, - text: { type: 'string' }, + level: { type: 'number', required: true }, + value: { type: 'string', required: true }, + slug: { type: 'string', required: true }, + children: { type: 'nested', of: Heading }, }, })) @@ -37,13 +42,9 @@ const computedFields = { type: 'string', resolve: doc => extractSlug(doc._raw.flattenedPath), }, - toc: { - type: 'list', - of: Heading, - resolve: () => [{ level: 'h1', text: 'text' }], - }, + toc: { type: '[]', of: Heading, resolve: doc => mapHeadingsToTOC(doc._raw.headings) }, lang: { - type: 'enum', + type: "'en' | 'ru'", options: ['en', 'ru'], required: true, resolve: doc => extractFileLanguage(doc._raw.sourceFileName), @@ -100,45 +101,34 @@ export const Memeber = defineDocumentType(() => ({ fullName: { type: 'string', }, + avatarFileName: { + type: 'string', + required: true, + }, + title: { + type: 'string', + }, }, })) export default makeSource({ contentDirPath: 'content', documentTypes: [BlogPost, Memeber], - // Examples of mdx plugins - // mdx: { - // remarkPlugins: [remarkGfm], - // rehypePlugins: [ - // rehypeSlug, - // [ - // rehypePrettyCode, - // { - // theme: 'one-dark-pro', - // onVisitLine(node) { - // // Prevent lines from collapsing in `display: grid` mode, and allow empty - // // lines to be copy/pasted - // if (node.children.length === 0) { - // node.children = [{ type: 'text', value: ' ' }] - // } - // }, - // onVisitHighlightedLine(node) { - // node.properties.className.push('line--highlighted') - // }, - // onVisitHighlightedWord(node) { - // node.properties.className = ['word--highlighted'] - // }, - // }, - // ], - // [ - // rehypeAutolinkHeadings, - // { - // properties: { - // className: ['anchor'], - // }, - // }, - // ], - // ], - // }, + mdx: { + remarkPlugins: [], + rehypePlugins: [ + rehypeSlug, + [ + rehypeAutolinkHeadings, + { + behavior: 'wrap', + properties: { + className: ['no-underline hover:underline font-bold text-inherit'], + }, + }, + ], + addTOCRehypePlugin, + ], + }, }) diff --git a/apps/blog/package.json b/apps/blog/package.json index 7f518011..c5a3f4fb 100644 --- a/apps/blog/package.json +++ b/apps/blog/package.json @@ -13,13 +13,14 @@ }, "dependencies": { "@radix-ui/react-dropdown-menu": "^2.0.4", - "contentlayer": "^0.3.1", + "clsx": "^1.2.1", + "contentlayer": "^0.3.4", "date-fns": "^2.29.3", "i18next": "^22.4.14", "i18next-resources-to-backend": "^1.1.3", "negotiator": "^0.6.3", "next": "^13.2.4", - "next-contentlayer": "^0.3.1", + "next-contentlayer": "^0.3.4", "react": "^18.2.0", "react-dom": "^18.2.0", "react-i18next": "^12.2.0", @@ -36,9 +37,12 @@ "autoprefixer": "^10.4.14", "jsdom": "^22.1.0", "postcss": "^8.4.21", + "rehype-autolink-headings": "^6.1.1", + "rehype-slug": "^5.1.0", "schema-dts": "^1.1.2", "tailwindcss": "^3.3.1", "typescript": "^5.0.4", + "unist-util-visit": "^4.1.2", "vitest": "^0.32.0" } } diff --git a/apps/blog/public/memebers-avatars/themezv.jpg b/apps/blog/public/memebers-avatars/themezv.jpg new file mode 100644 index 00000000..084f00d1 Binary files /dev/null and b/apps/blog/public/memebers-avatars/themezv.jpg differ diff --git a/apps/blog/src/app/[locale]/posts/[slug]/page.tsx b/apps/blog/src/app/[locale]/posts/[slug]/page.tsx index b9515e63..f70c87c3 100644 --- a/apps/blog/src/app/[locale]/posts/[slug]/page.tsx +++ b/apps/blog/src/app/[locale]/posts/[slug]/page.tsx @@ -15,6 +15,8 @@ import { isPostShouldBePickedByLocale } from '../_utils/isPostShouldBePickedByLo import { allBlogPostsWithTranslates } from '../_content' import { generateFullUrl } from '../../../../utils/generateFullUrl' import { memeberToPostAuthor } from '../../../../utils/memeberToPostAuthor' +import { TOC } from '../../../../components/TOC' +import { PostAuthor } from '../../../../components/PostAuthor' interface BlogProps { params: { @@ -79,7 +81,7 @@ export default function Post({ params }: BlogProps) { } return ( -
+

{formatDate(post.publishedAt, params.locale)}

{post.title}

@@ -92,7 +94,21 @@ export default function Post({ params }: BlogProps) { ) : null} - +
+ +
+ +
+
) } diff --git a/apps/blog/src/app/[locale]/posts/_utils/filterBlogPosts.test.ts b/apps/blog/src/app/[locale]/posts/_utils/filterBlogPosts.test.ts index 6af8e72b..3092f069 100644 --- a/apps/blog/src/app/[locale]/posts/_utils/filterBlogPosts.test.ts +++ b/apps/blog/src/app/[locale]/posts/_utils/filterBlogPosts.test.ts @@ -19,7 +19,7 @@ const posts = [ text: 'text', }, ], - lang: 'ru', + lang: 'ru' as const, translates: {}, author: 'authorNickName', }, @@ -41,7 +41,7 @@ const posts = [ text: 'text', }, ], - lang: 'ru', + lang: 'ru' as const, translates: {}, author: 'authorNickName', }, @@ -63,7 +63,7 @@ const posts = [ text: 'text', }, ], - lang: 'en', + lang: 'en' as const, translates: {}, author: 'authorNickName', }, diff --git a/apps/blog/src/components/PostAuthor/PostAuthor.tsx b/apps/blog/src/components/PostAuthor/PostAuthor.tsx new file mode 100644 index 00000000..24a68ac8 --- /dev/null +++ b/apps/blog/src/components/PostAuthor/PostAuthor.tsx @@ -0,0 +1,19 @@ +import Image from 'next/image' + +interface PostAuthorProps { + avatarUrl: string + username: string + fullName?: string + title?: string +} +export function PostAuthor({ username, fullName, avatarUrl, title }: PostAuthorProps) { + return ( +
+ {fullName +
+ {fullName || username}
+ {title} +
+
+ ) +} diff --git a/apps/blog/src/components/PostAuthor/index.ts b/apps/blog/src/components/PostAuthor/index.ts new file mode 100644 index 00000000..5421a372 --- /dev/null +++ b/apps/blog/src/components/PostAuthor/index.ts @@ -0,0 +1 @@ +export { PostAuthor } from './PostAuthor' diff --git a/apps/blog/src/components/TOC/TOC.tsx b/apps/blog/src/components/TOC/TOC.tsx new file mode 100644 index 00000000..dcf28521 --- /dev/null +++ b/apps/blog/src/components/TOC/TOC.tsx @@ -0,0 +1,38 @@ +import clsx from 'clsx' +import type { TOCTree, TOCTreeItem } from '../../types' +import { useTranslation } from '../../i18n' +import type { Language } from '../../i18n/i18n.settings' + +interface TOCProps { + toc: TOCTree + locale: Language +} +export async function TOC({ toc, locale }: TOCProps) { + const { t } = await useTranslation(locale, 'post') + + return ( + + ) +} + +function HeadingsTree({ item, isRoot }: { item: TOCTreeItem; isRoot?: boolean }) { + return ( +
  • + + {item.value} + + {item.children?.map(itemChildren => ( + + )) ?? null} +
  • + ) +} diff --git a/apps/blog/src/components/TOC/index.ts b/apps/blog/src/components/TOC/index.ts new file mode 100644 index 00000000..e15577f4 --- /dev/null +++ b/apps/blog/src/components/TOC/index.ts @@ -0,0 +1 @@ +export { TOC } from './TOC' diff --git a/apps/blog/src/generation-utils/addTOCRehypePlugin.js b/apps/blog/src/generation-utils/addTOCRehypePlugin.js new file mode 100644 index 00000000..e9cf9b6a --- /dev/null +++ b/apps/blog/src/generation-utils/addTOCRehypePlugin.js @@ -0,0 +1,27 @@ +import { visit } from 'unist-util-visit' + +const headingsSet = new Set(['h2', 'h3', 'h4', 'h5']) + +export function addTOCRehypePlugin() { + /** + * Visit heading elements and collect them to array + * + * @param {import('unist').Node} tree + * @param {{data: {rawDocumentData: { headings: import('../types').HeadingsItem[] }}}} file + * @returns void + */ + return (tree, vFile) => { + vFile.data.rawDocumentData.headings = [] + visit( + tree, + element => headingsSet.has(element.tagName), + node => { + vFile.data.rawDocumentData.headings.push({ + level: +node.tagName[1], + value: node.children[0]?.children[0]?.value, + slug: node.properties.id, + }) + }, + ) + } +} diff --git a/apps/blog/src/generation-utils/mapHeadingsToTOC.js b/apps/blog/src/generation-utils/mapHeadingsToTOC.js new file mode 100644 index 00000000..a68a6af5 --- /dev/null +++ b/apps/blog/src/generation-utils/mapHeadingsToTOC.js @@ -0,0 +1,37 @@ +// @ts-check + +/** + * Map headings array to TOC tree + * + * @param {import('../types').HeadingsItem[]} headings + * @param {import('../types').TOCTree} tree + * @param currentLevel + * @returns {import('../types').TOCTree} TOC tree + * + * @example + * ```js + * mapHeadingsToTOC([{ level: 2, value: 'Заголовок верхнего уровня' }, { level: 3, value: 'Вложенный заголовок'}, { level: 2, value: 'Заголовок верхнего уровня 2' }, { level: 3, value: 'Вложенный заголовок 1' }, {level: 4, value: 'Вложенный заголовок во вложенный заголовок 1'}]) + * // [{level: 2, value: 'Заголовок верхнего уровня', children: [{level: 3, value: 'Вложенный заголовок'}]}, {level: 2, value: 'Заголовок верхнего уровня 2', children: [{depth: 3, value: 'Вложенный заголовок 1', children: [{depth: 4, value: 'Вложенный заголовок во вложенный заголовок 1'}] }]}] + * ``` + */ +export function mapHeadingsToTOC(headings, tree = [], currentLevel = 2) { + while (headings.length > 0) { + /** + * @type {import('../types').TOCTreeItem} + */ + const heading = headings[0] + if (heading.level < currentLevel) { + return tree + } + heading.children = [] + if (heading.level === currentLevel) { + headings.shift() + tree.push({ ...heading, children: mapHeadingsToTOC(headings, heading.children, currentLevel + 1) }) + } + if (heading.level > currentLevel) { + mapHeadingsToTOC(headings, heading.children, currentLevel + 1) + } + } + + return tree +} diff --git a/apps/blog/src/generation-utils/mapHeadingsToTOC.test.ts b/apps/blog/src/generation-utils/mapHeadingsToTOC.test.ts new file mode 100644 index 00000000..3d0a42b6 --- /dev/null +++ b/apps/blog/src/generation-utils/mapHeadingsToTOC.test.ts @@ -0,0 +1,153 @@ +import { mapHeadingsToTOC } from './mapHeadingsToTOC' + +describe('mapHeadingsToTOC', () => { + it('Should return empty array for empty headings', () => { + expect(mapHeadingsToTOC([])).toEqual([]) + }) + + it('Should return flat toc for h2 only', () => { + expect( + mapHeadingsToTOC([ + { + value: 'heading 1', + slug: 'heading-1', + level: 2, + }, + { + value: 'heading 2', + slug: 'heading-2', + level: 2, + }, + ]), + ).toEqual([ + { + value: 'heading 1', + slug: 'heading-1', + level: 2, + children: [], + }, + { + value: 'heading 2', + slug: 'heading-2', + level: 2, + children: [], + }, + ]) + }) + + it('Should return nested toc for h2 and h3', () => { + expect( + mapHeadingsToTOC([ + { + value: 'heading 1', + slug: 'heading-1', + level: 2, + }, + { + value: 'heading 2', + slug: 'heading-2', + level: 3, + }, + ]), + ).toEqual([ + { + value: 'heading 1', + slug: 'heading-1', + level: 2, + children: [ + { + value: 'heading 2', + slug: 'heading-2', + level: 3, + children: [], + }, + ], + }, + ]) + }) + + it('Should return nested toc for h2, h3, h4', () => { + expect( + mapHeadingsToTOC([ + { + value: 'heading 1', + slug: 'heading-1', + level: 2, + }, + { + value: 'heading 2', + slug: 'heading-2', + level: 3, + }, + { + value: 'heading 3', + slug: 'heading-3', + level: 4, + }, + ]), + ).toEqual([ + { + value: 'heading 1', + slug: 'heading-1', + level: 2, + children: [ + { + value: 'heading 2', + slug: 'heading-2', + level: 3, + children: [ + { + value: 'heading 3', + slug: 'heading-3', + level: 4, + children: [], + }, + ], + }, + ], + }, + ]) + }) + + it('Should return flat and nested toc', () => { + expect( + mapHeadingsToTOC([ + { + value: 'heading 1', + slug: 'heading-1', + level: 2, + }, + { + value: 'heading 2', + slug: 'heading-2', + level: 3, + }, + { + value: 'heading 3', + slug: 'heading-3', + level: 3, + }, + ]), + ).toEqual([ + { + value: 'heading 1', + slug: 'heading-1', + level: 2, + children: [ + { + value: 'heading 2', + slug: 'heading-2', + level: 3, + children: [], + }, + { + value: 'heading 3', + slug: 'heading-3', + level: 3, + children: [], + }, + ], + }, + ]) + }) +}) diff --git a/apps/blog/src/i18n/i18next.d.ts b/apps/blog/src/i18n/i18next.d.ts index f76f9847..cd4e827f 100644 --- a/apps/blog/src/i18n/i18next.d.ts +++ b/apps/blog/src/i18n/i18next.d.ts @@ -2,6 +2,7 @@ import 'i18next' import type { defaultNS } from './i18n.settings' import type commonNS from './locales/en/common.json' import type postsNs from './locales/en/posts.json' +import type postNs from './locales/en/post.json' declare module 'i18next' { // Extend CustomTypeOptions @@ -12,6 +13,7 @@ declare module 'i18next' { resources: { common: typeof commonNS posts: typeof postsNs + post: typeof postNs } } } diff --git a/apps/blog/src/i18n/locales/en/post.json b/apps/blog/src/i18n/locales/en/post.json new file mode 100644 index 00000000..08dfa84b --- /dev/null +++ b/apps/blog/src/i18n/locales/en/post.json @@ -0,0 +1,3 @@ +{ + "tocHeader": "Contents" +} diff --git a/apps/blog/src/i18n/locales/ru/post.json b/apps/blog/src/i18n/locales/ru/post.json new file mode 100644 index 00000000..ae0b308d --- /dev/null +++ b/apps/blog/src/i18n/locales/ru/post.json @@ -0,0 +1,3 @@ +{ + "tocHeader": "Оглавление" +} diff --git a/apps/blog/src/types.d.ts b/apps/blog/src/types.d.ts new file mode 100644 index 00000000..ed12dac1 --- /dev/null +++ b/apps/blog/src/types.d.ts @@ -0,0 +1,11 @@ +export type HeadingsItem = { + level: number + value: string + slug: string +} + +export type TOCTreeItem = HeadingsItem & { + children?: TOCTreeItem[] +} + +export type TOCTree = TOCTreeItem[] diff --git a/apps/blog/src/utils/memeberToPostAuthor.ts b/apps/blog/src/utils/memeberToPostAuthor.ts index a9ca2f2d..776a039e 100644 --- a/apps/blog/src/utils/memeberToPostAuthor.ts +++ b/apps/blog/src/utils/memeberToPostAuthor.ts @@ -5,5 +5,6 @@ export function memeberToPostAuthor(memeber: Memeber): Person { return { '@type': 'Person', name: memeber.fullName, + jobTitle: memeber.title, } } diff --git a/apps/blog/tailwind.config.js b/apps/blog/tailwind.config.js index bd505918..8d444f85 100644 --- a/apps/blog/tailwind.config.js +++ b/apps/blog/tailwind.config.js @@ -3,7 +3,7 @@ const defaultTheme = require('tailwindcss/defaultTheme') /** @type {import('tailwindcss').Config} */ module.exports = { - content: ['./src/**/*.{js,ts,jsx,tsx}'], + content: ['./src/**/*.{js,ts,jsx,tsx}', './contentlayer.config.js'], theme: { extend: { colors: { @@ -35,6 +35,12 @@ module.exports = { animation: { slideDown: 'slideDown 0.3s ease-in-out', }, + listStyleType: { + dash: '"—"', + }, + letterSpacing: { + listDash: '0.5rem', + }, }, }, diff --git a/yarn.lock b/yarn.lock index d05f29ef..2b94b3a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1920,109 +1920,109 @@ __metadata: languageName: node linkType: hard -"@contentlayer/cli@npm:0.3.1": - version: 0.3.1 - resolution: "@contentlayer/cli@npm:0.3.1" +"@contentlayer/cli@npm:0.3.4": + version: 0.3.4 + resolution: "@contentlayer/cli@npm:0.3.4" dependencies: - "@contentlayer/core": 0.3.1 - "@contentlayer/utils": 0.3.1 - clipanion: ^3.2.0 + "@contentlayer/core": 0.3.4 + "@contentlayer/utils": 0.3.4 + clipanion: ^3.2.1 typanion: ^3.12.1 - checksum: 4723ffb794bb28ec1685e9720c3ccbd109fb10cd64b8de406edea3508f4870ae81b1a0cd336b02ef53eb14c584b99931025a8a9988498ad7a2e6cf170afbd063 + checksum: af4abb096d4ee4b9bbdd53ffa767d662c19cf960fceabe4085d3f3328269f764159750a6004e0a791163ea280223185fb3912be9833cc8484f01b16808fe9af8 languageName: node linkType: hard -"@contentlayer/client@npm:0.3.1": - version: 0.3.1 - resolution: "@contentlayer/client@npm:0.3.1" +"@contentlayer/client@npm:0.3.4": + version: 0.3.4 + resolution: "@contentlayer/client@npm:0.3.4" dependencies: - "@contentlayer/core": 0.3.1 - checksum: ac416f2963c47b8932368ab4099cd8dcc76930818a15612c66a6502111136ab2f8b07c5e5add6682cea43b117716dcb181ebed35e9412c040b209cfb3eb69bce + "@contentlayer/core": 0.3.4 + checksum: ccb591c83a90176554b016613a0390f9093180c96f9f2d1fd30d157b59626ba5f845d4d1d0013cccb835b5ae05104b2134d116cbfdd63dc47839a8e880134585 languageName: node linkType: hard -"@contentlayer/core@npm:0.3.1": - version: 0.3.1 - resolution: "@contentlayer/core@npm:0.3.1" +"@contentlayer/core@npm:0.3.4": + version: 0.3.4 + resolution: "@contentlayer/core@npm:0.3.4" dependencies: - "@contentlayer/utils": 0.3.1 + "@contentlayer/utils": 0.3.4 camel-case: ^4.1.2 comment-json: ^4.2.3 - esbuild: 0.17.x + esbuild: 0.17.x || 0.18.x gray-matter: ^4.0.3 mdx-bundler: ^9.2.1 rehype-stringify: ^9.0.3 remark-frontmatter: ^4.0.1 - remark-parse: ^10.0.1 + remark-parse: ^10.0.2 remark-rehype: ^10.1.0 source-map-support: ^0.5.21 - type-fest: ^3.7.1 + type-fest: ^3.12.0 unified: ^10.1.2 peerDependencies: - esbuild: 0.17.x + esbuild: 0.17.x || 0.18.x markdown-wasm: 1.x peerDependenciesMeta: esbuild: optional: true markdown-wasm: optional: true - checksum: a588c49d977472c9894e85991a72b2488cc569fc4fbc8089ff75d9e5e50bdbda1dde9233ca143ca74b656844ee24019475a6e86422c0572288ade9849dedbbbd + checksum: 3baf8cb7e581acf754976502a1a809b7c0ef9ef6e3e173eae83ff053f2dbee14da1d73220251eaae185fabaff89d8f6067a79cbbaa2a1419a72bd5b1d42609b3 languageName: node linkType: hard -"@contentlayer/source-files@npm:0.3.1": - version: 0.3.1 - resolution: "@contentlayer/source-files@npm:0.3.1" +"@contentlayer/source-files@npm:0.3.4": + version: 0.3.4 + resolution: "@contentlayer/source-files@npm:0.3.4" dependencies: - "@contentlayer/core": 0.3.1 - "@contentlayer/utils": 0.3.1 + "@contentlayer/core": 0.3.4 + "@contentlayer/utils": 0.3.4 chokidar: ^3.5.3 fast-glob: ^3.2.12 gray-matter: ^4.0.3 imagescript: ^1.2.16 micromatch: ^4.0.5 - ts-pattern: ^4.2.2 + ts-pattern: ^4.3.0 unified: ^10.1.2 - yaml: ^1.10.2 + yaml: ^2.3.1 zod: ^3.21.4 - checksum: 38e007836b8f886379854cd932592e943c4822a7cd009c5534915107844d893b52b8008be73a7c4e32d9fef6619716eddafdb16aee34c39e8bfe2768ce304deb + checksum: 1dab61004b3792d018c4322943f9e523eea697a32dac129f6c469393a97e711cddf74220a85d58855ba6c67fd15d4c31de091533549abd9f57f706ed025fbbf7 languageName: node linkType: hard -"@contentlayer/source-remote-files@npm:0.3.1": - version: 0.3.1 - resolution: "@contentlayer/source-remote-files@npm:0.3.1" +"@contentlayer/source-remote-files@npm:0.3.4": + version: 0.3.4 + resolution: "@contentlayer/source-remote-files@npm:0.3.4" dependencies: - "@contentlayer/core": 0.3.1 - "@contentlayer/source-files": 0.3.1 - "@contentlayer/utils": 0.3.1 - checksum: 0fdcc81d8e856c0494ff9314de4d57658d0549b60933d3d9247c795a72ff35b870841e43936b92319109fc340194125343d1592ecd806afe8ad99e6f87c3608c + "@contentlayer/core": 0.3.4 + "@contentlayer/source-files": 0.3.4 + "@contentlayer/utils": 0.3.4 + checksum: 88ea1aeba765a910d34edd39274726e1baa8235fcad918dfdb8139f3f08a75a68aca07898e8827b132680867605070ad3ba84fbd5d9c6db1e05f926b11354cc4 languageName: node linkType: hard -"@contentlayer/utils@npm:0.3.1": - version: 0.3.1 - resolution: "@contentlayer/utils@npm:0.3.1" +"@contentlayer/utils@npm:0.3.4": + version: 0.3.4 + resolution: "@contentlayer/utils@npm:0.3.4" dependencies: - "@effect-ts/core": ^0.60.2 - "@effect-ts/otel": ^0.14.0 - "@effect-ts/otel-exporter-trace-otlp-grpc": ^0.14.0 - "@effect-ts/otel-sdk-trace-node": ^0.14.0 - "@js-temporal/polyfill": ^0.4.3 - "@opentelemetry/api": ~1.1.0 - "@opentelemetry/core": ~1.5.0 - "@opentelemetry/exporter-trace-otlp-grpc": ~0.31.0 - "@opentelemetry/resources": ~1.5.0 - "@opentelemetry/sdk-trace-base": ~1.5.0 - "@opentelemetry/sdk-trace-node": ~1.5.0 - "@opentelemetry/semantic-conventions": ~1.5.0 + "@effect-ts/core": ^0.60.5 + "@effect-ts/otel": ^0.15.1 + "@effect-ts/otel-exporter-trace-otlp-grpc": ^0.15.1 + "@effect-ts/otel-sdk-trace-node": ^0.15.1 + "@js-temporal/polyfill": ^0.4.4 + "@opentelemetry/api": ^1.4.1 + "@opentelemetry/core": ^1.13.0 + "@opentelemetry/exporter-trace-otlp-grpc": ^0.39.1 + "@opentelemetry/resources": ^1.13.0 + "@opentelemetry/sdk-trace-base": ^1.13.0 + "@opentelemetry/sdk-trace-node": ^1.13.0 + "@opentelemetry/semantic-conventions": ^1.13.0 chokidar: ^3.5.3 hash-wasm: ^4.9.0 inflection: ^2.0.1 - memfs: ^3.4.13 - oo-ascii-tree: ^1.79.0 - ts-pattern: ^4.2.2 - type-fest: ^3.7.1 + memfs: ^3.5.1 + oo-ascii-tree: ^1.84.0 + ts-pattern: ^4.3.0 + type-fest: ^3.12.0 peerDependenciesMeta: "@effect-ts/core": optional: true @@ -2030,7 +2030,7 @@ __metadata: optional: true "@effect-ts/otel-node": optional: true - checksum: 47b38e0c9d85cd16650a921544c7c2cf06710f5026bf9f647f155e477f15d8a25c94099314cd63efd0ab04a52adadb9173eaa3934aee0129229e09f552deb7c7 + checksum: 2bde956fd2e45b53b7d9af1a3390e772603bf66cf73b9f98d1c44f779d5d41d963cad5868e219350098e902c51dc677c798e57d3a6f3c0f0d61478b2984e21fa languageName: node linkType: hard @@ -2057,7 +2057,7 @@ __metadata: languageName: node linkType: hard -"@effect-ts/core@npm:^0.60.2": +"@effect-ts/core@npm:^0.60.5": version: 0.60.5 resolution: "@effect-ts/core@npm:0.60.5" dependencies: @@ -2066,45 +2066,45 @@ __metadata: languageName: node linkType: hard -"@effect-ts/otel-exporter-trace-otlp-grpc@npm:^0.14.0": - version: 0.14.1 - resolution: "@effect-ts/otel-exporter-trace-otlp-grpc@npm:0.14.1" +"@effect-ts/otel-exporter-trace-otlp-grpc@npm:^0.15.1": + version: 0.15.1 + resolution: "@effect-ts/otel-exporter-trace-otlp-grpc@npm:0.15.1" dependencies: - "@effect-ts/otel": ^0.14.1 + "@effect-ts/otel": ^0.15.1 peerDependencies: "@effect-ts/core": ^0.60.2 - "@opentelemetry/api": ^1.1.0 - "@opentelemetry/core": ^1.5.0 - "@opentelemetry/exporter-trace-otlp-grpc": ^0.31.0 - "@opentelemetry/sdk-trace-base": ^1.5.0 - checksum: 76257d24657ba771a1adeaec3d78b73eb5d09c875f50c805c72799aae437e3dec2c4b64ddddff5a851b0cb9a3d64643b977e64284bcd0a00dcf58400bdfe9ac7 + "@opentelemetry/api": ^1.4.0 + "@opentelemetry/core": ^1.13.0 + "@opentelemetry/exporter-trace-otlp-grpc": ^0.39.0 + "@opentelemetry/sdk-trace-base": ^1.13.0 + checksum: 5f81693c725f9bdf515374752437c0d20d65b123ca2235ba9cedf477308e43c115edb8b8b4934e19d8e89f52307d5001efe6299e4ca43734459fc37aab9bad30 languageName: node linkType: hard -"@effect-ts/otel-sdk-trace-node@npm:^0.14.0": - version: 0.14.1 - resolution: "@effect-ts/otel-sdk-trace-node@npm:0.14.1" +"@effect-ts/otel-sdk-trace-node@npm:^0.15.1": + version: 0.15.1 + resolution: "@effect-ts/otel-sdk-trace-node@npm:0.15.1" dependencies: - "@effect-ts/otel": ^0.14.1 + "@effect-ts/otel": ^0.15.1 peerDependencies: "@effect-ts/core": ^0.60.2 - "@opentelemetry/api": ^1.1.0 - "@opentelemetry/core": ^1.5.0 - "@opentelemetry/sdk-trace-base": ^1.5.0 - "@opentelemetry/sdk-trace-node": ^1.5.0 - checksum: 9ae114ae15d5503a8219314e8228fb4094aee9dc7933259308cefbd16f44d60b490ec99b247049ba2b1f960f772d94b996ee6c64eb79e9a03f538f8c0d64945b + "@opentelemetry/api": ^1.4.0 + "@opentelemetry/core": ^1.13.0 + "@opentelemetry/sdk-trace-base": ^1.13.0 + "@opentelemetry/sdk-trace-node": ^1.13.0 + checksum: 70a5ba0ced3d15a4d66bb49f914822d1e1e9f4028da2cb64fa9d27d2596ab3ed59b2d889d0fedd87383749861f8dcf72b993a543150f4a5c8b24faa93350dc39 languageName: node linkType: hard -"@effect-ts/otel@npm:^0.14.0, @effect-ts/otel@npm:^0.14.1": - version: 0.14.1 - resolution: "@effect-ts/otel@npm:0.14.1" +"@effect-ts/otel@npm:^0.15.1": + version: 0.15.1 + resolution: "@effect-ts/otel@npm:0.15.1" peerDependencies: "@effect-ts/core": ^0.60.2 - "@opentelemetry/api": ^1.1.0 - "@opentelemetry/core": ^1.5.0 - "@opentelemetry/sdk-trace-base": ^1.5.0 - checksum: c39f352f6e4bb7bfe6edf9228d53e2e81e645843fd62c2e961620efab2cb92fead3d2efb228e1b93b6454e4739d74227bf8e3561731b9ee2f1640e09f824c818 + "@opentelemetry/api": ^1.4.0 + "@opentelemetry/core": ^1.13.0 + "@opentelemetry/sdk-trace-base": ^1.13.0 + checksum: ee48c0b0a82026776f96f7b915a0f56d0df885d7cc16f8160d07508aade4f9a99766a3f31f85cb111044370fc4051a62ee6c29552fbcedee466b0f1f98b14d80 languageName: node linkType: hard @@ -2308,6 +2308,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/android-arm64@npm:0.18.11" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/android-arm@npm:0.17.19" @@ -2315,6 +2322,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/android-arm@npm:0.18.11" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/android-x64@npm:0.17.19" @@ -2322,6 +2336,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/android-x64@npm:0.18.11" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/darwin-arm64@npm:0.17.19" @@ -2329,6 +2350,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/darwin-arm64@npm:0.18.11" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/darwin-x64@npm:0.17.19" @@ -2336,6 +2364,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/darwin-x64@npm:0.18.11" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/freebsd-arm64@npm:0.17.19" @@ -2343,6 +2378,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/freebsd-arm64@npm:0.18.11" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/freebsd-x64@npm:0.17.19" @@ -2350,6 +2392,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/freebsd-x64@npm:0.18.11" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-arm64@npm:0.17.19" @@ -2357,6 +2406,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/linux-arm64@npm:0.18.11" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-arm@npm:0.17.19" @@ -2364,6 +2420,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/linux-arm@npm:0.18.11" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-ia32@npm:0.17.19" @@ -2371,6 +2434,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/linux-ia32@npm:0.18.11" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-loong64@npm:0.17.19" @@ -2378,6 +2448,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/linux-loong64@npm:0.18.11" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-mips64el@npm:0.17.19" @@ -2385,6 +2462,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/linux-mips64el@npm:0.18.11" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-ppc64@npm:0.17.19" @@ -2392,6 +2476,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/linux-ppc64@npm:0.18.11" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-riscv64@npm:0.17.19" @@ -2399,6 +2490,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/linux-riscv64@npm:0.18.11" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-s390x@npm:0.17.19" @@ -2406,6 +2504,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/linux-s390x@npm:0.18.11" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-x64@npm:0.17.19" @@ -2413,6 +2518,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/linux-x64@npm:0.18.11" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/netbsd-x64@npm:0.17.19" @@ -2420,6 +2532,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/netbsd-x64@npm:0.18.11" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/openbsd-x64@npm:0.17.19" @@ -2427,6 +2546,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/openbsd-x64@npm:0.18.11" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/sunos-x64@npm:0.17.19" @@ -2434,6 +2560,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/sunos-x64@npm:0.18.11" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-arm64@npm:0.17.19" @@ -2441,6 +2574,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/win32-arm64@npm:0.18.11" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-ia32@npm:0.17.19" @@ -2448,6 +2588,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/win32-ia32@npm:0.18.11" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-x64@npm:0.17.19" @@ -2455,6 +2602,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.18.11": + version: 0.18.11 + resolution: "@esbuild/win32-x64@npm:0.18.11" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^2.0.0": version: 2.0.0 resolution: "@eslint/eslintrc@npm:2.0.0" @@ -2529,28 +2683,13 @@ __metadata: languageName: node linkType: hard -"@grpc/grpc-js@npm:^1.5.9": - version: 1.8.12 - resolution: "@grpc/grpc-js@npm:1.8.12" +"@grpc/grpc-js@npm:^1.7.1": + version: 1.8.17 + resolution: "@grpc/grpc-js@npm:1.8.17" dependencies: "@grpc/proto-loader": ^0.7.0 "@types/node": ">=12.12.47" - checksum: bf6135f8c87d6008f42452a7234b9bfa4bb558dd553a77dcd90cd2fbc9c8f01585504788e479a2805e4ab5f0d4e6d3480f7096324b3ab5db9e492e674b8c375a - languageName: node - linkType: hard - -"@grpc/proto-loader@npm:^0.6.9": - version: 0.6.13 - resolution: "@grpc/proto-loader@npm:0.6.13" - dependencies: - "@types/long": ^4.0.1 - lodash.camelcase: ^4.3.0 - long: ^4.0.0 - protobufjs: ^6.11.3 - yargs: ^16.2.0 - bin: - proto-loader-gen-types: build/bin/proto-loader-gen-types.js - checksum: 863417e961cfa3acb579124f5c2bbfbeaee4d507c33470dc0af3b6792892c68706c6c61e26629f5ff3d28cb631dc4f0a00233323135e322406e3cb19a0b92823 + checksum: 0ac8cd7342a33d7e507ec0ebb470721ae84eb964fd164e4b7b829cb35774c09df158124cbce859d9398c9a015f0e29d2308a3a17be35d54e030a7dc091e7e9a4 languageName: node linkType: hard @@ -2946,13 +3085,13 @@ __metadata: languageName: node linkType: hard -"@js-temporal/polyfill@npm:^0.4.3": - version: 0.4.3 - resolution: "@js-temporal/polyfill@npm:0.4.3" +"@js-temporal/polyfill@npm:^0.4.4": + version: 0.4.4 + resolution: "@js-temporal/polyfill@npm:0.4.4" dependencies: - jsbi: ^4.1.0 - tslib: ^2.3.1 - checksum: 10966b0c33f9674dbd78e1fc7ff1692b902756d9204a2ce4843a5593f23459ae87e8c66634450c7e02fb8d42bb466306cc43d8f72d5da8f989065108bd78832c + jsbi: ^4.3.0 + tslib: ^2.4.1 + checksum: 034c00fdc1aa1a1d96f786ebe568f9f85309bcdcdf1d3fc7f7f670b43a64cafb648739e2363af950685a6d7569fe46c88ee8e28054c7d9b47199015d94a3b8a6 languageName: node linkType: hard @@ -3060,22 +3199,26 @@ __metadata: "@vitejs/plugin-react": ^4.0.0 "@vitest/coverage-v8": ^0.32.0 autoprefixer: ^10.4.14 - contentlayer: ^0.3.1 + clsx: ^1.2.1 + contentlayer: ^0.3.4 date-fns: ^2.29.3 i18next: ^22.4.14 i18next-resources-to-backend: ^1.1.3 jsdom: ^22.1.0 negotiator: ^0.6.3 next: ^13.2.4 - next-contentlayer: ^0.3.1 + next-contentlayer: ^0.3.4 postcss: ^8.4.21 react: ^18.2.0 react-dom: ^18.2.0 react-i18next: ^12.2.0 + rehype-autolink-headings: ^6.1.1 + rehype-slug: ^5.1.0 schema-dts: ^1.1.2 server-only: ^0.0.1 tailwindcss: ^3.3.1 typescript: ^5.0.4 + unist-util-visit: ^4.1.2 vitest: ^0.32.0 languageName: unknown linkType: soft @@ -3648,187 +3791,235 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/api-metrics@npm:0.31.0": - version: 0.31.0 - resolution: "@opentelemetry/api-metrics@npm:0.31.0" +"@opentelemetry/api-logs@npm:0.39.1": + version: 0.39.1 + resolution: "@opentelemetry/api-logs@npm:0.39.1" dependencies: "@opentelemetry/api": ^1.0.0 - checksum: 696192c97afb382950064471b0ce90172bae73c6ee47ccd09b59fc0d0e9c84f4685284e633c4338584de91cab07c7848661640eee4ec1f43687ce9953d220f5f + checksum: 96efdaa9f203010c3d1aa1fb679660a943d0b48c1a9c8f2a9c2cb5b1ff3bf62aa38cb45f79adefd887fd7ea6d4fbcc82e229c458d7630695db970396e2a97f1c languageName: node linkType: hard -"@opentelemetry/api@npm:^1.0.0": +"@opentelemetry/api@npm:^1.0.0, @opentelemetry/api@npm:^1.4.1": version: 1.4.1 resolution: "@opentelemetry/api@npm:1.4.1" checksum: e783c40d1a518abf9c4c5d65223237c1392cd9a6c53ac6e2c3ef0c05ff7266e3dfc4fd9874316dae0dcb7a97950878deb513bcbadfaad653d48f0215f2a0911b languageName: node linkType: hard -"@opentelemetry/api@npm:~1.1.0": - version: 1.1.0 - resolution: "@opentelemetry/api@npm:1.1.0" - checksum: 8be8e8dd20a473639a9bb9b4185b8984f537f86e49829ba1d4c4e909f4480309cb22696b7eb7122882878dac0b5f4ce799d66ed72248568bafed085d6269e1bc +"@opentelemetry/context-async-hooks@npm:1.14.0": + version: 1.14.0 + resolution: "@opentelemetry/context-async-hooks@npm:1.14.0" + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.5.0" + checksum: 05e93ac1624bfaa8acd848220b1a35aeb76a08c1c81ddcab39ccbf824f8a54556d14c3cf259a526e45669d0165b82212b5b772c50a5d74252b2ceacd0068326f languageName: node linkType: hard -"@opentelemetry/context-async-hooks@npm:1.5.0": - version: 1.5.0 - resolution: "@opentelemetry/context-async-hooks@npm:1.5.0" +"@opentelemetry/core@npm:1.13.0": + version: 1.13.0 + resolution: "@opentelemetry/core@npm:1.13.0" + dependencies: + "@opentelemetry/semantic-conventions": 1.13.0 peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.2.0" - checksum: d5359ae48d5622efab20cd03fa9ec534c04f3612dc6bd8a8a20ac7fb4ed885fff37f57222400f81b1a9298237e7d618eeaaf46c1f581323b53ae8f1e6ef0232f + "@opentelemetry/api": ">=1.0.0 <1.5.0" + checksum: a69916bcb710f1241e98a58ac5f5dfbc3372fdcd6cb2a4b2d33cdeb941765ecbdeea029f60f650a5743a56f583b0f06b672566467b89db84a24f1304bf2e5205 languageName: node linkType: hard -"@opentelemetry/core@npm:1.5.0, @opentelemetry/core@npm:~1.5.0": - version: 1.5.0 - resolution: "@opentelemetry/core@npm:1.5.0" +"@opentelemetry/core@npm:1.14.0, @opentelemetry/core@npm:^1.13.0": + version: 1.14.0 + resolution: "@opentelemetry/core@npm:1.14.0" dependencies: - "@opentelemetry/semantic-conventions": 1.5.0 + "@opentelemetry/semantic-conventions": 1.14.0 peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.2.0" - checksum: a191583afaf731930e3332b4e584541c3486121e6855c5c1dc40a522aabe27c5a1eede13760b9669063d8196f4dc93dbd3c4c1b7fe19e0aeaa1a433a8bb7d1c8 + "@opentelemetry/api": ">=1.0.0 <1.5.0" + checksum: 061e6f3bee492e020915427da94da902846ed6ee922bdb21a70563e5fbd3ebb39e8e3ae6eb1071eb775d27ca31093929ab65fe8abc81228042be8d9a3c96bac8 languageName: node linkType: hard -"@opentelemetry/exporter-trace-otlp-grpc@npm:~0.31.0": - version: 0.31.0 - resolution: "@opentelemetry/exporter-trace-otlp-grpc@npm:0.31.0" +"@opentelemetry/exporter-trace-otlp-grpc@npm:^0.39.1": + version: 0.39.1 + resolution: "@opentelemetry/exporter-trace-otlp-grpc@npm:0.39.1" dependencies: - "@grpc/grpc-js": ^1.5.9 - "@grpc/proto-loader": ^0.6.9 - "@opentelemetry/core": 1.5.0 - "@opentelemetry/otlp-grpc-exporter-base": 0.31.0 - "@opentelemetry/otlp-transformer": 0.31.0 - "@opentelemetry/resources": 1.5.0 - "@opentelemetry/sdk-trace-base": 1.5.0 + "@grpc/grpc-js": ^1.7.1 + "@opentelemetry/core": 1.13.0 + "@opentelemetry/otlp-grpc-exporter-base": 0.39.1 + "@opentelemetry/otlp-transformer": 0.39.1 + "@opentelemetry/resources": 1.13.0 + "@opentelemetry/sdk-trace-base": 1.13.0 peerDependencies: "@opentelemetry/api": ^1.0.0 - checksum: a8881dd7a244b2ed351d0bce947b139f7daad108483c02b11ffb3b63da85213c4704abcff152df2d5f09cb498cc7fb7857bb40db9621b199e1d9899eb34b3669 + checksum: 2b75379f68bfdf4e66ec44dfc404a26481b3c1be318dd159a996448a9938161f0ac340bfac632076cfc55056f11d8db83e30f45a872ae3490122e0e179553c06 languageName: node linkType: hard -"@opentelemetry/otlp-exporter-base@npm:0.31.0": - version: 0.31.0 - resolution: "@opentelemetry/otlp-exporter-base@npm:0.31.0" +"@opentelemetry/otlp-exporter-base@npm:0.39.1": + version: 0.39.1 + resolution: "@opentelemetry/otlp-exporter-base@npm:0.39.1" dependencies: - "@opentelemetry/core": 1.5.0 + "@opentelemetry/core": 1.13.0 peerDependencies: "@opentelemetry/api": ^1.0.0 - checksum: 463501c3eed563652518808553e08c218e65e7f3420733b4a328c2a18b056bb50193fa63950eeb3e2fc0cd16d15678ebb4d15ca9319a844c3cb7aefa7cce8a28 + checksum: df3adcf43df07134f93e4f3ebc9d14ccf8e45b1af85734cbb0b4710437f762ea47d429caa30860048c979e648a9c4a0215e6738c907afa18dc3248a8f7c43f77 languageName: node linkType: hard -"@opentelemetry/otlp-grpc-exporter-base@npm:0.31.0": - version: 0.31.0 - resolution: "@opentelemetry/otlp-grpc-exporter-base@npm:0.31.0" +"@opentelemetry/otlp-grpc-exporter-base@npm:0.39.1": + version: 0.39.1 + resolution: "@opentelemetry/otlp-grpc-exporter-base@npm:0.39.1" dependencies: - "@grpc/grpc-js": ^1.5.9 - "@grpc/proto-loader": ^0.6.9 - "@opentelemetry/core": 1.5.0 - "@opentelemetry/otlp-exporter-base": 0.31.0 + "@grpc/grpc-js": ^1.7.1 + "@opentelemetry/core": 1.13.0 + "@opentelemetry/otlp-exporter-base": 0.39.1 + protobufjs: ^7.2.2 peerDependencies: "@opentelemetry/api": ^1.0.0 - checksum: 280631364a3736f064679122df910e9aca8d804e5581e12b2f284e9ea74bdee52606cb845877221d7188fcd86f74d42850dc145cfd948aa5ddebfcb842bc02f7 + checksum: 30eece12d4ddc60daf4d3e07e4fd37b4e3a0d9c4f5c7b8a774b78f5b23ab5da503fabc27b28c927f0897420a6c89213a4a5e3b77adf94620722bc4eb6ddbeaac languageName: node linkType: hard -"@opentelemetry/otlp-transformer@npm:0.31.0": - version: 0.31.0 - resolution: "@opentelemetry/otlp-transformer@npm:0.31.0" +"@opentelemetry/otlp-transformer@npm:0.39.1": + version: 0.39.1 + resolution: "@opentelemetry/otlp-transformer@npm:0.39.1" dependencies: - "@opentelemetry/api-metrics": 0.31.0 - "@opentelemetry/core": 1.5.0 - "@opentelemetry/resources": 1.5.0 - "@opentelemetry/sdk-metrics-base": 0.31.0 - "@opentelemetry/sdk-trace-base": 1.5.0 + "@opentelemetry/api-logs": 0.39.1 + "@opentelemetry/core": 1.13.0 + "@opentelemetry/resources": 1.13.0 + "@opentelemetry/sdk-logs": 0.39.1 + "@opentelemetry/sdk-metrics": 1.13.0 + "@opentelemetry/sdk-trace-base": 1.13.0 peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.2.0" - checksum: a07f9c6b3e472a9580d2391c1b125a57b834ce0a96dcd95e09caa225fbaf22c5871c2cf831a356152868fe0759ffb760374f433c98b2d91af388574564f98dcb + "@opentelemetry/api": ">=1.3.0 <1.5.0" + checksum: e8501850fcb00db463fa1bfcf5667b05b3a7c9ba3a951d44308d0a8139022b086298c84b087238492c5ef1103ea0df8027723173b8c542d3a0bc9c33fd5cc04e languageName: node linkType: hard -"@opentelemetry/propagator-b3@npm:1.5.0": - version: 1.5.0 - resolution: "@opentelemetry/propagator-b3@npm:1.5.0" +"@opentelemetry/propagator-b3@npm:1.14.0": + version: 1.14.0 + resolution: "@opentelemetry/propagator-b3@npm:1.14.0" dependencies: - "@opentelemetry/core": 1.5.0 + "@opentelemetry/core": 1.14.0 peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.2.0" - checksum: 6f225a1714e0f2936c857261cddb4162e21a32eb786115140cefc9104a1135b0429bbb9de385135ad7d9266ec93347d6f63de34ed9a7e8e763f5391a5cd3e380 + "@opentelemetry/api": ">=1.0.0 <1.5.0" + checksum: a61c05d5818f736e00713e33f2d8e55ccae0133a45b8844da06909742afe59bbf0abdca0831bcbc4043b95fa035bc031e4a63e112f817498db2f7d1ad698754c languageName: node linkType: hard -"@opentelemetry/propagator-jaeger@npm:1.5.0": - version: 1.5.0 - resolution: "@opentelemetry/propagator-jaeger@npm:1.5.0" +"@opentelemetry/propagator-jaeger@npm:1.14.0": + version: 1.14.0 + resolution: "@opentelemetry/propagator-jaeger@npm:1.14.0" dependencies: - "@opentelemetry/core": 1.5.0 + "@opentelemetry/core": 1.14.0 peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.2.0" - checksum: cdd9bc5b97995ff2183c8b0d74dcc8d7d28aeef353a4d37aeeb8f2b5f5e5ffd3d5562b6ee60444f514d874387c0293c8636e2335fb1702dff716cb93d1f46141 + "@opentelemetry/api": ">=1.0.0 <1.5.0" + checksum: 85b09c0e80b039af956326e9317c95b7274198a1f1a798b4456c84c79df5456c63f6b62a80fd797e0091150ebee775bf58f2a69236a6115fadafbc3e41eb06d4 languageName: node linkType: hard -"@opentelemetry/resources@npm:1.5.0, @opentelemetry/resources@npm:~1.5.0": - version: 1.5.0 - resolution: "@opentelemetry/resources@npm:1.5.0" +"@opentelemetry/resources@npm:1.13.0": + version: 1.13.0 + resolution: "@opentelemetry/resources@npm:1.13.0" dependencies: - "@opentelemetry/core": 1.5.0 - "@opentelemetry/semantic-conventions": 1.5.0 + "@opentelemetry/core": 1.13.0 + "@opentelemetry/semantic-conventions": 1.13.0 peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.2.0" - checksum: 0fd743f121522da1b75310795eb12bc65ce092ccf6178bac6cfc8ad5122064701bfca25cad341701adaff0bfc153522631ea9be93f5b27d2730111f8cb807d61 + "@opentelemetry/api": ">=1.0.0 <1.5.0" + checksum: ef0a11596f27b5e1c13b74357da06c5c2725a1056df0a583562dbcc739927ad85bb8bdec4e01f4b43f348b448c0146c033b135840a7d388b75cc751a33a6364e languageName: node linkType: hard -"@opentelemetry/sdk-metrics-base@npm:0.31.0": - version: 0.31.0 - resolution: "@opentelemetry/sdk-metrics-base@npm:0.31.0" +"@opentelemetry/resources@npm:1.14.0, @opentelemetry/resources@npm:^1.13.0": + version: 1.14.0 + resolution: "@opentelemetry/resources@npm:1.14.0" dependencies: - "@opentelemetry/api-metrics": 0.31.0 - "@opentelemetry/core": 1.5.0 - "@opentelemetry/resources": 1.5.0 + "@opentelemetry/core": 1.14.0 + "@opentelemetry/semantic-conventions": 1.14.0 + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.5.0" + checksum: 4494fcad2a9d8de215149675ce4f16885f6d7d0b3318c44a1f8d2e50009de07853c94b428462f70d1dd3d3681a5738d6b625806b7939839524db49a81eb90a2c + languageName: node + linkType: hard + +"@opentelemetry/sdk-logs@npm:0.39.1": + version: 0.39.1 + resolution: "@opentelemetry/sdk-logs@npm:0.39.1" + dependencies: + "@opentelemetry/core": 1.13.0 + "@opentelemetry/resources": 1.13.0 + peerDependencies: + "@opentelemetry/api": ">=1.4.0 <1.5.0" + "@opentelemetry/api-logs": ">=0.38.0" + checksum: de9ca8b86ebba0ea6c1731cf930327d45dd37b7cdd3f05913eadf1355e2148da7cd61974b5fa3fa77ae06b5860ee97f47f58f75e8c486120711edb07b5f1b4f9 + languageName: node + linkType: hard + +"@opentelemetry/sdk-metrics@npm:1.13.0": + version: 1.13.0 + resolution: "@opentelemetry/sdk-metrics@npm:1.13.0" + dependencies: + "@opentelemetry/core": 1.13.0 + "@opentelemetry/resources": 1.13.0 lodash.merge: 4.6.2 peerDependencies: - "@opentelemetry/api": ^1.0.0 - checksum: 8eefbe77e233f88c5565a5b5d86fdeeafe276d65a7a69dd62784542af7ba3b444df8be8471699c03ebd292372d02feb83fedfe0047f2bafbd89fffd5a9633d4c + "@opentelemetry/api": ">=1.3.0 <1.5.0" + checksum: 2f87444b6c789acdde3465383b4255b072e201cf9bed642e82970540bfe913d76d4c4ebf8cc1ff3da383d3235dd8399cd6407fac86085a9ac9ff5b5b3afc9f38 languageName: node linkType: hard -"@opentelemetry/sdk-trace-base@npm:1.5.0, @opentelemetry/sdk-trace-base@npm:~1.5.0": - version: 1.5.0 - resolution: "@opentelemetry/sdk-trace-base@npm:1.5.0" +"@opentelemetry/sdk-trace-base@npm:1.13.0": + version: 1.13.0 + resolution: "@opentelemetry/sdk-trace-base@npm:1.13.0" dependencies: - "@opentelemetry/core": 1.5.0 - "@opentelemetry/resources": 1.5.0 - "@opentelemetry/semantic-conventions": 1.5.0 + "@opentelemetry/core": 1.13.0 + "@opentelemetry/resources": 1.13.0 + "@opentelemetry/semantic-conventions": 1.13.0 peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.2.0" - checksum: ca340ea23ffe393a8eb488a398cc8124c82fbc3be76cd15b7a00b9f0e79c723da442f0e485bf4b5445581aa184c4f7e9e62321d9253bb59d679d95d6d177f3c2 + "@opentelemetry/api": ">=1.0.0 <1.5.0" + checksum: bfe95d56de998cf4219fa9293c9d2ebbd90d93391bbb8360a1806465983b6665cef58bc2938a8e318ae0712e2482ebed7a9db5d9e8bb6fc010199f5fa8f1592e languageName: node linkType: hard -"@opentelemetry/sdk-trace-node@npm:~1.5.0": - version: 1.5.0 - resolution: "@opentelemetry/sdk-trace-node@npm:1.5.0" +"@opentelemetry/sdk-trace-base@npm:1.14.0, @opentelemetry/sdk-trace-base@npm:^1.13.0": + version: 1.14.0 + resolution: "@opentelemetry/sdk-trace-base@npm:1.14.0" + dependencies: + "@opentelemetry/core": 1.14.0 + "@opentelemetry/resources": 1.14.0 + "@opentelemetry/semantic-conventions": 1.14.0 + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.5.0" + checksum: 4dafee254f61fc18b77320aa201a5c8b0de6ac33996e63eed510da60df83a2fe19bf016e5cd71d3cf739f462a2f7e47767948c74a4cf8dca69575fe23524d646 + languageName: node + linkType: hard + +"@opentelemetry/sdk-trace-node@npm:^1.13.0": + version: 1.14.0 + resolution: "@opentelemetry/sdk-trace-node@npm:1.14.0" dependencies: - "@opentelemetry/context-async-hooks": 1.5.0 - "@opentelemetry/core": 1.5.0 - "@opentelemetry/propagator-b3": 1.5.0 - "@opentelemetry/propagator-jaeger": 1.5.0 - "@opentelemetry/sdk-trace-base": 1.5.0 + "@opentelemetry/context-async-hooks": 1.14.0 + "@opentelemetry/core": 1.14.0 + "@opentelemetry/propagator-b3": 1.14.0 + "@opentelemetry/propagator-jaeger": 1.14.0 + "@opentelemetry/sdk-trace-base": 1.14.0 semver: ^7.3.5 peerDependencies: - "@opentelemetry/api": ">=1.0.0 <1.2.0" - checksum: 5692ff34a1de00709b18a40daa1d28c7548aa0130b5affe6c04deb5cd317156cbfa36c99c4c2a14be7dac045a1848163d8a30f82fbaede9fdd4f76ad5d7fb354 + "@opentelemetry/api": ">=1.0.0 <1.5.0" + checksum: bdfa7a305d555f30a86a70f41d779d78715a32c918a53483f34cf0bc9b518f18ec630e69b894603ce871e9d63bf89ffafdd43989fc6f458c0528f1467c24a63d languageName: node linkType: hard -"@opentelemetry/semantic-conventions@npm:1.5.0, @opentelemetry/semantic-conventions@npm:~1.5.0": - version: 1.5.0 - resolution: "@opentelemetry/semantic-conventions@npm:1.5.0" - checksum: 455298a5037bd34e7fa687a4485bb66b6fead60647570fa5fd9cc8981feba4d5ff083b3c79f6d87ef2cd64df8502b8b3c9dbd337beb2dbbb23ffc98cb081d57c +"@opentelemetry/semantic-conventions@npm:1.13.0": + version: 1.13.0 + resolution: "@opentelemetry/semantic-conventions@npm:1.13.0" + checksum: 9cccf1d73315fed3920bb2201c0e82f66e58dddfa475314b6613780c2804570d6f657be3894eb8b84a2a543c9b8cd520587f5d6cd4b62bc6731d7299b4c5ee69 + languageName: node + linkType: hard + +"@opentelemetry/semantic-conventions@npm:1.14.0, @opentelemetry/semantic-conventions@npm:^1.13.0": + version: 1.14.0 + resolution: "@opentelemetry/semantic-conventions@npm:1.14.0" + checksum: 0d4f752035ac25d10cfcaf0e16f29bff8fa47877baff61dc4d047f9fe1e70f1459d02f5b70982c579db48584038e4fe263755b35ffa7254385604917337469f3 languageName: node linkType: hard @@ -8749,14 +8940,14 @@ __metadata: languageName: node linkType: hard -"clipanion@npm:^3.2.0": - version: 3.2.0 - resolution: "clipanion@npm:3.2.0" +"clipanion@npm:^3.2.1": + version: 3.2.1 + resolution: "clipanion@npm:3.2.1" dependencies: typanion: ^3.8.0 peerDependencies: typanion: "*" - checksum: e28e6f0d48aecff86097823c604aa486082d76d2a5d3abc71069a0d9f3338af769fd7c6634b2f444c5b1aac0743b503325cc0b30552c094c01ebc602631b273d + checksum: 448efd122ead3c802e61ba7a2002e2080c8cce01ce8a0a789d9b9e4f8fe70fd887dcf163ef8c778f5364a9e6f4b498b9f1853f709d7ed4291713e78bcfb88ee8 languageName: node linkType: hard @@ -9117,19 +9308,19 @@ __metadata: languageName: node linkType: hard -"contentlayer@npm:^0.3.1": - version: 0.3.1 - resolution: "contentlayer@npm:0.3.1" - dependencies: - "@contentlayer/cli": 0.3.1 - "@contentlayer/client": 0.3.1 - "@contentlayer/core": 0.3.1 - "@contentlayer/source-files": 0.3.1 - "@contentlayer/source-remote-files": 0.3.1 - "@contentlayer/utils": 0.3.1 +"contentlayer@npm:^0.3.4": + version: 0.3.4 + resolution: "contentlayer@npm:0.3.4" + dependencies: + "@contentlayer/cli": 0.3.4 + "@contentlayer/client": 0.3.4 + "@contentlayer/core": 0.3.4 + "@contentlayer/source-files": 0.3.4 + "@contentlayer/source-remote-files": 0.3.4 + "@contentlayer/utils": 0.3.4 bin: contentlayer: ./bin/cli.cjs - checksum: da17f6cf25e75b2d8a4286b827bd26b4a2c6adde438bac75706723fc2e105cf1f0d66e571e68a7dc091bb778c10131c1dc2378fac84bceaf6d93a0cc02929d8b + checksum: 7a7165d3b935ec0879d5fbdb0e5bcdecb4ba8b80fb2c1c8b899624f2bbd1e28d100ca68fc6a8318ccd0e483e7ea916a53cdd3ff8cf109f606ededb69dbcb925f languageName: node linkType: hard @@ -10365,7 +10556,84 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:0.17.x, esbuild@npm:^0.17.0, esbuild@npm:^0.17.5": +"esbuild@npm:0.17.x || 0.18.x": + version: 0.18.11 + resolution: "esbuild@npm:0.18.11" + dependencies: + "@esbuild/android-arm": 0.18.11 + "@esbuild/android-arm64": 0.18.11 + "@esbuild/android-x64": 0.18.11 + "@esbuild/darwin-arm64": 0.18.11 + "@esbuild/darwin-x64": 0.18.11 + "@esbuild/freebsd-arm64": 0.18.11 + "@esbuild/freebsd-x64": 0.18.11 + "@esbuild/linux-arm": 0.18.11 + "@esbuild/linux-arm64": 0.18.11 + "@esbuild/linux-ia32": 0.18.11 + "@esbuild/linux-loong64": 0.18.11 + "@esbuild/linux-mips64el": 0.18.11 + "@esbuild/linux-ppc64": 0.18.11 + "@esbuild/linux-riscv64": 0.18.11 + "@esbuild/linux-s390x": 0.18.11 + "@esbuild/linux-x64": 0.18.11 + "@esbuild/netbsd-x64": 0.18.11 + "@esbuild/openbsd-x64": 0.18.11 + "@esbuild/sunos-x64": 0.18.11 + "@esbuild/win32-arm64": 0.18.11 + "@esbuild/win32-ia32": 0.18.11 + "@esbuild/win32-x64": 0.18.11 + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: fbd981388fe391c4f0a1b71120ca86ee75cc6de88c01bd6883f26d8450cb3beeaae602459f9a8b9dc9e026ad68b67cda2cad5f5327c9960a53fa0cb358c61d97 + languageName: node + linkType: hard + +"esbuild@npm:^0.17.0, esbuild@npm:^0.17.5": version: 0.17.19 resolution: "esbuild@npm:0.17.19" dependencies: @@ -11626,6 +11894,13 @@ __metadata: languageName: node linkType: hard +"fs-monkey@npm:^1.0.4": + version: 1.0.4 + resolution: "fs-monkey@npm:1.0.4" + checksum: 8b254c982905c0b7e028eab22b410dc35a5c0019c1c860456f5f54ae6a61666e1cb8c6b700d6c88cc873694c00953c935847b9959cc4dcf274aacb8673c1e8bf + languageName: node + linkType: hard + "fs-readdir-recursive@npm:^1.1.0": version: 1.1.0 resolution: "fs-readdir-recursive@npm:1.1.0" @@ -11888,6 +12163,13 @@ __metadata: languageName: node linkType: hard +"github-slugger@npm:^2.0.0": + version: 2.0.0 + resolution: "github-slugger@npm:2.0.0" + checksum: 250375cde2058f21454872c2c79f72c4637340c30c51ff158ca4ec71cbc478f33d54477d787a662f9207aeb095a2060f155bc01f15329ba8a5fb6698e0fc81f8 + languageName: node + linkType: hard + "glob-base@npm:^0.3.0": version: 0.3.0 resolution: "glob-base@npm:0.3.0" @@ -12394,6 +12676,32 @@ __metadata: languageName: node linkType: hard +"hast-util-has-property@npm:^2.0.0": + version: 2.0.1 + resolution: "hast-util-has-property@npm:2.0.1" + checksum: cc909b7e2964fbfa4c53e33bfbc6f3ed883d1936f3e41a7fa020d3cb8cc5d3c903670e62bec15b55dea5a272ed86724815e8b136ba5475e138489384b1b71fa8 + languageName: node + linkType: hard + +"hast-util-heading-rank@npm:^2.0.0": + version: 2.1.1 + resolution: "hast-util-heading-rank@npm:2.1.1" + dependencies: + "@types/hast": ^2.0.0 + checksum: a49233e9ac78f66e948dd29d6c75f41c72899854f276290423c5f59eb827dee3c42cf181ce9103f3a8295359b613ca0b9c51475dd38ecdd6c26ed291344061f1 + languageName: node + linkType: hard + +"hast-util-is-element@npm:^2.0.0": + version: 2.1.3 + resolution: "hast-util-is-element@npm:2.1.3" + dependencies: + "@types/hast": ^2.0.0 + "@types/unist": ^2.0.0 + checksum: 9d988f6839a50566a895a3dd19222e6ab1591243f6a3c36bba835b7e9339a2845f1ff1c583425afd602de1a57a76c5bae8a6dc0ab1d6e5d1e252b422cdeadbb7 + languageName: node + linkType: hard + "hast-util-parse-selector@npm:^3.0.0": version: 3.1.1 resolution: "hast-util-parse-selector@npm:3.1.1" @@ -12478,6 +12786,15 @@ __metadata: languageName: node linkType: hard +"hast-util-to-string@npm:^2.0.0": + version: 2.0.0 + resolution: "hast-util-to-string@npm:2.0.0" + dependencies: + "@types/hast": ^2.0.0 + checksum: 0c087f8dee4238741cbad65d28adb8bf800252c763a3c643df2fcb4ef97232056837928c2ae73f841f310e4d336c3b183ee380a5e6eb24bda5c117f78ed600d4 + languageName: node + linkType: hard + "hast-util-whitespace@npm:^2.0.0": version: 2.0.1 resolution: "hast-util-whitespace@npm:2.0.1" @@ -14299,7 +14616,7 @@ __metadata: languageName: node linkType: hard -"jsbi@npm:^4.1.0": +"jsbi@npm:^4.3.0": version: 4.3.0 resolution: "jsbi@npm:4.3.0" checksum: 27c4f178eb7fd9d1756144066fdebc62f4a0176e877f55e646e8ce84075c13551bd575a316b9959ccdcca9d5dc05a81c9907cfa09f0cfeb43c9777797e36b0e9 @@ -15448,7 +15765,7 @@ __metadata: languageName: node linkType: hard -"memfs@npm:^3.4.12, memfs@npm:^3.4.13, memfs@npm:^3.4.7": +"memfs@npm:^3.4.12, memfs@npm:^3.4.7": version: 3.4.13 resolution: "memfs@npm:3.4.13" dependencies: @@ -15457,6 +15774,15 @@ __metadata: languageName: node linkType: hard +"memfs@npm:^3.5.1": + version: 3.5.3 + resolution: "memfs@npm:3.5.3" + dependencies: + fs-monkey: ^1.0.4 + checksum: 18dfdeacad7c8047b976a6ccd58bc98ba76e122ad3ca0e50a21837fe2075fc0d9aafc58ab9cf2576c2b6889da1dd2503083f2364191b695273f40969db2ecc44 + languageName: node + linkType: hard + "memoizerific@npm:^1.11.3": version: 1.11.3 resolution: "memoizerific@npm:1.11.3" @@ -16352,17 +16678,18 @@ __metadata: languageName: node linkType: hard -"next-contentlayer@npm:^0.3.1": - version: 0.3.1 - resolution: "next-contentlayer@npm:0.3.1" +"next-contentlayer@npm:^0.3.4": + version: 0.3.4 + resolution: "next-contentlayer@npm:0.3.4" dependencies: - "@contentlayer/core": 0.3.1 - "@contentlayer/utils": 0.3.1 + "@contentlayer/core": 0.3.4 + "@contentlayer/utils": 0.3.4 peerDependencies: + contentlayer: 0.3.4 next: ^12 || ^13 react: "*" react-dom: "*" - checksum: c18922951a711b8978ddf1ba7e6197e226117f69c02ec4552523fb870aa8eaceb0bcf9bf81d604f04de51c70fdbc35add47f5e6d0722392086561446e22d94b7 + checksum: fd741aa5fcefe545dedbe34780e05a18fd2ce7b3620e5d528358dfe3152fa9d795fbc68738ffa6d001db1c7de9e0500f06bc6600dfdd37b4f831158f9c6f0832 languageName: node linkType: hard @@ -16948,10 +17275,10 @@ __metadata: languageName: node linkType: hard -"oo-ascii-tree@npm:^1.79.0": - version: 1.79.0 - resolution: "oo-ascii-tree@npm:1.79.0" - checksum: 58ee3820a5e36168a5365abdc658b7f11810a584b67a5218b34663348a0c19cfe24bf929f05d104e627c35cb9e899ec789090146354afa4155f3f0076982e736 +"oo-ascii-tree@npm:^1.84.0": + version: 1.84.0 + resolution: "oo-ascii-tree@npm:1.84.0" + checksum: 9558d88ceb9b70caf4ba6ea7d28c04a8728298b6c26a87727e618b575c457a74b1a015c31391d10e2d3d3de246d7246b153df058de8b1eff2cb38b51cfc4b940 languageName: node linkType: hard @@ -18153,9 +18480,9 @@ __metadata: languageName: node linkType: hard -"protobufjs@npm:^6.11.3": - version: 6.11.3 - resolution: "protobufjs@npm:6.11.3" +"protobufjs@npm:^7.0.0": + version: 7.2.2 + resolution: "protobufjs@npm:7.2.2" dependencies: "@protobufjs/aspromise": ^1.1.2 "@protobufjs/base64": ^1.1.2 @@ -18167,19 +18494,15 @@ __metadata: "@protobufjs/path": ^1.1.2 "@protobufjs/pool": ^1.1.0 "@protobufjs/utf8": ^1.1.0 - "@types/long": ^4.0.1 "@types/node": ">=13.7.0" - long: ^4.0.0 - bin: - pbjs: bin/pbjs - pbts: bin/pbts - checksum: 4a6ce1964167e4c45c53fd8a312d7646415c777dd31b4ba346719947b88e61654912326101f927da387d6b6473ab52a7ea4f54d6f15d63b31130ce28e2e15070 + long: ^5.0.0 + checksum: 86166e8f3e46789fa4d117ae72c17356db36bf87c0e0710d224be32e543b1c378a94e66dc2b1de5af45edfc25f56acfc7e688c50c956426a3ae97bc474f4445c languageName: node linkType: hard -"protobufjs@npm:^7.0.0": - version: 7.2.2 - resolution: "protobufjs@npm:7.2.2" +"protobufjs@npm:^7.2.2": + version: 7.2.4 + resolution: "protobufjs@npm:7.2.4" dependencies: "@protobufjs/aspromise": ^1.1.2 "@protobufjs/base64": ^1.1.2 @@ -18193,7 +18516,7 @@ __metadata: "@protobufjs/utf8": ^1.1.0 "@types/node": ">=13.7.0" long: ^5.0.0 - checksum: 86166e8f3e46789fa4d117ae72c17356db36bf87c0e0710d224be32e543b1c378a94e66dc2b1de5af45edfc25f56acfc7e688c50c956426a3ae97bc474f4445c + checksum: a952cdf2a5e5250c16ae651b570849b6f5b20a5475c3eef63ffb290ad239aa2916adfc1cc676f7fc93c69f48113df268761c0c246f7f023118c85bdd1a170044 languageName: node linkType: hard @@ -19148,6 +19471,36 @@ __metadata: languageName: node linkType: hard +"rehype-autolink-headings@npm:^6.1.1": + version: 6.1.1 + resolution: "rehype-autolink-headings@npm:6.1.1" + dependencies: + "@types/hast": ^2.0.0 + extend: ^3.0.0 + hast-util-has-property: ^2.0.0 + hast-util-heading-rank: ^2.0.0 + hast-util-is-element: ^2.0.0 + unified: ^10.0.0 + unist-util-visit: ^4.0.0 + checksum: 60782fb2e505e70f75b59a3ac43cb5abfeb328485da07b604fcc73d6bc3626e9c3657d536a77c6c6c435b7b3086bae5c7f93d5ded510d74e553fd80fd91c8f97 + languageName: node + linkType: hard + +"rehype-slug@npm:^5.1.0": + version: 5.1.0 + resolution: "rehype-slug@npm:5.1.0" + dependencies: + "@types/hast": ^2.0.0 + github-slugger: ^2.0.0 + hast-util-has-property: ^2.0.0 + hast-util-heading-rank: ^2.0.0 + hast-util-to-string: ^2.0.0 + unified: ^10.0.0 + unist-util-visit: ^4.0.0 + checksum: 2a7c17fd74d83040e2f2ed2085b0a3274c19feb2c29eba6553fe007ff887c31f21b8aa6e07eaf59f4de610a5293c6339c59fafa8e231c43949a2f136e6ab6187 + languageName: node + linkType: hard + "rehype-stringify@npm:^9.0.3": version: 9.0.3 resolution: "rehype-stringify@npm:9.0.3" @@ -19206,7 +19559,7 @@ __metadata: languageName: node linkType: hard -"remark-parse@npm:^10.0.0, remark-parse@npm:^10.0.1": +"remark-parse@npm:^10.0.0": version: 10.0.1 resolution: "remark-parse@npm:10.0.1" dependencies: @@ -19217,6 +19570,17 @@ __metadata: languageName: node linkType: hard +"remark-parse@npm:^10.0.2": + version: 10.0.2 + resolution: "remark-parse@npm:10.0.2" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-from-markdown: ^1.0.0 + unified: ^10.0.0 + checksum: 5041b4b44725f377e69986e02f8f072ae2222db5e7d3b6c80829756b842e811343ffc2069cae1f958a96bfa36104ab91a57d7d7e2f0cef521e210ab8c614d5c7 + languageName: node + linkType: hard + "remark-parse@npm:^9.0.0": version: 9.0.0 resolution: "remark-parse@npm:9.0.0" @@ -21514,10 +21878,10 @@ __metadata: languageName: node linkType: hard -"ts-pattern@npm:^4.2.2": - version: 4.2.2 - resolution: "ts-pattern@npm:4.2.2" - checksum: e9e818f0d4a1706930f81bb3e6fce69db998a584999b113ef0d0c73db5a810f0ead3a295393603f2fed4e17ba2cc90e6bf38223bea4f615a9e42deb514e91cc2 +"ts-pattern@npm:^4.3.0": + version: 4.3.0 + resolution: "ts-pattern@npm:4.3.0" + checksum: f5167f6f721212c1e22f8590bb1fc21e27fd591d6fc5af0e467778f8e5b2dc1ae490cf5c633c83a3021a61283a671a53faf250b081c17c0f025e73eb775e5fe3 languageName: node linkType: hard @@ -21562,13 +21926,20 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0": +"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.4.0": version: 2.5.0 resolution: "tslib@npm:2.5.0" checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 languageName: node linkType: hard +"tslib@npm:^2.4.1": + version: 2.6.0 + resolution: "tslib@npm:2.6.0" + checksum: c01066038f950016a18106ddeca4649b4d76caa76ec5a31e2a26e10586a59fceb4ee45e96719bf6c715648e7c14085a81fee5c62f7e9ebee68e77a5396e5538f + languageName: node + linkType: hard + "tsutils@npm:^3.21.0": version: 3.21.0 resolution: "tsutils@npm:3.21.0" @@ -21677,10 +22048,10 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^3.7.1": - version: 3.7.2 - resolution: "type-fest@npm:3.7.2" - checksum: 28f5c6eca67f01825308e19792425d1643d6f7589aa278d3a8e34caa07d9502aa54016df6b9f65bd3d51a3f2d9c002d3a739bb391d11ef2505df73e374a10b79 +"type-fest@npm:^3.12.0": + version: 3.12.0 + resolution: "type-fest@npm:3.12.0" + checksum: 11cb6f40e42f92c462a13677eafedf5c48353eaefa8e489a146e55fe0ae5cecd59a2ba03cd6b294345b5ea304361891a6313c23ed959fa0117f63fb71ee6cbab languageName: node linkType: hard @@ -22039,7 +22410,7 @@ __metadata: languageName: node linkType: hard -"unist-util-visit@npm:^4.0.0": +"unist-util-visit@npm:^4.0.0, unist-util-visit@npm:^4.1.2": version: 4.1.2 resolution: "unist-util-visit@npm:4.1.2" dependencies: @@ -23148,6 +23519,13 @@ __metadata: languageName: node linkType: hard +"yaml@npm:^2.3.1": + version: 2.3.1 + resolution: "yaml@npm:2.3.1" + checksum: 2c7bc9a7cd4c9f40d3b0b0a98e370781b68b8b7c4515720869aced2b00d92f5da1762b4ffa947f9e795d6cd6b19f410bd4d15fdd38aca7bd96df59bd9486fb54 + languageName: node + linkType: hard + "yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3, yargs-parser@npm:^20.2.9": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9"