[AAE-46514] - Migration to PNPM (#11926)

* [AAE-46514] - using by default ignore-scripts and have a trusted list for those who are trusted

* [AAE-46514] - Improved the checks to cover more cases

* [AAE-46514] - Fixed copilot comments

* [AAE-46514] - OTher fixes

* [AAE-46514] - Fixing other improvements and comments

* [AAE-46514] - npmrc should be versioned to enforce the audit

* [AAE-46514] - Improved code

* [AAE-46514] - Removed the check on CI as we have other tools

* [AAE-46514] - Improved check, updated descriptions, skip check on CI as there is already Sonar

* [AAE-46514] - Reduced functions in smaller pieces

* [AAE-46514] - Migrating to Pnpm to increase safety

* [ci:force] - Checking

* [ci:force] - Fixed complexity of the scripts

* [ci:force] - Fixed complexity of the scripts

* [ci:force] - Fixed wrong typing on yml

* [ci:force] - Fixed sonar comments and added correct version to sha pinned action

* [ci:force] - Fixed cache hit for npmn

* [ci:force] - Improved eslint plugin so it can be built with standard action

* [ci:force] - Improved eslint plugin so it can be built with standard action

* [ci:force] - Added minimatch

* [ci:force] - Fixing issues

* [ci:force] - Removed 'run' as it is not needed

* [ci:force] - Using audit in place of custom scripts

* [ci:force] - Fixed vulnerabilities and removed custom scripts in favor of audit --critical

* [ci:force] - Added minimum time for publishing to install

* [ci:force] - Address issue with too new packages

* [ci:force] - Address issue with too new packages
This commit is contained in:
Vito Albano
2026-06-04 18:38:22 +01:00
committed by GitHub
parent faf9d3faac
commit 78661f11c5
19 changed files with 22512 additions and 37540 deletions
+10 -19
View File
@@ -1,11 +1,6 @@
name: 'Setup' name: 'Setup'
description: 'Initialize cache, env var load' description: 'Initialize cache, env var load'
inputs: inputs:
enable-node-modules-cache:
description: 'enable caching for node modules'
required: false
type: boolean
default: 'true'
cache-suffix: cache-suffix:
description: 'Suffix to make Nx cache key unique per job (e.g. matrix project name)' description: 'Suffix to make Nx cache key unique per job (e.g. matrix project name)'
required: false required: false
@@ -24,20 +19,19 @@ outputs:
npm-tag: npm-tag:
description: 'NPM tag' description: 'NPM tag'
value: ${{ steps.set-npm-tag.outputs.npm-tag }} value: ${{ steps.set-npm-tag.outputs.npm-tag }}
node-modules-cache-hit:
description: 'Whether node_modules cache was hit'
value: ${{ steps.node-modules-cache.outputs.cache-hit }}
runs: runs:
using: "composite" using: "composite"
steps: steps:
- name: Set consistent machine ID for Nx cache - name: Set consistent machine ID for Nx cache
shell: bash shell: bash
run: echo "nx-github-actions" | sudo tee /etc/machine-id > /dev/null run: echo "nx-github-actions" | sudo tee /etc/machine-id > /dev/null
- name: install NPM - name: Setup pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4.3.0
- name: Setup Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with: with:
node-version-file: '.nvmrc' node-version-file: '.nvmrc'
cache-dependency-path: package-lock.json cache: 'pnpm'
- name: get latest tag sha - name: get latest tag sha
if: ${{ inputs.full-setup == 'true' }} if: ${{ inputs.full-setup == 'true' }}
id: tag-sha id: tag-sha
@@ -46,15 +40,12 @@ runs:
if: ${{ inputs.full-setup == 'true' }} if: ${{ inputs.full-setup == 'true' }}
id: set-npm-tag id: set-npm-tag
uses: ./.github/actions/set-npm-tag uses: ./.github/actions/set-npm-tag
- name: Cache node modules - name: Install dependencies
id: node-modules-cache shell: bash
if: ${{ inputs.enable-node-modules-cache == 'true' }} run: pnpm install --frozen-lockfile
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 - name: Security audit
with: shell: bash
path: node_modules run: pnpm audit --audit-level=critical
key: ${{ runner.os }}-node-modules-${{ hashFiles('.nvmrc') }}-${{ hashFiles('package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-modules-${{ hashFiles('.nvmrc') }}-
- name: Restore nx cache - name: Restore nx cache
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with: with:
+1 -4
View File
@@ -28,13 +28,10 @@ jobs:
with: with:
cache-suffix: build cache-suffix: build
full-setup: 'false' full-setup: 'false'
- name: Install dependencies
if: ${{ steps.setup-env.outputs.node-modules-cache-hit != 'true' }}
run: npm ci
- name: Build affected libs - name: Build affected libs
env: env:
BASE_REF: ${{ inputs.base_ref }} BASE_REF: ${{ inputs.base_ref }}
run: npx nx affected --target=build --base=origin/$BASE_REF --head=HEAD --configuration=production --exclude=stories run: pnpm nx affected --target=build --base=origin/$BASE_REF --head=HEAD --configuration=production --exclude=stories
- name: Save nx cache - name: Save nx cache
if: ${{ success() }} if: ${{ success() }}
uses: ./.github/actions/save-nx-cache uses: ./.github/actions/save-nx-cache
+14 -17
View File
@@ -46,12 +46,18 @@ jobs:
- name: Ensure SHA pinned actions - name: Ensure SHA pinned actions
uses: hyland/github-actions-ensure-sha-pinned-actions@7d494b6b53e71f75194d74b4dd890a2266d060b5 # v2.0.0 uses: hyland/github-actions-ensure-sha-pinned-actions@7d494b6b53e71f75194d74b4dd890a2266d060b5 # v2.0.0
- name: Check package-lock.json version - name: Check pnpm-lock.yaml version
run: | run: |
if [[ $(jq '.lockfileVersion == 3' package-lock.json) == "true" ]] ; then if [[ -f "pnpm-lock.yaml" ]]; then
echo "package-lock.json has a correct version" LOCKFILE_VERSION=$(grep "^lockfileVersion:" pnpm-lock.yaml | cut -d"'" -f2)
if [[ "$LOCKFILE_VERSION" == "9.0" ]]; then
echo "pnpm-lock.yaml has correct version: $LOCKFILE_VERSION"
else
echo "pnpm-lock.yaml must be version 9.0, found: $LOCKFILE_VERSION"
exit 1
fi
else else
echo "package-lock must be version 3" echo "pnpm-lock.yaml is missing"
exit 1 exit 1
fi fi
@@ -174,13 +180,10 @@ jobs:
uses: ./.github/actions/setup uses: ./.github/actions/setup
with: with:
cache-suffix: setup cache-suffix: setup
- name: Install dependencies
if: ${{ steps.setup-env.outputs.node-modules-cache-hit != 'true' }}
run: npm ci
- name: Bundle - name: Bundle
run: | run: |
npm run bundle:js-api pnpm bundle:js-api
npm run bundle:cli pnpm bundle:cli
- name: Save nx cache - name: Save nx cache
if: ${{ success() }} if: ${{ success() }}
uses: ./.github/actions/save-nx-cache uses: ./.github/actions/save-nx-cache
@@ -203,13 +206,10 @@ jobs:
with: with:
cache-suffix: lint cache-suffix: lint
full-setup: 'false' full-setup: 'false'
- name: Install dependencies
if: ${{ steps.setup-env.outputs.node-modules-cache-hit != 'true' }}
run: npm ci
- name: Run lint - name: Run lint
env: env:
BASE_REF: ${{ github.base_ref || 'develop' }} BASE_REF: ${{ github.base_ref || 'develop' }}
run: npx nx affected --target=lint --base=origin/$BASE_REF --head=HEAD run: pnpm nx affected --target=lint --base=origin/$BASE_REF --head=HEAD
- name: Save nx cache - name: Save nx cache
if: ${{ success() }} if: ${{ success() }}
uses: ./.github/actions/save-nx-cache uses: ./.github/actions/save-nx-cache
@@ -239,14 +239,11 @@ jobs:
with: with:
cache-suffix: storybook cache-suffix: storybook
full-setup: 'false' full-setup: 'false'
- name: Install dependencies
if: ${{ steps.setup-env.outputs.node-modules-cache-hit != 'true' }}
run: npm ci
- name: Build Storybook - name: Build Storybook
env: env:
BASE_REF: ${{ github.base_ref || 'develop' }} BASE_REF: ${{ github.base_ref || 'develop' }}
run: | run: |
npx nx affected --target=build-storybook --base=origin/$BASE_REF --head=HEAD --configuration=ci pnpm nx affected --target=build-storybook --base=origin/$BASE_REF --head=HEAD --configuration=ci
- name: Save nx cache - name: Save nx cache
if: ${{ success() }} if: ${{ success() }}
uses: ./.github/actions/save-nx-cache uses: ./.github/actions/save-nx-cache
+7 -7
View File
@@ -57,9 +57,9 @@ jobs:
enable-node-modules-cache: false enable-node-modules-cache: false
- name: install - name: install
run: | run: |
npm ci pnpm install --frozen-lockfile
npm run bundle:js-api pnpm bundle:js-api
npm run bundle:cli pnpm bundle:cli
- uses: ./.github/actions/upload-node-modules-and-artifacts - uses: ./.github/actions/upload-node-modules-and-artifacts
release-npm: release-npm:
@@ -100,15 +100,15 @@ jobs:
setMigrations(); setMigrations();
- name: build libraries - name: build libraries
run: | run: |
npm run build:libs pnpm build:libs
npm run build:schematics pnpm build:schematics
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
name: release libraries GH registry name: release libraries GH registry
with: with:
node-version-file: '.nvmrc' node-version-file: '.nvmrc'
registry-url: 'https://npm.pkg.github.com' registry-url: 'https://npm.pkg.github.com'
scope: '@alfresco' scope: '@alfresco'
- run: npm run publish -- --tag=${{ steps.setup.outputs.npm-tag }} - run: pnpm publish -- --tag=${{ steps.setup.outputs.npm-tag }}
env: env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
@@ -117,7 +117,7 @@ jobs:
node-version-file: '.nvmrc' node-version-file: '.nvmrc'
registry-url: 'https://${{ vars.NPM_REGISTRY_ADDRESS }}' registry-url: 'https://${{ vars.NPM_REGISTRY_ADDRESS }}'
scope: '@alfresco' scope: '@alfresco'
- run: npm run publish -- --tag=${{ steps.setup.outputs.npm-tag }} - run: pnpm publish -- --tag=${{ steps.setup.outputs.npm-tag }}
create-git-tag: create-git-tag:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -5,9 +5,8 @@ on:
types: [opened, reopened, synchronize] types: [opened, reopened, synchronize]
paths: paths:
- "package.json" - "package.json"
- "package-lock.json" - "pnpm-lock.yaml"
- "**/package.json" - "**/package.json"
- "**/package-lock.json"
- "pom.xml" - "pom.xml"
- "**/pom.xml" - "**/pom.xml"
+2 -8
View File
@@ -26,16 +26,13 @@ jobs:
uses: ./.github/actions/setup uses: ./.github/actions/setup
with: with:
cache-suffix: test-matrix cache-suffix: test-matrix
- name: Install dependencies
if: ${{ steps.setup-env.outputs.node-modules-cache-hit != 'true' }}
run: npm ci
- name: Generate affected projects matrix - name: Generate affected projects matrix
id: set-matrix id: set-matrix
env: env:
BASE_REF: ${{ inputs.base_ref }} BASE_REF: ${{ inputs.base_ref }}
run: | run: |
echo "Base ref is $BASE_REF" echo "Base ref is $BASE_REF"
AFFECTED_UNIT=$(npx nx show projects --affected --target=test --base=origin/$BASE_REF --head=HEAD --select=projects --plain --exclude=cli,stories,eslint-angular) AFFECTED_UNIT=$(pnpm nx show projects --affected --target=test --base=origin/$BASE_REF --head=HEAD --select=projects --plain --exclude=cli,stories,eslint-angular)
echo "Affected projects for UNIT: $AFFECTED_UNIT" echo "Affected projects for UNIT: $AFFECTED_UNIT"
if [ -z "$AFFECTED_UNIT" ]; then if [ -z "$AFFECTED_UNIT" ]; then
@@ -72,14 +69,11 @@ jobs:
with: with:
cache-suffix: test-${{ matrix.project }} cache-suffix: test-${{ matrix.project }}
full-setup: 'false' full-setup: 'false'
- name: Install dependencies
if: ${{ steps.setup-env.outputs.node-modules-cache-hit != 'true' }}
run: npm ci
- name: Run unit tests for ${{ matrix.project }} - name: Run unit tests for ${{ matrix.project }}
env: env:
NODE_OPTIONS: "--max-old-space-size=5120" NODE_OPTIONS: "--max-old-space-size=5120"
run: | run: |
xvfb-run --auto-servernum npx nx run ${{ matrix.project }}:test xvfb-run --auto-servernum pnpm nx run ${{ matrix.project }}:test
- name: Save nx cache - name: Save nx cache
if: ${{ success() }} if: ${{ success() }}
uses: ./.github/actions/save-nx-cache uses: ./.github/actions/save-nx-cache
+1 -1
View File
@@ -8,7 +8,6 @@ bundles
dist dist
tmp tmp
temp temp
*.npmrc
.history .history
.ng_pkg_build/ .ng_pkg_build/
coverage/ coverage/
@@ -24,3 +23,4 @@ nxcache
.husky .husky
.cursor/rules/nx-rules.mdc .cursor/rules/nx-rules.mdc
.github/instructions/nx.instructions.md .github/instructions/nx.instructions.md
lib/eslint-angular/dist/
+1
View File
@@ -1,4 +1,5 @@
#!/bin/sh #!/bin/sh
export NODE_OPTIONS=--max_old_space_size=8192 export NODE_OPTIONS=--max_old_space_size=8192
lint-staged lint-staged
+5
View File
@@ -0,0 +1,5 @@
# Fail on high severity vulnerabilities during audit
audit-level=high
# Use exact versions to prevent unexpected updates
save-exact=true
+5
View File
@@ -0,0 +1,5 @@
{
"recommendations": [
"meterian.meterian-heidi"
]
}
+23
View File
@@ -21,6 +21,29 @@ for full details on what you may need to install before using ADF.
- [Node Version Manager](docs/tutorials/nvm.md) - [Node Version Manager](docs/tutorials/nvm.md)
- [CORS guide](ALFRESCOCORS.md) - [CORS guide](ALFRESCOCORS.md)
## Installation
This project uses **pnpm** for package management with built-in supply chain attack protection.
```bash
pnpm install # install all packages
pnpm run add <package> # add a new package (with security check)
```
### Supply Chain Security
**Layer 1: pnpm script blocking**
- All lifecycle scripts (postinstall, etc.) are blocked by default
- Only trusted packages in `pnpm-workspace.yaml` can run scripts
- Protects during `pnpm install` and `pnpm add`
**Layer 2: Security database check**
- `pnpm run add` checks packages against OSV and GitHub Advisory databases BEFORE installing
- Pre-commit hook blocks commits containing known malicious packages
**Layer 3: npm blocked**
- Running `npm install` will fail - enforces pnpm usage
## Components ## Components
You can find the sources for all ADF components in the [`lib`](/lib) folder. You can find the sources for all ADF components in the [`lib`](/lib) folder.
+1 -8
View File
@@ -1,8 +1 @@
require('ts-node').register({ module.exports = require('./dist/index.js');
compilerOptions: {
module: 'commonjs',
target: 'es2019',
},
});
module.exports = require('./index.ts');
+2 -9
View File
@@ -9,16 +9,9 @@
"executor": "@nx/js:tsc", "executor": "@nx/js:tsc",
"outputs": ["{options.outputPath}"], "outputs": ["{options.outputPath}"],
"options": { "options": {
"outputPath": "dist/libs/eslint-plugin-eslint-angular", "outputPath": "lib/eslint-angular/dist",
"main": "lib/eslint-angular/index.ts", "main": "lib/eslint-angular/index.ts",
"tsConfig": "lib/eslint-angular/tsconfig.lib.prod.json" "tsConfig": "lib/eslint-angular/tsconfig.lib.json"
},
"configurations": {
"production": {
"optimization": true,
"sourceMap": false,
"extractLicenses": true
}
} }
}, },
"lint": { "lint": {
@@ -41,7 +41,8 @@ const nodeToReport = (node: TSESTree.Node) => {
if (!ASTUtils.isProperty(node)) { if (!ASTUtils.isProperty(node)) {
return node; return node;
} }
return ASTUtils.isMemberExpression(node.value) ? node.value.property : node.value; const propertyNode = node as TSESTree.Property;
return ASTUtils.isMemberExpression(propertyNode.value) ? propertyNode.value.property : propertyNode.value;
}; };
/** /**
@@ -88,9 +89,12 @@ export default createESLintRule<unknown[], MessageIds>({
moduleName: '@angular/core', moduleName: '@angular/core',
node: node.parent node: node.parent
}), }),
ASTUtils.isMemberExpression(node.value) (() => {
? fixer.replaceText(node.value.property, 'None') const propValue = (node as TSESTree.Property).value;
: fixer.replaceText(node.value, viewEncapsulationNone) return ASTUtils.isMemberExpression(propValue)
? fixer.replaceText(propValue.property, 'None')
: fixer.replaceText(propValue, viewEncapsulationNone);
})()
].filter(isNotNullOrUndefined); ].filter(isNotNullOrUndefined);
} }
+3 -3
View File
@@ -1,9 +1,9 @@
{ {
"extends": "./tsconfig.json", "extends": "./tsconfig.json",
"compilerOptions": { "compilerOptions": {
"outDir": "../../dist/out-tsc", "outDir": "./dist",
"declarationMap": true "declaration": true
}, },
"exclude": ["src/test.ts", "**/*.spec.ts", "**/*.test.ts"], "exclude": ["src/test.ts", "**/*.spec.ts", "**/*.test.ts", "dist"],
"include": ["**/*.ts"] "include": ["**/*.ts"]
} }
-37403
View File
File diff suppressed because it is too large Load Diff
+53 -55
View File
@@ -4,7 +4,8 @@
"version": "8.5.0", "version": "8.5.0",
"author": "Hyland Software, Inc. and its affiliates", "author": "Hyland Software, Inc. and its affiliates",
"scripts": { "scripts": {
"prepare": "husky", "preinstall": "npx only-allow pnpm",
"prepare": "husky && nx run eslint-angular:build && pnpm audit --audit-level=critical",
"bundle:js-api": "nx run js-api:bundle", "bundle:js-api": "nx run js-api:bundle",
"bundle:cli": "nx run cli:bundle", "bundle:cli": "nx run cli:bundle",
"test:affected": "nx affected:test", "test:affected": "nx affected:test",
@@ -38,6 +39,7 @@
"process services-cloud" "process services-cloud"
], ],
"dependencies": { "dependencies": {
"@babel/runtime": "7.26.10",
"@angular/animations": "19.2.20", "@angular/animations": "19.2.20",
"@angular/cdk": "19.2.19", "@angular/cdk": "19.2.19",
"@angular/common": "19.2.20", "@angular/common": "19.2.20",
@@ -52,28 +54,30 @@
"@apollo/client": "3.13.1", "@apollo/client": "3.13.1",
"@cspell/eslint-plugin": "10.0.0", "@cspell/eslint-plugin": "10.0.0",
"@mat-datetimepicker/core": "15.0.2", "@mat-datetimepicker/core": "15.0.2",
"@ngx-translate/core": "^17.0.0", "@ngx-translate/core": "17.0.0",
"angular-oauth2-oidc": "19.0.0", "angular-oauth2-oidc": "19.0.0",
"apollo-angular": "10.0.3", "apollo-angular": "10.0.3",
"chart.js": "4.4.4", "chart.js": "4.4.4",
"cropperjs": "1.6.2", "cropperjs": "1.6.2",
"date-fns": "^2.30.0", "date-fns": "2.30.0",
"dotenv-expand": "^5.1.0", "dotenv-expand": "5.1.0",
"editorjs-html": "^4.0.5", "editorjs-html": "4.0.5",
"eventemitter3": "^5.0.1", "eventemitter3": "5.0.4",
"graphql-ws": "^6.0.5", "graphql-ws": "6.0.8",
"material-icons": "^1.13.12", "material-icons": "1.13.14",
"minimatch": "5.1.9",
"minimatch-browser": "1.0.0", "minimatch-browser": "1.0.0",
"ng2-charts": "^4.1.1", "ng2-charts": "4.1.1",
"node-fetch": "^3.3.2", "node-fetch": "3.3.2",
"pdfjs-dist": "5.1.91", "pdfjs-dist": "5.1.91",
"raphael": "2.3.0", "raphael": "2.3.0",
"rxjs": "7.8.2", "rxjs": "7.8.2",
"tslib": "2.8.1", "tslib": "2.8.1",
"uuid": "11.1.1",
"zone.js": "0.15.0" "zone.js": "0.15.0"
}, },
"devDependencies": { "devDependencies": {
"@alfresco/eslint-plugin-eslint-angular": "file:lib/eslint-angular", "@alfresco/eslint-plugin-eslint-angular": "workspace:*",
"@angular-devkit/architect": "0.1902.22", "@angular-devkit/architect": "0.1902.22",
"@angular-devkit/build-angular": "19.2.24", "@angular-devkit/build-angular": "19.2.24",
"@angular-devkit/core": "19.2.22", "@angular-devkit/core": "19.2.22",
@@ -81,6 +85,7 @@
"@angular-eslint/eslint-plugin": "19.8.1", "@angular-eslint/eslint-plugin": "19.8.1",
"@angular-eslint/eslint-plugin-template": "19.8.1", "@angular-eslint/eslint-plugin-template": "19.8.1",
"@angular-eslint/template-parser": "19.8.1", "@angular-eslint/template-parser": "19.8.1",
"@angular-eslint/utils": "19.8.1",
"@angular/compiler-cli": "19.2.20", "@angular/compiler-cli": "19.2.20",
"@chromatic-com/storybook": "4.1.3", "@chromatic-com/storybook": "4.1.3",
"@nx/angular": "22.7.4", "@nx/angular": "22.7.4",
@@ -90,74 +95,67 @@
"@nx/storybook": "22.7.4", "@nx/storybook": "22.7.4",
"@nx/workspace": "22.7.4", "@nx/workspace": "22.7.4",
"@schematics/angular": "19.2.22", "@schematics/angular": "19.2.22",
"@storybook/addon-themes": "^10.2.0", "@storybook/addon-themes": "10.2.0",
"@storybook/angular": "^10.2.0", "@storybook/angular": "10.2.0",
"@types/ejs": "^3.1.5", "@types/ejs": "3.1.5",
"@types/jasmine": "4.0.3", "@types/jasmine": "4.0.3",
"@types/jasminewd2": "~2.0.2", "@types/jasminewd2": "2.0.13",
"@types/jest": "^29.5.14", "@types/jest": "29.5.14",
"@types/jsdom": "^27.0.0", "@types/jsdom": "27.0.0",
"@types/minimatch": "5.1.2", "@types/minimatch": "5.1.2",
"@types/node": "25.9.1", "@types/node": "25.9.1",
"@typescript-eslint/eslint-plugin": "8.60.0", "@typescript-eslint/eslint-plugin": "8.59.4",
"@typescript-eslint/parser": "8.60.0", "@typescript-eslint/parser": "8.59.4",
"@typescript-eslint/typescript-estree": "8.60.0", "@typescript-eslint/typescript-estree": "8.59.4",
"@typescript-eslint/utils": "^8.51.0", "@typescript-eslint/utils": "8.59.4",
"ajv": "^8.18.0", "ajv": "8.20.0",
"dotenv": "16.4.7", "dotenv": "16.4.7",
"ejs": "^3.1.10", "ejs": "3.1.10",
"eslint": "^8.47.0", "eslint": "8.57.1",
"eslint-config-prettier": "10.1.8", "eslint-config-prettier": "10.1.8",
"eslint-plugin-ban": "^1.6.0", "eslint-plugin-ban": "1.6.0",
"eslint-plugin-import": "2.32.0", "eslint-plugin-import": "2.32.0",
"eslint-plugin-jsdoc": "50.3.1", "eslint-plugin-jsdoc": "50.3.1",
"eslint-plugin-license-header": "0.8.0", "eslint-plugin-license-header": "0.8.0",
"eslint-plugin-prettier": "^5.5.4", "eslint-plugin-prettier": "5.5.6",
"eslint-plugin-rxjs": "^5.0.3", "eslint-plugin-rxjs": "5.0.3",
"eslint-plugin-storybook": "^10.2.0", "eslint-plugin-storybook": "10.2.0",
"eslint-plugin-unicorn": "^49.0.0", "eslint-plugin-unicorn": "49.0.0",
"graphql": "^16.14.0", "graphql": "16.14.0",
"husky": "^9.1.7", "husky": "9.1.7",
"jasmine-core": "5.13.0", "jasmine-core": "5.13.0",
"jasmine-reporters": "^2.5.2", "jasmine-reporters": "2.5.2",
"jest": "^29.7.0", "jest": "29.7.0",
"jest-environment-jsdom": "^29.7.0", "jest-environment-jsdom": "29.7.0",
"jest-preset-angular": "14.4.2", "jest-preset-angular": "14.4.2",
"jsdom": "^27.4.0", "jsdom": "27.4.0",
"karma": "6.4.4", "karma": "6.4.4",
"karma-chrome-launcher": "~3.2.0", "karma-chrome-launcher": "3.2.0",
"karma-coverage": "~2.2.0", "karma-coverage": "2.2.1",
"karma-jasmine": "5.1.0", "karma-jasmine": "5.1.0",
"karma-jasmine-html-reporter": "^2.1.0", "karma-jasmine-html-reporter": "2.2.0",
"lint-staged": "17.0.5", "lint-staged": "17.0.5",
"ng-packagr": "19.2.2", "ng-packagr": "19.2.2",
"nx": "22.7.4", "nx": "22.7.4",
"prettier": "3.8.3", "prettier": "3.8.3",
"react": "^19.2.6", "react": "19.2.6",
"react-dom": "^19.2.6", "react-dom": "19.2.6",
"rimraf": "^6.1.2", "rimraf": "6.1.3",
"sass-loader": "16.0.8", "sass-loader": "16.0.8",
"spdx-license-list": "^6.11.0", "spdx-license-list": "6.11.0",
"storybook": "^10.2.13", "storybook": "10.2.13",
"stylelint": "16.20.0", "stylelint": "16.20.0",
"stylelint-config-standard-scss": "^13.1.0", "stylelint-config-standard-scss": "13.1.0",
"ts-node": "^10.9.2", "ts-node": "10.9.2",
"typescript": "5.8.3", "typescript": "5.8.3",
"undici": "^8.3.0", "undici": "8.3.0",
"webpack": "5.107.2" "webpack": "5.107.2"
}, },
"overrides": { "license": "Apache-2.0",
"@storybook/angular": {
"webpack": "5.107.2"
},
"picomatch": "4.0.4",
"path-to-regexp": "^0.1.13",
"serialize-javascript": "7.0.5"
},
"license": "Apache-2.0",
"engines": { "engines": {
"node": ">=24.14.0" "node": ">=24.14.0"
}, },
"packageManager": "pnpm@11.5.0",
"module": "./index.js", "module": "./index.js",
"typings": "./index.d.ts" "typings": "./index.d.ts"
} }
+22325
View File
File diff suppressed because it is too large Load Diff
+50
View File
@@ -0,0 +1,50 @@
packages:
- 'lib/eslint-angular'
# Block packages published less than 3 days ago (4320 minutes)
minimumReleaseAge: 4320
minimumReleaseAgeStrict: true
overrides:
# Security fixes
serialize-javascript: '>=7.0.5'
picomatch: '>=4.0.4'
tmp: '>=0.2.6'
ws: '>=8.20.1'
path-to-regexp: '>=0.1.13'
postcss: '>=8.5.10'
webpack-dev-server: '>=5.2.4'
uuid: '>=11.1.1'
allowBuilds:
'@parcel/watcher': true
esbuild: true
lmdb: true
msgpackr-extract: true
nx: true
unrs-resolver: true
sharp: true
node-sass: true
sass: true
pdfjs-dist: true
canvas: true
bcrypt: true
sqlite3: true
better-sqlite3: true
puppeteer: true
playwright: true
fsevents: true
husky: true
core-js: true
core-js-pure: true
'@esbuild/darwin-arm64': true
'@esbuild/darwin-x64': true
'@esbuild/linux-x64': true
'@esbuild/win32-x64': true
'@nx/nx-darwin-arm64': true
'@nx/nx-darwin-x64': true
'@nx/nx-linux-x64-gnu': true
'@nx/nx-linux-x64-musl': true
'@nx/nx-win32-x64-msvc': true
'@swc/core': true
less: true