Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: add scripts field if not present #1338

Merged
merged 2 commits into from
Jan 25, 2024
Merged

fix: add scripts field if not present #1338

merged 2 commits into from
Jan 25, 2024

Conversation

chalkygames123
Copy link
Contributor

@chalkygames123 chalkygames123 commented Jan 25, 2024

Fixed an error that occurs on installation if the scripts field is not present in package.json.

$ npx husky init
Need to install the following packages:
husky@9.0.1
Ok to proceed? (y) 
file:///Users/takuya/.npm/_npx/0d92fdd791cc1044/node_modules/husky/bin.js:10
  d.scripts.prepare = 'husky'
                    ^

TypeError: Cannot set properties of undefined (setting 'prepare')
    at file:///Users/takuya/.npm/_npx/0d92fdd791cc1044/node_modules/husky/bin.js:10:21
    at ModuleJob.run (node:internal/modules/esm/module_job:218:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:329:24)
    at async loadESM (node:internal/process/esm_loader:28:7)
    at async handleMainPromise (node:internal/modules/run_main:113:12)

Node.js v21.4.0

bin.js Outdated Show resolved Hide resolved
@typicode
Copy link
Owner

Thank you

@typicode typicode merged commit d9941e2 into typicode:main Jan 25, 2024
kodiakhq bot referenced this pull request in weareinreach/TransMascFutures Jan 25, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://typicode.github.io/husky) ([source](https://github.com/typicode/husky)) | [`8.0.3` -> `9.0.3`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

