eslint/rewrite (@eslint/compat)
### [`v1.1.1`](https://togithub.com/eslint/rewrite/compare/2a7bed41976f94495f7ba46f459f1de9d3305664...20ba992f0eac1af2d6e29b30a5b6612d4f552210)
[Compare Source](https://togithub.com/eslint/rewrite/compare/2a7bed41976f94495f7ba46f459f1de9d3305664...20ba992f0eac1af2d6e29b30a5b6612d4f552210)
eslint/eslint (@eslint/js)
### [`v9.7.0`](https://togithub.com/eslint/eslint/compare/v9.6.0...7ed6f9a4db702bbad941422f456451a8dba7a450)
[Compare Source](https://togithub.com/eslint/eslint/compare/v9.6.0...v9.7.0)
storybookjs/storybook (@storybook/addon-a11y)
### [`v8.2.2`](https://togithub.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#822)
[Compare Source](https://togithub.com/storybookjs/storybook/compare/v8.2.1...v8.2.2)
- CPC: Add `ESM` export to `docs-tools` & `node-logger` packages - [#28539](https://togithub.com/storybookjs/storybook/pull/28539), thanks [@ndelangen](https://togithub.com/ndelangen)!
- CPC: Fix missing dependency in `@storybook/addon-interactions` - [#28518](https://togithub.com/storybookjs/storybook/pull/28518), thanks [@ndelangen](https://togithub.com/ndelangen)!
- CPC: Revert renames of panels, addon_ids - [#28524](https://togithub.com/storybookjs/storybook/pull/28524), thanks [@ndelangen](https://togithub.com/ndelangen)!
### [`v8.2.1`](https://togithub.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#821)
[Compare Source](https://togithub.com/storybookjs/storybook/compare/v8.2.0...v8.2.1)
- CPC: Fix type generation - [#28507](https://togithub.com/storybookjs/storybook/pull/28507), thanks [@ndelangen](https://togithub.com/ndelangen)!
- Types: Update type signatures of objects and functions - [#28503](https://togithub.com/storybookjs/storybook/pull/28503), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!
### [`v8.2.0`](https://togithub.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#820)
[Compare Source](https://togithub.com/storybookjs/storybook/compare/v8.1.11...v8.2.0)
Hold onto your hats! Storybook 8.2 has dropped, packed with a treasure trove of new features and bug fixes:
- 🪝 New test hook `beforeAll`
- 🕹️ Enhanced `play` function
- 📦 Portable stories that let you use your stories in other testing tools
- 🎁 Consolidated dependency to bring you better performance in a smaller package
- ✨ Brand new onboarding experience to get you up to speed quicker
- 💯 Hundreds more improvements
List of all updates
- Addon Controls: Fix saving on Windows - [#28485](https://togithub.com/storybookjs/storybook/pull/28485), thanks [@ghengeveld](https://togithub.com/ghengeveld)!
- Addon Interactions: Use unique keys when rendering array nodes in panel - [#28423](https://togithub.com/storybookjs/storybook/pull/28423), thanks [@yannbf](https://togithub.com/yannbf)!
- Addon Onboarding: Add icons for dev/test/doc to the splash screen - [#28389](https://togithub.com/storybookjs/storybook/pull/28389), thanks [@ghengeveld](https://togithub.com/ghengeveld)!
- Addon Onboarding: New design and flow based on Save from Controls - [#28327](https://togithub.com/storybookjs/storybook/pull/28327), thanks [@ghengeveld](https://togithub.com/ghengeveld)!
- Addon Onboarding: Trigger onboarding during init for Vue and Angular projects - [#28482](https://togithub.com/storybookjs/storybook/pull/28482), thanks [@ghengeveld](https://togithub.com/ghengeveld)!
- Addon-A11y: Fix property default assignment - [#27224](https://togithub.com/storybookjs/storybook/pull/27224), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!
- Angular: Allow format configuration of custom source preview - [#28305](https://togithub.com/storybookjs/storybook/pull/28305), thanks [@64BitAsura](https://togithub.com/64BitAsura)!
- Angular: Allow outputPath object syntax - [#28144](https://togithub.com/storybookjs/storybook/pull/28144), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!
- Angular: Cleanup types - [#27189](https://togithub.com/storybookjs/storybook/pull/27189), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!
- Angular: Fix enableProdMode setting - [#28415](https://togithub.com/storybookjs/storybook/pull/28415), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!
- Angular: Fix wrong detection of standalone components - [#27353](https://togithub.com/storybookjs/storybook/pull/27353), thanks [@dario-baumberger](https://togithub.com/dario-baumberger)!
- Angular: Introduce preserveSymlink builder option - [#28145](https://togithub.com/storybookjs/storybook/pull/28145), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!
- Angular: Update outputPath default value in angular-cli-webpack.js - [#28418](https://togithub.com/storybookjs/storybook/pull/28418), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!
- Babel: Ensure story files not transpiled earlier than ES2017 - [#28469](https://togithub.com/storybookjs/storybook/pull/28469), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- Blocks: Fix reference to storybook core - [#28422](https://togithub.com/storybookjs/storybook/pull/28422), thanks [@yannbf](https://togithub.com/yannbf)!
- Blocks: Prebundle `tocbot` - [#28318](https://togithub.com/storybookjs/storybook/pull/28318), thanks [@shilman](https://togithub.com/shilman)!
- Build: Change require/import order, so that import has higher prio if both are specified - [#27730](https://togithub.com/storybookjs/storybook/pull/27730), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- Build: Ignore ts stories in cra/default-js sandbox - [#28354](https://togithub.com/storybookjs/storybook/pull/28354), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!
- CLI: Add `--no-dev` option to `init` - [#26918](https://togithub.com/storybookjs/storybook/pull/26918), thanks [@fastfrwrd](https://togithub.com/fastfrwrd)!
- CLI: Add optional `--dev` and `--no-dev` options to `storybook init` CLI - [#26918](https://togithub.com/storybookjs/storybook/pull/26918), thanks [@fastfrwrd](https://togithub.com/fastfrwrd)!
- CLI: Add support for Nuxt to project init - [#26884](https://togithub.com/storybookjs/storybook/pull/26884), thanks [@tobiasdiez](https://togithub.com/tobiasdiez)!
- CLI: Fix CLI always asking all automigrations - [#28238](https://togithub.com/storybookjs/storybook/pull/28238), thanks [@ndelangen](https://togithub.com/ndelangen)!
- CLI: Improve error message when fetching CLI version - [#28289](https://togithub.com/storybookjs/storybook/pull/28289), thanks [@yannbf](https://togithub.com/yannbf)!
- CLI: Include `@storybook/addon-svelte-csf` when initializing new projects - [#27070](https://togithub.com/storybookjs/storybook/pull/27070), thanks [@benmccann](https://togithub.com/benmccann)!
- CLI: Prebundle get-npm-tarball-url and [@ndelangen/get-tarball](https://togithub.com/ndelangen/get-tarball) - [#28481](https://togithub.com/storybookjs/storybook/pull/28481), thanks [@ndelangen](https://togithub.com/ndelangen)!
- Config: Apply JavaScript-only story glob extensions for JavaScript projects - [#28338](https://togithub.com/storybookjs/storybook/pull/28338), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!
- Controls: Fix date picker control validation and assignment - [#26695](https://togithub.com/storybookjs/storybook/pull/26695), thanks [@leeovictor](https://togithub.com/leeovictor)!
- Controls: Fix grouped Radio controls to have the same name - [#23374](https://togithub.com/storybookjs/storybook/pull/23374), thanks [@srapilly](https://togithub.com/srapilly)!
- Controls: Throttling makes Color control lagging - [#22615](https://togithub.com/storybookjs/storybook/pull/22615), thanks [@gitstart](https://togithub.com/gitstart)!
- Core: Add context as a property of the context (self-referencing) - [#28353](https://togithub.com/storybookjs/storybook/pull/28353), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- Core: Add support for `beforeAll` hook - [#28255](https://togithub.com/storybookjs/storybook/pull/28255), thanks [@ghengeveld](https://togithub.com/ghengeveld)!
- Core: Fix startup hang caused by watchStorySpecifiers - [#27016](https://togithub.com/storybookjs/storybook/pull/27016), thanks [@heyimalex](https://togithub.com/heyimalex)!
- Core: Make sure StorybookError message shows up in browser console and interactions panel - [#28464](https://togithub.com/storybookjs/storybook/pull/28464), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- Core: Migrate from `pkg-dir` to `fd-package-json` - [#28270](https://togithub.com/storybookjs/storybook/pull/28270), thanks [@43081j](https://togithub.com/43081j)!
- Core: Refactor phases to run in order `loading` -> `rendering` -> `playing` - [#28431](https://togithub.com/storybookjs/storybook/pull/28431), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- Core: Remove more `.stories.mdx` handling - [#25973](https://togithub.com/storybookjs/storybook/pull/25973), thanks [@JReinhold](https://togithub.com/JReinhold)!
- Core: Remove util dependency - [#28191](https://togithub.com/storybookjs/storybook/pull/28191), thanks [@43081j](https://togithub.com/43081j)!
- CPC: Add `CJS` for `core/components` - [#28440](https://togithub.com/storybookjs/storybook/pull/28440), thanks [@ndelangen](https://togithub.com/ndelangen)!
- CPC: Core Package Consolidation - [#27039](https://togithub.com/storybookjs/storybook/pull/27039), thanks [@ndelangen](https://togithub.com/ndelangen)!
- CSF: Automatically extract componentPath - [#24396](https://togithub.com/storybookjs/storybook/pull/24396), thanks [@shilman](https://togithub.com/shilman)!
- CSF: Rename `preview.js` `globals` to `initialGlobals` - [#27517](https://togithub.com/storybookjs/storybook/pull/27517), thanks [@shilman](https://togithub.com/shilman)!
- Dependencies: Allow esbuild version 0.21.x - [#28245](https://togithub.com/storybookjs/storybook/pull/28245), thanks [@edoardocavazza](https://togithub.com/edoardocavazza)!
- Dependency: bump `markdown-to-jsx` to v7.4.5 - [#26694](https://togithub.com/storybookjs/storybook/pull/26694), thanks [@xyy94813](https://togithub.com/xyy94813)!
- Dependency: Bump Express.js - [#26680](https://togithub.com/storybookjs/storybook/pull/26680), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!
- Dependency: Remove node-fetch - [#28160](https://togithub.com/storybookjs/storybook/pull/28160), thanks [@yk-kd](https://togithub.com/yk-kd)!
- Dependency: Upgrade `webpack-virtual-modules` to 0.6.0 - [#27102](https://togithub.com/storybookjs/storybook/pull/27102), thanks [@fyodorovandrei](https://togithub.com/fyodorovandrei)!
- Deps: Migrate from `read-pkg-up` to `fd-package-json` - [#28272](https://togithub.com/storybookjs/storybook/pull/28272), thanks [@43081j](https://togithub.com/43081j)!
- Docs-tools: Replace `doctrine` with `jsdoc-type-pratt-parser` - [#26305](https://togithub.com/storybookjs/storybook/pull/26305), thanks [@43081j](https://togithub.com/43081j)!
- Docs: Filter mount stories from `Stories` block, error when referenced in MDX - [#28434](https://togithub.com/storybookjs/storybook/pull/28434), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- Docs: Fix `Typeset` Doc block `fontSizes` type - [#26475](https://togithub.com/storybookjs/storybook/pull/26475), thanks [@noranda](https://togithub.com/noranda)!
- Index: Fix MDX to override project-level autodocs - [#28461](https://togithub.com/storybookjs/storybook/pull/28461), thanks [@shilman](https://togithub.com/shilman)!
- Indexer: Improve locating stories with specials chars in path - [#22110](https://togithub.com/storybookjs/storybook/pull/22110), thanks [@jankoritak](https://togithub.com/jankoritak)!
- Next: Set default targets for next babel config - [#28443](https://togithub.com/storybookjs/storybook/pull/28443), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- Next.js: Set `env.bugfixes` in SWC so destructuring is never transpiled - [#28363](https://togithub.com/storybookjs/storybook/pull/28363), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- React: Export ButtonProps and HeaderProps in CLI templates - [#28487](https://togithub.com/storybookjs/storybook/pull/28487), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!
- SWC: Set default targets for swc that align with our esbuild targets - [#28435](https://togithub.com/storybookjs/storybook/pull/28435), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- Telemetry: Stop prompting about crash reports in CI - [#28433](https://togithub.com/storybookjs/storybook/pull/28433), thanks [@yannbf](https://togithub.com/yannbf)!
- Test: Add args to `mount` in react, svelte, and vue renderers - [#28385](https://togithub.com/storybookjs/storybook/pull/28385), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- Test: Add mount property to the story context - [#28383](https://togithub.com/storybookjs/storybook/pull/28383), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- Test: Enhance the context with canvas when the test package is used - [#28368](https://togithub.com/storybookjs/storybook/pull/28368), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- Test: Improve MountMustBeDestructuredError error message - [#28468](https://togithub.com/storybookjs/storybook/pull/28468), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- Test: Reactive spies preserve the this instance - [#28445](https://togithub.com/storybookjs/storybook/pull/28445), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)!
- Types: Fix type implementation for `CompatibleString` - [#27180](https://togithub.com/storybookjs/storybook/pull/27180), thanks [@sni-J](https://togithub.com/sni-J)!
- Vite: Fix asset warning by externalizing sb-common-assets font - [#27110](https://togithub.com/storybookjs/storybook/pull/27110), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!
- Vue3: Enable new hydration mismatch compile time flag - [#27192](https://togithub.com/storybookjs/storybook/pull/27192), thanks [@Cherry](https://togithub.com/Cherry)!
- Webpack5/Vite: Fix sourcemaps - [#27171](https://togithub.com/storybookjs/storybook/pull/27171), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!
drizzle-team/drizzle-kit-mirror (drizzle-kit)
### [`v0.23.0`](https://togithub.com/drizzle-team/drizzle-kit-mirror/compare/v0.22.8...3b1ce4fc1b6ba1bb5ec8208e3b799fa05559e442)
[Compare Source](https://togithub.com/drizzle-team/drizzle-kit-mirror/compare/v0.22.8...v0.23.0)
drizzle-team/drizzle-orm (drizzle-orm)
### [`v0.32.0`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.32.0)
[Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0.31.4...0.32.0)
### Release notes for `drizzle-orm@0.32.0` and `drizzle-kit@0.23.0`
> It's not mandatory to upgrade both packages, but if you want to use the new features in both queries and migrations, you will need to upgrade both packages
#### New Features
##### 🎉 MySQL `$returningId()` function
MySQL itself doesn't have native support for `RETURNING` after using `INSERT`. There is only one way to do it for `primary keys` with `autoincrement` (or `serial`) types, where you can access `insertId` and `affectedRows` fields. We've prepared an automatic way for you to handle such cases with Drizzle and automatically receive all inserted IDs as separate objects
```ts
import { boolean, int, text, mysqlTable } from 'drizzle-orm/mysql-core';
const usersTable = mysqlTable('users', {
id: int('id').primaryKey(),
name: text('name').notNull(),
verified: boolean('verified').notNull().default(false),
});
const result = await db.insert(usersTable).values([{ name: 'John' }, { name: 'John1' }]).$returningId();
// ^? { id: number }[]
```
Also with Drizzle, you can specify a `primary key` with `$default` function that will generate custom primary keys at runtime. We will also return those generated keys for you in the `$returningId()` call
```ts
import { varchar, text, mysqlTable } from 'drizzle-orm/mysql-core';
import { createId } from '@paralleldrive/cuid2';
const usersTableDefFn = mysqlTable('users_default_fn', {
customId: varchar('id', { length: 256 }).primaryKey().$defaultFn(createId),
name: text('name').notNull(),
});
const result = await db.insert(usersTableDefFn).values([{ name: 'John' }, { name: 'John1' }]).$returningId();
// ^? { customId: string }[]
```
> If there is no primary keys -> type will be `{}[]` for such queries
##### 🎉 PostgreSQL Sequences
You can now specify sequences in Postgres within any schema you need and define all the available properties
##### **Example**
```ts
import { pgSchema, pgSequence } from "drizzle-orm/pg-core";
// No params specified
export const customSequence = pgSequence("name");
// Sequence with params
export const customSequence = pgSequence("name", {
startWith: 100,
maxValue: 10000,
minValue: 100,
cycle: true,
cache: 10,
increment: 2
});
// Sequence in custom schema
export const customSchema = pgSchema('custom_schema');
export const customSequence = customSchema.sequence("name");
```
##### 🎉 PostgreSQL Identity Columns
[Source](https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_serial): As mentioned, the `serial` type in Postgres is outdated and should be deprecated. Ideally, you should not use it. `Identity columns` are the recommended way to specify sequences in your schema, which is why we are introducing the `identity columns` feature
##### **Example**
```ts
import { pgTable, integer, text } from 'drizzle-orm/pg-core'
export const ingredients = pgTable("ingredients", {
id: integer("id").primaryKey().generatedAlwaysAsIdentity({ startWith: 1000 }),
name: text("name").notNull(),
description: text("description"),
});
```
You can specify all properties available for sequences in the `.generatedAlwaysAsIdentity()` function. Additionally, you can specify custom names for these sequences
PostgreSQL docs [reference](https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-PARMS-GENERATED-IDENTITY).
##### 🎉 PostgreSQL Generated Columns
You can now specify generated columns on any column supported by PostgreSQL to use with generated columns
##### **Example** with generated column for `tsvector`
> Note: we will add `tsVector` column type before latest release
```ts
import { SQL, sql } from "drizzle-orm";
import { customType, index, integer, pgTable, text } from "drizzle-orm/pg-core";
const tsVector = customType<{ data: string }>({
dataType() {
return "tsvector";
},
});
export const test = pgTable(
"test",
{
id: integer("id").primaryKey().generatedAlwaysAsIdentity(),
content: text("content"),
contentSearch: tsVector("content_search", {
dimensions: 3,
}).generatedAlwaysAs(
(): SQL => sql`to_tsvector('english', ${test.content})`
),
},
(t) => ({
idx: index("idx_content_search").using("gin", t.contentSearch),
})
);
```
In case you don't need to reference any columns from your table, you can use just `sql` template or a `string`
```ts
export const users = pgTable("users", {
id: integer("id"),
name: text("name"),
generatedName: text("gen_name").generatedAlwaysAs(sql`hello world!`),
generatedName1: text("gen_name1").generatedAlwaysAs("hello world!"),
}),
```
##### 🎉 MySQL Generated Columns
You can now specify generated columns on any column supported by MySQL to use with generated columns
You can specify both `stored` and `virtual` options, for more info you can check [MySQL docs](https://dev.mysql.com/doc/refman/8.4/en/create-table-generated-columns.html)
Also MySQL has a few limitation for such columns usage, which is described [here](https://dev.mysql.com/doc/refman/8.4/en/alter-table-generated-columns.html)
Drizzle Kit will also have limitations for `push` command:
1. You can't change the generated constraint expression and type using `push`. Drizzle-kit will ignore this change. To make it work, you would need to `drop the column`, `push`, and then `add a column with a new expression`. This was done due to the complex mapping from the database side, where the schema expression will be modified on the database side and, on introspection, we will get a different string. We can't be sure if you changed this expression or if it was changed and formatted by the database. As long as these are generated columns and `push` is mostly used for prototyping on a local database, it should be fast to `drop` and `create` generated columns. Since these columns are `generated`, all the data will be restored
2. `generate` should have no limitations
##### **Example**
```ts
export const users = mysqlTable("users", {
id: int("id"),
id2: int("id2"),
name: text("name"),
generatedName: text("gen_name").generatedAlwaysAs(
(): SQL => sql`${schema2.users.name} || 'hello'`,
{ mode: "stored" }
),
generatedName1: text("gen_name1").generatedAlwaysAs(
(): SQL => sql`${schema2.users.name} || 'hello'`,
{ mode: "virtual" }
),
}),
```
In case you don't need to reference any columns from your table, you can use just `sql` template or a `string` in `.generatedAlwaysAs()`
##### 🎉 SQLite Generated Columns
You can now specify generated columns on any column supported by SQLite to use with generated columns
You can specify both `stored` and `virtual` options, for more info you can check [SQLite docs](https://www.sqlite.org/gencol.html)
Also SQLite has a few limitation for such columns usage, which is described [here](https://www.sqlite.org/gencol.html)
Drizzle Kit will also have limitations for `push` and `generate` command:
1. You can't change the generated constraint expression with the stored type in an existing table. You would need to delete this table and create it again. This is due to SQLite limitations for such actions. We will handle this case in future releases (it will involve the creation of a new table with data migration).
2. You can't add a `stored` generated expression to an existing column for the same reason as above. However, you can add a `virtual` expression to an existing column.
3. You can't change a `stored` generated expression in an existing column for the same reason as above. However, you can change a `virtual` expression.
4. You can't change the generated constraint type from `virtual` to `stored` for the same reason as above. However, you can change from `stored` to `virtual`.
#### New Drizzle Kit features
##### 🎉 Migrations support for all the new orm features
PostgreSQL sequences, identity columns and generated columns for all dialects
##### 🎉 New flag `--force` for `drizzle-kit push`
You can auto-accept all data-loss statements using the push command. It's only available in CLI parameters. Make sure you always use it if you are fine with running data-loss statements on your database
##### 🎉 New `migrations` flag `prefix`
You can now customize migration file prefixes to make the format suitable for your migration tools:
- `index` is the default type and will result in `0001_name.sql` file names;
- `supabase` and `timestamp` are equal and will result in `20240627123900_name.sql` file names;
- `unix` will result in unix seconds prefixes `1719481298_name.sql` file names;
- `none` will omit the prefix completely;
##### **Example**: Supabase migrations format
```ts
import { defineConfig } from "drizzle-kit";
export default defineConfig({
dialect: "postgresql",
migrations: {
prefix: 'supabase'
}
});
```
eslint/eslint (eslint)
### [`v9.7.0`](https://togithub.com/eslint/eslint/releases/tag/v9.7.0)
[Compare Source](https://togithub.com/eslint/eslint/compare/v9.6.0...v9.7.0)
#### Features
- [`7bd9839`](https://togithub.com/eslint/eslint/commit/7bd98398f112da020eddcda2c26cf4cc563af004) feat: add support for es2025 duplicate named capturing groups ([#18630](https://togithub.com/eslint/eslint/issues/18630)) (Yosuke Ota)
- [`1381394`](https://togithub.com/eslint/eslint/commit/1381394a75b5902ce588455765a3919e2f138a7a) feat: add `regex` option in `no-restricted-imports` ([#18622](https://togithub.com/eslint/eslint/issues/18622)) (Nitin Kumar)
#### Bug Fixes
- [`14e9f81`](https://togithub.com/eslint/eslint/commit/14e9f81ccdb51d2b915b68f442d48ced0a691646) fix: destructuring in catch clause in `no-unused-vars` ([#18636](https://togithub.com/eslint/eslint/issues/18636)) (Francesco Trotta)
#### Documentation
- [`9f416db`](https://togithub.com/eslint/eslint/commit/9f416db680ad01716a769296085bf3eb93f76424) docs: Add Powered by Algolia label to the search. ([#18633](https://togithub.com/eslint/eslint/issues/18633)) (Amaresh S M)
- [`c8d26cb`](https://togithub.com/eslint/eslint/commit/c8d26cb4a2f9d89bfc1914167d3e9f1d3314ffe7) docs: Open JS Foundation -> OpenJS Foundation ([#18649](https://togithub.com/eslint/eslint/issues/18649)) (Milos Djermanovic)
- [`6e79ac7`](https://togithub.com/eslint/eslint/commit/6e79ac76f44b34c24a3e92c20713fbafe1dcbae2) docs: `loadESLint` does not support option `cwd` ([#18641](https://togithub.com/eslint/eslint/issues/18641)) (Francesco Trotta)
#### Chores
- [`793b718`](https://togithub.com/eslint/eslint/commit/793b7180119e7e440d685defb2ee01597574ef1e) chore: upgrade [@eslint/js](https://togithub.com/eslint/js)[@9](https://togithub.com/9).7.0 ([#18680](https://togithub.com/eslint/eslint/issues/18680)) (Francesco Trotta)
- [`7ed6f9a`](https://togithub.com/eslint/eslint/commit/7ed6f9a4db702bbad941422f456451a8dba7a450) chore: package.json update for [@eslint/js](https://togithub.com/eslint/js) release (Jenkins)
- [`7bcda76`](https://togithub.com/eslint/eslint/commit/7bcda760369c44d0f1131fccaaf1ccfed5af85f1) refactor: Add type references ([#18652](https://togithub.com/eslint/eslint/issues/18652)) (Nicholas C. Zakas)
- [`51bf57c`](https://togithub.com/eslint/eslint/commit/51bf57c493a65baeee3a935f2d0e52e27271fb48) chore: add tech sponsors through actions ([#18624](https://togithub.com/eslint/eslint/issues/18624)) (Strek)
- [`6320732`](https://togithub.com/eslint/eslint/commit/6320732c3e2a52a220552e348108c53c60f9ef7a) refactor: don't use `parent` property in `NodeEventGenerator` ([#18653](https://togithub.com/eslint/eslint/issues/18653)) (Milos Djermanovic)
- [`9e6d640`](https://togithub.com/eslint/eslint/commit/9e6d6405c3ee774c2e716a3453ede9696ced1be7) refactor: move "Parsing error" prefix adding to Linter ([#18650](https://togithub.com/eslint/eslint/issues/18650)) (Milos Djermanovic)
jsx-eslint/eslint-plugin-react (eslint-plugin-react)
### [`v7.34.4`](https://togithub.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7344---20240713)
[Compare Source](https://togithub.com/jsx-eslint/eslint-plugin-react/compare/v7.34.3...v7.34.4)
##### Fixed
- \[`prop-types`]: fix `className` missing in prop validation false negative ([#3749] [@akulsr0](https://togithub.com/akulsr0))
- \[`sort-prop-types`]: Check for undefined before accessing `node.typeAnnotation.typeAnnotation` ([#3779] [@tylerlaprade](https://togithub.com/tylerlaprade))
[7.34.4]: https://togithub.com/jsx-eslint/eslint-plugin-react/compare/v7.34.3...v7.34.4
[#3779]: https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3779
[#3749]: https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3749
webpro-nl/knip (knip)
### [`v5.26.0`](https://togithub.com/webpro-nl/knip/compare/5.25.2...3a7fcc9a3520181671e797486a10fe41c5b2fd38)
[Compare Source](https://togithub.com/webpro-nl/knip/compare/5.25.2...5.26.0)
### [`v5.25.2`](https://togithub.com/webpro-nl/knip/releases/tag/5.25.2)
[Compare Source](https://togithub.com/webpro-nl/knip/compare/5.25.1...5.25.2)
- Include additional workspaces when loading manifests (resolves [#722](https://togithub.com/webpro-nl/knip/issues/722)) ([`ca03fd8`](https://togithub.com/webpro-nl/knip/commit/ca03fd83))
- Move & refactor setRefs → findInternalReferences ([`deeb2ac`](https://togithub.com/webpro-nl/knip/commit/deeb2acc))
- Minor refactors ([`09fc536`](https://togithub.com/webpro-nl/knip/commit/09fc5363))
- Always pre-set `moduleResolution: bundler` if tsconfig.json ([`3c13118`](https://togithub.com/webpro-nl/knip/commit/3c131184))
- No need to publish twice here ([`34be850`](https://togithub.com/webpro-nl/knip/commit/34be850f))
- Minor refactors ([`c1db1ec`](https://togithub.com/webpro-nl/knip/commit/c1db1ec2))
- Update docs re. shared/isolated workspaces ([`699fd28`](https://togithub.com/webpro-nl/knip/commit/699fd28b))
- Set `moduleResolution: bundler` if not set and don't share it (resolves [#719](https://togithub.com/webpro-nl/knip/issues/719)) ([`2c24678`](https://togithub.com/webpro-nl/knip/commit/2c246784))
- fix: Use `parseFragment` instead of `text` node which breaks formatting ([#720](https://togithub.com/webpro-nl/knip/issues/720)) ([`3201c07`](https://togithub.com/webpro-nl/knip/commit/3201c076))
prettier/prettier (prettier)
### [`v3.3.3`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#333)
[Compare Source](https://togithub.com/prettier/prettier/compare/3.3.2...3.3.3)
[diff](https://togithub.com/prettier/prettier/compare/3.3.2...3.3.3)
##### Add parentheses for nullish coalescing in ternary ([#16391](https://togithub.com/prettier/prettier/pull/16391) by [@cdignam-segment](https://togithub.com/cdignam-segment))
This change adds clarity to operator precedence.
```js
// Input
foo ? bar ?? foo : baz;
foo ?? bar ? a : b;
a ? b : foo ?? bar;
// Prettier 3.3.2
foo ? bar ?? foo : baz;
foo ?? bar ? a : b;
a ? b : foo ?? bar;
// Prettier 3.3.3
foo ? (bar ?? foo) : baz;
(foo ?? bar) ? a : b;
a ? b : (foo ?? bar);
```
##### Add parentheses for decorator expressions ([#16458](https://togithub.com/prettier/prettier/pull/16458) by [@y-schneider](https://togithub.com/y-schneider))
Prevent parentheses around member expressions or tagged template literals from being removed to follow the stricter parsing rules of TypeScript 5.5.
```ts
// Input
@(foo`tagged template`)
class X {}
// Prettier 3.3.2
@foo`tagged template`
class X {}
// Prettier 3.3.3
@(foo`tagged template`)
class X {}
```
##### Support `@let` declaration syntax ([#16474](https://togithub.com/prettier/prettier/pull/16474) by [@sosukesuzuki](https://togithub.com/sosukesuzuki))
Adds support for Angular v18 `@let` declaration syntax.
Please see the following code example. The `@let` declaration allows you to define local variables within the template:
```html
@let name = 'Frodo';
Dashboard for {{name}}
Hello, {{name}}
```
For more details, please refer to the excellent blog post by the Angular Team: [Introducing @let in Angular](https://blog.angular.dev/introducing-let-in-angular-686f9f383f0f).
We also appreciate the Angular Team for kindly answering our questions to implement this feature.
typescript-eslint/typescript-eslint (typescript-eslint)
### [`v8.0.0-alpha.42`](https://togithub.com/typescript-eslint/typescript-eslint/compare/d1d282e78fb67a2471430d093affdf97b7dc4f04...6bd421159dc1ba6cb0ab41213d7abf7efa0b6f7d)
[Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/d1d282e78fb67a2471430d093affdf97b7dc4f04...6bd421159dc1ba6cb0ab41213d7abf7efa0b6f7d)
vitest-dev/vitest (vitest)
### [`v2.0.2`](https://togithub.com/vitest-dev/vitest/compare/v2.0.1...v2.0.2)
[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v2.0.1...v2.0.2)
Configuration
📅 Schedule: Branch creation - "after 9am and before 10am" in timezone Europe/Paris, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
1.1.0
->1.1.1
9.6.0
->9.7.0
8.1.11
->8.2.2
8.1.11
->8.2.2
8.1.11
->8.2.2
8.1.11
->8.2.2
8.1.11
->8.2.2
8.1.11
->8.2.2
0.22.8
->0.23.0
0.31.4
->0.32.0
9.6.0
->9.7.0
7.34.3
->7.34.4
5.25.1
->5.26.0
3.3.2
->3.3.3
8.1.11
->8.2.2
8.0.0-alpha.41
->8.0.0-alpha.42
2.0.1
->2.0.2
Release Notes
eslint/rewrite (@eslint/compat)
### [`v1.1.1`](https://togithub.com/eslint/rewrite/compare/2a7bed41976f94495f7ba46f459f1de9d3305664...20ba992f0eac1af2d6e29b30a5b6612d4f552210) [Compare Source](https://togithub.com/eslint/rewrite/compare/2a7bed41976f94495f7ba46f459f1de9d3305664...20ba992f0eac1af2d6e29b30a5b6612d4f552210)eslint/eslint (@eslint/js)
### [`v9.7.0`](https://togithub.com/eslint/eslint/compare/v9.6.0...7ed6f9a4db702bbad941422f456451a8dba7a450) [Compare Source](https://togithub.com/eslint/eslint/compare/v9.6.0...v9.7.0)storybookjs/storybook (@storybook/addon-a11y)
### [`v8.2.2`](https://togithub.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#822) [Compare Source](https://togithub.com/storybookjs/storybook/compare/v8.2.1...v8.2.2) - CPC: Add `ESM` export to `docs-tools` & `node-logger` packages - [#28539](https://togithub.com/storybookjs/storybook/pull/28539), thanks [@ndelangen](https://togithub.com/ndelangen)! - CPC: Fix missing dependency in `@storybook/addon-interactions` - [#28518](https://togithub.com/storybookjs/storybook/pull/28518), thanks [@ndelangen](https://togithub.com/ndelangen)! - CPC: Revert renames of panels, addon_ids - [#28524](https://togithub.com/storybookjs/storybook/pull/28524), thanks [@ndelangen](https://togithub.com/ndelangen)! ### [`v8.2.1`](https://togithub.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#821) [Compare Source](https://togithub.com/storybookjs/storybook/compare/v8.2.0...v8.2.1) - CPC: Fix type generation - [#28507](https://togithub.com/storybookjs/storybook/pull/28507), thanks [@ndelangen](https://togithub.com/ndelangen)! - Types: Update type signatures of objects and functions - [#28503](https://togithub.com/storybookjs/storybook/pull/28503), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)! ### [`v8.2.0`](https://togithub.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#820) [Compare Source](https://togithub.com/storybookjs/storybook/compare/v8.1.11...v8.2.0) Hold onto your hats! Storybook 8.2 has dropped, packed with a treasure trove of new features and bug fixes: - 🪝 New test hook `beforeAll` - 🕹️ Enhanced `play` function - 📦 Portable stories that let you use your stories in other testing tools - 🎁 Consolidated dependency to bring you better performance in a smaller package - ✨ Brand new onboarding experience to get you up to speed quicker - 💯 Hundreds more improvementsList of all updates
- Addon Controls: Fix saving on Windows - [#28485](https://togithub.com/storybookjs/storybook/pull/28485), thanks [@ghengeveld](https://togithub.com/ghengeveld)! - Addon Interactions: Use unique keys when rendering array nodes in panel - [#28423](https://togithub.com/storybookjs/storybook/pull/28423), thanks [@yannbf](https://togithub.com/yannbf)! - Addon Onboarding: Add icons for dev/test/doc to the splash screen - [#28389](https://togithub.com/storybookjs/storybook/pull/28389), thanks [@ghengeveld](https://togithub.com/ghengeveld)! - Addon Onboarding: New design and flow based on Save from Controls - [#28327](https://togithub.com/storybookjs/storybook/pull/28327), thanks [@ghengeveld](https://togithub.com/ghengeveld)! - Addon Onboarding: Trigger onboarding during init for Vue and Angular projects - [#28482](https://togithub.com/storybookjs/storybook/pull/28482), thanks [@ghengeveld](https://togithub.com/ghengeveld)! - Addon-A11y: Fix property default assignment - [#27224](https://togithub.com/storybookjs/storybook/pull/27224), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)! - Angular: Allow format configuration of custom source preview - [#28305](https://togithub.com/storybookjs/storybook/pull/28305), thanks [@64BitAsura](https://togithub.com/64BitAsura)! - Angular: Allow outputPath object syntax - [#28144](https://togithub.com/storybookjs/storybook/pull/28144), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)! - Angular: Cleanup types - [#27189](https://togithub.com/storybookjs/storybook/pull/27189), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)! - Angular: Fix enableProdMode setting - [#28415](https://togithub.com/storybookjs/storybook/pull/28415), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)! - Angular: Fix wrong detection of standalone components - [#27353](https://togithub.com/storybookjs/storybook/pull/27353), thanks [@dario-baumberger](https://togithub.com/dario-baumberger)! - Angular: Introduce preserveSymlink builder option - [#28145](https://togithub.com/storybookjs/storybook/pull/28145), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)! - Angular: Update outputPath default value in angular-cli-webpack.js - [#28418](https://togithub.com/storybookjs/storybook/pull/28418), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)! - Babel: Ensure story files not transpiled earlier than ES2017 - [#28469](https://togithub.com/storybookjs/storybook/pull/28469), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - Blocks: Fix reference to storybook core - [#28422](https://togithub.com/storybookjs/storybook/pull/28422), thanks [@yannbf](https://togithub.com/yannbf)! - Blocks: Prebundle `tocbot` - [#28318](https://togithub.com/storybookjs/storybook/pull/28318), thanks [@shilman](https://togithub.com/shilman)! - Build: Change require/import order, so that import has higher prio if both are specified - [#27730](https://togithub.com/storybookjs/storybook/pull/27730), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - Build: Ignore ts stories in cra/default-js sandbox - [#28354](https://togithub.com/storybookjs/storybook/pull/28354), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)! - CLI: Add `--no-dev` option to `init` - [#26918](https://togithub.com/storybookjs/storybook/pull/26918), thanks [@fastfrwrd](https://togithub.com/fastfrwrd)! - CLI: Add optional `--dev` and `--no-dev` options to `storybook init` CLI - [#26918](https://togithub.com/storybookjs/storybook/pull/26918), thanks [@fastfrwrd](https://togithub.com/fastfrwrd)! - CLI: Add support for Nuxt to project init - [#26884](https://togithub.com/storybookjs/storybook/pull/26884), thanks [@tobiasdiez](https://togithub.com/tobiasdiez)! - CLI: Fix CLI always asking all automigrations - [#28238](https://togithub.com/storybookjs/storybook/pull/28238), thanks [@ndelangen](https://togithub.com/ndelangen)! - CLI: Improve error message when fetching CLI version - [#28289](https://togithub.com/storybookjs/storybook/pull/28289), thanks [@yannbf](https://togithub.com/yannbf)! - CLI: Include `@storybook/addon-svelte-csf` when initializing new projects - [#27070](https://togithub.com/storybookjs/storybook/pull/27070), thanks [@benmccann](https://togithub.com/benmccann)! - CLI: Prebundle get-npm-tarball-url and [@ndelangen/get-tarball](https://togithub.com/ndelangen/get-tarball) - [#28481](https://togithub.com/storybookjs/storybook/pull/28481), thanks [@ndelangen](https://togithub.com/ndelangen)! - Config: Apply JavaScript-only story glob extensions for JavaScript projects - [#28338](https://togithub.com/storybookjs/storybook/pull/28338), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)! - Controls: Fix date picker control validation and assignment - [#26695](https://togithub.com/storybookjs/storybook/pull/26695), thanks [@leeovictor](https://togithub.com/leeovictor)! - Controls: Fix grouped Radio controls to have the same name - [#23374](https://togithub.com/storybookjs/storybook/pull/23374), thanks [@srapilly](https://togithub.com/srapilly)! - Controls: Throttling makes Color control lagging - [#22615](https://togithub.com/storybookjs/storybook/pull/22615), thanks [@gitstart](https://togithub.com/gitstart)! - Core: Add context as a property of the context (self-referencing) - [#28353](https://togithub.com/storybookjs/storybook/pull/28353), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - Core: Add support for `beforeAll` hook - [#28255](https://togithub.com/storybookjs/storybook/pull/28255), thanks [@ghengeveld](https://togithub.com/ghengeveld)! - Core: Fix startup hang caused by watchStorySpecifiers - [#27016](https://togithub.com/storybookjs/storybook/pull/27016), thanks [@heyimalex](https://togithub.com/heyimalex)! - Core: Make sure StorybookError message shows up in browser console and interactions panel - [#28464](https://togithub.com/storybookjs/storybook/pull/28464), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - Core: Migrate from `pkg-dir` to `fd-package-json` - [#28270](https://togithub.com/storybookjs/storybook/pull/28270), thanks [@43081j](https://togithub.com/43081j)! - Core: Refactor phases to run in order `loading` -> `rendering` -> `playing` - [#28431](https://togithub.com/storybookjs/storybook/pull/28431), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - Core: Remove more `.stories.mdx` handling - [#25973](https://togithub.com/storybookjs/storybook/pull/25973), thanks [@JReinhold](https://togithub.com/JReinhold)! - Core: Remove util dependency - [#28191](https://togithub.com/storybookjs/storybook/pull/28191), thanks [@43081j](https://togithub.com/43081j)! - CPC: Add `CJS` for `core/components` - [#28440](https://togithub.com/storybookjs/storybook/pull/28440), thanks [@ndelangen](https://togithub.com/ndelangen)! - CPC: Core Package Consolidation - [#27039](https://togithub.com/storybookjs/storybook/pull/27039), thanks [@ndelangen](https://togithub.com/ndelangen)! - CSF: Automatically extract componentPath - [#24396](https://togithub.com/storybookjs/storybook/pull/24396), thanks [@shilman](https://togithub.com/shilman)! - CSF: Rename `preview.js` `globals` to `initialGlobals` - [#27517](https://togithub.com/storybookjs/storybook/pull/27517), thanks [@shilman](https://togithub.com/shilman)! - Dependencies: Allow esbuild version 0.21.x - [#28245](https://togithub.com/storybookjs/storybook/pull/28245), thanks [@edoardocavazza](https://togithub.com/edoardocavazza)! - Dependency: bump `markdown-to-jsx` to v7.4.5 - [#26694](https://togithub.com/storybookjs/storybook/pull/26694), thanks [@xyy94813](https://togithub.com/xyy94813)! - Dependency: Bump Express.js - [#26680](https://togithub.com/storybookjs/storybook/pull/26680), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)! - Dependency: Remove node-fetch - [#28160](https://togithub.com/storybookjs/storybook/pull/28160), thanks [@yk-kd](https://togithub.com/yk-kd)! - Dependency: Upgrade `webpack-virtual-modules` to 0.6.0 - [#27102](https://togithub.com/storybookjs/storybook/pull/27102), thanks [@fyodorovandrei](https://togithub.com/fyodorovandrei)! - Deps: Migrate from `read-pkg-up` to `fd-package-json` - [#28272](https://togithub.com/storybookjs/storybook/pull/28272), thanks [@43081j](https://togithub.com/43081j)! - Docs-tools: Replace `doctrine` with `jsdoc-type-pratt-parser` - [#26305](https://togithub.com/storybookjs/storybook/pull/26305), thanks [@43081j](https://togithub.com/43081j)! - Docs: Filter mount stories from `Stories` block, error when referenced in MDX - [#28434](https://togithub.com/storybookjs/storybook/pull/28434), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - Docs: Fix `Typeset` Doc block `fontSizes` type - [#26475](https://togithub.com/storybookjs/storybook/pull/26475), thanks [@noranda](https://togithub.com/noranda)! - Index: Fix MDX to override project-level autodocs - [#28461](https://togithub.com/storybookjs/storybook/pull/28461), thanks [@shilman](https://togithub.com/shilman)! - Indexer: Improve locating stories with specials chars in path - [#22110](https://togithub.com/storybookjs/storybook/pull/22110), thanks [@jankoritak](https://togithub.com/jankoritak)! - Next: Set default targets for next babel config - [#28443](https://togithub.com/storybookjs/storybook/pull/28443), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - Next.js: Set `env.bugfixes` in SWC so destructuring is never transpiled - [#28363](https://togithub.com/storybookjs/storybook/pull/28363), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - React: Export ButtonProps and HeaderProps in CLI templates - [#28487](https://togithub.com/storybookjs/storybook/pull/28487), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)! - SWC: Set default targets for swc that align with our esbuild targets - [#28435](https://togithub.com/storybookjs/storybook/pull/28435), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - Telemetry: Stop prompting about crash reports in CI - [#28433](https://togithub.com/storybookjs/storybook/pull/28433), thanks [@yannbf](https://togithub.com/yannbf)! - Test: Add args to `mount` in react, svelte, and vue renderers - [#28385](https://togithub.com/storybookjs/storybook/pull/28385), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - Test: Add mount property to the story context - [#28383](https://togithub.com/storybookjs/storybook/pull/28383), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - Test: Enhance the context with canvas when the test package is used - [#28368](https://togithub.com/storybookjs/storybook/pull/28368), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - Test: Improve MountMustBeDestructuredError error message - [#28468](https://togithub.com/storybookjs/storybook/pull/28468), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - Test: Reactive spies preserve the this instance - [#28445](https://togithub.com/storybookjs/storybook/pull/28445), thanks [@kasperpeulen](https://togithub.com/kasperpeulen)! - Types: Fix type implementation for `CompatibleString` - [#27180](https://togithub.com/storybookjs/storybook/pull/27180), thanks [@sni-J](https://togithub.com/sni-J)! - Vite: Fix asset warning by externalizing sb-common-assets font - [#27110](https://togithub.com/storybookjs/storybook/pull/27110), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)! - Vue3: Enable new hydration mismatch compile time flag - [#27192](https://togithub.com/storybookjs/storybook/pull/27192), thanks [@Cherry](https://togithub.com/Cherry)! - Webpack5/Vite: Fix sourcemaps - [#27171](https://togithub.com/storybookjs/storybook/pull/27171), thanks [@valentinpalkovic](https://togithub.com/valentinpalkovic)!drizzle-team/drizzle-kit-mirror (drizzle-kit)
### [`v0.23.0`](https://togithub.com/drizzle-team/drizzle-kit-mirror/compare/v0.22.8...3b1ce4fc1b6ba1bb5ec8208e3b799fa05559e442) [Compare Source](https://togithub.com/drizzle-team/drizzle-kit-mirror/compare/v0.22.8...v0.23.0)drizzle-team/drizzle-orm (drizzle-orm)
### [`v0.32.0`](https://togithub.com/drizzle-team/drizzle-orm/releases/tag/0.32.0) [Compare Source](https://togithub.com/drizzle-team/drizzle-orm/compare/0.31.4...0.32.0) ### Release notes for `drizzle-orm@0.32.0` and `drizzle-kit@0.23.0` > It's not mandatory to upgrade both packages, but if you want to use the new features in both queries and migrations, you will need to upgrade both packages #### New Features ##### 🎉 MySQL `$returningId()` function MySQL itself doesn't have native support for `RETURNING` after using `INSERT`. There is only one way to do it for `primary keys` with `autoincrement` (or `serial`) types, where you can access `insertId` and `affectedRows` fields. We've prepared an automatic way for you to handle such cases with Drizzle and automatically receive all inserted IDs as separate objects ```ts import { boolean, int, text, mysqlTable } from 'drizzle-orm/mysql-core'; const usersTable = mysqlTable('users', { id: int('id').primaryKey(), name: text('name').notNull(), verified: boolean('verified').notNull().default(false), }); const result = await db.insert(usersTable).values([{ name: 'John' }, { name: 'John1' }]).$returningId(); // ^? { id: number }[] ``` Also with Drizzle, you can specify a `primary key` with `$default` function that will generate custom primary keys at runtime. We will also return those generated keys for you in the `$returningId()` call ```ts import { varchar, text, mysqlTable } from 'drizzle-orm/mysql-core'; import { createId } from '@paralleldrive/cuid2'; const usersTableDefFn = mysqlTable('users_default_fn', { customId: varchar('id', { length: 256 }).primaryKey().$defaultFn(createId), name: text('name').notNull(), }); const result = await db.insert(usersTableDefFn).values([{ name: 'John' }, { name: 'John1' }]).$returningId(); // ^? { customId: string }[] ``` > If there is no primary keys -> type will be `{}[]` for such queries ##### 🎉 PostgreSQL Sequences You can now specify sequences in Postgres within any schema you need and define all the available properties ##### **Example** ```ts import { pgSchema, pgSequence } from "drizzle-orm/pg-core"; // No params specified export const customSequence = pgSequence("name"); // Sequence with params export const customSequence = pgSequence("name", { startWith: 100, maxValue: 10000, minValue: 100, cycle: true, cache: 10, increment: 2 }); // Sequence in custom schema export const customSchema = pgSchema('custom_schema'); export const customSequence = customSchema.sequence("name"); ``` ##### 🎉 PostgreSQL Identity Columns [Source](https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_serial): As mentioned, the `serial` type in Postgres is outdated and should be deprecated. Ideally, you should not use it. `Identity columns` are the recommended way to specify sequences in your schema, which is why we are introducing the `identity columns` feature ##### **Example** ```ts import { pgTable, integer, text } from 'drizzle-orm/pg-core' export const ingredients = pgTable("ingredients", { id: integer("id").primaryKey().generatedAlwaysAsIdentity({ startWith: 1000 }), name: text("name").notNull(), description: text("description"), }); ``` You can specify all properties available for sequences in the `.generatedAlwaysAsIdentity()` function. Additionally, you can specify custom names for these sequences PostgreSQL docs [reference](https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-PARMS-GENERATED-IDENTITY). ##### 🎉 PostgreSQL Generated Columns You can now specify generated columns on any column supported by PostgreSQL to use with generated columns ##### **Example** with generated column for `tsvector` > Note: we will add `tsVector` column type before latest release ```ts import { SQL, sql } from "drizzle-orm"; import { customType, index, integer, pgTable, text } from "drizzle-orm/pg-core"; const tsVector = customType<{ data: string }>({ dataType() { return "tsvector"; }, }); export const test = pgTable( "test", { id: integer("id").primaryKey().generatedAlwaysAsIdentity(), content: text("content"), contentSearch: tsVector("content_search", { dimensions: 3, }).generatedAlwaysAs( (): SQL => sql`to_tsvector('english', ${test.content})` ), }, (t) => ({ idx: index("idx_content_search").using("gin", t.contentSearch), }) ); ``` In case you don't need to reference any columns from your table, you can use just `sql` template or a `string` ```ts export const users = pgTable("users", { id: integer("id"), name: text("name"), generatedName: text("gen_name").generatedAlwaysAs(sql`hello world!`), generatedName1: text("gen_name1").generatedAlwaysAs("hello world!"), }), ``` ##### 🎉 MySQL Generated Columns You can now specify generated columns on any column supported by MySQL to use with generated columns You can specify both `stored` and `virtual` options, for more info you can check [MySQL docs](https://dev.mysql.com/doc/refman/8.4/en/create-table-generated-columns.html) Also MySQL has a few limitation for such columns usage, which is described [here](https://dev.mysql.com/doc/refman/8.4/en/alter-table-generated-columns.html) Drizzle Kit will also have limitations for `push` command: 1. You can't change the generated constraint expression and type using `push`. Drizzle-kit will ignore this change. To make it work, you would need to `drop the column`, `push`, and then `add a column with a new expression`. This was done due to the complex mapping from the database side, where the schema expression will be modified on the database side and, on introspection, we will get a different string. We can't be sure if you changed this expression or if it was changed and formatted by the database. As long as these are generated columns and `push` is mostly used for prototyping on a local database, it should be fast to `drop` and `create` generated columns. Since these columns are `generated`, all the data will be restored 2. `generate` should have no limitations ##### **Example** ```ts export const users = mysqlTable("users", { id: int("id"), id2: int("id2"), name: text("name"), generatedName: text("gen_name").generatedAlwaysAs( (): SQL => sql`${schema2.users.name} || 'hello'`, { mode: "stored" } ), generatedName1: text("gen_name1").generatedAlwaysAs( (): SQL => sql`${schema2.users.name} || 'hello'`, { mode: "virtual" } ), }), ``` In case you don't need to reference any columns from your table, you can use just `sql` template or a `string` in `.generatedAlwaysAs()` ##### 🎉 SQLite Generated Columns You can now specify generated columns on any column supported by SQLite to use with generated columns You can specify both `stored` and `virtual` options, for more info you can check [SQLite docs](https://www.sqlite.org/gencol.html) Also SQLite has a few limitation for such columns usage, which is described [here](https://www.sqlite.org/gencol.html) Drizzle Kit will also have limitations for `push` and `generate` command: 1. You can't change the generated constraint expression with the stored type in an existing table. You would need to delete this table and create it again. This is due to SQLite limitations for such actions. We will handle this case in future releases (it will involve the creation of a new table with data migration). 2. You can't add a `stored` generated expression to an existing column for the same reason as above. However, you can add a `virtual` expression to an existing column. 3. You can't change a `stored` generated expression in an existing column for the same reason as above. However, you can change a `virtual` expression. 4. You can't change the generated constraint type from `virtual` to `stored` for the same reason as above. However, you can change from `stored` to `virtual`. #### New Drizzle Kit features ##### 🎉 Migrations support for all the new orm features PostgreSQL sequences, identity columns and generated columns for all dialects ##### 🎉 New flag `--force` for `drizzle-kit push` You can auto-accept all data-loss statements using the push command. It's only available in CLI parameters. Make sure you always use it if you are fine with running data-loss statements on your database ##### 🎉 New `migrations` flag `prefix` You can now customize migration file prefixes to make the format suitable for your migration tools: - `index` is the default type and will result in `0001_name.sql` file names; - `supabase` and `timestamp` are equal and will result in `20240627123900_name.sql` file names; - `unix` will result in unix seconds prefixes `1719481298_name.sql` file names; - `none` will omit the prefix completely; ##### **Example**: Supabase migrations format ```ts import { defineConfig } from "drizzle-kit"; export default defineConfig({ dialect: "postgresql", migrations: { prefix: 'supabase' } }); ```eslint/eslint (eslint)
### [`v9.7.0`](https://togithub.com/eslint/eslint/releases/tag/v9.7.0) [Compare Source](https://togithub.com/eslint/eslint/compare/v9.6.0...v9.7.0) #### Features - [`7bd9839`](https://togithub.com/eslint/eslint/commit/7bd98398f112da020eddcda2c26cf4cc563af004) feat: add support for es2025 duplicate named capturing groups ([#18630](https://togithub.com/eslint/eslint/issues/18630)) (Yosuke Ota) - [`1381394`](https://togithub.com/eslint/eslint/commit/1381394a75b5902ce588455765a3919e2f138a7a) feat: add `regex` option in `no-restricted-imports` ([#18622](https://togithub.com/eslint/eslint/issues/18622)) (Nitin Kumar) #### Bug Fixes - [`14e9f81`](https://togithub.com/eslint/eslint/commit/14e9f81ccdb51d2b915b68f442d48ced0a691646) fix: destructuring in catch clause in `no-unused-vars` ([#18636](https://togithub.com/eslint/eslint/issues/18636)) (Francesco Trotta) #### Documentation - [`9f416db`](https://togithub.com/eslint/eslint/commit/9f416db680ad01716a769296085bf3eb93f76424) docs: Add Powered by Algolia label to the search. ([#18633](https://togithub.com/eslint/eslint/issues/18633)) (Amaresh S M) - [`c8d26cb`](https://togithub.com/eslint/eslint/commit/c8d26cb4a2f9d89bfc1914167d3e9f1d3314ffe7) docs: Open JS Foundation -> OpenJS Foundation ([#18649](https://togithub.com/eslint/eslint/issues/18649)) (Milos Djermanovic) - [`6e79ac7`](https://togithub.com/eslint/eslint/commit/6e79ac76f44b34c24a3e92c20713fbafe1dcbae2) docs: `loadESLint` does not support option `cwd` ([#18641](https://togithub.com/eslint/eslint/issues/18641)) (Francesco Trotta) #### Chores - [`793b718`](https://togithub.com/eslint/eslint/commit/793b7180119e7e440d685defb2ee01597574ef1e) chore: upgrade [@eslint/js](https://togithub.com/eslint/js)[@9](https://togithub.com/9).7.0 ([#18680](https://togithub.com/eslint/eslint/issues/18680)) (Francesco Trotta) - [`7ed6f9a`](https://togithub.com/eslint/eslint/commit/7ed6f9a4db702bbad941422f456451a8dba7a450) chore: package.json update for [@eslint/js](https://togithub.com/eslint/js) release (Jenkins) - [`7bcda76`](https://togithub.com/eslint/eslint/commit/7bcda760369c44d0f1131fccaaf1ccfed5af85f1) refactor: Add type references ([#18652](https://togithub.com/eslint/eslint/issues/18652)) (Nicholas C. Zakas) - [`51bf57c`](https://togithub.com/eslint/eslint/commit/51bf57c493a65baeee3a935f2d0e52e27271fb48) chore: add tech sponsors through actions ([#18624](https://togithub.com/eslint/eslint/issues/18624)) (Strek) - [`6320732`](https://togithub.com/eslint/eslint/commit/6320732c3e2a52a220552e348108c53c60f9ef7a) refactor: don't use `parent` property in `NodeEventGenerator` ([#18653](https://togithub.com/eslint/eslint/issues/18653)) (Milos Djermanovic) - [`9e6d640`](https://togithub.com/eslint/eslint/commit/9e6d6405c3ee774c2e716a3453ede9696ced1be7) refactor: move "Parsing error" prefix adding to Linter ([#18650](https://togithub.com/eslint/eslint/issues/18650)) (Milos Djermanovic)jsx-eslint/eslint-plugin-react (eslint-plugin-react)
### [`v7.34.4`](https://togithub.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7344---20240713) [Compare Source](https://togithub.com/jsx-eslint/eslint-plugin-react/compare/v7.34.3...v7.34.4) ##### Fixed - \[`prop-types`]: fix `className` missing in prop validation false negative ([#3749] [@akulsr0](https://togithub.com/akulsr0)) - \[`sort-prop-types`]: Check for undefined before accessing `node.typeAnnotation.typeAnnotation` ([#3779] [@tylerlaprade](https://togithub.com/tylerlaprade)) [7.34.4]: https://togithub.com/jsx-eslint/eslint-plugin-react/compare/v7.34.3...v7.34.4 [#3779]: https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3779 [#3749]: https://togithub.com/jsx-eslint/eslint-plugin-react/pull/3749webpro-nl/knip (knip)
### [`v5.26.0`](https://togithub.com/webpro-nl/knip/compare/5.25.2...3a7fcc9a3520181671e797486a10fe41c5b2fd38) [Compare Source](https://togithub.com/webpro-nl/knip/compare/5.25.2...5.26.0) ### [`v5.25.2`](https://togithub.com/webpro-nl/knip/releases/tag/5.25.2) [Compare Source](https://togithub.com/webpro-nl/knip/compare/5.25.1...5.25.2) - Include additional workspaces when loading manifests (resolves [#722](https://togithub.com/webpro-nl/knip/issues/722)) ([`ca03fd8`](https://togithub.com/webpro-nl/knip/commit/ca03fd83)) - Move & refactor setRefs → findInternalReferences ([`deeb2ac`](https://togithub.com/webpro-nl/knip/commit/deeb2acc)) - Minor refactors ([`09fc536`](https://togithub.com/webpro-nl/knip/commit/09fc5363)) - Always pre-set `moduleResolution: bundler` if tsconfig.json ([`3c13118`](https://togithub.com/webpro-nl/knip/commit/3c131184)) - No need to publish twice here ([`34be850`](https://togithub.com/webpro-nl/knip/commit/34be850f)) - Minor refactors ([`c1db1ec`](https://togithub.com/webpro-nl/knip/commit/c1db1ec2)) - Update docs re. shared/isolated workspaces ([`699fd28`](https://togithub.com/webpro-nl/knip/commit/699fd28b)) - Set `moduleResolution: bundler` if not set and don't share it (resolves [#719](https://togithub.com/webpro-nl/knip/issues/719)) ([`2c24678`](https://togithub.com/webpro-nl/knip/commit/2c246784)) - fix: Use `parseFragment` instead of `text` node which breaks formatting ([#720](https://togithub.com/webpro-nl/knip/issues/720)) ([`3201c07`](https://togithub.com/webpro-nl/knip/commit/3201c076))prettier/prettier (prettier)
### [`v3.3.3`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#333) [Compare Source](https://togithub.com/prettier/prettier/compare/3.3.2...3.3.3) [diff](https://togithub.com/prettier/prettier/compare/3.3.2...3.3.3) ##### Add parentheses for nullish coalescing in ternary ([#16391](https://togithub.com/prettier/prettier/pull/16391) by [@cdignam-segment](https://togithub.com/cdignam-segment)) This change adds clarity to operator precedence. ```js // Input foo ? bar ?? foo : baz; foo ?? bar ? a : b; a ? b : foo ?? bar; // Prettier 3.3.2 foo ? bar ?? foo : baz; foo ?? bar ? a : b; a ? b : foo ?? bar; // Prettier 3.3.3 foo ? (bar ?? foo) : baz; (foo ?? bar) ? a : b; a ? b : (foo ?? bar); ``` ##### Add parentheses for decorator expressions ([#16458](https://togithub.com/prettier/prettier/pull/16458) by [@y-schneider](https://togithub.com/y-schneider)) Prevent parentheses around member expressions or tagged template literals from being removed to follow the stricter parsing rules of TypeScript 5.5. ```ts // Input @(foo`tagged template`) class X {} // Prettier 3.3.2 @foo`tagged template` class X {} // Prettier 3.3.3 @(foo`tagged template`) class X {} ``` ##### Support `@let` declaration syntax ([#16474](https://togithub.com/prettier/prettier/pull/16474) by [@sosukesuzuki](https://togithub.com/sosukesuzuki)) Adds support for Angular v18 `@let` declaration syntax. Please see the following code example. The `@let` declaration allows you to define local variables within the template: ```html @let name = 'Frodo';Dashboard for {{name}}
Hello, {{name}} ``` For more details, please refer to the excellent blog post by the Angular Team: [Introducing @let in Angular](https://blog.angular.dev/introducing-let-in-angular-686f9f383f0f). We also appreciate the Angular Team for kindly answering our questions to implement this feature.typescript-eslint/typescript-eslint (typescript-eslint)
### [`v8.0.0-alpha.42`](https://togithub.com/typescript-eslint/typescript-eslint/compare/d1d282e78fb67a2471430d093affdf97b7dc4f04...6bd421159dc1ba6cb0ab41213d7abf7efa0b6f7d) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/d1d282e78fb67a2471430d093affdf97b7dc4f04...6bd421159dc1ba6cb0ab41213d7abf7efa0b6f7d)vitest-dev/vitest (vitest)
### [`v2.0.2`](https://togithub.com/vitest-dev/vitest/compare/v2.0.1...v2.0.2) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v2.0.1...v2.0.2)Configuration
📅 Schedule: Branch creation - "after 9am and before 10am" in timezone Europe/Paris, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate. View repository job log here.