[dynamic-import-chunkname]: add allowEmpty option to allow empty leading comments ([#2942], thanks [@JiangWeixian])
[dynamic-import-chunkname]: Allow empty chunk name when webpackMode: 'eager' is set; add suggestions to remove name in eager mode ([#3004], thanks [@amsardesai])
Treat U+30A0 & U+30FB in Katakana Block as CJK (#16796 by @tats-u)
Prettier doesn't treat U+30A0 & U+30FB as Japanese. U+30FB is commonly used in Japanese to represent the delimitation of first and last names of non-Japanese people or “and”. The following “C言語・C++・Go・Rust” means “C language & C++ & Go & Rust” in Japanese.
<!-- Input (--prose-wrap=never) -->
C言
語
・
C++
・
Go
・
Rust
<!-- Prettier 3.4.1 -->
C言語・ C++ ・ Go ・ Rust
<!-- Prettier 3.4.2 -->
C言語・C++・Go・Rust
U+30A0 can be used as the replacement of the - in non-Japanese names (e.g. “Saint-Saëns” (Charles Camille Saint-Saëns) can be represented as “サン゠サーンス” in Japanese), but substituted by ASCII hyphen (U+002D) or U+FF1D (full width hyphen) in many cases (e.g. “サン=サーンス” or “サン=サーンス”).
Fix comments print on class methods with decorators (#16891 by @fisker)
// Input
classA{@​decorator/**
* The method description
*
*/asyncmethod(foo:Foo,bar:Bar){console.log(foo);}}// Prettier 3.4.1
classA{@​decoratorasync/**
* The method description
*
*/method(foo:Foo,bar:Bar){console.log(foo);}}// Prettier 3.4.2
classA{@​decorator/**
* The method description
*
*/asyncmethod(foo:Foo,bar:Bar){console.log(foo);}}
This bug fix is not language-specific. You may see similar change in any languages. This fixes regression in 3.4.0 so change caused by it should yield same formatting as 3.3.3.
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | dependencies | patch | [`^8.57.0` -> `^8.57.1`](https://renovatebot.com/diffs/npm/eslint/8.57.0/8.57.1) |
| [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) | dependencies | minor | [`^2.29.1` -> `^2.31.0`](https://renovatebot.com/diffs/npm/eslint-plugin-import/2.29.1/2.31.0) |
| [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) | dependencies | minor | [`^5.1.3` -> `^5.2.1`](https://renovatebot.com/diffs/npm/eslint-plugin-prettier/5.1.3/5.2.1) |
| [eslint-plugin-vue](https://eslint.vuejs.org) ([source](https://github.com/vuejs/eslint-plugin-vue)) | dependencies | minor | [`^9.26.0` -> `^9.32.0`](https://renovatebot.com/diffs/npm/eslint-plugin-vue/9.26.0/9.32.0) |
| [prettier](https://prettier.io) ([source](https://github.com/prettier/prettier)) | dependencies | minor | [`^3.3.1` -> `^3.4.2`](https://renovatebot.com/diffs/npm/prettier/3.3.1/3.4.2) |
---
### Release Notes
<details>
<summary>eslint/eslint (eslint)</summary>
### [`v8.57.1`](https://github.com/eslint/eslint/releases/tag/v8.57.1)
[Compare Source](https://github.com/eslint/eslint/compare/v8.57.0...v8.57.1)
#### Bug Fixes
- [`a19072f`](https://github.com/eslint/eslint/commit/a19072f9f17ea8266bc66193e5f8a4bf1368835d) fix: add logic to handle fixTypes in the lintText() method ([#​18900](https://github.com/eslint/eslint/issues/18900)) (Francesco Trotta)
- [`04c7188`](https://github.com/eslint/eslint/commit/04c718865b75a95ebfc4d429b8c9fad773228624) fix: Don't lint same file multiple times ([#​18899](https://github.com/eslint/eslint/issues/18899)) (Francesco Trotta)
- [`87ec3c4`](https://github.com/eslint/eslint/commit/87ec3c49dd23ab8892bc19aae711292d03a73483) fix: do not throw when defining a global named `__defineSetter__` ([#​18898](https://github.com/eslint/eslint/issues/18898)) (Francesco Trotta)
- [`60a1267`](https://github.com/eslint/eslint/commit/60a12676878c3fe0623c3b93e7565f003daac5f0) fix: Provide helpful error message for nullish configs ([#​18889](https://github.com/eslint/eslint/issues/18889)) (Milos Djermanovic)
- [`a0dea8e`](https://github.com/eslint/eslint/commit/a0dea8ee01cc4c1b65927562afd3a46418573a02) fix: allow `name` in global ignores, fix `--no-ignore` for non-global ([#​18875](https://github.com/eslint/eslint/issues/18875)) (Milos Djermanovic)
- [`3836bb4`](https://github.com/eslint/eslint/commit/3836bb48d3f12058ec36c2edf2ca1b50eb1c923b) fix: do not crash on error in `fs.walk` filter ([#​18886](https://github.com/eslint/eslint/issues/18886)) (Milos Djermanovic)
- [`2dec349`](https://github.com/eslint/eslint/commit/2dec349199df4cba1554172ad38163cc09ad0a52) fix: skip processor code blocks that match only universal patterns ([#​18880](https://github.com/eslint/eslint/issues/18880)) (Milos Djermanovic)
#### Documentation
- [`6a5add4`](https://github.com/eslint/eslint/commit/6a5add41e80941c7253b56b02815ac316e583006) docs: v8.x Add EOL banner ([#​18744](https://github.com/eslint/eslint/issues/18744)) (Amaresh S M)
- [`b034575`](https://github.com/eslint/eslint/commit/b034575978e3bb57e2edca0d2dc547c7a3abc928) docs: v8.x add version support page to the dropdown ([#​18731](https://github.com/eslint/eslint/issues/18731)) (Amaresh S M)
- [`760ef7d`](https://github.com/eslint/eslint/commit/760ef7d9dbd7b615ccbdc20f02cbc05dbabbada8) docs: v8.x add version support page in the side navbar ([#​18740](https://github.com/eslint/eslint/issues/18740)) (Amaresh S M)
- [`428b7ea`](https://github.com/eslint/eslint/commit/428b7ea0a9c086b7d8afa0adb629b09d7347d41d) docs: Add Powered by Algolia label to the search ([#​18658](https://github.com/eslint/eslint/issues/18658)) (Amaresh S M)
- [`c68c07f`](https://github.com/eslint/eslint/commit/c68c07ff44c180952e93c6f2c860079db6291b29) docs: version selectors synchronization ([#​18265](https://github.com/eslint/eslint/issues/18265)) (Milos Djermanovic)
#### Build Related
- [`35d366a`](https://github.com/eslint/eslint/commit/35d366aed6e8ab0cfa8f9c9bac4656e3784c11f6) build: Support updates to previous major versions ([#​18870](https://github.com/eslint/eslint/issues/18870)) (Milos Djermanovic)
#### Chores
- [`140ec45`](https://github.com/eslint/eslint/commit/140ec4569fda5a974b6964242b0b2991828a5567) chore: upgrade [@​eslint/js](https://github.com/eslint/js)[@​8](https://github.com/8).57.1 ([#​18913](https://github.com/eslint/eslint/issues/18913)) (Milos Djermanovic)
- [`bcdfc04`](https://github.com/eslint/eslint/commit/bcdfc04a69c53dbf1fc3d38603fe0a796bf2274d) chore: package.json update for [@​eslint/js](https://github.com/eslint/js) release (Jenkins)
- [`3f6ce8d`](https://github.com/eslint/eslint/commit/3f6ce8d6b74aba0d645448e898f271825eeb9630) chore: pin vite-plugin-commonjs@0.10.1 ([#​18910](https://github.com/eslint/eslint/issues/18910)) (Milos Djermanovic)
- [`9f07549`](https://github.com/eslint/eslint/commit/9f0754979527d05cd0abb2ea7ab1c3563fb4a361) chore: ignore `/docs/v8.x` in link checker ([#​18660](https://github.com/eslint/eslint/issues/18660)) (Milos Djermanovic)
</details>
<details>
<summary>import-js/eslint-plugin-import (eslint-plugin-import)</summary>
### [`v2.31.0`](https://github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2310---2024-10-03)
[Compare Source](https://github.com/import-js/eslint-plugin-import/compare/v2.30.0...v2.31.0)
##### Added
- support eslint v9 (\[[#​2996](https://github.com/import-js/eslint-plugin-import/issues/2996)], thanks \[[@​G-Rath](https://github.com/G-Rath)] \[[@​michaelfaith](https://github.com/michaelfaith)])
- \[`order`]: allow validating named imports (\[[#​3043](https://github.com/import-js/eslint-plugin-import/issues/3043)], thanks \[[@​manuth](https://github.com/manuth)])
- \[`extensions`]: add the `checkTypeImports` option (\[[#​2817](https://github.com/import-js/eslint-plugin-import/issues/2817)], thanks \[[@​phryneas](https://github.com/phryneas)])
##### Fixed
- `ExportMap` / flat config: include `languageOptions` in context (\[[#​3052](https://github.com/import-js/eslint-plugin-import/issues/3052)], thanks \[[@​michaelfaith](https://github.com/michaelfaith)])
- \[`no-named-as-default`]: Allow using an identifier if the export is both a named and a default export (\[[#​3032](https://github.com/import-js/eslint-plugin-import/issues/3032)], thanks \[[@​akwodkiewicz](https://github.com/akwodkiewicz)])
- \[`export`]: False positive for exported overloaded functions in TS (\[[#​3065](https://github.com/import-js/eslint-plugin-import/issues/3065)], thanks \[[@​liuxingbaoyu](https://github.com/liuxingbaoyu)])
- `exportMap`: export map cache is tainted by unreliable parse results (\[[#​3062](https://github.com/import-js/eslint-plugin-import/issues/3062)], thanks \[[@​michaelfaith](https://github.com/michaelfaith)])
- `exportMap`: improve cacheKey when using flat config (\[[#​3072](https://github.com/import-js/eslint-plugin-import/issues/3072)], thanks \[[@​michaelfaith](https://github.com/michaelfaith)])
- adjust "is source type module" checks for flat config (\[[#​2996](https://github.com/import-js/eslint-plugin-import/issues/2996)], thanks \[[@​G-Rath](https://github.com/G-Rath)])
##### Changed
- \[Docs] \[`no-relative-packages`]: fix typo (\[[#​3066](https://github.com/import-js/eslint-plugin-import/issues/3066)], thanks \[[@​joshuaobrien](https://github.com/joshuaobrien)])
- \[Performance] \[`no-cycle`]: dont scc for each linted file (\[[#​3068](https://github.com/import-js/eslint-plugin-import/issues/3068)], thanks \[[@​soryy708](https://github.com/soryy708)])
- \[Docs] \[`no-cycle`]: add `disableScc` to docs (\[[#​3070](https://github.com/import-js/eslint-plugin-import/issues/3070)], thanks \[[@​soryy708](https://github.com/soryy708)])
- \[Tests] use re-exported `RuleTester` (\[[#​3071](https://github.com/import-js/eslint-plugin-import/issues/3071)], thanks \[[@​G-Rath](https://github.com/G-Rath)])
- \[Docs] \[`no-restricted-paths`]: fix grammar (\[[#​3073](https://github.com/import-js/eslint-plugin-import/issues/3073)], thanks \[[@​unbeauvoyage](https://github.com/unbeauvoyage)])
- \[Tests] \[`no-default-export`], \[`no-named-export`]: add test case (thanks \[[@​G-Rath](https://github.com/G-Rath)])
### [`v2.30.0`](https://github.com/import-js/eslint-plugin-import/blob/HEAD/CHANGELOG.md#2300---2024-09-02)
[Compare Source](https://github.com/import-js/eslint-plugin-import/compare/v2.29.1...v2.30.0)
##### Added
- \[`dynamic-import-chunkname`]: add `allowEmpty` option to allow empty leading comments (\[[#​2942](https://github.com/import-js/eslint-plugin-import/issues/2942)], thanks \[[@​JiangWeixian](https://github.com/JiangWeixian)])
- \[`dynamic-import-chunkname`]: Allow empty chunk name when webpackMode: 'eager' is set; add suggestions to remove name in eager mode (\[[#​3004](https://github.com/import-js/eslint-plugin-import/issues/3004)], thanks \[[@​amsardesai](https://github.com/amsardesai)])
- \[`no-unused-modules`]: Add `ignoreUnusedTypeExports` option (\[[#​3011](https://github.com/import-js/eslint-plugin-import/issues/3011)], thanks \[[@​silverwind](https://github.com/silverwind)])
- add support for Flat Config (\[[#​3018](https://github.com/import-js/eslint-plugin-import/issues/3018)], thanks \[[@​michaelfaith](https://github.com/michaelfaith)])
##### Fixed
- \[`no-extraneous-dependencies`]: allow wrong path (\[[#​3012](https://github.com/import-js/eslint-plugin-import/issues/3012)], thanks \[[@​chabb](https://github.com/chabb)])
- \[`no-cycle`]: use scc algorithm to optimize (\[[#​2998](https://github.com/import-js/eslint-plugin-import/issues/2998)], thanks \[[@​soryy708](https://github.com/soryy708)])
- \[`no-duplicates`]: Removing duplicates breaks in TypeScript (\[[#​3033](https://github.com/import-js/eslint-plugin-import/issues/3033)], thanks \[[@​yesl-kim](https://github.com/yesl-kim)])
- \[`newline-after-import`]: fix considerComments option when require (\[[#​2952](https://github.com/import-js/eslint-plugin-import/issues/2952)], thanks \[[@​developer-bandi](https://github.com/developer-bandi)])
- \[`order`]: do not compare first path segment for relative paths (\[[#​2682](https://github.com/import-js/eslint-plugin-import/issues/2682)]) (\[[#​2885](https://github.com/import-js/eslint-plugin-import/issues/2885)], thanks \[[@​mihkeleidast](https://github.com/mihkeleidast)])
##### Changed
- \[Docs] \[`no-extraneous-dependencies`]: Make glob pattern description more explicit (\[[#​2944](https://github.com/import-js/eslint-plugin-import/issues/2944)], thanks \[[@​mulztob](https://github.com/mulztob)])
- \[`no-unused-modules`]: add console message to help debug \[[#​2866](https://github.com/import-js/eslint-plugin-import/issues/2866)]
- \[Refactor] `ExportMap`: make procedures static instead of monkeypatching exportmap (\[[#​2982](https://github.com/import-js/eslint-plugin-import/issues/2982)], thanks \[[@​soryy708](https://github.com/soryy708)])
- \[Refactor] `ExportMap`: separate ExportMap instance from its builder logic (\[[#​2985](https://github.com/import-js/eslint-plugin-import/issues/2985)], thanks \[[@​soryy708](https://github.com/soryy708)])
- \[Docs] \[`order`]: Add a quick note on how unbound imports and --fix (\[[#​2640](https://github.com/import-js/eslint-plugin-import/issues/2640)], thanks \[[@​minervabot](https://github.com/minervabot)])
- \[Tests] appveyor -> GHA (run tests on Windows in both pwsh and WSL + Ubuntu) (\[[#​2987](https://github.com/import-js/eslint-plugin-import/issues/2987)], thanks \[[@​joeyguerra](https://github.com/joeyguerra)])
- \[actions] migrate OSX tests to GHA (\[[ljharb#37](https://github.com/ljharb/eslint-plugin-import/issues/37)], thanks \[[@​aks-](https://github.com/aks-)])
- \[Refactor] `exportMapBuilder`: avoid hoisting (\[[#​2989](https://github.com/import-js/eslint-plugin-import/issues/2989)], thanks \[[@​soryy708](https://github.com/soryy708)])
- \[Refactor] `ExportMap`: extract "builder" logic to separate files (\[[#​2991](https://github.com/import-js/eslint-plugin-import/issues/2991)], thanks \[[@​soryy708](https://github.com/soryy708)])
- \[Docs] \[`order`]: update the description of the `pathGroupsExcludedImportTypes` option (\[[#​3036](https://github.com/import-js/eslint-plugin-import/issues/3036)], thanks \[[@​liby](https://github.com/liby)])
- \[readme] Clarify how to install the plugin (\[[#​2993](https://github.com/import-js/eslint-plugin-import/issues/2993)], thanks \[[@​jwbth](https://github.com/jwbth)])
</details>
<details>
<summary>prettier/eslint-plugin-prettier (eslint-plugin-prettier)</summary>
### [`v5.2.1`](https://github.com/prettier/eslint-plugin-prettier/blob/HEAD/CHANGELOG.md#521)
[Compare Source](https://github.com/prettier/eslint-plugin-prettier/compare/v5.1.3...v5.2.1)
##### Patch Changes
- [#​668](https://github.com/prettier/eslint-plugin-prettier/pull/668) [`ac036cc`](https://github.com/prettier/eslint-plugin-prettier/commit/ac036cca2bed4ceb6ee5b63c945426308e36c586) Thanks [@​OrlovAlexei](https://github.com/OrlovAlexei)! - build(deps): Bump synckit from 0.8.6 to 0.9.1
</details>
<details>
<summary>vuejs/eslint-plugin-vue (eslint-plugin-vue)</summary>
### [`v9.32.0`](https://github.com/vuejs/eslint-plugin-vue/releases/tag/v9.32.0)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v9.31.0...v9.32.0)
#### ✨ Enhancements
- [#​2598](https://github.com/vuejs/eslint-plugin-vue/issues/2598) Added `checkMultiRootNodes` option to [`vue/no-duplicate-attr-inheritance`](https://eslint.vuejs.org/rules/no-duplicate-attr-inheritance.html) rule and changed to ignore multi-root components by default.
- [#​2610](https://github.com/vuejs/eslint-plugin-vue/issues/2610) Added `ignoreElementNamespaces` option to [`vue/no-v-text-v-html-on-component`](https://eslint.vuejs.org/rules/no-v-text-v-html-on-component.html) rule.
- [#​2609](https://github.com/vuejs/eslint-plugin-vue/issues/2609) Added `ignoreTags` option to [`vue/attribute-hyphenation`](https://eslint.vuejs.org/rules/attribute-hyphenation.html) rule and [`vue/v-on-event-hyphenation`](https://eslint.vuejs.org/rules/v-on-event-hyphenation.html) rule.
- [#​2611](https://github.com/vuejs/eslint-plugin-vue/issues/2611) Added [`vue/restricted-component-names`](https://eslint.vuejs.org/rules/restricted-component-names.html) rule that enforces using only specific component names.
- [#​2620](https://github.com/vuejs/eslint-plugin-vue/issues/2620) Added [`vue/slot-name-casing`](https://eslint.vuejs.org/rules/slot-name-casing.html) rule that enforces specific casing for slot names.
- [#​2617](https://github.com/vuejs/eslint-plugin-vue/issues/2617) Added support for type references in [`vue/require-explicit-slots`](https://eslint.vuejs.org/rules/require-explicit-slots.html) rule.
- [#​2608](https://github.com/vuejs/eslint-plugin-vue/issues/2608) Added support for `shallowRef` in [`vue/prefer-use-template-ref`](https://eslint.vuejs.org/rules/prefer-use-template-ref.html) rule.
#### ? Bug Fixes
- [#​2612](https://github.com/vuejs/eslint-plugin-vue/issues/2612) Changed [`vue/prefer-use-template-ref`](https://eslint.vuejs.org/rules/prefer-use-template-ref.html) rule to only check root-level variables.
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v9.31.0...v9.32.0
### [`v9.31.0`](https://github.com/vuejs/eslint-plugin-vue/releases/tag/v9.31.0)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v9.30.0...v9.31.0)
#### ✨ Enhancements
- [#​2594](https://github.com/vuejs/eslint-plugin-vue/issues/2594) Added `caseSensitive` option to [`vue/no-reserved-component-names`](https://eslint.vuejs.org/rules/no-reserved-component-names.html) rule.
- [#​2554](https://github.com/vuejs/eslint-plugin-vue/issues/2554) Added [`vue/prefer-use-template-ref`](https://eslint.vuejs.org/rules/prefer-use-template-ref.html) rule that requires using [`useTemplateRef()`](https://vuejs.org/api/composition-api-helpers.html#usetemplateref) instead of `ref()` for template refs.
- [#​2595](https://github.com/vuejs/eslint-plugin-vue/issues/2595) Made [`vue/no-empty-component-block`](https://eslint.vuejs.org/rules/no-empty-component-block.html) rule auto-fixable.
#### ? Bug Fixes
- [#​2591](https://github.com/vuejs/eslint-plugin-vue/issues/2591) Fixed false positives for `v-bind:name` in [`vue/require-explicit-slots`](https://eslint.vuejs.org/rules/require-explicit-slots.html) rule.
#### ⚙️ Updates
- [#​2593](https://github.com/vuejs/eslint-plugin-vue/issues/2593) Updated [`vue/define-macros-order`](https://eslint.vuejs.org/rules/define-macros-order.html) rule to skip TypeScript `declare` statements.
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v9.30.0...v9.31.0
### [`v9.30.0`](https://github.com/vuejs/eslint-plugin-vue/releases/tag/v9.30.0)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v9.29.1...v9.30.0)
#### ? Bug Fixes
- [#​2585](https://github.com/vuejs/eslint-plugin-vue/issues/2585) Fixed [`vue/custom-event-name-casing`](https://eslint.vuejs.org/rules/custom-event-name-casing.html) rule to check `defineEmits()` variable and `$emit()` in `<template>`.
- [#​2586](https://github.com/vuejs/eslint-plugin-vue/issues/2586) Fixed false negatives and false positives in [`vue/require-valid-default-prop`](https://eslint.vuejs.org/rules/require-valid-default-prop.html) rule.
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v9.29.1...v9.30.0
### [`v9.29.1`](https://github.com/vuejs/eslint-plugin-vue/releases/tag/v9.29.1)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v9.29.0...v9.29.1)
#### ? Bug Fixes
- [#​2572](https://github.com/vuejs/eslint-plugin-vue/issues/2572) Fixed index.d.ts
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v9.29.0...v9.29.1
### [`v9.29.0`](https://github.com/vuejs/eslint-plugin-vue/releases/tag/v9.29.0)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v9.28.0...v9.29.0)
#### ✨ Enhancements
##### New Rules
- [#​2540](https://github.com/vuejs/eslint-plugin-vue/issues/2540) Added [`vue/no-deprecated-delete-set`](https://eslint.vuejs.org/rules/no-deprecated-delete-set.html) rule that disallows using deprecated `$delete` and `$set`.
##### Others
- [#​2513](https://github.com/vuejs/eslint-plugin-vue/issues/2513) Added support for Vuex and Pinia to [`vue/no-undef-properties`](https://eslint.vuejs.org/rules/no-undef-properties.html) rule.
- [#​2541](https://github.com/vuejs/eslint-plugin-vue/issues/2541) Added support for Vue 3.5's [`useTemplateRef()`](https://blog.vuejs.org/posts/vue-3-5#usetemplateref) to [`vue/no-unused-refs`](https://eslint.vuejs.org/rules/no-unused-refs.html) rule.
- Added support for Vue 3.5's [props destructure](https://blog.vuejs.org/posts/vue-3-5#reactive-props-destructure) to various rules:
- [#​2551](https://github.com/vuejs/eslint-plugin-vue/issues/2551) to [`vue/require-valid-default-prop`](https://eslint.vuejs.org/rules/require-valid-default-prop.html) rule.
- [#​2552](https://github.com/vuejs/eslint-plugin-vue/issues/2552) to [`vue/require-default-prop`](https://eslint.vuejs.org/rules/require-default-prop.html) rule.
- [#​2553](https://github.com/vuejs/eslint-plugin-vue/issues/2553) to [`vue/no-boolean-default`](https://eslint.vuejs.org/rules/no-boolean-default.html) rule.
- [#​2560](https://github.com/vuejs/eslint-plugin-vue/issues/2560) to [`vue/no-required-prop-with-default`](https://eslint.vuejs.org/rules/no-required-prop-with-default.html) rule.
- [#​2562](https://github.com/vuejs/eslint-plugin-vue/issues/2562) to [`vue/no-restricted-props`](https://eslint.vuejs.org/rules/no-restricted-props.html) rule.
- [#​2550](https://github.com/vuejs/eslint-plugin-vue/issues/2550) to [`vue/no-setup-props-reactivity-loss`](https://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html) rule.
#### ⚙️ Updates
- [#​2528](https://github.com/vuejs/eslint-plugin-vue/issues/2528), [#​2566](https://github.com/vuejs/eslint-plugin-vue/issues/2566) Added TypeScript declarations for configs.
- [#​2565](https://github.com/vuejs/eslint-plugin-vue/issues/2565) Added support for recognizing Vue components in `.tsx` files.
### [`v9.28.0`](https://github.com/vuejs/eslint-plugin-vue/releases/tag/v9.28.0)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v9.27.0...v9.28.0)
#### ✨ Enhancements
##### New Rules
- [#​2430](https://github.com/vuejs/eslint-plugin-vue/issues/2430) Added [`vue/max-props`](https://eslint.vuejs.org/rules/max-props.html) rule that enforces the maximum number of props in Vue components.
- [#​2494](https://github.com/vuejs/eslint-plugin-vue/issues/2494) Added [`vue/require-default-export`](https://eslint.vuejs.org/rules/require-default-export.html) rule that requires components to be the `default` export.
- [#​2525](https://github.com/vuejs/eslint-plugin-vue/issues/2525) Added [`vue/max-template-depth`](https://eslint.vuejs.org/rules/max-template-depth.html) rule that enforces the maximum depth of `<template>`.
##### New Features
- [#​2501](https://github.com/vuejs/eslint-plugin-vue/issues/2501) Allow specifying custom macros in [`vue/define-macros-order`](https://eslint.vuejs.org/rules/define-macros-order.html) rule.
- [#​2537](https://github.com/vuejs/eslint-plugin-vue/issues/2537) Added `additionalDirectives` option to [`vue/require-toggle-inside-transition`](https://eslint.vuejs.org/rules/require-toggle-inside-transition.html) rule.
#### ? Bug Fixes
- [#​2348](https://github.com/vuejs/eslint-plugin-vue/issues/2348) Fixed false positives/negatives for siblings in [`vue/v-if-else-key`](https://eslint.vuejs.org/rules/v-if-else-key.html) rule.
- [#​2505](https://github.com/vuejs/eslint-plugin-vue/issues/2505) Fixed false positives for JavaScript components in [`vue/require-typed-object-prop`](https://eslint.vuejs.org/rules/require-typed-object-prop.html) rule.
- [#​2511](https://github.com/vuejs/eslint-plugin-vue/issues/2511) Fixed false negatives for `v-model` directive in [`vue/attribute-hyphenation`](https://eslint.vuejs.org/rules/attribute-hyphenation.html) rule.
- [#​2533](https://github.com/vuejs/eslint-plugin-vue/issues/2533) Fixed auto-fix for [`vue/attribute-hyphenation`](https://eslint.vuejs.org/rules/attribute-hyphenation.html) rule to skip `v-bind.sync`.
- [#​2529](https://github.com/vuejs/eslint-plugin-vue/issues/2529) Fixed auto-fix for [`vue/no-deprecated-slot-attribute`](https://eslint.vuejs.org/rules/no-deprecated-slot-attribute.html) rule to handle `v-for` with dynamic `slot`.
- [#​2530](https://github.com/vuejs/eslint-plugin-vue/issues/2530) Fixed auto-fix for [`vue/no-deprecated-slot-attribute`](https://eslint.vuejs.org/rules/no-deprecated-slot-attribute.html) rule to skip dynamic components.
#### ⚙️ Updates
- [#​2498](https://github.com/vuejs/eslint-plugin-vue/issues/2498) Renamed flat config names for inspector.
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v9.27.0...v9.28.0
### [`v9.27.0`](https://github.com/vuejs/eslint-plugin-vue/releases/tag/v9.27.0)
[Compare Source](https://github.com/vuejs/eslint-plugin-vue/compare/v9.26.0...v9.27.0)
#### ✨ Enhancements
- [#​2487](https://github.com/vuejs/eslint-plugin-vue/issues/2487) Improved [`vue/require-toggle-inside-transition`](https://eslint.vuejs.org/rules/require-toggle-inside-transition.html) rule to understand `v-bind:appear`.
#### ? Bug Fixes
- [#​2489](https://github.com/vuejs/eslint-plugin-vue/issues/2489) Fixed false negatives for elements inside template literals in [`vue/no-setup-props-reactivity-loss`](https://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html) rule.
#### ⚙️ Updates
- [#​2476](https://github.com/vuejs/eslint-plugin-vue/issues/2476) Added name property to flat configs.
- [#​2488](https://github.com/vuejs/eslint-plugin-vue/issues/2488) Upgraded [vue-eslint-parser](https://github.com/vuejs/vue-eslint-parser) to [v9.4.3](https://github.com/vuejs/vue-eslint-parser/releases/tag/v9.4.3).
**Full Changelog**: https://github.com/vuejs/eslint-plugin-vue/compare/v9.26.0...v9.27.0
</details>
<details>
<summary>prettier/prettier (prettier)</summary>
### [`v3.4.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#342)
[Compare Source](https://github.com/prettier/prettier/compare/3.4.1...3.4.2)
[diff](https://github.com/prettier/prettier/compare/3.4.1...3.4.2)
##### Treat U+30A0 & U+30FB in Katakana Block as CJK ([#​16796](https://github.com/prettier/prettier/pull/16796) by [@​tats-u](https://github.com/tats-u))
Prettier doesn't treat U+30A0 & U+30FB as Japanese. U+30FB is commonly used in Japanese to represent the delimitation of first and last names of non-Japanese people or “and”. The following “C言語・C++・Go・Rust” means “C language & C++ & Go & Rust” in Japanese.
<!-- prettier-ignore -->
```md
<!-- Input (--prose-wrap=never) -->
C言
語
・
C++
・
Go
・
Rust
<!-- Prettier 3.4.1 -->
C言語・ C++ ・ Go ・ Rust
<!-- Prettier 3.4.2 -->
C言語・C++・Go・Rust
```
U+30A0 can be used as the replacement of the `-` in non-Japanese names (e.g. “Saint-Saëns” (Charles Camille Saint-Saëns) can be represented as “サン゠サーンス” in Japanese), but substituted by ASCII hyphen (U+002D) or U+FF1D (full width hyphen) in many cases (e.g. “サン=サーンス” or “サン=サーンス”).
##### Fix comments print on class methods with decorators ([#​16891](https://github.com/prettier/prettier/pull/16891) by [@​fisker](https://github.com/fisker))
<!-- prettier-ignore -->
```jsx
// Input
class A {
@​decorator
/**
* The method description
*
*/
async method(foo: Foo, bar: Bar) {
console.log(foo);
}
}
// Prettier 3.4.1
class A {
@​decorator
async /**
* The method description
*
*/
method(foo: Foo, bar: Bar) {
console.log(foo);
}
}
// Prettier 3.4.2
class A {
@​decorator
/**
* The method description
*
*/
async method(foo: Foo, bar: Bar) {
console.log(foo);
}
}
```
##### Fix non-idempotent formatting ([#​16899](https://github.com/prettier/prettier/pull/16899) by [@​seiyab](https://github.com/seiyab))
This bug fix is not language-specific. You may see similar change in any languages. This fixes regression in 3.4.0 so change caused by it should yield same formatting as 3.3.3.
<!-- prettier-ignore -->
```jsx
// Input
<div>
foo
<span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
, abc
</div>;
// Prettier 3.4.1 (first)
<div>
foo
<span>
longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo
</span>, abc
</div>;
// Prettier 3.4.1 (second)
<div>
foo
<span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
, abc
</div>;
// Prettier 3.4.2
<div>
foo
<span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
, abc
</div>;
```
### [`v3.4.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#341)
[Compare Source](https://github.com/prettier/prettier/compare/3.4.0...3.4.1)
[diff](https://github.com/prettier/prettier/compare/3.4.0...3.4.1)
##### Remove unnecessary parentheses around assignment in `v-on` ([#​16887](https://github.com/prettier/prettier/pull/16887) by [@​fisker](https://github.com/fisker))
<!-- prettier-ignore -->
```vue
<!-- Input -->
<template>
<button @​click="foo += 2">Click</button>
</template>
<!-- Prettier 3.4.0 -->
<template>
<button @​click="(foo += 2)">Click</button>
</template>
<!-- Prettier 3.4.1 -->
<template>
<button @​click="foo += 2">Click</button>
</template>
```
### [`v3.4.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#340)
[Compare Source](https://github.com/prettier/prettier/compare/3.3.3...3.4.0)
[diff](https://github.com/prettier/prettier/compare/3.3.3...3.4.0)
? [Release Notes](https://prettier.io/blog/2024/11/26/3.4.0.html)
### [`v3.3.3`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#333)
[Compare Source](https://github.com/prettier/prettier/compare/3.3.2...3.3.3)
[diff](https://github.com/prettier/prettier/compare/3.3.2...3.3.3)
##### Add parentheses for nullish coalescing in ternary ([#​16391](https://github.com/prettier/prettier/pull/16391) by [@​cdignam-segment](https://github.com/cdignam-segment))
This change adds clarity to operator precedence.
<!-- prettier-ignore -->
```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://github.com/prettier/prettier/pull/16458) by [@​y-schneider](https://github.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.
<!-- prettier-ignore -->
```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://github.com/prettier/prettier/pull/16474) by [@​sosukesuzuki](https://github.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:
<!-- prettier-ignore -->
```html
@​let name = 'Frodo';
<h1>Dashboard for {{name}}</h1>
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.
### [`v3.3.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#332)
[Compare Source](https://github.com/prettier/prettier/compare/3.3.1...3.3.2)
[diff](https://github.com/prettier/prettier/compare/3.3.1...3.3.2)
##### Fix handlebars path expressions starts with `@` ([#​16358](https://github.com/prettier/prettier/pull/16358) by [@​Princeyadav05](https://github.com/Princeyadav05))
<!-- prettier-ignore -->
```hbs
{{! Input }}
<div>{{@​x.y.z}}</div>
{{! Prettier 3.3.1 }}
<div>{{@​x}}</div>
{{! Prettier 3.3.2 }}
<div>{{@​x.y.z}}</div>
```
</details>
---
### Configuration
? **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
? **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
? **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yOTIuMSIsInVwZGF0ZWRJblZlciI6IjM3LjI5Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbInJlbm92YXRlIl19-->
renovate
changed title from chore(deps): update dependency prettier to ^3.3.2 (master) to chore(deps): update minor and patch version dependencies (master)2024-07-07 02:17:13 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
^8.57.0->^8.57.1^2.29.1->^2.31.0^5.1.3->^5.2.1^9.26.0->^9.32.0^3.3.1->^3.4.2Release Notes
eslint/eslint (eslint)
v8.57.1Compare Source
Bug Fixes
a19072ffix: add logic to handle fixTypes in the lintText() method (#18900) (Francesco Trotta)04c7188fix: Don't lint same file multiple times (#18899) (Francesco Trotta)87ec3c4fix: do not throw when defining a global named__defineSetter__(#18898) (Francesco Trotta)60a1267fix: Provide helpful error message for nullish configs (#18889) (Milos Djermanovic)a0dea8efix: allownamein global ignores, fix--no-ignorefor non-global (#18875) (Milos Djermanovic)3836bb4fix: do not crash on error infs.walkfilter (#18886) (Milos Djermanovic)2dec349fix: skip processor code blocks that match only universal patterns (#18880) (Milos Djermanovic)Documentation
6a5add4docs: v8.x Add EOL banner (#18744) (Amaresh S M)b034575docs: v8.x add version support page to the dropdown (#18731) (Amaresh S M)760ef7ddocs: v8.x add version support page in the side navbar (#18740) (Amaresh S M)428b7eadocs: Add Powered by Algolia label to the search (#18658) (Amaresh S M)c68c07fdocs: version selectors synchronization (#18265) (Milos Djermanovic)Build Related
35d366abuild: Support updates to previous major versions (#18870) (Milos Djermanovic)Chores
140ec45chore: upgrade @eslint/js@8.57.1 (#18913) (Milos Djermanovic)bcdfc04chore: package.json update for @eslint/js release (Jenkins)3f6ce8dchore: pin vite-plugin-commonjs@0.10.1 (#18910) (Milos Djermanovic)9f07549chore: ignore/docs/v8.xin link checker (#18660) (Milos Djermanovic)import-js/eslint-plugin-import (eslint-plugin-import)
v2.31.0Compare Source
Added
order]: allow validating named imports ([#3043], thanks [@manuth])extensions]: add thecheckTypeImportsoption ([#2817], thanks [@phryneas])Fixed
ExportMap/ flat config: includelanguageOptionsin context ([#3052], thanks [@michaelfaith])no-named-as-default]: Allow using an identifier if the export is both a named and a default export ([#3032], thanks [@akwodkiewicz])export]: False positive for exported overloaded functions in TS ([#3065], thanks [@liuxingbaoyu])exportMap: export map cache is tainted by unreliable parse results ([#3062], thanks [@michaelfaith])exportMap: improve cacheKey when using flat config ([#3072], thanks [@michaelfaith])Changed
no-relative-packages]: fix typo ([#3066], thanks [@joshuaobrien])no-cycle]: dont scc for each linted file ([#3068], thanks [@soryy708])no-cycle]: adddisableSccto docs ([#3070], thanks [@soryy708])RuleTester([#3071], thanks [@G-Rath])no-restricted-paths]: fix grammar ([#3073], thanks [@unbeauvoyage])no-default-export], [no-named-export]: add test case (thanks [@G-Rath])v2.30.0Compare Source
Added
dynamic-import-chunkname]: addallowEmptyoption to allow empty leading comments ([#2942], thanks [@JiangWeixian])dynamic-import-chunkname]: Allow empty chunk name when webpackMode: 'eager' is set; add suggestions to remove name in eager mode ([#3004], thanks [@amsardesai])no-unused-modules]: AddignoreUnusedTypeExportsoption ([#3011], thanks [@silverwind])Fixed
no-extraneous-dependencies]: allow wrong path ([#3012], thanks [@chabb])no-cycle]: use scc algorithm to optimize ([#2998], thanks [@soryy708])no-duplicates]: Removing duplicates breaks in TypeScript ([#3033], thanks [@yesl-kim])newline-after-import]: fix considerComments option when require ([#2952], thanks [@developer-bandi])order]: do not compare first path segment for relative paths ([#2682]) ([#2885], thanks [@mihkeleidast])Changed
no-extraneous-dependencies]: Make glob pattern description more explicit ([#2944], thanks [@mulztob])no-unused-modules]: add console message to help debug [#2866]ExportMap: make procedures static instead of monkeypatching exportmap ([#2982], thanks [@soryy708])ExportMap: separate ExportMap instance from its builder logic ([#2985], thanks [@soryy708])order]: Add a quick note on how unbound imports and --fix ([#2640], thanks [@minervabot])exportMapBuilder: avoid hoisting ([#2989], thanks [@soryy708])ExportMap: extract "builder" logic to separate files ([#2991], thanks [@soryy708])order]: update the description of thepathGroupsExcludedImportTypesoption ([#3036], thanks [@liby])prettier/eslint-plugin-prettier (eslint-plugin-prettier)
v5.2.1Compare Source
Patch Changes
ac036ccThanks @OrlovAlexei! - build(deps): Bump synckit from 0.8.6 to 0.9.1vuejs/eslint-plugin-vue (eslint-plugin-vue)
v9.32.0Compare Source
✨ Enhancements
checkMultiRootNodesoption tovue/no-duplicate-attr-inheritancerule and changed to ignore multi-root components by default.ignoreElementNamespacesoption tovue/no-v-text-v-html-on-componentrule.ignoreTagsoption tovue/attribute-hyphenationrule andvue/v-on-event-hyphenationrule.vue/restricted-component-namesrule that enforces using only specific component names.vue/slot-name-casingrule that enforces specific casing for slot names.vue/require-explicit-slotsrule.shallowRefinvue/prefer-use-template-refrule.? Bug Fixes
vue/prefer-use-template-refrule to only check root-level variables.Full Changelog: https://github.com/vuejs/eslint-plugin-vue/compare/v9.31.0...v9.32.0
v9.31.0Compare Source
✨ Enhancements
caseSensitiveoption tovue/no-reserved-component-namesrule.vue/prefer-use-template-refrule that requires usinguseTemplateRef()instead ofref()for template refs.vue/no-empty-component-blockrule auto-fixable.? Bug Fixes
v-bind:nameinvue/require-explicit-slotsrule.⚙️ Updates
vue/define-macros-orderrule to skip TypeScriptdeclarestatements.Full Changelog: https://github.com/vuejs/eslint-plugin-vue/compare/v9.30.0...v9.31.0
v9.30.0Compare Source
? Bug Fixes
vue/custom-event-name-casingrule to checkdefineEmits()variable and$emit()in<template>.vue/require-valid-default-proprule.Full Changelog: https://github.com/vuejs/eslint-plugin-vue/compare/v9.29.1...v9.30.0
v9.29.1Compare Source
? Bug Fixes
Full Changelog: https://github.com/vuejs/eslint-plugin-vue/compare/v9.29.0...v9.29.1
v9.29.0Compare Source
✨ Enhancements
New Rules
vue/no-deprecated-delete-setrule that disallows using deprecated$deleteand$set.Others
vue/no-undef-propertiesrule.useTemplateRef()tovue/no-unused-refsrule.vue/require-valid-default-proprule.vue/require-default-proprule.vue/no-boolean-defaultrule.vue/no-required-prop-with-defaultrule.vue/no-restricted-propsrule.vue/no-setup-props-reactivity-lossrule.⚙️ Updates
.tsxfiles.v9.28.0Compare Source
✨ Enhancements
New Rules
vue/max-propsrule that enforces the maximum number of props in Vue components.vue/require-default-exportrule that requires components to be thedefaultexport.vue/max-template-depthrule that enforces the maximum depth of<template>.New Features
vue/define-macros-orderrule.additionalDirectivesoption tovue/require-toggle-inside-transitionrule.? Bug Fixes
vue/v-if-else-keyrule.vue/require-typed-object-proprule.v-modeldirective invue/attribute-hyphenationrule.vue/attribute-hyphenationrule to skipv-bind.sync.vue/no-deprecated-slot-attributerule to handlev-forwith dynamicslot.vue/no-deprecated-slot-attributerule to skip dynamic components.⚙️ Updates
Full Changelog: https://github.com/vuejs/eslint-plugin-vue/compare/v9.27.0...v9.28.0
v9.27.0Compare Source
✨ Enhancements
vue/require-toggle-inside-transitionrule to understandv-bind:appear.? Bug Fixes
vue/no-setup-props-reactivity-lossrule.⚙️ Updates
Full Changelog: https://github.com/vuejs/eslint-plugin-vue/compare/v9.26.0...v9.27.0
prettier/prettier (prettier)
v3.4.2Compare Source
diff
Treat U+30A0 & U+30FB in Katakana Block as CJK (#16796 by @tats-u)
Prettier doesn't treat U+30A0 & U+30FB as Japanese. U+30FB is commonly used in Japanese to represent the delimitation of first and last names of non-Japanese people or “and”. The following “C言語・C++・Go・Rust” means “C language & C++ & Go & Rust” in Japanese.
U+30A0 can be used as the replacement of the
-in non-Japanese names (e.g. “Saint-Saëns” (Charles Camille Saint-Saëns) can be represented as “サン゠サーンス” in Japanese), but substituted by ASCII hyphen (U+002D) or U+FF1D (full width hyphen) in many cases (e.g. “サン=サーンス” or “サン=サーンス”).Fix comments print on class methods with decorators (#16891 by @fisker)
Fix non-idempotent formatting (#16899 by @seiyab)
This bug fix is not language-specific. You may see similar change in any languages. This fixes regression in 3.4.0 so change caused by it should yield same formatting as 3.3.3.
v3.4.1Compare Source
diff
Remove unnecessary parentheses around assignment in
v-on(#16887 by @fisker)v3.4.0Compare Source
diff
? Release Notes
v3.3.3Compare Source
diff
Add parentheses for nullish coalescing in ternary (#16391 by @cdignam-segment)
This change adds clarity to operator precedence.
Add parentheses for decorator expressions (#16458 by @y-schneider)
Prevent parentheses around member expressions or tagged template literals from being removed to follow the stricter parsing rules of TypeScript 5.5.
Support
@letdeclaration syntax (#16474 by @sosukesuzuki)Adds support for Angular v18
@letdeclaration syntax.Please see the following code example. The
@letdeclaration allows you to define local variables within the template:For more details, please refer to the excellent blog post by the Angular Team: Introducing @let in Angular.
We also appreciate the Angular Team for kindly answering our questions to implement this feature.
v3.3.2Compare Source
diff
Fix handlebars path expressions starts with
@(#16358 by @Princeyadav05)Configuration
? Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
? Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ 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 Renovate Bot.
chore(deps): update dependency prettier to ^3.3.2 (master)to chore(deps): update minor and patch version dependencies (master)7c24829571to1c6825cde71c6825cde7to2a4ef381f32a4ef381f3to919af1148b919af1148bto97b9bfdc0897b9bfdc08to1d5868aba21d5868aba2toe81abb8b89e81abb8b89toa7ddaa06d5a7ddaa06d5to47f4277d2447f4277d24to883cd62f55883cd62f55to652d495176652d495176to470e777b94470e777b94to4440ae8745