From 3c3c2a9bced3c4cbd71b4f12f90849f578a9759a Mon Sep 17 00:00:00 2001 From: Maksim Ivanov Date: Fri, 20 Sep 2024 18:35:36 +0300 Subject: [PATCH] fix: forgot publish licence (#531) --- .github/workflows/announce.yml | 31 - .github/workflows/auto-author-assign.yml | 16 - .github/workflows/auto-label.yml | 14 - .github/workflows/auto-remove-label.yml | 11 - .../workflows/{auto-approve.yml => pr.yml} | 26 +- .github/workflows/release.yml | 31 +- .release-it.js | 1 + .release-it.json | 29 - README.md | 179 ++++ package-lock.json | 873 +++++++++++++----- package.json | 29 +- projects/ng-dompurify/CHANGELOG.md | 103 --- projects/ng-dompurify/README.md | 186 ---- projects/ng-dompurify/ng-package.json | 4 - projects/ng-dompurify/project.json | 22 +- 15 files changed, 923 insertions(+), 632 deletions(-) delete mode 100644 .github/workflows/announce.yml delete mode 100644 .github/workflows/auto-author-assign.yml delete mode 100644 .github/workflows/auto-label.yml delete mode 100644 .github/workflows/auto-remove-label.yml rename .github/workflows/{auto-approve.yml => pr.yml} (60%) create mode 100644 .release-it.js delete mode 100644 .release-it.json delete mode 100644 projects/ng-dompurify/CHANGELOG.md delete mode 100644 projects/ng-dompurify/README.md diff --git a/.github/workflows/announce.yml b/.github/workflows/announce.yml deleted file mode 100644 index 04fc351..0000000 --- a/.github/workflows/announce.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Release announce -on: - push: - branches: [main] - -jobs: - run-release: - name: Announce - if: "contains(github.event.head_commit.message, 'chore(release)')" - runs-on: ubuntu-latest - steps: - - uses: taiga-family/ci/actions/setup/checkout@v1.80.0 - - uses: taiga-family/ci/actions/setup/node@v1.80.0 - - - id: info - run: | - echo "version=v$(node -p "require('./projects/ng-dompurify/package.json').version")" >> $GITHUB_OUTPUT - echo "name=$(node -p "require('./projects/ng-dompurify/package.json').name")" >> $GITHUB_OUTPUT - - - name: Announce to Telegram - uses: taiga-family/ci/actions/messenger/telegram/announce@v1.80.0 - with: - chatId: ${{ secrets.TAIGA_TELEGRAM_CHAT_ID }} - topicId: ${{ secrets.TAIGA_TELEGRAM_CHAT_THREAD_ID }} - token: ${{ secrets.TAIGA_TELEGRAM_BOT_TOKEN }} - version: ${{ steps.info.outputs.version }} - textLink: ${{ steps.info.outputs.name }} - -concurrency: - group: announce-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true diff --git a/.github/workflows/auto-author-assign.yml b/.github/workflows/auto-author-assign.yml deleted file mode 100644 index 4787e4c..0000000 --- a/.github/workflows/auto-author-assign.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: 🤖 Auto assign -on: - pull_request: - types: [opened, reopened] - -jobs: - assign-author: - name: PR author as an assignee - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4.1.7 - - uses: taiga-family/ci/actions/setup/variables@v1.80.0 - - uses: toshimaru/auto-author-assign@v2.1.1 - if: env.IS_OWNER_MODE == 'true' - with: - repo-token: ${{ secrets.TAIGA_FAMILY_BOT_PAT }} diff --git a/.github/workflows/auto-label.yml b/.github/workflows/auto-label.yml deleted file mode 100644 index a379b6b..0000000 --- a/.github/workflows/auto-label.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: 🤖 Auto label -on: pull_request_review - -jobs: - label-when-approved: - name: Label when approved - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4.1.7 - - uses: taiga-family/ci/actions/setup/variables@v1.80.0 - - uses: taiga-family/ci/actions/auto/label-when-approved@v1.80.0 - with: - approvals: 1 - token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/auto-remove-label.yml b/.github/workflows/auto-remove-label.yml deleted file mode 100644 index 12ff24b..0000000 --- a/.github/workflows/auto-remove-label.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: 🤖 Auto remove label on closed issue -on: - issues: - types: [closed] - -jobs: - remove_label: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4.1.7 - - uses: taiga-family/ci/actions/auto/remove-label@v1.80.0 diff --git a/.github/workflows/auto-approve.yml b/.github/workflows/pr.yml similarity index 60% rename from .github/workflows/auto-approve.yml rename to .github/workflows/pr.yml index 6437a72..b49d6ac 100644 --- a/.github/workflows/auto-approve.yml +++ b/.github/workflows/pr.yml @@ -1,4 +1,4 @@ -name: 🤖 Auto approve validation +name: 🤖 PR validation on: pull_request env: @@ -41,6 +41,28 @@ jobs: with: token: ${{ secrets.TAIGA_FAMILY_BOT_PAT }} + label-when-approved: + name: Label when approved + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4.1.7 + - uses: taiga-family/ci/actions/setup/variables@v1.80.0 + - uses: taiga-family/ci/actions/auto/label-when-approved@v1.80.0 + with: + approvals: 1 + token: ${{ secrets.GITHUB_TOKEN }} + + assign-author: + name: PR author as an assignee + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4.1.7 + - uses: taiga-family/ci/actions/setup/variables@v1.80.0 + - uses: toshimaru/auto-author-assign@v2.1.1 + if: env.IS_OWNER_MODE == 'true' + with: + repo-token: ${{ secrets.TAIGA_FAMILY_BOT_PAT }} + concurrency: - group: auto-approve-${{ github.head_ref }} + group: pr-${{ github.head_ref }} cancel-in-progress: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index df69d45..cd339e8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,20 +7,14 @@ on: - projects/ng-dompurify/** workflow_dispatch: inputs: - forcePush: - type: boolean - required: false - description: --force-publish package mode: type: choice - description: force package to be versioned (depend --force-publish) - required: false - default: minor + description: Bump version as requested + required: true options: - - patch - minor + - patch - major - - prepatch jobs: release: @@ -31,10 +25,23 @@ jobs: - uses: taiga-family/ci/actions/run/release-it@v1.80.0 with: ref: ${{ github.ref }} - githubToken: ${{ secrets.TAIGA_FAMILY_BOT_PAT }} - npmToken: ${{ secrets.TAIGA_UI_SCOPE_NPM_TOKEN }} - forcePush: ${{ github.event.inputs.forcePush }} mode: ${{ github.event.inputs.mode }} + npmToken: ${{ secrets.NPM_TOKEN }} + githubToken: ${{ secrets.TAIGA_FAMILY_BOT_PAT }} + + - id: info + run: | + echo "version=v$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT + echo "name=$(node -p "require('./package.json').name")" >> $GITHUB_OUTPUT + + - name: Announce to Telegram + uses: taiga-family/ci/actions/messenger/telegram/announce@v1.80.0 + with: + chatId: ${{ secrets.TAIGA_TELEGRAM_CHAT_ID }} + topicId: ${{ secrets.TAIGA_TELEGRAM_CHAT_THREAD_ID }} + token: ${{ secrets.TAIGA_TELEGRAM_BOT_TOKEN }} + version: ${{ steps.info.outputs.version }} + textLink: ${{ steps.info.outputs.name }} concurrency: group: release-${{ github.workflow }}-${{ github.ref }} diff --git a/.release-it.js b/.release-it.js new file mode 100644 index 0000000..97a878b --- /dev/null +++ b/.release-it.js @@ -0,0 +1 @@ +module.exports = require('@taiga-ui/release-it-config'); diff --git a/.release-it.json b/.release-it.json deleted file mode 100644 index 22c9cb1..0000000 --- a/.release-it.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "git": { - "commitMessage": "chore(release): v${version}", - "tagName": "v${version}" - }, - "github": { - "release": true, - "releaseNotes": "git log --no-merges --pretty=format:\"* %s %h\" ${latestTag}...main" - }, - "npm": { - "publish": false, - "skipChecks": true, - "allowSameVersion": true - }, - "plugins": { - "@release-it-plugins/workspaces": { - "skipChecks": true, - "publish": false - }, - "@release-it/conventional-changelog": { - "preset": "angular", - "infile": "CHANGELOG.md" - } - }, - "hooks": { - "after:bump": "npx nx build ng-dompurify && npx nx publish ng-dompurify", - "after:release": "echo Successfully released ${name} v${version} to ${repo.repository}." - } -} diff --git a/README.md b/README.md index 2107c66..9157c18 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,185 @@ [![npm bundle size](https://img.shields.io/bundlephobia/minzip/@taiga-ui/dompurify)](https://bundlephobia.com/result?p=@taiga-ui/dompurify) [![npm version](https://img.shields.io/npm/v/@taiga-ui/dompurify.svg?style=flat-square)](https://npmjs.com/package/@taiga-ui/dompurify) +[![code style: @tinkoff/linters](https://img.shields.io/badge/code%20style-%40tinkoff%2Flinters-blue?style=flat-square)](https://github.com/taiga-family/linters) > This library implements `DOMPurify` as Angular `Sanitizer` or `Pipe`. It delegates sanitizing to `DOMPurify` and > supports the same configuration. See [DOMPurify](https://github.com/cure53/DOMPurify). + +Read more about Sanitization in Angular and how ng-dompurify works in +[this article](https://medium.com/angular-in-depth/warning-sanitizing-html-stripped-some-content-and-how-to-deal-with-it-properly-10ff77012d5a). + +## Install + +``` +npm install @taiga-ui/dompurify +``` + +If you do not have `dompurify` in your package, install also: + +``` +npm install dompurify +npm install --save-dev @types/dompurify +``` + +## How to use + +Either use pipe to sanitize your content when binding to `[innerHTML]` or use `NgDompurifySanitizer` service manually. + +```typescript +import {NgDompurifyModule} from '@taiga-ui/dompurify'; + +@NgModule({ + imports: [NgDompurifyModule], +}) +export class MyModule {} +``` + +As a pipe: + +```html +
+``` + +As a service: + +```typescript +import {SecurityContext} from '@angular/core'; +import {NgDompurifySanitizer} from '@taiga-ui/dompurify'; + +@Component({}) +export class MyComponent { + constructor(private readonly dompurifySanitizer: NgDompurifySanitizer) {} + + purify(value: string): string { + return this.dompurifySanitizer.sanitize(SecurityContext.HTML, value); + } +} +``` + +You can also substitute Angular `Sanitizer` with `DOMPurify` so it is automatically used all the time: + +```typescript +import {NgModule, Sanitizer} from '@angular/core'; +import {NgDompurifySanitizer} from '@taiga-ui/dompurify'; +// ... + +@NgModule({ + // ... + providers: [ + { + provide: Sanitizer, + useClass: NgDompurifySanitizer, + }, + ], + // ... +}) +export class AppModule {} +``` + +## Configuring + +Config for `NgDompurifySanitizer` or `NgDompurifyDomSanitizer` can be provided using token `DOMPURIFY_CONFIG`. +`NgDompurifyPipe` supports passing DOMPurify config as an argument to override config from DI. + +```typescript +import {NgModule, Sanitizer} from '@angular/core'; +import {NgDompurifySanitizer, DOMPURIFY_CONFIG} from '@taiga-ui/dompurify'; +// ... + +@NgModule({ + // ... + providers: [ + { + provide: Sanitizer, + useClass: NgDompurifySanitizer, + }, + { + provide: DOMPURIFY_CONFIG, + useValue: {FORBID_ATTR: ['id']}, + }, + ], + // ... +}) +export class AppModule {} +``` + +## CSS sanitization + +DOMPurify does not support sanitizing CSS. Angular starting version 10 dropped CSS sanitation as something that presents +no threat in supported browsers. You can still provide a handler to sanitize CSS rules values upon binding if you want +to: + +```typescript +import {NgModule, Sanitizer} from '@angular/core'; +import {NgDompurifySanitizer, SANITIZE_STYLE} from '@taiga-ui/dompurify'; + +@NgModule({ + // ... + providers: [ + { + provide: Sanitizer, + useClass: NgDompurifySanitizer, + }, + { + provide: SANITIZE_STYLE, + useValue: yourImplementation, // <--- + }, + ], + // ... +}) +export class AppModule {} +``` + +## Hooks + +DOMPurify supports various hooks. You can provide them using `DOMPURIFY_HOOKS` token: + +```typescript +import {NgModule, Sanitizer} from '@angular/core'; +import {NgDompurifySanitizer, DOMPURIFY_HOOKS, SANITIZE_STYLE} from '@taiga-ui/dompurify'; + +@NgModule({ + // ... + providers: [ + { + provide: Sanitizer, + useClass: NgDompurifySanitizer, + }, + { + provide: SANITIZE_STYLE, + useValue: yourImplementation, + }, + { + provide: DOMPURIFY_HOOKS, + useValue: [ + { + name: 'beforeSanitizeAttributes', + hook: (node: Element) => { + node.removeAttribute('id'); + }, + }, + ], + }, + ], + // ... +}) +export class AppModule {} +``` + +## Maintained + +**@taiga-ui/dompurify** is a part of [Taiga UI](https://github.com/taiga-family/taiga-ui) libraries family which is +backed and used by a large enterprise. This means you can rely on timely support and continuous development. + +## License + +🆓 Feel free to use our library in your commercial and private applications + +All **@taiga-ui/dompurify** packages are covered by [Apache 2.0](/LICENSE) + +Read more about this license [here](https://choosealicense.com/licenses/apache-2.0/) + +## Demo + +You can see live demo here: https://stackblitz.com/github/taiga-family/ng-dompurify/tree/master/projects/demo diff --git a/package-lock.json b/package-lock.json index 3edc224..eef4464 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,9 @@ "version": "4.1.7", "hasInstallScript": true, "license": "Apache-2.0", - "workspaces": ["projects/*"], + "workspaces": [ + "projects/*" + ], "devDependencies": { "@angular-devkit/build-angular": "16.2.16", "@angular/animations": "16.2.12", @@ -35,12 +37,15 @@ "@nx/workspace": "19.8.0", "@release-it-plugins/workspaces": "4.2.0", "@release-it/conventional-changelog": "8.0.2", - "@taiga-ui/browserslist-config": "0.203.1", - "@taiga-ui/commitlint-config": "0.203.1", - "@taiga-ui/eslint-plugin-experience": "0.203.1", - "@taiga-ui/prettier-config": "0.203.1", - "@taiga-ui/stylelint-config": "0.203.1", - "@taiga-ui/tsconfig": "0.203.1", + "@taiga-ui/auto-changelog-config": "0.203.0", + "@taiga-ui/browserslist-config": "0.203.0", + "@taiga-ui/commitlint-config": "0.203.0", + "@taiga-ui/eslint-plugin-experience": "0.203.0", + "@taiga-ui/prettier-config": "0.203.0", + "@taiga-ui/release-it-config": "0.203.0", + "@taiga-ui/stylelint-config": "0.203.0", + "@taiga-ui/syncer": "0.203.0", + "@taiga-ui/tsconfig": "0.203.0", "@types/express": "4.17.21", "@types/jest": "29.5.13", "@types/node": "22.5.5", @@ -4000,11 +4005,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", - "cpu": ["ppc64"], + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["aix"], + "os": [ + "aix" + ], "engines": { "node": ">=12" } @@ -4013,11 +4022,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", - "cpu": ["arm"], + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["android"], + "os": [ + "android" + ], "engines": { "node": ">=12" } @@ -4026,11 +4039,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["android"], + "os": [ + "android" + ], "engines": { "node": ">=12" } @@ -4039,11 +4056,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["android"], + "os": [ + "android" + ], "engines": { "node": ">=12" } @@ -4052,11 +4073,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["darwin"], + "os": [ + "darwin" + ], "engines": { "node": ">=12" } @@ -4065,11 +4090,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["darwin"], + "os": [ + "darwin" + ], "engines": { "node": ">=12" } @@ -4078,11 +4107,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["freebsd"], + "os": [ + "freebsd" + ], "engines": { "node": ">=12" } @@ -4091,11 +4124,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["freebsd"], + "os": [ + "freebsd" + ], "engines": { "node": ">=12" } @@ -4104,11 +4141,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", - "cpu": ["arm"], + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -4117,11 +4158,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -4130,11 +4175,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", - "cpu": ["ia32"], + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -4143,11 +4192,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", - "cpu": ["loong64"], + "cpu": [ + "loong64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -4156,11 +4209,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", - "cpu": ["mips64el"], + "cpu": [ + "mips64el" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -4169,11 +4226,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", - "cpu": ["ppc64"], + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -4182,11 +4243,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", - "cpu": ["riscv64"], + "cpu": [ + "riscv64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -4195,11 +4260,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", - "cpu": ["s390x"], + "cpu": [ + "s390x" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -4208,11 +4277,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -4221,11 +4294,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["netbsd"], + "os": [ + "netbsd" + ], "engines": { "node": ">=12" } @@ -4234,11 +4311,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["openbsd"], + "os": [ + "openbsd" + ], "engines": { "node": ">=12" } @@ -4247,11 +4328,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["sunos"], + "os": [ + "sunos" + ], "engines": { "node": ">=12" } @@ -4260,11 +4345,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["win32"], + "os": [ + "win32" + ], "engines": { "node": ">=12" } @@ -4273,11 +4362,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", - "cpu": ["ia32"], + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["win32"], + "os": [ + "win32" + ], "engines": { "node": ">=12" } @@ -4286,11 +4379,15 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["win32"], + "os": [ + "win32" + ], "engines": { "node": ">=12" } @@ -6081,11 +6178,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.0.1.tgz", "integrity": "sha512-5qpvOu5IGwDo7MEKVqqyAxF90I6aLj4n07OzpARdgDRfz8UbBztTByBp0RC59r3J1Ij8uzYi6jI7r5Lws7nn6w==", - "cpu": ["arm"], + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["android"], + "os": [ + "android" + ], "engines": { "node": ">= 10" } @@ -6094,11 +6195,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.0.1.tgz", "integrity": "sha512-GqvXL0P8fZ+mQqG1g0o4AO9hJjQaeYG84FRfZaYjyJtZZZcMjXW5TwkL8Y8UApheJgyE13TQ4YNUssQaTgTyvA==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["android"], + "os": [ + "android" + ], "engines": { "node": ">= 10" } @@ -6107,11 +6212,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-arm64/-/nice-darwin-arm64-1.0.1.tgz", "integrity": "sha512-91k3HEqUl2fsrz/sKkuEkscj6EAj3/eZNCLqzD2AA0TtVbkQi8nqxZCZDMkfklULmxLkMxuUdKe7RvG/T6s2AA==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["darwin"], + "os": [ + "darwin" + ], "engines": { "node": ">= 10" } @@ -6120,11 +6229,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.0.1.tgz", "integrity": "sha512-jXnMleYSIR/+TAN/p5u+NkCA7yidgswx5ftqzXdD5wgy/hNR92oerTXHc0jrlBisbd7DpzoaGY4cFD7Sm5GlgQ==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["darwin"], + "os": [ + "darwin" + ], "engines": { "node": ">= 10" } @@ -6133,11 +6246,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.0.1.tgz", "integrity": "sha512-j+iJ/ezONXRQsVIB/FJfwjeQXX7A2tf3gEXs4WUGFrJjpe/z2KB7sOv6zpkm08PofF36C9S7wTNuzHZ/Iiccfw==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["freebsd"], + "os": [ + "freebsd" + ], "engines": { "node": ">= 10" } @@ -6146,11 +6263,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.0.1.tgz", "integrity": "sha512-G8RgJ8FYXYkkSGQwywAUh84m946UTn6l03/vmEXBYNJxQJcD+I3B3k5jmjFG/OPiU8DfvxutOP8bi+F89MCV7Q==", - "cpu": ["arm"], + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">= 10" } @@ -6159,11 +6280,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.0.1.tgz", "integrity": "sha512-IMDak59/W5JSab1oZvmNbrms3mHqcreaCeClUjwlwDr0m3BoR09ZiN8cKFBzuSlXgRdZ4PNqCYNeGQv7YMTjuA==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">= 10" } @@ -6172,11 +6297,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.0.1.tgz", "integrity": "sha512-wG8fa2VKuWM4CfjOjjRX9YLIbysSVV1S3Kgm2Fnc67ap/soHBeYZa6AGMeR5BJAylYRjnoVOzV19Cmkco3QEPw==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">= 10" } @@ -6185,11 +6314,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.0.1.tgz", "integrity": "sha512-lxQ9WrBf0IlNTCA9oS2jg/iAjQyTI6JHzABV664LLrLA/SIdD+I1i3Mjf7TsnoUbgopBcCuDztVLfJ0q9ubf6Q==", - "cpu": ["ppc64"], + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">= 10" } @@ -6198,11 +6331,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.0.1.tgz", "integrity": "sha512-3xs69dO8WSWBb13KBVex+yvxmUeEsdWexxibqskzoKaWx9AIqkMbWmE2npkazJoopPKX2ULKd8Fm9veEn0g4Ig==", - "cpu": ["riscv64"], + "cpu": [ + "riscv64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">= 10" } @@ -6211,11 +6348,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.0.1.tgz", "integrity": "sha512-lMFI3i9rlW7hgToyAzTaEybQYGbQHDrpRkg+1gJWEpH0PLAQoZ8jiY0IzakLfNWnVda1eTYYlxxFYzW8Rqczkg==", - "cpu": ["s390x"], + "cpu": [ + "s390x" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">= 10" } @@ -6224,11 +6365,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.0.1.tgz", "integrity": "sha512-XQAJs7DRN2GpLN6Fb+ZdGFeYZDdGl2Fn3TmFlqEL5JorgWKrQGRUrpGKbgZ25UeZPILuTKJ+OowG2avN8mThBA==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">= 10" } @@ -6237,11 +6382,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.0.1.tgz", "integrity": "sha512-/rodHpRSgiI9o1faq9SZOp/o2QkKQg7T+DK0R5AkbnI/YxvAIEHf2cngjYzLMQSQgUhxym+LFr+UGZx4vK4QdQ==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">= 10" } @@ -6250,11 +6399,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.0.1.tgz", "integrity": "sha512-rEcz9vZymaCB3OqEXoHnp9YViLct8ugF+6uO5McifTedjq4QMQs3DHz35xBEGhH3gJWEsXMUbzazkz5KNM5YUg==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["win32"], + "os": [ + "win32" + ], "engines": { "node": ">= 10" } @@ -6263,11 +6416,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.0.1.tgz", "integrity": "sha512-t7eBAyPUrWL8su3gDxw9xxxqNwZzAqKo0Szv3IjVQd1GpXXVkb6vBBQUuxfIYaXMzZLwlxRQ7uzM2vdUE9ULGw==", - "cpu": ["ia32"], + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["win32"], + "os": [ + "win32" + ], "engines": { "node": ">= 10" } @@ -6276,11 +6433,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.0.1.tgz", "integrity": "sha512-JlF+uDcatt3St2ntBG8H02F1mM45i5SF9W+bIKiReVE6wiy3o16oBP/yxt+RZ+N6LbCImJXJ6bXNO2kn9AXicg==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["win32"], + "os": [ + "win32" + ], "engines": { "node": ">= 10" } @@ -7591,11 +7752,15 @@ "version": "19.8.0", "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.8.0.tgz", "integrity": "sha512-JWtBb6ndCdGE+RBIwKN85BZnX41lFGsFxnsmot71GeAj/g7Cb0PM2qcmxawoy8yLPTBGZhb+eHER3z3nDIqRog==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["darwin"], + "os": [ + "darwin" + ], "engines": { "node": ">= 10" } @@ -7604,11 +7769,15 @@ "version": "19.8.0", "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.8.0.tgz", "integrity": "sha512-NcNaqbbStBkyahLaoKFtW6nEdjCjYT5ZOmGjc6UpAx1Y3pkk/FcIOYJRCBxwuOsRRsEAyeVcHPdYrouZmV+6Yw==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["darwin"], + "os": [ + "darwin" + ], "engines": { "node": ">= 10" } @@ -7617,11 +7786,15 @@ "version": "19.8.0", "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.8.0.tgz", "integrity": "sha512-QXHRnMW5LrpYvtmdFRL2CRgX9CWDccrs2xhQNNzcgsLgL87Wte5kjDoJJN4GQjtrmjD3Q93w67CE9lhqnpXBvQ==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["freebsd"], + "os": [ + "freebsd" + ], "engines": { "node": ">= 10" } @@ -7630,11 +7803,15 @@ "version": "19.8.0", "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.8.0.tgz", "integrity": "sha512-VjZOLMxz0gT+0AdDygxQS0Vvi3AcEzO3y9o9WdGKKaDVUDycrFn72X+ZbvFoio1dF7S1s2TbmOlR09Bu1yTgGg==", - "cpu": ["arm"], + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">= 10" } @@ -7643,11 +7820,15 @@ "version": "19.8.0", "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.8.0.tgz", "integrity": "sha512-sCSrXkSmEfDUDGLESXB3eHXECAIYz9nosFZpCggyUP1vgF/QcV40fHnV38nrFbKaVHuoaxy43RgnD+I3o6sDSw==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">= 10" } @@ -7656,11 +7837,15 @@ "version": "19.8.0", "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.8.0.tgz", "integrity": "sha512-F3xEe7NGjsVKZTVlvUiUOTmCzxteRsQH2SSsYXyAfgJ42P3eZPc9HgeLx6RByjC/NBCwc7XEECMP1FjQgQXHVw==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">= 10" } @@ -7669,11 +7854,15 @@ "version": "19.8.0", "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.8.0.tgz", "integrity": "sha512-4uYuE+LvxOFXvi9z9ueJSVrME5D383SHNCjs6jYwc9KovCsmL5oPVXRieoE4/hYI4lrjly+CrAnPZU1P7ocBiw==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">= 10" } @@ -7682,11 +7871,15 @@ "version": "19.8.0", "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.8.0.tgz", "integrity": "sha512-9UDEGjOvNt+m+kMBCAB7CGisSwv05Xvaq8K3NJ+xM5GPG74EkQel24mSoIJfm/6zmDkdZCiRzNN9VRjOjzOz6Q==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">= 10" } @@ -7695,11 +7888,15 @@ "version": "19.8.0", "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.8.0.tgz", "integrity": "sha512-JVzm0KjyLZY5ponBukZ/b35wttW0b3LB0nqaiiHY7WKwSzo+m0UGEYHD/Yk6rKA0RRZN2wQVeIzLeWfYcZYrhA==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["win32"], + "os": [ + "win32" + ], "engines": { "node": ">= 10" } @@ -7708,11 +7905,15 @@ "version": "19.8.0", "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.8.0.tgz", "integrity": "sha512-IRLhMZIInvp9okLsjnj76zaz8iaMovtLr6MHIFOOPIMsZYRhqQTArF5Os/NqEezeYYxvX6YZ5hKYe0xQO7A5LA==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["win32"], + "os": [ + "win32" + ], "engines": { "node": ">= 10" } @@ -9444,17 +9645,27 @@ "node": ">=14.16" } }, + "node_modules/@taiga-ui/auto-changelog-config": { + "version": "0.203.0", + "resolved": "https://registry.npmjs.org/@taiga-ui/auto-changelog-config/-/auto-changelog-config-0.203.0.tgz", + "integrity": "sha512-fOa0f05SjtZCfNCz8iwIu2eSUwFQ9b4aljtK2v30v4SJUrX6yYb+Bp3YvCyi8Tk56ZEBW1xgbNIux81BfjU3Cg==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "auto-changelog": "2.5.0" + } + }, "node_modules/@taiga-ui/browserslist-config": { - "version": "0.203.1", - "resolved": "https://registry.npmjs.org/@taiga-ui/browserslist-config/-/browserslist-config-0.203.1.tgz", - "integrity": "sha512-yYHU4e3HZI354tAYtrxzADJ59dQS8iXUgvUmE+xG0SOjqWNzNMjDZlhSJHBsQqImgMkgekY87LLAvolRp7+bEw==", + "version": "0.203.0", + "resolved": "https://registry.npmjs.org/@taiga-ui/browserslist-config/-/browserslist-config-0.203.0.tgz", + "integrity": "sha512-NyxxiUXeGXO6mL9QDXq7IRRTuUTxJfBVcOLe5tHlua0sVl2LZ3XrPk2i/Ej7ZSdAZc1xZtNwdmvMGGih3nSXkA==", "dev": true, "license": "Apache-2.0" }, "node_modules/@taiga-ui/commitlint-config": { - "version": "0.203.1", - "resolved": "https://registry.npmjs.org/@taiga-ui/commitlint-config/-/commitlint-config-0.203.1.tgz", - "integrity": "sha512-9fEkUmBc5A2TFDEnrF1tau/Z4O0qNE2+IENbzFOiIB6uoM+wxw5Fhmdo18NyFqKx6S8PbiuAfTmUwa2o9nAG/g==", + "version": "0.203.0", + "resolved": "https://registry.npmjs.org/@taiga-ui/commitlint-config/-/commitlint-config-0.203.0.tgz", + "integrity": "sha512-ezzgDIf5ewyKDgf0LOd0CXMVmiG+iaBXO3mhtMLjG9YszzpOETS2BwDSOY0mH1Z9DsRbENL2TQZrNh4hFalQrA==", "dev": true, "license": "Apache-2.0", "peerDependencies": { @@ -9467,9 +9678,9 @@ "link": true }, "node_modules/@taiga-ui/eslint-plugin-experience": { - "version": "0.203.1", - "resolved": "https://registry.npmjs.org/@taiga-ui/eslint-plugin-experience/-/eslint-plugin-experience-0.203.1.tgz", - "integrity": "sha512-0A5jB6UPCkpW8RDt2yvSKppr+SF5UUkY5BAmaY3LOB6hh7vXeFposXfAiqa4nJlCt8t3QrQtOGo/P/78sgz2pg==", + "version": "0.203.0", + "resolved": "https://registry.npmjs.org/@taiga-ui/eslint-plugin-experience/-/eslint-plugin-experience-0.203.0.tgz", + "integrity": "sha512-w2D3IjGUo9KV8t9GWk92VuNAkw0q0jvuHHuL7utTFR2FGDa9uGx0N0lK+PutGlkI/5AimBz53D1AkpCQUTwNAw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -9515,9 +9726,9 @@ } }, "node_modules/@taiga-ui/prettier-config": { - "version": "0.203.1", - "resolved": "https://registry.npmjs.org/@taiga-ui/prettier-config/-/prettier-config-0.203.1.tgz", - "integrity": "sha512-AdrwNZWj5gXin1M+FYGKvobPJ30CW+f+2/2SlCa+sOkE7/TN+cHkkC8fKwOUTtBLM9exOKtxPwNoasven3hA3g==", + "version": "0.203.0", + "resolved": "https://registry.npmjs.org/@taiga-ui/prettier-config/-/prettier-config-0.203.0.tgz", + "integrity": "sha512-RZIV/v66jwieo+iVYPPf2fYHbzQJUN4z9UcmqlOtdYRwe6udHKJQbRL6VyseeoaMhFUi/XiUzDZC5QyQQjOMEg==", "dev": true, "license": "Apache-2.0", "peerDependencies": { @@ -9529,10 +9740,20 @@ "stylelint-prettier": "^5.0.2" } }, + "node_modules/@taiga-ui/release-it-config": { + "version": "0.203.0", + "resolved": "https://registry.npmjs.org/@taiga-ui/release-it-config/-/release-it-config-0.203.0.tgz", + "integrity": "sha512-a1Bd65cY0YF3zwwe0cnWS0EtK0SNYbYUsh+b8dAeMFxtzIls22i6hVzjCxrKZ94PYti1J6vKFBBmLAw17Pk5dA==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "release-it": "17.6.0" + } + }, "node_modules/@taiga-ui/stylelint-config": { - "version": "0.203.1", - "resolved": "https://registry.npmjs.org/@taiga-ui/stylelint-config/-/stylelint-config-0.203.1.tgz", - "integrity": "sha512-rWTXY5+2ie+j7+Oy9FGXrRRRmiUx/0IZauC1fDsO7bTD6g4MurzCgIxL15OODBNnQzYUghBVBzHP8U9tVuikig==", + "version": "0.203.0", + "resolved": "https://registry.npmjs.org/@taiga-ui/stylelint-config/-/stylelint-config-0.203.0.tgz", + "integrity": "sha512-UoOtHt+B8dXy+4Em6Km0P6JlSarZveo2HlyEapdfxp3gIYJLZVSrKRb0++IO+KSQPEu4YIKrODr/NMNvloBT/A==", "dev": true, "license": "Apache-2.0", "peerDependencies": { @@ -9545,10 +9766,26 @@ "stylelint-use-logical": "^2.1.2" } }, + "node_modules/@taiga-ui/syncer": { + "version": "0.203.0", + "resolved": "https://registry.npmjs.org/@taiga-ui/syncer/-/syncer-0.203.0.tgz", + "integrity": "sha512-Iuchr1WtWY2pmlEwtBP+7QEY12M3kPDtIH7htTxjZ08Sp/FYAZ1sF5J4nLC31XpfAyzn7hMov2FOikzrJ9iSGw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "glob": "11.0.0" + }, + "bin": { + "syncer": "bin/src/index.js" + }, + "peerDependencies": { + "glob": "*" + } + }, "node_modules/@taiga-ui/tsconfig": { - "version": "0.203.1", - "resolved": "https://registry.npmjs.org/@taiga-ui/tsconfig/-/tsconfig-0.203.1.tgz", - "integrity": "sha512-ytUn0x6SKJwL6Agxfqd5g6+5hcawLKPc4BIWa3Jy3/TEoli2sC7bY7p3o5iCbvHUqhLa6RKtRd6itxlj5ARvsg==", + "version": "0.203.0", + "resolved": "https://registry.npmjs.org/@taiga-ui/tsconfig/-/tsconfig-0.203.0.tgz", + "integrity": "sha512-KosVdcX8DUa5yeE1lFivijA3GR66tMoaCGtGLoddHU7LYuCSMCPwcLuX8slGcLZt+pIQ2UY/oapJxYlevw5Ldw==", "dev": true, "license": "Apache-2.0" }, @@ -11468,7 +11705,9 @@ "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true, - "engines": ["node >= 0.8.0"], + "engines": [ + "node >= 0.8.0" + ], "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" @@ -11851,6 +12090,28 @@ "node": ">=0.8" } }, + "node_modules/auto-changelog": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/auto-changelog/-/auto-changelog-2.5.0.tgz", + "integrity": "sha512-UTnLjT7I9U2U/xkCUH5buDlp8C7g0SGChfib+iDrJkamcj5kaMqNKHNfbKJw1kthJUq8sUo3i3q2S6FzO/l/wA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "commander": "^7.2.0", + "handlebars": "^4.7.7", + "import-cwd": "^3.0.0", + "node-fetch": "^2.6.1", + "parse-github-url": "^1.0.3", + "semver": "^7.3.5" + }, + "bin": { + "auto-changelog": "src/index.js" + }, + "engines": { + "node": ">=8.3" + } + }, "node_modules/autoprefixer": { "version": "10.4.14", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", @@ -13755,13 +14016,13 @@ } }, "node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">= 10" } }, "node_modules/common-path-prefix": { @@ -13878,7 +14139,9 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "dev": true, - "engines": ["node >= 6.0"], + "engines": [ + "node >= 6.0" + ], "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", @@ -15084,13 +15347,13 @@ } }, "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 12" + "node": ">= 14" } }, "node_modules/data-urls": { @@ -17227,7 +17490,9 @@ "dev": true, "license": "MIT", "peer": true, - "workspaces": ["examples"], + "workspaces": [ + "examples" + ], "dependencies": { "globals": "^13.23.0" }, @@ -20229,7 +20494,9 @@ "hasInstallScript": true, "license": "MIT", "optional": true, - "os": ["darwin"], + "os": [ + "darwin" + ], "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } @@ -20450,16 +20717,6 @@ "node": ">= 14" } }, - "node_modules/get-uri/node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/get-uri/node_modules/fs-extra": { "version": "11.2.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", @@ -21632,6 +21889,20 @@ "node": ">=0.10.0" } }, + "node_modules/import-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", + "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "import-from": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -21659,6 +21930,20 @@ "node": ">=4" } }, + "node_modules/import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", @@ -25315,7 +25600,9 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, - "engines": ["node >= 0.2.0"], + "engines": [ + "node >= 0.2.0" + ], "license": "MIT" }, "node_modules/JSONStream": { @@ -25797,6 +26084,16 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/lint-staged/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/lint-staged/node_modules/execa": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", @@ -27732,11 +28029,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", - "cpu": ["arm"], + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["android"], + "os": [ + "android" + ], "engines": { "node": ">=12" } @@ -27745,11 +28046,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["android"], + "os": [ + "android" + ], "engines": { "node": ">=12" } @@ -27758,11 +28063,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["android"], + "os": [ + "android" + ], "engines": { "node": ">=12" } @@ -27771,11 +28080,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["darwin"], + "os": [ + "darwin" + ], "engines": { "node": ">=12" } @@ -27784,11 +28097,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["darwin"], + "os": [ + "darwin" + ], "engines": { "node": ">=12" } @@ -27797,11 +28114,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["freebsd"], + "os": [ + "freebsd" + ], "engines": { "node": ">=12" } @@ -27810,11 +28131,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["freebsd"], + "os": [ + "freebsd" + ], "engines": { "node": ">=12" } @@ -27823,11 +28148,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", - "cpu": ["arm"], + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -27836,11 +28165,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -27849,11 +28182,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", - "cpu": ["ia32"], + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -27862,11 +28199,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", - "cpu": ["loong64"], + "cpu": [ + "loong64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -27875,11 +28216,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", - "cpu": ["mips64el"], + "cpu": [ + "mips64el" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -27888,11 +28233,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", - "cpu": ["ppc64"], + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -27901,11 +28250,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", - "cpu": ["riscv64"], + "cpu": [ + "riscv64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -27914,11 +28267,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", - "cpu": ["s390x"], + "cpu": [ + "s390x" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -27927,11 +28284,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["linux"], + "os": [ + "linux" + ], "engines": { "node": ">=12" } @@ -27940,11 +28301,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["netbsd"], + "os": [ + "netbsd" + ], "engines": { "node": ">=12" } @@ -27953,11 +28318,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["openbsd"], + "os": [ + "openbsd" + ], "engines": { "node": ">=12" } @@ -27966,11 +28335,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["sunos"], + "os": [ + "sunos" + ], "engines": { "node": ">=12" } @@ -27979,11 +28352,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", - "cpu": ["arm64"], + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["win32"], + "os": [ + "win32" + ], "engines": { "node": ">=12" } @@ -27992,11 +28369,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", - "cpu": ["ia32"], + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["win32"], + "os": [ + "win32" + ], "engines": { "node": ">=12" } @@ -28005,11 +28386,15 @@ "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", - "cpu": ["x64"], + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", "optional": true, - "os": ["win32"], + "os": [ + "win32" + ], "engines": { "node": ">=12" } @@ -28092,7 +28477,9 @@ "hasInstallScript": true, "license": "MIT", "optional": true, - "os": ["!win32"], + "os": [ + "!win32" + ], "dependencies": { "node-addon-api": "^3.0.0", "node-gyp-build": "^4.2.2" @@ -28146,22 +28533,53 @@ } }, "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" + "whatwg-url": "^5.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "4.x || >=6.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "node_modules/node-forge": { @@ -29858,6 +30276,20 @@ "node": ">=0.10.0" } }, + "node_modules/parse-github-url": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.3.tgz", + "integrity": "sha512-tfalY5/4SqGaV/GIGzWyHnFjlpTPTNpENR9Ea2lLldSJ8EWXMsvacWucqY3m3I4YPtas15IxTLQVQ5NSYXPrww==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "parse-github-url": "cli.js" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -32436,6 +32868,16 @@ "dev": true, "license": "MIT" }, + "node_modules/release-it/node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/release-it/node_modules/define-lazy-prop": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", @@ -32668,6 +33110,25 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/release-it/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, "node_modules/release-it/node_modules/npm-run-path": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", @@ -36062,16 +36523,6 @@ "url": "https://opencollective.com/svgo" } }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", diff --git a/package.json b/package.json index 1d9cdb9..fa224aa 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,7 @@ "angular", "ng", "dompurify", - "DomSanitizer", - "tinkoff" + "DomSanitizer" ], "homepage": "https://github.com/taiga-family/ng-dompurify#README", "bugs": "https://github.com/taiga-family/ng-dompurify/issues", @@ -106,12 +105,15 @@ "@nx/workspace": "19.8.0", "@release-it-plugins/workspaces": "4.2.0", "@release-it/conventional-changelog": "8.0.2", - "@taiga-ui/browserslist-config": "0.203.1", - "@taiga-ui/commitlint-config": "0.203.1", - "@taiga-ui/eslint-plugin-experience": "0.203.1", - "@taiga-ui/prettier-config": "0.203.1", - "@taiga-ui/stylelint-config": "0.203.1", - "@taiga-ui/tsconfig": "0.203.1", + "@taiga-ui/auto-changelog-config": "0.203.0", + "@taiga-ui/browserslist-config": "0.203.0", + "@taiga-ui/commitlint-config": "0.203.0", + "@taiga-ui/eslint-plugin-experience": "0.203.0", + "@taiga-ui/prettier-config": "0.203.0", + "@taiga-ui/release-it-config": "0.203.0", + "@taiga-ui/stylelint-config": "0.203.0", + "@taiga-ui/syncer": "0.203.0", + "@taiga-ui/tsconfig": "0.203.0", "@types/express": "4.17.21", "@types/jest": "29.5.13", "@types/node": "22.5.5", @@ -128,5 +130,16 @@ "ts-jest": "29.2.5", "ts-node": "10.9.2", "typescript": "5.0.4" + }, + "syncer": { + "includePaths": [ + "./projects", + "./package-lock.json" + ], + "matchPackageNames": [ + "@taiga-ui/dompurify", + "ng-dompurify" + ], + "ignorePackageNames": [] } } diff --git a/projects/ng-dompurify/CHANGELOG.md b/projects/ng-dompurify/CHANGELOG.md deleted file mode 100644 index 6b2d44b..0000000 --- a/projects/ng-dompurify/CHANGELOG.md +++ /dev/null @@ -1,103 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. See -[standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - -## [4.0.0](https://github.com/taiga-family/ng-dompurify/compare/v3.0.0...v4.0.0) (2022-10-17) - -- Update to Angular 12 and Ivy publication. - -## [3.0.0](https://github.com/taiga-family/ng-dompurify/compare/v2.1.0...v3.0.0) (2020-08-24) - -### Bug Fixes - -- **ssr:** fix type error in SSR environment ([#41](https://github.com/taiga-family/ng-dompurify/issues/41)) - ([14299c5](https://github.com/taiga-family/ng-dompurify/commit/14299c5)) - -### Features - -- **sanitizer:** Remove DOM implementation as unnecessary and update docs accordingly, remove CSS sanitation by default - ([#56](https://github.com/taiga-family/ng-dompurify/issues/56)) - ([d50cbdd](https://github.com/taiga-family/ng-dompurify/commit/d50cbdd)) - -## [2.2.0](https://github.com/taiga-family/ng-dompurify/compare/v2.1.0...v2.2.0) (2020-03-31) - -### Bug Fixes - -- **ssr:** fix type error in SSR environment ([#41](https://github.com/taiga-family/ng-dompurify/issues/41)) - ([14299c5](https://github.com/taiga-family/ng-dompurify/commit/14299c5)) - -### Features - -- **pipe:** config is now optional ([888ef8b](https://github.com/taiga-family/ng-dompurify/commit/888ef8b)) - -## [2.1.0](https://github.com/taiga-family/ng-dompurify/compare/v2.0.1...v2.1.0) (2020-03-11) - -### Bug Fixes - -- **service:** implements now Angular Sanitizer insted of extending it to prevent problems in Ivy projects - ([2e7f7a7](https://github.com/taiga-family/ng-dompurify/commit/2e7f7a7)) - -### [2.0.1](https://github.com/taiga-family/ng-dompurify/compare/v2.0.0...v2.0.1) (2020-02-26) - -### Bug Fixes - -- **SVG:** fix SVG style vulnerability ([#36](https://github.com/taiga-family/ng-dompurify/issues/36)) - ([87edb38](https://github.com/taiga-family/ng-dompurify/commit/87edb38)) - -## [2.0.0](https://github.com/taiga-family/ng-dompurify/compare/v1.1.1...v2.0.0) (2019-11-05) - -### Features - -- **ssr:** support server side environment and update to DOMPurify 2+ - ([#30](https://github.com/taiga-family/ng-dompurify/issues/30)) - ([65ea43d](https://github.com/taiga-family/ng-dompurify/commit/65ea43d)) - -### [1.1.4](https://github.com/taiga-family/ng-dompurify/compare/v1.1.1...v1.1.4) (2019-09-09) - -### Features - -- **package-json:** update peer dependencies - -### [1.1.3](https://github.com/taiga-family/ng-dompurify/compare/v1.1.1...v1.1.3) (2019-09-02) - -### Bug Fixes - -- **dependencies:** set dependencies to be backwards compatible with Angular 6-7 - ([906b61d](https://github.com/taiga-family/ng-dompurify/commit/906b61d)) - -### [1.1.2](https://github.com/taiga-family/ng-dompurify/compare/v1.1.1...v1.1.2) (2019-09-02) - -### Bug Fixes - -- **dependencies:** make compatible with Angular 7 - ([7b3963a](https://github.com/taiga-family/ng-dompurify/commit/7b3963a)) - -### [1.1.1](https://github.com/taiga-family/ng-dompurify/compare/v1.1.0...v1.1.1) (2019-09-02) - -### Bug Fixes - -- **types:** preserve ReadonlyArray in compiled code to support older TypeScript versions - ([387e87b](https://github.com/taiga-family/ng-dompurify/commit/387e87b)) - -## [1.1.0](https://github.com/taiga-family/ng-dompurify/compare/v1.0.0...v1.1.0) (2019-08-30) - -### Features - -- **css:** support sanitizing CSS through provided handler - ([be0d3a6](https://github.com/taiga-family/ng-dompurify/commit/be0d3a6)) -- **NgDompurifySanitizer:** make service a single point of entrance to be able to attach hooks to DOMPurify in its - constructor later ([78ccfe9](https://github.com/taiga-family/ng-dompurify/commit/78ccfe9)) - -## 1.0.0 (2019-08-02) - -Initial release of NgDompurify. This library implements DOMPurify as Angular entire DomSanitizer and as standalone -Sanitizer or Pipe. It delegates sanitizing to DOMPurify and supports the same configuration. - -### Features - -- **NgDompurifyPipe:** add pipe ([916df6c](https://github.com/taiga-family/ng-dompurify/commit/916df6c)) -- **NgDompurifyDomSanitizer:** add DOM sanitizer service - ([916df6c](https://github.com/taiga-family/ng-dompurify/commit/916df6c)) -- **NgDompurifySanitizer:** add sanitizer service - ([916df6c](https://github.com/taiga-family/ng-dompurify/commit/916df6c)) diff --git a/projects/ng-dompurify/README.md b/projects/ng-dompurify/README.md deleted file mode 100644 index 9157c18..0000000 --- a/projects/ng-dompurify/README.md +++ /dev/null @@ -1,186 +0,0 @@ -# NgDompurify - -[![npm bundle size](https://img.shields.io/bundlephobia/minzip/@taiga-ui/dompurify)](https://bundlephobia.com/result?p=@taiga-ui/dompurify) -[![npm version](https://img.shields.io/npm/v/@taiga-ui/dompurify.svg?style=flat-square)](https://npmjs.com/package/@taiga-ui/dompurify) -[![code style: @tinkoff/linters](https://img.shields.io/badge/code%20style-%40tinkoff%2Flinters-blue?style=flat-square)](https://github.com/taiga-family/linters) - -> This library implements `DOMPurify` as Angular `Sanitizer` or `Pipe`. It delegates sanitizing to `DOMPurify` and -> supports the same configuration. See [DOMPurify](https://github.com/cure53/DOMPurify). - -Read more about Sanitization in Angular and how ng-dompurify works in -[this article](https://medium.com/angular-in-depth/warning-sanitizing-html-stripped-some-content-and-how-to-deal-with-it-properly-10ff77012d5a). - -## Install - -``` -npm install @taiga-ui/dompurify -``` - -If you do not have `dompurify` in your package, install also: - -``` -npm install dompurify -npm install --save-dev @types/dompurify -``` - -## How to use - -Either use pipe to sanitize your content when binding to `[innerHTML]` or use `NgDompurifySanitizer` service manually. - -```typescript -import {NgDompurifyModule} from '@taiga-ui/dompurify'; - -@NgModule({ - imports: [NgDompurifyModule], -}) -export class MyModule {} -``` - -As a pipe: - -```html -
-``` - -As a service: - -```typescript -import {SecurityContext} from '@angular/core'; -import {NgDompurifySanitizer} from '@taiga-ui/dompurify'; - -@Component({}) -export class MyComponent { - constructor(private readonly dompurifySanitizer: NgDompurifySanitizer) {} - - purify(value: string): string { - return this.dompurifySanitizer.sanitize(SecurityContext.HTML, value); - } -} -``` - -You can also substitute Angular `Sanitizer` with `DOMPurify` so it is automatically used all the time: - -```typescript -import {NgModule, Sanitizer} from '@angular/core'; -import {NgDompurifySanitizer} from '@taiga-ui/dompurify'; -// ... - -@NgModule({ - // ... - providers: [ - { - provide: Sanitizer, - useClass: NgDompurifySanitizer, - }, - ], - // ... -}) -export class AppModule {} -``` - -## Configuring - -Config for `NgDompurifySanitizer` or `NgDompurifyDomSanitizer` can be provided using token `DOMPURIFY_CONFIG`. -`NgDompurifyPipe` supports passing DOMPurify config as an argument to override config from DI. - -```typescript -import {NgModule, Sanitizer} from '@angular/core'; -import {NgDompurifySanitizer, DOMPURIFY_CONFIG} from '@taiga-ui/dompurify'; -// ... - -@NgModule({ - // ... - providers: [ - { - provide: Sanitizer, - useClass: NgDompurifySanitizer, - }, - { - provide: DOMPURIFY_CONFIG, - useValue: {FORBID_ATTR: ['id']}, - }, - ], - // ... -}) -export class AppModule {} -``` - -## CSS sanitization - -DOMPurify does not support sanitizing CSS. Angular starting version 10 dropped CSS sanitation as something that presents -no threat in supported browsers. You can still provide a handler to sanitize CSS rules values upon binding if you want -to: - -```typescript -import {NgModule, Sanitizer} from '@angular/core'; -import {NgDompurifySanitizer, SANITIZE_STYLE} from '@taiga-ui/dompurify'; - -@NgModule({ - // ... - providers: [ - { - provide: Sanitizer, - useClass: NgDompurifySanitizer, - }, - { - provide: SANITIZE_STYLE, - useValue: yourImplementation, // <--- - }, - ], - // ... -}) -export class AppModule {} -``` - -## Hooks - -DOMPurify supports various hooks. You can provide them using `DOMPURIFY_HOOKS` token: - -```typescript -import {NgModule, Sanitizer} from '@angular/core'; -import {NgDompurifySanitizer, DOMPURIFY_HOOKS, SANITIZE_STYLE} from '@taiga-ui/dompurify'; - -@NgModule({ - // ... - providers: [ - { - provide: Sanitizer, - useClass: NgDompurifySanitizer, - }, - { - provide: SANITIZE_STYLE, - useValue: yourImplementation, - }, - { - provide: DOMPURIFY_HOOKS, - useValue: [ - { - name: 'beforeSanitizeAttributes', - hook: (node: Element) => { - node.removeAttribute('id'); - }, - }, - ], - }, - ], - // ... -}) -export class AppModule {} -``` - -## Maintained - -**@taiga-ui/dompurify** is a part of [Taiga UI](https://github.com/taiga-family/taiga-ui) libraries family which is -backed and used by a large enterprise. This means you can rely on timely support and continuous development. - -## License - -🆓 Feel free to use our library in your commercial and private applications - -All **@taiga-ui/dompurify** packages are covered by [Apache 2.0](/LICENSE) - -Read more about this license [here](https://choosealicense.com/licenses/apache-2.0/) - -## Demo - -You can see live demo here: https://stackblitz.com/github/taiga-family/ng-dompurify/tree/master/projects/demo diff --git a/projects/ng-dompurify/ng-package.json b/projects/ng-dompurify/ng-package.json index 1c2a670..5ceca05 100644 --- a/projects/ng-dompurify/ng-package.json +++ b/projects/ng-dompurify/ng-package.json @@ -1,9 +1,5 @@ { "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", - "assets": [ - "CHANGELOG.md", - "README.md" - ], "dest": "../../dist/ng-dompurify", "lib": { "entryFile": "lib/index.ts" diff --git a/projects/ng-dompurify/project.json b/projects/ng-dompurify/project.json index 0bb7e4f..04934e9 100644 --- a/projects/ng-dompurify/project.json +++ b/projects/ng-dompurify/project.json @@ -7,17 +7,29 @@ "targets": { "build": { "executor": "@angular-devkit/build-angular:ng-packagr", - "assets": ["README.md"], "options": { - "tsConfig": "projects/ng-dompurify/tsconfig.lib.json", - "project": "projects/ng-dompurify/ng-package.json" + "tsConfig": "projects/{projectName}/tsconfig.lib.json", + "project": "projects/{projectName}/ng-package.json" } }, - "publish": { + "prepublish": { "executor": "nx:run-commands", "options": { - "command": "export TAG=\"$(node -p \"require('./package.json')?.version?.includes('alpha') ? 'alpha' : 'latest'\")\" && npm publish --tag $TAG ./dist/ng-dompurify --access=public --verbose --ignore-scripts || echo 'already published'" + "command": "cp ./LICENSE ./README.md ./dist/{projectName}" } + }, + "publish": { + "executor": "nx:run-commands", + "options": { + "command": "npm publish ./dist/{projectName} --ignore-scripts" + }, + "dependsOn": [ + { + "target": "prepublish", + "params": "ignore", + "dependencies": false + } + ] } } }