From 914ad1734e4d379a5036eb05a041e40acb02b049 Mon Sep 17 00:00:00 2001 From: Nara Kasbergen Kwon <855115+xiehan@users.noreply.github.com> Date: Wed, 28 Aug 2024 15:08:18 +0200 Subject: [PATCH] chore(deps)!: increase minimum required version of Projen to 0.85 (#169) --- .eslintrc.json | 2 +- .github/workflows/build.yml | 3 + .github/workflows/pull-request-lint.yml | 1 - .github/workflows/release.yml | 9 +- .github/workflows/upgrade-main.yml | 2 + .npmignore | 1 + .projen/deps.json | 8 +- .projen/tasks.json | 11 +- .projenrc.ts | 4 +- API.md | 98 +++++++++- README.md | 1 + examples/hybrid-module/.eslintrc.json | 2 +- .../hybrid-module/.github/workflows/build.yml | 17 +- .../.github/workflows/pull-request-lint.yml | 3 +- .../.github/workflows/release.yml | 21 +- .../.github/workflows/upgrade-main.yml | 12 +- examples/hybrid-module/.npmignore | 1 + examples/hybrid-module/.projen/deps.json | 4 +- examples/hybrid-module/.projen/tasks.json | 11 +- examples/hybrid-module/package.json | 14 +- examples/hybrid-module/yarn.lock | 153 +++++++-------- examples/terraform-module/.eslintrc.json | 2 +- .../.github/workflows/build.yml | 17 +- .../.github/workflows/pull-request-lint.yml | 3 +- .../.github/workflows/release.yml | 21 +- .../.github/workflows/upgrade-main.yml | 12 +- examples/terraform-module/.npmignore | 1 + examples/terraform-module/.projen/deps.json | 4 +- examples/terraform-module/.projen/tasks.json | 11 +- examples/terraform-module/package.json | 14 +- examples/terraform-module/yarn.lock | 153 +++++++-------- package.json | 18 +- test/__snapshots__/hybrid-module.test.ts.snap | 74 ++++--- .../terraform-module.test.ts.snap | 180 +++++++++++------- yarn.lock | 161 +++++++--------- 35 files changed, 598 insertions(+), 451 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index b017cf4..afcba93 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -76,7 +76,7 @@ } } ], - "no-duplicate-imports": [ + "import/no-duplicates": [ "error" ], "no-shadow": [ diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 58d5fd2..e22a041 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,12 +32,14 @@ jobs: run: |- git add . git diff --staged --patch --exit-code > .repo.patch || echo "self_mutation_happened=true" >> $GITHUB_OUTPUT + working-directory: ./ - name: Upload patch if: steps.self_mutation.outputs.self_mutation_happened uses: actions/upload-artifact@89ef406dd8d7e03cfd12d9e0a4a378f454709029 with: name: .repo.patch path: .repo.patch + overwrite: true - name: Fail build on mutation if: steps.self_mutation.outputs.self_mutation_happened run: |- @@ -52,6 +54,7 @@ jobs: with: name: build-artifact path: dist + overwrite: true self-mutation: needs: build runs-on: ubuntu-latest diff --git a/.github/workflows/pull-request-lint.yml b/.github/workflows/pull-request-lint.yml index f7e6d3f..af9b7a7 100644 --- a/.github/workflows/pull-request-lint.yml +++ b/.github/workflows/pull-request-lint.yml @@ -26,4 +26,3 @@ jobs: fix chore requireScope: false - githubBaseUrl: ${{ github.api_url }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b06ca96..c882c48 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -56,9 +56,12 @@ jobs: with: name: build-artifact path: dist + overwrite: true release_github: name: Publish to GitHub Releases - needs: release + needs: + - release + - release_npm runs-on: ubuntu-latest permissions: contents: write @@ -83,13 +86,14 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_REPOSITORY: ${{ github.repository }} - GITHUB_REF: ${{ github.ref }} + GITHUB_REF: ${{ github.sha }} run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.md -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi release_npm: name: Publish to npm needs: release runs-on: ubuntu-latest permissions: + id-token: write contents: read if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: @@ -116,5 +120,6 @@ jobs: env: NPM_DIST_TAG: latest NPM_REGISTRY: registry.npmjs.org + NPM_CONFIG_PROVENANCE: "true" NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: npx -p publib@latest publib-npm diff --git a/.github/workflows/upgrade-main.yml b/.github/workflows/upgrade-main.yml index 1c08e65..ddae574 100644 --- a/.github/workflows/upgrade-main.yml +++ b/.github/workflows/upgrade-main.yml @@ -27,12 +27,14 @@ jobs: run: |- git add . git diff --staged --patch --exit-code > .repo.patch || echo "patch_created=true" >> $GITHUB_OUTPUT + working-directory: ./ - name: Upload patch if: steps.create_patch.outputs.patch_created uses: actions/upload-artifact@89ef406dd8d7e03cfd12d9e0a4a378f454709029 with: name: .repo.patch path: .repo.patch + overwrite: true pr: name: Create Pull Request needs: upgrade diff --git a/.npmignore b/.npmignore index 80be219..68d93fe 100644 --- a/.npmignore +++ b/.npmignore @@ -29,3 +29,4 @@ projenrc .copywrite.hcl /.gitattributes /.projenrc.ts +/projenrc diff --git a/.projen/deps.json b/.projen/deps.json index 1651c12..7abefc1 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -23,12 +23,12 @@ }, { "name": "@typescript-eslint/eslint-plugin", - "version": "^6", + "version": "^7", "type": "build" }, { "name": "@typescript-eslint/parser", - "version": "^6", + "version": "^7", "type": "build" }, { @@ -106,7 +106,7 @@ }, { "name": "projen", - "version": "^0.79.3", + "version": "^0.85.0", "type": "build" }, { @@ -139,7 +139,7 @@ }, { "name": "projen", - "version": ">= 0.79.3", + "version": ">= 0.85.0", "type": "peer" } ], diff --git a/.projen/tasks.json b/.projen/tasks.json index bc30b26..4a0d277 100644 --- a/.projen/tasks.json +++ b/.projen/tasks.json @@ -180,7 +180,12 @@ "description": "Creates the distribution package", "steps": [ { - "exec": "if [ ! -z ${CI} ]; then rsync -a . .repo --exclude .git --exclude node_modules && rm -rf dist && mv .repo dist; else npx projen package-all; fi" + "exec": "rsync -a . .repo --exclude .git --exclude node_modules && rm -rf dist && mv .repo dist", + "condition": "node -e \"if (!process.env.CI) process.exit(1)\"" + }, + { + "spawn": "package-all", + "condition": "node -e \"if (process.env.CI) process.exit(1)\"" } ] }, @@ -303,13 +308,13 @@ }, "steps": [ { - "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=@types/change-case,@types/fs-extra,@types/glob,@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,comment-json,constructs,eslint-config-prettier,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-prettier,eslint,fs-extra,glob,jest,jest-junit,jsii-diff,jsii-docgen,jsii-pacmak,prettier,projen,standard-version,ts-jest,change-case" + "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=@types/change-case,@types/fs-extra,@types/glob,@types/jest,comment-json,eslint-config-prettier,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-prettier,fs-extra,glob,jest,jsii-diff,jsii-docgen,jsii-pacmak,prettier,ts-jest,change-case" }, { "exec": "yarn install --check-files" }, { - "exec": "yarn upgrade @types/change-case @types/fs-extra @types/glob @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser comment-json constructs eslint-config-prettier eslint-import-resolver-typescript eslint-plugin-import eslint-plugin-prettier eslint fs-extra glob jest jest-junit jsii-diff jsii-docgen jsii-pacmak prettier projen standard-version ts-jest change-case" + "exec": "yarn upgrade @types/change-case @types/fs-extra @types/glob @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser comment-json constructs eslint-config-prettier eslint-import-resolver-typescript eslint-plugin-import eslint-plugin-prettier eslint fs-extra glob jest jest-junit jsii-diff jsii-docgen jsii-pacmak jsii-rosetta jsii prettier projen standard-version ts-jest ts-node typescript change-case" }, { "exec": "npx projen" diff --git a/.projenrc.ts b/.projenrc.ts index 563fedb..e9d31cd 100644 --- a/.projenrc.ts +++ b/.projenrc.ts @@ -60,12 +60,12 @@ project.tsconfig?.exclude?.push("src/exampleCode/**"); project.tsconfig?.exclude?.push("example/**"); project.tsconfig?.exclude?.push("examples/**"); -project.addPeerDeps("projen@>= 0.79.3", "constructs@^10.3.0"); +project.addPeerDeps("projen@>= 0.85.0", "constructs@^10.3.0"); project.addBundledDeps("change-case"); project.addDevDeps( "fs-extra", "glob", - "projen@^0.79.3", + "projen@^0.85.0", "@types/fs-extra", "@types/glob", "@types/change-case", diff --git a/API.md b/API.md index 12ccf48..c850b7f 100644 --- a/API.md +++ b/API.md @@ -3114,6 +3114,7 @@ const hybridModuleOptions: HybridModuleOptions = { ... } | maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | | minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | | npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | +| npmProvenance | boolean | Should provenance statements be generated when the package is published. | | npmRegistry | string | The host name of the npm registry to publish to. | | npmRegistryUrl | string | The base URL of the npm package registry. | | npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | @@ -3154,10 +3155,11 @@ const hybridModuleOptions: HybridModuleOptions = { ... } | artifactsDirectory | string | A directory which will contain build artifacts. | | autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | | buildWorkflow | boolean | Define a GitHub workflow for building PRs. | +| buildWorkflowOptions | projen.javascript.BuildWorkflowOptions | Options for PR build workflow. | | buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | | bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | | checkLicenses | projen.javascript.LicenseCheckerOptions | Configure which licenses should be deemed acceptable for use by dependencies. | -| codeCov | boolean | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. | +| codeCov | boolean | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`. | | codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | | copyrightOwner | string | License copyright owner. | | copyrightPeriod | string | The copyright years to put in the LICENSE file. | @@ -3981,6 +3983,27 @@ Access level of the npm package. --- +##### `npmProvenance`Optional + +```typescript +public readonly npmProvenance: boolean; +``` + +- *Type:* boolean +- *Default:* true for public packages, false otherwise + +Should provenance statements be generated when the package is published. + +A supported package manager is required to publish a package with npm provenance statements and +you will need to use a supported CI/CD provider. + +Note that the projen `Release` and `Publisher` components are using `publib` to publish packages, +which is using npm internally and supports provenance statements independently of the package manager used. + +> [https://docs.npmjs.com/generating-provenance-statements](https://docs.npmjs.com/generating-provenance-statements) + +--- + ##### ~~`npmRegistry`~~Optional - *Deprecated:* use `npmRegistryUrl` instead @@ -4558,7 +4581,21 @@ Define a GitHub workflow for building PRs. --- -##### `buildWorkflowTriggers`Optional +##### `buildWorkflowOptions`Optional + +```typescript +public readonly buildWorkflowOptions: BuildWorkflowOptions; +``` + +- *Type:* projen.javascript.BuildWorkflowOptions + +Options for PR build workflow. + +--- + +##### ~~`buildWorkflowTriggers`~~Optional + +- *Deprecated:* - Use `buildWorkflowOptions.workflowTriggers` ```typescript public readonly buildWorkflowTriggers: Triggers; @@ -4607,7 +4644,7 @@ public readonly codeCov: boolean; - *Type:* boolean - *Default:* false -Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. +Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`. --- @@ -4744,7 +4781,9 @@ Jest options. --- -##### `mutableBuild`Optional +##### ~~`mutableBuild`~~Optional + +- *Deprecated:* - Use `buildWorkflowOptions.mutableBuild` ```typescript public readonly mutableBuild: boolean; @@ -4848,7 +4887,7 @@ public readonly projenDevDependency: boolean; ``` - *Type:* boolean -- *Default:* true +- *Default:* true if not a subproject Indicates of "projen" should be installed as a devDependency. @@ -5697,6 +5736,7 @@ const terraformModuleOptions: TerraformModuleOptions = { ... } | maxNodeVersion | string | Minimum node.js version to require via `engines` (inclusive). | | minNodeVersion | string | Minimum Node.js version to require via package.json `engines` (inclusive). | | npmAccess | projen.javascript.NpmAccess | Access level of the npm package. | +| npmProvenance | boolean | Should provenance statements be generated when the package is published. | | npmRegistry | string | The host name of the npm registry to publish to. | | npmRegistryUrl | string | The base URL of the npm package registry. | | npmTokenSecret | string | GitHub secret which contains the NPM token to use when publishing packages. | @@ -5737,10 +5777,11 @@ const terraformModuleOptions: TerraformModuleOptions = { ... } | artifactsDirectory | string | A directory which will contain build artifacts. | | autoApproveUpgrades | boolean | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). | | buildWorkflow | boolean | Define a GitHub workflow for building PRs. | +| buildWorkflowOptions | projen.javascript.BuildWorkflowOptions | Options for PR build workflow. | | buildWorkflowTriggers | projen.github.workflows.Triggers | Build workflow triggers. | | bundlerOptions | projen.javascript.BundlerOptions | Options for `Bundler`. | | checkLicenses | projen.javascript.LicenseCheckerOptions | Configure which licenses should be deemed acceptable for use by dependencies. | -| codeCov | boolean | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. | +| codeCov | boolean | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`. | | codeCovTokenSecret | string | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. | | copyrightOwner | string | License copyright owner. | | copyrightPeriod | string | The copyright years to put in the LICENSE file. | @@ -6563,6 +6604,27 @@ Access level of the npm package. --- +##### `npmProvenance`Optional + +```typescript +public readonly npmProvenance: boolean; +``` + +- *Type:* boolean +- *Default:* true for public packages, false otherwise + +Should provenance statements be generated when the package is published. + +A supported package manager is required to publish a package with npm provenance statements and +you will need to use a supported CI/CD provider. + +Note that the projen `Release` and `Publisher` components are using `publib` to publish packages, +which is using npm internally and supports provenance statements independently of the package manager used. + +> [https://docs.npmjs.com/generating-provenance-statements](https://docs.npmjs.com/generating-provenance-statements) + +--- + ##### ~~`npmRegistry`~~Optional - *Deprecated:* use `npmRegistryUrl` instead @@ -7140,7 +7202,21 @@ Define a GitHub workflow for building PRs. --- -##### `buildWorkflowTriggers`Optional +##### `buildWorkflowOptions`Optional + +```typescript +public readonly buildWorkflowOptions: BuildWorkflowOptions; +``` + +- *Type:* projen.javascript.BuildWorkflowOptions + +Options for PR build workflow. + +--- + +##### ~~`buildWorkflowTriggers`~~Optional + +- *Deprecated:* - Use `buildWorkflowOptions.workflowTriggers` ```typescript public readonly buildWorkflowTriggers: Triggers; @@ -7189,7 +7265,7 @@ public readonly codeCov: boolean; - *Type:* boolean - *Default:* false -Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. +Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v4 A secret is required for private repos. Configured with `@codeCovTokenSecret`. --- @@ -7326,7 +7402,9 @@ Jest options. --- -##### `mutableBuild`Optional +##### ~~`mutableBuild`~~Optional + +- *Deprecated:* - Use `buildWorkflowOptions.mutableBuild` ```typescript public readonly mutableBuild: boolean; @@ -7430,7 +7508,7 @@ public readonly projenDevDependency: boolean; ``` - *Type:* boolean -- *Default:* true +- *Default:* true if not a subproject Indicates of "projen" should be installed as a devDependency. diff --git a/README.md b/README.md index f620f13..d40265e 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ By using the software in this repository, you acknowledge that: - `cdktf` >= 0.20.0 - `constructs` >= 10.3.0 +- `projen` >= 0.85.0 ## Usage diff --git a/examples/hybrid-module/.eslintrc.json b/examples/hybrid-module/.eslintrc.json index b017cf4..afcba93 100644 --- a/examples/hybrid-module/.eslintrc.json +++ b/examples/hybrid-module/.eslintrc.json @@ -76,7 +76,7 @@ } } ], - "no-duplicate-imports": [ + "import/no-duplicates": [ "error" ], "no-shadow": [ diff --git a/examples/hybrid-module/.github/workflows/build.yml b/examples/hybrid-module/.github/workflows/build.yml index 8d77af6..5710e11 100644 --- a/examples/hybrid-module/.github/workflows/build.yml +++ b/examples/hybrid-module/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: CI: "true" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} @@ -28,12 +28,14 @@ jobs: run: |- git add . git diff --staged --patch --exit-code > .repo.patch || echo "self_mutation_happened=true" >> $GITHUB_OUTPUT + working-directory: ./ - name: Upload patch if: steps.self_mutation.outputs.self_mutation_happened - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: .repo.patch path: .repo.patch + overwrite: true - name: Fail build on mutation if: steps.self_mutation.outputs.self_mutation_happened run: |- @@ -44,10 +46,11 @@ jobs: run: cd dist && getfacl -R . > permissions-backup.acl continue-on-error: true - name: Upload artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: build-artifact path: dist + overwrite: true self-mutation: needs: build runs-on: ubuntu-latest @@ -56,13 +59,13 @@ jobs: if: always() && needs.build.outputs.self_mutation_happened && !(github.event.pull_request.head.repo.full_name != github.repository) steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: token: ${{ secrets.PROJEN_GITHUB_TOKEN }} ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - name: Download patch - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: .repo.patch path: ${{ runner.temp }} @@ -85,11 +88,11 @@ jobs: permissions: {} if: "! needs.build.outputs.self_mutation_happened" steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist diff --git a/examples/hybrid-module/.github/workflows/pull-request-lint.yml b/examples/hybrid-module/.github/workflows/pull-request-lint.yml index 3c16c6d..2c1c658 100644 --- a/examples/hybrid-module/.github/workflows/pull-request-lint.yml +++ b/examples/hybrid-module/.github/workflows/pull-request-lint.yml @@ -17,7 +17,7 @@ jobs: permissions: pull-requests: write steps: - - uses: amannn/action-semantic-pull-request@v5.0.2 + - uses: amannn/action-semantic-pull-request@v5.4.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -26,4 +26,3 @@ jobs: fix chore requireScope: false - githubBaseUrl: ${{ github.api_url }} diff --git a/examples/hybrid-module/.github/workflows/release.yml b/examples/hybrid-module/.github/workflows/release.yml index dd6e7e9..ba44b89 100644 --- a/examples/hybrid-module/.github/workflows/release.yml +++ b/examples/hybrid-module/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: CI: "true" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set git identity @@ -46,23 +46,26 @@ jobs: continue-on-error: true - name: Upload artifact if: ${{ steps.git_remote.outputs.latest_commit == github.sha }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: build-artifact path: dist + overwrite: true release_github: name: Publish to GitHub Releases - needs: release + needs: + - release + - release_npm runs-on: ubuntu-latest permissions: contents: write if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -77,21 +80,22 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_REPOSITORY: ${{ github.repository }} - GITHUB_REF: ${{ github.ref }} + GITHUB_REF: ${{ github.sha }} run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.md -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi release_npm: name: Publish to npm needs: release runs-on: ubuntu-latest permissions: + id-token: write contents: read if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -110,5 +114,6 @@ jobs: env: NPM_DIST_TAG: latest NPM_REGISTRY: registry.npmjs.org + NPM_CONFIG_PROVENANCE: "true" NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: npx -p publib@latest publib-npm diff --git a/examples/hybrid-module/.github/workflows/upgrade-main.yml b/examples/hybrid-module/.github/workflows/upgrade-main.yml index 0e65db0..9fa1f28 100644 --- a/examples/hybrid-module/.github/workflows/upgrade-main.yml +++ b/examples/hybrid-module/.github/workflows/upgrade-main.yml @@ -15,7 +15,7 @@ jobs: patch_created: ${{ steps.create_patch.outputs.patch_created }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: main - name: Install dependencies @@ -27,12 +27,14 @@ jobs: run: |- git add . git diff --staged --patch --exit-code > .repo.patch || echo "patch_created=true" >> $GITHUB_OUTPUT + working-directory: ./ - name: Upload patch if: steps.create_patch.outputs.patch_created - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: .repo.patch path: .repo.patch + overwrite: true pr: name: Create Pull Request needs: upgrade @@ -42,11 +44,11 @@ jobs: if: ${{ needs.upgrade.outputs.patch_created }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: main - name: Download patch - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: .repo.patch path: ${{ runner.temp }} @@ -58,7 +60,7 @@ jobs: git config user.email "github-actions@github.com" - name: Create Pull Request id: create-pr - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v6 with: token: ${{ secrets.PROJEN_GITHUB_TOKEN }} commit-message: |- diff --git a/examples/hybrid-module/.npmignore b/examples/hybrid-module/.npmignore index af762e6..33a9351 100644 --- a/examples/hybrid-module/.npmignore +++ b/examples/hybrid-module/.npmignore @@ -25,3 +25,4 @@ tsconfig.tsbuildinfo !.jsii /.gitattributes /.projenrc.ts +/projenrc diff --git a/examples/hybrid-module/.projen/deps.json b/examples/hybrid-module/.projen/deps.json index 86a2867..fb87905 100644 --- a/examples/hybrid-module/.projen/deps.json +++ b/examples/hybrid-module/.projen/deps.json @@ -11,12 +11,12 @@ }, { "name": "@typescript-eslint/eslint-plugin", - "version": "^6", + "version": "^7", "type": "build" }, { "name": "@typescript-eslint/parser", - "version": "^6", + "version": "^7", "type": "build" }, { diff --git a/examples/hybrid-module/.projen/tasks.json b/examples/hybrid-module/.projen/tasks.json index 43491f9..0d5c71d 100644 --- a/examples/hybrid-module/.projen/tasks.json +++ b/examples/hybrid-module/.projen/tasks.json @@ -167,7 +167,12 @@ "description": "Creates the distribution package", "steps": [ { - "exec": "if [ ! -z ${CI} ]; then rsync -a . .repo --exclude .git --exclude node_modules && rm -rf dist && mv .repo dist; else npx projen package-all; fi" + "exec": "rsync -a . .repo --exclude .git --exclude node_modules && rm -rf dist && mv .repo dist", + "condition": "node -e \"if (!process.env.CI) process.exit(1)\"" + }, + { + "spawn": "package-all", + "condition": "node -e \"if (process.env.CI) process.exit(1)\"" } ] }, @@ -283,13 +288,13 @@ }, "steps": [ { - "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-config-prettier,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-prettier,eslint,jest,jest-junit,jsii-diff,jsii-docgen,jsii-pacmak,prettier,projen,standard-version,ts-jest" + "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=@types/jest,eslint-config-prettier,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-prettier,jest,jsii-diff,jsii-pacmak,prettier,projen,ts-jest" }, { "exec": "yarn install --check-files" }, { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-config-prettier eslint-import-resolver-typescript eslint-plugin-import eslint-plugin-prettier eslint jest jest-junit jsii-diff jsii-docgen jsii-pacmak prettier projen standard-version ts-jest" + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser cdktf-cli cdktf constructs eslint-config-prettier eslint-import-resolver-typescript eslint-plugin-import eslint-plugin-prettier eslint jest jest-junit jsii-diff jsii-docgen jsii-pacmak jsii-rosetta jsii prettier projen standard-version ts-jest ts-node typescript @cdktf/tf-module-stack" }, { "exec": "npx projen" diff --git a/examples/hybrid-module/package.json b/examples/hybrid-module/package.json index 1c2b4c2..3ac0069 100644 --- a/examples/hybrid-module/package.json +++ b/examples/hybrid-module/package.json @@ -37,8 +37,8 @@ "devDependencies": { "@types/jest": "^29", "@types/node": "^18", - "@typescript-eslint/eslint-plugin": "^6", - "@typescript-eslint/parser": "^6", + "@typescript-eslint/eslint-plugin": "^7", + "@typescript-eslint/parser": "^7", "cdktf": "0.20.0", "cdktf-cli": "~0.20.0", "constructs": "10.0.107", @@ -76,11 +76,17 @@ ], "main": "lib/index.js", "license": "Apache-2.0", + "publishConfig": { + "access": "public" + }, "version": "0.0.0", "jest": { + "coverageProvider": "v8", "testMatch": [ - "/src/**/__tests__/**/*.ts?(x)", - "/(test|src)/**/*(*.)@(spec|test).ts?(x)" + "/@(src|test)/**/*(*.)@(spec|test).ts?(x)", + "/@(src|test)/**/__tests__/**/*.ts?(x)", + "/@(projenrc)/**/*(*.)@(spec|test).ts?(x)", + "/@(projenrc)/**/__tests__/**/*.ts?(x)" ], "clearMocks": true, "collectCoverage": true, diff --git a/examples/hybrid-module/yarn.lock b/examples/hybrid-module/yarn.lock index 4bb6de6..259b420 100644 --- a/examples/hybrid-module/yarn.lock +++ b/examples/hybrid-module/yarn.lock @@ -519,7 +519,7 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": version "4.11.0" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== @@ -1314,11 +1314,6 @@ expect "^29.0.0" pretty-format "^29.0.0" -"@types/json-schema@^7.0.12": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" @@ -1381,11 +1376,6 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== -"@types/semver@^7.5.0": - version "7.5.8" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" - integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== - "@types/stack-utils@^2.0.0": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" @@ -1420,91 +1410,86 @@ resolved "https://registry.yarnpkg.com/@types/yoga-layout/-/yoga-layout-1.9.2.tgz#efaf9e991a7390dc081a0b679185979a83a9639a" integrity sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw== -"@typescript-eslint/eslint-plugin@^6": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" - integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== +"@typescript-eslint/eslint-plugin@^7": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" + integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/type-utils" "6.21.0" - "@typescript-eslint/utils" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/type-utils" "7.18.0" + "@typescript-eslint/utils" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" graphemer "^1.4.0" - ignore "^5.2.4" + ignore "^5.3.1" natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/parser@^6": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" - integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== +"@typescript-eslint/parser@^7": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0" + integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg== dependencies: - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" - integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== +"@typescript-eslint/scope-manager@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83" + integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA== dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" -"@typescript-eslint/type-utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" - integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== +"@typescript-eslint/type-utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" + integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== dependencies: - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/utils" "6.21.0" + "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/utils" "7.18.0" debug "^4.3.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/types@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" - integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== +"@typescript-eslint/types@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" + integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== -"@typescript-eslint/typescript-estree@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" - integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== +"@typescript-eslint/typescript-estree@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" + integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" - integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== +"@typescript-eslint/utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" + integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - semver "^7.5.4" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/typescript-estree" "7.18.0" -"@typescript-eslint/visitor-keys@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" - integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== +"@typescript-eslint/visitor-keys@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7" + integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg== dependencies: - "@typescript-eslint/types" "6.21.0" - eslint-visitor-keys "^3.4.1" + "@typescript-eslint/types" "7.18.0" + eslint-visitor-keys "^3.4.3" "@ungap/structured-clone@^1.2.0": version "1.2.0" @@ -3768,7 +3753,7 @@ ieee754@^1.1.13: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== @@ -5227,13 +5212,6 @@ minimatch@5.1.6, minimatch@^5.0.1, minimatch@^5.1.0: dependencies: brace-expansion "^2.0.1" -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -5248,6 +5226,13 @@ minimatch@^9.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -6144,7 +6129,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.1.1, semver@^7.3.4, semver@^7.5.3, semver@^7.5.4, semver@^7.6.3: +semver@^7.1.1, semver@^7.3.4, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -6674,7 +6659,7 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -ts-api-utils@^1.0.1: +ts-api-utils@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== diff --git a/examples/terraform-module/.eslintrc.json b/examples/terraform-module/.eslintrc.json index b017cf4..afcba93 100644 --- a/examples/terraform-module/.eslintrc.json +++ b/examples/terraform-module/.eslintrc.json @@ -76,7 +76,7 @@ } } ], - "no-duplicate-imports": [ + "import/no-duplicates": [ "error" ], "no-shadow": [ diff --git a/examples/terraform-module/.github/workflows/build.yml b/examples/terraform-module/.github/workflows/build.yml index 8d77af6..5710e11 100644 --- a/examples/terraform-module/.github/workflows/build.yml +++ b/examples/terraform-module/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: CI: "true" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} @@ -28,12 +28,14 @@ jobs: run: |- git add . git diff --staged --patch --exit-code > .repo.patch || echo "self_mutation_happened=true" >> $GITHUB_OUTPUT + working-directory: ./ - name: Upload patch if: steps.self_mutation.outputs.self_mutation_happened - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: .repo.patch path: .repo.patch + overwrite: true - name: Fail build on mutation if: steps.self_mutation.outputs.self_mutation_happened run: |- @@ -44,10 +46,11 @@ jobs: run: cd dist && getfacl -R . > permissions-backup.acl continue-on-error: true - name: Upload artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: build-artifact path: dist + overwrite: true self-mutation: needs: build runs-on: ubuntu-latest @@ -56,13 +59,13 @@ jobs: if: always() && needs.build.outputs.self_mutation_happened && !(github.event.pull_request.head.repo.full_name != github.repository) steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: token: ${{ secrets.PROJEN_GITHUB_TOKEN }} ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} - name: Download patch - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: .repo.patch path: ${{ runner.temp }} @@ -85,11 +88,11 @@ jobs: permissions: {} if: "! needs.build.outputs.self_mutation_happened" steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist diff --git a/examples/terraform-module/.github/workflows/pull-request-lint.yml b/examples/terraform-module/.github/workflows/pull-request-lint.yml index 3c16c6d..2c1c658 100644 --- a/examples/terraform-module/.github/workflows/pull-request-lint.yml +++ b/examples/terraform-module/.github/workflows/pull-request-lint.yml @@ -17,7 +17,7 @@ jobs: permissions: pull-requests: write steps: - - uses: amannn/action-semantic-pull-request@v5.0.2 + - uses: amannn/action-semantic-pull-request@v5.4.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -26,4 +26,3 @@ jobs: fix chore requireScope: false - githubBaseUrl: ${{ github.api_url }} diff --git a/examples/terraform-module/.github/workflows/release.yml b/examples/terraform-module/.github/workflows/release.yml index dd6e7e9..ba44b89 100644 --- a/examples/terraform-module/.github/workflows/release.yml +++ b/examples/terraform-module/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: CI: "true" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set git identity @@ -46,23 +46,26 @@ jobs: continue-on-error: true - name: Upload artifact if: ${{ steps.git_remote.outputs.latest_commit == github.sha }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: build-artifact path: dist + overwrite: true release_github: name: Publish to GitHub Releases - needs: release + needs: + - release + - release_npm runs-on: ubuntu-latest permissions: contents: write if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -77,21 +80,22 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_REPOSITORY: ${{ github.repository }} - GITHUB_REF: ${{ github.ref }} + GITHUB_REF: ${{ github.sha }} run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.md -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi release_npm: name: Publish to npm needs: release runs-on: ubuntu-latest permissions: + id-token: write contents: read if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -110,5 +114,6 @@ jobs: env: NPM_DIST_TAG: latest NPM_REGISTRY: registry.npmjs.org + NPM_CONFIG_PROVENANCE: "true" NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: npx -p publib@latest publib-npm diff --git a/examples/terraform-module/.github/workflows/upgrade-main.yml b/examples/terraform-module/.github/workflows/upgrade-main.yml index 0e65db0..9fa1f28 100644 --- a/examples/terraform-module/.github/workflows/upgrade-main.yml +++ b/examples/terraform-module/.github/workflows/upgrade-main.yml @@ -15,7 +15,7 @@ jobs: patch_created: ${{ steps.create_patch.outputs.patch_created }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: main - name: Install dependencies @@ -27,12 +27,14 @@ jobs: run: |- git add . git diff --staged --patch --exit-code > .repo.patch || echo "patch_created=true" >> $GITHUB_OUTPUT + working-directory: ./ - name: Upload patch if: steps.create_patch.outputs.patch_created - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: .repo.patch path: .repo.patch + overwrite: true pr: name: Create Pull Request needs: upgrade @@ -42,11 +44,11 @@ jobs: if: ${{ needs.upgrade.outputs.patch_created }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: main - name: Download patch - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: .repo.patch path: ${{ runner.temp }} @@ -58,7 +60,7 @@ jobs: git config user.email "github-actions@github.com" - name: Create Pull Request id: create-pr - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v6 with: token: ${{ secrets.PROJEN_GITHUB_TOKEN }} commit-message: |- diff --git a/examples/terraform-module/.npmignore b/examples/terraform-module/.npmignore index af762e6..33a9351 100644 --- a/examples/terraform-module/.npmignore +++ b/examples/terraform-module/.npmignore @@ -25,3 +25,4 @@ tsconfig.tsbuildinfo !.jsii /.gitattributes /.projenrc.ts +/projenrc diff --git a/examples/terraform-module/.projen/deps.json b/examples/terraform-module/.projen/deps.json index 3400bb8..6a657df 100644 --- a/examples/terraform-module/.projen/deps.json +++ b/examples/terraform-module/.projen/deps.json @@ -11,12 +11,12 @@ }, { "name": "@typescript-eslint/eslint-plugin", - "version": "^6", + "version": "^7", "type": "build" }, { "name": "@typescript-eslint/parser", - "version": "^6", + "version": "^7", "type": "build" }, { diff --git a/examples/terraform-module/.projen/tasks.json b/examples/terraform-module/.projen/tasks.json index 24e433c..24694ce 100644 --- a/examples/terraform-module/.projen/tasks.json +++ b/examples/terraform-module/.projen/tasks.json @@ -154,7 +154,12 @@ "description": "Creates the distribution package", "steps": [ { - "exec": "if [ ! -z ${CI} ]; then rsync -a . .repo --exclude .git --exclude node_modules && rm -rf dist && mv .repo dist; else npx projen package-all; fi" + "exec": "rsync -a . .repo --exclude .git --exclude node_modules && rm -rf dist && mv .repo dist", + "condition": "node -e \"if (!process.env.CI) process.exit(1)\"" + }, + { + "spawn": "package-all", + "condition": "node -e \"if (process.env.CI) process.exit(1)\"" } ] }, @@ -269,13 +274,13 @@ }, "steps": [ { - "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=@types/jest,@types/node,@typescript-eslint/eslint-plugin,@typescript-eslint/parser,constructs,eslint-config-prettier,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-prettier,eslint,jest,jest-junit,jsii-diff,jsii-docgen,jsii-pacmak,prettier,projen,standard-version,ts-jest" + "exec": "npx npm-check-updates@16 --upgrade --target=minor --peer --dep=dev,peer,prod,optional --filter=@types/jest,eslint-config-prettier,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-prettier,jest,jsii-diff,jsii-pacmak,prettier,projen,ts-jest" }, { "exec": "yarn install --check-files" }, { - "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser constructs eslint-config-prettier eslint-import-resolver-typescript eslint-plugin-import eslint-plugin-prettier eslint jest jest-junit jsii-diff jsii-docgen jsii-pacmak prettier projen standard-version ts-jest" + "exec": "yarn upgrade @types/jest @types/node @typescript-eslint/eslint-plugin @typescript-eslint/parser cdktf-cli cdktf constructs eslint-config-prettier eslint-import-resolver-typescript eslint-plugin-import eslint-plugin-prettier eslint jest jest-junit jsii-diff jsii-docgen jsii-pacmak jsii-rosetta jsii prettier projen standard-version ts-jest ts-node typescript" }, { "exec": "npx projen" diff --git a/examples/terraform-module/package.json b/examples/terraform-module/package.json index 44a1d40..6769ba9 100644 --- a/examples/terraform-module/package.json +++ b/examples/terraform-module/package.json @@ -36,8 +36,8 @@ "devDependencies": { "@types/jest": "^29", "@types/node": "^18", - "@typescript-eslint/eslint-plugin": "^6", - "@typescript-eslint/parser": "^6", + "@typescript-eslint/eslint-plugin": "^7", + "@typescript-eslint/parser": "^7", "cdktf": "0.20.0", "cdktf-cli": "~0.20.0", "constructs": "10.0.107", @@ -71,11 +71,17 @@ ], "main": "lib/index.js", "license": "Apache-2.0", + "publishConfig": { + "access": "public" + }, "version": "0.0.0", "jest": { + "coverageProvider": "v8", "testMatch": [ - "/src/**/__tests__/**/*.ts?(x)", - "/(test|src)/**/*(*.)@(spec|test).ts?(x)" + "/@(src|test)/**/*(*.)@(spec|test).ts?(x)", + "/@(src|test)/**/__tests__/**/*.ts?(x)", + "/@(projenrc)/**/*(*.)@(spec|test).ts?(x)", + "/@(projenrc)/**/__tests__/**/*.ts?(x)" ], "clearMocks": true, "collectCoverage": true, diff --git a/examples/terraform-module/yarn.lock b/examples/terraform-module/yarn.lock index c563a4a..fd13440 100644 --- a/examples/terraform-module/yarn.lock +++ b/examples/terraform-module/yarn.lock @@ -514,7 +514,7 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": version "4.11.0" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== @@ -1309,11 +1309,6 @@ expect "^29.0.0" pretty-format "^29.0.0" -"@types/json-schema@^7.0.12": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" @@ -1376,11 +1371,6 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== -"@types/semver@^7.5.0": - version "7.5.8" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" - integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== - "@types/stack-utils@^2.0.0": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" @@ -1415,91 +1405,86 @@ resolved "https://registry.yarnpkg.com/@types/yoga-layout/-/yoga-layout-1.9.2.tgz#efaf9e991a7390dc081a0b679185979a83a9639a" integrity sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw== -"@typescript-eslint/eslint-plugin@^6": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" - integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== +"@typescript-eslint/eslint-plugin@^7": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" + integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/type-utils" "6.21.0" - "@typescript-eslint/utils" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/type-utils" "7.18.0" + "@typescript-eslint/utils" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" graphemer "^1.4.0" - ignore "^5.2.4" + ignore "^5.3.1" natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/parser@^6": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" - integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== +"@typescript-eslint/parser@^7": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0" + integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg== dependencies: - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" - integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== +"@typescript-eslint/scope-manager@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83" + integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA== dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" -"@typescript-eslint/type-utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" - integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== +"@typescript-eslint/type-utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" + integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== dependencies: - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/utils" "6.21.0" + "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/utils" "7.18.0" debug "^4.3.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/types@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" - integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== +"@typescript-eslint/types@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" + integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== -"@typescript-eslint/typescript-estree@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" - integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== +"@typescript-eslint/typescript-estree@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" + integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" - integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== +"@typescript-eslint/utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" + integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - semver "^7.5.4" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/typescript-estree" "7.18.0" -"@typescript-eslint/visitor-keys@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" - integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== +"@typescript-eslint/visitor-keys@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7" + integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg== dependencies: - "@typescript-eslint/types" "6.21.0" - eslint-visitor-keys "^3.4.1" + "@typescript-eslint/types" "7.18.0" + eslint-visitor-keys "^3.4.3" "@ungap/structured-clone@^1.2.0": version "1.2.0" @@ -3763,7 +3748,7 @@ ieee754@^1.1.13: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== @@ -5222,13 +5207,6 @@ minimatch@5.1.6, minimatch@^5.0.1, minimatch@^5.1.0: dependencies: brace-expansion "^2.0.1" -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -5243,6 +5221,13 @@ minimatch@^9.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -6139,7 +6124,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.1.1, semver@^7.3.4, semver@^7.5.3, semver@^7.5.4, semver@^7.6.3: +semver@^7.1.1, semver@^7.3.4, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -6669,7 +6654,7 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -ts-api-utils@^1.0.1: +ts-api-utils@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== diff --git a/package.json b/package.json index f5d8b28..339238a 100644 --- a/package.json +++ b/package.json @@ -45,8 +45,8 @@ "@types/glob": "^7.2.0", "@types/jest": "^29", "@types/node": "^18", - "@typescript-eslint/eslint-plugin": "^6", - "@typescript-eslint/parser": "^6", + "@typescript-eslint/eslint-plugin": "^7", + "@typescript-eslint/parser": "^7", "comment-json": "^4.2.5", "constructs": "10.3.0", "eslint": "^8", @@ -64,7 +64,7 @@ "jsii-pacmak": "^1.102.0", "jsii-rosetta": "~5.4.0", "prettier": "^2.8.8", - "projen": "0.79.3", + "projen": "0.85.0", "standard-version": "^9", "ts-jest": "^29", "ts-node": "10.9.1", @@ -72,7 +72,7 @@ }, "peerDependencies": { "constructs": "^10.3.0", - "projen": ">= 0.79.3" + "projen": ">= 0.85.0" }, "dependencies": { "change-case": "^4.1.2" @@ -82,11 +82,17 @@ ], "main": "lib/index.js", "license": "MPL-2.0", + "publishConfig": { + "access": "public" + }, "version": "0.0.0", "jest": { + "coverageProvider": "v8", "testMatch": [ - "/src/**/__tests__/**/*.ts?(x)", - "/(test|src)/**/*(*.)@(spec|test).ts?(x)" + "/@(src|test)/**/*(*.)@(spec|test).ts?(x)", + "/@(src|test)/**/__tests__/**/*.ts?(x)", + "/@(projenrc)/**/*(*.)@(spec|test).ts?(x)", + "/@(projenrc)/**/__tests__/**/*.ts?(x)" ], "clearMocks": true, "collectCoverage": true, diff --git a/test/__snapshots__/hybrid-module.test.ts.snap b/test/__snapshots__/hybrid-module.test.ts.snap index 3fa49f5..59351ca 100644 --- a/test/__snapshots__/hybrid-module.test.ts.snap +++ b/test/__snapshots__/hybrid-module.test.ts.snap @@ -73,6 +73,9 @@ exports[`HybridModule snapshot: .eslintrc.json 1`] = ` "dot-notation": [ "error", ], + "import/no-duplicates": [ + "error", + ], "import/no-extraneous-dependencies": [ "error", { @@ -108,9 +111,6 @@ exports[`HybridModule snapshot: .eslintrc.json 1`] = ` "no-bitwise": [ "error", ], - "no-duplicate-imports": [ - "error", - ], "no-multiple-empty-lines": [ "error", ], @@ -191,7 +191,7 @@ jobs: CI: "true" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: \${{ github.event.pull_request.head.ref }} repository: \${{ github.event.pull_request.head.repo.full_name }} @@ -204,12 +204,14 @@ jobs: run: |- git add . git diff --staged --patch --exit-code > .repo.patch || echo "self_mutation_happened=true" >> $GITHUB_OUTPUT + working-directory: ./ - name: Upload patch if: steps.self_mutation.outputs.self_mutation_happened - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: .repo.patch path: .repo.patch + overwrite: true - name: Fail build on mutation if: steps.self_mutation.outputs.self_mutation_happened run: |- @@ -220,10 +222,11 @@ jobs: run: cd dist && getfacl -R . > permissions-backup.acl continue-on-error: true - name: Upload artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: build-artifact path: dist + overwrite: true self-mutation: needs: build runs-on: ubuntu-latest @@ -232,13 +235,13 @@ jobs: if: always() && needs.build.outputs.self_mutation_happened && !(github.event.pull_request.head.repo.full_name != github.repository) steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: token: \${{ secrets.PROJEN_GITHUB_TOKEN }} ref: \${{ github.event.pull_request.head.ref }} repository: \${{ github.event.pull_request.head.repo.full_name }} - name: Download patch - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: .repo.patch path: \${{ runner.temp }} @@ -261,11 +264,11 @@ jobs: permissions: {} if: "! needs.build.outputs.self_mutation_happened" steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -303,7 +306,7 @@ jobs: permissions: pull-requests: write steps: - - uses: amannn/action-semantic-pull-request@v5.0.2 + - uses: amannn/action-semantic-pull-request@v5.4.0 env: GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }} with: @@ -312,7 +315,6 @@ jobs: fix chore requireScope: false - githubBaseUrl: \${{ github.api_url }} " `; @@ -337,7 +339,7 @@ jobs: CI: "true" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set git identity @@ -365,23 +367,26 @@ jobs: continue-on-error: true - name: Upload artifact if: \${{ steps.git_remote.outputs.latest_commit == github.sha }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: build-artifact path: dist + overwrite: true release_github: name: Publish to GitHub Releases - needs: release + needs: + - release + - release_npm runs-on: ubuntu-latest permissions: contents: write if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -396,21 +401,22 @@ jobs: env: GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }} GITHUB_REPOSITORY: \${{ github.repository }} - GITHUB_REF: \${{ github.ref }} + GITHUB_REF: \${{ github.sha }} run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.md -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi release_npm: name: Publish to npm needs: release runs-on: ubuntu-latest permissions: + id-token: write contents: read if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -429,6 +435,7 @@ jobs: env: NPM_DIST_TAG: latest NPM_REGISTRY: registry.npmjs.org + NPM_CONFIG_PROVENANCE: "true" NPM_TOKEN: \${{ secrets.NPM_TOKEN }} run: npx -p publib@latest publib-npm " @@ -452,7 +459,7 @@ jobs: patch_created: \${{ steps.create_patch.outputs.patch_created }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: main - name: Install dependencies @@ -464,12 +471,14 @@ jobs: run: |- git add . git diff --staged --patch --exit-code > .repo.patch || echo "patch_created=true" >> $GITHUB_OUTPUT + working-directory: ./ - name: Upload patch if: steps.create_patch.outputs.patch_created - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: .repo.patch path: .repo.patch + overwrite: true pr: name: Create Pull Request needs: upgrade @@ -479,11 +488,11 @@ jobs: if: \${{ needs.upgrade.outputs.patch_created }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: main - name: Download patch - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: .repo.patch path: \${{ runner.temp }} @@ -495,7 +504,7 @@ jobs: git config user.email "github-actions@github.com" - name: Create Pull Request id: create-pr - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v6 with: token: \${{ secrets.PROJEN_GITHUB_TOKEN }} commit-message: |- @@ -618,6 +627,7 @@ tsconfig.tsbuildinfo !.jsii /.gitattributes /.projenrc.ts +/projenrc " `; @@ -854,8 +864,8 @@ exports[`HybridModule snapshot: package.json 1`] = ` "devDependencies": { "@types/jest": "*", "@types/node": "^18", - "@typescript-eslint/eslint-plugin": "^6", - "@typescript-eslint/parser": "^6", + "@typescript-eslint/eslint-plugin": "^7", + "@typescript-eslint/parser": "^7", "cdktf": "0.20.0", "cdktf-cli": "~0.20.0", "constructs": "10.0.107", @@ -887,6 +897,7 @@ exports[`HybridModule snapshot: package.json 1`] = ` "/terraform", "dist", ], + "coverageProvider": "v8", "coverageReporters": [ "json", "lcov", @@ -904,8 +915,10 @@ exports[`HybridModule snapshot: package.json 1`] = ` ], ], "testMatch": [ - "/src/**/__tests__/**/*.ts?(x)", - "/(test|src)/**/*(*.)@(spec|test).ts?(x)", + "/@(src|test)/**/*(*.)@(spec|test).ts?(x)", + "/@(src|test)/**/__tests__/**/*.ts?(x)", + "/@(projenrc)/**/*(*.)@(spec|test).ts?(x)", + "/@(projenrc)/**/__tests__/**/*.ts?(x)", ], "testPathIgnorePatterns": [ "/node_modules/", @@ -945,6 +958,9 @@ exports[`HybridModule snapshot: package.json 1`] = ` "cdktf": ">=0.20.0", "constructs": ">=10.0.107", }, + "publishConfig": { + "access": "public", + }, "repository": { "type": "git", "url": "github.com/DanielMSchmidt/my-module", diff --git a/test/__snapshots__/terraform-module.test.ts.snap b/test/__snapshots__/terraform-module.test.ts.snap index eb6d901..28162cd 100644 --- a/test/__snapshots__/terraform-module.test.ts.snap +++ b/test/__snapshots__/terraform-module.test.ts.snap @@ -21,7 +21,7 @@ jobs: CI: "true" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set git identity @@ -49,23 +49,27 @@ jobs: continue-on-error: true - name: Upload artifact if: \${{ steps.git_remote.outputs.latest_commit == github.sha }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: build-artifact path: dist + overwrite: true release_github: name: Publish to GitHub Releases - needs: release + needs: + - release + - release_npm + - release_pypi runs-on: ubuntu-latest permissions: contents: write if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -80,21 +84,22 @@ jobs: env: GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }} GITHUB_REPOSITORY: \${{ github.repository }} - GITHUB_REF: \${{ github.ref }} + GITHUB_REF: \${{ github.sha }} run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.md -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi release_npm: name: Publish to npm needs: release runs-on: ubuntu-latest permissions: + id-token: write contents: read if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -113,6 +118,7 @@ jobs: env: NPM_DIST_TAG: latest NPM_REGISTRY: my-company.com/artifactory/api/npm/dschmidt/ + NPM_CONFIG_PROVENANCE: "true" NPM_TOKEN: \${{ secrets.NPM_TOKEN }} run: npx -p publib@latest publib-npm release_pypi: @@ -123,14 +129,14 @@ jobs: contents: read if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: 3.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -175,7 +181,7 @@ jobs: CI: "true" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set git identity @@ -203,23 +209,27 @@ jobs: continue-on-error: true - name: Upload artifact if: \${{ steps.git_remote.outputs.latest_commit == github.sha }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: build-artifact path: dist + overwrite: true release_github: name: Publish to GitHub Releases - needs: release + needs: + - release + - release_npm + - release_maven runs-on: ubuntu-latest permissions: contents: write if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -234,7 +244,7 @@ jobs: env: GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }} GITHUB_REPOSITORY: \${{ github.repository }} - GITHUB_REF: \${{ github.ref }} + GITHUB_REF: \${{ github.sha }} run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.md -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi release_npm: name: Publish to npm @@ -245,11 +255,11 @@ jobs: packages: write if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -279,15 +289,15 @@ jobs: packages: write if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: - distribution: temurin - java-version: 11.x - - uses: actions/setup-node@v3 + distribution: corretto + java-version: "11" + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -333,7 +343,7 @@ jobs: CI: "true" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set git identity @@ -361,23 +371,29 @@ jobs: continue-on-error: true - name: Upload artifact if: \${{ steps.git_remote.outputs.latest_commit == github.sha }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: build-artifact path: dist + overwrite: true release_github: name: Publish to GitHub Releases - needs: release + needs: + - release + - release_npm + - release_maven + - release_pypi + - release_nuget runs-on: ubuntu-latest permissions: contents: write if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -392,21 +408,22 @@ jobs: env: GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }} GITHUB_REPOSITORY: \${{ github.repository }} - GITHUB_REF: \${{ github.ref }} + GITHUB_REF: \${{ github.sha }} run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.md -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi release_npm: name: Publish to npm needs: release runs-on: ubuntu-latest permissions: + id-token: write contents: read if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -425,6 +442,7 @@ jobs: env: NPM_DIST_TAG: latest NPM_REGISTRY: registry.npmjs.org + NPM_CONFIG_PROVENANCE: "true" NPM_TOKEN: \${{ secrets.NPM_TOKEN }} run: npx -p publib@latest publib-npm release_maven: @@ -435,15 +453,15 @@ jobs: contents: read if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: - distribution: temurin - java-version: 11.x - - uses: actions/setup-node@v3 + distribution: corretto + java-version: "11" + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -474,14 +492,14 @@ jobs: contents: read if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: 3.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -509,14 +527,14 @@ jobs: contents: read if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - - uses: actions/setup-dotnet@v3 + - uses: actions/setup-dotnet@v4 with: - dotnet-version: 3.x + dotnet-version: 6.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -611,6 +629,9 @@ exports[`TerraformModule snapshot: .eslintrc.json 1`] = ` "dot-notation": [ "error", ], + "import/no-duplicates": [ + "error", + ], "import/no-extraneous-dependencies": [ "error", { @@ -646,9 +667,6 @@ exports[`TerraformModule snapshot: .eslintrc.json 1`] = ` "no-bitwise": [ "error", ], - "no-duplicate-imports": [ - "error", - ], "no-multiple-empty-lines": [ "error", ], @@ -728,7 +746,7 @@ jobs: CI: "true" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: \${{ github.event.pull_request.head.ref }} repository: \${{ github.event.pull_request.head.repo.full_name }} @@ -741,12 +759,14 @@ jobs: run: |- git add . git diff --staged --patch --exit-code > .repo.patch || echo "self_mutation_happened=true" >> $GITHUB_OUTPUT + working-directory: ./ - name: Upload patch if: steps.self_mutation.outputs.self_mutation_happened - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: .repo.patch path: .repo.patch + overwrite: true - name: Fail build on mutation if: steps.self_mutation.outputs.self_mutation_happened run: |- @@ -757,10 +777,11 @@ jobs: run: cd dist && getfacl -R . > permissions-backup.acl continue-on-error: true - name: Upload artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: build-artifact path: dist + overwrite: true self-mutation: needs: build runs-on: ubuntu-latest @@ -769,13 +790,13 @@ jobs: if: always() && needs.build.outputs.self_mutation_happened && !(github.event.pull_request.head.repo.full_name != github.repository) steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: token: \${{ secrets.PROJEN_GITHUB_TOKEN }} ref: \${{ github.event.pull_request.head.ref }} repository: \${{ github.event.pull_request.head.repo.full_name }} - name: Download patch - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: .repo.patch path: \${{ runner.temp }} @@ -798,11 +819,11 @@ jobs: permissions: {} if: "! needs.build.outputs.self_mutation_happened" steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -840,7 +861,7 @@ jobs: permissions: pull-requests: write steps: - - uses: amannn/action-semantic-pull-request@v5.0.2 + - uses: amannn/action-semantic-pull-request@v5.4.0 env: GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }} with: @@ -849,7 +870,6 @@ jobs: fix chore requireScope: false - githubBaseUrl: \${{ github.api_url }} " `; @@ -874,7 +894,7 @@ jobs: CI: "true" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set git identity @@ -902,23 +922,26 @@ jobs: continue-on-error: true - name: Upload artifact if: \${{ steps.git_remote.outputs.latest_commit == github.sha }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: build-artifact path: dist + overwrite: true release_github: name: Publish to GitHub Releases - needs: release + needs: + - release + - release_npm runs-on: ubuntu-latest permissions: contents: write if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -933,21 +956,22 @@ jobs: env: GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }} GITHUB_REPOSITORY: \${{ github.repository }} - GITHUB_REF: \${{ github.ref }} + GITHUB_REF: \${{ github.sha }} run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.md -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi release_npm: name: Publish to npm needs: release runs-on: ubuntu-latest permissions: + id-token: write contents: read if: needs.release.outputs.tag_exists != 'true' && needs.release.outputs.latest_commit == github.sha steps: - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: 18.x - name: Download build artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: build-artifact path: dist @@ -966,6 +990,7 @@ jobs: env: NPM_DIST_TAG: latest NPM_REGISTRY: registry.npmjs.org + NPM_CONFIG_PROVENANCE: "true" NPM_TOKEN: \${{ secrets.NPM_TOKEN }} run: npx -p publib@latest publib-npm " @@ -989,7 +1014,7 @@ jobs: patch_created: \${{ steps.create_patch.outputs.patch_created }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: main - name: Install dependencies @@ -1001,12 +1026,14 @@ jobs: run: |- git add . git diff --staged --patch --exit-code > .repo.patch || echo "patch_created=true" >> $GITHUB_OUTPUT + working-directory: ./ - name: Upload patch if: steps.create_patch.outputs.patch_created - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: .repo.patch path: .repo.patch + overwrite: true pr: name: Create Pull Request needs: upgrade @@ -1016,11 +1043,11 @@ jobs: if: \${{ needs.upgrade.outputs.patch_created }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: main - name: Download patch - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: .repo.patch path: \${{ runner.temp }} @@ -1032,7 +1059,7 @@ jobs: git config user.email "github-actions@github.com" - name: Create Pull Request id: create-pr - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v6 with: token: \${{ secrets.PROJEN_GITHUB_TOKEN }} commit-message: |- @@ -1148,6 +1175,7 @@ tsconfig.tsbuildinfo !.jsii /.gitattributes /.projenrc.ts +/projenrc " `; @@ -1381,8 +1409,8 @@ exports[`TerraformModule snapshot: package.json 1`] = ` "devDependencies": { "@types/jest": "*", "@types/node": "^18", - "@typescript-eslint/eslint-plugin": "^6", - "@typescript-eslint/parser": "^6", + "@typescript-eslint/eslint-plugin": "^7", + "@typescript-eslint/parser": "^7", "cdktf": "0.20.0", "cdktf-cli": "~0.20.0", "constructs": "10.0.107", @@ -1412,6 +1440,7 @@ exports[`TerraformModule snapshot: package.json 1`] = ` "coveragePathIgnorePatterns": [ "/node_modules/", ], + "coverageProvider": "v8", "coverageReporters": [ "json", "lcov", @@ -1429,8 +1458,10 @@ exports[`TerraformModule snapshot: package.json 1`] = ` ], ], "testMatch": [ - "/src/**/__tests__/**/*.ts?(x)", - "/(test|src)/**/*(*.)@(spec|test).ts?(x)", + "/@(src|test)/**/*(*.)@(spec|test).ts?(x)", + "/@(src|test)/**/__tests__/**/*.ts?(x)", + "/@(projenrc)/**/*(*.)@(spec|test).ts?(x)", + "/@(projenrc)/**/__tests__/**/*.ts?(x)", ], "testPathIgnorePatterns": [ "/node_modules/", @@ -1467,6 +1498,9 @@ exports[`TerraformModule snapshot: package.json 1`] = ` "cdktf": ">=0.20.0", "constructs": ">=10.0.107", }, + "publishConfig": { + "access": "public", + }, "repository": { "type": "git", "url": "github.com/DanielMSchmidt/my-module", diff --git a/yarn.lock b/yarn.lock index 3fa383e..6b7828c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -305,7 +305,7 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": version "4.11.0" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== @@ -820,11 +820,6 @@ expect "^29.0.0" pretty-format "^29.0.0" -"@types/json-schema@^7.0.12": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" @@ -859,11 +854,6 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== -"@types/semver@^7.5.0": - version "7.5.8" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" - integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== - "@types/stack-utils@^2.0.0": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" @@ -881,91 +871,86 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^6": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" - integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== +"@typescript-eslint/eslint-plugin@^7": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" + integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/type-utils" "6.21.0" - "@typescript-eslint/utils" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/type-utils" "7.18.0" + "@typescript-eslint/utils" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" graphemer "^1.4.0" - ignore "^5.2.4" + ignore "^5.3.1" natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/parser@^6": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" - integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== +"@typescript-eslint/parser@^7": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0" + integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg== dependencies: - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" - integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== +"@typescript-eslint/scope-manager@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83" + integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA== dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" -"@typescript-eslint/type-utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" - integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== +"@typescript-eslint/type-utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" + integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== dependencies: - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/utils" "6.21.0" + "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/utils" "7.18.0" debug "^4.3.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/types@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" - integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== +"@typescript-eslint/types@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" + integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== -"@typescript-eslint/typescript-estree@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" - integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== +"@typescript-eslint/typescript-estree@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" + integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" - integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== +"@typescript-eslint/utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" + integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - semver "^7.5.4" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/typescript-estree" "7.18.0" -"@typescript-eslint/visitor-keys@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" - integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== +"@typescript-eslint/visitor-keys@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7" + integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg== dependencies: - "@typescript-eslint/types" "6.21.0" - eslint-visitor-keys "^3.4.1" + "@typescript-eslint/types" "7.18.0" + eslint-visitor-keys "^3.4.3" "@ungap/structured-clone@^1.2.0": version "1.2.0" @@ -2737,7 +2722,7 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== @@ -3807,13 +3792,6 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -3828,6 +3806,13 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -4214,10 +4199,10 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -projen@0.79.3: - version "0.79.3" - resolved "https://registry.yarnpkg.com/projen/-/projen-0.79.3.tgz#385761af74b8df15f58eef21022eb7d3645b2690" - integrity sha512-nmYW1YXFNdZNNDlfHsT4sMfE5vMgMbpG061RT+gtuvGkhm+6nYd8+kWo6xk+2J/egoNvXyS5kEbh4fFc41I5hA== +projen@0.85.0: + version "0.85.0" + resolved "https://registry.yarnpkg.com/projen/-/projen-0.85.0.tgz#ce182db7e37a7784172a49d037693ce2a272d561" + integrity sha512-5W4+h/f5eDENFVeOdAGnuZQD88BSCNy7gxYUge9L87qlbvOR3cKF9fzEguFryGcBJKN6AtCjACsdMwHyNE4xPQ== dependencies: "@iarna/toml" "^2.2.5" case "^1.6.3" @@ -4228,7 +4213,7 @@ projen@0.79.3: fast-json-patch "^3.1.1" glob "^8" ini "^2.0.0" - semver "^7.5.4" + semver "^7.6.3" shx "^0.3.4" xmlbuilder2 "^3.1.1" yaml "^2.2.2" @@ -4886,7 +4871,7 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -ts-api-utils@^1.0.1: +ts-api-utils@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==