From a04fc59caa0984cdbefc4d0c6e6e348c20ea5571 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 30 Dec 2024 20:52:09 +0000 Subject: [PATCH] Version Packages --- .changeset/chatty-fireants-repeat.md | 10 -- .changeset/cuddly-news-kneel.md | 5 - .changeset/dirty-poems-kneel.md | 21 ----- .changeset/fair-goats-thank.md | 5 - .changeset/hungry-birds-attack.md | 71 -------------- .changeset/hungry-taxis-learn.md | 12 --- .changeset/long-walls-kneel.md | 5 - .changeset/loud-pans-sit.md | 22 ----- .changeset/twenty-ears-report.md | 5 - packages/mdx/CHANGELOG.md | 6 ++ packages/mdx/package.json | 2 +- packages/renoun/CHANGELOG.md | 133 +++++++++++++++++++++++++++ packages/renoun/package.json | 2 +- 13 files changed, 141 insertions(+), 158 deletions(-) delete mode 100644 .changeset/chatty-fireants-repeat.md delete mode 100644 .changeset/cuddly-news-kneel.md delete mode 100644 .changeset/dirty-poems-kneel.md delete mode 100644 .changeset/fair-goats-thank.md delete mode 100644 .changeset/hungry-birds-attack.md delete mode 100644 .changeset/hungry-taxis-learn.md delete mode 100644 .changeset/long-walls-kneel.md delete mode 100644 .changeset/loud-pans-sit.md delete mode 100644 .changeset/twenty-ears-report.md diff --git a/.changeset/chatty-fireants-repeat.md b/.changeset/chatty-fireants-repeat.md deleted file mode 100644 index 6a6a48f08..000000000 --- a/.changeset/chatty-fireants-repeat.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'renoun': minor ---- - -Renames `Directory` and `File` `getParentDirectory` methods to `getParent` to better align with `getSiblings`. This also aligns more closely with the web File System API's [getParent](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry/getParent) method. - -### Breaking Changes - -- `Directory.getParentDirectory` is now `Directory.getParent` -- `File.getParentDirectory` is now `File.getParent` diff --git a/.changeset/cuddly-news-kneel.md b/.changeset/cuddly-news-kneel.md deleted file mode 100644 index 15cac5fd7..000000000 --- a/.changeset/cuddly-news-kneel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@renoun/mdx': patch ---- - -Fixes inline code language inference by considering language aliases. diff --git a/.changeset/dirty-poems-kneel.md b/.changeset/dirty-poems-kneel.md deleted file mode 100644 index 65241d67a..000000000 --- a/.changeset/dirty-poems-kneel.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -'renoun': minor ---- - -Adds `pathCasing` option to `Directory` for setting the casing of all path methods. This is useful for ensuring that all paths are in a consistent casing, regardless of the underlying file system. - -```ts -import { Directory } from 'renoun/file-system' - -const directory = new Directory({ - path: 'components', - pathCasing: 'kebab', -}) -const file = await directory.getFileOrThrow('button') - -file.getPath() // '/button' - -const directory = await directory.getDirectoryOrThrow('card') - -directory.getPath() // '/card' -``` diff --git a/.changeset/fair-goats-thank.md b/.changeset/fair-goats-thank.md deleted file mode 100644 index d7e9adc22..000000000 --- a/.changeset/fair-goats-thank.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'renoun': patch ---- - -Fixes nested ordered files not using a unique key causing them to be filtered. diff --git a/.changeset/hungry-birds-attack.md b/.changeset/hungry-birds-attack.md deleted file mode 100644 index 9cf5eb436..000000000 --- a/.changeset/hungry-birds-attack.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -'renoun': minor ---- - -Refactors the `Directory` builder pattern to move back to an object configuration with the addition of a new `withSchema` helper, allowing strong type inference and colocated file export type definitions: - -```ts -import { Directory, withSchema } from 'renoun/file-system' -import { z } from 'zod' - -export const Posts = new Directory({ - path: 'posts', - include: '*.mdx', - loaders: { - mdx: withSchema( - { - frontmatter: z.object({ - title: z.string(), - description: z.string(), - date: z.date(), - tags: z.array(z.string()).optional(), - }), - }, - (path) => import(`@/posts/${path}.mdx`) - ), - }, -}) -``` - -Note, some additional changes have also been made: - -- `withModule` has been replaced in favor of a `loaders` option. -- `withFilter` has been replaced by an `include` option to better align with TypeScript's configuration naming. -- The new `include` filter now also accepts a string glob file pattern e.g. `*.mdx`. -- An extension **must** be provided for loaders, this ensures that arbitrary file extensions are not loaded by mistake. -- [Standard Schema](https://github.com/standard-schema/standard-schema) is now used to automatically infer types from libraries that adhere to the spec (Zod, Valibot, Arktype). -- The `MDXContent` type is now included by default for MDX file `default` exports. -- Internally, the `JavaScriptFileWithRuntime` class was collapsed into `JavaScriptFile`. This was originally added to provide strong types when a runtime loader was or was not available, but caused too much complexity. In the future, a runtime loader will be added automatically if not explicitly defined. - -### Breaking Changes - -The builder pattern configuration for `Directory` has been refactored to use an object configuration with the addition of a new `withSchema` helper. This change is breaking for any existing code that uses the `Directory` builder pattern. The `withSchema` helper is now required to provide strong type inference and colocated file export type definitions. - -#### Before - -```ts -import { Directory } from 'renoun/file-system' - -interface PostTypes { - mdx: { - default: MDXContent - } -} - -const posts = new Directory('posts').withModule( - (path) => import(`./posts/${path}`) -) -``` - -#### After - -```ts -import { Directory } from 'renoun/file-system' - -const posts = new Directory({ - path: 'posts', - loaders: { - mdx: (path) => import(`./posts/${path}.mdx`), - }, -}) -``` diff --git a/.changeset/hungry-taxis-learn.md b/.changeset/hungry-taxis-learn.md deleted file mode 100644 index 972f1b378..000000000 --- a/.changeset/hungry-taxis-learn.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -'renoun': patch ---- - -Fixes `Directory#getFile` not considering file name modifiers. - -```ts -const directory = new Directory({ path: 'components' }) -const file = await directory.getFileOrThrow(['APIReference', 'examples']) - -file.getAbsolutePath() // '/APIReference.examples.tsx' -``` diff --git a/.changeset/long-walls-kneel.md b/.changeset/long-walls-kneel.md deleted file mode 100644 index 98926d13d..000000000 --- a/.changeset/long-walls-kneel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'renoun': minor ---- - -Marks the `Directory#duplicate` method as private since this was previously only exposed for `EntryGroup` which no longer requires a new instance to be created. diff --git a/.changeset/loud-pans-sit.md b/.changeset/loud-pans-sit.md deleted file mode 100644 index 698e88d5d..000000000 --- a/.changeset/loud-pans-sit.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -'renoun': minor ---- - -Removes `getEditPath` in favor of `getRepositoryUrl` and `getEditorUri` for a more explicit API. Prior, the `getEditPath` method switched between the editor and the git provider source based on the environment. This was confusing and not always the desired behavior. Now you can explicitly choose the behavior you want. - -### Breaking Changes - -The `getEditPath` method has been removed. Use `getRepositoryUrl` and `getEditorUri` instead. - -To get the same behavior as `getEditPath` you can use both `getRepositoryUrl` and `getEditorUri` together: - -```ts -import { Directory } from 'renoun/file-system' - -const directory = new Directory('src/components') -const file = directory.getFileOrThrow('Button', 'tsx') -const editUrl = - process.env.NODE_ENV === 'development' - ? file.getEditorUri() - : file.getRepositoryUrl({ type: 'edit' }) -``` diff --git a/.changeset/twenty-ears-report.md b/.changeset/twenty-ears-report.md deleted file mode 100644 index ac8d55ca1..000000000 --- a/.changeset/twenty-ears-report.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'renoun': patch ---- - -Fixes `Directory#getFile` not prioritizing base files over files with modifiers e.g. `Button.tsx` over `Button.examples.tsx`. diff --git a/packages/mdx/CHANGELOG.md b/packages/mdx/CHANGELOG.md index 5f34fe2b7..a17f76e43 100644 --- a/packages/mdx/CHANGELOG.md +++ b/packages/mdx/CHANGELOG.md @@ -1,5 +1,11 @@ # @renoun/mdx +## 1.2.2 + +### Patch Changes + +- ece3cc2: Fixes inline code language inference by considering language aliases. + ## 1.2.1 ### Patch Changes diff --git a/packages/mdx/package.json b/packages/mdx/package.json index 04b2d8660..39f802deb 100644 --- a/packages/mdx/package.json +++ b/packages/mdx/package.json @@ -1,6 +1,6 @@ { "name": "@renoun/mdx", - "version": "1.2.1", + "version": "1.2.2", "description": "MDX plugins for renoun", "author": "Travis Arnold", "license": "MIT", diff --git a/packages/renoun/CHANGELOG.md b/packages/renoun/CHANGELOG.md index 2d39ea6ed..afdc375a6 100644 --- a/packages/renoun/CHANGELOG.md +++ b/packages/renoun/CHANGELOG.md @@ -1,5 +1,138 @@ # renoun +## 7.9.0 + +### Minor Changes + +- 3022d63: Renames `Directory` and `File` `getParentDirectory` methods to `getParent` to better align with `getSiblings`. This also aligns more closely with the web File System API's [getParent](https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry/getParent) method. + + ### Breaking Changes + + - `Directory.getParentDirectory` is now `Directory.getParent` + - `File.getParentDirectory` is now `File.getParent` + +- ba2d5e1: Adds `pathCasing` option to `Directory` for setting the casing of all path methods. This is useful for ensuring that all paths are in a consistent casing, regardless of the underlying file system. + + ```ts + import { Directory } from 'renoun/file-system' + + const directory = new Directory({ + path: 'components', + pathCasing: 'kebab', + }) + const file = await directory.getFileOrThrow('button') + + file.getPath() // '/button' + + const directory = await directory.getDirectoryOrThrow('card') + + directory.getPath() // '/card' + ``` + +- 4149b39: Refactors the `Directory` builder pattern to move back to an object configuration with the addition of a new `withSchema` helper, allowing strong type inference and colocated file export type definitions: + + ```ts + import { Directory, withSchema } from 'renoun/file-system' + import { z } from 'zod' + + export const Posts = new Directory({ + path: 'posts', + include: '*.mdx', + loaders: { + mdx: withSchema( + { + frontmatter: z.object({ + title: z.string(), + description: z.string(), + date: z.date(), + tags: z.array(z.string()).optional(), + }), + }, + (path) => import(`@/posts/${path}.mdx`) + ), + }, + }) + ``` + + Note, some additional changes have also been made: + + - `withModule` has been replaced in favor of a `loaders` option. + - `withFilter` has been replaced by an `include` option to better align with TypeScript's configuration naming. + - The new `include` filter now also accepts a string glob file pattern e.g. `*.mdx`. + - An extension **must** be provided for loaders, this ensures that arbitrary file extensions are not loaded by mistake. + - [Standard Schema](https://github.com/standard-schema/standard-schema) is now used to automatically infer types from libraries that adhere to the spec (Zod, Valibot, Arktype). + - The `MDXContent` type is now included by default for MDX file `default` exports. + - Internally, the `JavaScriptFileWithRuntime` class was collapsed into `JavaScriptFile`. This was originally added to provide strong types when a runtime loader was or was not available, but caused too much complexity. In the future, a runtime loader will be added automatically if not explicitly defined. + + ### Breaking Changes + + The builder pattern configuration for `Directory` has been refactored to use an object configuration with the addition of a new `withSchema` helper. This change is breaking for any existing code that uses the `Directory` builder pattern. The `withSchema` helper is now required to provide strong type inference and colocated file export type definitions. + + #### Before + + ```ts + import { Directory } from 'renoun/file-system' + + interface PostTypes { + mdx: { + default: MDXContent + } + } + + const posts = new Directory('posts').withModule( + (path) => import(`./posts/${path}`) + ) + ``` + + #### After + + ```ts + import { Directory } from 'renoun/file-system' + + const posts = new Directory({ + path: 'posts', + loaders: { + mdx: (path) => import(`./posts/${path}.mdx`), + }, + }) + ``` + +- 80ae7f2: Marks the `Directory#duplicate` method as private since this was previously only exposed for `EntryGroup` which no longer requires a new instance to be created. +- 1f6603d: Removes `getEditPath` in favor of `getRepositoryUrl` and `getEditorUri` for a more explicit API. Prior, the `getEditPath` method switched between the editor and the git provider source based on the environment. This was confusing and not always the desired behavior. Now you can explicitly choose the behavior you want. + + ### Breaking Changes + + The `getEditPath` method has been removed. Use `getRepositoryUrl` and `getEditorUri` instead. + + To get the same behavior as `getEditPath` you can use both `getRepositoryUrl` and `getEditorUri` together: + + ```ts + import { Directory } from 'renoun/file-system' + + const directory = new Directory('src/components') + const file = directory.getFileOrThrow('Button', 'tsx') + const editUrl = + process.env.NODE_ENV === 'development' + ? file.getEditorUri() + : file.getRepositoryUrl({ type: 'edit' }) + ``` + +### Patch Changes + +- 5d8bd25: Fixes nested ordered files not using a unique key causing them to be filtered. +- 679da2c: Fixes `Directory#getFile` not considering file name modifiers. + + ```ts + const directory = new Directory({ path: 'components' }) + const file = await directory.getFileOrThrow(['APIReference', 'examples']) + + file.getAbsolutePath() // '/APIReference.examples.tsx' + ``` + +- 5b558c1: Fixes `Directory#getFile` not prioritizing base files over files with modifiers e.g. `Button.tsx` over `Button.examples.tsx`. +- Updated dependencies [ece3cc2] + - @renoun/mdx@1.2.2 + ## 7.8.0 ### Minor Changes diff --git a/packages/renoun/package.json b/packages/renoun/package.json index b25aa18d2..88b358b15 100644 --- a/packages/renoun/package.json +++ b/packages/renoun/package.json @@ -1,6 +1,6 @@ { "name": "renoun", - "version": "7.8.0", + "version": "7.9.0", "description": "The Technical Content Toolkit for React", "author": "Travis Arnold", "license": "AGPL-3.0-or-later",