From 1c0b626a3370279eeb9cfbb1cf18d7a17135613c Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Tue, 3 Feb 2026 03:10:14 +0100 Subject: [PATCH 01/29] chore: Move the GitHub app token generation step after checkout --- .github/workflows/release.yml | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ce9d947..0a8fd49 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,16 +14,7 @@ jobs: release: name: semantic-release runs-on: ubuntu-latest - steps: - # Generate a GitHub App token for authentication instead of using a personal access token - - name: Generate GitHub App token - id: app-token - uses: actions/create-github-app-token@v2 - with: - app-id: ${{ secrets.RELEASE_APP_ID }} - private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }} - # Checkout the repository - name: Checkout repository uses: actions/checkout@v6 @@ -31,12 +22,6 @@ jobs: fetch-depth: 0 # Fetch all history for all branches and tags (required to allow semantic-release to analyze commits) persist-credentials: false # Explicitly disable the token persistence - # Reconfigure git remote URL to use the GitHub App token for authentication instead of the default GITHUB_TOKEN for pushing changes back to the repository by semantic-release - - name: Authenticate git with GitHub App token - run: | - git remote set-url origin \ - https://x-access-token:${{ steps.app-token.outputs.token }}@github.com/${{ github.repository }}.git - # Setup Node.js v24 - name: Setup Node.js uses: actions/setup-node@v6 @@ -53,10 +38,24 @@ jobs: run: | npm install --no-save \ semantic-release@25 \ - @semantic-release/changelog@6 \ @semantic-release/git@10 \ + @semantic-release/changelog@6 \ conventional-changelog-conventionalcommits@9 \ + # Generate a GitHub App token for authentication instead of using a personal access token + - name: Generate GitHub App token + id: app-token + uses: actions/create-github-app-token@v2 + with: + app-id: ${{ secrets.RELEASE_APP_ID }} + private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }} + + # Reconfigure git remote URL to use the GitHub App token for authentication instead of the default GITHUB_TOKEN for pushing changes back to the repository by semantic-release + - name: Authenticate git with GitHub App token + run: | + git remote set-url origin \ + https://x-access-token:${{ steps.app-token.outputs.token }}@github.com/${{ github.repository }}.git + # Run semantic-release to automate the release process - name: Run semantic-release env: From 50b1992ea08870244760c4f815a78f67c52d4ba1 Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Tue, 3 Feb 2026 03:16:07 +0100 Subject: [PATCH 02/29] chore: Make breaking-change makers detectable --- .releaserc.mjs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/.releaserc.mjs b/.releaserc.mjs index d85bac3..0188d3a 100644 --- a/.releaserc.mjs +++ b/.releaserc.mjs @@ -11,14 +11,13 @@ export default { { preset: "conventionalcommits", releaseRules: [ + { breaking: true, release: "major" }, { type: "feat", release: "minor" }, { type: "fix", release: "patch" }, { type: "perf", release: "patch" }, { type: "refactor", release: "patch" }, - // Docs & DX improvements still get patch releases - { type: "docs", release: "patch" }, { type: "style", release: "patch" }, - // Ignore noise + { type: "docs", release: false }, { type: "test", release: false }, { type: "chore", release: false }, { type: "ci", release: false }, @@ -65,12 +64,7 @@ export default { }, ], // 4. Update version + publish to npm - [ - "@semantic-release/npm", - { - npmPublish: true, - }, - ], + ["@semantic-release/npm", { npmPublish: true }], // 5. Commit changelog + version bump back to repo [ "@semantic-release/git", From c420a712c30c6716ae94cb7d93fbf9fcca6e350e Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Tue, 3 Feb 2026 15:05:58 +0100 Subject: [PATCH 03/29] chore: Remove packages permission It's required only for publishing to GitHub Packages registry --- .github/workflows/release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0a8fd49..f1e4024 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,7 +8,6 @@ on: permissions: contents: write # create tags, releases, and commit changelogs id-token: write # exchange OIDC token with the npm registry for authentication (publish to npm) - packages: write # publish to npm registry via GitHub Packages (trusted publishing) jobs: release: From caeaab4f4df2b777d25f2906579678c4c556468e Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 13:11:06 +0100 Subject: [PATCH 04/29] ci: Bump dependencies --- .github/workflows/commitlint.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml index ca62516..76ad45e 100644 --- a/.github/workflows/commitlint.yml +++ b/.github/workflows/commitlint.yml @@ -5,7 +5,7 @@ jobs: commitlint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 with: fetch-depth: 0 - - uses: wagoid/commitlint-github-action@v5 + - uses: wagoid/commitlint-github-action@v6 From a3cb7e59143e54e8490b5bc954f6f6d346502536 Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 13:14:48 +0100 Subject: [PATCH 05/29] ci: Use GitHub token for semantic-release authentication --- .github/workflows/release.yml | 39 ++++++++--------------------------- 1 file changed, 9 insertions(+), 30 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f1e4024..b0ac512 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,57 +6,36 @@ on: - main permissions: - contents: write # create tags, releases, and commit changelogs - id-token: write # exchange OIDC token with the npm registry for authentication (publish to npm) + id-token: write + contents: write jobs: release: - name: semantic-release + name: Semantic Release runs-on: ubuntu-latest steps: - # Checkout the repository - name: Checkout repository uses: actions/checkout@v6 with: - fetch-depth: 0 # Fetch all history for all branches and tags (required to allow semantic-release to analyze commits) - persist-credentials: false # Explicitly disable the token persistence + fetch-depth: 0 + persist-credentials: false - # Setup Node.js v24 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: 24 registry-url: https://registry.npmjs.org - # Install semantic-release plugins to determine the next version, update changelog, publish to npm, and create GitHub release - # - semantic-release: The main semantic-release package - # - @semantic-release/changelog: Update the changelog file - # - @semantic-release/git: Commit changelog and version bump - # - conventional-changelog-conventionalcommits: Conventional Commits preset for changelog generation - - name: Install semantic-release (CI-only) + - name: Install semantic-release run: | npm install --no-save \ semantic-release@25 \ - @semantic-release/git@10 \ - @semantic-release/changelog@6 \ conventional-changelog-conventionalcommits@9 \ - # Generate a GitHub App token for authentication instead of using a personal access token - - name: Generate GitHub App token - id: app-token - uses: actions/create-github-app-token@v2 - with: - app-id: ${{ secrets.RELEASE_APP_ID }} - private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }} - - # Reconfigure git remote URL to use the GitHub App token for authentication instead of the default GITHUB_TOKEN for pushing changes back to the repository by semantic-release - - name: Authenticate git with GitHub App token - run: | - git remote set-url origin \ - https://x-access-token:${{ steps.app-token.outputs.token }}@github.com/${{ github.repository }}.git + - name: Build package + run: npm run build - # Run semantic-release to automate the release process - name: Run semantic-release env: - GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} # Use GitHub App token for semantic-release authentication + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: npx semantic-release From cc32a9995e4dff4457a2fe387eb8cd300ed6077f Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 13:28:32 +0100 Subject: [PATCH 06/29] build: Create scripts to copy stylesheet and add package.json files to dist folder --- package.json | 10 +++++----- scripts/copy-css.js | 5 +++++ scripts/create-package-json.js | 17 +++++++++++++++++ 3 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 scripts/copy-css.js create mode 100644 scripts/create-package-json.js diff --git a/package.json b/package.json index 9a99bae..5243e94 100644 --- a/package.json +++ b/package.json @@ -16,14 +16,14 @@ "author": "Oluwatobi Sofela (https://www.codesweetly.com)", "license": "MIT", "scripts": { - "dev": "rm -r dist && npm run build", - "build": "npm run build:esm && npm run build:cjs", - "build:esm": "tsc -p tsconfig.esm.json", - "build:cjs": "tsc -p tsconfig.cjs.json", + "build": "node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\" && npm run build:esm && npm run build:cjs && npm run copy-files", + "build:esm": "tsc -p tsconfig.esm.json && node scripts/create-package-json.js --esm", + "build:cjs": "tsc -p tsconfig.cjs.json && node scripts/create-package-json.js --cjs", + "copy-files": "node scripts/copy-css.js", "test": "jest --config jest.config.cjs", "test-publish": "npm publish --dry-run", "watch": "tsc -p tsconfig.esm.json --watch", - "prepare": "husky && npm run build" + "prepare": "husky" }, "files": [ "./dist" diff --git a/scripts/copy-css.js b/scripts/copy-css.js new file mode 100644 index 0000000..f2fefa8 --- /dev/null +++ b/scripts/copy-css.js @@ -0,0 +1,5 @@ +const fs = require("fs"); + +fs.copyFileSync("./src/style.css", `./dist/style.css`); + +console.log("CSS copied successfully!"); diff --git a/scripts/create-package-json.js b/scripts/create-package-json.js new file mode 100644 index 0000000..96a432f --- /dev/null +++ b/scripts/create-package-json.js @@ -0,0 +1,17 @@ +const { argv } = require("node:process"); +const fs = require("fs"); + +const cliArguments = argv.slice(2); + +if (cliArguments[0] === "--esm") { + fs.writeFileSync("dist/esm/package.json", JSON.stringify({ type: "module" })); + console.log("ESM build's package.json created successfully!"); +} + +if (cliArguments[0] === "--cjs") { + fs.writeFileSync( + "dist/cjs/package.json", + JSON.stringify({ type: "commonjs" }), + ); + console.log("CJS build's package.json created successfully!"); +} From b729b6f30720131334aa91d4cc6d2e647196db5a Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 13:37:05 +0100 Subject: [PATCH 07/29] ci: Don't use semantic-release to edit source files in the project's GitHub repo --- .releaserc.mjs | 39 ++++++++++----------------------------- 1 file changed, 10 insertions(+), 29 deletions(-) diff --git a/.releaserc.mjs b/.releaserc.mjs index 0188d3a..133f24c 100644 --- a/.releaserc.mjs +++ b/.releaserc.mjs @@ -5,26 +5,28 @@ export default { branches: ["main"], repositoryUrl: "https://github.com/codesweetly/react-image-grid-gallery", plugins: [ - // 1. Analyze commits and map them to release types [ - "@semantic-release/commit-analyzer", // infer bump from commits + "@semantic-release/commit-analyzer", { preset: "conventionalcommits", + parserOpts: { + noteKeywords: ["BREAKING CHANGE", "BREAKING CHANGES"], + }, releaseRules: [ { breaking: true, release: "major" }, { type: "feat", release: "minor" }, { type: "fix", release: "patch" }, { type: "perf", release: "patch" }, { type: "refactor", release: "patch" }, + { type: "docs", release: "patch" }, { type: "style", release: "patch" }, - { type: "docs", release: false }, + { type: "build", release: false }, { type: "test", release: false }, { type: "chore", release: false }, { type: "ci", release: false }, ], }, ], - // 2. Generate clean, readable release notes [ "@semantic-release/release-notes-generator", { @@ -39,10 +41,6 @@ export default { { type: "style", section: "๐ŸŽจ Code Style" }, ], }, - parserOpts: { - mergePattern: "^Merge pull request", - mergeCorrespondence: null, - }, writerOpts: { groupBy: "type", commitGroupsSort: "title", @@ -50,31 +48,14 @@ export default { }, }, ], - // 3. Write formatted changelog to CHANGELOG.md - [ - "@semantic-release/changelog", - { - changelogFile: "CHANGELOG.md", - changelogTitle: - "# ๐Ÿ“ฆ Changelog\n\nAll notable changes to **react-image-grid-gallery** are documented here.\n", - writerOpts: { - groupBy: "type", - commitGroupsSort: "title", - }, - }, - ], - // 4. Update version + publish to npm ["@semantic-release/npm", { npmPublish: true }], - // 5. Commit changelog + version bump back to repo [ - "@semantic-release/git", + "@semantic-release/github", { - assets: ["package.json", "package-lock.json", "CHANGELOG.md"], - message: - "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}", + successComment: false, + failComment: false, + releasedLabels: false, }, ], - // 6. Create GitHub release notes & tag - "@semantic-release/github", ], }; From ca0ca8e64138a88cfabbbbb1f204992595e793e1 Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 13:39:37 +0100 Subject: [PATCH 08/29] chore: Delete changelog GitHub release note is sufficient --- CHANGELOG.md | 923 --------------------------------------------------- 1 file changed, 923 deletions(-) delete mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 2bd4060..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,923 +0,0 @@ -# ๐Ÿ“ฆ Changelog - -All notable changes to **react-image-grid-gallery** are documented here. - - -## 3.1.8 (2026-01-25) - -* fix: Make esm build emit imports with extensions ([5caa2fc](https://github.com/codesweetly/react-image-grid-gallery/commit/5caa2fc)) -* fix: Make ESM build emit imports with extensions ([be91d10](https://github.com/codesweetly/react-image-grid-gallery/commit/be91d10)) - -## 3.1.7 (2026-01-25) - -* chore: Create script for doing a dry run of the packaging and publishing process ([0800646](https://github.com/codesweetly/react-image-grid-gallery/commit/0800646)) -* fix: Prevent typescript from emitting commonjs syntax to esm build ([268b1cb](https://github.com/codesweetly/react-image-grid-gallery/commit/268b1cb)) -* fix: Prevent TypeScript from emitting CommonJS syntax to ESM build ([0b28ae5](https://github.com/codesweetly/react-image-grid-gallery/commit/0b28ae5)) -* fix: Use tsconfig.json as Dev/IDE only ts config file ([a75596e](https://github.com/codesweetly/react-image-grid-gallery/commit/a75596e)) - -## 3.1.6 (2026-01-24) - -* fix: Clean manifest (remove CI-only tooling) ([dd69f7f](https://github.com/codesweetly/react-image-grid-gallery/commit/dd69f7f)) -* fix: Clean manifest (remove CI-only tooling) ([2ebb795](https://github.com/codesweetly/react-image-grid-gallery/commit/2ebb795)) - -## 3.1.5 (2026-01-24) - -* chore: Run script to remove dist folder only in development ([9986dc5](https://github.com/codesweetly/react-image-grid-gallery/commit/9986dc5)) -* chore: Run script to remove dist folder only in development ([645cbab](https://github.com/codesweetly/react-image-grid-gallery/commit/645cbab)) -* fix: Ignore merge commits entirely to avoid breaking the grouping work ([bc4e61b](https://github.com/codesweetly/react-image-grid-gallery/commit/bc4e61b)) -* fix: Ignore merge commits entirely to avoid breaking the grouping work ([163ed39](https://github.com/codesweetly/react-image-grid-gallery/commit/163ed39)) - -## 3.1.4 (2026-01-23) - -* Merge pull request #28 from codesweetly/ci/update-token-reattachment-description ([d12a34d](https://github.com/codesweetly/react-image-grid-gallery/commit/d12a34d)), closes [#28](https://github.com/codesweetly/react-image-grid-gallery/issues/28) -* Merge pull request #29 from codesweetly/fix/build-package-n-publish-dist-folder ([1ab8760](https://github.com/codesweetly/react-image-grid-gallery/commit/1ab8760)), closes [#29](https://github.com/codesweetly/react-image-grid-gallery/issues/29) -* build: Specify the correct module system and resolution strategy for each build output ([f9ab1d5](https://github.com/codesweetly/react-image-grid-gallery/commit/f9ab1d5)) -* chore: Explicitly make semantic-release group commits by type ([5247c14](https://github.com/codesweetly/react-image-grid-gallery/commit/5247c14)) -* ci: Update token reattachment description ([342b6bb](https://github.com/codesweetly/react-image-grid-gallery/commit/342b6bb)) -* ci: Update token reattachment description ([9e35fbd](https://github.com/codesweetly/react-image-grid-gallery/commit/9e35fbd)) -* fix: Configure npm to auto-build before publishing ([25335c5](https://github.com/codesweetly/react-image-grid-gallery/commit/25335c5)) -* refactor: Change node to node10 ([e2d7da9](https://github.com/codesweetly/react-image-grid-gallery/commit/e2d7da9)) -* refactor: Emit .js files while changing JSX to _jsx calls ([f5e7b4c](https://github.com/codesweetly/react-image-grid-gallery/commit/f5e7b4c)) -* refactor: Update emitted JavaScript target to es2018 ([4340993](https://github.com/codesweetly/react-image-grid-gallery/commit/4340993)) - -## 3.1.3 (2026-01-23) - -* Merge pull request #22 from codesweetly/chore/replace-release-it-with-semantic-release-ci-only-workf ([fb5d014](https://github.com/codesweetly/react-image-grid-gallery/commit/fb5d014)), closes [#22](https://github.com/codesweetly/react-image-grid-gallery/issues/22) -* Merge pull request #23 from codesweetly/ci/update-packages-in-sematic-release-workflow ([7ec9463](https://github.com/codesweetly/react-image-grid-gallery/commit/7ec9463)), closes [#23](https://github.com/codesweetly/react-image-grid-gallery/issues/23) -* Merge pull request #24 from codesweetly/ci/add-step-to-generate-github-app-token ([68ed727](https://github.com/codesweetly/react-image-grid-gallery/commit/68ed727)), closes [#24](https://github.com/codesweetly/react-image-grid-gallery/issues/24) -* Merge pull request #25 from codesweetly/fix/remove-duplicate-steps-definition ([0dcaf9e](https://github.com/codesweetly/react-image-grid-gallery/commit/0dcaf9e)), closes [#25](https://github.com/codesweetly/react-image-grid-gallery/issues/25) -* Merge pull request #26 from codesweetly/ci/pass-correct-token-to-semantic-release ([3c69709](https://github.com/codesweetly/react-image-grid-gallery/commit/3c69709)), closes [#26](https://github.com/codesweetly/react-image-grid-gallery/issues/26) -* Merge pull request #27 from codesweetly/ci/reconfigure-remote-origin-to-use-github-app-token ([27a9af0](https://github.com/codesweetly/react-image-grid-gallery/commit/27a9af0)), closes [#27](https://github.com/codesweetly/react-image-grid-gallery/issues/27) -* ci: Add step to generate GitHub App token ([3b4f7a1](https://github.com/codesweetly/react-image-grid-gallery/commit/3b4f7a1)) -* ci: Avoid installing packages that are already part of semantic-release ([90376a2](https://github.com/codesweetly/react-image-grid-gallery/commit/90376a2)) -* ci: Bump checkout's version ([11d4b6f](https://github.com/codesweetly/react-image-grid-gallery/commit/11d4b6f)) -* ci: Bump node version ([8ec708e](https://github.com/codesweetly/react-image-grid-gallery/commit/8ec708e)) -* ci: Pass app token, rather than the default action token, to semantic-release ([a47fe32](https://github.com/codesweetly/react-image-grid-gallery/commit/a47fe32)) -* ci: Reconfigure git remote to use github app token ([d7ea7d2](https://github.com/codesweetly/react-image-grid-gallery/commit/d7ea7d2)) -* fix: Remove duplicate step definition ([d19ed88](https://github.com/codesweetly/react-image-grid-gallery/commit/d19ed88)) -* docs: Update workflow notes ([c985215](https://github.com/codesweetly/react-image-grid-gallery/commit/c985215)) -* refactor: Customize semantic-release's changelog output ([a0680c9](https://github.com/codesweetly/react-image-grid-gallery/commit/a0680c9)) -* chore: Create GitHub Actions workflow for semantic-release ([62874f5](https://github.com/codesweetly/react-image-grid-gallery/commit/62874f5)) -* chore: Create semantic-release's configuration file ([b5d58e2](https://github.com/codesweetly/react-image-grid-gallery/commit/b5d58e2)) -* chore: Remove release-it and its related packages and configurations ([e54ee81](https://github.com/codesweetly/react-image-grid-gallery/commit/e54ee81)) -* build: Bump dependencies ([1cea5d5](https://github.com/codesweetly/react-image-grid-gallery/commit/1cea5d5)) -* build: Bump dependencies ([07164ef](https://github.com/codesweetly/react-image-grid-gallery/commit/07164ef)) -* build: Bump jest from v29.7.0 to v30.2.0 ([d3fe691](https://github.com/codesweetly/react-image-grid-gallery/commit/d3fe691)) - -# Changelog - -## 3.1.2 (2025-02-18) - -* fix: Use an inner container to control the thumbnails' horizontal alignment ([bd78749](https://github.com/codesweetly/react-image-grid-gallery/commit/bd78749)) - -## 3.1.1 (2025-02-18) - -* style: Center thumbnails ([7a88d3f](https://github.com/codesweetly/react-image-grid-gallery/commit/7a88d3f)) - -## 3.1.0 (2025-02-17) - -* docs: Add funding info ([0851b54](https://github.com/codesweetly/react-image-grid-gallery/commit/0851b54)) -* docs: Indicate how to lazy load all the grid's images ([a718eff](https://github.com/codesweetly/react-image-grid-gallery/commit/a718eff)) -* docs: Write about the latest features ([24e0da4](https://github.com/codesweetly/react-image-grid-gallery/commit/24e0da4)) -* build: Bump dependencies ([696e205](https://github.com/codesweetly/react-image-grid-gallery/commit/696e205)) -* refactor: Make lazy loading optional ([16abc60](https://github.com/codesweetly/react-image-grid-gallery/commit/16abc60)) -* refactor: Make modal's image height dynamic ([d419e10](https://github.com/codesweetly/react-image-grid-gallery/commit/d419e10)) -* refactor: Stop supporting undefined src ([dab460e](https://github.com/codesweetly/react-image-grid-gallery/commit/dab460e)) -* feat: Activate an image by clicking its thumbnail ([2f0cbca](https://github.com/codesweetly/react-image-grid-gallery/commit/2f0cbca)) -* feat: Allow using small images for gallery and thumbnail ([c20d319](https://github.com/codesweetly/react-image-grid-gallery/commit/c20d319)) -* feat: Create modal thumbnail section ([dafa48d](https://github.com/codesweetly/react-image-grid-gallery/commit/dafa48d)) -* feat: Create thumbnail images where the active image auto-scrolls into view ([75172d9](https://github.com/codesweetly/react-image-grid-gallery/commit/75172d9)) -* feat: Display modal image's caption ([19d98d2](https://github.com/codesweetly/react-image-grid-gallery/commit/19d98d2)) -* feat: Lazy load grid images from index 6 and above ([f4f0326](https://github.com/codesweetly/react-image-grid-gallery/commit/f4f0326)) -* feat: Lazy load lightbox images ([b76a039](https://github.com/codesweetly/react-image-grid-gallery/commit/b76a039)) -* feat: Make scrolling thumbnails to view keyboard-compatible ([f1fd230](https://github.com/codesweetly/react-image-grid-gallery/commit/f1fd230)) -* feat: Make thumbnails optional ([c65cdac](https://github.com/codesweetly/react-image-grid-gallery/commit/c65cdac)) -* feat: Support providing different image sizes for the grid, modal, and thumbnail ([f569ff9](https://github.com/codesweetly/react-image-grid-gallery/commit/f569ff9)) -* feat: Support resolution switching ([44cfa02](https://github.com/codesweetly/react-image-grid-gallery/commit/44cfa02)) -* fix: Re-implement clicking modal background to exit lightbox ([f8b9829](https://github.com/codesweetly/react-image-grid-gallery/commit/f8b9829)) - -## 3.0.0 (2025-01-09) - -* build: Bump dependencies ([2e1692e](https://github.com/codesweetly/react-image-grid-gallery/commit/2e1692e)) -* build: Bump typescript from v5.7.2 to v5.7.3 ([8811f95](https://github.com/codesweetly/react-image-grid-gallery/commit/8811f95)) -* docs: Add features section ([e4dcb2a](https://github.com/codesweetly/react-image-grid-gallery/commit/e4dcb2a)) -* docs: Add id property to imagesArray ([53816a5](https://github.com/codesweetly/react-image-grid-gallery/commit/53816a5)) -* docs: Update customStyles' default value to an empty object ([d5a311a](https://github.com/codesweetly/react-image-grid-gallery/commit/d5a311a)) -* docs: Update docusaurus note to reflect that crypto is no longer used by default ([d11c168](https://github.com/codesweetly/react-image-grid-gallery/commit/d11c168)) -* style: Specify the gallery images' initial aspect ratio ([5b55263](https://github.com/codesweetly/react-image-grid-gallery/commit/5b55263)) -* refactor: Apply suggestions from code review ([bc176a5](https://github.com/codesweetly/react-image-grid-gallery/commit/bc176a5)) -* refactor: Create imageElementsArray from a function ([ac645e9](https://github.com/codesweetly/react-image-grid-gallery/commit/ac645e9)) -* refactor: Use empty object as customStyles' default value to reflect the accepted data type ([83c6e09](https://github.com/codesweetly/react-image-grid-gallery/commit/83c6e09)) -* Adding configurable styles, key for images, and visibility of captions ([effbbc4](https://github.com/codesweetly/react-image-grid-gallery/commit/effbbc4)) -* feat!: Make an id field part of the required properties of the imagesInfoArray prop ([0614ed9](https://github.com/codesweetly/react-image-grid-gallery/commit/0614ed9)) -* refactor!: Show error message if id property is missing in the imagesArray ([0c05380](https://github.com/codesweetly/react-image-grid-gallery/commit/0c05380)) -* test: Customize image button's style ([5db32f6](https://github.com/codesweetly/react-image-grid-gallery/commit/5db32f6)) -* fix: Change imagesrc's initial value from an empty string to undefined ([906d533](https://github.com/codesweetly/react-image-grid-gallery/commit/906d533)) -* chore: Reconfigure husky ([7c34c74](https://github.com/codesweetly/react-image-grid-gallery/commit/7c34c74)) - -## [2.1.4](https://github.com/codesweetly/react-image-grid-gallery/compare/v2.1.3...v2.1.4) (2024-07-16) - - -### ๐Ÿงฑ Dependency - -* Update peerDependencies ([bf04ca3](https://github.com/codesweetly/react-image-grid-gallery/commit/bf04ca341b6fad5a576b072e54f746cf021af84f)) - - -### ๐Ÿ› Bug Fix - -* Open lightbox when keyboard enter key is pressed on image card ([8345b9e](https://github.com/codesweetly/react-image-grid-gallery/commit/8345b9e8a92bd102cbbf1abb85e669e222626aed)) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Remove redundant code ([cdc5839](https://github.com/codesweetly/react-image-grid-gallery/commit/cdc58399500f2d99ed084a47472b38b2befd300a)) - -## [2.1.3](https://github.com/codesweetly/react-image-grid-gallery/compare/v2.1.2...v2.1.3) (2024-07-14) - - -### ๐Ÿงฑ Dependency - -* Update dev dependencies ([2e202bb](https://github.com/codesweetly/react-image-grid-gallery/commit/2e202bbd270aea3ecf7e17d1fa60f1c3a69bf959)) - - -### ๐Ÿ› Bug Fix - -* Prevent page scrolling when lightbox is active ([e0ee446](https://github.com/codesweetly/react-image-grid-gallery/commit/e0ee44630b451ba894a024a3ce306feb5a67d069)) -* Resolve fullscreen button error while exiting with esc key ([6dae9d8](https://github.com/codesweetly/react-image-grid-gallery/commit/6dae9d80ef2b8eebe58b37212227910ddd2a77e7)) -* Set focus on the lightbox on fullscreen change ([01aeaac](https://github.com/codesweetly/react-image-grid-gallery/commit/01aeaacd67e094525eb10da18893591ca5c04d9e)) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Don't use useEffect and useState hooks to manage lightbox ([2446023](https://github.com/codesweetly/react-image-grid-gallery/commit/2446023c8dfa63e0981f620a8094ca8f2b7b6017)) -* Remove figure's tabindex to improve accessibility ([5086c3a](https://github.com/codesweetly/react-image-grid-gallery/commit/5086c3aaf92b023c3c4864bad91b2eda849de024)) -* Rename showModal to showLightBox ([8f99e8d](https://github.com/codesweetly/react-image-grid-gallery/commit/8f99e8d4df172a436137e57678121db13c75ed16)) -* Use html dialog element to manage lightbox ([6c8f69f](https://github.com/codesweetly/react-image-grid-gallery/commit/6c8f69f5ba0b2cf66364b3bb6069995a3d8260bf)) -* Use ref to access lightbox element ([99544ad](https://github.com/codesweetly/react-image-grid-gallery/commit/99544ad31e84451ef457bb225ac70ae987e17c9d)) - - -### ๐Ÿ’… Styling and Formatting - -* Remove modal toobar button's margins ([d1fd15d](https://github.com/codesweetly/react-image-grid-gallery/commit/d1fd15d18cc185620dc172cd48a07530e9c24f81)) - -## [2.1.2](https://github.com/codesweetly/react-image-grid-gallery/compare/v2.1.1...v2.1.2) (2024-04-29) - - -### ๐Ÿ› Bug Fix - -* Resolve images' undefined marigin-bottom ([3132ce4](https://github.com/codesweetly/react-image-grid-gallery/commit/3132ce46465d97e8f207eab4b887f06baccda919)) - - -### ๐Ÿ’… Styling and Formatting - -* Define modal's font color ([b3e61a5](https://github.com/codesweetly/react-image-grid-gallery/commit/b3e61a53109b336d0f5deacba6dbebddf9d7b3cb)) - -## [2.1.1](https://github.com/codesweetly/react-image-grid-gallery/compare/v2.1.0...v2.1.1) (2024-04-29) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Delete redundant field ([3b48aaf](https://github.com/codesweetly/react-image-grid-gallery/commit/3b48aafb85726b6890adc090481f3a5865647dd2)) - -## [2.1.0](https://github.com/codesweetly/react-image-grid-gallery/compare/v2.0.1...v2.1.0) (2024-04-29) - - -### ๐Ÿงฑ Dependency - -* Bump dependencies ([aa64794](https://github.com/codesweetly/react-image-grid-gallery/commit/aa6479460dac151754434fc8e8074c3f988d934b)) -* Bump packages ([a9f0d6d](https://github.com/codesweetly/react-image-grid-gallery/commit/a9f0d6dfc0bce4f3c154dd04f4df6074b8eec813)) -* Drop fslightbox-react dependency ([ab275e5](https://github.com/codesweetly/react-image-grid-gallery/commit/ab275e565469f2aed100f8ff9c305f5b2bb273c0)) - - -### ๐Ÿ  Chores - -* Update fullscreen state when users exit fullscreen mode without using the modal's button ([390dca9](https://github.com/codesweetly/react-image-grid-gallery/commit/390dca92859546c65507593d3e7b7f5b1e102385)) -* Update repo url ([709f562](https://github.com/codesweetly/react-image-grid-gallery/commit/709f562854bd855a56be1304ded01d910d885e84)) - - -### ๐Ÿ“ Documentation - -* Add references to the documentation on this keyword's types ([108e913](https://github.com/codesweetly/react-image-grid-gallery/commit/108e9130f05cb984347223103b67493dec1bd4cd)) -* Inform users about the new columnCount prop ([fe4541a](https://github.com/codesweetly/react-image-grid-gallery/commit/fe4541a4856744367feea26abb111e4bf3a738b9)) -* Notify docusaurus users how to resolve 'crypto not defined' error ([1356dca](https://github.com/codesweetly/react-image-grid-gallery/commit/1356dcac4d25b1be70b519a54f8555f477ba5963)) - - -### ๐Ÿš€ New Feature - -* Allow changing of slides with the keyboard ([9d8bed2](https://github.com/codesweetly/react-image-grid-gallery/commit/9d8bed25464103a58e3f68121861c0a90c0d64f7)) -* Allow showing lightbox at fullscreen ([df96394](https://github.com/codesweetly/react-image-grid-gallery/commit/df963949262a97b7dcf42804a6f712f6ace7a11e)) -* Allow the lightbox to be closed with the escape key ([95f3e31](https://github.com/codesweetly/react-image-grid-gallery/commit/95f3e3114ee5a5192ef5f45dc9296158e90d7a7f)) -* Auto focus on lightbox when activated ([0e0ea4c](https://github.com/codesweetly/react-image-grid-gallery/commit/0e0ea4c8284979b7d926c1b1ee5790ec32f7fb7e)) -* Auto-focus on modal when at fullscreen ([3b38a1e](https://github.com/codesweetly/react-image-grid-gallery/commit/3b38a1e70f47a0fb650ea5c05a93b3f14cc05572)) -* Auto-focus on modal when exiting fullscreen ([1b76d75](https://github.com/codesweetly/react-image-grid-gallery/commit/1b76d755160238064dacdd79ec6e2aad0e4be712)) -* Close lightbox onclick of its background ([6c1fb78](https://github.com/codesweetly/react-image-grid-gallery/commit/6c1fb78ed95eb9900d308a9ff5e0dbaa0555d0bf)) -* Close modal on click of the close button ([36c45c7](https://github.com/codesweetly/react-image-grid-gallery/commit/36c45c71a0f6d1c68a11960e07b94f81f1af50b9)) -* Create pagination ([7e9114c](https://github.com/codesweetly/react-image-grid-gallery/commit/7e9114c2a452bed4ccadd702bfdbc3196ad140f2)) -* Exit fullscreen when modal is off ([8daebd9](https://github.com/codesweetly/react-image-grid-gallery/commit/8daebd9836c29509b898a781dc711de943455c89)) -* Make entering and exiting full screen mode keyboard accessible ([6a1c0f8](https://github.com/codesweetly/react-image-grid-gallery/commit/6a1c0f8c605f186bc020fca5f6b7fcb88d7b2f95)) -* Make images in the gallery keyboard accessible ([4fa12b8](https://github.com/codesweetly/react-image-grid-gallery/commit/4fa12b8aeeaf3162025031469abd31c26639b42e)) -* Prevent scrolling on page's body when modal is opened ([9808372](https://github.com/codesweetly/react-image-grid-gallery/commit/9808372b1f34161e685b774bb7ccec6e72987297)) -* Provide the option to specify the exact number of columns in the gallery ([fb6bce7](https://github.com/codesweetly/react-image-grid-gallery/commit/fb6bce7966c518ca78934616cd672cf913cb3326)) -* Show clicked image in modal's slideshow section ([64b0d1e](https://github.com/codesweetly/react-image-grid-gallery/commit/64b0d1ed84b00d2beeb85f50b7719259a9d2a3e7)) -* Show lightbox's controls on mouse hover only ([9b36b3b](https://github.com/codesweetly/react-image-grid-gallery/commit/9b36b3b4b1b8b993f00e9d6280635d13b98be61b)) -* Show lightbox's main container onclick of a page-thumbnail ([475d1bb](https://github.com/codesweetly/react-image-grid-gallery/commit/475d1bba54527f7916f2d5c083804cfcdb5b37f2)) -* Transition the change in opacity ([a4246c5](https://github.com/codesweetly/react-image-grid-gallery/commit/a4246c54b9485cadf6e7fbe8004a541a6795d096)) -* Transition the change in opacity ([c09bd6e](https://github.com/codesweetly/react-image-grid-gallery/commit/c09bd6edbc6cda880082c15827e1022ae0489dd4)) -* Use arrows to change slides ([d15c345](https://github.com/codesweetly/react-image-grid-gallery/commit/d15c3454cd5831b8c3bae77e495973ebff94bd0c)) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Allow keyword values ([03f17aa](https://github.com/codesweetly/react-image-grid-gallery/commit/03f17aa05237c4d98cf56d912996b35983e49068)) -* Allow keyword values ([55b2ff3](https://github.com/codesweetly/react-image-grid-gallery/commit/55b2ff36d792e9402b00bdd99c6ebf82552ec788)) -* Catch fullscreen api's errors ([c466edb](https://github.com/codesweetly/react-image-grid-gallery/commit/c466edb0fbb61a11d624f3676da9724dd1c3c173)) -* Change class constructor to factory function for readability ([fb7c6b6](https://github.com/codesweetly/react-image-grid-gallery/commit/fb7c6b67efe7321d983c9ba539c49daa62088309)) -* Create modal variable ([5e5db0a](https://github.com/codesweetly/react-image-grid-gallery/commit/5e5db0a5c321e4071009385f8d603ceb6791e58f)) -* Hide html tag's scroll when modal is opened ([29da3fb](https://github.com/codesweetly/react-image-grid-gallery/commit/29da3fb4b7c1d09f8c407b19e746a0e07a4b8773)) -* Isolate the toolbar and slide number from their container ([eb9edbb](https://github.com/codesweetly/react-image-grid-gallery/commit/eb9edbbc4f288bd66243249d05f1e49b660ab6a3)) -* Make buttons accessible ([5c88555](https://github.com/codesweetly/react-image-grid-gallery/commit/5c885552da9b33c03f4f936fa4b9cbcab53ae0b9)) -* Merge exitFullscreen function with enterFullscreen ([d167fd5](https://github.com/codesweetly/react-image-grid-gallery/commit/d167fd51f421ab6c71d3d3bb63bf2a0e80a13d37)) -* Move the modal's main container's rulesets to the styles file ([2fd9f01](https://github.com/codesweetly/react-image-grid-gallery/commit/2fd9f01ce18c5fce982aa1db007ecd2177c7cd32)) -* Rename modalMainContainerStyle to modalContainerStyle ([9a09bfd](https://github.com/codesweetly/react-image-grid-gallery/commit/9a09bfd41a98f16db5bc5675e631a7122f19e598)) -* Replace html arrow entities with svg arrows ([31afd5d](https://github.com/codesweetly/react-image-grid-gallery/commit/31afd5d681ac8fe53b10bbd907e4db4b1fe4acf5)) -* Replace if statement with the 'and' operator ([f2c73fd](https://github.com/codesweetly/react-image-grid-gallery/commit/f2c73fd9c1449189539a0c1e3d062378c83d36a3)) -* Use img element to show the lightbox's images ([0fbaa2f](https://github.com/codesweetly/react-image-grid-gallery/commit/0fbaa2f284dc74c78c4ea7107a9c3decf0e65814)) - - -### ๐Ÿ’… Styling and Formatting - -* Absolutely position modal's nav ([b2365d7](https://github.com/codesweetly/react-image-grid-gallery/commit/b2365d73ac6ee76a422c799704eb8dfb2898f0ea)) -* Add background color to slide number ([ed157d6](https://github.com/codesweetly/react-image-grid-gallery/commit/ed157d6dddaaa8f0d29a04c82d4b7fb40bf70dfc)) -* Blur lightbox's background ([2c42673](https://github.com/codesweetly/react-image-grid-gallery/commit/2c4267326fd2f9660d49766cbbbf1416be8592dc)) -* Center slideshow navigation arrows vertically ([d6ba9a5](https://github.com/codesweetly/react-image-grid-gallery/commit/d6ba9a5e87cca8e851500c3159e87aa185225120)) -* Increase arrows' hit area ([703c660](https://github.com/codesweetly/react-image-grid-gallery/commit/703c6606551c87abc3d5e59a30c7a32eccf8682a)) -* Make images mobile responsive ([bc9d0c3](https://github.com/codesweetly/react-image-grid-gallery/commit/bc9d0c380dcd93f5a528441274848b5379bd5d7d)) -* Prevent selection of arrows ([b53bf66](https://github.com/codesweetly/react-image-grid-gallery/commit/b53bf669723e7d259e3e0a7bfc4445fe0b789907)) - -## [2.0.1](https://github.com/codesweetly/react-image-grid-gallery/compare/v2.0.0...v2.0.1) (2024-01-03) - - -### ๐Ÿ› Bug Fix - -* Change image container's margin-bottom specificity ([ecf9f16](https://github.com/codesweetly/react-image-grid-gallery/commit/ecf9f1628bc5c09b065157f8f6eecbfa5fd53cb7)) - -## [2.0.0](https://github.com/codesweetly/react-image-grid-gallery/compare/v1.0.3...v2.0.0) (2024-01-03) - - -### โš  BREAKING CHANGES - -* Rename imagesArray prop to imagesInfoArray -* Rename imgArray prop to imagesArray -* Users must now use named importation to add the package to their apps. - -Named importation provides better compatibility with node and babel-like tools. - -Ref: https://esbuild.github.io/content-types/#default-interop - -### ๐Ÿงฑ Dependency - -* Bump @types/react ([2515713](https://github.com/codesweetly/react-image-grid-gallery/commit/2515713d69e221e4c6fded51badffa7229dc0d59)) -* Bump packages ([3340792](https://github.com/codesweetly/react-image-grid-gallery/commit/3340792c20c6ad5128795885aaa93da57cdb2d91)) -* Configure script for building es modules and commonjs compilations ([14a6251](https://github.com/codesweetly/react-image-grid-gallery/commit/14a62518ba0331b7068f34e558363d120be79a1a)) -* Configure script for building es modules compilations ([390e63a](https://github.com/codesweetly/react-image-grid-gallery/commit/390e63adf84d6f48379332851ff749faeea05336)) -* Configure typescript as the package's compiler ([3738a8e](https://github.com/codesweetly/react-image-grid-gallery/commit/3738a8e990bf118f7f3c8f68690186acf5aa168b)) -* Delete the copy-files script ([6da1df0](https://github.com/codesweetly/react-image-grid-gallery/commit/6da1df08897eade35b5d988055d774855509cac0)) -* Specify items typescript should compile ([280f7d1](https://github.com/codesweetly/react-image-grid-gallery/commit/280f7d13f289ab743a354944115dc2bf39e5450f)) -* Uninstall babel packages ([f1f9e8f](https://github.com/codesweetly/react-image-grid-gallery/commit/f1f9e8fcbd7b986c72c1043a4b05e753ac96c0b6)) - - -### ๐Ÿ  Chores - -* Define package's entry point ([45f3c19](https://github.com/codesweetly/react-image-grid-gallery/commit/45f3c19c8c597d9d2f5fac8bc8494d606df330dd)) -* Delete babel configuration ([846a6cf](https://github.com/codesweetly/react-image-grid-gallery/commit/846a6cf7ec34cd1e554fd0d2e42a26ed32513e50)) -* Provide url and email for raising issues and reporting bugs ([7d0319c](https://github.com/codesweetly/react-image-grid-gallery/commit/7d0319c1ae47dda5b5e1e43a55bf42a33d3a5f8b)) -* Specify additional ignore rules ([4659bde](https://github.com/codesweetly/react-image-grid-gallery/commit/4659bde774de21546d65e7c5dcef3c7ed8f8fe71)) -* Specify files to publish to npm ([b05e3d1](https://github.com/codesweetly/react-image-grid-gallery/commit/b05e3d1a98083a8fa8ed71e4d29a89a33185f27a)) -* Specify package's declaration file ([b8d634d](https://github.com/codesweetly/react-image-grid-gallery/commit/b8d634d753cfd1a570fb3d7e1368bfd8a152e38b)) - - -### ๐Ÿ“ Documentation - -* Add headers to installation section ([d0c444b](https://github.com/codesweetly/react-image-grid-gallery/commit/d0c444bcd76c7e2fa10148175e51ccc6fd9ef27e)) -* Update readme ([1946f5c](https://github.com/codesweetly/react-image-grid-gallery/commit/1946f5c67d2f5004abe4b872d870c5aa16df5052)) - - -### ๐Ÿ› Bug Fix - -* Resolve crypto.randomUUID is not a function jest error ([d3196a2](https://github.com/codesweetly/react-image-grid-gallery/commit/d3196a22341580d4391c80363b8decdbd95f8495)) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Add test section to changelog ([cc924ff](https://github.com/codesweetly/react-image-grid-gallery/commit/cc924ff00a8e874ec9ff6cb2dc107e38a87f3ee0)) -* Change imagegallery's export mode from default to named exportation ([d38624c](https://github.com/codesweetly/react-image-grid-gallery/commit/d38624c59842a39b83579c8d7723e629af776e8b)) -* Convert commitlint configuration file to typescript ([b4bbe51](https://github.com/codesweetly/react-image-grid-gallery/commit/b4bbe5119a282f21c7af05a67c5ccabc0f0e6453)) -* Move css rulesets into imagegallerystyles file ([4529b1e](https://github.com/codesweetly/react-image-grid-gallery/commit/4529b1eba963c3827db876422e9756a75162e3c7)) -* Move interface into types file ([24c2f9e](https://github.com/codesweetly/react-image-grid-gallery/commit/24c2f9ecc15f57c6e75d05af3928cb045ef9d188)) -* Rename imagesArray prop to imagesInfoArray ([753fc2a](https://github.com/codesweetly/react-image-grid-gallery/commit/753fc2a7767b661003e4370e5adb6107b37d559d)) -* Rename imgArray prop to imagesArray ([2b7f611](https://github.com/codesweetly/react-image-grid-gallery/commit/2b7f611ba0d97b1836576093a5945ff7d99bd66f)) -* Rename imgElementArray to imageElementsArray ([a975321](https://github.com/codesweetly/react-image-grid-gallery/commit/a9753214965474878941dfe1d996b926b02e5b6f)) -* Replace uniqid with crypto.randomuuid ([06bd0ee](https://github.com/codesweetly/react-image-grid-gallery/commit/06bd0eefbb27839b7536d087174a7a34314fdf12)) -* Use release-it's default publish path ([2a5be4a](https://github.com/codesweetly/react-image-grid-gallery/commit/2a5be4a2a304d643873f1026f3be66f0fde1ba2a)) - - -### ๐Ÿ’… Styling and Formatting - -* Delete stylesheet ([f61ef5d](https://github.com/codesweetly/react-image-grid-gallery/commit/f61ef5dc238d5d799e2ef51d267748aa8e10624a)) -* Move the gallery container's rulesets into the imagegallerystyles class ([db209e5](https://github.com/codesweetly/react-image-grid-gallery/commit/db209e5cb7f15e4c306c9d8ad359127ccd6f4043)) -* Show figcaption on hover ([16b3708](https://github.com/codesweetly/react-image-grid-gallery/commit/16b370820a7e392f8471b4392538cf261e672708)) -* Use inline css styling technique ([d2951ca](https://github.com/codesweetly/react-image-grid-gallery/commit/d2951cac95039bbf5d224d610a021dc1d553b7ee)) - - -### ๐Ÿงช Code Testing - -* Configure jest as the package's testing tool ([89fcdc3](https://github.com/codesweetly/react-image-grid-gallery/commit/89fcdc3cc08cc7442bb8f4becc8291812a3d0d8b)) -* Confirm that the image gallery renders correctly ([671c90d](https://github.com/codesweetly/react-image-grid-gallery/commit/671c90d945ba9240d8064a54059283a961b5ad28)) -* Convert jest configuration file to typescript ([3845d9c](https://github.com/codesweetly/react-image-grid-gallery/commit/3845d9c88908ac5835d43dd81242059c5ecc15d1)) -* Rename imgArray prop to imagesArray ([3d5839d](https://github.com/codesweetly/react-image-grid-gallery/commit/3d5839d92a6a25b6ab44abe251243076af388382)) - -## [0.9.4](https://github.com/codesweetly/react-image-grid-gallery/compare/0.9.3...0.9.4) (2023-05-31) - - -### ๐Ÿงฑ Dependency - -* Add prop-types to dependencies ([c9b2141](https://github.com/codesweetly/react-image-grid-gallery/commit/c9b214105aa0152b6dc369b481b72e2a90b73d39)) - -## [0.9.3](https://github.com/codesweetly/react-image-grid-gallery/compare/0.9.2...0.9.3) (2023-05-31) - - -### ๐Ÿงฑ Dependency - -* Move fslightbox-react and uniqid to dependencies field ([eec267b](https://github.com/codesweetly/react-image-grid-gallery/commit/eec267bbfa56e645d9e8112636a4c0d43cdcfafb)) - -## [0.9.2](https://github.com/codesweetly/react-image-grid-gallery/compare/0.9.1...0.9.2) (2023-05-30) - - -### ๐Ÿ’… Styling and Formatting - -* Change figcaption background's maximum opacity to 1 ([46c624f](https://github.com/codesweetly/react-image-grid-gallery/commit/46c624f8d7a61548562c09cd020a5f1ee8b5736c)) -* Change padding-inline to padding ([74b638c](https://github.com/codesweetly/react-image-grid-gallery/commit/74b638cc8492dd75390c859501119e6668a5f38e)) - -## [0.9.1](https://github.com/codesweetly/react-image-grid-gallery/compare/0.9.0...0.9.1) (2023-05-30) - - -### ๐Ÿ“ Documentation - -* Write about the 'columnWidth' and 'gapSize' props ([0637ae4](https://github.com/codesweetly/react-image-grid-gallery/commit/0637ae46d9103b0ccde9ac48189e0908e606be6c)) - -## [0.9.0](https://github.com/codesweetly/react-image-grid-gallery/compare/0.8.0...0.9.0) (2023-05-30) - - -### ๐Ÿ› Bug Fix - -* Use github readme as homepage ([5cb07b4](https://github.com/codesweetly/react-image-grid-gallery/commit/5cb07b4b023d3663f2b318bbc7da858304a465a8)) - - -### ๐Ÿ’… Styling and Formatting - -* Use mansory grid layout format for the image gallery ([55697e3](https://github.com/codesweetly/react-image-grid-gallery/commit/55697e3f0b919178835406660811409e705e46a9)) - - -### ๐Ÿš€ New Feature - -* Give users the option to specify gallery's gap size ([b42efe4](https://github.com/codesweetly/react-image-grid-gallery/commit/b42efe4744c307e1f24871d6b5919619a44d011a)) -* Provide users the option to specify gallery's column width ([c54eaa4](https://github.com/codesweetly/react-image-grid-gallery/commit/c54eaa46e409cb6ca0e3ee00f949852a42bf2d9d)) - -## 0.8.0 (2023-05-29) - - -### ๐Ÿš€ New Feature - -* **ImageGallery:** Create ImageGallery component ([49c40a9](https://github.com/codesweetly/react-image-grid-gallery/commit/49c40a979383f3e381103490acb2c06a519f79b6)) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Don't render
if item.caption is undefined ([1c0c59e](https://github.com/codesweetly/react-image-grid-gallery/commit/1c0c59e3bbf061d5504365c3aa1017d05d073f13)) -* Make caption optional ([c47d824](https://github.com/codesweetly/react-image-grid-gallery/commit/c47d824d475487e07b445f2a72641519f0649949)) -* Rename 'ImgArryProps' to 'ImgArrayType' ([8062f6c](https://github.com/codesweetly/react-image-grid-gallery/commit/8062f6cb0933af5dd58ea3b710236e26dfc24e35)) - - -### ๐Ÿ’… Styling and Formatting - -* Add 'codesweetly-rigg' to class names ([4e12857](https://github.com/codesweetly/react-image-grid-gallery/commit/4e12857ca399d22a7005b1e9ef071dc41ef422dc)) -* Add row-gap ([4a5b2d8](https://github.com/codesweetly/react-image-grid-gallery/commit/4a5b2d8e8e7e63fe65850b8366a128c07071b85a)) -* Create ImageGallery's stylesheet ([70191bc](https://github.com/codesweetly/react-image-grid-gallery/commit/70191bcdf4bb8508227e89de3346556ac85fbec5)) -* Define codesweetly-img's width ([ca01ba6](https://github.com/codesweetly/react-image-grid-gallery/commit/ca01ba6150a73b6860ac4e014e705e3694127c68)) -* Delete 'data-theme=light' declaration ([d578205](https://github.com/codesweetly/react-image-grid-gallery/commit/d5782050bccf79d74e4217045eeb96935008985b)) -* Delete the 'codesweetly-rigg-img' class ([c87e621](https://github.com/codesweetly/react-image-grid-gallery/commit/c87e62140526d38ff5217b90482e39f3e734a5da)) - - -### ๐Ÿ“ Documentation - -* Create README ([bc64b22](https://github.com/codesweetly/react-image-grid-gallery/commit/bc64b22ff4e2c4602f43ed430f6e8dc640888b50)) - - -### ๐Ÿ  Chores - -* Change version number to 0.0.0 ([24da08f](https://github.com/codesweetly/react-image-grid-gallery/commit/24da08fe65fbb0428913eba947ea979f6681fef1)) -* **commitlint:** Install plugins to enforce Conventional Commits ([9170395](https://github.com/codesweetly/react-image-grid-gallery/commit/9170395ee06b1a486070f40ae5a4f8caa3a0ffd5)) -* Configure babel ([1d21977](https://github.com/codesweetly/react-image-grid-gallery/commit/1d219770d829660173091ed51369986eff44bae5)) -* Configure TypeScript ([9604bb9](https://github.com/codesweetly/react-image-grid-gallery/commit/9604bb9d66b4d094f8048b9497abc6f3d57da5a9)) -* Create 'copy-files' script ([da952a0](https://github.com/codesweetly/react-image-grid-gallery/commit/da952a0d581bd24c99f056bda45bcb6ce3a04163)) -* Create a LICENSE ([13c70f0](https://github.com/codesweetly/react-image-grid-gallery/commit/13c70f0aaeb50447e18af77911784f37ef730e52)) -* Generate changelog ([e2e920a](https://github.com/codesweetly/react-image-grid-gallery/commit/e2e920aebdb04efb58d86fe7420d13008d183663)) -* **github:** Configure release-it to auto-generate project's GitHub releases ([7312f92](https://github.com/codesweetly/react-image-grid-gallery/commit/7312f92dd5a6853c9fc2610af3f9e15aec7cde82)) -* **github:** Specify the remote repo's url ([d800de3](https://github.com/codesweetly/react-image-grid-gallery/commit/d800de3cfee99c66bff13cd3b26865b4324c3d53)) -* Ignore 'dist' folder ([12ae8a5](https://github.com/codesweetly/react-image-grid-gallery/commit/12ae8a5b362a1ba24cb9fe4650c77f7ff957ad64)) -* Ignore npm-debug.log* ([aafe117](https://github.com/codesweetly/react-image-grid-gallery/commit/aafe117b241e6c0e2c5e41ebdd9ea138de3b0788)) -* **ImageGallery:** Define ImgArryProps interface ([c6f04e1](https://github.com/codesweetly/react-image-grid-gallery/commit/c6f04e1ee7d8f4a52bea1b7424b186a2ab56976e)) -* Initialize react-image-grid-gallery project ([bd11d5f](https://github.com/codesweetly/react-image-grid-gallery/commit/bd11d5fdedd36d33079bd6936041f6eca49cd26b)) -* Make 'ImageGallery.js' the entry point ([14451d6](https://github.com/codesweetly/react-image-grid-gallery/commit/14451d664b7934364c7d9d5e37b0c04b20014804)) -* **package-json:** Install packages for compiling React to JavaScript ([56cd72d](https://github.com/codesweetly/react-image-grid-gallery/commit/56cd72d0d8354b2d6017a9bd2b71a3854226e912)) -* Provide info that helps people discover the package ([bf581de](https://github.com/codesweetly/react-image-grid-gallery/commit/bf581deb46c5e890a78e6da8d19cb9e7a289f957)) -* **release-it:** Customize changelog's headings ([00943c8](https://github.com/codesweetly/react-image-grid-gallery/commit/00943c89ce7d9246ac8ab9aa71fc61eba77f41eb)) -* **release-it:** Install version management plugin ([abfc611](https://github.com/codesweetly/react-image-grid-gallery/commit/abfc611be693890781a28d91a5d6ae5604c365c2)) -* **release-it:** Let release-it auto-generate project's changelog ([8f12b98](https://github.com/codesweetly/react-image-grid-gallery/commit/8f12b98ffe81d4a073cdeeafb30785f0747d761e)) -* **release-it:** Specify options to override ([bf58eee](https://github.com/codesweetly/react-image-grid-gallery/commit/bf58eee97895fc29207e1333f5c6d09692f79eee)) -* **release-it:** Use plugin to provide recommended bump to release-it ([ebd37a4](https://github.com/codesweetly/react-image-grid-gallery/commit/ebd37a4b9f1e61e41f33ffd8c0be8ee124dfa986)) -* Scope package under '@codesweetly/' ([5edc417](https://github.com/codesweetly/react-image-grid-gallery/commit/5edc4178cd84ec1ac92ef5b3476baa43deb29647)) -* **typescript:** Define declaration file's location ([589842f](https://github.com/codesweetly/react-image-grid-gallery/commit/589842f62acef66338ca0d272bd255f9f7086415)) -* Update changelog sections ([8763812](https://github.com/codesweetly/react-image-grid-gallery/commit/87638120ba6defe64ca15a57509dc6466bb01c64)) -* Update to v0.2.0 ([6cce00e](https://github.com/codesweetly/react-image-grid-gallery/commit/6cce00e58713bbeea7ee1bf9f329c9cf3c515810)) -* Update to v0.3.0 ([7156836](https://github.com/codesweetly/react-image-grid-gallery/commit/71568363c491cd3c8826b985123221026dfa190d)) -* Update to v0.4.0 ([df9a6f9](https://github.com/codesweetly/react-image-grid-gallery/commit/df9a6f935ac9b7d8dda1998f1d966b238154fbc6)) -* Update to v0.5.0 ([81acd21](https://github.com/codesweetly/react-image-grid-gallery/commit/81acd21ea742ba46212c522a480b1c666c33633e)) - - -### ๐Ÿ› Bug Fix - -* **release-it:** Change 'publishPath' to './dist' ([6edded2](https://github.com/codesweetly/react-image-grid-gallery/commit/6edded243a6494910ca5f532f65aeedd7b328803)) -* Update dist's package.json file ([91261f1](https://github.com/codesweetly/react-image-grid-gallery/commit/91261f1f2c32ae6782748f343b52d3fd08d7480b)) - -## 0.7.0 (2023-05-29) - - -### ๐Ÿš€ New Feature - -* **ImageGallery:** Create ImageGallery component ([49c40a9](https://github.com/codesweetly/react-image-grid-gallery/commit/49c40a979383f3e381103490acb2c06a519f79b6)) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Don't render
if item.caption is undefined ([1c0c59e](https://github.com/codesweetly/react-image-grid-gallery/commit/1c0c59e3bbf061d5504365c3aa1017d05d073f13)) -* Make caption optional ([c47d824](https://github.com/codesweetly/react-image-grid-gallery/commit/c47d824d475487e07b445f2a72641519f0649949)) -* Rename 'ImgArryProps' to 'ImgArrayType' ([8062f6c](https://github.com/codesweetly/react-image-grid-gallery/commit/8062f6cb0933af5dd58ea3b710236e26dfc24e35)) - - -### ๐Ÿ’… Styling and Formatting - -* Add 'codesweetly-rigg' to class names ([4e12857](https://github.com/codesweetly/react-image-grid-gallery/commit/4e12857ca399d22a7005b1e9ef071dc41ef422dc)) -* Add row-gap ([4a5b2d8](https://github.com/codesweetly/react-image-grid-gallery/commit/4a5b2d8e8e7e63fe65850b8366a128c07071b85a)) -* Create ImageGallery's stylesheet ([70191bc](https://github.com/codesweetly/react-image-grid-gallery/commit/70191bcdf4bb8508227e89de3346556ac85fbec5)) -* Define codesweetly-img's width ([ca01ba6](https://github.com/codesweetly/react-image-grid-gallery/commit/ca01ba6150a73b6860ac4e014e705e3694127c68)) -* Delete 'data-theme=light' declaration ([d578205](https://github.com/codesweetly/react-image-grid-gallery/commit/d5782050bccf79d74e4217045eeb96935008985b)) -* Delete the 'codesweetly-rigg-img' class ([c87e621](https://github.com/codesweetly/react-image-grid-gallery/commit/c87e62140526d38ff5217b90482e39f3e734a5da)) - - -### ๐Ÿ“ Documentation - -* Create README ([bc64b22](https://github.com/codesweetly/react-image-grid-gallery/commit/bc64b22ff4e2c4602f43ed430f6e8dc640888b50)) - - -### ๐Ÿ  Chores - -* Change version number to 0.0.0 ([24da08f](https://github.com/codesweetly/react-image-grid-gallery/commit/24da08fe65fbb0428913eba947ea979f6681fef1)) -* **commitlint:** Install plugins to enforce Conventional Commits ([9170395](https://github.com/codesweetly/react-image-grid-gallery/commit/9170395ee06b1a486070f40ae5a4f8caa3a0ffd5)) -* Configure babel ([1d21977](https://github.com/codesweetly/react-image-grid-gallery/commit/1d219770d829660173091ed51369986eff44bae5)) -* Configure TypeScript ([9604bb9](https://github.com/codesweetly/react-image-grid-gallery/commit/9604bb9d66b4d094f8048b9497abc6f3d57da5a9)) -* Create 'copy-files' script ([da952a0](https://github.com/codesweetly/react-image-grid-gallery/commit/da952a0d581bd24c99f056bda45bcb6ce3a04163)) -* Create a LICENSE ([13c70f0](https://github.com/codesweetly/react-image-grid-gallery/commit/13c70f0aaeb50447e18af77911784f37ef730e52)) -* Generate changelog ([e2e920a](https://github.com/codesweetly/react-image-grid-gallery/commit/e2e920aebdb04efb58d86fe7420d13008d183663)) -* **github:** Configure release-it to auto-generate project's GitHub releases ([7312f92](https://github.com/codesweetly/react-image-grid-gallery/commit/7312f92dd5a6853c9fc2610af3f9e15aec7cde82)) -* **github:** Specify the remote repo's url ([d800de3](https://github.com/codesweetly/react-image-grid-gallery/commit/d800de3cfee99c66bff13cd3b26865b4324c3d53)) -* Ignore 'dist' folder ([12ae8a5](https://github.com/codesweetly/react-image-grid-gallery/commit/12ae8a5b362a1ba24cb9fe4650c77f7ff957ad64)) -* Ignore npm-debug.log* ([aafe117](https://github.com/codesweetly/react-image-grid-gallery/commit/aafe117b241e6c0e2c5e41ebdd9ea138de3b0788)) -* **ImageGallery:** Define ImgArryProps interface ([c6f04e1](https://github.com/codesweetly/react-image-grid-gallery/commit/c6f04e1ee7d8f4a52bea1b7424b186a2ab56976e)) -* Initialize react-image-grid-gallery project ([bd11d5f](https://github.com/codesweetly/react-image-grid-gallery/commit/bd11d5fdedd36d33079bd6936041f6eca49cd26b)) -* Make 'ImageGallery.js' the entry point ([14451d6](https://github.com/codesweetly/react-image-grid-gallery/commit/14451d664b7934364c7d9d5e37b0c04b20014804)) -* **package-json:** Install packages for compiling React to JavaScript ([56cd72d](https://github.com/codesweetly/react-image-grid-gallery/commit/56cd72d0d8354b2d6017a9bd2b71a3854226e912)) -* Provide info that helps people discover the package ([bf581de](https://github.com/codesweetly/react-image-grid-gallery/commit/bf581deb46c5e890a78e6da8d19cb9e7a289f957)) -* **release-it:** Customize changelog's headings ([00943c8](https://github.com/codesweetly/react-image-grid-gallery/commit/00943c89ce7d9246ac8ab9aa71fc61eba77f41eb)) -* **release-it:** Install version management plugin ([abfc611](https://github.com/codesweetly/react-image-grid-gallery/commit/abfc611be693890781a28d91a5d6ae5604c365c2)) -* **release-it:** Let release-it auto-generate project's changelog ([8f12b98](https://github.com/codesweetly/react-image-grid-gallery/commit/8f12b98ffe81d4a073cdeeafb30785f0747d761e)) -* **release-it:** Specify options to override ([bf58eee](https://github.com/codesweetly/react-image-grid-gallery/commit/bf58eee97895fc29207e1333f5c6d09692f79eee)) -* **release-it:** Use plugin to provide recommended bump to release-it ([ebd37a4](https://github.com/codesweetly/react-image-grid-gallery/commit/ebd37a4b9f1e61e41f33ffd8c0be8ee124dfa986)) -* Scope package under '@codesweetly/' ([5edc417](https://github.com/codesweetly/react-image-grid-gallery/commit/5edc4178cd84ec1ac92ef5b3476baa43deb29647)) -* **typescript:** Define declaration file's location ([589842f](https://github.com/codesweetly/react-image-grid-gallery/commit/589842f62acef66338ca0d272bd255f9f7086415)) -* Update changelog sections ([8763812](https://github.com/codesweetly/react-image-grid-gallery/commit/87638120ba6defe64ca15a57509dc6466bb01c64)) -* Update to v0.2.0 ([6cce00e](https://github.com/codesweetly/react-image-grid-gallery/commit/6cce00e58713bbeea7ee1bf9f329c9cf3c515810)) -* Update to v0.3.0 ([7156836](https://github.com/codesweetly/react-image-grid-gallery/commit/71568363c491cd3c8826b985123221026dfa190d)) -* Update to v0.4.0 ([df9a6f9](https://github.com/codesweetly/react-image-grid-gallery/commit/df9a6f935ac9b7d8dda1998f1d966b238154fbc6)) -* Update to v0.5.0 ([81acd21](https://github.com/codesweetly/react-image-grid-gallery/commit/81acd21ea742ba46212c522a480b1c666c33633e)) - - -### ๐Ÿ› Bug Fix - -* **release-it:** Change 'publishPath' to './dist' ([6edded2](https://github.com/codesweetly/react-image-grid-gallery/commit/6edded243a6494910ca5f532f65aeedd7b328803)) - -## 0.7.0 (2023-05-29) - - -### ๐Ÿš€ New Feature - -* **ImageGallery:** Create ImageGallery component ([49c40a9](https://github.com/codesweetly/react-image-grid-gallery/commit/49c40a979383f3e381103490acb2c06a519f79b6)) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Don't render
if item.caption is undefined ([1c0c59e](https://github.com/codesweetly/react-image-grid-gallery/commit/1c0c59e3bbf061d5504365c3aa1017d05d073f13)) -* Make caption optional ([c47d824](https://github.com/codesweetly/react-image-grid-gallery/commit/c47d824d475487e07b445f2a72641519f0649949)) -* Rename 'ImgArryProps' to 'ImgArrayType' ([8062f6c](https://github.com/codesweetly/react-image-grid-gallery/commit/8062f6cb0933af5dd58ea3b710236e26dfc24e35)) - - -### ๐Ÿ’… Styling and Formatting - -* Add 'codesweetly-rigg' to class names ([4e12857](https://github.com/codesweetly/react-image-grid-gallery/commit/4e12857ca399d22a7005b1e9ef071dc41ef422dc)) -* Add row-gap ([4a5b2d8](https://github.com/codesweetly/react-image-grid-gallery/commit/4a5b2d8e8e7e63fe65850b8366a128c07071b85a)) -* Create ImageGallery's stylesheet ([70191bc](https://github.com/codesweetly/react-image-grid-gallery/commit/70191bcdf4bb8508227e89de3346556ac85fbec5)) -* Define codesweetly-img's width ([ca01ba6](https://github.com/codesweetly/react-image-grid-gallery/commit/ca01ba6150a73b6860ac4e014e705e3694127c68)) -* Delete 'data-theme=light' declaration ([d578205](https://github.com/codesweetly/react-image-grid-gallery/commit/d5782050bccf79d74e4217045eeb96935008985b)) -* Delete the 'codesweetly-rigg-img' class ([c87e621](https://github.com/codesweetly/react-image-grid-gallery/commit/c87e62140526d38ff5217b90482e39f3e734a5da)) - - -### ๐Ÿ“ Documentation - -* Create README ([bc64b22](https://github.com/codesweetly/react-image-grid-gallery/commit/bc64b22ff4e2c4602f43ed430f6e8dc640888b50)) - - -### ๐Ÿ  Chores - -* Change version number to 0.0.0 ([24da08f](https://github.com/codesweetly/react-image-grid-gallery/commit/24da08fe65fbb0428913eba947ea979f6681fef1)) -* **commitlint:** Install plugins to enforce Conventional Commits ([9170395](https://github.com/codesweetly/react-image-grid-gallery/commit/9170395ee06b1a486070f40ae5a4f8caa3a0ffd5)) -* Configure babel ([1d21977](https://github.com/codesweetly/react-image-grid-gallery/commit/1d219770d829660173091ed51369986eff44bae5)) -* Configure TypeScript ([9604bb9](https://github.com/codesweetly/react-image-grid-gallery/commit/9604bb9d66b4d094f8048b9497abc6f3d57da5a9)) -* Create 'copy-files' script ([da952a0](https://github.com/codesweetly/react-image-grid-gallery/commit/da952a0d581bd24c99f056bda45bcb6ce3a04163)) -* Create a LICENSE ([13c70f0](https://github.com/codesweetly/react-image-grid-gallery/commit/13c70f0aaeb50447e18af77911784f37ef730e52)) -* Generate changelog ([e2e920a](https://github.com/codesweetly/react-image-grid-gallery/commit/e2e920aebdb04efb58d86fe7420d13008d183663)) -* **github:** Configure release-it to auto-generate project's GitHub releases ([7312f92](https://github.com/codesweetly/react-image-grid-gallery/commit/7312f92dd5a6853c9fc2610af3f9e15aec7cde82)) -* **github:** Specify the remote repo's url ([d800de3](https://github.com/codesweetly/react-image-grid-gallery/commit/d800de3cfee99c66bff13cd3b26865b4324c3d53)) -* Ignore 'dist' folder ([12ae8a5](https://github.com/codesweetly/react-image-grid-gallery/commit/12ae8a5b362a1ba24cb9fe4650c77f7ff957ad64)) -* Ignore npm-debug.log* ([aafe117](https://github.com/codesweetly/react-image-grid-gallery/commit/aafe117b241e6c0e2c5e41ebdd9ea138de3b0788)) -* **ImageGallery:** Define ImgArryProps interface ([c6f04e1](https://github.com/codesweetly/react-image-grid-gallery/commit/c6f04e1ee7d8f4a52bea1b7424b186a2ab56976e)) -* Initialize react-image-grid-gallery project ([bd11d5f](https://github.com/codesweetly/react-image-grid-gallery/commit/bd11d5fdedd36d33079bd6936041f6eca49cd26b)) -* Make 'ImageGallery.js' the entry point ([14451d6](https://github.com/codesweetly/react-image-grid-gallery/commit/14451d664b7934364c7d9d5e37b0c04b20014804)) -* **package-json:** Install packages for compiling React to JavaScript ([56cd72d](https://github.com/codesweetly/react-image-grid-gallery/commit/56cd72d0d8354b2d6017a9bd2b71a3854226e912)) -* Provide info that helps people discover the package ([bf581de](https://github.com/codesweetly/react-image-grid-gallery/commit/bf581deb46c5e890a78e6da8d19cb9e7a289f957)) -* **release-it:** Customize changelog's headings ([00943c8](https://github.com/codesweetly/react-image-grid-gallery/commit/00943c89ce7d9246ac8ab9aa71fc61eba77f41eb)) -* **release-it:** Install version management plugin ([abfc611](https://github.com/codesweetly/react-image-grid-gallery/commit/abfc611be693890781a28d91a5d6ae5604c365c2)) -* **release-it:** Let release-it auto-generate project's changelog ([8f12b98](https://github.com/codesweetly/react-image-grid-gallery/commit/8f12b98ffe81d4a073cdeeafb30785f0747d761e)) -* **release-it:** Specify options to override ([bf58eee](https://github.com/codesweetly/react-image-grid-gallery/commit/bf58eee97895fc29207e1333f5c6d09692f79eee)) -* **release-it:** Use plugin to provide recommended bump to release-it ([ebd37a4](https://github.com/codesweetly/react-image-grid-gallery/commit/ebd37a4b9f1e61e41f33ffd8c0be8ee124dfa986)) -* Scope package under '@codesweetly/' ([5edc417](https://github.com/codesweetly/react-image-grid-gallery/commit/5edc4178cd84ec1ac92ef5b3476baa43deb29647)) -* **typescript:** Define declaration file's location ([589842f](https://github.com/codesweetly/react-image-grid-gallery/commit/589842f62acef66338ca0d272bd255f9f7086415)) -* Update changelog sections ([8763812](https://github.com/codesweetly/react-image-grid-gallery/commit/87638120ba6defe64ca15a57509dc6466bb01c64)) -* Update to v0.2.0 ([6cce00e](https://github.com/codesweetly/react-image-grid-gallery/commit/6cce00e58713bbeea7ee1bf9f329c9cf3c515810)) -* Update to v0.3.0 ([7156836](https://github.com/codesweetly/react-image-grid-gallery/commit/71568363c491cd3c8826b985123221026dfa190d)) -* Update to v0.4.0 ([df9a6f9](https://github.com/codesweetly/react-image-grid-gallery/commit/df9a6f935ac9b7d8dda1998f1d966b238154fbc6)) -* Update to v0.5.0 ([81acd21](https://github.com/codesweetly/react-image-grid-gallery/commit/81acd21ea742ba46212c522a480b1c666c33633e)) - -## 0.6.0 (2023-05-29) - - -### ๐Ÿš€ New Feature - -* **ImageGallery:** Create ImageGallery component ([49c40a9](https://github.com/codesweetly/react-image-grid-gallery/commit/49c40a979383f3e381103490acb2c06a519f79b6)) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Don't render
if item.caption is undefined ([1c0c59e](https://github.com/codesweetly/react-image-grid-gallery/commit/1c0c59e3bbf061d5504365c3aa1017d05d073f13)) -* Make caption optional ([c47d824](https://github.com/codesweetly/react-image-grid-gallery/commit/c47d824d475487e07b445f2a72641519f0649949)) -* Rename 'ImgArryProps' to 'ImgArrayType' ([8062f6c](https://github.com/codesweetly/react-image-grid-gallery/commit/8062f6cb0933af5dd58ea3b710236e26dfc24e35)) - - -### ๐Ÿ’… Styling and Formatting - -* Add 'codesweetly-rigg' to class names ([4e12857](https://github.com/codesweetly/react-image-grid-gallery/commit/4e12857ca399d22a7005b1e9ef071dc41ef422dc)) -* Add row-gap ([4a5b2d8](https://github.com/codesweetly/react-image-grid-gallery/commit/4a5b2d8e8e7e63fe65850b8366a128c07071b85a)) -* Create ImageGallery's stylesheet ([70191bc](https://github.com/codesweetly/react-image-grid-gallery/commit/70191bcdf4bb8508227e89de3346556ac85fbec5)) -* Define codesweetly-img's width ([ca01ba6](https://github.com/codesweetly/react-image-grid-gallery/commit/ca01ba6150a73b6860ac4e014e705e3694127c68)) -* Delete 'data-theme=light' declaration ([d578205](https://github.com/codesweetly/react-image-grid-gallery/commit/d5782050bccf79d74e4217045eeb96935008985b)) -* Delete the 'codesweetly-rigg-img' class ([c87e621](https://github.com/codesweetly/react-image-grid-gallery/commit/c87e62140526d38ff5217b90482e39f3e734a5da)) - - -### ๐Ÿ“ Documentation - -* Create README ([bc64b22](https://github.com/codesweetly/react-image-grid-gallery/commit/bc64b22ff4e2c4602f43ed430f6e8dc640888b50)) - - -### ๐Ÿ  Chores - -* Change version number to 0.0.0 ([24da08f](https://github.com/codesweetly/react-image-grid-gallery/commit/24da08fe65fbb0428913eba947ea979f6681fef1)) -* **commitlint:** Install plugins to enforce Conventional Commits ([9170395](https://github.com/codesweetly/react-image-grid-gallery/commit/9170395ee06b1a486070f40ae5a4f8caa3a0ffd5)) -* Configure babel ([1d21977](https://github.com/codesweetly/react-image-grid-gallery/commit/1d219770d829660173091ed51369986eff44bae5)) -* Configure TypeScript ([9604bb9](https://github.com/codesweetly/react-image-grid-gallery/commit/9604bb9d66b4d094f8048b9497abc6f3d57da5a9)) -* Create 'copy-files' script ([da952a0](https://github.com/codesweetly/react-image-grid-gallery/commit/da952a0d581bd24c99f056bda45bcb6ce3a04163)) -* Create a LICENSE ([13c70f0](https://github.com/codesweetly/react-image-grid-gallery/commit/13c70f0aaeb50447e18af77911784f37ef730e52)) -* Generate changelog ([e2e920a](https://github.com/codesweetly/react-image-grid-gallery/commit/e2e920aebdb04efb58d86fe7420d13008d183663)) -* **github:** Configure release-it to auto-generate project's GitHub releases ([7312f92](https://github.com/codesweetly/react-image-grid-gallery/commit/7312f92dd5a6853c9fc2610af3f9e15aec7cde82)) -* **github:** Specify the remote repo's url ([d800de3](https://github.com/codesweetly/react-image-grid-gallery/commit/d800de3cfee99c66bff13cd3b26865b4324c3d53)) -* Ignore 'dist' folder ([12ae8a5](https://github.com/codesweetly/react-image-grid-gallery/commit/12ae8a5b362a1ba24cb9fe4650c77f7ff957ad64)) -* Ignore npm-debug.log* ([aafe117](https://github.com/codesweetly/react-image-grid-gallery/commit/aafe117b241e6c0e2c5e41ebdd9ea138de3b0788)) -* **ImageGallery:** Define ImgArryProps interface ([c6f04e1](https://github.com/codesweetly/react-image-grid-gallery/commit/c6f04e1ee7d8f4a52bea1b7424b186a2ab56976e)) -* Initialize react-image-grid-gallery project ([bd11d5f](https://github.com/codesweetly/react-image-grid-gallery/commit/bd11d5fdedd36d33079bd6936041f6eca49cd26b)) -* Make 'ImageGallery.js' the entry point ([14451d6](https://github.com/codesweetly/react-image-grid-gallery/commit/14451d664b7934364c7d9d5e37b0c04b20014804)) -* **package-json:** Install packages for compiling React to JavaScript ([56cd72d](https://github.com/codesweetly/react-image-grid-gallery/commit/56cd72d0d8354b2d6017a9bd2b71a3854226e912)) -* Provide info that helps people discover the package ([bf581de](https://github.com/codesweetly/react-image-grid-gallery/commit/bf581deb46c5e890a78e6da8d19cb9e7a289f957)) -* **release-it:** Customize changelog's headings ([00943c8](https://github.com/codesweetly/react-image-grid-gallery/commit/00943c89ce7d9246ac8ab9aa71fc61eba77f41eb)) -* **release-it:** Install version management plugin ([abfc611](https://github.com/codesweetly/react-image-grid-gallery/commit/abfc611be693890781a28d91a5d6ae5604c365c2)) -* **release-it:** Let release-it auto-generate project's changelog ([8f12b98](https://github.com/codesweetly/react-image-grid-gallery/commit/8f12b98ffe81d4a073cdeeafb30785f0747d761e)) -* **release-it:** Specify options to override ([bf58eee](https://github.com/codesweetly/react-image-grid-gallery/commit/bf58eee97895fc29207e1333f5c6d09692f79eee)) -* **release-it:** Use plugin to provide recommended bump to release-it ([ebd37a4](https://github.com/codesweetly/react-image-grid-gallery/commit/ebd37a4b9f1e61e41f33ffd8c0be8ee124dfa986)) -* **typescript:** Define declaration file's location ([589842f](https://github.com/codesweetly/react-image-grid-gallery/commit/589842f62acef66338ca0d272bd255f9f7086415)) -* Update changelog sections ([8763812](https://github.com/codesweetly/react-image-grid-gallery/commit/87638120ba6defe64ca15a57509dc6466bb01c64)) -* Update to v0.2.0 ([6cce00e](https://github.com/codesweetly/react-image-grid-gallery/commit/6cce00e58713bbeea7ee1bf9f329c9cf3c515810)) -* Update to v0.3.0 ([7156836](https://github.com/codesweetly/react-image-grid-gallery/commit/71568363c491cd3c8826b985123221026dfa190d)) -* Update to v0.4.0 ([df9a6f9](https://github.com/codesweetly/react-image-grid-gallery/commit/df9a6f935ac9b7d8dda1998f1d966b238154fbc6)) -* Update to v0.5.0 ([81acd21](https://github.com/codesweetly/react-image-grid-gallery/commit/81acd21ea742ba46212c522a480b1c666c33633e)) - -## 0.5.0 (2023-05-29) - - -### ๐Ÿš€ New Feature - -* **ImageGallery:** Create ImageGallery component ([49c40a9](https://github.com/codesweetly/react-image-grid-gallery/commit/49c40a979383f3e381103490acb2c06a519f79b6)) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Don't render
if item.caption is undefined ([1c0c59e](https://github.com/codesweetly/react-image-grid-gallery/commit/1c0c59e3bbf061d5504365c3aa1017d05d073f13)) -* Make caption optional ([c47d824](https://github.com/codesweetly/react-image-grid-gallery/commit/c47d824d475487e07b445f2a72641519f0649949)) -* Rename 'ImgArryProps' to 'ImgArrayType' ([8062f6c](https://github.com/codesweetly/react-image-grid-gallery/commit/8062f6cb0933af5dd58ea3b710236e26dfc24e35)) - - -### ๐Ÿ’… Styling and Formatting - -* Add 'codesweetly-rigg' to class names ([4e12857](https://github.com/codesweetly/react-image-grid-gallery/commit/4e12857ca399d22a7005b1e9ef071dc41ef422dc)) -* Add row-gap ([4a5b2d8](https://github.com/codesweetly/react-image-grid-gallery/commit/4a5b2d8e8e7e63fe65850b8366a128c07071b85a)) -* Create ImageGallery's stylesheet ([70191bc](https://github.com/codesweetly/react-image-grid-gallery/commit/70191bcdf4bb8508227e89de3346556ac85fbec5)) -* Define codesweetly-img's width ([ca01ba6](https://github.com/codesweetly/react-image-grid-gallery/commit/ca01ba6150a73b6860ac4e014e705e3694127c68)) -* Delete 'data-theme=light' declaration ([d578205](https://github.com/codesweetly/react-image-grid-gallery/commit/d5782050bccf79d74e4217045eeb96935008985b)) -* Delete the 'codesweetly-rigg-img' class ([c87e621](https://github.com/codesweetly/react-image-grid-gallery/commit/c87e62140526d38ff5217b90482e39f3e734a5da)) - - -### ๐Ÿ“ Documentation - -* Create README ([bc64b22](https://github.com/codesweetly/react-image-grid-gallery/commit/bc64b22ff4e2c4602f43ed430f6e8dc640888b50)) - - -### ๐Ÿ  Chores - -* Change version number to 0.0.0 ([24da08f](https://github.com/codesweetly/react-image-grid-gallery/commit/24da08fe65fbb0428913eba947ea979f6681fef1)) -* **commitlint:** Install plugins to enforce Conventional Commits ([9170395](https://github.com/codesweetly/react-image-grid-gallery/commit/9170395ee06b1a486070f40ae5a4f8caa3a0ffd5)) -* Configure babel ([1d21977](https://github.com/codesweetly/react-image-grid-gallery/commit/1d219770d829660173091ed51369986eff44bae5)) -* Configure TypeScript ([9604bb9](https://github.com/codesweetly/react-image-grid-gallery/commit/9604bb9d66b4d094f8048b9497abc6f3d57da5a9)) -* Create 'copy-files' script ([da952a0](https://github.com/codesweetly/react-image-grid-gallery/commit/da952a0d581bd24c99f056bda45bcb6ce3a04163)) -* Create a LICENSE ([13c70f0](https://github.com/codesweetly/react-image-grid-gallery/commit/13c70f0aaeb50447e18af77911784f37ef730e52)) -* Generate changelog ([e2e920a](https://github.com/codesweetly/react-image-grid-gallery/commit/e2e920aebdb04efb58d86fe7420d13008d183663)) -* **github:** Configure release-it to auto-generate project's GitHub releases ([7312f92](https://github.com/codesweetly/react-image-grid-gallery/commit/7312f92dd5a6853c9fc2610af3f9e15aec7cde82)) -* **github:** Specify the remote repo's url ([d800de3](https://github.com/codesweetly/react-image-grid-gallery/commit/d800de3cfee99c66bff13cd3b26865b4324c3d53)) -* Ignore 'dist' folder ([12ae8a5](https://github.com/codesweetly/react-image-grid-gallery/commit/12ae8a5b362a1ba24cb9fe4650c77f7ff957ad64)) -* Ignore npm-debug.log* ([aafe117](https://github.com/codesweetly/react-image-grid-gallery/commit/aafe117b241e6c0e2c5e41ebdd9ea138de3b0788)) -* **ImageGallery:** Define ImgArryProps interface ([c6f04e1](https://github.com/codesweetly/react-image-grid-gallery/commit/c6f04e1ee7d8f4a52bea1b7424b186a2ab56976e)) -* Initialize react-image-grid-gallery project ([bd11d5f](https://github.com/codesweetly/react-image-grid-gallery/commit/bd11d5fdedd36d33079bd6936041f6eca49cd26b)) -* Make 'ImageGallery.js' the entry point ([14451d6](https://github.com/codesweetly/react-image-grid-gallery/commit/14451d664b7934364c7d9d5e37b0c04b20014804)) -* **package-json:** Install packages for compiling React to JavaScript ([56cd72d](https://github.com/codesweetly/react-image-grid-gallery/commit/56cd72d0d8354b2d6017a9bd2b71a3854226e912)) -* Provide info that helps people discover the package ([bf581de](https://github.com/codesweetly/react-image-grid-gallery/commit/bf581deb46c5e890a78e6da8d19cb9e7a289f957)) -* **release-it:** Customize changelog's headings ([00943c8](https://github.com/codesweetly/react-image-grid-gallery/commit/00943c89ce7d9246ac8ab9aa71fc61eba77f41eb)) -* **release-it:** Install version management plugin ([abfc611](https://github.com/codesweetly/react-image-grid-gallery/commit/abfc611be693890781a28d91a5d6ae5604c365c2)) -* **release-it:** Let release-it auto-generate project's changelog ([8f12b98](https://github.com/codesweetly/react-image-grid-gallery/commit/8f12b98ffe81d4a073cdeeafb30785f0747d761e)) -* **release-it:** Specify options to override ([bf58eee](https://github.com/codesweetly/react-image-grid-gallery/commit/bf58eee97895fc29207e1333f5c6d09692f79eee)) -* **release-it:** Use plugin to provide recommended bump to release-it ([ebd37a4](https://github.com/codesweetly/react-image-grid-gallery/commit/ebd37a4b9f1e61e41f33ffd8c0be8ee124dfa986)) -* **typescript:** Define declaration file's location ([589842f](https://github.com/codesweetly/react-image-grid-gallery/commit/589842f62acef66338ca0d272bd255f9f7086415)) -* Update changelog sections ([8763812](https://github.com/codesweetly/react-image-grid-gallery/commit/87638120ba6defe64ca15a57509dc6466bb01c64)) -* Update to v0.2.0 ([6cce00e](https://github.com/codesweetly/react-image-grid-gallery/commit/6cce00e58713bbeea7ee1bf9f329c9cf3c515810)) -* Update to v0.3.0 ([7156836](https://github.com/codesweetly/react-image-grid-gallery/commit/71568363c491cd3c8826b985123221026dfa190d)) -* Update to v0.4.0 ([df9a6f9](https://github.com/codesweetly/react-image-grid-gallery/commit/df9a6f935ac9b7d8dda1998f1d966b238154fbc6)) - -## 0.4.0 (2023-05-29) - - -### ๐Ÿš€ New Feature - -* **ImageGallery:** Create ImageGallery component ([49c40a9](https://github.com/codesweetly/react-image-grid-gallery/commit/49c40a979383f3e381103490acb2c06a519f79b6)) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Don't render
if item.caption is undefined ([1c0c59e](https://github.com/codesweetly/react-image-grid-gallery/commit/1c0c59e3bbf061d5504365c3aa1017d05d073f13)) -* Make caption optional ([c47d824](https://github.com/codesweetly/react-image-grid-gallery/commit/c47d824d475487e07b445f2a72641519f0649949)) -* Rename 'ImgArryProps' to 'ImgArrayType' ([8062f6c](https://github.com/codesweetly/react-image-grid-gallery/commit/8062f6cb0933af5dd58ea3b710236e26dfc24e35)) - - -### ๐Ÿ’… Styling and Formatting - -* Add 'codesweetly-rigg' to class names ([4e12857](https://github.com/codesweetly/react-image-grid-gallery/commit/4e12857ca399d22a7005b1e9ef071dc41ef422dc)) -* Add row-gap ([4a5b2d8](https://github.com/codesweetly/react-image-grid-gallery/commit/4a5b2d8e8e7e63fe65850b8366a128c07071b85a)) -* Create ImageGallery's stylesheet ([70191bc](https://github.com/codesweetly/react-image-grid-gallery/commit/70191bcdf4bb8508227e89de3346556ac85fbec5)) -* Define codesweetly-img's width ([ca01ba6](https://github.com/codesweetly/react-image-grid-gallery/commit/ca01ba6150a73b6860ac4e014e705e3694127c68)) -* Delete 'data-theme=light' declaration ([d578205](https://github.com/codesweetly/react-image-grid-gallery/commit/d5782050bccf79d74e4217045eeb96935008985b)) -* Delete the 'codesweetly-rigg-img' class ([c87e621](https://github.com/codesweetly/react-image-grid-gallery/commit/c87e62140526d38ff5217b90482e39f3e734a5da)) - - -### ๐Ÿ“ Documentation - -* Create README ([bc64b22](https://github.com/codesweetly/react-image-grid-gallery/commit/bc64b22ff4e2c4602f43ed430f6e8dc640888b50)) - - -### ๐Ÿ  Chores - -* Change version number to 0.0.0 ([24da08f](https://github.com/codesweetly/react-image-grid-gallery/commit/24da08fe65fbb0428913eba947ea979f6681fef1)) -* **commitlint:** Install plugins to enforce Conventional Commits ([9170395](https://github.com/codesweetly/react-image-grid-gallery/commit/9170395ee06b1a486070f40ae5a4f8caa3a0ffd5)) -* Configure babel ([1d21977](https://github.com/codesweetly/react-image-grid-gallery/commit/1d219770d829660173091ed51369986eff44bae5)) -* Configure TypeScript ([9604bb9](https://github.com/codesweetly/react-image-grid-gallery/commit/9604bb9d66b4d094f8048b9497abc6f3d57da5a9)) -* Create 'copy-files' script ([da952a0](https://github.com/codesweetly/react-image-grid-gallery/commit/da952a0d581bd24c99f056bda45bcb6ce3a04163)) -* Create a LICENSE ([13c70f0](https://github.com/codesweetly/react-image-grid-gallery/commit/13c70f0aaeb50447e18af77911784f37ef730e52)) -* Generate changelog ([e2e920a](https://github.com/codesweetly/react-image-grid-gallery/commit/e2e920aebdb04efb58d86fe7420d13008d183663)) -* **github:** Configure release-it to auto-generate project's GitHub releases ([7312f92](https://github.com/codesweetly/react-image-grid-gallery/commit/7312f92dd5a6853c9fc2610af3f9e15aec7cde82)) -* **github:** Specify the remote repo's url ([d800de3](https://github.com/codesweetly/react-image-grid-gallery/commit/d800de3cfee99c66bff13cd3b26865b4324c3d53)) -* Ignore 'dist' folder ([12ae8a5](https://github.com/codesweetly/react-image-grid-gallery/commit/12ae8a5b362a1ba24cb9fe4650c77f7ff957ad64)) -* Ignore npm-debug.log* ([aafe117](https://github.com/codesweetly/react-image-grid-gallery/commit/aafe117b241e6c0e2c5e41ebdd9ea138de3b0788)) -* **ImageGallery:** Define ImgArryProps interface ([c6f04e1](https://github.com/codesweetly/react-image-grid-gallery/commit/c6f04e1ee7d8f4a52bea1b7424b186a2ab56976e)) -* Initialize react-image-grid-gallery project ([bd11d5f](https://github.com/codesweetly/react-image-grid-gallery/commit/bd11d5fdedd36d33079bd6936041f6eca49cd26b)) -* Make 'ImageGallery.js' the entry point ([14451d6](https://github.com/codesweetly/react-image-grid-gallery/commit/14451d664b7934364c7d9d5e37b0c04b20014804)) -* **package-json:** Install packages for compiling React to JavaScript ([56cd72d](https://github.com/codesweetly/react-image-grid-gallery/commit/56cd72d0d8354b2d6017a9bd2b71a3854226e912)) -* Provide info that helps people discover the package ([bf581de](https://github.com/codesweetly/react-image-grid-gallery/commit/bf581deb46c5e890a78e6da8d19cb9e7a289f957)) -* **release-it:** Customize changelog's headings ([00943c8](https://github.com/codesweetly/react-image-grid-gallery/commit/00943c89ce7d9246ac8ab9aa71fc61eba77f41eb)) -* **release-it:** Install version management plugin ([abfc611](https://github.com/codesweetly/react-image-grid-gallery/commit/abfc611be693890781a28d91a5d6ae5604c365c2)) -* **release-it:** Let release-it auto-generate project's changelog ([8f12b98](https://github.com/codesweetly/react-image-grid-gallery/commit/8f12b98ffe81d4a073cdeeafb30785f0747d761e)) -* **release-it:** Specify options to override ([bf58eee](https://github.com/codesweetly/react-image-grid-gallery/commit/bf58eee97895fc29207e1333f5c6d09692f79eee)) -* **release-it:** Use plugin to provide recommended bump to release-it ([ebd37a4](https://github.com/codesweetly/react-image-grid-gallery/commit/ebd37a4b9f1e61e41f33ffd8c0be8ee124dfa986)) -* **typescript:** Define declaration file's location ([589842f](https://github.com/codesweetly/react-image-grid-gallery/commit/589842f62acef66338ca0d272bd255f9f7086415)) -* Update changelog sections ([8763812](https://github.com/codesweetly/react-image-grid-gallery/commit/87638120ba6defe64ca15a57509dc6466bb01c64)) -* Update to v0.2.0 ([6cce00e](https://github.com/codesweetly/react-image-grid-gallery/commit/6cce00e58713bbeea7ee1bf9f329c9cf3c515810)) -* Update to v0.3.0 ([7156836](https://github.com/codesweetly/react-image-grid-gallery/commit/71568363c491cd3c8826b985123221026dfa190d)) - -## 0.3.0 (2023-05-29) - - -### ๐Ÿš€ New Feature - -* **ImageGallery:** Create ImageGallery component ([49c40a9](https://github.com/codesweetly/react-image-grid-gallery/commit/49c40a979383f3e381103490acb2c06a519f79b6)) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Don't render
if item.caption is undefined ([1c0c59e](https://github.com/codesweetly/react-image-grid-gallery/commit/1c0c59e3bbf061d5504365c3aa1017d05d073f13)) -* Make caption optional ([c47d824](https://github.com/codesweetly/react-image-grid-gallery/commit/c47d824d475487e07b445f2a72641519f0649949)) -* Rename 'ImgArryProps' to 'ImgArrayType' ([8062f6c](https://github.com/codesweetly/react-image-grid-gallery/commit/8062f6cb0933af5dd58ea3b710236e26dfc24e35)) - - -### ๐Ÿ’… Styling and Formatting - -* Add 'codesweetly-rigg' to class names ([4e12857](https://github.com/codesweetly/react-image-grid-gallery/commit/4e12857ca399d22a7005b1e9ef071dc41ef422dc)) -* Add row-gap ([4a5b2d8](https://github.com/codesweetly/react-image-grid-gallery/commit/4a5b2d8e8e7e63fe65850b8366a128c07071b85a)) -* Create ImageGallery's stylesheet ([70191bc](https://github.com/codesweetly/react-image-grid-gallery/commit/70191bcdf4bb8508227e89de3346556ac85fbec5)) -* Define codesweetly-img's width ([ca01ba6](https://github.com/codesweetly/react-image-grid-gallery/commit/ca01ba6150a73b6860ac4e014e705e3694127c68)) -* Delete 'data-theme=light' declaration ([d578205](https://github.com/codesweetly/react-image-grid-gallery/commit/d5782050bccf79d74e4217045eeb96935008985b)) -* Delete the 'codesweetly-rigg-img' class ([c87e621](https://github.com/codesweetly/react-image-grid-gallery/commit/c87e62140526d38ff5217b90482e39f3e734a5da)) - - -### ๐Ÿ“ Documentation - -* Create README ([bc64b22](https://github.com/codesweetly/react-image-grid-gallery/commit/bc64b22ff4e2c4602f43ed430f6e8dc640888b50)) - - -### ๐Ÿ  Chores - -* Change version number to 0.0.0 ([24da08f](https://github.com/codesweetly/react-image-grid-gallery/commit/24da08fe65fbb0428913eba947ea979f6681fef1)) -* **commitlint:** Install plugins to enforce Conventional Commits ([9170395](https://github.com/codesweetly/react-image-grid-gallery/commit/9170395ee06b1a486070f40ae5a4f8caa3a0ffd5)) -* Configure babel ([1d21977](https://github.com/codesweetly/react-image-grid-gallery/commit/1d219770d829660173091ed51369986eff44bae5)) -* Configure TypeScript ([9604bb9](https://github.com/codesweetly/react-image-grid-gallery/commit/9604bb9d66b4d094f8048b9497abc6f3d57da5a9)) -* Create 'copy-files' script ([da952a0](https://github.com/codesweetly/react-image-grid-gallery/commit/da952a0d581bd24c99f056bda45bcb6ce3a04163)) -* Create a LICENSE ([13c70f0](https://github.com/codesweetly/react-image-grid-gallery/commit/13c70f0aaeb50447e18af77911784f37ef730e52)) -* Generate changelog ([e2e920a](https://github.com/codesweetly/react-image-grid-gallery/commit/e2e920aebdb04efb58d86fe7420d13008d183663)) -* **github:** Configure release-it to auto-generate project's GitHub releases ([7312f92](https://github.com/codesweetly/react-image-grid-gallery/commit/7312f92dd5a6853c9fc2610af3f9e15aec7cde82)) -* **github:** Specify the remote repo's url ([d800de3](https://github.com/codesweetly/react-image-grid-gallery/commit/d800de3cfee99c66bff13cd3b26865b4324c3d53)) -* Ignore 'dist' folder ([12ae8a5](https://github.com/codesweetly/react-image-grid-gallery/commit/12ae8a5b362a1ba24cb9fe4650c77f7ff957ad64)) -* Ignore npm-debug.log* ([aafe117](https://github.com/codesweetly/react-image-grid-gallery/commit/aafe117b241e6c0e2c5e41ebdd9ea138de3b0788)) -* **ImageGallery:** Define ImgArryProps interface ([c6f04e1](https://github.com/codesweetly/react-image-grid-gallery/commit/c6f04e1ee7d8f4a52bea1b7424b186a2ab56976e)) -* Initialize react-image-grid-gallery project ([bd11d5f](https://github.com/codesweetly/react-image-grid-gallery/commit/bd11d5fdedd36d33079bd6936041f6eca49cd26b)) -* Make 'ImageGallery.js' the entry point ([14451d6](https://github.com/codesweetly/react-image-grid-gallery/commit/14451d664b7934364c7d9d5e37b0c04b20014804)) -* **package-json:** Install packages for compiling React to JavaScript ([56cd72d](https://github.com/codesweetly/react-image-grid-gallery/commit/56cd72d0d8354b2d6017a9bd2b71a3854226e912)) -* Provide info that helps people discover the package ([bf581de](https://github.com/codesweetly/react-image-grid-gallery/commit/bf581deb46c5e890a78e6da8d19cb9e7a289f957)) -* **release-it:** Customize changelog's headings ([00943c8](https://github.com/codesweetly/react-image-grid-gallery/commit/00943c89ce7d9246ac8ab9aa71fc61eba77f41eb)) -* **release-it:** Install version management plugin ([abfc611](https://github.com/codesweetly/react-image-grid-gallery/commit/abfc611be693890781a28d91a5d6ae5604c365c2)) -* **release-it:** Let release-it auto-generate project's changelog ([8f12b98](https://github.com/codesweetly/react-image-grid-gallery/commit/8f12b98ffe81d4a073cdeeafb30785f0747d761e)) -* **release-it:** Specify options to override ([bf58eee](https://github.com/codesweetly/react-image-grid-gallery/commit/bf58eee97895fc29207e1333f5c6d09692f79eee)) -* **release-it:** Use plugin to provide recommended bump to release-it ([ebd37a4](https://github.com/codesweetly/react-image-grid-gallery/commit/ebd37a4b9f1e61e41f33ffd8c0be8ee124dfa986)) -* **typescript:** Define declaration file's location ([589842f](https://github.com/codesweetly/react-image-grid-gallery/commit/589842f62acef66338ca0d272bd255f9f7086415)) -* Update changelog sections ([8763812](https://github.com/codesweetly/react-image-grid-gallery/commit/87638120ba6defe64ca15a57509dc6466bb01c64)) -* Update to v0.2.0 ([6cce00e](https://github.com/codesweetly/react-image-grid-gallery/commit/6cce00e58713bbeea7ee1bf9f329c9cf3c515810)) - -## 0.2.0 (2023-05-29) - - -### ๐Ÿš€ New Feature - -* **ImageGallery:** Create ImageGallery component ([49c40a9](https://github.com/codesweetly/react-image-grid-gallery/commit/49c40a979383f3e381103490acb2c06a519f79b6)) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Don't render
if item.caption is undefined ([1c0c59e](https://github.com/codesweetly/react-image-grid-gallery/commit/1c0c59e3bbf061d5504365c3aa1017d05d073f13)) -* Make caption optional ([c47d824](https://github.com/codesweetly/react-image-grid-gallery/commit/c47d824d475487e07b445f2a72641519f0649949)) -* Rename 'ImgArryProps' to 'ImgArrayType' ([8062f6c](https://github.com/codesweetly/react-image-grid-gallery/commit/8062f6cb0933af5dd58ea3b710236e26dfc24e35)) - - -### ๐Ÿ’… Styling and Formatting - -* Add 'codesweetly-rigg' to class names ([4e12857](https://github.com/codesweetly/react-image-grid-gallery/commit/4e12857ca399d22a7005b1e9ef071dc41ef422dc)) -* Add row-gap ([4a5b2d8](https://github.com/codesweetly/react-image-grid-gallery/commit/4a5b2d8e8e7e63fe65850b8366a128c07071b85a)) -* Create ImageGallery's stylesheet ([70191bc](https://github.com/codesweetly/react-image-grid-gallery/commit/70191bcdf4bb8508227e89de3346556ac85fbec5)) -* Define codesweetly-img's width ([ca01ba6](https://github.com/codesweetly/react-image-grid-gallery/commit/ca01ba6150a73b6860ac4e014e705e3694127c68)) -* Delete 'data-theme=light' declaration ([d578205](https://github.com/codesweetly/react-image-grid-gallery/commit/d5782050bccf79d74e4217045eeb96935008985b)) -* Delete the 'codesweetly-rigg-img' class ([c87e621](https://github.com/codesweetly/react-image-grid-gallery/commit/c87e62140526d38ff5217b90482e39f3e734a5da)) - - -### ๐Ÿ“ Documentation - -* Create README ([bc64b22](https://github.com/codesweetly/react-image-grid-gallery/commit/bc64b22ff4e2c4602f43ed430f6e8dc640888b50)) - - -### ๐Ÿ  Chores - -* Change version number to 0.0.0 ([24da08f](https://github.com/codesweetly/react-image-grid-gallery/commit/24da08fe65fbb0428913eba947ea979f6681fef1)) -* **commitlint:** Install plugins to enforce Conventional Commits ([9170395](https://github.com/codesweetly/react-image-grid-gallery/commit/9170395ee06b1a486070f40ae5a4f8caa3a0ffd5)) -* Configure babel ([1d21977](https://github.com/codesweetly/react-image-grid-gallery/commit/1d219770d829660173091ed51369986eff44bae5)) -* Configure TypeScript ([9604bb9](https://github.com/codesweetly/react-image-grid-gallery/commit/9604bb9d66b4d094f8048b9497abc6f3d57da5a9)) -* Create 'copy-files' script ([da952a0](https://github.com/codesweetly/react-image-grid-gallery/commit/da952a0d581bd24c99f056bda45bcb6ce3a04163)) -* Create a LICENSE ([13c70f0](https://github.com/codesweetly/react-image-grid-gallery/commit/13c70f0aaeb50447e18af77911784f37ef730e52)) -* Generate changelog ([e2e920a](https://github.com/codesweetly/react-image-grid-gallery/commit/e2e920aebdb04efb58d86fe7420d13008d183663)) -* **github:** Configure release-it to auto-generate project's GitHub releases ([7312f92](https://github.com/codesweetly/react-image-grid-gallery/commit/7312f92dd5a6853c9fc2610af3f9e15aec7cde82)) -* **github:** Specify the remote repo's url ([d800de3](https://github.com/codesweetly/react-image-grid-gallery/commit/d800de3cfee99c66bff13cd3b26865b4324c3d53)) -* Ignore 'dist' folder ([12ae8a5](https://github.com/codesweetly/react-image-grid-gallery/commit/12ae8a5b362a1ba24cb9fe4650c77f7ff957ad64)) -* Ignore npm-debug.log* ([aafe117](https://github.com/codesweetly/react-image-grid-gallery/commit/aafe117b241e6c0e2c5e41ebdd9ea138de3b0788)) -* **ImageGallery:** Define ImgArryProps interface ([c6f04e1](https://github.com/codesweetly/react-image-grid-gallery/commit/c6f04e1ee7d8f4a52bea1b7424b186a2ab56976e)) -* Initialize react-image-grid-gallery project ([bd11d5f](https://github.com/codesweetly/react-image-grid-gallery/commit/bd11d5fdedd36d33079bd6936041f6eca49cd26b)) -* Make 'ImageGallery.js' the entry point ([14451d6](https://github.com/codesweetly/react-image-grid-gallery/commit/14451d664b7934364c7d9d5e37b0c04b20014804)) -* **package-json:** Install packages for compiling React to JavaScript ([56cd72d](https://github.com/codesweetly/react-image-grid-gallery/commit/56cd72d0d8354b2d6017a9bd2b71a3854226e912)) -* Provide info that helps people discover the package ([bf581de](https://github.com/codesweetly/react-image-grid-gallery/commit/bf581deb46c5e890a78e6da8d19cb9e7a289f957)) -* **release-it:** Customize changelog's headings ([00943c8](https://github.com/codesweetly/react-image-grid-gallery/commit/00943c89ce7d9246ac8ab9aa71fc61eba77f41eb)) -* **release-it:** Install version management plugin ([abfc611](https://github.com/codesweetly/react-image-grid-gallery/commit/abfc611be693890781a28d91a5d6ae5604c365c2)) -* **release-it:** Let release-it auto-generate project's changelog ([8f12b98](https://github.com/codesweetly/react-image-grid-gallery/commit/8f12b98ffe81d4a073cdeeafb30785f0747d761e)) -* **release-it:** Specify options to override ([bf58eee](https://github.com/codesweetly/react-image-grid-gallery/commit/bf58eee97895fc29207e1333f5c6d09692f79eee)) -* **release-it:** Use plugin to provide recommended bump to release-it ([ebd37a4](https://github.com/codesweetly/react-image-grid-gallery/commit/ebd37a4b9f1e61e41f33ffd8c0be8ee124dfa986)) -* **typescript:** Define declaration file's location ([589842f](https://github.com/codesweetly/react-image-grid-gallery/commit/589842f62acef66338ca0d272bd255f9f7086415)) -* Update changelog sections ([8763812](https://github.com/codesweetly/react-image-grid-gallery/commit/87638120ba6defe64ca15a57509dc6466bb01c64)) - -## 0.1.0 (2023-05-29) - - -### ๐Ÿš€ New Feature - -* **ImageGallery:** Create ImageGallery component ([49c40a9](https://github.com/codesweetly/react-image-grid-gallery/commit/49c40a979383f3e381103490acb2c06a519f79b6)) - - -### ๐Ÿ”„๏ธ Code Refactoring - -* Don't render
if item.caption is undefined ([1c0c59e](https://github.com/codesweetly/react-image-grid-gallery/commit/1c0c59e3bbf061d5504365c3aa1017d05d073f13)) -* Make caption optional ([c47d824](https://github.com/codesweetly/react-image-grid-gallery/commit/c47d824d475487e07b445f2a72641519f0649949)) -* Rename 'ImgArryProps' to 'ImgArrayType' ([8062f6c](https://github.com/codesweetly/react-image-grid-gallery/commit/8062f6cb0933af5dd58ea3b710236e26dfc24e35)) - - -### ๐Ÿ’… Styling and Formatting - -* Add 'codesweetly-rigg' to class names ([4e12857](https://github.com/codesweetly/react-image-grid-gallery/commit/4e12857ca399d22a7005b1e9ef071dc41ef422dc)) -* Add row-gap ([4a5b2d8](https://github.com/codesweetly/react-image-grid-gallery/commit/4a5b2d8e8e7e63fe65850b8366a128c07071b85a)) -* Create ImageGallery's stylesheet ([70191bc](https://github.com/codesweetly/react-image-grid-gallery/commit/70191bcdf4bb8508227e89de3346556ac85fbec5)) -* Define codesweetly-img's width ([ca01ba6](https://github.com/codesweetly/react-image-grid-gallery/commit/ca01ba6150a73b6860ac4e014e705e3694127c68)) -* Delete 'data-theme=light' declaration ([d578205](https://github.com/codesweetly/react-image-grid-gallery/commit/d5782050bccf79d74e4217045eeb96935008985b)) -* Delete the 'codesweetly-rigg-img' class ([c87e621](https://github.com/codesweetly/react-image-grid-gallery/commit/c87e62140526d38ff5217b90482e39f3e734a5da)) - - -### ๐Ÿ“ Documentation - -* Create README ([bc64b22](https://github.com/codesweetly/react-image-grid-gallery/commit/bc64b22ff4e2c4602f43ed430f6e8dc640888b50)) - - -### ๐Ÿ  Chores - -* Change version number to 0.0.0 ([24da08f](https://github.com/codesweetly/react-image-grid-gallery/commit/24da08fe65fbb0428913eba947ea979f6681fef1)) -* **commitlint:** Install plugins to enforce Conventional Commits ([9170395](https://github.com/codesweetly/react-image-grid-gallery/commit/9170395ee06b1a486070f40ae5a4f8caa3a0ffd5)) -* Configure babel ([1d21977](https://github.com/codesweetly/react-image-grid-gallery/commit/1d219770d829660173091ed51369986eff44bae5)) -* Configure TypeScript ([9604bb9](https://github.com/codesweetly/react-image-grid-gallery/commit/9604bb9d66b4d094f8048b9497abc6f3d57da5a9)) -* Create 'copy-files' script ([da952a0](https://github.com/codesweetly/react-image-grid-gallery/commit/da952a0d581bd24c99f056bda45bcb6ce3a04163)) -* Create a LICENSE ([13c70f0](https://github.com/codesweetly/react-image-grid-gallery/commit/13c70f0aaeb50447e18af77911784f37ef730e52)) -* **github:** Configure release-it to auto-generate project's GitHub releases ([7312f92](https://github.com/codesweetly/react-image-grid-gallery/commit/7312f92dd5a6853c9fc2610af3f9e15aec7cde82)) -* **github:** Specify the remote repo's url ([d800de3](https://github.com/codesweetly/react-image-grid-gallery/commit/d800de3cfee99c66bff13cd3b26865b4324c3d53)) -* Ignore 'dist' folder ([12ae8a5](https://github.com/codesweetly/react-image-grid-gallery/commit/12ae8a5b362a1ba24cb9fe4650c77f7ff957ad64)) -* Ignore npm-debug.log* ([aafe117](https://github.com/codesweetly/react-image-grid-gallery/commit/aafe117b241e6c0e2c5e41ebdd9ea138de3b0788)) -* **ImageGallery:** Define ImgArryProps interface ([c6f04e1](https://github.com/codesweetly/react-image-grid-gallery/commit/c6f04e1ee7d8f4a52bea1b7424b186a2ab56976e)) -* Initialize react-image-grid-gallery project ([bd11d5f](https://github.com/codesweetly/react-image-grid-gallery/commit/bd11d5fdedd36d33079bd6936041f6eca49cd26b)) -* Make 'ImageGallery.js' the entry point ([14451d6](https://github.com/codesweetly/react-image-grid-gallery/commit/14451d664b7934364c7d9d5e37b0c04b20014804)) -* **package-json:** Install packages for compiling React to JavaScript ([56cd72d](https://github.com/codesweetly/react-image-grid-gallery/commit/56cd72d0d8354b2d6017a9bd2b71a3854226e912)) -* Provide info that helps people discover the package ([bf581de](https://github.com/codesweetly/react-image-grid-gallery/commit/bf581deb46c5e890a78e6da8d19cb9e7a289f957)) -* **release-it:** Customize changelog's headings ([00943c8](https://github.com/codesweetly/react-image-grid-gallery/commit/00943c89ce7d9246ac8ab9aa71fc61eba77f41eb)) -* **release-it:** Install version management plugin ([abfc611](https://github.com/codesweetly/react-image-grid-gallery/commit/abfc611be693890781a28d91a5d6ae5604c365c2)) -* **release-it:** Let release-it auto-generate project's changelog ([8f12b98](https://github.com/codesweetly/react-image-grid-gallery/commit/8f12b98ffe81d4a073cdeeafb30785f0747d761e)) -* **release-it:** Specify options to override ([bf58eee](https://github.com/codesweetly/react-image-grid-gallery/commit/bf58eee97895fc29207e1333f5c6d09692f79eee)) -* **release-it:** Use plugin to provide recommended bump to release-it ([ebd37a4](https://github.com/codesweetly/react-image-grid-gallery/commit/ebd37a4b9f1e61e41f33ffd8c0be8ee124dfa986)) -* **typescript:** Define declaration file's location ([589842f](https://github.com/codesweetly/react-image-grid-gallery/commit/589842f62acef66338ca0d272bd255f9f7086415)) -* Update changelog sections ([8763812](https://github.com/codesweetly/react-image-grid-gallery/commit/87638120ba6defe64ca15a57509dc6466bb01c64)) From 4d6516676df68acb5a3d1eb8dd7e4cb0894a739d Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 13:41:11 +0100 Subject: [PATCH 09/29] refactor: Use esm exporting syntax --- commitlint.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commitlint.config.ts b/commitlint.config.ts index 144002b..849943d 100644 --- a/commitlint.config.ts +++ b/commitlint.config.ts @@ -7,4 +7,4 @@ const Configuration: UserConfig = { }, }; -module.exports = Configuration; +export default Configuration; From 2c147ddc3f236c3b5f9cbb85437c306471cd607f Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 13:50:07 +0100 Subject: [PATCH 10/29] refactor: Configure Jest to strip extensions from import statements --- jest.config.cjs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jest.config.cjs b/jest.config.cjs index f26de41..55b8a27 100644 --- a/jest.config.cjs +++ b/jest.config.cjs @@ -10,8 +10,7 @@ module.exports = { }, ], }, - // Resolve .js imports to .ts/.tsx files for testing (for example, ImageGalleryStyles.js -> ImageGalleryStyles.ts) moduleNameMapper: { - "^(\\.{1,2}/.*)\\.js$": "$1", + "^(\\.{1,2}/.*)\\.(ts|js)$": "$1", }, }; From 114dd2836a23645cb952c01b1bd7ad839dfba050 Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 13:56:00 +0100 Subject: [PATCH 11/29] chore: Notify developers that the package uses automated version management --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5243e94..65ebcde 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-image-grid-gallery", - "version": "3.1.8", + "version": "0.0.0-development", "description": "A simple image gallery with lightbox for displaying a grid of images in React apps", "main": "dist/cjs/ImageGallery.js", "module": "dist/esm/ImageGallery.js", From fd037d40e559eb8f39748cf9b443296fba69ac73 Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 14:20:18 +0100 Subject: [PATCH 12/29] chore: Update module resolution from node10 to nodenext --- package-lock.json | 2632 +++++++++++++++----------------------------- package.json | 22 +- tsconfig.base.json | 3 +- tsconfig.cjs.json | 8 +- tsconfig.esm.json | 1 + tsconfig.json | 3 +- tsconfig.test.json | 7 +- 7 files changed, 902 insertions(+), 1774 deletions(-) diff --git a/package-lock.json b/package-lock.json index 314859b..7fc4678 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,32 +1,32 @@ { "name": "react-image-grid-gallery", - "version": "3.1.8", + "version": "0.0.0-development", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "react-image-grid-gallery", - "version": "3.1.8", + "version": "0.0.0-development", "license": "MIT", "devDependencies": { - "@commitlint/cli": "^20.3.1", - "@commitlint/config-conventional": "^20.3.1", - "@testing-library/react": "^16.2.0", - "@types/react": "^19.2.9", - "@types/react-dom": "^19.2.3", + "@commitlint/cli": "^20.5.2", + "@commitlint/config-conventional": "^20.5.0", + "@testing-library/react": "^16.3.2", + "@types/node": "^25.6.0", + "@types/react": "^19.2.14", "husky": "^9.1.7", - "jest": "^30.2.0", - "jest-environment-jsdom": "^30.2.0", - "react": "^19.2.3", - "ts-jest": "^29.2.5", - "typescript": "^5.7.3" + "jest": "^30.3.0", + "jest-environment-jsdom": "^30.3.0", + "react": "^19.2.4", + "ts-jest": "^29.4.9", + "typescript": "^6.0.3" }, "funding": { "type": "buymeacoffee", "url": "https://www.buymeacoffee.com/codesweetly" }, "peerDependencies": { - "react": "^19.0.0" + "react": "^19.2.4" } }, "node_modules/@asamuzakjp/css-color": { @@ -51,9 +51,9 @@ "license": "ISC" }, "node_modules/@babel/code-frame": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", - "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dev": true, "license": "MIT", "dependencies": { @@ -66,9 +66,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", - "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", "dev": true, "license": "MIT", "engines": { @@ -76,21 +76,21 @@ } }, "node_modules/@babel/core": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", - "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/generator": "^7.28.6", + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", - "@babel/parser": "^7.28.6", + "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -117,14 +117,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", - "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -243,27 +243,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", - "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/types": "^7.29.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", - "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.28.6" + "@babel/types": "^7.29.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -512,9 +512,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", - "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", "dev": true, "license": "MIT", "engines": { @@ -537,18 +537,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", - "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/generator": "^7.28.6", + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.6", + "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6", + "@babel/types": "^7.29.0", "debug": "^4.3.1" }, "engines": { @@ -556,9 +556,9 @@ } }, "node_modules/@babel/types": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", - "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "dev": true, "license": "MIT", "dependencies": { @@ -577,17 +577,17 @@ "license": "MIT" }, "node_modules/@commitlint/cli": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-20.3.1.tgz", - "integrity": "sha512-NtInjSlyev/+SLPvx/ulz8hRE25Wf5S9dLNDcIwazq0JyB4/w1ROF/5nV0ObPTX8YpRaKYeKtXDYWqumBNHWsw==", + "version": "20.5.3", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-20.5.3.tgz", + "integrity": "sha512-OJdL0EXWD5y9LPa0nr/geOwzaS8BsdaybKkcloB0JgsguGxNv2R+hC2FTPqrAcprg35zF33KOQerY0x8W1aesA==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/format": "^20.3.1", - "@commitlint/lint": "^20.3.1", - "@commitlint/load": "^20.3.1", - "@commitlint/read": "^20.3.1", - "@commitlint/types": "^20.3.1", + "@commitlint/format": "^20.5.0", + "@commitlint/lint": "^20.5.3", + "@commitlint/load": "^20.5.3", + "@commitlint/read": "^20.5.0", + "@commitlint/types": "^20.5.0", "tinyexec": "^1.0.0", "yargs": "^17.0.0" }, @@ -599,27 +599,27 @@ } }, "node_modules/@commitlint/config-conventional": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-20.3.1.tgz", - "integrity": "sha512-NCzwvxepstBZbmVXsvg49s+shCxlJDJPWxXqONVcAtJH9wWrOlkMQw/zyl+dJmt8lyVopt5mwQ3mR5M2N2rUWg==", + "version": "20.5.3", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-20.5.3.tgz", + "integrity": "sha512-j34Qqeaa152chJgz2ysyk0BCpHenJn1lV0Rx0VXf8k3ccQcED+48EZrzMvo9jLmJUyBrrBwvu89I+2er4gW7QQ==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^20.3.1", - "conventional-changelog-conventionalcommits": "^7.0.2" + "@commitlint/types": "^20.5.0", + "conventional-changelog-conventionalcommits": "^9.2.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/config-validator": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-20.3.1.tgz", - "integrity": "sha512-ErVLC/IsHhcvxCyh+FXo7jy12/nkQySjWXYgCoQbZLkFp4hysov8KS6CdxBB0cWjbZWjvNOKBMNoUVqkmGmahw==", + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-20.5.0.tgz", + "integrity": "sha512-T/Uh6iJUzyx7j35GmHWdIiGRQB+ouZDk0pwAaYq4SXgB54KZhFdJ0vYmxiW6AMYICTIWuyMxDBl1jK74oFp/Gw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^20.3.1", + "@commitlint/types": "^20.5.0", "ajv": "^8.11.0" }, "engines": { @@ -627,18 +627,14 @@ } }, "node_modules/@commitlint/ensure": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-20.3.1.tgz", - "integrity": "sha512-h664FngOEd7bHAm0j8MEKq+qm2mH+V+hwJiIE2bWcw3pzJMlO0TPKtk0ATyRAtV6jQw+xviRYiIjjSjfajiB5w==", + "version": "20.5.3", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-20.5.3.tgz", + "integrity": "sha512-4i4AgNvH62owG9MwSiWKrle7HGNpBHHdLnWFIp5fTsHUYe5kRuh15t08L/0pdbbrRk8JKXQxxN4hZQcn+szkrw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^20.3.1", - "lodash.camelcase": "^4.3.0", - "lodash.kebabcase": "^4.1.1", - "lodash.snakecase": "^4.1.1", - "lodash.startcase": "^4.4.0", - "lodash.upperfirst": "^4.3.1" + "@commitlint/types": "^20.5.0", + "es-toolkit": "^1.46.0" }, "engines": { "node": ">=v18" @@ -655,27 +651,27 @@ } }, "node_modules/@commitlint/format": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-20.3.1.tgz", - "integrity": "sha512-jfsjGPFTd2Yti2YHwUH4SPRPbWKAJAwrfa3eNa9bXEdrXBb9mCwbIrgYX38LdEJK9zLJ3AsLBP4/FLEtxyu2AA==", + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-20.5.0.tgz", + "integrity": "sha512-TI9EwFU/qZWSK7a5qyXMpKPPv3qta7FO4tKW+Wt2al7sgMbLWTsAcDpX1cU8k16TRdsiiet9aOw0zpvRXNJu7Q==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^20.3.1", - "chalk": "^5.3.0" + "@commitlint/types": "^20.5.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/is-ignored": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-20.3.1.tgz", - "integrity": "sha512-tWwAoh93QvAhxgp99CzCuHD86MgxE4NBtloKX+XxQxhfhSwHo7eloiar/yzx53YW9eqSLP95zgW2KDDk4/WX+A==", + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-20.5.0.tgz", + "integrity": "sha512-JWLarAsurHJhPozbuAH6GbP4p/hdOCoqS9zJMfqwswne+/GPs5V0+rrsfOkP68Y8PSLphwtFXV0EzJ+GTXTTGg==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^20.3.1", + "@commitlint/types": "^20.5.0", "semver": "^7.6.0" }, "engines": { @@ -683,47 +679,46 @@ } }, "node_modules/@commitlint/lint": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-20.3.1.tgz", - "integrity": "sha512-LaOtrQ24+6SfUaWg8A+a+Wc77bvLbO5RIr6iy9F7CI3/0iq1uPEWgGRCwqWTuLGHkZDAcwaq0gZ01zpwZ1jCGw==", + "version": "20.5.3", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-20.5.3.tgz", + "integrity": "sha512-M7JbWBNr2gXKaPc4i/KipsuW1gkDHpj35KPjWtKy3Z+2AQw5wu1gBi1LIO0uoaij67CqY4K8PxPZSGens4evCw==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/is-ignored": "^20.3.1", - "@commitlint/parse": "^20.3.1", - "@commitlint/rules": "^20.3.1", - "@commitlint/types": "^20.3.1" + "@commitlint/is-ignored": "^20.5.0", + "@commitlint/parse": "^20.5.0", + "@commitlint/rules": "^20.5.3", + "@commitlint/types": "^20.5.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/load": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-20.3.1.tgz", - "integrity": "sha512-YDD9XA2XhgYgbjju8itZ/weIvOOobApDqwlPYCX5NLO/cPtw2UMO5Cmn44Ks8RQULUVI5fUT6roKvyxcoLbNmw==", + "version": "20.5.3", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-20.5.3.tgz", + "integrity": "sha512-1FDZWuKyu98Myb8i7Tp31jPU2rZpOwAdYRyJcy2KoGg7Xk2A+bgHN8smhMaaNSNkmE8fwt53BokywZq8Gv/5XQ==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/config-validator": "^20.3.1", + "@commitlint/config-validator": "^20.5.0", "@commitlint/execute-rule": "^20.0.0", - "@commitlint/resolve-extends": "^20.3.1", - "@commitlint/types": "^20.3.1", - "chalk": "^5.3.0", - "cosmiconfig": "^9.0.0", + "@commitlint/resolve-extends": "^20.5.3", + "@commitlint/types": "^20.5.0", + "cosmiconfig": "^9.0.1", "cosmiconfig-typescript-loader": "^6.1.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0" + "es-toolkit": "^1.46.0", + "is-plain-obj": "^4.1.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/message": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-20.0.0.tgz", - "integrity": "sha512-gLX4YmKnZqSwkmSB9OckQUrI5VyXEYiv3J5JKZRxIp8jOQsWjZgHSG/OgEfMQBK9ibdclEdAyIPYggwXoFGXjQ==", + "version": "20.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-20.4.3.tgz", + "integrity": "sha512-6akwCYrzcrFcTYz9GyUaWlhisY4lmQ3KvrnabmhoeAV8nRH4dXJAh4+EUQ3uArtxxKQkvxJS78hNX2EU3USgxQ==", "dev": true, "license": "MIT", "engines": { @@ -731,30 +726,30 @@ } }, "node_modules/@commitlint/parse": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-20.3.1.tgz", - "integrity": "sha512-TuUTdbLpyUNLgDzLDYlI2BeTE6V/COZbf3f8WwsV0K6eq/2nSpNTMw7wHtXb+YxeY9wwxBp/Ldad4P+YIxHJoA==", + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-20.5.0.tgz", + "integrity": "sha512-SeKWHBMk7YOTnnEWUhx+d1a9vHsjjuo6Uo1xRfPNfeY4bdYFasCH1dDpAv13Lyn+dDPOels+jP6D2GRZqzc5fA==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/types": "^20.3.1", - "conventional-changelog-angular": "^7.0.0", - "conventional-commits-parser": "^5.0.0" + "@commitlint/types": "^20.5.0", + "conventional-changelog-angular": "^8.2.0", + "conventional-commits-parser": "^6.3.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/read": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-20.3.1.tgz", - "integrity": "sha512-nCmJAdIg3OdNVUpQW0Idk/eF/vfOo2W2xzmvRmNeptLrzFK7qhwwl/kIwy1Q1LZrKHUFNj7PGNpIT5INbgZWzA==", + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-20.5.0.tgz", + "integrity": "sha512-JDEIJ2+GnWpK8QqwfmW7O42h0aycJEWNqcdkJnyzLD11nf9dW2dWLTVEa8Wtlo4IZFGLPATjR5neA5QlOvIH1w==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/top-level": "^20.0.0", - "@commitlint/types": "^20.3.1", - "git-raw-commits": "^4.0.0", + "@commitlint/top-level": "^20.4.3", + "@commitlint/types": "^20.5.0", + "git-raw-commits": "^5.0.0", "minimist": "^1.2.8", "tinyexec": "^1.0.0" }, @@ -763,17 +758,17 @@ } }, "node_modules/@commitlint/resolve-extends": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-20.3.1.tgz", - "integrity": "sha512-iGTGeyaoDyHDEZNjD8rKeosjSNs8zYanmuowY4ful7kFI0dnY4b5QilVYaFQJ6IM27S57LAeH5sKSsOHy4bw5w==", + "version": "20.5.3", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-20.5.3.tgz", + "integrity": "sha512-+ogW9v/u9JqpvAgTrLra/YTFo0KkjU6iNblF89pPsj4NebNc+DAWctsludwezI8YnsjBmfHpApSwcXprN/f/ew==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/config-validator": "^20.3.1", - "@commitlint/types": "^20.3.1", - "global-directory": "^4.0.1", + "@commitlint/config-validator": "^20.5.0", + "@commitlint/types": "^20.5.0", + "es-toolkit": "^1.46.0", + "global-directory": "^5.0.0", "import-meta-resolve": "^4.0.0", - "lodash.mergewith": "^4.6.2", "resolve-from": "^5.0.0" }, "engines": { @@ -781,16 +776,16 @@ } }, "node_modules/@commitlint/rules": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-20.3.1.tgz", - "integrity": "sha512-/uic4P+4jVNpqQxz02+Y6vvIC0A2J899DBztA1j6q3f3MOKwydlNrojSh0dQmGDxxT1bXByiRtDhgFnOFnM6Pg==", + "version": "20.5.3", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-20.5.3.tgz", + "integrity": "sha512-MPlMnb9D3wbszYMp+1hPtuhtPJndRo6I6yfkZVA4+jR8w7Kqp0u2u/Y+gzbaItx5Lltq5rw7FSZQWJMoXUC4NQ==", "dev": true, "license": "MIT", "dependencies": { - "@commitlint/ensure": "^20.3.1", - "@commitlint/message": "^20.0.0", + "@commitlint/ensure": "^20.5.3", + "@commitlint/message": "^20.4.3", "@commitlint/to-lines": "^20.0.0", - "@commitlint/types": "^20.3.1" + "@commitlint/types": "^20.5.0" }, "engines": { "node": ">=v18" @@ -807,32 +802,59 @@ } }, "node_modules/@commitlint/top-level": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-20.0.0.tgz", - "integrity": "sha512-drXaPSP2EcopukrUXvUXmsQMu3Ey/FuJDc/5oiW4heoCfoE5BdLQyuc7veGeE3aoQaTVqZnh4D5WTWe2vefYKg==", + "version": "20.4.3", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-20.4.3.tgz", + "integrity": "sha512-qD9xfP6dFg5jQ3NMrOhG0/w5y3bBUsVGyJvXxdWEwBm8hyx4WOk3kKXw28T5czBYvyeCVJgJJ6aoJZUWDpaacQ==", "dev": true, "license": "MIT", "dependencies": { - "find-up": "^7.0.0" + "escalade": "^3.2.0" }, "engines": { "node": ">=v18" } }, "node_modules/@commitlint/types": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-20.3.1.tgz", - "integrity": "sha512-VmIFV/JkBRhDRRv7N5B7zEUkNZIx9Mp+8Pe65erz0rKycXLsi8Epcw0XJ+btSeRXgTzE7DyOyA9bkJ9mn/yqVQ==", + "version": "20.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-20.5.0.tgz", + "integrity": "sha512-ZJoS8oSq2CAZEpc/YI9SulLrdiIyXeHb/OGqGrkUP6Q7YV+0ouNAa7GjqRdXeQPncHQIDz/jbCTlHScvYvO/gA==", "dev": true, "license": "MIT", "dependencies": { - "@types/conventional-commits-parser": "^5.0.0", - "chalk": "^5.3.0" + "conventional-commits-parser": "^6.3.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=v18" } }, + "node_modules/@conventional-changelog/git-client": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@conventional-changelog/git-client/-/git-client-2.7.0.tgz", + "integrity": "sha512-j7A8/LBEQ+3rugMzPXoKYzyUPpw/0CBQCyvtTR7Lmu4olG4yRC/Tfkq79Mr3yuPs0SUitlO2HwGP3gitMJnRFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@simple-libs/child-process-utils": "^1.0.0", + "@simple-libs/stream-utils": "^1.2.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.4.0" + }, + "peerDependenciesMeta": { + "conventional-commits-filter": { + "optional": true + }, + "conventional-commits-parser": { + "optional": true + } + } + }, "node_modules/@csstools/color-helpers": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", @@ -949,21 +971,21 @@ } }, "node_modules/@emnapi/core": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", - "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.1.0", + "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", - "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", "dev": true, "license": "MIT", "optional": true, @@ -972,9 +994,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", - "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", "dev": true, "license": "MIT", "optional": true, @@ -1027,20 +1049,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { "version": "3.14.2", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", @@ -1055,62 +1063,10 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", + "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", "dev": true, "license": "MIT", "engines": { @@ -1118,90 +1074,56 @@ } }, "node_modules/@jest/console": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.2.0.tgz", - "integrity": "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.3.0.tgz", + "integrity": "sha512-PAwCvFJ4696XP2qZj+LAn1BWjZaJ6RjG6c7/lkMaUJnkyMS34ucuIsfqYvfskVNvUI27R/u4P1HMYFnlVXG/Ww==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "@types/node": "*", "chalk": "^4.1.2", - "jest-message-util": "30.2.0", - "jest-util": "30.2.0", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", "slash": "^3.0.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@jest/core": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.2.0.tgz", - "integrity": "sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.3.0.tgz", + "integrity": "sha512-U5mVPsBxLSO6xYbf+tgkymLx+iAhvZX43/xI1+ej2ZOPnPdkdO1CzDmFKh2mZBn2s4XZixszHeQnzp1gm/DIxw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.2.0", + "@jest/console": "30.3.0", "@jest/pattern": "30.0.1", - "@jest/reporters": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/reporters": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "ci-info": "^4.2.0", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", - "jest-changed-files": "30.2.0", - "jest-config": "30.2.0", - "jest-haste-map": "30.2.0", - "jest-message-util": "30.2.0", + "jest-changed-files": "30.3.0", + "jest-config": "30.3.0", + "jest-haste-map": "30.3.0", + "jest-message-util": "30.3.0", "jest-regex-util": "30.0.1", - "jest-resolve": "30.2.0", - "jest-resolve-dependencies": "30.2.0", - "jest-runner": "30.2.0", - "jest-runtime": "30.2.0", - "jest-snapshot": "30.2.0", - "jest-util": "30.2.0", - "jest-validate": "30.2.0", - "jest-watcher": "30.2.0", - "micromatch": "^4.0.8", - "pretty-format": "30.2.0", + "jest-resolve": "30.3.0", + "jest-resolve-dependencies": "30.3.0", + "jest-runner": "30.3.0", + "jest-runtime": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "jest-watcher": "30.3.0", + "pretty-format": "30.3.0", "slash": "^3.0.0" }, "engines": { @@ -1216,43 +1138,23 @@ } } }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { "node": ">=10" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@jest/core/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1272,9 +1174,9 @@ "license": "MIT" }, "node_modules/@jest/diff-sequences": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", - "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz", + "integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==", "dev": true, "license": "MIT", "engines": { @@ -1282,35 +1184,35 @@ } }, "node_modules/@jest/environment": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz", - "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.3.0.tgz", + "integrity": "sha512-SlLSF4Be735yQXyh2+mctBOzNDx5s5uLv88/j8Qn1wH679PDcwy67+YdADn8NJnGjzlXtN62asGH/T4vWOkfaw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/fake-timers": "30.2.0", - "@jest/types": "30.2.0", + "@jest/fake-timers": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", - "jest-mock": "30.2.0" + "jest-mock": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/environment-jsdom-abstract": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-30.2.0.tgz", - "integrity": "sha512-kazxw2L9IPuZpQ0mEt9lu9Z98SqR74xcagANmMBU16X0lS23yPc0+S6hGLUz8kVRlomZEs/5S/Zlpqwf5yu6OQ==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-30.3.0.tgz", + "integrity": "sha512-0hNFs5N6We3DMCwobzI0ydhkY10sT1tZSC0AAiy+0g2Dt/qEWgrcV5BrMxPczhe41cxW4qm6X+jqZaUdpZIajA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/fake-timers": "30.2.0", - "@jest/types": "30.2.0", + "@jest/environment": "30.3.0", + "@jest/fake-timers": "30.3.0", + "@jest/types": "30.3.0", "@types/jsdom": "^21.1.7", "@types/node": "*", - "jest-mock": "30.2.0", - "jest-util": "30.2.0" + "jest-mock": "30.3.0", + "jest-util": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -1326,23 +1228,23 @@ } }, "node_modules/@jest/expect": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.2.0.tgz", - "integrity": "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.3.0.tgz", + "integrity": "sha512-76Nlh4xJxk2D/9URCn3wFi98d2hb19uWE1idLsTt2ywhvdOldbw3S570hBgn25P4ICUZ/cBjybrBex2g17IDbg==", "dev": true, "license": "MIT", "dependencies": { - "expect": "30.2.0", - "jest-snapshot": "30.2.0" + "expect": "30.3.0", + "jest-snapshot": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz", - "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.3.0.tgz", + "integrity": "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==", "dev": true, "license": "MIT", "dependencies": { @@ -1353,18 +1255,18 @@ } }, "node_modules/@jest/fake-timers": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz", - "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.3.0.tgz", + "integrity": "sha512-WUQDs8SOP9URStX1DzhD425CqbN/HxUYCTwVrT8sTVBfMvFqYt/s61EK5T05qnHu0po6RitXIvP9otZxYDzTGQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", - "@sinonjs/fake-timers": "^13.0.0", + "@jest/types": "30.3.0", + "@sinonjs/fake-timers": "^15.0.0", "@types/node": "*", - "jest-message-util": "30.2.0", - "jest-mock": "30.2.0", - "jest-util": "30.2.0" + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-util": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -1381,16 +1283,16 @@ } }, "node_modules/@jest/globals": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.2.0.tgz", - "integrity": "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.3.0.tgz", + "integrity": "sha512-+owLCBBdfpgL3HU+BD5etr1SvbXpSitJK0is1kiYjJxAAJggYMRQz5hSdd5pq1sSggfxPbw2ld71pt4x5wwViA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/expect": "30.2.0", - "@jest/types": "30.2.0", - "jest-mock": "30.2.0" + "@jest/environment": "30.3.0", + "@jest/expect": "30.3.0", + "@jest/types": "30.3.0", + "jest-mock": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -1411,32 +1313,32 @@ } }, "node_modules/@jest/reporters": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz", - "integrity": "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.3.0.tgz", + "integrity": "sha512-a09z89S+PkQnL055bVj8+pe2Caed2PBOaczHcXCykW5ngxX9EWx/1uAwncxc/HiU0oZqfwseMjyhxgRjS49qPw==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/console": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", "chalk": "^4.1.2", "collect-v8-coverage": "^1.0.2", "exit-x": "^0.2.2", - "glob": "^10.3.10", + "glob": "^10.5.0", "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "30.2.0", - "jest-util": "30.2.0", - "jest-worker": "30.2.0", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", + "jest-worker": "30.3.0", "slash": "^3.0.0", "string-length": "^4.0.2", "v8-to-istanbul": "^9.0.1" @@ -1453,39 +1355,6 @@ } } }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@jest/schemas": { "version": "30.0.5", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", @@ -1500,13 +1369,13 @@ } }, "node_modules/@jest/snapshot-utils": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz", - "integrity": "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.3.0.tgz", + "integrity": "sha512-ORbRN9sf5PP82v3FXNSwmO1OTDR2vzR2YTaR+E3VkSBZ8zadQE6IqYdYEeFH1NIkeB2HIGdF02dapb6K0Mj05g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" @@ -1515,39 +1384,6 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/snapshot-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/snapshot-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@jest/source-map": { "version": "30.0.1", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz", @@ -1564,14 +1400,14 @@ } }, "node_modules/@jest/test-result": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.2.0.tgz", - "integrity": "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.3.0.tgz", + "integrity": "sha512-e/52nJGuD74AKTSe0P4y5wFRlaXP0qmrS17rqOMHeSwm278VyNyXE3gFO/4DTGF9w+65ra3lo3VKj0LBrzmgdQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.2.0", - "@jest/types": "30.2.0", + "@jest/console": "30.3.0", + "@jest/types": "30.3.0", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" }, @@ -1580,15 +1416,15 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz", - "integrity": "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.3.0.tgz", + "integrity": "sha512-dgbWy9b8QDlQeRZcv7LNF+/jFiiYHTKho1xirauZ7kVwY7avjFF6uTT0RqlgudB5OuIPagFdVtfFMosjVbk1eA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.2.0", + "@jest/test-result": "30.3.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.2.0", + "jest-haste-map": "30.3.0", "slash": "^3.0.0" }, "engines": { @@ -1596,24 +1432,23 @@ } }, "node_modules/@jest/transform": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.2.0.tgz", - "integrity": "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.3.0.tgz", + "integrity": "sha512-TLKY33fSLVd/lKB2YI1pH69ijyUblO/BQvCj566YvnwuzoTNr648iE0j22vRvVNk2HsPwByPxATg3MleS3gf5A==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.27.4", - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.1", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.2.0", + "jest-haste-map": "30.3.0", "jest-regex-util": "30.0.1", - "jest-util": "30.2.0", - "micromatch": "^4.0.8", + "jest-util": "30.3.0", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" @@ -1622,89 +1457,23 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@jest/types": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz", + "integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", + "@types/node": "*", + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz", - "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/pattern": "30.0.1", - "@jest/schemas": "30.0.5", - "@types/istanbul-lib-coverage": "^2.0.6", - "@types/istanbul-reports": "^3.0.4", - "@types/node": "*", - "@types/yargs": "^17.0.33", - "chalk": "^4.1.2" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jridgewell/gen-mapping": { @@ -1794,10 +1563,39 @@ "url": "https://opencollective.com/pkgr" } }, + "node_modules/@simple-libs/child-process-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@simple-libs/child-process-utils/-/child-process-utils-1.0.2.tgz", + "integrity": "sha512-/4R8QKnd/8agJynkNdJmNw2MBxuFTRcNFnE5Sg/G+jkSsV8/UBgULMzhizWWW42p8L5H7flImV2ATi79Ove2Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@simple-libs/stream-utils": "^1.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://ko-fi.com/dangreen" + } + }, + "node_modules/@simple-libs/stream-utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@simple-libs/stream-utils/-/stream-utils-1.2.0.tgz", + "integrity": "sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://ko-fi.com/dangreen" + } + }, "node_modules/@sinclair/typebox": { - "version": "0.34.48", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.48.tgz", - "integrity": "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==", + "version": "0.34.49", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.49.tgz", + "integrity": "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==", "dev": true, "license": "MIT" }, @@ -1812,9 +1610,9 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", - "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.3.2.tgz", + "integrity": "sha512-mrn35Jl2pCpns+mE3HaZa1yPN5EYCRgiMI+135COjr2hr8Cls9DXqIZ57vZe2cz7y2XVSq92tcs6kGQcT1J8Rw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -1934,16 +1732,6 @@ "@babel/types": "^7.28.2" } }, - "node_modules/@types/conventional-commits-parser": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.2.tgz", - "integrity": "sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -1984,35 +1772,25 @@ } }, "node_modules/@types/node": { - "version": "25.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.10.tgz", - "integrity": "sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==", + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.16.0" + "undici-types": "~7.19.0" } }, "node_modules/@types/react": { - "version": "19.2.9", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.9.tgz", - "integrity": "sha512-Lpo8kgb/igvMIPeNV2rsYKTgaORYdO1XGVZ4Qz3akwOj0ySGYMPlQWa8BaLn0G63D1aSaAQ5ldR06wCpChQCjA==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "dev": true, "license": "MIT", "dependencies": { "csstype": "^3.2.2" } }, - "node_modules/@types/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.2.0" - } - }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", @@ -2157,6 +1935,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2171,6 +1952,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2185,6 +1969,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2199,6 +1986,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2213,6 +2003,9 @@ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2227,6 +2020,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2241,6 +2037,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -2255,6 +2054,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2331,9 +2133,9 @@ } }, "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "dev": true, "license": "MIT", "dependencies": { @@ -2374,13 +2176,16 @@ } }, "node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" @@ -2400,6 +2205,19 @@ "node": ">= 8" } }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -2426,16 +2244,16 @@ "license": "MIT" }, "node_modules/babel-jest": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz", - "integrity": "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.3.0.tgz", + "integrity": "sha512-gRpauEU2KRrCox5Z296aeVHR4jQ98BCnu0IO332D/xpHNOsIH/bgSRk9k6GbKIbBw8vFeN6ctuu6tV8WOyVfYQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/transform": "30.2.0", + "@jest/transform": "30.3.0", "@types/babel__core": "^7.20.5", "babel-plugin-istanbul": "^7.0.1", - "babel-preset-jest": "30.2.0", + "babel-preset-jest": "30.3.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "slash": "^3.0.0" @@ -2447,39 +2265,6 @@ "@babel/core": "^7.11.0 || ^8.0.0-0" } }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/babel-plugin-istanbul": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", @@ -2501,9 +2286,9 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz", - "integrity": "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.3.0.tgz", + "integrity": "sha512-+TRkByhsws6sfPjVaitzadk1I0F5sPvOVUH5tyTSzhePpsGIVrdeunHSw/C36QeocS95OOk8lunc4rlu5Anwsg==", "dev": true, "license": "MIT", "dependencies": { @@ -2541,13 +2326,13 @@ } }, "node_modules/babel-preset-jest": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz", - "integrity": "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.3.0.tgz", + "integrity": "sha512-6ZcUbWHC+dMz2vfzdNwi87Z1gQsLNK2uLuK1Q89R11xdvejcivlYYwDlEv0FHX3VwEXpbBQ9uufB/MUNpZGfhQ==", "dev": true, "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "30.2.0", + "babel-plugin-jest-hoist": "30.3.0", "babel-preset-current-node-syntax": "^1.2.0" }, "engines": { @@ -2565,42 +2350,32 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.9.17", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.17.tgz", - "integrity": "sha512-agD0MgJFUP/4nvjqzIB29zRPUuCF7Ge6mEv9s8dHrtYD7QWXRcx75rOADE/d5ah1NI+0vkDl0yorDd5U852IQQ==", + "version": "2.10.24", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.24.tgz", + "integrity": "sha512-I2NkZOOrj2XuguvWCK6OVh9GavsNjZjK908Rq3mIBK25+GD8vPX5w2WdxVqnQ7xx3SrZJiCiZFu+/Oz50oSYSA==", "dev": true, "license": "Apache-2.0", "bin": { - "baseline-browser-mapping": "dist/cli.js" + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" } }, "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", "dev": true, "funding": [ { @@ -2618,11 +2393,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" @@ -2682,9 +2457,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001766", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz", - "integrity": "sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==", + "version": "1.0.30001791", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001791.tgz", + "integrity": "sha512-yk0l/YSrOnFZk3UROpDLQD9+kC1l4meK/wed583AXrzoarMGJcbRi2Q4RaUYbKxYAsZ8sWmaSa/DsLmdBeI1vQ==", "dev": true, "funding": [ { @@ -2703,13 +2478,17 @@ "license": "CC-BY-4.0" }, "node_modules/chalk": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" @@ -2726,9 +2505,9 @@ } }, "node_modules/ci-info": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", - "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", "dev": true, "funding": [ { @@ -2763,22 +2542,6 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -2889,48 +2652,46 @@ "license": "MIT" }, "node_modules/conventional-changelog-angular": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", - "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.3.1.tgz", + "integrity": "sha512-6gfI3otXK5Ph5DfCOI1dblr+kN3FAm5a97hYoQkqNZxOaYa5WKfXH+AnpsmS+iUH2mgVC2Cg2Qw9m5OKcmNrIg==", "dev": true, "license": "ISC", "dependencies": { "compare-func": "^2.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/conventional-changelog-conventionalcommits": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", - "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-9.3.1.tgz", + "integrity": "sha512-dTYtpIacRpcZgrvBYvBfArMmK2xvIpv2TaxM0/ZI5CBtNUzvF2x0t15HsbRABWprS6UPmvj+PzHVjSx4qAVKyw==", "dev": true, "license": "ISC", "dependencies": { "compare-func": "^2.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/conventional-commits-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", - "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.4.0.tgz", + "integrity": "sha512-tvRg7FIBNlyPzjdG8wWRlPHQJJHI7DylhtRGeU9Lq+JuoPh5BKpPRX83ZdLrvXuOSu5Eo/e7SzOQhU4Hd2Miuw==", "dev": true, "license": "MIT", "dependencies": { - "is-text-path": "^2.0.0", - "JSONStream": "^1.3.5", - "meow": "^12.0.1", - "split2": "^4.0.0" + "@simple-libs/stream-utils": "^1.2.0", + "meow": "^13.0.0" }, "bin": { - "conventional-commits-parser": "cli.mjs" + "conventional-commits-parser": "dist/cli/index.js" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/convert-source-map": { @@ -2941,9 +2702,9 @@ "license": "MIT" }, "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", + "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2968,13 +2729,13 @@ } }, "node_modules/cosmiconfig-typescript-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.2.0.tgz", - "integrity": "sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.3.0.tgz", + "integrity": "sha512-Akr82WH1Wfqatyiqpj8HDkO2o2KmJRu1FhKfSNJP3K4IdXwHfEyL7MOb62i1AGQVLtIQM+iCE9CGOtrfhR+mmA==", "dev": true, "license": "MIT", "dependencies": { - "jiti": "^2.6.1" + "jiti": "2.6.1" }, "engines": { "node": ">=v18" @@ -3021,19 +2782,6 @@ "dev": true, "license": "MIT" }, - "node_modules/dargs": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", - "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/data-urls": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", @@ -3074,9 +2822,9 @@ "license": "MIT" }, "node_modules/dedent": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz", - "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -3148,9 +2896,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.278", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.278.tgz", - "integrity": "sha512-dQ0tM1svDRQOwxnXxm+twlGTjr9Upvt8UFWAgmLsxEzFQxhbti4VwxmMjsDxVC51Zo84swW7FVCXEV+VAkhuPw==", + "version": "1.5.345", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.345.tgz", + "integrity": "sha512-F9JXQGiMrz6yVNPI2qOVPvB9HzjH5cGzhs8oJ6A28V5L/YnzN/0KsuiibqF+F1Fd9qxFzD1BUnYSd8JfULxTwg==", "dev": true, "license": "ISC" }, @@ -3207,6 +2955,17 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-toolkit": { + "version": "1.46.1", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.46.1.tgz", + "integrity": "sha512-5eNtXOs3tbfxXOj04tjjseeWkRWaoCjdEI+96DgwzZoe6c9juL49pXlzAFTI72aWC9Y8p7168g6XIKjh7k6pyQ==", + "dev": true, + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -3283,18 +3042,18 @@ } }, "node_modules/expect": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz", - "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz", + "integrity": "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==", "dev": true, "license": "MIT", "dependencies": { - "@jest/expect-utils": "30.2.0", + "@jest/expect-utils": "30.3.0", "@jest/get-type": "30.1.0", - "jest-matcher-utils": "30.2.0", - "jest-message-util": "30.2.0", - "jest-mock": "30.2.0", - "jest-util": "30.2.0" + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-util": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -3341,35 +3100,18 @@ "bser": "2.1.1" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/find-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", - "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^7.2.0", - "path-exists": "^5.0.0", - "unicorn-magic": "^0.1.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/foreground-child": { @@ -3455,27 +3197,27 @@ } }, "node_modules/git-raw-commits": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", - "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-5.0.1.tgz", + "integrity": "sha512-Y+csSm2GD/PCSh6Isd/WiMjNAydu0VBiG9J7EdQsNA5P9uXvLayqjmTsNlK5Gs9IhblFZqOU0yid5Il5JPoLiQ==", "dev": true, "license": "MIT", "dependencies": { - "dargs": "^8.0.0", - "meow": "^12.0.1", - "split2": "^4.0.0" + "@conventional-changelog/git-client": "^2.6.0", + "meow": "^13.0.0" }, "bin": { - "git-raw-commits": "cli.mjs" + "git-raw-commits": "src/cli.js" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/glob": { "version": "10.5.0", "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", "dependencies": { @@ -3494,16 +3236,16 @@ } }, "node_modules/global-directory": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", - "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-5.0.0.tgz", + "integrity": "sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w==", "dev": true, "license": "MIT", "dependencies": { - "ini": "4.1.1" + "ini": "6.0.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3517,9 +3259,9 @@ "license": "ISC" }, "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "version": "4.7.9", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.9.tgz", + "integrity": "sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3723,13 +3465,13 @@ "license": "ISC" }, "node_modules/ini": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", - "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", + "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", "dev": true, "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/is-arrayish": { @@ -3759,16 +3501,6 @@ "node": ">=6" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -3779,12 +3511,25 @@ "node": ">=8" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" }, "node_modules/is-stream": { "version": "2.0.1", @@ -3799,19 +3544,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-text-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", - "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "text-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -3907,16 +3639,16 @@ } }, "node_modules/jest": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz", - "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.3.0.tgz", + "integrity": "sha512-AkXIIFcaazymvey2i/+F94XRnM6TsVLZDhBMLsd1Sf/W0wzsvvpjeyUrCZD6HGG4SDYPgDJDBKeiJTBb10WzMg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.2.0", - "@jest/types": "30.2.0", + "@jest/core": "30.3.0", + "@jest/types": "30.3.0", "import-local": "^3.2.0", - "jest-cli": "30.2.0" + "jest-cli": "30.3.0" }, "bin": { "jest": "bin/jest.js" @@ -3934,14 +3666,14 @@ } }, "node_modules/jest-changed-files": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz", - "integrity": "sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.3.0.tgz", + "integrity": "sha512-B/7Cny6cV5At6M25EWDgf9S617lHivamL8vl6KEpJqkStauzcG4e+WPfDgMMF+H4FVH4A2PLRyvgDJan4441QA==", "dev": true, "license": "MIT", "dependencies": { "execa": "^5.1.1", - "jest-util": "30.2.0", + "jest-util": "30.3.0", "p-limit": "^3.1.0" }, "engines": { @@ -3949,29 +3681,29 @@ } }, "node_modules/jest-circus": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.2.0.tgz", - "integrity": "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.3.0.tgz", + "integrity": "sha512-PyXq5szeSfR/4f1lYqCmmQjh0vqDkURUYi9N6whnHjlRz4IUQfMcXkGLeEoiJtxtyPqgUaUUfyQlApXWBSN1RA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/expect": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/types": "30.2.0", + "@jest/environment": "30.3.0", + "@jest/expect": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", "chalk": "^4.1.2", "co": "^4.6.0", "dedent": "^1.6.0", "is-generator-fn": "^2.1.0", - "jest-each": "30.2.0", - "jest-matcher-utils": "30.2.0", - "jest-message-util": "30.2.0", - "jest-runtime": "30.2.0", - "jest-snapshot": "30.2.0", - "jest-util": "30.2.0", + "jest-each": "30.3.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-runtime": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", "p-limit": "^3.1.0", - "pretty-format": "30.2.0", + "pretty-format": "30.3.0", "pure-rand": "^7.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" @@ -3980,43 +3712,23 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { "node": ">=10" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-circus/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4036,21 +3748,21 @@ "license": "MIT" }, "node_modules/jest-cli": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.2.0.tgz", - "integrity": "sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.3.0.tgz", + "integrity": "sha512-l6Tqx+j1fDXJEW5bqYykDQQ7mQg+9mhWXtnj+tQZrTWYHyHoi6Be8HPumDSA+UiX2/2buEgjA58iJzdj146uCw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/types": "30.2.0", + "@jest/core": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", "chalk": "^4.1.2", "exit-x": "^0.2.2", "import-local": "^3.2.0", - "jest-config": "30.2.0", - "jest-util": "30.2.0", - "jest-validate": "30.2.0", + "jest-config": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", "yargs": "^17.7.2" }, "bin": { @@ -4068,68 +3780,34 @@ } } }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-config": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.2.0.tgz", - "integrity": "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.3.0.tgz", + "integrity": "sha512-WPMAkMAtNDY9P/oKObtsRG/6KTrhtgPJoBTmk20uDn4Uy6/3EJnnaZJre/FMT1KVRx8cve1r7/FlMIOfRVWL4w==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.27.4", "@jest/get-type": "30.1.0", "@jest/pattern": "30.0.1", - "@jest/test-sequencer": "30.2.0", - "@jest/types": "30.2.0", - "babel-jest": "30.2.0", + "@jest/test-sequencer": "30.3.0", + "@jest/types": "30.3.0", + "babel-jest": "30.3.0", "chalk": "^4.1.2", "ci-info": "^4.2.0", "deepmerge": "^4.3.1", - "glob": "^10.3.10", + "glob": "^10.5.0", "graceful-fs": "^4.2.11", - "jest-circus": "30.2.0", + "jest-circus": "30.3.0", "jest-docblock": "30.2.0", - "jest-environment-node": "30.2.0", + "jest-environment-node": "30.3.0", "jest-regex-util": "30.0.1", - "jest-resolve": "30.2.0", - "jest-runner": "30.2.0", - "jest-util": "30.2.0", - "jest-validate": "30.2.0", - "micromatch": "^4.0.8", + "jest-resolve": "30.3.0", + "jest-runner": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", "parse-json": "^5.2.0", - "pretty-format": "30.2.0", + "pretty-format": "30.3.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -4153,43 +3831,23 @@ } } }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { "node": ">=10" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-config/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4209,58 +3867,38 @@ "license": "MIT" }, "node_modules/jest-diff": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz", - "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz", + "integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/diff-sequences": "30.0.1", + "@jest/diff-sequences": "30.3.0", "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "pretty-format": "30.2.0" + "pretty-format": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { "node": ">=10" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-diff/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4293,59 +3931,39 @@ } }, "node_modules/jest-each": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.2.0.tgz", - "integrity": "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.3.0.tgz", + "integrity": "sha512-V8eMndg/aZ+3LnCJgSm13IxS5XSBM22QSZc9BtPK8Dek6pm+hfUNfwBdvsB3d342bo1q7wnSkC38zjX259qZNA==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "chalk": "^4.1.2", - "jest-util": "30.2.0", - "pretty-format": "30.2.0" + "jest-util": "30.3.0", + "pretty-format": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { "node": ">=10" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-each/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4365,16 +3983,14 @@ "license": "MIT" }, "node_modules/jest-environment-jsdom": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-30.2.0.tgz", - "integrity": "sha512-zbBTiqr2Vl78pKp/laGBREYzbZx9ZtqPjOK4++lL4BNDhxRnahg51HtoDrk9/VjIy9IthNEWdKVd7H5bqBhiWQ==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-30.3.0.tgz", + "integrity": "sha512-RLEOJy6ip1lpw0yqJ8tB3i88FC7VBz7i00Zvl2qF71IdxjS98gC9/0SPWYIBVXHm5hgCYK0PAlSlnHGGy9RoMg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/environment-jsdom-abstract": "30.2.0", - "@types/jsdom": "^21.1.7", - "@types/node": "*", + "@jest/environment": "30.3.0", + "@jest/environment-jsdom-abstract": "30.3.0", "jsdom": "^26.1.0" }, "engines": { @@ -4390,40 +4006,40 @@ } }, "node_modules/jest-environment-node": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.2.0.tgz", - "integrity": "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.3.0.tgz", + "integrity": "sha512-4i6HItw/JSiJVsC5q0hnKIe/hbYfZLVG9YJ/0pU9Hz2n/9qZe3Rhn5s5CUZA5ORZlcdT/vmAXRMyONXJwPrmYQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/fake-timers": "30.2.0", - "@jest/types": "30.2.0", + "@jest/environment": "30.3.0", + "@jest/fake-timers": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", - "jest-mock": "30.2.0", - "jest-util": "30.2.0", - "jest-validate": "30.2.0" + "jest-mock": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-haste-map": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.2.0.tgz", - "integrity": "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.3.0.tgz", + "integrity": "sha512-mMi2oqG4KRU0R9QEtscl87JzMXfUhbKaFqOxmjb2CKcbHcUGFrJCBWHmnTiUqi6JcnzoBlO4rWfpdl2k/RfLCA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", - "jest-util": "30.2.0", - "jest-worker": "30.2.0", - "micromatch": "^4.0.8", + "jest-util": "30.3.0", + "jest-worker": "30.3.0", + "picomatch": "^4.0.3", "walker": "^1.0.8" }, "engines": { @@ -4434,23 +4050,36 @@ } }, "node_modules/jest-leak-detector": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz", - "integrity": "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.3.0.tgz", + "integrity": "sha512-cuKmUUGIjfXZAiGJ7TbEMx0bcqNdPPI6P1V+7aF+m/FUJqFDxkFR4JqkTu8ZOiU5AaX/x0hZ20KaaIPXQzbMGQ==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "pretty-format": "30.2.0" + "pretty-format": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4470,58 +4099,38 @@ "license": "MIT" }, "node_modules/jest-matcher-utils": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", - "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz", + "integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "jest-diff": "30.2.0", - "pretty-format": "30.2.0" + "jest-diff": "30.3.0", + "pretty-format": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { "node": ">=10" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4541,19 +4150,19 @@ "license": "MIT" }, "node_modules/jest-message-util": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", - "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz", + "integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", - "micromatch": "^4.0.8", - "pretty-format": "30.2.0", + "picomatch": "^4.0.3", + "pretty-format": "30.3.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -4561,43 +4170,23 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { "node": ">=10" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4617,15 +4206,15 @@ "license": "MIT" }, "node_modules/jest-mock": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz", - "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz", + "integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "@types/node": "*", - "jest-util": "30.2.0" + "jest-util": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -4660,18 +4249,18 @@ } }, "node_modules/jest-resolve": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.2.0.tgz", - "integrity": "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.3.0.tgz", + "integrity": "sha512-NRtTAHQlpd15F9rUR36jqwelbrDV/dY4vzNte3S2kxCKUJRYNd5/6nTSbYiak1VX5g8IoFF23Uj5TURkUW8O5g==", "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.2.0", + "jest-haste-map": "30.3.0", "jest-pnp-resolver": "^1.2.3", - "jest-util": "30.2.0", - "jest-validate": "30.2.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", "slash": "^3.0.0", "unrs-resolver": "^1.7.11" }, @@ -4680,79 +4269,46 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz", - "integrity": "sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.3.0.tgz", + "integrity": "sha512-9ev8s3YN6Hsyz9LV75XUwkCVFlwPbaFn6Wp75qnI0wzAINYWY8Fb3+6y59Rwd3QaS3kKXffHXsZMziMavfz/nw==", "dev": true, "license": "MIT", "dependencies": { "jest-regex-util": "30.0.1", - "jest-snapshot": "30.2.0" + "jest-snapshot": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-runner": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.2.0.tgz", - "integrity": "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.3.0.tgz", + "integrity": "sha512-gDv6C9LGKWDPLia9TSzZwf4h3kMQCqyTpq+95PODnTRDO0g9os48XIYYkS6D236vjpBir2fF63YmJFtqkS5Duw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.2.0", - "@jest/environment": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/console": "30.3.0", + "@jest/environment": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", "chalk": "^4.1.2", "emittery": "^0.13.1", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", "jest-docblock": "30.2.0", - "jest-environment-node": "30.2.0", - "jest-haste-map": "30.2.0", - "jest-leak-detector": "30.2.0", - "jest-message-util": "30.2.0", - "jest-resolve": "30.2.0", - "jest-runtime": "30.2.0", - "jest-util": "30.2.0", - "jest-watcher": "30.2.0", - "jest-worker": "30.2.0", + "jest-environment-node": "30.3.0", + "jest-haste-map": "30.3.0", + "jest-leak-detector": "30.3.0", + "jest-message-util": "30.3.0", + "jest-resolve": "30.3.0", + "jest-runtime": "30.3.0", + "jest-util": "30.3.0", + "jest-watcher": "30.3.0", + "jest-worker": "30.3.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -4760,66 +4316,33 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-runtime": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.2.0.tgz", - "integrity": "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.3.0.tgz", + "integrity": "sha512-CgC+hIBJbuh78HEffkhNKcbXAytQViplcl8xupqeIWyKQF50kCQA8J7GeJCkjisC6hpnC9Muf8jV5RdtdFbGng==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/fake-timers": "30.2.0", - "@jest/globals": "30.2.0", + "@jest/environment": "30.3.0", + "@jest/fake-timers": "30.3.0", + "@jest/globals": "30.3.0", "@jest/source-map": "30.0.1", - "@jest/test-result": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", "chalk": "^4.1.2", "cjs-module-lexer": "^2.1.0", "collect-v8-coverage": "^1.0.2", - "glob": "^10.3.10", + "glob": "^10.5.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.2.0", - "jest-message-util": "30.2.0", - "jest-mock": "30.2.0", + "jest-haste-map": "30.3.0", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", "jest-regex-util": "30.0.1", - "jest-resolve": "30.2.0", - "jest-snapshot": "30.2.0", - "jest-util": "30.2.0", + "jest-resolve": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -4827,43 +4350,10 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-snapshot": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.2.0.tgz", - "integrity": "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.3.0.tgz", + "integrity": "sha512-f14c7atpb4O2DeNhwcvS810Y63wEn8O1HqK/luJ4F6M4NjvxmAKQwBUWjbExUtMxWJQ0wVgmCKymeJK6NZMnfQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4872,20 +4362,20 @@ "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", - "@jest/expect-utils": "30.2.0", + "@jest/expect-utils": "30.3.0", "@jest/get-type": "30.1.0", - "@jest/snapshot-utils": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/snapshot-utils": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", "babel-preset-current-node-syntax": "^1.2.0", "chalk": "^4.1.2", - "expect": "30.2.0", + "expect": "30.3.0", "graceful-fs": "^4.2.11", - "jest-diff": "30.2.0", - "jest-matcher-utils": "30.2.0", - "jest-message-util": "30.2.0", - "jest-util": "30.2.0", - "pretty-format": "30.2.0", + "jest-diff": "30.3.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", + "pretty-format": "30.3.0", "semver": "^7.7.2", "synckit": "^0.11.8" }, @@ -4893,43 +4383,23 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { "node": ">=10" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4949,137 +4419,71 @@ "license": "MIT" }, "node_modules/jest-util": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", - "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz", + "integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", - "picomatch": "^4.0.2" + "picomatch": "^4.0.3" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/jest-validate": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.2.0.tgz", - "integrity": "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.3.0.tgz", + "integrity": "sha512-I/xzC8h5G+SHCb2P2gWkJYrNiTbeL47KvKeW5EzplkyxzBRBw1ssSHlI/jXec0ukH2q7x2zAWQm7015iusg62Q==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", - "pretty-format": "30.2.0" + "pretty-format": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/jest-validate/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5088,79 +4492,46 @@ "react-is": "^18.3.1" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-watcher": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.2.0.tgz", - "integrity": "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "30.2.0", - "@jest/types": "30.2.0", - "@types/node": "*", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "emittery": "^0.13.1", - "jest-util": "30.2.0", - "string-length": "^4.0.2" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-validate/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-watcher": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.3.0.tgz", + "integrity": "sha512-PJ1d9ThtTR8aMiBWUdcownq9mDdLXsQzJayTk4kmaBRHKvwNQn+ANveuhEBUyNI2hR1TVhvQ8D5kHubbzBHR/w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", + "@types/node": "*", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "jest-util": "30.3.0", + "string-length": "^4.0.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-worker": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.2.0.tgz", - "integrity": "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==", + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.3.0.tgz", + "integrity": "sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", - "jest-util": "30.2.0", + "jest-util": "30.3.0", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" }, @@ -5294,33 +4665,6 @@ "node": ">=6" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -5339,42 +4683,18 @@ "license": "MIT" }, "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^6.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", - "dev": true, - "license": "MIT" - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -5382,48 +4702,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.mergewith": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.upperfirst": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", - "dev": true, - "license": "MIT" - }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -5479,13 +4757,13 @@ } }, "node_modules/meow": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, "license": "MIT", "engines": { - "node": ">=16.10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5498,20 +4776,6 @@ "dev": true, "license": "MIT" }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -5523,13 +4787,13 @@ } }, "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -5549,11 +4813,11 @@ } }, "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } @@ -5603,9 +4867,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "version": "2.0.38", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.38.tgz", + "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==", "dev": true, "license": "MIT" }, @@ -5682,45 +4946,29 @@ } }, "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^4.0.0" + "p-limit": "^2.2.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/p-locate/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "p-try": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate/node_modules/yocto-queue": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", - "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", - "dev": true, - "license": "MIT", "engines": { - "node": ">=12.20" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5789,13 +5037,13 @@ } }, "node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=8" } }, "node_modules/path-is-absolute": { @@ -5850,13 +5098,13 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -5885,72 +5133,6 @@ "node": ">=8" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/pretty-format": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", @@ -5967,6 +5149,20 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -5995,9 +5191,9 @@ "license": "MIT" }, "node_modules/react": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", - "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", + "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", "dev": true, "license": "MIT", "engines": { @@ -6005,9 +5201,9 @@ } }, "node_modules/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", + "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", "dev": true, "license": "MIT", "peer": true, @@ -6015,7 +5211,7 @@ "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.3" + "react": "^19.2.5" } }, "node_modules/react-is": { @@ -6105,9 +5301,9 @@ "peer": true }, "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -6184,16 +5380,6 @@ "source-map": "^0.6.0" } }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 10.x" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -6296,13 +5482,13 @@ } }, "node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -6423,9 +5609,9 @@ } }, "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "license": "MIT", "dependencies": { @@ -6437,7 +5623,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", "dependencies": { @@ -6456,9 +5642,9 @@ } }, "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -6468,30 +5654,10 @@ "node": "*" } }, - "node_modules/text-extensions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", - "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true, - "license": "MIT" - }, "node_modules/tinyexec": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", - "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz", + "integrity": "sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==", "dev": true, "license": "MIT", "engines": { @@ -6525,19 +5691,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/tough-cookie": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", @@ -6565,19 +5718,19 @@ } }, "node_modules/ts-jest": { - "version": "29.4.6", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.6.tgz", - "integrity": "sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==", + "version": "29.4.9", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.9.tgz", + "integrity": "sha512-LTb9496gYPMCqjeDLdPrKuXtncudeV1yRZnF4Wo5l3SFi0RYEnYRNgMrFIdg+FHvfzjCyQk1cLncWVqiSX+EvQ==", "dev": true, "license": "MIT", "dependencies": { "bs-logger": "^0.2.6", "fast-json-stable-stringify": "^2.1.0", - "handlebars": "^4.7.8", + "handlebars": "^4.7.9", "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", - "semver": "^7.7.3", + "semver": "^7.7.4", "type-fest": "^4.41.0", "yargs-parser": "^21.1.1" }, @@ -6594,7 +5747,7 @@ "babel-jest": "^29.0.0 || ^30.0.0", "jest": "^29.0.0 || ^30.0.0", "jest-util": "^29.0.0 || ^30.0.0", - "typescript": ">=4.3 <6" + "typescript": ">=4.3 <7" }, "peerDependenciesMeta": { "@babel/core": { @@ -6662,9 +5815,9 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -6690,25 +5843,12 @@ } }, "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", "dev": true, "license": "MIT" }, - "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/unrs-resolver": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", @@ -6921,22 +6061,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -7007,9 +6131,9 @@ } }, "node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index 65ebcde..d3239c2 100644 --- a/package.json +++ b/package.json @@ -50,19 +50,19 @@ "email": "contact@codesweetly.com" }, "devDependencies": { - "@commitlint/cli": "^20.3.1", - "@commitlint/config-conventional": "^20.3.1", - "@testing-library/react": "^16.2.0", - "@types/react": "^19.2.9", - "@types/react-dom": "^19.2.3", + "@commitlint/cli": "^20.5.2", + "@commitlint/config-conventional": "^20.5.0", + "@testing-library/react": "^16.3.2", + "@types/node": "^25.6.0", + "@types/react": "^19.2.14", "husky": "^9.1.7", - "jest": "^30.2.0", - "jest-environment-jsdom": "^30.2.0", - "react": "^19.2.3", - "ts-jest": "^29.2.5", - "typescript": "^5.7.3" + "jest": "^30.3.0", + "jest-environment-jsdom": "^30.3.0", + "react": "^19.2.4", + "ts-jest": "^29.4.9", + "typescript": "^6.0.3" }, "peerDependencies": { - "react": "^19.0.0" + "react": "^19.2.4" } } diff --git a/tsconfig.base.json b/tsconfig.base.json index b2cdc97..10dd5af 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -4,10 +4,9 @@ "compilerOptions": { "jsx": "react-jsx", "target": "es2018", - + "rewriteRelativeImportExtensions": true, "allowSyntheticDefaultImports": true, "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, "noEmitOnError": true, "noImplicitReturns": true, diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json index 16c9a1a..b4107f1 100644 --- a/tsconfig.cjs.json +++ b/tsconfig.cjs.json @@ -1,8 +1,10 @@ { "extends": "./tsconfig.base.json", "compilerOptions": { - "module": "commonjs", - "moduleResolution": "node10", - "outDir": "dist/cjs" + "module": "nodenext", + "moduleResolution": "nodenext", + "outDir": "dist/cjs", + "rootDir": "src", + "declaration": false } } diff --git a/tsconfig.esm.json b/tsconfig.esm.json index 4a31767..73c8521 100644 --- a/tsconfig.esm.json +++ b/tsconfig.esm.json @@ -4,6 +4,7 @@ "module": "es2020", "moduleResolution": "bundler", "outDir": "dist/esm", + "rootDir": "src", "declaration": true, "declarationDir": "dist/esm" } diff --git a/tsconfig.json b/tsconfig.json index fb96d43..e897a53 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,6 +2,7 @@ "extends": "./tsconfig.base.json", "compilerOptions": { "module": "nodenext", - "moduleResolution": "nodenext" + "moduleResolution": "nodenext", + "noEmit": true } } diff --git a/tsconfig.test.json b/tsconfig.test.json index 54caf30..59650f9 100644 --- a/tsconfig.test.json +++ b/tsconfig.test.json @@ -1,8 +1,9 @@ { "extends": "./tsconfig.base.json", "compilerOptions": { - "module": "commonjs", - "moduleResolution": "node10", - "noEmit": true + "module": "nodenext", + "moduleResolution": "nodenext", + "noEmit": true, + "isolatedModules": true } } From a5a06dd3e18ee714304c3e479281c57a2425a452 Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 19:49:02 +0100 Subject: [PATCH 13/29] style!: Make stylesheet available as a public asset --- package-lock.json | 12 ++- package.json | 5 +- src/ImageGallery.tsx | 189 +++++++++++++++++++++++++++---------------- src/style.css | 117 +++++++++++++++++++++++++++ tsconfig.base.json | 2 +- 5 files changed, 250 insertions(+), 75 deletions(-) create mode 100644 src/style.css diff --git a/package-lock.json b/package-lock.json index 7fc4678..6d280dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,8 +12,8 @@ "@commitlint/cli": "^20.5.2", "@commitlint/config-conventional": "^20.5.0", "@testing-library/react": "^16.3.2", - "@types/node": "^25.6.0", "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", "husky": "^9.1.7", "jest": "^30.3.0", "jest-environment-jsdom": "^30.3.0", @@ -1791,6 +1791,16 @@ "csstype": "^3.2.2" } }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", diff --git a/package.json b/package.json index d3239c2..ab4dbe4 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "require": "./dist/cjs/ImageGallery.js", "import": "./dist/esm/ImageGallery.js", "types": "./dist/esm/ImageGallery.d.ts" - } + }, + "./style.css": "./dist/style.css" }, "homepage": "https://codesweetly.com/react-image-grid-gallery", "author": "Oluwatobi Sofela (https://www.codesweetly.com)", @@ -53,8 +54,8 @@ "@commitlint/cli": "^20.5.2", "@commitlint/config-conventional": "^20.5.0", "@testing-library/react": "^16.3.2", - "@types/node": "^25.6.0", "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", "husky": "^9.1.7", "jest": "^30.3.0", "jest-environment-jsdom": "^30.3.0", diff --git a/src/ImageGallery.tsx b/src/ImageGallery.tsx index 6d03e9f..3628e09 100644 --- a/src/ImageGallery.tsx +++ b/src/ImageGallery.tsx @@ -4,7 +4,7 @@ import { ImageGalleryPropsType, ImgSrcInfoType, } from "./ImageGallery.types.jsx"; -import { imageGalleryStyles } from "./ImageGalleryStyles.js"; // .js extension is required for ESM build import resolution +// import { imageGalleryStyles } from "./ImageGalleryStyles.js"; // .js extension is required for ESM build import resolution export function ImageGallery({ imagesInfoArray, @@ -15,7 +15,7 @@ export function ImageGallery({ thumbnailBorder = "3px solid #fff", lazy = true, lazyFromIndex = 6, - customStyles = {}, + // customStyles = {}, }: ImageGalleryPropsType) { const [imgSrcInfo, setImgSrcInfo] = useState(null); const [slideNumber, setSlideNumber] = useState(1); @@ -25,27 +25,27 @@ export function ImageGallery({ const dialogRef = useRef(null); const lightboxRef = useRef(null); const activeThumbImgRef = useRef(null); - const defaultStyles = imageGalleryStyles( - columnCount, - columnWidth, - gapSize, - fixedCaption, - ); - const galleryStyles = { ...defaultStyles, ...customStyles }; - const galleryContainerStyle = galleryStyles.galleryContainerStyle; - const imageContainerStyle = galleryStyles.imageContainerStyle; - const imageBtnStyle = galleryStyles.imageBtnStyle; - const imageStyle = galleryStyles.imageStyle; - const imageCaptionStyle = galleryStyles.imageCaptionStyle; - const modalContainerStyle = galleryStyles.modalContainerStyle; - const modalSlideNumberStyle = galleryStyles.modalSlideNumberStyle; - const modalToolbarStyle = galleryStyles.modalToolbarStyle; - const modalToolbarBtnStyle = galleryStyles.modalToolbarBtnStyle; - const modalSlideShowSectionStyle = galleryStyles.modalSlideShowSectionStyle; - const modalThumbnailSectionStyle = galleryStyles.modalThumbnailSectionStyle; - const modalThumbImgsPodStyle = galleryStyles.modalThumbImgsPodStyle; - const modalImageStyle = galleryStyles.modalImageStyle; - const modalSlideBtnStyle = galleryStyles.modalSlideBtnStyle; + // const defaultStyles = imageGalleryStyles( + // columnCount, + // columnWidth, + // gapSize, + // fixedCaption, + // ); + // const galleryStyles = { ...defaultStyles, ...customStyles }; + // const galleryContainerStyle = galleryStyles.galleryContainerStyle; + // const imageContainerStyle = galleryStyles.imageContainerStyle; + // const imageBtnStyle = galleryStyles.imageBtnStyle; + // const imageStyle = galleryStyles.imageStyle; + // const imageCaptionStyle = galleryStyles.imageCaptionStyle; + // const modalContainerStyle = galleryStyles.modalContainerStyle; + // const modalSlideNumberStyle = galleryStyles.modalSlideNumberStyle; + // const modalToolbarStyle = galleryStyles.modalToolbarStyle; + // const modalToolbarBtnStyle = galleryStyles.modalToolbarBtnStyle; + // const modalSlideShowSectionStyle = galleryStyles.modalSlideShowSectionStyle; + // const modalThumbnailSectionStyle = galleryStyles.modalThumbnailSectionStyle; + // const modalThumbImgsPodStyle = galleryStyles.modalThumbImgsPodStyle; + // const modalImageStyle = galleryStyles.modalImageStyle; + // const modalSlideBtnStyle = galleryStyles.modalSlideBtnStyle; function handleImageContainerMouseEnter( e: React.MouseEvent, @@ -149,7 +149,8 @@ export function ImageGallery({ return (
-
+
{imagesInfoArray.map((imageInfo, index) => ( +
{showImageCards()} {lightBoxElement}
diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..f00b682 --- /dev/null +++ b/src/style.css @@ -0,0 +1,117 @@ +.image-btn { + border: none; + background: none; + margin: 0; + padding: 0; +} + +.image-container { + position: relative; +} + +.image { + width: 100%; + aspect-ratio: 1/1 auto; + background-color: #d3d3d3; + cursor: pointer; +} + +.image-caption { + position: absolute; + left: 0; + bottom: 0; + z-index: 1000; + width: 100%; + background-color: rgba(0, 0, 0, 0.5); + background: linear-gradient(180deg, rgba(25, 27, 38, 0), rgba(25, 27, 38, 1)); + padding: 16px; + font-size: 0.85rem; + text-align: center; + color: #fff; +} + +.modal-container { + outline: none; + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-color: rgba(0, 0, 0, 0.73); + -webkit-backdrop-filter: blur(5px); + backdrop-filter: blur(5px); +} + +.modal-slide-number { + z-index: 1; + position: absolute; + left: 0; + padding: 13px; + background-color: rgba(35, 35, 35, 0.73); + color: #fff; + font-size: 0.93rem; + transition: opacity 1s ease-in-out; + user-select: none; + -webkit-user-select: none; +} + +.modal-toolbar { + z-index: 1; + display: flex; + position: absolute; + right: 0; + align-items: center; + background-color: rgba(35, 35, 35, 0.73); + transition: opacity 1s ease-in-out; + cursor: pointer; +} + +.modal-toolbar-btn { + margin: 0; + border: none; + background: none; + padding: 13px; + color: #fff; + cursor: pointer; +} + +.modal-slide-show-section { + position: relative; + display: flex; + align-items: center; + justify-content: center; + width: inherit; + transition: height 0.7s linear; +} + +.modal-slide-btn { + position: absolute; + border: none; + margin-inline: 7px; + padding: 10px 15px; + background-color: rgba(35, 35, 35, 0.73); + color: #fff; + transition: opacity 1s ease-in-out; + cursor: pointer; + user-select: none; + -webkit-user-select: none; +} + +.modal-image { + margin: auto; + max-width: 100vw; + transition: height 0.7s linear; +} + +.modal-thumbnail-section { + overflow: hidden; + height: 20vh; + text-align: center; +} + +.modal-thumb-imgs-pod { + display: inline-flex; + height: inherit; + padding-block: 12px; + column-gap: 7px; +} diff --git a/tsconfig.base.json b/tsconfig.base.json index 10dd5af..ee6c444 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,6 +1,6 @@ { "include": ["src/**/*"], - "exclude": ["src/**/*.test.tsx"], + "exclude": ["src/**/*.test.tsx", "src/jestCryptoSetup.ts"], "compilerOptions": { "jsx": "react-jsx", "target": "es2018", From 82fb8f3d258995980ee00ac1d72d96464bff0cc0 Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 20:32:13 +0100 Subject: [PATCH 14/29] refactor!: Remove customStyles prop --- src/ImageGallery.tsx | 81 +--------------------- src/ImageGalleryStyles.ts | 140 -------------------------------------- src/style.css | 4 ++ 3 files changed, 7 insertions(+), 218 deletions(-) delete mode 100644 src/ImageGalleryStyles.ts diff --git a/src/ImageGallery.tsx b/src/ImageGallery.tsx index 3628e09..8eb4add 100644 --- a/src/ImageGallery.tsx +++ b/src/ImageGallery.tsx @@ -4,7 +4,6 @@ import { ImageGalleryPropsType, ImgSrcInfoType, } from "./ImageGallery.types.jsx"; -// import { imageGalleryStyles } from "./ImageGalleryStyles.js"; // .js extension is required for ESM build import resolution export function ImageGallery({ imagesInfoArray, @@ -15,7 +14,6 @@ export function ImageGallery({ thumbnailBorder = "3px solid #fff", lazy = true, lazyFromIndex = 6, - // customStyles = {}, }: ImageGalleryPropsType) { const [imgSrcInfo, setImgSrcInfo] = useState(null); const [slideNumber, setSlideNumber] = useState(1); @@ -25,27 +23,6 @@ export function ImageGallery({ const dialogRef = useRef(null); const lightboxRef = useRef(null); const activeThumbImgRef = useRef(null); - // const defaultStyles = imageGalleryStyles( - // columnCount, - // columnWidth, - // gapSize, - // fixedCaption, - // ); - // const galleryStyles = { ...defaultStyles, ...customStyles }; - // const galleryContainerStyle = galleryStyles.galleryContainerStyle; - // const imageContainerStyle = galleryStyles.imageContainerStyle; - // const imageBtnStyle = galleryStyles.imageBtnStyle; - // const imageStyle = galleryStyles.imageStyle; - // const imageCaptionStyle = galleryStyles.imageCaptionStyle; - // const modalContainerStyle = galleryStyles.modalContainerStyle; - // const modalSlideNumberStyle = galleryStyles.modalSlideNumberStyle; - // const modalToolbarStyle = galleryStyles.modalToolbarStyle; - // const modalToolbarBtnStyle = galleryStyles.modalToolbarBtnStyle; - // const modalSlideShowSectionStyle = galleryStyles.modalSlideShowSectionStyle; - // const modalThumbnailSectionStyle = galleryStyles.modalThumbnailSectionStyle; - // const modalThumbImgsPodStyle = galleryStyles.modalThumbImgsPodStyle; - // const modalImageStyle = galleryStyles.modalImageStyle; - // const modalSlideBtnStyle = galleryStyles.modalSlideBtnStyle; function handleImageContainerMouseEnter( e: React.MouseEvent, @@ -150,7 +127,6 @@ export function ImageGallery({
-
+
{imagesInfoArray.map((imageInfo, index) => ( Date: Thu, 30 Apr 2026 21:35:30 +0100 Subject: [PATCH 16/29] test: Remove customStyles test logic --- src/ImageGallery.test.tsx | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/ImageGallery.test.tsx b/src/ImageGallery.test.tsx index cb429da..c7a8693 100644 --- a/src/ImageGallery.test.tsx +++ b/src/ImageGallery.test.tsx @@ -121,16 +121,7 @@ test("image gallery works with only the imagesInfoArray prop", () => { render(); }); -test("image gallery works with custom styles and fixed caption", () => { - const imageContainerStyle: React.CSSProperties = { - margin: `0 0 0`, - position: "relative", - }; - - const imageBtnStyle: React.CSSProperties = { - border: "4px solid purple", - }; - +test("image gallery works with fixed caption", () => { render( { columnWidth={300} gapSize={2} fixedCaption={true} - customStyles={{ imageContainerStyle, imageBtnStyle }} />, ); }); From dc5f457ad09b9ab29e9c6b15567b46dce8051cf4 Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 21:42:36 +0100 Subject: [PATCH 17/29] docs: Document the predefined stylesheet's usage --- README.md | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 61d5a8a..9296ff1 100644 --- a/README.md +++ b/README.md @@ -46,8 +46,11 @@ pnpm add react-image-grid-gallery ## Usage +Import the library and its stylesheet, and use it as shown below: + ```js import { ImageGallery } from "react-image-grid-gallery"; +import "react-image-grid-gallery/style.css"; const imagesArray = [ { @@ -81,6 +84,10 @@ function App() { } ``` +### Why import the stylesheet? + +The components rely on predefined CSS classes for styling. Importing the stylesheet once ensures consistent application of these styles across all components. + ## Props @@ -174,31 +181,6 @@ function App() { **tip:** Use a negative number to lazy load all the images. - - - - - - - From bd663f578a9b2e1d642cc142ae9f7f5f423f4a8e Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 21:53:25 +0100 Subject: [PATCH 18/29] refactor: Change .jsx extension to .tsx --- src/ImageGallery.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ImageGallery.tsx b/src/ImageGallery.tsx index 6a4f178..dcb2752 100644 --- a/src/ImageGallery.tsx +++ b/src/ImageGallery.tsx @@ -3,7 +3,7 @@ import { flushSync } from "react-dom"; import { ImageGalleryPropsType, ImgSrcInfoType, -} from "./ImageGallery.types.jsx"; +} from "./ImageGallery.types.tsx"; export function ImageGallery({ imagesInfoArray, From 4823039fd370743fe2cbe871360caa22c6d72d8c Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Thu, 30 Apr 2026 23:12:11 +0100 Subject: [PATCH 19/29] chore: Remove customStyles prop --- src/ImageGallery.types.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ImageGallery.types.tsx b/src/ImageGallery.types.tsx index fb26bb5..b8a590d 100644 --- a/src/ImageGallery.types.tsx +++ b/src/ImageGallery.types.tsx @@ -33,7 +33,6 @@ export interface ImageGalleryPropsType { thumbnailBorder?: string; lazy?: boolean; lazyFromIndex?: number; - customStyles?: ImageGalleryStylesType; } export interface ImgSrcInfoType { From b8d017eeabbd0ca79b032b829ac5e7ef28eedb7d Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Fri, 1 May 2026 03:40:33 +0100 Subject: [PATCH 20/29] style: Remove ImageGalleryStylesType interface --- src/ImageGallery.types.tsx | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/src/ImageGallery.types.tsx b/src/ImageGallery.types.tsx index b8a590d..720ab0b 100644 --- a/src/ImageGallery.types.tsx +++ b/src/ImageGallery.types.tsx @@ -1,20 +1,3 @@ -export interface ImageGalleryStylesType { - galleryContainerStyle?: React.CSSProperties; - imageBtnStyle?: React.CSSProperties; - imageContainerStyle?: React.CSSProperties; - imageStyle?: React.CSSProperties; - imageCaptionStyle?: React.CSSProperties; - modalContainerStyle?: React.CSSProperties; - modalSlideNumberStyle?: React.CSSProperties; - modalToolbarStyle?: React.CSSProperties; - modalToolbarBtnStyle?: React.CSSProperties; - modalSlideShowSectionStyle?: React.CSSProperties; - modalThumbnailSectionStyle?: React.CSSProperties; - modalThumbImgsPodStyle?: React.CSSProperties; - modalImageStyle?: React.CSSProperties; - modalSlideBtnStyle?: React.CSSProperties; -} - export interface ImageGalleryPropsType { imagesInfoArray: Array<{ id: string | number; From 892fb00617913969aad08cb7613eb24f18539aea Mon Sep 17 00:00:00 2001 From: Oluwatobi Sofela Date: Fri, 1 May 2026 16:02:44 +0100 Subject: [PATCH 21/29] feat: Make image's onclick action customizable --- README.md | 48 +++++++++++++++++++++++++++++++------- src/ImageGallery.test.tsx | 19 +++++++++++++++ src/ImageGallery.tsx | 37 ++++++++++++++--------------- src/ImageGallery.types.tsx | 14 ++++++----- 4 files changed, 84 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 9296ff1..58f726f 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,7 @@ The components rely on predefined CSS classes for styling. Importing the stylesh + @@ -119,6 +120,7 @@ The components rely on predefined CSS classes for styling. Importing the stylesh + + + + + + - - - + + + + + + + + @@ -159,18 +177,25 @@ The components rely on predefined CSS classes for styling. Importing the stylesh + - - - - + + + + + + @@ -184,6 +209,13 @@ The components rely on predefined CSS classes for styling. Importing the stylesh + + + + + + +
customStylesImageGalleryStylesType{} - -(**Optional**) Custom styles to override the following element's default styles: - -- Gallery container: `galleryContainerStyle` -- Gallery image button: `imageBtnStyle` -- Gallery image container: `imageContainerStyle` -- Gallery image element: `imageStyle` -- Gallery image caption: `imageCaptionStyle` -- Modal container: `modalContainerStyle` -- Modal slide number: `modalSlideNumberStyle` -- Modal toolbar: `modalToolbarStyle` -- Modal toolbar button: `modalToolbarBtnStyle` -- Modal slideshow section: `modalSlideShowSectionStyle` -- Modal thumbnail section: `modalThumbnailSectionStyle` -- Modal thumbnail images container: `modalThumbImgsPodStyle` -- Modal image element: `modalImageStyle` -- Modal slide button: `modalSlideBtnStyle` -
imagesInfoArray array
@@ -129,6 +131,7 @@ The components rely on predefined CSS classes for styling. Importing the stylesh "auto" (Optional) The number of columns.
@@ -139,16 +142,31 @@ The components rely on predefined CSS classes for styling. Importing the stylesh 230 (Optional) The minimum width of the gallery's columns.
customizeImageClickActionfunction() => {} -[`gapSize`](https://codesweetly.com/css-gap-property) +(**Optional**) A function to be executed when an image is clicked, if `enableDefaultLightbox` is `false`. This allows you to implement your own custom lightbox or any other action on image click. + +**note:** This feature is not compatible with the Astro framework, as [Astro does not support passing functions to hydrated components](https://docs.astro.build/en/guides/framework-components/#passing-props-to-framework-components). number24(Optional) The gallery's gap size.
enableDefaultLightboxbooleantrue + +(**Optional**) Specify whether to use the packageโ€™s default lightbox. If set to `false`, you can use the `customizeImageClickAction` prop to implement your own lightbox or any other action when an image is clicked. + +
fixedCaption boolean
thumbnailBorderstring"3px solid #fff"(Optional) The thumbnail's border style. + +[`gapSize`](https://codesweetly.com/css-gap-property) + +number24(Optional) The gallery's gap size.
lazy boolean true (Optional) Specify whether to lazy load images.
lazyFromIndex number
thumbnailBorderstring"3px solid #fff"(Optional) The thumbnail's border style.
diff --git a/src/ImageGallery.test.tsx b/src/ImageGallery.test.tsx index c7a8693..f4ee6a2 100644 --- a/src/ImageGallery.test.tsx +++ b/src/ImageGallery.test.tsx @@ -151,3 +151,22 @@ test("image gallery works with lazy loading", () => { />, ); }); + +test("image gallery works without lightbox", () => { + render( + , + ); +}); + +test("users can customize image click action", () => { + render( + console.log("You clicked an image!")} + />, + ); +}); diff --git a/src/ImageGallery.tsx b/src/ImageGallery.tsx index dcb2752..28e9a2c 100644 --- a/src/ImageGallery.tsx +++ b/src/ImageGallery.tsx @@ -6,14 +6,16 @@ import { } from "./ImageGallery.types.tsx"; export function ImageGallery({ - imagesInfoArray, columnCount = "auto", columnWidth = 230, - gapSize = 24, + customizeImageClickAction = () => {}, + enableDefaultLightbox = true, fixedCaption = false, - thumbnailBorder = "3px solid #fff", + gapSize = 24, + imagesInfoArray, lazy = true, lazyFromIndex = 6, + thumbnailBorder = "3px solid #fff", }: ImageGalleryPropsType) { const [imgSrcInfo, setImgSrcInfo] = useState(null); const [slideNumber, setSlideNumber] = useState(1); @@ -122,21 +124,23 @@ export function ImageGallery({ function showImageCards() { const imageElementsArray = imagesInfoArray.map((imageInfo, index) => { + function handleImageClick() { + enableDefaultLightbox + ? openLightboxOnSlide( + index + 1, + imageInfo.src, + imageInfo.srcSet, + imageInfo.mediaSizes, + ) + : customizeImageClickAction(); + } if (imageInfo.id) { return ( - - - - -
- -
- fixedCaption ? undefined : updateCaptionOpacity(e, "1") - } - onMouseLeave={(e) => - fixedCaption ? undefined : updateCaptionOpacity(e, "0") - } - > - {imagesData[slideNumber - {imagesData[slideNumber - 1].caption ? ( -
- {imagesData[slideNumber - 1].caption} -
- ) : ( - "" - )} -
- + + + + +
- {SvgElement( - , - )} - -
-
-
- {imagesData.map((imageData, index) => ( + +
+ fixedCaption ? undefined : updateCaptionOpacity(e, "1") + } + onMouseLeave={(e) => + fixedCaption ? undefined : updateCaptionOpacity(e, "0") + } + > {imageData.alt} scrollImage(true, 0, index)} + className="cs-rigg-modal-image" + style={{ maxHeight: showThumbnails ? "80vh" : "100vh" }} /> - ))} -
-
- - - ); + {imageData.caption ? ( +
+
{imageData.caption}
+ {imageData?.cta?.href && imageData?.cta?.text && ( + + )} +
+ ) : ( + "" + )} + + +
+
+
+ {imagesData.map((imageData, index) => ( + {imageData.alt} scrollImage(true, 0, index)} + /> + ))} +
+
+ + + ); + } useEffect(() => { function handleFullscreenChange() { @@ -341,7 +355,7 @@ export function ImageGallery({ }} > {showImageCards()} - {lightBoxElement} + {enableDefaultLightbox && showLightBox()}
); } diff --git a/src/ImageGallery.types.tsx b/src/ImageGallery.types.tsx index 0935ce3..ec08868 100644 --- a/src/ImageGallery.types.tsx +++ b/src/ImageGallery.types.tsx @@ -2,6 +2,12 @@ export interface ImageDataType { id: string | number; alt: string; caption?: string; + cta?: { + href: string; + target: string; + rel: string; + text: string; + }; src: string; gridSrc?: string; thumbSrc?: string;