diff --git a/.github/workflows/reusable-example-apps.yml b/.github/workflows/reusable-example-apps.yml
index ec2db463..8f9dc11e 100644
--- a/.github/workflows/reusable-example-apps.yml
+++ b/.github/workflows/reusable-example-apps.yml
@@ -125,7 +125,7 @@ jobs:
pnpm run create-example-app ${{ matrix.cli-version-alias }}
--tmp-dir=${{ runner.temp }}
- name: Build example app
- run: pnpm ci:build # includes SSR and source maps
+ run: pnpm run ci:build # includes SSR and source maps
working-directory: ${{ env.EXAMPLE_APP_DIR }}
# 👇 We can't do just `pnpm prune --prod` or `pnpm i --prod`
# GitHub Actions `actions/upload-artifact` doesn't like symlinks
diff --git a/.github/workflows/reusable-lint.yml b/.github/workflows/reusable-lint.yml
index bcc6ec1d..77ac72af 100644
--- a/.github/workflows/reusable-lint.yml
+++ b/.github/workflows/reusable-lint.yml
@@ -51,3 +51,15 @@ jobs:
--from ${{ github.event.pull_request.base.sha }} \
--to ${{ github.event.pull_request.head.sha }} \
--verbose
+
+ unused:
+ name: Unused
+ runs-on: ubuntu-latest
+ timeout-minutes: 5
+ steps:
+ - name: Checkout
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
+ - name: Setup
+ uses: ./.github/actions/setup
+ - name: Run
+ run: pnpm run lint:unused
diff --git a/.idea/prettier.xml b/.idea/prettier.xml
index 529e8e3c..86259d25 100644
--- a/.idea/prettier.xml
+++ b/.idea/prettier.xml
@@ -3,6 +3,6 @@
-
+
\ No newline at end of file
diff --git a/knip.jsonc b/knip.jsonc
new file mode 100644
index 00000000..d921a901
--- /dev/null
+++ b/knip.jsonc
@@ -0,0 +1,84 @@
+{
+ "$schema": "node_modules/knip/schema.json",
+ "workspaces": {
+ ".": {
+ "project": [],
+ "entry": ["dts-config.js"],
+ "ignore": [
+ // 👇 Can't ignore "projects" being imported when shouldn't be
+ "jest.config.js",
+ // 👇 Unresolved: referenced "types". As they need to be resolved taking into account `typeRoots`
+ "projects/ngx-meta/e2e/tsconfig.json",
+ "projects/ngx-meta/src/tsconfig.lib.json",
+ ],
+ "ignoreDependencies": [
+ // 👇 Unused: used in post-build shell script
+ "dts-bundle-generator",
+ // 👇 Unlisted: Needed by semantic release https://github.com/semantic-release/commit-analyzer
+ "conventional-changelog-conventionalcommits",
+ // 👇 Unresolved: Not hoisted by pnpm, but they're there. Added due to Semantic Release plugin
+ "@semantic-release/commit-analyzer",
+ "@semantic-release/github",
+ "@semantic-release/npm",
+ "@semantic-release/release-notes-generator",
+ // 👇 Unresolved: Not hoisted by pnpm, but it's there due to `angular-esbuild` dep
+ "@angular-eslint/builder",
+ // 👇 Unlisted: Manually hoisted by pnpm, but not specified in package.json
+ "@eslint/js",
+ // 👇 Unused: added by Angular CLI by default
+ "@angular/compiler",
+ "@angular/platform-browser-dynamic",
+ "@angular/router",
+ // actually used, but mistakenly from peer dep
+ // 👇 Unused: will be fixed soon when Knip tracks polyfills
+ "zone.js",
+ ],
+ },
+ "./projects/ngx-meta/e2e": {
+ "project": ["**/*.ts"],
+ "entry": [
+ //👇 Due to Cypress config not read (see below)
+ "cypress.config.ts",
+ "cypress/support/coverage.ts",
+ ],
+ // 👇 Disable reading config to avoid installing Cypress when running knip in CI/CD
+ "cypress": {
+ "config": [],
+ },
+ "ignoreBinaries": [
+ // 👇 Unlisted in CI/CD: because Cypress not installed
+ "cypress",
+ ],
+ "ignoreDependencies": [
+ // 👇 Used in homonym shell script
+ "start-server-and-test",
+ // 👇 Seems it's needed by Cypress https://github.com/davidlj95/ngx/pull/679
+ "tslib",
+ ],
+ },
+ "./projects/ngx-meta/example-apps": {
+ "project": ["src/**/*.ts"],
+ "entry": ["src/create-example-app.ts"],
+ },
+ "./projects/ngx-meta/schematics": {
+ "project": ["**/*.ts!", "!**/testing/**/*.ts!"],
+ "entry": [
+ "ng-add/index.ts!",
+ "migrations/const-to-function-manager-providers/index.ts!",
+ ],
+ "ignore": ["external-utils/**/*.ts"],
+ "ignoreBinaries": ["rsync"],
+ },
+ "./projects/ngx-meta/src": {
+ "project": ["**/*.ts!"],
+ "entry": ["all-entry-points.ts!", "index.ts!"],
+ "ignoreDependencies": [
+ // 👇 Unused: As recommended to include in Angular Package Format v10+
+ // https://angular.dev/tools/libraries/angular-package-format#tslib
+ "tslib",
+ // 👇 Referenced optional peerDep: If not using "router" entrypoint, it's fine
+ "@angular/router",
+ ],
+ },
+ },
+}
diff --git a/package.json b/package.json
index f562b711..1a1bfcb9 100644
--- a/package.json
+++ b/package.json
@@ -20,6 +20,9 @@
"lint:code:files//": "☝️ lint-staged can't/shouldn't use 'ng lint'",
"lint:commit-message": "pnpm run commitlint-edit-msg",
"lint:gh-actions": "./actionlint.sh",
+ "lint:unused": "pnpm run '/^lint:unused:.*$/'",
+ "lint:unused:development": "knip",
+ "lint:unused:production": "knip --production --tags=-visibleForTesting",
"ngx-meta:api-documenter": "api-documenter markdown -i ./projects/ngx-meta/api-extractor -o ./projects/ngx-meta/docs/content/api",
"ngx-meta:api-extractor": "api-extractor run -c ./projects/ngx-meta/src/api-extractor.json",
"ngx-meta:api-extractor:local": "pnpm run ngx-meta:tsc:lib && pnpm run ngx-meta:api-extractor --local",
@@ -30,7 +33,7 @@
"ngx-meta:tsc:spec": "tsc -p ./projects/ngx-meta/src/tsconfig.spec.json --listEmittedFiles",
"prepare": "husky",
"semantic-release:local": "./semantic-release-local.sh",
- "start": "ng serve",
+ "start:dev": "ng serve",
"test:unit": "pnpm run '/^test:unit:\\w*$/'",
"test:unit:coverage": "pnpm run '/^test:unit:\\w*:coverage$/'",
"test:unit:libs": "ng test --no-watch",
@@ -48,7 +51,6 @@
"@angular/common": "18.2.10",
"@angular/compiler": "18.2.10",
"@angular/core": "18.2.10",
- "@angular/forms": "18.2.10",
"@angular/platform-browser": "18.2.10",
"@angular/platform-browser-dynamic": "18.2.10",
"@angular/router": "18.2.10",
@@ -91,6 +93,7 @@
"karma-coverage": "2.2.1",
"karma-jasmine": "5.1.0",
"karma-jasmine-html-reporter": "2.1.0",
+ "knip": "5.41.1",
"lint-staged": "15.2.10",
"ng-mocks": "14.13.1",
"ng-packagr": "18.2.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 215b08d9..251e5d9f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -20,9 +20,6 @@ importers:
'@angular/core':
specifier: 18.2.10
version: 18.2.10(rxjs@7.8.1)(zone.js@0.14.10)
- '@angular/forms':
- specifier: 18.2.10
- version: 18.2.10(@angular/common@18.2.10(@angular/core@18.2.10(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.10(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.10(@angular/animations@18.2.10(@angular/core@18.2.10(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.10(@angular/core@18.2.10(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.10(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.1)
'@angular/platform-browser':
specifier: 18.2.10
version: 18.2.10(@angular/animations@18.2.10(@angular/core@18.2.10(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.10(@angular/core@18.2.10(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.10(rxjs@7.8.1)(zone.js@0.14.10))
@@ -68,7 +65,7 @@ importers:
version: 19.5.0
'@eslint/compat':
specifier: 1.2.3
- version: 1.2.3(eslint@9.14.0(jiti@1.21.0))
+ version: 1.2.3(eslint@9.14.0(jiti@2.4.2))
'@jest/globals':
specifier: 29.7.0
version: 29.7.0
@@ -95,7 +92,7 @@ importers:
version: 22.8.7
angular-eslint:
specifier: 18.4.2
- version: 18.4.2(@angular-devkit/core@18.2.11(chokidar@3.6.0))(@angular-devkit/schematics@18.2.11(chokidar@3.6.0))(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript-eslint@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(typescript@5.4.5)
+ version: 18.4.2(@angular-devkit/core@18.2.11(chokidar@3.6.0))(@angular-devkit/schematics@18.2.11(chokidar@3.6.0))(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript-eslint@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(typescript@5.4.5)
conventional-changelog-conventionalcommits:
specifier: 8.0.0
version: 8.0.0
@@ -104,22 +101,22 @@ importers:
version: 9.5.1
eslint:
specifier: 9.14.0
- version: 9.14.0(jiti@1.21.0)
+ version: 9.14.0(jiti@2.4.2)
eslint-config-prettier:
specifier: 9.1.0
- version: 9.1.0(eslint@9.14.0(jiti@1.21.0))
+ version: 9.1.0(eslint@9.14.0(jiti@2.4.2))
eslint-plugin-cypress:
specifier: 4.1.0
- version: 4.1.0(eslint@9.14.0(jiti@1.21.0))
+ version: 4.1.0(eslint@9.14.0(jiti@2.4.2))
eslint-plugin-jasmine:
specifier: 4.2.2
version: 4.2.2
eslint-plugin-jest:
specifier: 28.9.0
- version: 28.9.0(@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(jest@29.7.0(@types/node@22.8.7))(typescript@5.4.5)
+ version: 28.9.0(@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.8.7))(typescript@5.4.5)
eslint-plugin-json-files:
specifier: 4.4.2
- version: 4.4.2(eslint@9.14.0(jiti@1.21.0))
+ version: 4.4.2(eslint@9.14.0(jiti@2.4.2))
husky:
specifier: 9.1.7
version: 9.1.7
@@ -144,6 +141,9 @@ importers:
karma-jasmine-html-reporter:
specifier: 2.1.0
version: 2.1.0(jasmine-core@5.4.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4)
+ knip:
+ specifier: 5.41.1
+ version: 5.41.1(@types/node@22.8.7)(typescript@5.4.5)
lint-staged:
specifier: 15.2.10
version: 15.2.10
@@ -170,7 +170,7 @@ importers:
version: 5.4.5
typescript-eslint:
specifier: 8.10.0
- version: 8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
+ version: 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
packages:
@@ -2155,6 +2155,11 @@ packages:
'@sinonjs/fake-timers@10.3.0':
resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
+ '@snyk/github-codeowners@1.1.0':
+ resolution: {integrity: sha512-lGFf08pbkEac0NYgVf4hdANpAgApRjNByLXB+WBip3qj1iendOIyAwP2GKkKbQMNVy2r1xxDf0ssfWscoiC+Vw==}
+ engines: {node: '>=8.10'}
+ hasBin: true
+
'@socket.io/component-emitter@3.1.0':
resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==}
@@ -2914,6 +2919,10 @@ packages:
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+ commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+
commander@9.5.0:
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
engines: {node: ^12.20.0 || >=14}
@@ -3253,6 +3262,9 @@ packages:
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ easy-table@1.2.0:
+ resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==}
+
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
@@ -4383,6 +4395,10 @@ packages:
resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
hasBin: true
+ jiti@2.4.2:
+ resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
+ hasBin: true
+
jju@1.4.0:
resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==}
@@ -4493,6 +4509,14 @@ packages:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: '>=6'}
+ knip@5.41.1:
+ resolution: {integrity: sha512-yNpCCe2REU7U3VRvMASnXSEtfEC2HmOoDW9Vp9teQ9FktJYnuagvSZD3xWq8Ru7sPABkmvbC5TVWuMzIaeADNA==}
+ engines: {node: '>=18.6.0'}
+ hasBin: true
+ peerDependencies:
+ '@types/node': '>=18'
+ typescript: '>=5.0.4'
+
launch-editor@2.6.1:
resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==}
@@ -5868,6 +5892,10 @@ packages:
resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
+ smol-toml@1.3.1:
+ resolution: {integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==}
+ engines: {node: '>= 18'}
+
socket.io-adapter@2.5.2:
resolution: {integrity: sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==}
@@ -6052,6 +6080,13 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
+ strip-json-comments@5.0.1:
+ resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==}
+ engines: {node: '>=14.16'}
+
+ summary@2.1.0:
+ resolution: {integrity: sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw==}
+
super-regex@1.0.0:
resolution: {integrity: sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==}
engines: {node: '>=18'}
@@ -6648,6 +6683,15 @@ packages:
engines: {node: '>=8.0.0'}
hasBin: true
+ zod-validation-error@3.4.0:
+ resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ zod: ^3.18.0
+
+ zod@3.24.1:
+ resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==}
+
zone.js@0.14.10:
resolution: {integrity: sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==}
@@ -6786,38 +6830,38 @@ snapshots:
transitivePeerDependencies:
- chokidar
- '@angular-eslint/builder@18.4.2(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)':
+ '@angular-eslint/builder@18.4.2(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)':
dependencies:
- eslint: 9.14.0(jiti@1.21.0)
+ eslint: 9.14.0(jiti@2.4.2)
typescript: 5.4.5
'@angular-eslint/bundled-angular-compiler@18.4.2': {}
- '@angular-eslint/eslint-plugin-template@18.4.2(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)':
+ '@angular-eslint/eslint-plugin-template@18.4.2(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)':
dependencies:
'@angular-eslint/bundled-angular-compiler': 18.4.2
- '@angular-eslint/utils': 18.4.2(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
+ '@angular-eslint/utils': 18.4.2(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
'@typescript-eslint/types': 8.10.0
- '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
+ '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
aria-query: 5.3.2
axobject-query: 4.1.0
- eslint: 9.14.0(jiti@1.21.0)
+ eslint: 9.14.0(jiti@2.4.2)
typescript: 5.4.5
- '@angular-eslint/eslint-plugin@18.4.2(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)':
+ '@angular-eslint/eslint-plugin@18.4.2(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)':
dependencies:
'@angular-eslint/bundled-angular-compiler': 18.4.2
- '@angular-eslint/utils': 18.4.2(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
- '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
- eslint: 9.14.0(jiti@1.21.0)
+ '@angular-eslint/utils': 18.4.2(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
+ '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
+ eslint: 9.14.0(jiti@2.4.2)
typescript: 5.4.5
- '@angular-eslint/schematics@18.4.2(@angular-devkit/core@18.2.11(chokidar@3.6.0))(@angular-devkit/schematics@18.2.11(chokidar@3.6.0))(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)':
+ '@angular-eslint/schematics@18.4.2(@angular-devkit/core@18.2.11(chokidar@3.6.0))(@angular-devkit/schematics@18.2.11(chokidar@3.6.0))(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)':
dependencies:
'@angular-devkit/core': 18.2.11(chokidar@3.6.0)
'@angular-devkit/schematics': 18.2.11(chokidar@3.6.0)
- '@angular-eslint/eslint-plugin': 18.4.2(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
- '@angular-eslint/eslint-plugin-template': 18.4.2(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
+ '@angular-eslint/eslint-plugin': 18.4.2(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
+ '@angular-eslint/eslint-plugin-template': 18.4.2(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
ignore: 6.0.2
semver: 7.6.3
strip-json-comments: 3.1.1
@@ -6827,18 +6871,18 @@ snapshots:
- eslint
- typescript
- '@angular-eslint/template-parser@18.4.2(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)':
+ '@angular-eslint/template-parser@18.4.2(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)':
dependencies:
'@angular-eslint/bundled-angular-compiler': 18.4.2
- eslint: 9.14.0(jiti@1.21.0)
+ eslint: 9.14.0(jiti@2.4.2)
eslint-scope: 8.2.0
typescript: 5.4.5
- '@angular-eslint/utils@18.4.2(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)':
+ '@angular-eslint/utils@18.4.2(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)':
dependencies:
'@angular-eslint/bundled-angular-compiler': 18.4.2
- '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
- eslint: 9.14.0(jiti@1.21.0)
+ '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
+ eslint: 9.14.0(jiti@2.4.2)
typescript: 5.4.5
'@angular/animations@18.2.10(@angular/core@18.2.10(rxjs@7.8.1)(zone.js@0.14.10))':
@@ -7153,7 +7197,7 @@ snapshots:
'@babel/helper-validator-identifier': 7.24.7
chalk: 2.4.2
js-tokens: 4.0.0
- picocolors: 1.0.1
+ picocolors: 1.1.1
'@babel/parser@7.24.0':
dependencies:
@@ -8032,18 +8076,18 @@ snapshots:
'@esbuild/win32-x64@0.23.0':
optional: true
- '@eslint-community/eslint-utils@4.4.0(eslint@9.14.0(jiti@1.21.0))':
+ '@eslint-community/eslint-utils@4.4.0(eslint@9.14.0(jiti@2.4.2))':
dependencies:
- eslint: 9.14.0(jiti@1.21.0)
+ eslint: 9.14.0(jiti@2.4.2)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.10.0': {}
'@eslint-community/regexpp@4.12.1': {}
- '@eslint/compat@1.2.3(eslint@9.14.0(jiti@1.21.0))':
+ '@eslint/compat@1.2.3(eslint@9.14.0(jiti@2.4.2))':
optionalDependencies:
- eslint: 9.14.0(jiti@1.21.0)
+ eslint: 9.14.0(jiti@2.4.2)
'@eslint/config-array@0.18.0':
dependencies:
@@ -9001,6 +9045,12 @@ snapshots:
dependencies:
'@sinonjs/commons': 3.0.1
+ '@snyk/github-codeowners@1.1.0':
+ dependencies:
+ commander: 4.1.1
+ ignore: 5.3.2
+ p-map: 4.0.0
+
'@socket.io/component-emitter@3.1.0': {}
'@tufjs/canonical-json@2.0.0': {}
@@ -9175,15 +9225,15 @@ snapshots:
dependencies:
'@types/yargs-parser': 21.0.3
- '@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)':
+ '@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)':
dependencies:
'@eslint-community/regexpp': 4.10.0
- '@typescript-eslint/parser': 8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
+ '@typescript-eslint/parser': 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
'@typescript-eslint/scope-manager': 8.10.0
- '@typescript-eslint/type-utils': 8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
- '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
+ '@typescript-eslint/type-utils': 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
+ '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
'@typescript-eslint/visitor-keys': 8.10.0
- eslint: 9.14.0(jiti@1.21.0)
+ eslint: 9.14.0(jiti@2.4.2)
graphemer: 1.4.0
ignore: 5.3.2
natural-compare: 1.4.0
@@ -9193,14 +9243,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)':
+ '@typescript-eslint/parser@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)':
dependencies:
'@typescript-eslint/scope-manager': 8.10.0
'@typescript-eslint/types': 8.10.0
'@typescript-eslint/typescript-estree': 8.10.0(typescript@5.4.5)
'@typescript-eslint/visitor-keys': 8.10.0
debug: 4.3.6
- eslint: 9.14.0(jiti@1.21.0)
+ eslint: 9.14.0(jiti@2.4.2)
optionalDependencies:
typescript: 5.4.5
transitivePeerDependencies:
@@ -9211,10 +9261,10 @@ snapshots:
'@typescript-eslint/types': 8.10.0
'@typescript-eslint/visitor-keys': 8.10.0
- '@typescript-eslint/type-utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)':
+ '@typescript-eslint/type-utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)':
dependencies:
'@typescript-eslint/typescript-estree': 8.10.0(typescript@5.4.5)
- '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
+ '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
debug: 4.3.6
ts-api-utils: 1.3.0(typescript@5.4.5)
optionalDependencies:
@@ -9240,13 +9290,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)':
+ '@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@1.21.0))
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@2.4.2))
'@typescript-eslint/scope-manager': 8.10.0
'@typescript-eslint/types': 8.10.0
'@typescript-eslint/typescript-estree': 8.10.0(typescript@5.4.5)
- eslint: 9.14.0(jiti@1.21.0)
+ eslint: 9.14.0(jiti@2.4.2)
transitivePeerDependencies:
- supports-color
- typescript
@@ -9440,16 +9490,16 @@ snapshots:
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
- angular-eslint@18.4.2(@angular-devkit/core@18.2.11(chokidar@3.6.0))(@angular-devkit/schematics@18.2.11(chokidar@3.6.0))(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript-eslint@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(typescript@5.4.5):
+ angular-eslint@18.4.2(@angular-devkit/core@18.2.11(chokidar@3.6.0))(@angular-devkit/schematics@18.2.11(chokidar@3.6.0))(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript-eslint@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(typescript@5.4.5):
dependencies:
- '@angular-eslint/builder': 18.4.2(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
- '@angular-eslint/eslint-plugin': 18.4.2(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
- '@angular-eslint/eslint-plugin-template': 18.4.2(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
- '@angular-eslint/schematics': 18.4.2(@angular-devkit/core@18.2.11(chokidar@3.6.0))(@angular-devkit/schematics@18.2.11(chokidar@3.6.0))(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
- '@angular-eslint/template-parser': 18.4.2(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
- eslint: 9.14.0(jiti@1.21.0)
+ '@angular-eslint/builder': 18.4.2(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
+ '@angular-eslint/eslint-plugin': 18.4.2(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
+ '@angular-eslint/eslint-plugin-template': 18.4.2(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
+ '@angular-eslint/schematics': 18.4.2(@angular-devkit/core@18.2.11(chokidar@3.6.0))(@angular-devkit/schematics@18.2.11(chokidar@3.6.0))(@typescript-eslint/types@8.10.0)(@typescript-eslint/utils@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
+ '@angular-eslint/template-parser': 18.4.2(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
+ eslint: 9.14.0(jiti@2.4.2)
typescript: 5.4.5
- typescript-eslint: 8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
+ typescript-eslint: 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
transitivePeerDependencies:
- '@angular-devkit/core'
- '@angular-devkit/schematics'
@@ -9886,6 +9936,8 @@ snapshots:
commander@2.20.3: {}
+ commander@4.1.1: {}
+
commander@9.5.0:
optional: true
@@ -10212,6 +10264,12 @@ snapshots:
eastasianwidth@0.2.0: {}
+ easy-table@1.2.0:
+ dependencies:
+ ansi-regex: 5.0.1
+ optionalDependencies:
+ wcwidth: 1.0.1
+
ee-first@1.1.1: {}
ejs@3.1.10:
@@ -10368,33 +10426,33 @@ snapshots:
escape-string-regexp@5.0.0: {}
- eslint-config-prettier@9.1.0(eslint@9.14.0(jiti@1.21.0)):
+ eslint-config-prettier@9.1.0(eslint@9.14.0(jiti@2.4.2)):
dependencies:
- eslint: 9.14.0(jiti@1.21.0)
+ eslint: 9.14.0(jiti@2.4.2)
- eslint-plugin-cypress@4.1.0(eslint@9.14.0(jiti@1.21.0)):
+ eslint-plugin-cypress@4.1.0(eslint@9.14.0(jiti@2.4.2)):
dependencies:
- eslint: 9.14.0(jiti@1.21.0)
+ eslint: 9.14.0(jiti@2.4.2)
globals: 15.12.0
eslint-plugin-jasmine@4.2.2: {}
- eslint-plugin-jest@28.9.0(@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(jest@29.7.0(@types/node@22.8.7))(typescript@5.4.5):
+ eslint-plugin-jest@28.9.0(@typescript-eslint/eslint-plugin@8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.8.7))(typescript@5.4.5):
dependencies:
- '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
- eslint: 9.14.0(jiti@1.21.0)
+ '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
+ eslint: 9.14.0(jiti@2.4.2)
optionalDependencies:
- '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
+ '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
jest: 29.7.0(@types/node@22.8.7)
transitivePeerDependencies:
- supports-color
- typescript
- eslint-plugin-json-files@4.4.2(eslint@9.14.0(jiti@1.21.0)):
+ eslint-plugin-json-files@4.4.2(eslint@9.14.0(jiti@2.4.2)):
dependencies:
ajv: 8.17.1
better-ajv-errors: 1.2.0(ajv@8.17.1)
- eslint: 9.14.0(jiti@1.21.0)
+ eslint: 9.14.0(jiti@2.4.2)
fast-glob: 3.3.2
requireindex: 1.2.0
semver: 7.6.3
@@ -10414,9 +10472,9 @@ snapshots:
eslint-visitor-keys@4.2.0: {}
- eslint@9.14.0(jiti@1.21.0):
+ eslint@9.14.0(jiti@2.4.2):
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@1.21.0))
+ '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@2.4.2))
'@eslint-community/regexpp': 4.12.1
'@eslint/config-array': 0.18.0
'@eslint/core': 0.7.0
@@ -10452,7 +10510,7 @@ snapshots:
optionator: 0.9.3
text-table: 0.2.0
optionalDependencies:
- jiti: 1.21.0
+ jiti: 2.4.2
transitivePeerDependencies:
- supports-color
@@ -11600,6 +11658,8 @@ snapshots:
jiti@1.21.0: {}
+ jiti@2.4.2: {}
+
jju@1.4.0: {}
js-tokens@4.0.0: {}
@@ -11724,6 +11784,27 @@ snapshots:
kleur@3.0.3: {}
+ knip@5.41.1(@types/node@22.8.7)(typescript@5.4.5):
+ dependencies:
+ '@nodelib/fs.walk': 1.2.8
+ '@snyk/github-codeowners': 1.1.0
+ '@types/node': 22.8.7
+ easy-table: 1.2.0
+ enhanced-resolve: 5.17.1
+ fast-glob: 3.3.2
+ jiti: 2.4.2
+ js-yaml: 4.1.0
+ minimist: 1.2.8
+ picocolors: 1.1.1
+ picomatch: 4.0.2
+ pretty-ms: 9.0.0
+ smol-toml: 1.3.1
+ strip-json-comments: 5.0.1
+ summary: 2.1.0
+ typescript: 5.4.5
+ zod: 3.24.1
+ zod-validation-error: 3.4.0(zod@3.24.1)
+
launch-editor@2.6.1:
dependencies:
picocolors: 1.0.1
@@ -13154,6 +13235,8 @@ snapshots:
smart-buffer@4.2.0: {}
+ smol-toml@1.3.1: {}
+
socket.io-adapter@2.5.2:
dependencies:
ws: 8.11.0
@@ -13375,6 +13458,10 @@ snapshots:
strip-json-comments@3.1.1: {}
+ strip-json-comments@5.0.1: {}
+
+ summary@2.1.0: {}
+
super-regex@1.0.0:
dependencies:
function-timeout: 1.0.1
@@ -13564,11 +13651,11 @@ snapshots:
dependencies:
is-typedarray: 1.0.0
- typescript-eslint@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5):
+ typescript-eslint@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5))(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
- '@typescript-eslint/parser': 8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
- '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@1.21.0))(typescript@5.4.5)
+ '@typescript-eslint/eslint-plugin': 8.10.0(@typescript-eslint/parser@8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5))(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
+ '@typescript-eslint/parser': 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
+ '@typescript-eslint/utils': 8.10.0(eslint@9.14.0(jiti@2.4.2))(typescript@5.4.5)
optionalDependencies:
typescript: 5.4.5
transitivePeerDependencies:
@@ -13924,4 +14011,10 @@ snapshots:
optionalDependencies:
commander: 9.5.0
+ zod-validation-error@3.4.0(zod@3.24.1):
+ dependencies:
+ zod: 3.24.1
+
+ zod@3.24.1: {}
+
zone.js@0.14.10: {}
diff --git a/projects/ngx-meta/example-apps/src/steps/setup-ssr.ts b/projects/ngx-meta/example-apps/src/steps/setup-ssr.ts
index faa0b30d..205a2a37 100644
--- a/projects/ngx-meta/example-apps/src/steps/setup-ssr.ts
+++ b/projects/ngx-meta/example-apps/src/steps/setup-ssr.ts
@@ -4,8 +4,6 @@ import { execa, Log } from '../tools/index.js'
import { writeFile } from 'fs/promises'
import { join } from 'path'
-export const NPMRC_FILENAME = '.npmrc'
-
export async function setupSsr(opts: {
cliBinary: string
appDir: string
@@ -42,3 +40,5 @@ export async function setupSsr(opts: {
cwd: opts.appDir,
})
}
+
+const NPMRC_FILENAME = '.npmrc'
diff --git a/projects/ngx-meta/example-apps/src/steps/update-ts-config-to-import-json-files-and-set-path-mappings.ts b/projects/ngx-meta/example-apps/src/steps/update-ts-config-to-import-json-files-and-set-path-mappings.ts
index 018730df..ca83c57d 100644
--- a/projects/ngx-meta/example-apps/src/steps/update-ts-config-to-import-json-files-and-set-path-mappings.ts
+++ b/projects/ngx-meta/example-apps/src/steps/update-ts-config-to-import-json-files-and-set-path-mappings.ts
@@ -5,8 +5,6 @@ import { join } from 'path'
import { writeFile } from 'fs/promises'
import { jsonToString } from '../utils/index.js'
-export const RELATIVE_E2E_DIR_FROM_APP_DIR = join('..', '..', '..', 'e2e')
-
export async function updateTsConfigToImportJsonFilesAndSetPathMappings(
appDir: string,
) {
@@ -37,3 +35,5 @@ export async function updateTsConfigToImportJsonFilesAndSetPathMappings(
}
await writeFile(configFileName, jsonToString(config.raw))
}
+
+const RELATIVE_E2E_DIR_FROM_APP_DIR = join('..', '..', '..', 'e2e')
diff --git a/projects/ngx-meta/schematics/migrations/const-to-function-manager-providers/testing/replacements.ts b/projects/ngx-meta/schematics/migrations/const-to-function-manager-providers/testing/replacements.ts
index 68206e1b..63379063 100644
--- a/projects/ngx-meta/schematics/migrations/const-to-function-manager-providers/testing/replacements.ts
+++ b/projects/ngx-meta/schematics/migrations/const-to-function-manager-providers/testing/replacements.ts
@@ -1,4 +1,4 @@
-export class ModuleReplacements {
+class ModuleReplacements {
constructor(public readonly identifierReplacements: Record) {}
get oldIdentifiersLines() {
diff --git a/projects/ngx-meta/schematics/utils/get-all-typescript-files.ts b/projects/ngx-meta/schematics/utils/get-all-typescript-files.ts
index d494ab8d..7d6b2f50 100644
--- a/projects/ngx-meta/schematics/utils/get-all-typescript-files.ts
+++ b/projects/ngx-meta/schematics/utils/get-all-typescript-files.ts
@@ -22,6 +22,8 @@ export function* getAllTypescriptFiles(
yield [filePath, sourceFile]
}
}
+
+/** @visibleForTesting **/
export type GetAllTypescriptFilesOptions = Partial<{
contentFilter: (content: string) => boolean
}>
diff --git a/projects/ngx-meta/src/core/src/resolvers/metadata-json-resolver.ts b/projects/ngx-meta/src/core/src/resolvers/metadata-json-resolver.ts
index 649c2056..bc1ae844 100644
--- a/projects/ngx-meta/src/core/src/resolvers/metadata-json-resolver.ts
+++ b/projects/ngx-meta/src/core/src/resolvers/metadata-json-resolver.ts
@@ -42,6 +42,7 @@ export const metadataJsonResolver: _LazyInjectionToken<
},
)
+/** @visibleForTesting */
export type MetadataJsonResolver = (
values: MetadataValues | undefined,
resolverOptions: MetadataResolverOptions,
diff --git a/projects/ngx-meta/src/core/src/utils/make-injection-token.ts b/projects/ngx-meta/src/core/src/utils/make-injection-token.ts
index 1ce053b2..1ff35849 100644
--- a/projects/ngx-meta/src/core/src/utils/make-injection-token.ts
+++ b/projects/ngx-meta/src/core/src/utils/make-injection-token.ts
@@ -2,7 +2,9 @@ import { InjectionToken } from '@angular/core'
import { _formatDevMessage } from '../messaging'
import { MODULE_NAME } from '../module-name'
+/** @visibleForTesting */
export const INJECTION_TOKENS = new Map>()
+/** @visibleForTesting */
export const INJECTION_TOKEN_FACTORIES = new Map unknown>()
/**
diff --git a/projects/ngx-meta/src/routing/src/listener/router-listener.ts b/projects/ngx-meta/src/routing/src/listener/router-listener.ts
index 9f9593ce..f5622bb0 100644
--- a/projects/ngx-meta/src/routing/src/listener/router-listener.ts
+++ b/projects/ngx-meta/src/routing/src/listener/router-listener.ts
@@ -48,4 +48,6 @@ export const routerListener = () =>
ngOnDestroy: () => subscription?.unsubscribe(),
}
})
+
+/** @visibleForTesting */
export type RouterListener = { listen: () => void } & OnDestroy
diff --git a/projects/ngx-meta/src/standard/src/utils/provide-standard-manager.ts b/projects/ngx-meta/src/standard/src/utils/provide-standard-manager.ts
index eafa7708..96da793d 100644
--- a/projects/ngx-meta/src/standard/src/utils/provide-standard-manager.ts
+++ b/projects/ngx-meta/src/standard/src/utils/provide-standard-manager.ts
@@ -5,14 +5,12 @@ import {
} from '@davidlj95/ngx-meta/core'
import { Standard, StandardMetadata } from '../types'
-export const STANDARD_KEY = 'standard' satisfies keyof StandardMetadata
-
export const provideStandardManager = (
key: Key,
...options: readonly _ProvideNgxMetaModuleManagerOptions[]
) =>
_provideNgxMetaModuleManager(
key,
- [STANDARD_KEY],
+ ['standard' satisfies keyof StandardMetadata],
withOptions(...options),
)
diff --git a/projects/ngx-meta/src/twitter-card/src/utils/provide-twitter-card-manager.ts b/projects/ngx-meta/src/twitter-card/src/utils/provide-twitter-card-manager.ts
index f75aacb8..70b45b11 100644
--- a/projects/ngx-meta/src/twitter-card/src/utils/provide-twitter-card-manager.ts
+++ b/projects/ngx-meta/src/twitter-card/src/utils/provide-twitter-card-manager.ts
@@ -7,16 +7,13 @@ import {
import { TwitterCard, TwitterCardMetadata } from '../types'
import { withTwitterCardNameAttribute } from './with-twitter-card-name-attribute'
-export const TWITTER_CARD_KEY =
- 'twitterCard' satisfies keyof TwitterCardMetadata
-
export const provideTwitterCardManager = (
key: Key,
...options: readonly _ProvideNgxMetaModuleManagerOptions[]
) =>
_provideNgxMetaModuleManager(
key,
- [TWITTER_CARD_KEY],
+ ['twitterCard' satisfies keyof TwitterCardMetadata],
withOptions(
_withModuleManagerNameAttribute(withTwitterCardNameAttribute(key)),
...options,