diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..af3ad12 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +/.yarn/** linguist-vendored +/.yarn/releases/* binary +/.yarn/plugins/**/* binary +/.pnp.* binary linguist-generated diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 4971a44..b1b6cd1 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,8 +1,29 @@ version: 2 + updates: - package-ecosystem: github-actions directory: '/' schedule: - interval: weekly + interval: monthly time: '04:00' timezone: America/New_York + + - package-ecosystem: npm + directory: '/' + versioning-strategy: increase + schedule: + interval: monthly + time: '04:00' + timezone: America/New_York + groups: + npm-major-upgrades: + update-types: + - 'major' + npm-minor-upgrades: + update-types: + - 'minor' + - 'patch' + ignore: + - dependency-name: 'eslint' + update-types: + - 'version-update:semver-major' diff --git a/.github/workflows/upgrade-deps.yml b/.github/workflows/upgrade-deps.yml deleted file mode 100644 index 4337494..0000000 --- a/.github/workflows/upgrade-deps.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Upgrade dependencies - -on: - workflow_dispatch: # Allow running on-demand - schedule: - # Every Monday at 8:00 UTC (4:00 Eastern) - - cron: '0 8 * * 1' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - upgrade: - name: Upgrade & Open Pull Request - runs-on: ubuntu-latest - env: - BRANCH_NAME: auto-dependency-upgrades - steps: - - uses: actions/checkout@v4 - with: - # Use a separate key so the resulting PR also runs GH Actions - # https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs - ssh-key: ${{ secrets.DEPLOY_KEY }} - - run: corepack enable - - uses: actions/setup-node@v4 - with: - node-version-file: .nvmrc - cache: yarn - - name: Upgrade dependencies - run: | - rm -f yarn.lock - yarn dlx yarn-upgrade-all - - name: Build - run: yarn build - - name: Detect changes - id: changes - run: echo "count=$(git status --porcelain=v1 2>/dev/null | wc -l)" >> $GITHUB_OUTPUT - - name: Commit & push changes - if: steps.changes.outputs.count > 0 - run: | - git config user.name github-actions - git config user.email github-actions@github.com - git add . - git commit -m "chore(deps): Automated dependency upgrades" - git push -f origin ${{ github.ref_name }}:$BRANCH_NAME - - name: Open pull request if needed - if: steps.changes.outputs.count > 0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - PR=$(gh pr list --head $BRANCH_NAME --json number -q '.[0].number') - if [ -z $PR ]; then - gh pr create \ - --head $BRANCH_NAME \ - --title "Automated dependency upgrades" \ - --body "Full log: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" - else - echo "Pull request already exists, won't create a new one." - fi diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 0000000..3186f3f --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/package.json b/package.json index 664df35..a9e4991 100644 --- a/package.json +++ b/package.json @@ -59,8 +59,8 @@ "devDependencies": { "@playwright/test": "^1.47.1", "@types/node": "*", - "@typescript-eslint/eslint-plugin": "^7.18.0", - "@typescript-eslint/parser": "^7.18.0", + "@typescript-eslint/eslint-plugin": "^8.6.0", + "@typescript-eslint/parser": "^8.6.0", "@vitest/coverage-istanbul": "^2.1.1", "eslint": "^8.57.1", "eslint-config-prettier": "^9.1.0", @@ -81,10 +81,5 @@ "resolutions": { "tslib": ">=2" }, - "yarn-upgrade-all": { - "ignore": [ - "@types/node" - ] - }, "packageManager": "yarn@4.5.0" } diff --git a/yarn.lock b/yarn.lock index af66d94..79332df 100644 --- a/yarn.lock +++ b/yarn.lock @@ -619,8 +619,8 @@ __metadata: dependencies: "@playwright/test": "npm:^1.47.1" "@types/node": "npm:*" - "@typescript-eslint/eslint-plugin": "npm:^7.18.0" - "@typescript-eslint/parser": "npm:^7.18.0" + "@typescript-eslint/eslint-plugin": "npm:^8.6.0" + "@typescript-eslint/parser": "npm:^8.6.0" "@vitest/coverage-istanbul": "npm:^2.1.1" eslint: "npm:^8.57.1" eslint-config-prettier: "npm:^9.1.0" @@ -835,54 +835,44 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0" +"@typescript-eslint/eslint-plugin@npm:^8.6.0": + version: 8.6.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.6.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.18.0" - "@typescript-eslint/type-utils": "npm:7.18.0" - "@typescript-eslint/utils": "npm:7.18.0" - "@typescript-eslint/visitor-keys": "npm:7.18.0" + "@typescript-eslint/scope-manager": "npm:8.6.0" + "@typescript-eslint/type-utils": "npm:8.6.0" + "@typescript-eslint/utils": "npm:8.6.0" + "@typescript-eslint/visitor-keys": "npm:8.6.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" ts-api-utils: "npm:^1.3.0" peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/2b37948fa1b0dab77138909dabef242a4d49ab93e4019d4ef930626f0a7d96b03e696cd027fa0087881c20e73be7be77c942606b4a76fa599e6b37f6985304c3 + checksum: 10c0/c777f01535b896d3092f9886a67ccf9e50bf9e0f581ffab607c5e95dbf3092299b0d9f3e6041b134d69059a6fa5691785940b81015f73bb9a0e9d1605f6442ea languageName: node linkType: hard -"@typescript-eslint/parser@npm:^7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/parser@npm:7.18.0" +"@typescript-eslint/parser@npm:^8.6.0": + version: 8.6.0 + resolution: "@typescript-eslint/parser@npm:8.6.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.18.0" - "@typescript-eslint/types": "npm:7.18.0" - "@typescript-eslint/typescript-estree": "npm:7.18.0" - "@typescript-eslint/visitor-keys": "npm:7.18.0" + "@typescript-eslint/scope-manager": "npm:8.6.0" + "@typescript-eslint/types": "npm:8.6.0" + "@typescript-eslint/typescript-estree": "npm:8.6.0" + "@typescript-eslint/visitor-keys": "npm:8.6.0" debug: "npm:^4.3.4" peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/370e73fca4278091bc1b657f85e7d74cd52b24257ea20c927a8e17546107ce04fbf313fec99aed0cc2a145ddbae1d3b12e9cc2c1320117636dc1281bcfd08059 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/scope-manager@npm:7.18.0" - dependencies: - "@typescript-eslint/types": "npm:7.18.0" - "@typescript-eslint/visitor-keys": "npm:7.18.0" - checksum: 10c0/038cd58c2271de146b3a594afe2c99290034033326d57ff1f902976022c8b0138ffd3cb893ae439ae41003b5e4bcc00cabf6b244ce40e8668f9412cc96d97b8e + checksum: 10c0/3f280d289b486359194d422d89df9896b3f10a6d45cdf851d1d5f3200489271a31ab503c127cb5656f9b0ad6d795dd708b960f21fb105750aac19f41f8f815d1 languageName: node linkType: hard @@ -896,27 +886,18 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/type-utils@npm:7.18.0" +"@typescript-eslint/type-utils@npm:8.6.0": + version: 8.6.0 + resolution: "@typescript-eslint/type-utils@npm:8.6.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.18.0" - "@typescript-eslint/utils": "npm:7.18.0" + "@typescript-eslint/typescript-estree": "npm:8.6.0" + "@typescript-eslint/utils": "npm:8.6.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" - peerDependencies: - eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/ad92a38007be620f3f7036f10e234abdc2fdc518787b5a7227e55fd12896dacf56e8b34578723fbf9bea8128df2510ba8eb6739439a3879eda9519476d5783fd - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/types@npm:7.18.0" - checksum: 10c0/eb7371ac55ca77db8e59ba0310b41a74523f17e06f485a0ef819491bc3dd8909bb930120ff7d30aaf54e888167e0005aa1337011f3663dc90fb19203ce478054 + checksum: 10c0/914b4637caa40c102117655a9b4451e0db611a61309ed39d6c57522655463c059f4dfd4e2d7ffdefcc9ab7533be21fb877b740c58f5be11f3530aa29f3d2cb62 languageName: node linkType: hard @@ -927,25 +908,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" - dependencies: - "@typescript-eslint/types": "npm:7.18.0" - "@typescript-eslint/visitor-keys": "npm:7.18.0" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - minimatch: "npm:^9.0.4" - semver: "npm:^7.6.0" - ts-api-utils: "npm:^1.3.0" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/0c7f109a2e460ec8a1524339479cf78ff17814d23c83aa5112c77fb345e87b3642616291908dcddea1e671da63686403dfb712e4a4435104f92abdfddf9aba81 - languageName: node - linkType: hard - "@typescript-eslint/typescript-estree@npm:8.6.0": version: 8.6.0 resolution: "@typescript-eslint/typescript-estree@npm:8.6.0" @@ -965,21 +927,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/utils@npm:7.18.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:7.18.0" - "@typescript-eslint/types": "npm:7.18.0" - "@typescript-eslint/typescript-estree": "npm:7.18.0" - peerDependencies: - eslint: ^8.56.0 - checksum: 10c0/a25a6d50eb45c514469a01ff01f215115a4725fb18401055a847ddf20d1b681409c4027f349033a95c4ff7138d28c3b0a70253dfe8262eb732df4b87c547bd1e - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": +"@typescript-eslint/utils@npm:8.6.0, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": version: 8.6.0 resolution: "@typescript-eslint/utils@npm:8.6.0" dependencies: @@ -993,16 +941,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" - dependencies: - "@typescript-eslint/types": "npm:7.18.0" - eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/538b645f8ff1d9debf264865c69a317074eaff0255e63d7407046176b0f6a6beba34a6c51d511f12444bae12a98c69891eb6f403c9f54c6c2e2849d1c1cb73c0 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:8.6.0": version: 8.6.0 resolution: "@typescript-eslint/visitor-keys@npm:8.6.0"