-   docs: fix link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
-   chore: fix links in issue template by [@&#8203;julien-f](https://github.com/julien-f) in [https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
-   fix: add scripts field if not present by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
-   docs: changelog link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
-   fix: insert final newline by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
-   fix: fix git hooks path on windows by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

-   fix: exit code by [@&#8203;gergelypap](https://github.com/gergelypap) in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
-   docs: typo by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

-   [@&#8203;gergelypap](https://github.com/gergelypap) made their first contribution in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**: typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263" height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but open to other stacks Rails, Go, Elixir). You can contact me at my mail: typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the installation process was straightforward, it often required consulting the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be accomplished using your favorite editor, a script or a basic `echo` command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately `6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned 🙌

#### Other Changes

-   **Enhanced security** with CI and npm `--provenance` for safer publishing.
-   Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to `~/.config/husky/init.sh` for centralized configuration.
-   **Fixed permission issue for Windows-created hooks**; they no longer need to be executable.
-   Removed `husky install`. Use `husky` or `husky some/dir` for the same functionality (deprecation notice to be added).
-   Modified behavior when `.git` is missing; it now triggers a warning instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday,before 4am on Thursday" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/weareinreach/GLAAD).



PR-URL: #324
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Joe Karow <58997957+JoeKarow@users.noreply.github.com>
renovate bot referenced this pull request in ixm-one/common Jan 25, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`9.0.2` ->
`9.0.5`](https://renovatebot.com/diffs/npm/husky/9.0.2/9.0.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/9.0.2/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/9.0.2/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/ixm-one/common).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in line/line-bot-sdk-nodejs Jan 25, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`9.0.2` ->
`9.0.5`](https://renovatebot.com/diffs/npm/husky/9.0.2/9.0.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/9.0.2/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/9.0.2/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/line/line-bot-sdk-nodejs).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
kodiakhq bot referenced this pull request in timelessco/js-bottomsheet Jan 25, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://typicode.github.io/husky) ([source](https://github.com/typicode/husky)) | [`^8.0.3` -> `^9.0.5`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

-   docs: update path to startup files by [@&#8203;ManuelRauber](https://github.com/ManuelRauber) in [https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
-   fix: init error by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

-   fix: init create dir before by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
-   refactor: simplify by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
-   fix: init not working on pnpm [#&#8203;1334](https://github.com/typicode/husky/issues/1334) by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

-   docs: fix link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
-   chore: fix links in issue template by [@&#8203;julien-f](https://github.com/julien-f) in [https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
-   fix: add scripts field if not present by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
-   docs: changelog link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
-   fix: insert final newline by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
-   fix: fix git hooks path on windows by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

-   fix: exit code by [@&#8203;gergelypap](https://github.com/gergelypap) in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
-   docs: typo by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

-   [@&#8203;gergelypap](https://github.com/gergelypap) made their first contribution in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**: typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263" height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but open to other stacks Rails, Go, Elixir). You can contact me at my mail: typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the installation process was straightforward, it often required consulting the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be accomplished using your favorite editor, a script or a basic `echo` command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately `6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned 🙌

#### Other Changes

-   **Enhanced security** with CI and npm `--provenance` for safer publishing.
-   Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to `~/.config/husky/init.sh` for centralized configuration.
-   **Fixed permission issue for Windows-created hooks**; they no longer need to be executable.
-   Removed `husky install`. Use `husky` or `husky some/dir` for the same functionality (deprecation notice to be added).
-   Modified behavior when `.git` is missing; it now triggers a warning instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 12am and before 5am every weekday,every weekend" in timezone Asia/Kolkata, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/timelessco/js-bottomsheet).
Lulalaby referenced this pull request in Aiko-IT-Systems/Discord-React-Components Jan 25, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://typicode.github.io/husky)
([source](https://github.com/typicode/husky)) | [`^8.0.3` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Aiko-IT-Systems/Discord-React-Components).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
Lulalaby referenced this pull request in Aiko-IT-Systems/Discord-React-Components Jan 25, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`9.0.1` ->
`9.0.5`](https://renovatebot.com/diffs/npm/husky/9.0.1/9.0.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/9.0.1/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/9.0.1/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Aiko-IT-Systems/Discord-React-Components).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
renovate bot referenced this pull request in bruxisma/renovate Jan 25, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`9.0.1` ->
`9.0.5`](https://renovatebot.com/diffs/npm/husky/9.0.1/9.0.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/9.0.1/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/9.0.1/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/bruxisma/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fuxingloh referenced this pull request in fuxingloh/cryptomatter Jan 26, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^9.0.1` ->
`^9.0.5`](https://renovatebot.com/diffs/npm/husky/9.0.1/9.0.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/9.0.1/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/9.0.1/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/levaintech/frontmatter).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Brooooooklyn referenced this pull request in toeverything/AFFiNE Jan 26, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` -> `^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

-   docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed) in [https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
-   chore: apply editorconfig to code only by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
-   docs: update install script to mjs and fix CI checks by [@&#8203;starnayuta](https://github.com/starnayuta) in [https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
-   Fix  unbound variable by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

-   docs: update path to startup files by [@&#8203;ManuelRauber](https://github.com/ManuelRauber) in [https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
-   fix: init error by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

-   fix: init create dir before by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
-   refactor: simplify by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
-   fix: init not working on pnpm [#&#8203;1334](https://github.com/typicode/husky/issues/1334) by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

-   docs: fix link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
-   chore: fix links in issue template by [@&#8203;julien-f](https://github.com/julien-f) in [https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
-   fix: add scripts field if not present by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
-   docs: changelog link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
-   fix: insert final newline by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
-   fix: fix git hooks path on windows by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

-   fix: exit code by [@&#8203;gergelypap](https://github.com/gergelypap) in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
-   docs: typo by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

-   [@&#8203;gergelypap](https://github.com/gergelypap) made their first contribution in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**: typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263" height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but open to other stacks Rails, Go, Elixir). You can contact me at my mail: typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the installation process was straightforward, it often required consulting the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be accomplished using your favorite editor, a script or a basic `echo` command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately `6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned 🙌

#### Other Changes

-   **Enhanced security** with CI and npm `--provenance` for safer publishing.
-   Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to `~/.config/husky/init.sh` for centralized configuration.
-   **Fixed permission issue for Windows-created hooks**; they no longer need to be executable.
-   Removed `husky install`. Use `husky` or `husky some/dir` for the same functionality (deprecation notice to be added).
-   Modified behavior when `.git` is missing; it now triggers a warning instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5In0=-->
solaris007 referenced this pull request in adobe/spacecat-shared Jan 26, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@aws-sdk/client-dynamodb](https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-dynamodb)
([source](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-dynamodb))
| [`3.496.0` ->
`3.499.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-dynamodb/3.496.0/3.499.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2fclient-dynamodb/3.499.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@aws-sdk%2fclient-dynamodb/3.499.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@aws-sdk%2fclient-dynamodb/3.496.0/3.499.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2fclient-dynamodb/3.496.0/3.499.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@aws-sdk/lib-dynamodb](https://github.com/aws/aws-sdk-js-v3/tree/main/lib/lib-dynamodb)
([source](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/lib/lib-dynamodb))
| [`3.496.0` ->
`3.499.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2flib-dynamodb/3.496.0/3.499.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2flib-dynamodb/3.499.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@aws-sdk%2flib-dynamodb/3.499.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@aws-sdk%2flib-dynamodb/3.496.0/3.499.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2flib-dynamodb/3.496.0/3.499.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint)
([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`6.19.0` ->
`6.19.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.19.0/6.19.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.19.0/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.19.0/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint)
([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`6.19.0` ->
`6.19.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.19.0/6.19.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.19.0/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.19.0/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [husky](https://github.com/typicode/husky) | [`9.0.1` ->
`9.0.6`](https://renovatebot.com/diffs/npm/husky/9.0.1/9.0.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/9.0.1/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/9.0.1/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>aws/aws-sdk-js-v3 (@&#8203;aws-sdk/client-dynamodb)</summary>

###
[`v3.499.0`](https://github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-dynamodb/CHANGELOG.md#34990-2024-01-24)

[Compare
Source](https://github.com/aws/aws-sdk-js-v3/compare/v3.496.0...v3.499.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/client-dynamodb](https://github.com/aws-sdk/client-dynamodb)

</details>

<details>
<summary>aws/aws-sdk-js-v3 (@&#8203;aws-sdk/lib-dynamodb)</summary>

###
[`v3.499.0`](https://github.com/aws/aws-sdk-js-v3/blob/HEAD/lib/lib-dynamodb/CHANGELOG.md#34990-2024-01-24)

[Compare
Source](https://github.com/aws/aws-sdk-js-v3/compare/v3.496.0...v3.499.0)

**Note:** Version bump only for package
[@&#8203;aws-sdk/lib-dynamodb](https://github.com/aws-sdk/lib-dynamodb)

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v6.19.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6191-2024-01-22)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v6.19.0...v6.19.1)

##### 🩹 Fixes

- **type-utils:** preventing isUnsafeAssignment infinite recursive calls

- **eslint-plugin:** \[no-unnecessary-condition] fix false positive for
type variable

##### ❤️  Thank You

-   YeonJuan

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v6.19.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6191-2024-01-22)

[Compare
Source](https://github.com/typescript-eslint/typescript-eslint/compare/v6.19.0...v6.19.1)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 2pm on Saturday" in timezone
Europe/Zurich, 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](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 [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/adobe/spacecat-shared).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
abhi-markan referenced this pull request in UK-Export-Finance/mdm-api Jan 27, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/UK-Export-Finance/mdm-api).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Abhi Markan <32125108+abhi-markan@users.noreply.github.com>
Co-authored-by: Abhi Markan <abhi.markan@ukexportfinance.gov.uk>
peterjokumsen referenced this pull request in helderberg-pirates-baseball/websites Jan 28, 2024
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`8.0.3` ->
`9.0.6`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

*Note: install using `husky@latest` to get the bug fixes that were
released after.*

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekend" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Renovate Bot GitHub <bot@renovateapp.com>
ddadaal referenced this pull request in PKUHPC/OpenSCOW Jan 28, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`8.0.3` ->
`9.0.6`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on sunday" in timezone Asia/Shanghai,
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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log [here](https://developer.mend.io/github/PKUHPC/SCOW).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Chen Junda <ddadaal@outlook.com>
mergify bot referenced this pull request in Balvajs/dismiss-stale-reviews Jan 28, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [husky](https://github.com/typicode/husky) | devDependencies | major
| [`8.0.3` ->
`9.0.6`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.6) |

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

*Note: install using `husky@latest` to get the bug fixes that were
released after.*

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE1Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Balvajs Renovate Bot <406530+balvajs-renovate[bot]@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
mergify bot referenced this pull request in Balvajs/delete-stale-branches Jan 28, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [husky](https://github.com/typicode/husky) | devDependencies | major
| [`8.0.3` ->
`9.0.6`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.6) |

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

*Note: install using `husky@latest` to get the bug fixes that were
released after.*

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE1Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Balvajs Renovate Bot <406530+balvajs-renovate[bot]@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
saranshisatgit referenced this pull request in Meta-Root-Zones/AFFiNE Jan 28, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` -> `^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

-   docs: add favicon by [@&toeverything#8203;rakleed](https://github.com/rakleed) in [https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
-   chore: apply editorconfig to code only by [@&toeverything#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
-   docs: update install script to mjs and fix CI checks by [@&toeverything#8203;starnayuta](https://github.com/starnayuta) in [https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
-   Fix  unbound variable by [@&toeverything#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

-   docs: update path to startup files by [@&toeverything#8203;ManuelRauber](https://github.com/ManuelRauber) in [https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
-   fix: init error by [@&toeverything#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

-   fix: init create dir before by [@&toeverything#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
-   refactor: simplify by [@&toeverything#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
-   fix: init not working on pnpm [#&toeverything#8203;1334](https://github.com/typicode/husky/issues/1334) by [@&toeverything#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

-   docs: fix link by [@&toeverything#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
-   chore: fix links in issue template by [@&toeverything#8203;julien-f](https://github.com/julien-f) in [https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
-   fix: add scripts field if not present by [@&toeverything#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
-   docs: changelog link by [@&toeverything#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
-   fix: insert final newline by [@&toeverything#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
-   fix: fix git hooks path on windows by [@&toeverything#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

-   fix: exit code by [@&toeverything#8203;gergelypap](https://github.com/gergelypap) in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
-   docs: typo by [@&toeverything#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

-   [@&toeverything#8203;gergelypap](https://github.com/gergelypap) made their first contribution in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**: typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263" height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but open to other stacks Rails, Go, Elixir). You can contact me at my mail: typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the installation process was straightforward, it often required consulting the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be accomplished using your favorite editor, a script or a basic `echo` command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately `6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned 🙌

#### Other Changes

-   **Enhanced security** with CI and npm `--provenance` for safer publishing.
-   Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to `~/.config/husky/init.sh` for centralized configuration.
-   **Fixed permission issue for Windows-created hooks**; they no longer need to be executable.
-   Removed `husky install`. Use `husky` or `husky some/dir` for the same functionality (deprecation notice to be added).
-   Modified behavior when `.git` is missing; it now triggers a warning instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5In0=-->
kodiakhq bot referenced this pull request in timelessco/node-ts-app-template Jan 28, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`8.0.3` -> `9.0.5`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

-   docs: update path to startup files by [@&#8203;ManuelRauber](https://github.com/ManuelRauber) in [https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
-   fix: init error by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

-   fix: init create dir before by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
-   refactor: simplify by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
-   fix: init not working on pnpm [#&#8203;1334](https://github.com/typicode/husky/issues/1334) by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

-   docs: fix link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
-   chore: fix links in issue template by [@&#8203;julien-f](https://github.com/julien-f) in [https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
-   fix: add scripts field if not present by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
-   docs: changelog link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
-   fix: insert final newline by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
-   fix: fix git hooks path on windows by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

-   fix: exit code by [@&#8203;gergelypap](https://github.com/gergelypap) in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
-   docs: typo by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

-   [@&#8203;gergelypap](https://github.com/gergelypap) made their first contribution in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**: typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263" height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but open to other stacks Rails, Go, Elixir). You can contact me at my mail: typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the installation process was straightforward, it often required consulting the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be accomplished using your favorite editor, a script or a basic `echo` command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately `6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned 🙌

#### Other Changes

-   **Enhanced security** with CI and npm `--provenance` for safer publishing.
-   Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to `~/.config/husky/init.sh` for centralized configuration.
-   **Fixed permission issue for Windows-created hooks**; they no longer need to be executable.
-   Removed `husky install`. Use `husky` or `husky some/dir` for the same functionality (deprecation notice to be added).
-   Modified behavior when `.git` is missing; it now triggers a warning instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone Asia/Kolkata, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/timelessco/node-ts-app).
kodiakhq bot referenced this pull request in timelessco/recollect Jan 28, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`8.0.3` -> `9.0.5`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

-   docs: update path to startup files by [@&#8203;ManuelRauber](https://github.com/ManuelRauber) in [https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
-   fix: init error by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

-   fix: init create dir before by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
-   refactor: simplify by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
-   fix: init not working on pnpm [#&#8203;1334](https://github.com/typicode/husky/issues/1334) by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

-   docs: fix link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
-   chore: fix links in issue template by [@&#8203;julien-f](https://github.com/julien-f) in [https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
-   fix: add scripts field if not present by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
-   docs: changelog link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
-   fix: insert final newline by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
-   fix: fix git hooks path on windows by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

-   fix: exit code by [@&#8203;gergelypap](https://github.com/gergelypap) in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
-   docs: typo by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

-   [@&#8203;gergelypap](https://github.com/gergelypap) made their first contribution in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**: typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263" height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but open to other stacks Rails, Go, Elixir). You can contact me at my mail: typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the installation process was straightforward, it often required consulting the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be accomplished using your favorite editor, a script or a basic `echo` command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately `6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned 🙌

#### Other Changes

-   **Enhanced security** with CI and npm `--provenance` for safer publishing.
-   Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to `~/.config/husky/init.sh` for centralized configuration.
-   **Fixed permission issue for Windows-created hooks**; they no longer need to be executable.
-   Removed `husky install`. Use `husky` or `husky some/dir` for the same functionality (deprecation notice to be added).
-   Modified behavior when `.git` is missing; it now triggers a warning instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone Asia/Kolkata, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/timelessco/recollect).
kodiakhq bot referenced this pull request in timelessco/next-ts-app-template Jan 28, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`8.0.3` -> `9.0.5`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

-   docs: update path to startup files by [@&#8203;ManuelRauber](https://github.com/ManuelRauber) in [https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
-   fix: init error by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

-   fix: init create dir before by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
-   refactor: simplify by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
-   fix: init not working on pnpm [#&#8203;1334](https://github.com/typicode/husky/issues/1334) by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

-   docs: fix link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
-   chore: fix links in issue template by [@&#8203;julien-f](https://github.com/julien-f) in [https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
-   fix: add scripts field if not present by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
-   docs: changelog link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
-   fix: insert final newline by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
-   fix: fix git hooks path on windows by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

-   fix: exit code by [@&#8203;gergelypap](https://github.com/gergelypap) in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
-   docs: typo by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

-   [@&#8203;gergelypap](https://github.com/gergelypap) made their first contribution in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**: typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263" height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but open to other stacks Rails, Go, Elixir). You can contact me at my mail: typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the installation process was straightforward, it often required consulting the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be accomplished using your favorite editor, a script or a basic `echo` command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately `6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned 🙌

#### Other Changes

-   **Enhanced security** with CI and npm `--provenance` for safer publishing.
-   Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to `~/.config/husky/init.sh` for centralized configuration.
-   **Fixed permission issue for Windows-created hooks**; they no longer need to be executable.
-   Removed `husky install`. Use `husky` or `husky some/dir` for the same functionality (deprecation notice to be added).
-   Modified behavior when `.git` is missing; it now triggers a warning instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone Asia/Kolkata, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/timelessco/next-ts-app).
renovate bot referenced this pull request in tnez/starter-npm-pkg Jan 29, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://typicode.github.io/husky)
([source](https://github.com/typicode/husky)) | [`8.0.3` ->
`9.0.6`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - "before 4am on Monday" (UTC).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/tnez/starter-npm-pkg).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Miracle575 referenced this pull request in PKUHPC/OpenSCOW Jan 29, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`8.0.3` ->
`9.0.6`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on sunday" in timezone Asia/Shanghai,
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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log [here](https://developer.mend.io/github/PKUHPC/SCOW).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Chen Junda <ddadaal@outlook.com>
hyochan referenced this pull request in hyochan/dooboo-ui Jan 30, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://typicode.github.io/husky)
([source](https://github.com/typicode/husky)) | [`^8.0.3` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/dooboolab-community/dooboo-ui).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
takecchi referenced this pull request in cuculus-dev/cuculus Jan 31, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`8.0.3` ->
`9.0.7`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.7) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

@coderabbitai: ignore

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/cuculus-dev/cuculus).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
kodiakhq bot referenced this pull request in cloudquery/setup-cloudquery Feb 1, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [husky](https://github.com/typicode/husky) | devDependencies | major | [`8.0.3` -> `9.0.8`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.8) |

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

-   docs: update index.md by [@&#8203;khaledYS](https://github.com/khaledYS) in [https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
-   Fix tab detection on install command by [@&#8203;glensc](https://github.com/glensc) in [https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
-   refactor: reduce file size by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
-   docs: fix example by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

-   docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed) in [https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
-   chore: apply editorconfig to code only by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
-   docs: update install script to mjs and fix CI checks by [@&#8203;starnayuta](https://github.com/starnayuta) in [https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
-   Fix  unbound variable by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

-   docs: update path to startup files by [@&#8203;ManuelRauber](https://github.com/ManuelRauber) in [https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
-   fix: init error by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

-   fix: init create dir before by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
-   refactor: simplify by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
-   fix: init not working on pnpm [#&#8203;1334](https://github.com/typicode/husky/issues/1334) by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

-   docs: fix link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
-   chore: fix links in issue template by [@&#8203;julien-f](https://github.com/julien-f) in [https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
-   fix: add scripts field if not present by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
-   docs: changelog link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
-   fix: insert final newline by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
-   fix: fix git hooks path on windows by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

-   fix: exit code by [@&#8203;gergelypap](https://github.com/gergelypap) in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
-   docs: typo by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263" height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing in more features!

*Note: install using `husky@latest` to get the bug fixes that were released after.*

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but open to other stacks Rails, Go, Elixir). You can contact me at my mail: typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the installation process was straightforward, it often required consulting the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be accomplished using your favorite editor, a script or a basic `echo` command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately `6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned 🙌

#### Other Changes

-   **Enhanced security** with CI and npm `--provenance` for safer publishing.
-   Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to `~/.config/husky/init.sh` for centralized configuration.
-   **Fixed permission issue for Windows-created hooks**; they no longer need to be executable.
-   Removed `husky install`. Use `husky` or `husky some/dir` for the same functionality (deprecation notice to be added).
-   Modified behavior when `.git` is missing; it now triggers a warning instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on the first day of the month" (UTC), 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNjMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE2NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
renovate bot referenced this pull request in danvk/gravlax Feb 13, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.10) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/danvk/gravlax).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in JoshuaKGoldberg/should-semantic-release Feb 13, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.10) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/JoshuaKGoldberg/should-semantic-release).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in JoshuaKGoldberg/github-sponsors-to-markdown Feb 13, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.10) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/JoshuaKGoldberg/github-sponsors-to-markdown).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in JoshuaKGoldberg/npm-username-to-packages Feb 13, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.10) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/JoshuaKGoldberg/npm-username-to-packages).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE3MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in JoshuaKGoldberg/JoshuaKGoldberg Feb 13, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.10) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/JoshuaKGoldberg/JoshuaKGoldberg).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in JoshuaKGoldberg/refined-saved-replies Feb 13, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.10) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/JoshuaKGoldberg/refined-saved-replies).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in JoshuaKGoldberg/github-username-to-emails Feb 13, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.10) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/JoshuaKGoldberg/github-username-to-emails).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fkoulen referenced this pull request in ASVGay/the-rhapsodies Feb 17, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.11`](https://github.com/typicode/husky/releases/tag/v9.0.11)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.10...v9.0.11)

- chore: update package-lock.json by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/typicode/husky/pull/1383](https://github.com/typicode/husky/pull/1383)
- fix: husky=0 in init (fixes
[#&#8203;1393](https://github.com/typicode/husky/issues/1393)) by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1395](https://github.com/typicode/husky/pull/1395)

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</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 is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/ASVGay/the-rhapsodies).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2In0=-->
remcolakens referenced this pull request in remcolakens/next-boilerplate Feb 17, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.11`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.11`](https://github.com/typicode/husky/releases/tag/v9.0.11)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.10...v9.0.11)

- chore: update package-lock.json by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/typicode/husky/pull/1383](https://github.com/typicode/husky/pull/1383)
- fix: husky=0 in init (fixes
[#&#8203;1393](https://github.com/typicode/husky/issues/1393)) by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1395](https://github.com/typicode/husky/pull/1395)

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone
Europe/Amsterdam, 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/remcolakens/next-boilerplate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Remco Lakens <remco.lakens@gmail.com>
Adriel-M referenced this pull request in Adriel-M/adriel.dev Feb 18, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.11`](https://github.com/typicode/husky/releases/tag/v9.0.11)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.10...v9.0.11)

- chore: update package-lock.json by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/typicode/husky/pull/1383](https://github.com/typicode/husky/pull/1383)
- fix: husky=0 in init (fixes
[#&#8203;1393](https://github.com/typicode/husky/issues/1393)) by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1395](https://github.com/typicode/husky/pull/1395)

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Adriel-M/adriel.dev).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Adriel <20115135+Adriel-M@users.noreply.github.com>
gastonfournier referenced this pull request in Unleash/unleash Feb 19, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`8.0.3` ->
`9.0.11`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.11`](https://github.com/typicode/husky/releases/tag/v9.0.11)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.10...v9.0.11)

- chore: update package-lock.json by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/typicode/husky/pull/1383](https://github.com/typicode/husky/pull/1383)
- fix: husky=0 in init (fixes
[#&#8203;1393](https://github.com/typicode/husky/issues/1393)) by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1395](https://github.com/typicode/husky/pull/1395)

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, 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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in valora-inc/address-metadata Feb 19, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.11`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.11`](https://github.com/typicode/husky/releases/tag/v9.0.11)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.10...v9.0.11)

- chore: update package-lock.json by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/typicode/husky/pull/1383](https://github.com/typicode/husky/pull/1383)
- fix: husky=0 in init (fixes
[#&#8203;1393](https://github.com/typicode/husky/issues/1393)) by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1395](https://github.com/typicode/husky/pull/1395)

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone
UTC, Automerge - "after 8:00 before 23:00 every weekday except on
Friday" in timezone UTC.

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/valora-inc/address-metadata).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOTEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE5MS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
descope bot referenced this pull request in descope/descope-js Mar 5, 2024
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | devDependencies | major
| [`^8.0.0` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.10) |
`9.0.11` |

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

*Note: install using `husky@latest` to get the bug fixes that were
released after.*

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

Adding husky to a project is now easier than ever. It's just a single
line that does the same as above. No need to read the docs to get
started anymore.

```shell
npx husky init
```

#### Adding a New Hook

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

Adding a hook is as simple as creating a file. This can be accomplished
using your favorite editor, a script or a basic `echo` command. For
example, on Linux/macOS:

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

Here are the steps to migrate:

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test 
```

*Note: `sh` will be used to run hooks, even if a shebang is set.*

If you were using `husky` as a module:

```diff
- const husky = require('husky')
- // ...
+ import husky from 'husky'
+ console.log(husky())
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 10pm every weekday,every
weekend,before 5am every weekday" in timezone Asia/Jerusalem, Automerge
- At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiIzNy42NC4yIiwidXBkYXRlZEluVmVyIjoiMzcuNjQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: descope[bot] <descope[bot]@users.noreply.github.com>
kodiakhq bot referenced this pull request in X-oss-byte/Nextjs Mar 9, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`8.0.3` -> `9.0.11`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.11) | [![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

### [`v9.0.11`](https://github.com/typicode/husky/releases/tag/v9.0.11)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.10...v9.0.11)

-   chore: update package-lock.json by [@&#8203;btea](https://github.com/btea) in [https://github.com/typicode/husky/pull/1383](https://github.com/typicode/husky/pull/1383)
-   fix: husky=0 in init (fixes [#&#8203;1393](https://github.com/typicode/husky/issues/1393)) by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1395](https://github.com/typicode/husky/pull/1395)

### [`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

-   fix: rename index.d.ts to index.d.mts by [@&#8203;mrkjdy](https://github.com/mrkjdy) in [https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

-   refactor: rename files by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

-   docs: update index.md by [@&#8203;khaledYS](https://github.com/khaledYS) in [https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
-   Fix tab detection on install command by [@&#8203;glensc](https://github.com/glensc) in [https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
-   refactor: reduce file size by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
-   docs: fix example by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

-   docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed) in [https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
-   chore: apply editorconfig to code only by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
-   docs: update install script to mjs and fix CI checks by [@&#8203;starnayuta](https://github.com/starnayuta) in [https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
-   Fix  unbound variable by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

-   docs: update path to startup files by [@&#8203;ManuelRauber](https://github.com/ManuelRauber) in [https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
-   fix: init error by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

-   fix: init create dir before by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
-   refactor: simplify by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
-   fix: init not working on pnpm [#&#8203;1334](https://github.com/typicode/husky/issues/1334) by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

-   docs: fix link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
-   chore: fix links in issue template by [@&#8203;julien-f](https://github.com/julien-f) in [https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
-   fix: add scripts field if not present by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
-   docs: changelog link by [@&#8203;typicode](https://github.com/typicode) in [https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
-   fix: insert final newline by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
-   fix: fix git hooks path on windows by [@&#8203;rozbo](https://github.com/rozbo) in [https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

-   fix: exit code by [@&#8203;gergelypap](https://github.com/gergelypap) in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
-   docs: typo by [@&#8203;chalkygames123](https://github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

-   [@&#8203;gergelypap](https://github.com/gergelypap) made their first contribution in [https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**: typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263" height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but open to other stacks Rails, Go, Elixir). You can contact me at my mail: typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the installation process was straightforward, it often required consulting the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be accomplished using your favorite editor, a script or a basic `echo` command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately `6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned 🙌

#### Other Changes

-   **Enhanced security** with CI and npm `--provenance` for safer publishing.
-   Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to `~/.config/husky/init.sh` for centralized configuration.
-   **Fixed permission issue for Windows-created hooks**; they no longer need to be executable.
-   Removed `husky install`. Use `husky` or `husky some/dir` for the same functionality (deprecation notice to be added).
-   Modified behavior when `.git` is missing; it now triggers a warning instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/X-oss-byte/Nextjs).
hobroker referenced this pull request in hobroker/selfhosted Mar 15, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.11.0` ->
`20.11.28`](https://renovatebot.com/diffs/npm/@types%2fnode/20.11.0/20.11.28)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.11.28?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.11.28?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.11.0/20.11.28?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.11.0/20.11.28?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [lint-staged](https://github.com/okonet/lint-staged) | [`15.2.0` ->
`15.2.2`](https://renovatebot.com/diffs/npm/lint-staged/15.2.0/15.2.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/lint-staged/15.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lint-staged/15.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lint-staged/15.2.0/15.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lint-staged/15.2.0/15.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.11`](https://github.com/typicode/husky/releases/tag/v9.0.11)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.10...v9.0.11)

- chore: update package-lock.json by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/typicode/husky/pull/1383](https://github.com/typicode/husky/pull/1383)
- fix: husky=0 in init (fixes
[#&#8203;1393](https://github.com/typicode/husky/issues/1393)) by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1395](https://github.com/typicode/husky/pull/1395)

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

<details>
<summary>okonet/lint-staged (lint-staged)</summary>

###
[`v15.2.2`](https://github.com/okonet/lint-staged/blob/HEAD/CHANGELOG.md#1522)

[Compare
Source](https://github.com/okonet/lint-staged/compare/v15.2.1...v15.2.2)

##### Patch Changes

- [#&#8203;1391](https://github.com/lint-staged/lint-staged/pull/1391)
[`fdcdad4`](https://github.com/lint-staged/lint-staged/commit/fdcdad42ff96fea3c05598e378d3c44ad4a51bde)
Thanks [@&#8203;iiroj](https://github.com/iiroj)! - *Lint-staged* no
longer tries to load configuration from files that are not checked out.
This might happen when using sparse-checkout.

###
[`v15.2.1`](https://github.com/okonet/lint-staged/blob/HEAD/CHANGELOG.md#1521)

[Compare
Source](https://github.com/okonet/lint-staged/compare/v15.2.0...v15.2.1)

##### Patch Changes

- [#&#8203;1387](https://github.com/lint-staged/lint-staged/pull/1387)
[`e4023f6`](https://github.com/lint-staged/lint-staged/commit/e4023f687616dcf4816545b8eefbcce50e255c9c)
Thanks [@&#8203;iiroj](https://github.com/iiroj)! - Ignore stdin of
spawned commands so that they don't get stuck waiting. Until now,
*lint-staged* has used the default settings to spawn linter commands.
This means the `stdin` of the spawned commands has accepted input, and
essentially gotten stuck waiting. Now the `stdin` is ignored and
commands will no longer get stuck. If you relied on this behavior,
please open a new issue and describe how; the behavior has not been
intended.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
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 [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/hobroker/selfhosted).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNDUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Igor <4361921+hobroker@users.noreply.github.com>
ykzts referenced this pull request in manaelproxy/manael Mar 23, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.0.11`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.11`](https://github.com/typicode/husky/releases/tag/v9.0.11)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.10...v9.0.11)

- chore: update package-lock.json by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/typicode/husky/pull/1383](https://github.com/typicode/husky/pull/1383)
- fix: husky=0 in init (fixes
[#&#8203;1393](https://github.com/typicode/husky/issues/1393)) by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1395](https://github.com/typicode/husky/pull/1395)

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/manaelproxy/manael).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
github-merge-queue bot referenced this pull request in camunda/camunda Apr 25, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`8.0.3` ->
`9.0.11`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.0.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.0.11`](https://github.com/typicode/husky/releases/tag/v9.0.11)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.10...v9.0.11)

- chore: update package-lock.json by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/typicode/husky/pull/1383](https://github.com/typicode/husky/pull/1383)
- fix: husky=0 in init (fixes
[#&#8203;1393](https://github.com/typicode/husky/issues/1393)) by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1395](https://github.com/typicode/husky/pull/1395)

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

### [`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

### [`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

### [`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

### [`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by [@&#8203;rakleed](https://github.com/rakleed)
in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

### [`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by [@&#8203;typicode](https://github.com/typicode)
in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

### [`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334) by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

### [`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

### [`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made their first
contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

### [`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/camunda/zeebe).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJhdXRvbWVyZ2UiXX0=-->
renovate bot referenced this pull request in davidsneighbour/hugo-modules Sep 15, 2024
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^5.2.0` ->
`^9.0.0`](https://renovatebot.com/diffs/npm/husky/5.2.0/9.1.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/5.2.0/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/5.2.0/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.1.6`](https://github.com/typicode/husky/compare/v9.1.5...a2d942a670b3d6a04578005a0fd2dc310e511849)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.5...v9.1.6)

###
[`v9.1.5`](https://github.com/typicode/husky/compare/v9.1.4...2fee8d212c601942ad146ea9209f15c20a07fb6d)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.4...v9.1.5)

###
[`v9.1.4`](https://github.com/typicode/husky/compare/v9.1.3...fc549e0e5c8723a6d796f6ad26ef6590769f5d82)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.3...v9.1.4)

###
[`v9.1.3`](https://github.com/typicode/husky/releases/tag/v9.1.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.2...v9.1.3)

-   fix: better handle space in `PATH`

###
[`v9.1.2`](https://github.com/typicode/husky/compare/v9.1.1...v9.1.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.1...v9.1.2)

###
[`v9.1.1`](https://github.com/typicode/husky/compare/v9.1.0...2968998755465f69069f297b5bb603e26d6b1772)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.0...v9.1.1)

###
[`v9.1.0`](https://github.com/typicode/husky/releases/tag/v9.1.0)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.11...v9.1.0)

<p>
<img
src="https://github.com/user-attachments/assets/72a03e68-e9c3-4644-94f9-d5ceb343aca5"
height="500px" alt="" />
</p>

*Super saiyan ~~god~~ dog! It's over 9.0.0!*

*There's a bug with this release which prevents the deprecation notice
to appear and requires to remove `#!/usr/bin/env sh` and `. "$(dirname
-- "$0")/_/husky.sh"` (which are deprecated by the way). I'll publish a
new version to fix that. Sorry about any inconvenience.*

### What's new

You can now run package commands directly, no need for `npx` or
equivalents.
It makes writing hooks more intuitive and is also slightly faster 🐺⚡️

```diff

### .husky/pre-commit
- npx jest
+ jest # ~0.2s faster
```

A new recipe has been added to the docs. Lint staged files without
external dependencies (inspired by Prettier docs). Feel free to modify
it.

```shell

### .husky/pre-commit
prettier $(git diff --cached --name-only --diff-filter=ACMR | sed 's| |\\ |g') --write --ignore-unknown
git update-index --again
```

For more advanced use cases, see
[lint-staged](https://github.com/lint-staged/lint-staged).

### Fixes

-   `bunx husky init` command
-   Workaround for some hooks implementation on Windows 🤷

### Deprecations

- Remove `#!/usr/bin/env sh` and `. "$(dirname -- "$0")/_/husky.sh"`
from your hooks
-   Move your code from `~/.huskyrc` to `.config/husky/init.sh`

Support for these will be removed in v10, notices have been added.

### Friendly reminder

If Git hooks don't fit your workflow, you can disable Husky globally.
Just add `export HUSKY=0` to `.config/husky/init.sh`.

I've seen some confusion about this on X, so just a heads-up!

### Sponsoring

Husky is downloaded over 45M times per month and used by ~1.5M projects.
If your company wants to sponsor, you can do so here: [GitHub
Sponsors](https://github.com/sponsors/typicode).

**Have a nice summer ☀️ I'm open to new opportunities/consulting so feel
free to drop me a message 😉**

###
[`v9.0.11`](https://github.com/typicode/husky/releases/tag/v9.0.11)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.10...v9.0.11)

- chore: update package-lock.json by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/typicode/husky/pull/1383](https://github.com/typicode/husky/pull/1383)
- fix: husky=0 in init (fixes
[#&#8203;1393](https://github.com/typicode/husky/issues/1393))
by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1395](https://github.com/typicode/husky/pull/1395)

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

###
[`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

###
[`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

###
[`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

###
[`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by
[@&#8203;rakleed](https://github.com/rakleed) in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

###
[`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

###
[`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334)
by [@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

###
[`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

###
[`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made
their first contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

###
[`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

###
[`v8.0.3`](https://github.com/typicode/husky/releases/tag/v8.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.2...v8.0.3)

- fix: add git not installed message
[#&#8203;1208](https://github.com/typicode/husky/issues/1208)

###
[`v8.0.2`](https://github.com/typicode/husky/releases/tag/v8.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.1...v8.0.2)

-   docs: remove deprecated npm set-script

###
[`v8.0.1`](https://github.com/typicode/husky/releases/tag/v8.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.0...v8.0.1)

-   fix: use POSIX equality operator

###
[`v8.0.0`](https://github.com/typicode/husky/releases/tag/v8.0.0)

[Compare
Source](https://github.com/typicode/husky/compare/v7.0.4...v8.0.0)

#### What's Changed

##### Feats

- feat: add `husky -` prefix to logged global error messages by
[@&#8203;joshbalfour](https://github.com/joshbalfour) in
[https://github.com/typicode/husky/pull/1092](https://github.com/typicode/husky/pull/1092)
-   feat: show `PATH` when command not found to improve debuggability
-   feat: drop Node 12 support
-   feat: skip install if `$HUSKY=0`

##### Fixes

- fix: hook script use `/usr/bin/env sh` instead of direct path of `sh`
by [@&#8203;skhaz](https://github.com/skhaz) in
[https://github.com/typicode/husky/pull/1051](https://github.com/typicode/husky/pull/1051)
- fix: actually set 'husky_skip_init' as readonly in `./husky.sh` by
[@&#8203;hyperupcall](https://github.com/hyperupcall) in
[https://github.com/typicode/husky/pull/1104](https://github.com/typicode/husky/pull/1104)
- fix: force `basename`/`dirname` to treat `$0` as an argument by
[@&#8203;mataha](https://github.com/mataha) in
[https://github.com/typicode/husky/pull/1132](https://github.com/typicode/husky/pull/1132)
- fix: remove `git.io` links by
[@&#8203;renbaoshuo](https://github.com/renbaoshuo) in
[https://github.com/typicode/husky/pull/1136](https://github.com/typicode/husky/pull/1136)

##### Docs

- docs: fix uninstall via npm by
[@&#8203;pddpd](https://github.com/pddpd) in
[https://github.com/typicode/husky/pull/1033](https://github.com/typicode/husky/pull/1033)
- docs: add dog emoji as favicon by
[@&#8203;jamiehaywood](https://github.com/jamiehaywood) in
[https://github.com/typicode/husky/pull/1095](https://github.com/typicode/husky/pull/1095)
- docs: replace deprecated `npx --no-install` option with `npx --no` by
[@&#8203;sibiraj-s](https://github.com/sibiraj-s) in
[https://github.com/typicode/husky/pull/1070](https://github.com/typicode/husky/pull/1070)
- docs: add `pnpm` installation by
[@&#8203;MohamadKh75](https://github.com/MohamadKh75) in
[https://github.com/typicode/husky/pull/1139](https://github.com/typicode/husky/pull/1139)

##### Chore

- chore: update workflows by
[@&#8203;tiziodcaio](https://github.com/tiziodcaio) in
[https://github.com/typicode/husky/pull/1125](https://github.com/typicode/husky/pull/1125)

###
[`v7.0.4`](https://github.com/typicode/husky/releases/tag/v7.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v7.0.3...v7.0.4)

*No changes. Husky v7.0.3 was reverted, this version is the same as
v7.0.2.*

###
[`v7.0.3`](https://github.com/typicode/husky/compare/v7.0.2...v7.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v7.0.2...v7.0.3)

###
[`v7.0.2`](https://github.com/typicode/husky/releases/tag/v7.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v7.0.1...v7.0.2)

Fix pre-commit hook in WebStorm
([#&#8203;1023](https://github.com/typicode/husky/issues/1023))

###
[`v7.0.1`](https://github.com/typicode/husky/releases/tag/v7.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v7.0.0...v7.0.1)

- Fix gracefully fail if Git command is not found
[#&#8203;1003](https://github.com/typicode/husky/issues/1003)
(same as in v6)

###
[`v7.0.0`](https://github.com/typicode/husky/releases/tag/v7.0.0)

[Compare
Source](https://github.com/typicode/husky/compare/v6.0.0...v7.0.0)

- Improve `.husky/` directory structure. **`.husky/.gitignore` is now
unnecessary and can be removed**.
-   Improve error output (shorter)
- Update [`husky-init`](https://github.com/typicode/husky-init)
CLI
- Update
[`husky-4-to-7`](https://github.com/typicode/husky-4-to-7) CLI
-   Drop Node 10 support

*Please help me develop and release OSS projects ❤️ on [GitHub
Sponsors](https://github.com/sponsors/typicode) or [Open
Collective](https://opencollective.com/husky). Thank you for your
support!*

###
[`v6.0.0`](https://github.com/typicode/husky/releases/tag/v6.0.0)

[Compare
Source](https://github.com/typicode/husky/compare/v5.2.0...v6.0.0)

After being in early access for Open Source projects and Sponsors for a
limited time, **I'm happy to announce that husky 6 is MIT again** and
can be freely used in commercial projects! 🎉

**Many thanks to the [Open Source
projects](https://typicode.github.io/husky/#/?id=used-by) and Companies
which have switched to/sponsored the new husky during this period!**

*OSS is my full-time job, please consider sponsoring the development of
husky on [GitHub
sponsors](https://github.com/sponsors/typicode) or [Open
Collective](https://opencollective.com/husky). Thank you!*

### Breaking change

-   `husky init` has been moved to its own package (`npx husky-init`)

### Added

-   Programmatically use husky: `require('husky')`
-   TypeScript definitions

### Migrating from husky 4

Husky 6 contains breaking changes. If you're coming from v4, `npm
install husky@6` won't be enough.

**Recommended:** see
[husky-4-to-6](https://typicode.github.io/husky/#/?id=husky-4-to-6-cli)
CLI to automatically migrate your config. There's also a dedicated
section in the
[docs](https://typicode.github.io/husky/#/?id=migrate-from-v4-to-v6).

**If you're curious why config has changed, you may be interested in
reading:**
https://blog.typicode.com/husky-git-hooks-javascript-config/

**Also Husky 6 follows official
[npm](https://docs.npmjs.com/cli/v7/using-npm/scripts#best-practices)
and
[Yarn](https://yarnpkg.com/advanced/lifecycle-scripts#a-note-about-postinstall)
best practices regarding autoinstall.** It's recommended to use
`prepare` script instead (see
[usage](https://typicode.github.io/husky/#/?id=usage) in docs).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/davidsneighbour/hugo-modules).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC43NC4xIiwidXBkYXRlZEluVmVyIjoiMzguNzQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
github-merge-queue bot referenced this pull request in rustymotors/server Sep 19, 2024
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.1.6`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.1.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.1.6`](https://github.com/typicode/husky/compare/v9.1.5...a2d942a670b3d6a04578005a0fd2dc310e511849)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.5...v9.1.6)

###
[`v9.1.5`](https://github.com/typicode/husky/compare/v9.1.4...2fee8d212c601942ad146ea9209f15c20a07fb6d)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.4...v9.1.5)

###
[`v9.1.4`](https://github.com/typicode/husky/compare/v9.1.3...fc549e0e5c8723a6d796f6ad26ef6590769f5d82)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.3...v9.1.4)

###
[`v9.1.3`](https://github.com/typicode/husky/releases/tag/v9.1.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.2...v9.1.3)

-   fix: better handle space in `PATH`

###
[`v9.1.2`](https://github.com/typicode/husky/compare/v9.1.1...v9.1.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.1...v9.1.2)

###
[`v9.1.1`](https://github.com/typicode/husky/compare/v9.1.0...2968998755465f69069f297b5bb603e26d6b1772)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.0...v9.1.1)

###
[`v9.1.0`](https://github.com/typicode/husky/releases/tag/v9.1.0)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.11...v9.1.0)

<p>
<img
src="https://github.com/user-attachments/assets/72a03e68-e9c3-4644-94f9-d5ceb343aca5"
height="500px" alt="" />
</p>

*Super saiyan ~~god~~ dog! It's over 9.0.0!*

*There's a bug with this release which prevents the deprecation notice
to appear and requires to remove `#!/usr/bin/env sh` and `. "$(dirname
-- "$0")/_/husky.sh"` (which are deprecated by the way). I'll publish a
new version to fix that. Sorry about any inconvenience.*

### What's new

You can now run package commands directly, no need for `npx` or
equivalents.
It makes writing hooks more intuitive and is also slightly faster 🐺⚡️

```diff

### .husky/pre-commit
- npx jest
+ jest # ~0.2s faster
```

A new recipe has been added to the docs. Lint staged files without
external dependencies (inspired by Prettier docs). Feel free to modify
it.

```shell

### .husky/pre-commit
prettier $(git diff --cached --name-only --diff-filter=ACMR | sed 's| |\\ |g') --write --ignore-unknown
git update-index --again
```

For more advanced use cases, see
[lint-staged](https://github.com/lint-staged/lint-staged).

### Fixes

-   `bunx husky init` command
-   Workaround for some hooks implementation on Windows 🤷

### Deprecations

- Remove `#!/usr/bin/env sh` and `. "$(dirname -- "$0")/_/husky.sh"`
from your hooks
-   Move your code from `~/.huskyrc` to `.config/husky/init.sh`

Support for these will be removed in v10, notices have been added.

### Friendly reminder

If Git hooks don't fit your workflow, you can disable Husky globally.
Just add `export HUSKY=0` to `.config/husky/init.sh`.

I've seen some confusion about this on X, so just a heads-up!

### Sponsoring

Husky is downloaded over 45M times per month and used by ~1.5M projects.
If your company wants to sponsor, you can do so here: [GitHub
Sponsors](https://github.com/sponsors/typicode).

**Have a nice summer ☀️ I'm open to new opportunities/consulting so feel
free to drop me a message 😉**

###
[`v9.0.11`](https://github.com/typicode/husky/releases/tag/v9.0.11)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.10...v9.0.11)

- chore: update package-lock.json by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/typicode/husky/pull/1383](https://github.com/typicode/husky/pull/1383)
- fix: husky=0 in init (fixes
[#&#8203;1393](https://github.com/typicode/husky/issues/1393))
by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1395](https://github.com/typicode/husky/pull/1395)

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

###
[`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

###
[`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

###
[`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

###
[`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by
[@&#8203;rakleed](https://github.com/rakleed) in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

###
[`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

###
[`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334)
by [@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

###
[`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

###
[`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made
their first contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

###
[`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled because a matching PR was automerged
previously.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/rustymotors/server).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6ImRldiIsImxhYmVscyI6W119-->
github-merge-queue bot referenced this pull request in rustymotors/server Sep 19, 2024
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [husky](https://github.com/typicode/husky) | [`^8.0.3` ->
`^9.1.6`](https://renovatebot.com/diffs/npm/husky/8.0.3/9.1.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/8.0.3/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/8.0.3/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typicode/husky (husky)</summary>

###
[`v9.1.6`](https://github.com/typicode/husky/compare/v9.1.5...a2d942a670b3d6a04578005a0fd2dc310e511849)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.5...v9.1.6)

###
[`v9.1.5`](https://github.com/typicode/husky/compare/v9.1.4...2fee8d212c601942ad146ea9209f15c20a07fb6d)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.4...v9.1.5)

###
[`v9.1.4`](https://github.com/typicode/husky/compare/v9.1.3...fc549e0e5c8723a6d796f6ad26ef6590769f5d82)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.3...v9.1.4)

###
[`v9.1.3`](https://github.com/typicode/husky/releases/tag/v9.1.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.2...v9.1.3)

-   fix: better handle space in `PATH`

###
[`v9.1.2`](https://github.com/typicode/husky/compare/v9.1.1...v9.1.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.1...v9.1.2)

###
[`v9.1.1`](https://github.com/typicode/husky/compare/v9.1.0...2968998755465f69069f297b5bb603e26d6b1772)

[Compare
Source](https://github.com/typicode/husky/compare/v9.1.0...v9.1.1)

###
[`v9.1.0`](https://github.com/typicode/husky/releases/tag/v9.1.0)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.11...v9.1.0)

<p>
<img
src="https://github.com/user-attachments/assets/72a03e68-e9c3-4644-94f9-d5ceb343aca5"
height="500px" alt="" />
</p>

*Super saiyan ~~god~~ dog! It's over 9.0.0!*

*There's a bug with this release which prevents the deprecation notice
to appear and requires to remove `#!/usr/bin/env sh` and `. "$(dirname
-- "$0")/_/husky.sh"` (which are deprecated by the way). I'll publish a
new version to fix that. Sorry about any inconvenience.*

### What's new

You can now run package commands directly, no need for `npx` or
equivalents.
It makes writing hooks more intuitive and is also slightly faster 🐺⚡️

```diff

### .husky/pre-commit
- npx jest
+ jest # ~0.2s faster
```

A new recipe has been added to the docs. Lint staged files without
external dependencies (inspired by Prettier docs). Feel free to modify
it.

```shell

### .husky/pre-commit
prettier $(git diff --cached --name-only --diff-filter=ACMR | sed 's| |\\ |g') --write --ignore-unknown
git update-index --again
```

For more advanced use cases, see
[lint-staged](https://github.com/lint-staged/lint-staged).

### Fixes

-   `bunx husky init` command
-   Workaround for some hooks implementation on Windows 🤷

### Deprecations

- Remove `#!/usr/bin/env sh` and `. "$(dirname -- "$0")/_/husky.sh"`
from your hooks
-   Move your code from `~/.huskyrc` to `.config/husky/init.sh`

Support for these will be removed in v10, notices have been added.

### Friendly reminder

If Git hooks don't fit your workflow, you can disable Husky globally.
Just add `export HUSKY=0` to `.config/husky/init.sh`.

I've seen some confusion about this on X, so just a heads-up!

### Sponsoring

Husky is downloaded over 45M times per month and used by ~1.5M projects.
If your company wants to sponsor, you can do so here: [GitHub
Sponsors](https://github.com/sponsors/typicode).

**Have a nice summer ☀️ I'm open to new opportunities/consulting so feel
free to drop me a message 😉**

###
[`v9.0.11`](https://github.com/typicode/husky/releases/tag/v9.0.11)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.10...v9.0.11)

- chore: update package-lock.json by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/typicode/husky/pull/1383](https://github.com/typicode/husky/pull/1383)
- fix: husky=0 in init (fixes
[#&#8203;1393](https://github.com/typicode/husky/issues/1393))
by [@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1395](https://github.com/typicode/husky/pull/1395)

###
[`v9.0.10`](https://github.com/typicode/husky/releases/tag/v9.0.10)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.9...v9.0.10)

- fix: rename index.d.ts to index.d.mts by
[@&#8203;mrkjdy](https://github.com/mrkjdy) in
[https://github.com/typicode/husky/pull/1379](https://github.com/typicode/husky/pull/1379)

###
[`v9.0.9`](https://github.com/typicode/husky/releases/tag/v9.0.9)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.8...v9.0.9)

- refactor: rename files by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1378](https://github.com/typicode/husky/pull/1378)

###
[`v9.0.8`](https://github.com/typicode/husky/releases/tag/v9.0.8)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.7...v9.0.8)

- docs: update index.md by
[@&#8203;khaledYS](https://github.com/khaledYS) in
[https://github.com/typicode/husky/pull/1369](https://github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by
[@&#8203;glensc](https://github.com/glensc) in
[https://github.com/typicode/husky/pull/1376](https://github.com/typicode/husky/pull/1376)
- refactor: reduce file size by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1377](https://github.com/typicode/husky/pull/1377)

###
[`v9.0.7`](https://github.com/typicode/husky/releases/tag/v9.0.7)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7)

-   fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1363](https://github.com/typicode/husky/pull/1363)

###
[`v9.0.6`](https://github.com/typicode/husky/releases/tag/v9.0.6)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.5...v9.0.6)

- docs: add favicon by
[@&#8203;rakleed](https://github.com/rakleed) in
[https://github.com/typicode/husky/pull/1354](https://github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1355](https://github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by
[@&#8203;starnayuta](https://github.com/starnayuta) in
[https://github.com/typicode/husky/pull/1357](https://github.com/typicode/husky/pull/1357)
- Fix unbound variable by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1359](https://github.com/typicode/husky/pull/1359)

###
[`v9.0.5`](https://github.com/typicode/husky/releases/tag/v9.0.5)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.4...v9.0.5)

- docs: update path to startup files by
[@&#8203;ManuelRauber](https://github.com/ManuelRauber) in
[https://github.com/typicode/husky/pull/1350](https://github.com/typicode/husky/pull/1350)
- fix: init error by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1353](https://github.com/typicode/husky/pull/1353)

###
[`v9.0.4`](https://github.com/typicode/husky/releases/tag/v9.0.4)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.3...v9.0.4)

- fix: init create dir before by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1348](https://github.com/typicode/husky/pull/1348)
- refactor: simplify by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1349](https://github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm
[#&#8203;1334](https://github.com/typicode/husky/issues/1334)
by [@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1347](https://github.com/typicode/husky/pull/1347)

###
[`v9.0.3`](https://github.com/typicode/husky/releases/tag/v9.0.3)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.2...v9.0.3)

- docs: fix link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1340](https://github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by
[@&#8203;julien-f](https://github.com/julien-f) in
[https://github.com/typicode/husky/pull/1341](https://github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1338](https://github.com/typicode/husky/pull/1338)
- docs: changelog link by
[@&#8203;typicode](https://github.com/typicode) in
[https://github.com/typicode/husky/pull/1343](https://github.com/typicode/husky/pull/1343)
- fix: insert final newline by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1339](https://github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by
[@&#8203;rozbo](https://github.com/rozbo) in
[https://github.com/typicode/husky/pull/1346](https://github.com/typicode/husky/pull/1346)

###
[`v9.0.2`](https://github.com/typicode/husky/releases/tag/v9.0.2)

[Compare
Source](https://github.com/typicode/husky/compare/v9.0.1...v9.0.2)

#### What's Changed

- fix: exit code by
[@&#8203;gergelypap](https://github.com/gergelypap) in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)
- docs: typo by
[@&#8203;chalkygames123](https://github.com/chalkygames123) in
[https://github.com/typicode/husky/pull/1337](https://github.com/typicode/husky/pull/1337)

#### New Contributors

- [@&#8203;gergelypap](https://github.com/gergelypap) made
their first contribution in
[https://github.com/typicode/husky/pull/1336](https://github.com/typicode/husky/pull/1336)

**Full Changelog**:
typicode/husky@v9.0.1...v9.0.2

###
[`v9.0.1`](https://github.com/typicode/husky/releases/tag/v9.0.1)

[Compare
Source](https://github.com/typicode/husky/compare/v8.0.3...v9.0.1)

<p align="center">
Kicking off the year with an exciting update!
</p>

<p align="center">
<img
src="https://github.com/typicode/husky/assets/5502029/457ab087-e935-4196-b99f-601ecf37f263"
height="400px" alt="" />
</p>

#### TLDR;

Improved user experience and a (even) smaller package size while packing
in more features!

#### 👋 By the Way

**I'm available for remote work** (Front-end/Back-end mainly JS/TS but
open to other stacks Rails, Go, Elixir). You can contact me at my mail:
typicode at gmail 🙂

#### Introducing `husky init`

Adding husky to a project is now easier than ever. Although the
installation process was straightforward, it often required consulting
the documentation.

##### v8

```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```

##### v9

```shell
npx husky init
```

#### Adding a New Hook

Adding a hook is now as simple as creating a file. This can be
accomplished using your favorite editor, a script or a basic `echo`
command.

##### v8

```shell
npx husky add  .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```

##### v9

```shell
echo "npm test" > .husky/pre-commit
```

#### Further Size Reduction

`v8` was already the most compact Git hooks manager at approximately
`6kB`.

`v9` takes this a step further, reducing the size to just `3kB`, likely
making it the smallest devDependency in your toolkit.

**To give you an idea of how small it is, the biggest file in the
project is the MIT license 😄**

#### More to Come

Additional features are in the pipeline for `v9`. Stay tuned
🙌

#### Other Changes

- **Enhanced security** with CI and npm `--provenance` for safer
publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to
`~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer
need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same
functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning
instead of failure.
-   Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
-   Updated the Husky API for module usage.
-   Transitioned to `ESM` for module usage.
-   Dropped support for Node 14 and 16.
-   Revamped docs.

#### How to Migrate

`v9` is backward compatible with `v8`, allowing you to freely upgrade
and migrate your hooks later.

`package.json`

```diff
{
  "scripts": {
-   "prepare": "husky install"
+   "prepare": "husky"
  }
}
```

`.husky/pre-commit`

```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled because a matching PR was automerged
previously.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/rustymotors/server).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6ImRldiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants