diff --git a/.editorconfig b/.editorconfig index 6e87a003da8..0301b00a80f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,6 +7,7 @@ indent_style = space indent_size = 2 insert_final_newline = true trim_trailing_whitespace = true +end_of_line = lf [*.md] max_line_length = off diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000000..db5b388c46f --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,82 @@ +{ + "root": true, + "overrides": [ + { + "files": ["*.ts"], + "parserOptions": { + "project": ["tsconfig.eslint.json"], + "createDefaultProgram": true + }, + "extends": [ + "plugin:@angular-eslint/ng-cli-compat", + "plugin:@angular-eslint/ng-cli-compat--formatting-add-on", + "plugin:@angular-eslint/template/process-inline-templates" + ], + "plugins": ["deprecation"], + "rules": { + "@angular-eslint/no-host-metadata-property": "off", + "@typescript-eslint/no-empty-interface": "off", + "deprecation/deprecation": "warn", + "prefer-arrow/prefer-arrow-functions": "off", + "@typescript-eslint/no-inferrable-types": "off", + "@typescript-eslint/naming-convention": "off", + "space-before-function-paren": "off", + "@angular-eslint/no-input-rename": "off", + "curly": "off", + "no-var": "off", + "@typescript-eslint/ban-types": "off", + "jsdoc/newline-after-description": "off", + "no-shadow": "off", + "@typescript-eslint/no-unused-expressions": "off", + "@typescript-eslint/member-ordering": "off", + "arrow-body-style": "off", + "object-shorthand": "off", + "one-var": "off", + "@typescript-eslint/prefer-for-of": "off", + "jsdoc/no-types": "off", + "no-fallthrough": "off", + "prefer-const": "off", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/consistent-type-assertions": "off", + "@angular-eslint/use-lifecycle-interface": "error", + "@typescript-eslint/quotes": "off", + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "cx", + "style": "kebab-case" + } + ], + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "cx", + "style": "camelCase" + } + ], + "@typescript-eslint/consistent-type-definitions": "off", + "@typescript-eslint/dot-notation": "off", + "@typescript-eslint/explicit-member-accessibility": [ + "off", + { + "accessibility": "explicit" + } + ], + "id-blacklist": "off", + "id-match": "off", + "max-len": "off", + "linebreak-style": ["error", "unix"], + "no-underscore-dangle": "off" + } + }, + { + "files": ["*.html"], + "extends": ["plugin:@angular-eslint/template/recommended"], + "rules": { + "@angular-eslint/template/no-negated-async": "off" + } + } + ] +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000000..fcadb2cf979 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text eol=lf diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 367b5746e19..6e9875d5f29 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -6,8 +6,8 @@ "msjsdiag.debugger-for-chrome", // Prettier - Code formatter "esbenp.prettier-vscode", - // The ng lint command uses TSLint under the hood. - "ms-vscode.vscode-typescript-tslint-plugin", + // The ng lint command uses ESLint under the hood. + "dbaeumer.vscode-eslint", // Modern CSS/SCSS/Less linter "stylelint.vscode-stylelint" ] diff --git a/angular.json b/angular.json index 37b5e061c21..fd7c617ea24 100644 --- a/angular.json +++ b/angular.json @@ -130,13 +130,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "projects/storefrontapp/tsconfig.app.json", - "projects/storefrontapp/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "projects/storefrontapp/**/*.ts", + "projects/storefrontapp/**/*.html" + ] } }, "server": { @@ -221,13 +220,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "projects/storefrontlib/tsconfig.lib.json", - "projects/storefrontlib/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "projects/storefrontlib/**/*.ts", + "projects/storefrontlib/**/*.html" + ] } } } @@ -259,13 +257,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "projects/core/tsconfig.lib.json", - "projects/core/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "projects/core/**/*.ts", + "projects/core/**/*.html" + ] } } } @@ -297,13 +294,25 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "projects/assets/tsconfig.lib.json", - "projects/assets/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "projects/assets/**/*.ts", + "projects/assets/**/*.html" + ] + } + } + } + }, + "schematics": { + "root": "projects/schematics", + "sourceRoot": "projects/schematics/src", + "projectType": "library", + "architect": { + "lint": { + "builder": "@angular-eslint/builder:lint", + "options": { + "lintFilePatterns": ["projects/schematics/**/*.ts"] } } } @@ -335,13 +344,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "projects/incubator/tsconfig.lib.json", - "projects/incubator/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "projects/incubator/**/*.ts", + "projects/incubator/**/*.html" + ] } } } @@ -373,13 +381,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "integration-libs/cds/tsconfig.lib.json", - "integration-libs/cds/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "integration-libs/cds/**/*.ts", + "integration-libs/cds/**/*.html" + ] } } } @@ -411,13 +418,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "feature-libs/organization/tsconfig.lib.json", - "feature-libs/organization/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "feature-libs/organization/**/*.ts", + "feature-libs/organization/**/*.html" + ] } } } @@ -449,13 +455,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "feature-libs/product/tsconfig.lib.json", - "feature-libs/product/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "feature-libs/product/**/*.ts", + "feature-libs/product/**/*.html" + ] } } } @@ -487,13 +492,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "feature-libs/product-configurator/tsconfig.lib.json", - "feature-libs/product-configurator/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "feature-libs/product-configurator/**/*.ts", + "feature-libs/product-configurator/**/*.html" + ] } } } @@ -525,13 +529,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "integration-libs/cdc/tsconfig.lib.json", - "integration-libs/cdc/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "integration-libs/cdc/**/*.ts", + "integration-libs/cdc/**/*.html" + ] } } } @@ -563,13 +566,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "core-libs/setup/tsconfig.lib.json", - "core-libs/setup/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "core-libs/setup/**/*.ts", + "core-libs/setup/**/*.html" + ] } } } @@ -601,13 +603,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "feature-libs/storefinder/tsconfig.lib.json", - "feature-libs/storefinder/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "feature-libs/storefinder/**/*.ts", + "feature-libs/storefinder/**/*.html" + ] } } } @@ -639,13 +640,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "feature-libs/qualtrics/tsconfig.lib.json", - "feature-libs/qualtrics/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "feature-libs/qualtrics/**/*.ts", + "feature-libs/qualtrics/**/*.html" + ] } } } @@ -677,13 +677,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "feature-libs/tracking/tsconfig.lib.json", - "feature-libs/tracking/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "feature-libs/tracking/**/*.ts", + "feature-libs/tracking/**/*.html" + ] } } } @@ -715,13 +714,12 @@ } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": [ - "feature-libs/smartedit/tsconfig.lib.json", - "feature-libs/smartedit/tsconfig.spec.json" - ], - "exclude": ["**/node_modules/**"] + "lintFilePatterns": [ + "feature-libs/smartedit/**/*.ts", + "feature-libs/smartedit/**/*.html" + ] } } } diff --git a/core-libs/setup/ssr/optimized-engine/optimized-ssr-engine.ts b/core-libs/setup/ssr/optimized-engine/optimized-ssr-engine.ts index 5c3f6424076..769c0aa292d 100644 --- a/core-libs/setup/ssr/optimized-engine/optimized-ssr-engine.ts +++ b/core-libs/setup/ssr/optimized-engine/optimized-ssr-engine.ts @@ -97,7 +97,7 @@ export class OptimizedSsrEngine { const key = this.getRenderingKey(request); if (this.renderingCache.isReady(key)) { - // tslint:disable-next-line:no-non-null-assertion + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const cached = this.renderingCache.get(key)!; callback(cached.err, cached.html); diff --git a/core-libs/setup/tslint.json b/core-libs/setup/tslint.json deleted file mode 100644 index e87a6d1bf33..00000000000 --- a/core-libs/setup/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "cx", "camelCase"], - "component-selector": [true, "element", "cx", "kebab-case"] - } -} diff --git a/docs/libs/creating-lib.md b/docs/libs/creating-lib.md index 54d5bb746b4..1a7abd6ff05 100644 --- a/docs/libs/creating-lib.md +++ b/docs/libs/creating-lib.md @@ -184,7 +184,7 @@ Use the following template: - run `yarn config:update` script to update `compilerOptions.path` property in tsconfig files - `tsconfig.lib.prod.json` - save to re-format it. Make sure that Ivy is off (for the time being, this will change in the future) -- `tslint.json` - change from `lib` to `cx` in the `directive-selector` and `component-selector` +- `tslint.json` - remove - the rest of the generated files should be removed ### Additional changes to existing files diff --git a/feature-libs/organization/.eslintrc.json b/feature-libs/organization/.eslintrc.json new file mode 100644 index 00000000000..862b5a870b0 --- /dev/null +++ b/feature-libs/organization/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "extends": "../../.eslintrc.json", + "ignorePatterns": ["schematics/**/*.d.ts"] +} diff --git a/feature-libs/organization/administration/.eslintrc.json b/feature-libs/organization/administration/.eslintrc.json new file mode 100644 index 00000000000..ae0643c6f4c --- /dev/null +++ b/feature-libs/organization/administration/.eslintrc.json @@ -0,0 +1,26 @@ +{ + "extends": "../.eslintrc.json", + "overrides": [ + { + "files": ["*.ts"], + "rules": { + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "cx-org", + "style": "kebab-case" + } + ], + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "cxOrg", + "style": "camelCase" + } + ] + } + } + ] +} diff --git a/feature-libs/organization/administration/components/budget/form/budget-form.component.spec.ts b/feature-libs/organization/administration/components/budget/form/budget-form.component.spec.ts index c164fc19c86..b1d1b5fc849 100644 --- a/feature-libs/organization/administration/components/budget/form/budget-form.component.spec.ts +++ b/feature-libs/organization/administration/components/budget/form/budget-form.component.spec.ts @@ -46,7 +46,7 @@ class MockItemService { } @Component({ - // tslint:disable-next-line: component-selector + // eslint-disable-next-line @angular-eslint/component-selector selector: 'cx-date-picker', template: '', }) diff --git a/feature-libs/organization/administration/components/shared/item-active.directive.spec.ts b/feature-libs/organization/administration/components/shared/item-active.directive.spec.ts index e78db045747..3d4a8963f5f 100644 --- a/feature-libs/organization/administration/components/shared/item-active.directive.spec.ts +++ b/feature-libs/organization/administration/components/shared/item-active.directive.spec.ts @@ -11,7 +11,7 @@ import createSpy = jasmine.createSpy; const mockCode = 'mc1'; @Component({ - // tslint:disable-next-line: component-selector + // eslint-disable-next-line @angular-eslint/component-selector selector: 'cx-host', template: `
TEST
`, }) diff --git a/feature-libs/organization/administration/components/shared/item-exists.directive.spec.ts b/feature-libs/organization/administration/components/shared/item-exists.directive.spec.ts index 8403a4e89ec..55eca16b8a4 100644 --- a/feature-libs/organization/administration/components/shared/item-exists.directive.spec.ts +++ b/feature-libs/organization/administration/components/shared/item-exists.directive.spec.ts @@ -11,7 +11,7 @@ import createSpy = jasmine.createSpy; const mockCode = 'mc1'; @Component({ - // tslint:disable-next-line: component-selector + // eslint-disable-next-line @angular-eslint/component-selector selector: 'cx-host', template: `
TEST
`, }) diff --git a/feature-libs/organization/administration/components/shared/list/list.component.spec.ts b/feature-libs/organization/administration/components/shared/list/list.component.spec.ts index f9d44be9907..e33111004af 100644 --- a/feature-libs/organization/administration/components/shared/list/list.component.spec.ts +++ b/feature-libs/organization/administration/components/shared/list/list.component.spec.ts @@ -68,7 +68,7 @@ class MockItemService { } @Component({ - // tslint:disable-next-line: component-selector + // eslint-disable-next-line @angular-eslint/component-selector selector: 'cx-table', template: '', }) diff --git a/feature-libs/organization/administration/components/shared/message/base-message.component.ts b/feature-libs/organization/administration/components/shared/message/base-message.component.ts index 714e44d9430..0cffa494c1d 100644 --- a/feature-libs/organization/administration/components/shared/message/base-message.component.ts +++ b/feature-libs/organization/administration/components/shared/message/base-message.component.ts @@ -11,7 +11,7 @@ import { ICON_TYPE } from '@spartacus/storefront'; import { MessageData } from './message.model'; @Directive() -// tslint:disable-next-line: directive-class-suffix +// eslint-disable-next-line @angular-eslint/directive-class-suffix export abstract class BaseMessageComponent implements OnInit { @HostBinding('class') type: string; @HostBinding('class.terminated') terminated = false; diff --git a/feature-libs/organization/administration/components/shared/sub-list/sub-list.component.spec.ts b/feature-libs/organization/administration/components/shared/sub-list/sub-list.component.spec.ts index ca244a2cae9..40c713ad7a8 100644 --- a/feature-libs/organization/administration/components/shared/sub-list/sub-list.component.spec.ts +++ b/feature-libs/organization/administration/components/shared/sub-list/sub-list.component.spec.ts @@ -30,7 +30,7 @@ const mockEmptyList: EntitiesModel = { }; @Component({ - // tslint:disable-next-line: component-selector + // eslint-disable-next-line @angular-eslint/component-selector selector: 'cx-table', template: '', }) diff --git a/feature-libs/organization/administration/core/services/organization-page-meta.resolver.ts b/feature-libs/organization/administration/core/services/organization-page-meta.resolver.ts index 1b1a4c8e348..afb1aa96e8f 100644 --- a/feature-libs/organization/administration/core/services/organization-page-meta.resolver.ts +++ b/feature-libs/organization/administration/core/services/organization-page-meta.resolver.ts @@ -64,7 +64,7 @@ export class OrganizationPageMetaResolver translation: TranslationService, semanticPath: SemanticPathService, routingService: RoutingService, - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures basePageMetaResolver?: BasePageMetaResolver ); constructor( diff --git a/feature-libs/organization/administration/occ/adapters/occ-b2b-users.adapter.spec.ts b/feature-libs/organization/administration/occ/adapters/occ-b2b-users.adapter.spec.ts index 296a62e0266..db939ca907d 100644 --- a/feature-libs/organization/administration/occ/adapters/occ-b2b-users.adapter.spec.ts +++ b/feature-libs/organization/administration/occ/adapters/occ-b2b-users.adapter.spec.ts @@ -35,7 +35,7 @@ const params: SearchConfig = { sort: 'code' }; class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { userId }) => (url === 'b2bUser' ? `${url}/${userId}` : url) ); } diff --git a/feature-libs/organization/administration/occ/adapters/occ-budget.adapter.spec.ts b/feature-libs/organization/administration/occ/adapters/occ-budget.adapter.spec.ts index 4aa0cab3a5d..e9af8abb657 100644 --- a/feature-libs/organization/administration/occ/adapters/occ-budget.adapter.spec.ts +++ b/feature-libs/organization/administration/occ/adapters/occ-budget.adapter.spec.ts @@ -22,7 +22,7 @@ const budget = { class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { budgetCode }) => (url === 'budget' ? url + budgetCode : url) ); } diff --git a/feature-libs/organization/administration/occ/adapters/occ-cost-center.adapter.spec.ts b/feature-libs/organization/administration/occ/adapters/occ-cost-center.adapter.spec.ts index 7b334163542..140e03966e3 100644 --- a/feature-libs/organization/administration/occ/adapters/occ-cost-center.adapter.spec.ts +++ b/feature-libs/organization/administration/occ/adapters/occ-cost-center.adapter.spec.ts @@ -27,7 +27,7 @@ const budget = { }; class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { costCenterCode }) => url === 'costCenter' ? url + costCenterCode : url ); diff --git a/feature-libs/organization/administration/occ/adapters/occ-org-unit.adapter.spec.ts b/feature-libs/organization/administration/occ/adapters/occ-org-unit.adapter.spec.ts index 46f61442588..f8e48426223 100644 --- a/feature-libs/organization/administration/occ/adapters/occ-org-unit.adapter.spec.ts +++ b/feature-libs/organization/administration/occ/adapters/occ-org-unit.adapter.spec.ts @@ -37,7 +37,7 @@ const addressId: string = address.id; class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { orgUnitId }) => (url === 'orgUnit' ? url + orgUnitId : url) ); } diff --git a/feature-libs/organization/administration/occ/adapters/occ-permission.adapter.spec.ts b/feature-libs/organization/administration/occ/adapters/occ-permission.adapter.spec.ts index a73e7ba1b76..678adf0a935 100644 --- a/feature-libs/organization/administration/occ/adapters/occ-permission.adapter.spec.ts +++ b/feature-libs/organization/administration/occ/adapters/occ-permission.adapter.spec.ts @@ -22,7 +22,7 @@ const permission = { class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { orderApprovalPermissionCode }) => url === 'permission' ? url + orderApprovalPermissionCode : url ); diff --git a/feature-libs/organization/administration/occ/adapters/occ-user-group.adapter.spec.ts b/feature-libs/organization/administration/occ/adapters/occ-user-group.adapter.spec.ts index d7612d2fca9..3895e50da4c 100644 --- a/feature-libs/organization/administration/occ/adapters/occ-user-group.adapter.spec.ts +++ b/feature-libs/organization/administration/occ/adapters/occ-user-group.adapter.spec.ts @@ -33,7 +33,7 @@ const member = { class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { userGroupId }) => (url === 'userGroup' ? url + userGroupId : url) ); } diff --git a/feature-libs/organization/administration/occ/converters/occ-org-unit-approval-processes-normalizer.spec.ts b/feature-libs/organization/administration/occ/converters/occ-org-unit-approval-processes-normalizer.spec.ts index a2384b09bb9..7182d146ad6 100644 --- a/feature-libs/organization/administration/occ/converters/occ-org-unit-approval-processes-normalizer.spec.ts +++ b/feature-libs/organization/administration/occ/converters/occ-org-unit-approval-processes-normalizer.spec.ts @@ -6,7 +6,7 @@ import createSpy = jasmine.createSpy; class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { orgUnitId }) => (url === 'orgUnit' ? url + orgUnitId : url) ); } diff --git a/feature-libs/organization/administration/occ/converters/occ-org-unit-node-list-normalizer.spec.ts b/feature-libs/organization/administration/occ/converters/occ-org-unit-node-list-normalizer.spec.ts index 857b75ed8c8..b59b4a9a98c 100644 --- a/feature-libs/organization/administration/occ/converters/occ-org-unit-node-list-normalizer.spec.ts +++ b/feature-libs/organization/administration/occ/converters/occ-org-unit-node-list-normalizer.spec.ts @@ -7,7 +7,7 @@ import createSpy = jasmine.createSpy; class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { orgUnitId }) => (url === 'orgUnit' ? url + orgUnitId : url) ); } diff --git a/feature-libs/organization/administration/occ/converters/occ-org-unit-node-normalizer.spec.ts b/feature-libs/organization/administration/occ/converters/occ-org-unit-node-normalizer.spec.ts index 71a8a2a4aa8..6d9de8940fe 100644 --- a/feature-libs/organization/administration/occ/converters/occ-org-unit-node-normalizer.spec.ts +++ b/feature-libs/organization/administration/occ/converters/occ-org-unit-node-normalizer.spec.ts @@ -7,7 +7,7 @@ import createSpy = jasmine.createSpy; class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { orgUnitId }) => (url === 'orgUnit' ? url + orgUnitId : url) ); } diff --git a/feature-libs/organization/administration/occ/converters/occ-org-unit-normalizer.spec.ts b/feature-libs/organization/administration/occ/converters/occ-org-unit-normalizer.spec.ts index 4d8928b72a6..9783c1459d3 100644 --- a/feature-libs/organization/administration/occ/converters/occ-org-unit-normalizer.spec.ts +++ b/feature-libs/organization/administration/occ/converters/occ-org-unit-normalizer.spec.ts @@ -6,7 +6,7 @@ import createSpy = jasmine.createSpy; class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { orgUnitId }) => (url === 'orgUnit' ? url + orgUnitId : url) ); } diff --git a/feature-libs/organization/administration/tslint.json b/feature-libs/organization/administration/tslint.json deleted file mode 100644 index 31356ad264d..00000000000 --- a/feature-libs/organization/administration/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "cxOrg", "camelCase"], - "component-selector": [true, "element", "cx-org", "kebab-case"] - } -} diff --git a/feature-libs/organization/jest.ts b/feature-libs/organization/jest.ts index fa0c277b54a..c2ce0365f32 100644 --- a/feature-libs/organization/jest.ts +++ b/feature-libs/organization/jest.ts @@ -1,5 +1,5 @@ // uncomment when we switch the whole lib to jest -/** +/* Object.defineProperty(window, 'CSS', { value: null }); Object.defineProperty(window, 'getComputedStyle', { value: () => { diff --git a/feature-libs/organization/order-approval/occ/adapters/occ-order-approval.adapter.spec.ts b/feature-libs/organization/order-approval/occ/adapters/occ-order-approval.adapter.spec.ts index e7d380c1ff5..32da057b211 100644 --- a/feature-libs/organization/order-approval/occ/adapters/occ-order-approval.adapter.spec.ts +++ b/feature-libs/organization/order-approval/occ/adapters/occ-order-approval.adapter.spec.ts @@ -31,7 +31,7 @@ const orderApprovalDecision: OrderApprovalDecision = { class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { orderApprovalCode }) => url === 'orderApproval' || url === 'orderApprovalDecision' ? `${url}/${orderApprovalCode}` diff --git a/feature-libs/organization/tslint.json b/feature-libs/organization/tslint.json deleted file mode 100644 index fe91d36a7a9..00000000000 --- a/feature-libs/organization/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "cx", "camelCase"], - "component-selector": [true, "element", "cx", "kebab-case"], - "no-host-metadata-property": false - } -} diff --git a/feature-libs/product-configurator/.eslintrc.json b/feature-libs/product-configurator/.eslintrc.json new file mode 100644 index 00000000000..862b5a870b0 --- /dev/null +++ b/feature-libs/product-configurator/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "extends": "../../.eslintrc.json", + "ignorePatterns": ["schematics/**/*.d.ts"] +} diff --git a/feature-libs/product-configurator/jest.ts b/feature-libs/product-configurator/jest.ts index fa0c277b54a..c2ce0365f32 100644 --- a/feature-libs/product-configurator/jest.ts +++ b/feature-libs/product-configurator/jest.ts @@ -1,5 +1,5 @@ // uncomment when we switch the whole lib to jest -/** +/* Object.defineProperty(window, 'CSS', { value: null }); Object.defineProperty(window, 'getComputedStyle', { value: () => { diff --git a/feature-libs/product-configurator/rulebased/components/add-to-cart-button/configurator-add-to-cart-button.component.ts b/feature-libs/product-configurator/rulebased/components/add-to-cart-button/configurator-add-to-cart-button.component.ts index 078748561a0..c6ed231746b 100644 --- a/feature-libs/product-configurator/rulebased/components/add-to-cart-button/configurator-add-to-cart-button.component.ts +++ b/feature-libs/product-configurator/rulebased/components/add-to-cart-button/configurator-add-to-cart-button.component.ts @@ -140,7 +140,6 @@ export class ConfiguratorAddToCartButtonComponent { * just a cart navigation or a browser back navigation * @param {Configurator.Configuration} configuration - Configuration * @param {ConfiguratorRouter.Data} routerData - Reflects the current router state - */ onAddToCart( configuration: Configurator.Configuration, diff --git a/feature-libs/product-configurator/rulebased/core/connectors/rulebased-configurator.adapter.ts b/feature-libs/product-configurator/rulebased/core/connectors/rulebased-configurator.adapter.ts index d34aa3f841f..867ee0d861e 100644 --- a/feature-libs/product-configurator/rulebased/core/connectors/rulebased-configurator.adapter.ts +++ b/feature-libs/product-configurator/rulebased/core/connectors/rulebased-configurator.adapter.ts @@ -37,7 +37,6 @@ export abstract class RulebasedConfiguratorAdapter { ): Observable; /** - * Abstract method to add a configuration to cart. * * @param parameters add to cart parameters object diff --git a/feature-libs/product-configurator/tslint.json b/feature-libs/product-configurator/tslint.json deleted file mode 100644 index e87a6d1bf33..00000000000 --- a/feature-libs/product-configurator/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "cx", "camelCase"], - "component-selector": [true, "element", "cx", "kebab-case"] - } -} diff --git a/feature-libs/product/tslint.json b/feature-libs/product/tslint.json deleted file mode 100644 index e87a6d1bf33..00000000000 --- a/feature-libs/product/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "cx", "camelCase"], - "component-selector": [true, "element", "cx", "kebab-case"] - } -} diff --git a/feature-libs/qualtrics/.eslintrc.json b/feature-libs/qualtrics/.eslintrc.json new file mode 100644 index 00000000000..862b5a870b0 --- /dev/null +++ b/feature-libs/qualtrics/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "extends": "../../.eslintrc.json", + "ignorePatterns": ["schematics/**/*.d.ts"] +} diff --git a/feature-libs/qualtrics/jest.ts b/feature-libs/qualtrics/jest.ts index fa0c277b54a..c2ce0365f32 100644 --- a/feature-libs/qualtrics/jest.ts +++ b/feature-libs/qualtrics/jest.ts @@ -1,5 +1,5 @@ // uncomment when we switch the whole lib to jest -/** +/* Object.defineProperty(window, 'CSS', { value: null }); Object.defineProperty(window, 'getComputedStyle', { value: () => { diff --git a/feature-libs/qualtrics/tslint.json b/feature-libs/qualtrics/tslint.json deleted file mode 100644 index fe91d36a7a9..00000000000 --- a/feature-libs/qualtrics/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "cx", "camelCase"], - "component-selector": [true, "element", "cx", "kebab-case"], - "no-host-metadata-property": false - } -} diff --git a/feature-libs/smartedit/.eslintrc.json b/feature-libs/smartedit/.eslintrc.json new file mode 100644 index 00000000000..862b5a870b0 --- /dev/null +++ b/feature-libs/smartedit/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "extends": "../../.eslintrc.json", + "ignorePatterns": ["schematics/**/*.d.ts"] +} diff --git a/feature-libs/smartedit/jest.ts b/feature-libs/smartedit/jest.ts index fa0c277b54a..c2ce0365f32 100644 --- a/feature-libs/smartedit/jest.ts +++ b/feature-libs/smartedit/jest.ts @@ -1,5 +1,5 @@ // uncomment when we switch the whole lib to jest -/** +/* Object.defineProperty(window, 'CSS', { value: null }); Object.defineProperty(window, 'getComputedStyle', { value: () => { diff --git a/feature-libs/smartedit/tslint.json b/feature-libs/smartedit/tslint.json deleted file mode 100644 index e87a6d1bf33..00000000000 --- a/feature-libs/smartedit/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "cx", "camelCase"], - "component-selector": [true, "element", "cx", "kebab-case"] - } -} diff --git a/feature-libs/storefinder/.eslintrc.json b/feature-libs/storefinder/.eslintrc.json new file mode 100644 index 00000000000..862b5a870b0 --- /dev/null +++ b/feature-libs/storefinder/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "extends": "../../.eslintrc.json", + "ignorePatterns": ["schematics/**/*.d.ts"] +} diff --git a/feature-libs/storefinder/components/abstract-store-item/abstract-store-item.component.ts b/feature-libs/storefinder/components/abstract-store-item/abstract-store-item.component.ts index 664a9b4e695..d1a72bb7f76 100644 --- a/feature-libs/storefinder/components/abstract-store-item/abstract-store-item.component.ts +++ b/feature-libs/storefinder/components/abstract-store-item/abstract-store-item.component.ts @@ -1,7 +1,7 @@ import { Input, Directive } from '@angular/core'; import { StoreDataService } from '@spartacus/storefinder/core'; -// tslint:disable:directive-class-suffix +/* eslint-disable @angular-eslint/directive-class-suffix */ @Directive() export class AbstractStoreItemComponent { @Input() diff --git a/feature-libs/storefinder/core/facade/store-finder.service.ts b/feature-libs/storefinder/core/facade/store-finder.service.ts index 1a471576ebc..ffe8c6a76d6 100644 --- a/feature-libs/storefinder/core/facade/store-finder.service.ts +++ b/feature-libs/storefinder/core/facade/store-finder.service.ts @@ -42,7 +42,7 @@ export class StoreFinderService implements OnDestroy { winRef: WindowRef, globalMessageService: GlobalMessageService, routingService: RoutingService, - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures platformId: any ); diff --git a/feature-libs/storefinder/core/service/google-map-renderer.service.ts b/feature-libs/storefinder/core/service/google-map-renderer.service.ts index dc9d7600687..dfb59fb15db 100644 --- a/feature-libs/storefinder/core/service/google-map-renderer.service.ts +++ b/feature-libs/storefinder/core/service/google-map-renderer.service.ts @@ -15,7 +15,7 @@ export class GoogleMapRendererService { config: StoreFinderConfig, externalJsFileLoader: ExternalJsFileLoader, storeDataService: StoreDataService, - // tslint:disable-next-line:unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures scriptLoader?: ScriptLoader ); /** diff --git a/feature-libs/storefinder/jest.ts b/feature-libs/storefinder/jest.ts index fa0c277b54a..c2ce0365f32 100644 --- a/feature-libs/storefinder/jest.ts +++ b/feature-libs/storefinder/jest.ts @@ -1,5 +1,5 @@ // uncomment when we switch the whole lib to jest -/** +/* Object.defineProperty(window, 'CSS', { value: null }); Object.defineProperty(window, 'getComputedStyle', { value: () => { diff --git a/feature-libs/storefinder/tslint.json b/feature-libs/storefinder/tslint.json deleted file mode 100644 index e87a6d1bf33..00000000000 --- a/feature-libs/storefinder/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "cx", "camelCase"], - "component-selector": [true, "element", "cx", "kebab-case"] - } -} diff --git a/feature-libs/tracking/tms/core/services/tms.service.ts b/feature-libs/tracking/tms/core/services/tms.service.ts index 271387cfa58..db8c8fbe956 100644 --- a/feature-libs/tracking/tms/core/services/tms.service.ts +++ b/feature-libs/tracking/tms/core/services/tms.service.ts @@ -52,7 +52,7 @@ export class TmsService implements OnDestroy { const collector = this.injector.get( collectorConfig.collector ); - // tslint:disable-next-line:no-non-null-assertion + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion collector.init(collectorConfig, this.windowRef.nativeWindow!); this.subscription.add( @@ -67,7 +67,7 @@ export class TmsService implements OnDestroy { event = collector.map ? collector.map(event) : event; collector.pushEvent( collectorConfig, - // tslint:disable-next-line:no-non-null-assertion + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion this.windowRef.nativeWindow!, event ); diff --git a/feature-libs/tracking/tslint.json b/feature-libs/tracking/tslint.json deleted file mode 100644 index e87a6d1bf33..00000000000 --- a/feature-libs/tracking/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "cx", "camelCase"], - "component-selector": [true, "element", "cx", "kebab-case"] - } -} diff --git a/integration-libs/cdc/tslint.json b/integration-libs/cdc/tslint.json deleted file mode 100644 index e87a6d1bf33..00000000000 --- a/integration-libs/cdc/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "cx", "camelCase"], - "component-selector": [true, "element", "cx", "kebab-case"] - } -} diff --git a/integration-libs/cds/src/merchandising/cms-components/merchandising-carousel/merchandising-carousel.component.spec.ts b/integration-libs/cds/src/merchandising/cms-components/merchandising-carousel/merchandising-carousel.component.spec.ts index 0d6edfbaa8d..b4e044f6341 100644 --- a/integration-libs/cds/src/merchandising/cms-components/merchandising-carousel/merchandising-carousel.component.spec.ts +++ b/integration-libs/cds/src/merchandising/cms-components/merchandising-carousel/merchandising-carousel.component.spec.ts @@ -47,7 +47,7 @@ class MockCarouselComponent { */ @Directive({ selector: '[cxAttributes]', - // tslint:disable-next-line:no-inputs-metadata-property + // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property inputs: ['cxAttributes', 'cxAttributesNamePrefix'], }) class MockAttributesDirective { diff --git a/integration-libs/cds/tslint.json b/integration-libs/cds/tslint.json deleted file mode 100644 index e87a6d1bf33..00000000000 --- a/integration-libs/cds/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "cx", "camelCase"], - "component-selector": [true, "element", "cx", "kebab-case"] - } -} diff --git a/package.json b/package.json index 7f96c8b8099..ac836ea65b8 100644 --- a/package.json +++ b/package.json @@ -124,6 +124,11 @@ "@angular-devkit/build-ng-packagr": "~0.1002.1", "@angular-devkit/core": "10.2.1", "@angular-devkit/schematics": "^10.2.1", + "@angular-eslint/builder": "^1.2.0", + "@angular-eslint/eslint-plugin": "^1.2.0", + "@angular-eslint/eslint-plugin-template": "^1.2.0", + "@angular-eslint/schematics": "^1.2.0", + "@angular-eslint/template-parser": "^1.2.0", "@angular/cli": "^10.2.1", "@angular/compiler-cli": "^10.2.4", "@angular/language-service": "^10.2.4", @@ -141,8 +146,9 @@ "@types/parse5": "^5.0.3", "@types/semver": "6", "@types/shelljs": "^0.8.7", + "@typescript-eslint/eslint-plugin": "^4.3.0", + "@typescript-eslint/parser": "^4.3.0", "chalk": "^4.1.0", - "codelyzer": "^6.0.0", "commander": "^3.0.0", "concurrently": "^5.3.0", "conventional-commits-parser": "^3.0.1", @@ -151,6 +157,11 @@ "ejs": "^2.6.2", "enquirer": "^2.3.6", "env-cmd": "^10.1.0", + "eslint": "^7.6.0", + "eslint-plugin-deprecation": "^1.2.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsdoc": "^30.7.6", + "eslint-plugin-prefer-arrow": "^1.2.2", "faker": "^4.1.0", "fs-extra": "^9.0.1", "gh-got": "^8.0.1", @@ -187,7 +198,6 @@ "through2": "^3.0.1", "ts-jest": "^26.4.4", "ts-node": "~8.3.0", - "tslint": "~6.1.0", "typescript": "~4.0.2", "webpack-cli": "^3.3.12" } diff --git a/projects/assets/tslint.json b/projects/assets/tslint.json deleted file mode 100644 index 0946f20963a..00000000000 --- a/projects/assets/tslint.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../tslint.json" -} diff --git a/projects/core/src/cart/services/cart-page-meta.resolver.ts b/projects/core/src/cart/services/cart-page-meta.resolver.ts index 01a3cf94cd7..daa1c20e1cf 100644 --- a/projects/core/src/cart/services/cart-page-meta.resolver.ts +++ b/projects/core/src/cart/services/cart-page-meta.resolver.ts @@ -34,7 +34,7 @@ export class CartPageMetaResolver */ // TODO(#10467): Remove deprecated constructors constructor(cms: CmsService); - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures constructor(cms: CmsService, basePageMetaResolver?: BasePageMetaResolver); constructor( protected cms: CmsService, diff --git a/projects/core/src/checkout/services/checkout-page-meta.resolver.ts b/projects/core/src/checkout/services/checkout-page-meta.resolver.ts index 513df9d2ee2..02c928b311a 100644 --- a/projects/core/src/checkout/services/checkout-page-meta.resolver.ts +++ b/projects/core/src/checkout/services/checkout-page-meta.resolver.ts @@ -38,7 +38,7 @@ export class CheckoutPageMetaResolver constructor( translation: TranslationService, activeCartService: ActiveCartService, - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures basePageMetaResolver?: BasePageMetaResolver ); constructor( diff --git a/projects/core/src/lazy-loading/feature-modules.service.ts b/projects/core/src/lazy-loading/feature-modules.service.ts index 9648cbe33b8..34af43f7dfb 100644 --- a/projects/core/src/lazy-loading/feature-modules.service.ts +++ b/projects/core/src/lazy-loading/feature-modules.service.ts @@ -1,8 +1,8 @@ import { Injectable, NgModuleRef } from '@angular/core'; -import { LazyModulesService } from './lazy-modules.service'; import { defer, forkJoin, Observable, of, throwError } from 'rxjs'; import { shareReplay, switchMap } from 'rxjs/operators'; import { CmsConfig } from '../cms/config/cms-config'; +import { LazyModulesService } from './lazy-modules.service'; @Injectable({ providedIn: 'root', @@ -41,7 +41,7 @@ export class FeatureModulesService { ); } - // tslint:disable-next-line:no-non-null-assertion + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const featureConfig = this.cmsConfig.featureModules![featureName]; this.features.set( @@ -49,7 +49,7 @@ export class FeatureModulesService { this.resolveDependencies(featureConfig.dependencies).pipe( switchMap((deps) => this.lazyModules.resolveModuleInstance( - // tslint:disable-next-line:no-non-null-assertion + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion featureConfig.module!, featureName, deps diff --git a/projects/core/src/occ/adapters/cart/default-occ-cart-config.ts b/projects/core/src/occ/adapters/cart/default-occ-cart-config.ts index 0e902e16cdb..b3c218c00b9 100644 --- a/projects/core/src/occ/adapters/cart/default-occ-cart-config.ts +++ b/projects/core/src/occ/adapters/cart/default-occ-cart-config.ts @@ -4,7 +4,7 @@ export const defaultOccCartConfig: OccConfig = { backend: { occ: { endpoints: { - // tslint:disable:max-line-length + /* eslint-disable max-len */ carts: 'users/${userId}/carts?fields=carts(DEFAULT,potentialProductPromotions,appliedProductPromotions,potentialOrderPromotions,appliedOrderPromotions,entries(totalPrice(formattedValue),product(images(FULL),stock(FULL)),basePrice(formattedValue,value),updateable),totalPrice(formattedValue),totalItems,totalPriceWithTax(formattedValue),totalDiscounts(value,formattedValue),subTotal(formattedValue),deliveryItemsQuantity,deliveryCost(formattedValue),totalTax(formattedValue, value),pickupItemsQuantity,net,appliedVouchers,productDiscounts(formattedValue),saveTime,user,name)', cart: @@ -18,7 +18,7 @@ export const defaultOccCartConfig: OccConfig = { deleteCart: 'users/${userId}/carts/${cartId}', cartVoucher: 'users/${userId}/carts/${cartId}/vouchers', saveCart: 'users/${userId}/carts/${cartId}/save', - // tslint:enable + /* eslint-enable */ }, }, }, diff --git a/projects/core/src/occ/adapters/checkout/occ-checkout-cost-center.adapter.ts b/projects/core/src/occ/adapters/checkout/occ-checkout-cost-center.adapter.ts index 629d4f58a9e..647e2469a4c 100644 --- a/projects/core/src/occ/adapters/checkout/occ-checkout-cost-center.adapter.ts +++ b/projects/core/src/occ/adapters/checkout/occ-checkout-cost-center.adapter.ts @@ -21,7 +21,7 @@ export class OccCheckoutCostCenterAdapter implements CheckoutCostCenterAdapter { costCenterId: string ): Observable { let httpParams = new HttpParams().set('costCenterId', costCenterId); - /* tslint:disable:max-line-length */ + /* eslint-disable max-len */ httpParams = httpParams.set( 'fields', 'DEFAULT,potentialProductPromotions,appliedProductPromotions,potentialOrderPromotions,appliedOrderPromotions,entries(totalPrice(formattedValue),product(images(FULL),stock(FULL)),basePrice(formattedValue,value),updateable),totalPrice(formattedValue),totalItems,totalPriceWithTax(formattedValue),totalDiscounts(value,formattedValue),subTotal(formattedValue),deliveryItemsQuantity,deliveryCost(formattedValue),totalTax(formattedValue, value),pickupItemsQuantity,net,appliedVouchers,productDiscounts(formattedValue),user' diff --git a/projects/core/src/occ/adapters/checkout/occ-checkout-payment-type.adapter.ts b/projects/core/src/occ/adapters/checkout/occ-checkout-payment-type.adapter.ts index 195cc71cffb..c4bf456b1e3 100644 --- a/projects/core/src/occ/adapters/checkout/occ-checkout-payment-type.adapter.ts +++ b/projects/core/src/occ/adapters/checkout/occ-checkout-payment-type.adapter.ts @@ -41,7 +41,7 @@ export class OccCheckoutPaymentTypeAdapter implements PaymentTypeAdapter { if (purchaseOrderNumber !== undefined) { httpParams = httpParams.set('purchaseOrderNumber', purchaseOrderNumber); } - /* tslint:disable:max-line-length */ + /* eslint-disable max-len */ httpParams = httpParams.set( 'fields', 'DEFAULT,potentialProductPromotions,appliedProductPromotions,potentialOrderPromotions,appliedOrderPromotions,entries(totalPrice(formattedValue),product(images(FULL),stock(FULL)),basePrice(formattedValue,value),updateable),totalPrice(formattedValue),totalItems,totalPriceWithTax(formattedValue),totalDiscounts(value,formattedValue),subTotal(formattedValue),deliveryItemsQuantity,deliveryCost(formattedValue),totalTax(formattedValue, value),pickupItemsQuantity,net,appliedVouchers,productDiscounts(formattedValue),user' diff --git a/projects/core/src/occ/adapters/product/default-occ-product-config.ts b/projects/core/src/occ/adapters/product/default-occ-product-config.ts index efb3bbba68d..b69ed695e03 100644 --- a/projects/core/src/occ/adapters/product/default-occ-product-config.ts +++ b/projects/core/src/occ/adapters/product/default-occ-product-config.ts @@ -22,10 +22,10 @@ export const defaultOccProductConfig: OccConfig = { // 'products/${productCode}/references?fields=DEFAULT,references(target(images(FULL)))&referenceType=${referenceType}', productReferences: 'products/${productCode}/references?fields=DEFAULT,references(target(images(FULL)))', - // tslint:disable:max-line-length + /* eslint-disable max-len */ productSearch: 'products/search?fields=products(code,name,summary,configurable,configuratorType,price(FULL),images(DEFAULT),stock(FULL),averageRating,variantOptions),facets,breadcrumbs,pagination(DEFAULT),sorts(DEFAULT),freeTextSearch,currentQuery', - // tslint:enable + /* eslint-enable */ productSuggestions: 'products/suggestions', }, }, diff --git a/projects/core/src/occ/adapters/product/occ-product-search.adapter.spec.ts b/projects/core/src/occ/adapters/product/occ-product-search.adapter.spec.ts index 5984293b4ec..c7428a22ad4 100644 --- a/projects/core/src/occ/adapters/product/occ-product-search.adapter.spec.ts +++ b/projects/core/src/occ/adapters/product/occ-product-search.adapter.spec.ts @@ -17,7 +17,7 @@ import createSpy = jasmine.createSpy; class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url) => url ); } diff --git a/projects/core/src/occ/adapters/product/occ-product.adapter.spec.ts b/projects/core/src/occ/adapters/product/occ-product.adapter.spec.ts index 7407c986c33..bb77ced1170 100644 --- a/projects/core/src/occ/adapters/product/occ-product.adapter.spec.ts +++ b/projects/core/src/occ/adapters/product/occ-product.adapter.spec.ts @@ -16,7 +16,7 @@ const product = { class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { productCode }, _, scope) => `${url}${productCode}` + (scope ? `?fields=${scope}` : '') ); diff --git a/projects/core/src/occ/adapters/user/converters/occ-address-list-normalizer.spec.ts b/projects/core/src/occ/adapters/user/converters/occ-address-list-normalizer.spec.ts index 017f84fba4b..79a24f7b99d 100644 --- a/projects/core/src/occ/adapters/user/converters/occ-address-list-normalizer.spec.ts +++ b/projects/core/src/occ/adapters/user/converters/occ-address-list-normalizer.spec.ts @@ -11,7 +11,7 @@ import createSpy = jasmine.createSpy; class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { orgUnitId }) => (url === 'orgUnit' ? url + orgUnitId : url) ); } @@ -45,8 +45,7 @@ describe('OccAddressListNormalizer', () => { describe('convert', () => { it('convert Occ.B2BAddressList to EntitiesModel', () => { - let target: EntitiesModel
; - target = service.convert(source); + const target: EntitiesModel
= service.convert(source); expect(target.values.length).toEqual(source.addresses.length); }); diff --git a/projects/core/src/occ/adapters/user/default-occ-user-config.ts b/projects/core/src/occ/adapters/user/default-occ-user-config.ts index c16d6c25e97..aef97f77df3 100644 --- a/projects/core/src/occ/adapters/user/default-occ-user-config.ts +++ b/projects/core/src/occ/adapters/user/default-occ-user-config.ts @@ -4,7 +4,7 @@ export const defaultOccUserConfig: OccConfig = { backend: { occ: { endpoints: { - // tslint:disable:max-line-length + /* eslint-disable max-len */ user: 'users/${userId}', userRegister: 'users', userForgotPassword: 'forgottenpasswordtokens', @@ -40,7 +40,7 @@ export const defaultOccUserConfig: OccConfig = { orderReturnDetail: 'users/${userId}/orderReturns/${returnRequestCode}?fields=BASIC,returnEntries(BASIC,refundAmount(formattedValue),orderEntry(basePrice(formattedValue),product(name,code,baseOptions,images(DEFAULT,galleryIndex)))),deliveryCost(formattedValue),totalPrice(formattedValue),subTotal(formattedValue)', cancelReturn: 'users/${userId}/orderReturns/${returnRequestCode}', - // tslint:enable + /* eslint-enable */ }, }, }, diff --git a/projects/core/src/occ/adapters/user/occ-user-cost-centers.adapter.spec.ts b/projects/core/src/occ/adapters/user/occ-user-cost-centers.adapter.spec.ts index d7dab66497f..b84244d6db7 100644 --- a/projects/core/src/occ/adapters/user/occ-user-cost-centers.adapter.spec.ts +++ b/projects/core/src/occ/adapters/user/occ-user-cost-centers.adapter.spec.ts @@ -18,7 +18,7 @@ const costCenter = { class MockOccEndpointsService { getUrl = createSpy('MockOccEndpointsService.getEndpoint').and.callFake( - // tslint:disable-next-line:no-shadowed-variable + // eslint-disable-next-line no-shadow (url, { costCenterCode }) => url === 'costCenter' ? url + costCenterCode : url ); diff --git a/projects/core/src/product/services/category-page-meta.resolver.ts b/projects/core/src/product/services/category-page-meta.resolver.ts index d74690e8ddb..c60b0a5b8de 100644 --- a/projects/core/src/product/services/category-page-meta.resolver.ts +++ b/projects/core/src/product/services/category-page-meta.resolver.ts @@ -57,7 +57,7 @@ export class CategoryPageMetaResolver productSearchService: ProductSearchService, cmsService: CmsService, translation: TranslationService, - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures basePageMetaResolver?: BasePageMetaResolver ); constructor( diff --git a/projects/core/src/product/services/product-page-meta.resolver.ts b/projects/core/src/product/services/product-page-meta.resolver.ts index 439a7428ce8..5b262742abe 100644 --- a/projects/core/src/product/services/product-page-meta.resolver.ts +++ b/projects/core/src/product/services/product-page-meta.resolver.ts @@ -59,7 +59,7 @@ export class ProductPageMetaResolver routingService: RoutingService, productService: ProductService, translation: TranslationService, - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures basePageMetaResolver?: BasePageMetaResolver ); constructor( diff --git a/projects/core/src/product/services/search-page-meta.resolver.ts b/projects/core/src/product/services/search-page-meta.resolver.ts index 149f502111b..1e6efbe9cf9 100644 --- a/projects/core/src/product/services/search-page-meta.resolver.ts +++ b/projects/core/src/product/services/search-page-meta.resolver.ts @@ -51,7 +51,7 @@ export class SearchPageMetaResolver routingService: RoutingService, productSearchService: ProductSearchService, translation: TranslationService, - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures basePageMetaResolver?: BasePageMetaResolver ); constructor( diff --git a/projects/core/src/routing/services/activated-routes.service.ts b/projects/core/src/routing/services/activated-routes.service.ts index 79063d6f8db..cee767cb6aa 100644 --- a/projects/core/src/routing/services/activated-routes.service.ts +++ b/projects/core/src/routing/services/activated-routes.service.ts @@ -17,7 +17,7 @@ export class ActivatedRoutesService { ActivatedRouteSnapshot[] > = this.router.events.pipe( filter((event) => event instanceof NavigationEnd), - // tslint:disable-next-line: deprecation https://github.com/ReactiveX/rxjs/issues/4772 + // eslint-disable-next-line import/no-deprecated startWith(undefined), // emit value for consumer who subscribed lately after NavigationEnd event map(() => { let route = this.router.routerState.snapshot.root; diff --git a/projects/core/src/util/combined-injector.ts b/projects/core/src/util/combined-injector.ts index b79ab41853d..6e4c9eb7ecb 100644 --- a/projects/core/src/util/combined-injector.ts +++ b/projects/core/src/util/combined-injector.ts @@ -35,7 +35,7 @@ export class CombinedInjector implements Injector { ): T; get(token: any, notFoundValue?: any): any; get(token, notFoundValue?: any, flags?: InjectFlags): any { - // tslint:disable-next-line:no-bitwise + // eslint-disable-next-line no-bitwise if (flags & InjectFlags.Self) { if (notFoundValue !== undefined) { return notFoundValue; diff --git a/projects/core/src/util/external-js-file-loader/external-js-file-loader.service.spec.ts b/projects/core/src/util/external-js-file-loader/external-js-file-loader.service.spec.ts index 6e276d59b1a..6d8ec3b38ea 100644 --- a/projects/core/src/util/external-js-file-loader/external-js-file-loader.service.spec.ts +++ b/projects/core/src/util/external-js-file-loader/external-js-file-loader.service.spec.ts @@ -1,5 +1,5 @@ -/* tslint:disable:deprecation */ -// for now there is no better way than to use document.createElement here, therefore we need to disable tslint deprecation rule here +/* eslint-disable import/no-deprecated */ +// for now there is no better way than to use document.createElement here, therefore we need to disable eslint deprecation rule here import { DOCUMENT } from '@angular/common'; import { TestBed } from '@angular/core/testing'; import { ExternalJsFileLoader } from './external-js-file-loader.service'; diff --git a/projects/core/src/util/regex-pattern.ts b/projects/core/src/util/regex-pattern.ts index 61bba11f305..8f97cb6ab3d 100644 --- a/projects/core/src/util/regex-pattern.ts +++ b/projects/core/src/util/regex-pattern.ts @@ -1,4 +1,4 @@ // Email Standard RFC 5322: -export const EMAIL_PATTERN = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; // tslint:disable-line +export const EMAIL_PATTERN = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; // eslint-disable-line export const PASSWORD_PATTERN = /^(?=.*?[A-Z])(?=.*?[0-9])(?=.*?[!@#$%^*()_\-+{};:.,]).{6,}$/; diff --git a/projects/core/src/util/script-loader.service.spec.ts b/projects/core/src/util/script-loader.service.spec.ts index c41d251225e..a6f36b466bf 100644 --- a/projects/core/src/util/script-loader.service.spec.ts +++ b/projects/core/src/util/script-loader.service.spec.ts @@ -1,5 +1,5 @@ -/* tslint:disable:deprecation */ -// for now there is no better way than to use document.createElement here, therefore we need to disable tslint deprecation rule here +/* eslint-disable import/no-deprecated */ +// for now there is no better way than to use document.createElement here, therefore we need to disable eslint deprecation rule here import { DOCUMENT } from '@angular/common'; import { PLATFORM_ID } from '@angular/core'; import { TestBed } from '@angular/core/testing'; diff --git a/projects/core/tslint.json b/projects/core/tslint.json deleted file mode 100644 index e87a6d1bf33..00000000000 --- a/projects/core/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "cx", "camelCase"], - "component-selector": [true, "element", "cx", "kebab-case"] - } -} diff --git a/projects/incubator/tslint.json b/projects/incubator/tslint.json deleted file mode 100644 index e87a6d1bf33..00000000000 --- a/projects/incubator/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", "cx", "camelCase"], - "component-selector": [true, "element", "cx", "kebab-case"] - } -} diff --git a/projects/schematics/.eslintrc.json b/projects/schematics/.eslintrc.json new file mode 100644 index 00000000000..a5b02ff38ef --- /dev/null +++ b/projects/schematics/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "extends": "../../.eslintrc.json", + "ignorePatterns": ["**/*.d.ts"] +} diff --git a/projects/schematics/src/add-pwa/index_spec.ts b/projects/schematics/src/add-pwa/index_spec.ts index 01f13e99168..5b6f44c6bc3 100644 --- a/projects/schematics/src/add-pwa/index_spec.ts +++ b/projects/schematics/src/add-pwa/index_spec.ts @@ -7,7 +7,6 @@ import { Schema as SpartacusOptions } from '../add-spartacus/schema'; const collectionPath = path.join(__dirname, '../collection.json'); -// tslint:disable:max-line-length describe('Spartacus Schematics: add-pwa', () => { const schematicRunner = new SchematicTestRunner('schematics', collectionPath); diff --git a/projects/schematics/src/ng-add/index_spec.ts b/projects/schematics/src/ng-add/index_spec.ts index 60ff0f6524d..a58dd85c24c 100644 --- a/projects/schematics/src/ng-add/index_spec.ts +++ b/projects/schematics/src/ng-add/index_spec.ts @@ -9,7 +9,6 @@ import { getPathResultsForFile } from '../shared/utils/file-utils'; const collectionPath = path.join(__dirname, '../collection.json'); -// tslint:disable:max-line-length describe('Spartacus Schematics: ng-add', () => { const schematicRunner = new SchematicTestRunner('schematics', collectionPath); diff --git a/projects/schematics/src/shared/utils/file-utils_spec.ts b/projects/schematics/src/shared/utils/file-utils_spec.ts index ac6cf79459b..12be0c3c496 100644 --- a/projects/schematics/src/shared/utils/file-utils_spec.ts +++ b/projects/schematics/src/shared/utils/file-utils_spec.ts @@ -968,6 +968,7 @@ describe('File utils', () => { }; const nodes = getSourceNodes(source); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const constructorNode = findConstructor(nodes)!; const changes = removeInjectImports( source, @@ -1000,6 +1001,7 @@ describe('File utils', () => { }; const nodes = getSourceNodes(source); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const constructorNode = findConstructor(nodes)!; const changes = removeInjectImports( source, @@ -1022,6 +1024,7 @@ describe('File utils', () => { true ); const nodes = getSourceNodes(source); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const constructorNode = findConstructor(nodes)!; expect(shouldRemoveDecorator(constructorNode, 'Inject')).toEqual(true); }); @@ -1034,6 +1037,7 @@ describe('File utils', () => { true ); const nodes = getSourceNodes(source); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const constructorNode = findConstructor(nodes)!; const res = shouldRemoveDecorator(constructorNode, 'Inject'); expect(res).toEqual(false); diff --git a/projects/schematics/src/shared/utils/html-utils.ts b/projects/schematics/src/shared/utils/html-utils.ts index b595e0042b4..85f42a40cf3 100644 --- a/projects/schematics/src/shared/utils/html-utils.ts +++ b/projects/schematics/src/shared/utils/html-utils.ts @@ -45,7 +45,7 @@ export function appendHtmlElementToHead( // We always have access to the source code location here because the `getHeadTagElement` // function explicitly has the `sourceCodeLocationInfo` option enabled. - // tslint:disable-next-line: no-non-null-assertion + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const endTagOffset = headTag.sourceCodeLocation!.endTag.startOffset; const indentationOffset = getChildElementIndentation(headTag); const insertion = `${' '.repeat(indentationOffset)}${elementHtml}`; @@ -111,11 +111,11 @@ function getChildElementIndentation(element: DefaultTreeElement) { const startColumns = childElement ? // In case there are child elements inside of the element, we assume that their // indentation is also applicable for other child elements. - // tslint:disable-next-line: no-non-null-assertion + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion childElement.sourceCodeLocation!.startCol : // In case there is no child element, we just assume that child elements should be indented // by two spaces. - // tslint:disable-next-line: no-non-null-assertion + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion element.sourceCodeLocation!.startCol + 2; // Since Parse5 does not set the `startCol` properties as zero-based, we need to subtract diff --git a/projects/storefrontapp-e2e-cypress/cypress/helpers/vendor/cds/merchandising-carousel.ts b/projects/storefrontapp-e2e-cypress/cypress/helpers/vendor/cds/merchandising-carousel.ts index 9744e245b73..0e84bf3d93a 100644 --- a/projects/storefrontapp-e2e-cypress/cypress/helpers/vendor/cds/merchandising-carousel.ts +++ b/projects/storefrontapp-e2e-cypress/cypress/helpers/vendor/cds/merchandising-carousel.ts @@ -153,11 +153,8 @@ function verifyMerchandisingCarouselRendersProducts(): void { } function verifyCarouselEvent(carouselEvent: any) { - // tslint:disable-next-line: no-unused-expression expect(carouselEvent['strategyId']).to.be.ok; - // tslint:disable-next-line: no-unused-expression expect(carouselEvent['carouselId']).to.be.ok; - // tslint:disable-next-line: no-unused-expression expect(carouselEvent['carouselName']).to.be.ok; expect(carouselEvent['mixCardId']).to.equal( STRATEGY_RESPONSE.metadata.mixcardId @@ -174,7 +171,6 @@ function verifyCarouselViewEvent(carouselEvent: any) { function verifyCarouselClickEvent(productSku: string, carouselEvent: any) { verifyCarouselEvent(carouselEvent); - // tslint:disable-next-line: no-unused-expression expect(carouselEvent['imageUrl']).to.be.ok; expect(carouselEvent['sku']).to.equal(productSku); } diff --git a/projects/storefrontapp-e2e-cypress/cypress/integration/regression/qualtrics/qualtrics.e2e-spec.ts b/projects/storefrontapp-e2e-cypress/cypress/integration/regression/qualtrics/qualtrics.e2e-spec.ts index 2f52750dd0a..d5d639ff84b 100644 --- a/projects/storefrontapp-e2e-cypress/cypress/integration/regression/qualtrics/qualtrics.e2e-spec.ts +++ b/projects/storefrontapp-e2e-cypress/cypress/integration/regression/qualtrics/qualtrics.e2e-spec.ts @@ -57,9 +57,7 @@ context('Qualtrics integration', () => { cy.window().then((win) => win.dispatchEvent(new Event('qsi_js_loaded'))); }); it('should call the QSI API load() and run() functions', () => { - // tslint:disable-next-line: no-unused-expression expect(loadSpy).to.have.been.called; - // tslint:disable-next-line: no-unused-expression expect(runSpy).to.have.been.called; }); }); diff --git a/projects/storefrontapp/.eslintrc.json b/projects/storefrontapp/.eslintrc.json new file mode 100644 index 00000000000..84906b4b9ff --- /dev/null +++ b/projects/storefrontapp/.eslintrc.json @@ -0,0 +1,11 @@ +{ + "extends": "../../.eslintrc.json", + "overrides": [ + { + "files": ["*.ts"], + "rules": { + "@angular-eslint/component-selector": "off" + } + } + ] +} diff --git a/projects/storefrontapp/src/test.ts b/projects/storefrontapp/src/test.ts index d79a8699fca..d42fe562cc3 100644 --- a/projects/storefrontapp/src/test.ts +++ b/projects/storefrontapp/src/test.ts @@ -1,3 +1,4 @@ +/* eslint-disable */ // This file is required by karma.conf.js and loads recursively all the .spec and framework files import 'zone.js/dist/long-stack-trace-zone'; diff --git a/projects/storefrontapp/tslint.json b/projects/storefrontapp/tslint.json deleted file mode 100644 index 0946f20963a..00000000000 --- a/projects/storefrontapp/tslint.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../tslint.json" -} diff --git a/projects/storefrontlib/src/cms-components/asm/customer-selection/customer-selection.component.ts b/projects/storefrontlib/src/cms-components/asm/customer-selection/customer-selection.component.ts index 5fd5e3db686..c60487dd134 100644 --- a/projects/storefrontlib/src/cms-components/asm/customer-selection/customer-selection.component.ts +++ b/projects/storefrontlib/src/cms-components/asm/customer-selection/customer-selection.component.ts @@ -23,7 +23,7 @@ import { debounceTime } from 'rxjs/operators'; templateUrl: './customer-selection.component.html', styleUrls: ['./customer-selection.component.scss'], encapsulation: ViewEncapsulation.None, - // tslint:disable-next-line:no-host-metadata-property + // eslint-disable-next-line @angular-eslint/no-host-metadata-property host: { '(document:click)': 'onDocumentClick($event)', }, diff --git a/projects/storefrontlib/src/cms-components/cart/add-to-cart/added-to-cart-dialog/added-to-cart-dialog.component.ts b/projects/storefrontlib/src/cms-components/cart/add-to-cart/added-to-cart-dialog/added-to-cart-dialog.component.ts index fcd23fa2218..c161feeca4e 100644 --- a/projects/storefrontlib/src/cms-components/cart/add-to-cart/added-to-cart-dialog/added-to-cart-dialog.component.ts +++ b/projects/storefrontlib/src/cms-components/cart/add-to-cart/added-to-cart-dialog/added-to-cart-dialog.component.ts @@ -67,7 +67,7 @@ export class AddedToCartDialogComponent implements OnInit { map((entry) => this.getFormControl(entry)), switchMap(() => this.form.valueChanges.pipe( - // tslint:disable-next-line:deprecation + // eslint-disable-next-line import/no-deprecated startWith(null), tap((valueChange) => { if (valueChange) { diff --git a/projects/storefrontlib/src/cms-components/cart/cart-shared/cart-item-list/cart-item-list.component.ts b/projects/storefrontlib/src/cms-components/cart/cart-shared/cart-item-list/cart-item-list.component.ts index 26a83fd079a..49b0ab0e1d6 100644 --- a/projects/storefrontlib/src/cms-components/cart/cart-shared/cart-item-list/cart-item-list.component.ts +++ b/projects/storefrontlib/src/cms-components/cart/cart-shared/cart-item-list/cart-item-list.component.ts @@ -127,7 +127,7 @@ export class CartItemListComponent { getControl(item: OrderEntry): Observable { return this.form.get(this.getControlName(item)).valueChanges.pipe( - // tslint:disable-next-line:deprecation + // eslint-disable-next-line import/no-deprecated startWith(null), map((value) => { if (value && this.selectiveCartService && this.options.isSaveForLater) { diff --git a/projects/storefrontlib/src/cms-components/cart/cart-shared/cart-item/cart-item.component.ts b/projects/storefrontlib/src/cms-components/cart/cart-shared/cart-item/cart-item.component.ts index 044a7bdc189..34962d63aab 100644 --- a/projects/storefrontlib/src/cms-components/cart/cart-shared/cart-item/cart-item.component.ts +++ b/projects/storefrontlib/src/cms-components/cart/cart-shared/cart-item/cart-item.component.ts @@ -65,10 +65,10 @@ export class CartItemComponent implements OnInit, OnChanges { readonly CartOutlets = CartOutlets; // TODO(#10946): make CartItemContextSource a required dependency - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures constructor( promotionService: PromotionService, - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures cartItemContextSource: CartItemContextSource ); /** diff --git a/projects/storefrontlib/src/cms-components/checkout/checkout.module.ts b/projects/storefrontlib/src/cms-components/checkout/checkout.module.ts index 0ad28e9efe7..e4422b7b5cb 100755 --- a/projects/storefrontlib/src/cms-components/checkout/checkout.module.ts +++ b/projects/storefrontlib/src/cms-components/checkout/checkout.module.ts @@ -2,9 +2,9 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { CheckoutOrchestratorModule } from './components/checkout-orchestrator/checkout-orchestrator.module'; import { CheckoutOrderSummaryModule } from './components/checkout-order-summary/checkout-order-summary.module'; -// tslint:disable-next-line +// eslint-disable-next-line import { CheckoutProgressMobileBottomModule } from './components/checkout-progress/checkout-progress-mobile-bottom/checkout-progress-mobile-bottom.module'; -// tslint:disable-next-line +// eslint-disable-next-line import { CheckoutProgressMobileTopModule } from './components/checkout-progress/checkout-progress-mobile-top/checkout-progress-mobile-top.module'; import { CheckoutProgressModule } from './components/checkout-progress/checkout-progress.module'; import { CostCenterModule } from './components/cost-center/cost-center.module'; diff --git a/projects/storefrontlib/src/cms-components/checkout/components/payment-method/payment-form/payment-form.component.ts b/projects/storefrontlib/src/cms-components/checkout/components/payment-method/payment-form/payment-form.component.ts index 29c62cce620..7ebdca28271 100644 --- a/projects/storefrontlib/src/cms-components/checkout/components/payment-method/payment-form/payment-form.component.ts +++ b/projects/storefrontlib/src/cms-components/checkout/components/payment-method/payment-form/payment-form.component.ts @@ -24,13 +24,13 @@ import { } from '@spartacus/core'; import { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs'; import { map, switchMap, tap } from 'rxjs/operators'; -import { Card } from '../../../../../shared/components/card/card.component'; // tslint:disable-line +import { Card } from '../../../../../shared/components/card/card.component'; // eslint-disable-line import { ModalRef, ModalService, } from '../../../../../shared/components/modal/index'; import { ICON_TYPE } from '../../../../misc/icon/index'; -import { SuggestedAddressDialogComponent } from '../../shipping-address/address-form/suggested-addresses-dialog/suggested-addresses-dialog.component'; // tslint:disable-line +import { SuggestedAddressDialogComponent } from '../../shipping-address/address-form/suggested-addresses-dialog/suggested-addresses-dialog.component'; // eslint-disable-line @Component({ selector: 'cx-payment-form', diff --git a/projects/storefrontlib/src/cms-components/content/tab-paragraph-container/tab-paragraph-container.component.ts b/projects/storefrontlib/src/cms-components/content/tab-paragraph-container/tab-paragraph-container.component.ts index 561c74a31fe..424881117e1 100644 --- a/projects/storefrontlib/src/cms-components/content/tab-paragraph-container/tab-paragraph-container.component.ts +++ b/projects/storefrontlib/src/cms-components/content/tab-paragraph-container/tab-paragraph-container.component.ts @@ -40,7 +40,7 @@ export class TabParagraphContainerComponent componentData: CmsComponentData, cmsService: CmsService, winRef?: WindowRef, - // tslint:disable-next-line:unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures breakpointService?: BreakpointService ); /** diff --git a/projects/storefrontlib/src/cms-components/navigation/search-box/search-box-component.service.ts b/projects/storefrontlib/src/cms-components/navigation/search-box/search-box-component.service.ts index 083068332f1..d993707c859 100644 --- a/projects/storefrontlib/src/cms-components/navigation/search-box/search-box-component.service.ts +++ b/projects/storefrontlib/src/cms-components/navigation/search-box/search-box-component.service.ts @@ -37,7 +37,7 @@ export class SearchBoxComponentService { routingService: RoutingService, translationService: TranslationService, winRef: WindowRef, - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures eventService?: EventService ); constructor( diff --git a/projects/storefrontlib/src/cms-components/navigation/search-box/search-box.component.ts b/projects/storefrontlib/src/cms-components/navigation/search-box/search-box.component.ts index 34a56983551..d3be23f57d9 100644 --- a/projects/storefrontlib/src/cms-components/navigation/search-box/search-box.component.ts +++ b/projects/storefrontlib/src/cms-components/navigation/search-box/search-box.component.ts @@ -80,7 +80,7 @@ export class SearchBoxComponent implements OnInit, OnDestroy { searchBoxComponentService: SearchBoxComponentService, componentData: CmsComponentData, winRef: WindowRef, - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures routingService: RoutingService ); diff --git a/projects/storefrontlib/src/cms-components/order-confirmation/order-confirmation.module.ts b/projects/storefrontlib/src/cms-components/order-confirmation/order-confirmation.module.ts index 5bac086d6f7..c73b62dce44 100644 --- a/projects/storefrontlib/src/cms-components/order-confirmation/order-confirmation.module.ts +++ b/projects/storefrontlib/src/cms-components/order-confirmation/order-confirmation.module.ts @@ -18,7 +18,7 @@ import { PwaModule } from './../../cms-structure/pwa/pwa.module'; import { GuestRegisterFormComponent } from './components/guest-register-form/guest-register-form.component'; import { OrderConfirmationItemsComponent } from './components/order-confirmation-items/order-confirmation-items.component'; import { OrderConfirmationOverviewComponent } from './components/order-confirmation-overview/order-confirmation-overview.component'; -// tslint:disable-next-line +// eslint-disable-next-line import { OrderConfirmationThankYouMessageComponent } from './components/order-confirmation-thank-you-message/order-confirmation-thank-you-message.component'; import { OrderConfirmationTotalsComponent } from './components/order-confirmation-totals/order-confirmation-totals.component'; import { OrderConfirmationGuard } from './guards/order-confirmation.guard'; diff --git a/projects/storefrontlib/src/cms-components/product/product-list/product-grid-item/product-grid-item.component.ts b/projects/storefrontlib/src/cms-components/product/product-list/product-grid-item/product-grid-item.component.ts index e2f74078a57..e2493aeb3f6 100644 --- a/projects/storefrontlib/src/cms-components/product/product-list/product-grid-item/product-grid-item.component.ts +++ b/projects/storefrontlib/src/cms-components/product/product-list/product-grid-item/product-grid-item.component.ts @@ -27,7 +27,7 @@ export class ProductGridItemComponent implements OnChanges { @Input() product: any; // TODO(#10946): make ProductListItemContextSource a required dependency - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures constructor(productListItemContextSource: ProductListItemContextSource); /** * @deprecated since 3.1 diff --git a/projects/storefrontlib/src/cms-components/product/product-list/product-list-item/product-list-item.component.ts b/projects/storefrontlib/src/cms-components/product/product-list/product-list-item/product-list-item.component.ts index 9d01f517ee2..b84f1954fee 100644 --- a/projects/storefrontlib/src/cms-components/product/product-list/product-list-item/product-list-item.component.ts +++ b/projects/storefrontlib/src/cms-components/product/product-list/product-list-item/product-list-item.component.ts @@ -27,7 +27,7 @@ export class ProductListItemComponent implements OnChanges { @Input() product: any; // TODO(#10946): make ProductListItemContextSource a required dependency - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures constructor(productListItemContextSource: ProductListItemContextSource); /** * @deprecated since 3.1 diff --git a/projects/storefrontlib/src/cms-components/product/product-variants/variant-color-selector/variant-color-selector.component.spec.ts b/projects/storefrontlib/src/cms-components/product/product-variants/variant-color-selector/variant-color-selector.component.spec.ts index 96be47816fe..60429907c5f 100644 --- a/projects/storefrontlib/src/cms-components/product/product-variants/variant-color-selector/variant-color-selector.component.spec.ts +++ b/projects/storefrontlib/src/cms-components/product/product-variants/variant-color-selector/variant-color-selector.component.spec.ts @@ -1,4 +1,4 @@ -/* tslint:disable:no-unused-variable */ +/* eslint-disable @typescript-eslint/no-unused-vars */ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { diff --git a/projects/storefrontlib/src/cms-structure/outlet/outlet.service.ts b/projects/storefrontlib/src/cms-structure/outlet/outlet.service.ts index eb184d78a29..5c6e4d393e0 100644 --- a/projects/storefrontlib/src/cms-structure/outlet/outlet.service.ts +++ b/projects/storefrontlib/src/cms-structure/outlet/outlet.service.ts @@ -27,7 +27,7 @@ export class OutletService | ComponentFactory> { */ add( outlet: string, - // tslint:disable-next-line: unified-signatures + // eslint-disable-next-line @typescript-eslint/unified-signatures factory: T, position?: OutletPosition ): void; diff --git a/projects/storefrontlib/src/cms-structure/page/page-layout/page-layout.service.ts b/projects/storefrontlib/src/cms-structure/page/page-layout/page-layout.service.ts index a2a5b5e882b..883c77ec912 100644 --- a/projects/storefrontlib/src/cms-structure/page/page-layout/page-layout.service.ts +++ b/projects/storefrontlib/src/cms-structure/page/page-layout/page-layout.service.ts @@ -235,7 +235,7 @@ export class PageLayoutService { } if (!this.logSlots[page.template]) { // the info log is not printed in production - // tslint:disable-next-line: no-console + // eslint-disable-next-line no-console console.info( `Available CMS page slots: '${Object.keys(page.slots).join(`','`)}'` ); diff --git a/projects/storefrontlib/src/cms-structure/pwa/components/add-to-home-screen.component.ts b/projects/storefrontlib/src/cms-structure/pwa/components/add-to-home-screen.component.ts index d9ca20784e9..3bda8a03e2a 100644 --- a/projects/storefrontlib/src/cms-structure/pwa/components/add-to-home-screen.component.ts +++ b/projects/storefrontlib/src/cms-structure/pwa/components/add-to-home-screen.component.ts @@ -3,7 +3,7 @@ import { Observable } from 'rxjs'; import { AddToHomeScreenService } from '../services/add-to-home-screen.service'; @Directive() -// tslint:disable-next-line:directive-class-suffix +// eslint-disable-next-line @angular-eslint/directive-class-suffix export abstract class AddToHomeScreenComponent implements OnInit { canPrompt$: Observable; constructor(protected addToHomeScreenService: AddToHomeScreenService) {} diff --git a/projects/storefrontlib/src/cms-structure/services/cms-features.service.ts b/projects/storefrontlib/src/cms-structure/services/cms-features.service.ts index 4ab4e7c7cf9..62d4c854c5e 100644 --- a/projects/storefrontlib/src/cms-structure/services/cms-features.service.ts +++ b/projects/storefrontlib/src/cms-structure/services/cms-features.service.ts @@ -150,7 +150,7 @@ export class CmsFeaturesService { moduleRef: NgModuleRef, feature: string ): FeatureInstance { - // tslint:disable-next-line:no-non-null-assertion + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const featureConfig = this.featureModulesConfig![feature]; const featureInstance: FeatureInstance = { @@ -165,7 +165,7 @@ export class CmsFeaturesService { // extract cms components configuration from feature config for (const componentType of featureConfig.cmsComponents ?? []) { - // tslint:disable-next-line:no-non-null-assertion + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion featureInstance.componentsMappings![componentType] = resolvedConfiguration.cmsComponents?.[componentType] ?? {}; } diff --git a/projects/storefrontlib/src/layout/a11y/keyboard-focus/escape/escape-focus.directive.spec.ts b/projects/storefrontlib/src/layout/a11y/keyboard-focus/escape/escape-focus.directive.spec.ts index be27c25c417..c4961e0a0a3 100644 --- a/projects/storefrontlib/src/layout/a11y/keyboard-focus/escape/escape-focus.directive.spec.ts +++ b/projects/storefrontlib/src/layout/a11y/keyboard-focus/escape/escape-focus.directive.spec.ts @@ -43,7 +43,7 @@ class CustomFocusDirective extends EscapeFocusDirective { `, }) class MockComponent { - // tslint:disable-next-line: variable-name + // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match handleEmit(_event: boolean): void {} } diff --git a/projects/storefrontlib/src/layout/a11y/keyboard-focus/focus.directive.ts b/projects/storefrontlib/src/layout/a11y/keyboard-focus/focus.directive.ts index f18a1e711c4..02ccb659672 100644 --- a/projects/storefrontlib/src/layout/a11y/keyboard-focus/focus.directive.ts +++ b/projects/storefrontlib/src/layout/a11y/keyboard-focus/focus.directive.ts @@ -8,7 +8,7 @@ import { KeyboardFocusService } from './services/keyboard-focus.service'; }) export class FocusDirective extends LockFocusDirective { protected defaultConfig: FocusConfig = {}; - // tslint:disable-next-line: no-input-rename + // eslint-disable-next-line @angular-eslint/no-input-rename @Input('cxFocus') protected config: FocusConfig = {}; constructor( diff --git a/projects/storefrontlib/src/layout/a11y/keyboard-focus/keyboard-focus.model.ts b/projects/storefrontlib/src/layout/a11y/keyboard-focus/keyboard-focus.model.ts index 4d143eb25cb..acbca38288c 100644 --- a/projects/storefrontlib/src/layout/a11y/keyboard-focus/keyboard-focus.model.ts +++ b/projects/storefrontlib/src/layout/a11y/keyboard-focus/keyboard-focus.model.ts @@ -8,7 +8,7 @@ export const enum MOVE_FOCUS { PREV = -1, } -// tslint:disable-next-line: no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-interface export interface BaseFocusConfig {} export interface VisibleFocusConfig { @@ -105,5 +105,5 @@ export interface LockFocusConfig extends TrapFocusConfig { lock?: boolean; } -// tslint:disable-next-line: no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-interface export interface FocusConfig extends LockFocusConfig {} diff --git a/projects/storefrontlib/src/shared/components/star-rating/star-rating.component.ts b/projects/storefrontlib/src/shared/components/star-rating/star-rating.component.ts index 921629a7ff7..088afcaaf98 100644 --- a/projects/storefrontlib/src/shared/components/star-rating/star-rating.component.ts +++ b/projects/storefrontlib/src/shared/components/star-rating/star-rating.component.ts @@ -43,7 +43,7 @@ export class StarRatingComponent { /** * Emits the given rating when the user clicks on a star. */ - // tslint:disable-next-line:no-output-native + // eslint-disable-next-line @angular-eslint/no-output-native @Output() change = new EventEmitter(); setRate(value: number): void { diff --git a/projects/storefrontlib/src/shared/components/table/table.model.ts b/projects/storefrontlib/src/shared/components/table/table.model.ts index 14faaa414b3..c5ac874a4ff 100644 --- a/projects/storefrontlib/src/shared/components/table/table.model.ts +++ b/projects/storefrontlib/src/shared/components/table/table.model.ts @@ -168,7 +168,7 @@ export interface TableHeaderOutletContext { _i18nRoot?: string; } -// tslint:disable-next-line: no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-interface export interface TableDataOutletContext extends TableHeaderOutletContext { [property: string]: any; } diff --git a/projects/storefrontlib/tslint.json b/projects/storefrontlib/tslint.json deleted file mode 100644 index 2c0d53b823a..00000000000 --- a/projects/storefrontlib/tslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../tslint.json", - "rules": { - "directive-selector": [true, "attribute", ["cx"], "camelCase"], - "component-selector": [true, "element", ["cx"], "kebab-case"] - } -} diff --git a/projects/vendor/src/yotpo/service/yotpo.service.ts b/projects/vendor/src/yotpo/service/yotpo.service.ts index d0d62e3f880..2f1c71c9c7c 100644 --- a/projects/vendor/src/yotpo/service/yotpo.service.ts +++ b/projects/vendor/src/yotpo/service/yotpo.service.ts @@ -1,11 +1,11 @@ -import { Injectable, ElementRef } from '@angular/core'; -import { Observable } from 'rxjs'; +import { ElementRef, Injectable } from '@angular/core'; import { Product, ProductService, RoutingService, WindowRef, } from '@spartacus/core'; +import { Observable } from 'rxjs'; import { filter, map, switchMap } from 'rxjs/operators'; import { YotpoConfig } from '../yotpoconfig/yotpo-config'; @@ -39,7 +39,6 @@ export class YotpoService { addYotpoInitWidgetsScript(elementRef: ElementRef) { const s = this.windowRef.document.createElement('script'); s.type = 'text/javascript'; - // tslint:disable-next-line s.text = `function callYotpo() { if (typeof yotpo !== 'undefined' && yotpo.initialized && yotpo.state=='ready') { yotpo.initWidgets(); } else { setTimeout(function() { callYotpo(); }, 1000);} } callYotpo();`; elementRef.nativeElement.appendChild(s); } diff --git a/scripts/changelog.ts b/scripts/changelog.ts index 189971e54f4..9e7e6a53b36 100644 --- a/scripts/changelog.ts +++ b/scripts/changelog.ts @@ -1,4 +1,3 @@ -// tslint:disable:no-implicit-dependencies import { JsonObject, logging } from '@angular-devkit/core'; import chalk from 'chalk'; import program from 'commander'; @@ -153,7 +152,6 @@ export default async function run( chunk.gitTags && (chunk.gitTags as string).match(/tag: (.*)/); const tags = maybeTag && maybeTag[1].split(/,/g); chunk['tags'] = tags; - // tslint:disable-next-line:triple-equals if (tags && tags.find((x) => x == args.to)) { toSha = chunk.hash as string; } @@ -212,7 +210,6 @@ export default async function run( }) .then(([body, markdown]) => { const json = body.body; - // tslint:disable-next-line:triple-equals const maybeRelease = json.find((x: JsonObject) => x.tag_name == args.to); const id = maybeRelease ? `/${maybeRelease.id}` : ''; diff --git a/scripts/packages.ts b/scripts/packages.ts index 6d91488d2bf..8af44cf6d0a 100644 --- a/scripts/packages.ts +++ b/scripts/packages.ts @@ -1,4 +1,3 @@ -// tslint:disable-next-line:no-implicit-dependencies import { JsonObject } from '@angular-devkit/core'; import * as path from 'path'; diff --git a/sonar-project.properties b/sonar-project.properties index 1b39c585dd0..9286b1044d2 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -10,7 +10,7 @@ sonar.test.inclusions=**/*.spec.ts sonar.typescript.lcov.reportPaths=coverage/cds/lcov.info,coverage/core/lcov.info,coverage/storefront/lcov.info,coverage/organization/lcov.info,coverage/product/lcov.info,coverage/product-configurator/lcov.info,coverage/storefinder/lcov.info,coverage/smartedit/lcov.info,coverage/qualtrics/lcov.info,coverage/tracking/lcov.info,coverage/cdc/lcov.info,coverage/setup/lcov.info sonar.javascript.lcov.reportPaths=coverage/cds/lcov.info,coverage/core/lcov.info,coverage/storefront/lcov.info,coverage/organization/lcov.info,coverage/product/lcov.info,coverage/product-configurator/lcov.info,coverage/storefinder/lcov.info,coverage/smartedit/lcov.info,coverage/qualtrics/lcov.info,coverage/tracking/lcov.info,coverage/cdc/lcov.info,coverage/setup/lcov.info -sonar.typescript.tsconfigPath=tslint.json +sonar.typescript.tsconfigPath=tsconfig.json sonar.cfamily.build-wrapper-output.bypass=true diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json new file mode 100644 index 00000000000..b81b3b86271 --- /dev/null +++ b/tsconfig.eslint.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "include": ["**/*.ts"] +} diff --git a/tslint.json b/tslint.json deleted file mode 100644 index 39f436793bf..00000000000 --- a/tslint.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "rulesDirectory": ["node_modules/codelyzer"], - "rules": { - "arrow-return-shorthand": true, - "callable-types": true, - "class-name": true, - "deprecation": { - "severity": "warn" - }, - "forin": true, - "import-blacklist": [true, "rxjs/Rx"], - "interface-over-type-literal": false, - "label-position": true, - "member-access": false, - "member-ordering": [ - true, - { - "order": [ - "static-field", - "instance-field", - "static-method", - "instance-method" - ] - } - ], - "no-arg": true, - "no-bitwise": true, - "no-console": [true, "debug", "info", "time", "timeEnd", "trace"], - "no-construct": true, - "no-debugger": true, - "no-duplicate-super": true, - "no-empty": false, - "no-empty-interface": true, - "no-eval": true, - "no-inferrable-types": [true, "ignore-params"], - "no-misused-new": true, - "no-non-null-assertion": true, - "no-shadowed-variable": true, - "no-string-literal": false, - "no-string-throw": true, - "no-switch-case-fall-through": true, - "no-unnecessary-initializer": true, - "no-unused-expression": true, - "no-var-keyword": true, - "object-literal-sort-keys": false, - "prefer-const": true, - "radix": true, - "triple-equals": [true, "allow-null-check"], - "unified-signatures": true, - "variable-name": false, - "no-output-on-prefix": true, - "use-host-property-decorator": false, - "no-input-rename": true, - "no-output-rename": true, - "use-life-cycle-interface": true, - "use-pipe-transform-interface": true, - "component-class-suffix": true, - "directive-class-suffix": true, - "no-conflicting-lifecycle": true, - "no-host-metadata-property": true, - "no-inputs-metadata-property": true, - "no-output-native": true, - "no-outputs-metadata-property": true, - "template-banana-in-box": true, - "use-lifecycle-interface": true, - "linebreak-style": [true, "LF"] - } -} diff --git a/yarn.lock b/yarn.lock index 2b37b7f323d..9e5e84399da 100644 --- a/yarn.lock +++ b/yarn.lock @@ -276,6 +276,44 @@ ora "5.0.0" rxjs "6.6.2" +"@angular-eslint/builder@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@angular-eslint/builder/-/builder-1.2.0.tgz#485f07be5fbce8e87b53324e2e532b46461c7fef" + integrity sha512-bYIut4edOq/RWyYsi3Z5NW/wEHSGLpjXfQ38zbdRlsX93+N8nAu1hf5ishbnpkEobEyerktoRVmRI8UXPsijjg== + +"@angular-eslint/eslint-plugin-template@1.2.0", "@angular-eslint/eslint-plugin-template@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-1.2.0.tgz#4de08fe4457edfd1e999b507b52f9a0c27b3b924" + integrity sha512-Oi/y+N/FETuyhbVuFxbkCqSfLo61CAvIPwnQQCfDku/IsCSTI1SjW+B2xO9thDI5po7t5V+3n26uMLQsWNZmlw== + dependencies: + "@typescript-eslint/experimental-utils" "4.3.0" + aria-query "^4.2.2" + axobject-query "^2.2.0" + +"@angular-eslint/eslint-plugin@1.2.0", "@angular-eslint/eslint-plugin@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin/-/eslint-plugin-1.2.0.tgz#940f659fbbff5da2b69614e839e4dd82a9107839" + integrity sha512-HxSDdAS2/lbwYBJmRVRKlx5wjiKdeBPl7JJlciwhrP7QR01a66AWun+fW1ZpMnnqivkF+D5sISsoedRLthRcwA== + dependencies: + "@typescript-eslint/experimental-utils" "4.3.0" + +"@angular-eslint/schematics@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@angular-eslint/schematics/-/schematics-1.2.0.tgz#d91034c9bbaff2f694a484648fca46d7cb61b616" + integrity sha512-F0Mb6XyLWGmmtov5kv/BHvt22Uo/FuD4y2WhO7NUA9rZRJd+anmyHCkC9HXmNKUuLQIUKjJ4DJgsmD0Kh0Hr2g== + dependencies: + "@angular-eslint/eslint-plugin" "1.2.0" + "@angular-eslint/eslint-plugin-template" "1.2.0" + strip-json-comments "3.1.1" + tslint-to-eslint-config "2.0.1" + +"@angular-eslint/template-parser@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@angular-eslint/template-parser/-/template-parser-1.2.0.tgz#aa0eeaf9b770c65f0a1766a868a077fc2ff8eeaf" + integrity sha512-EfNJh0nFGJInHa2ccVw8Eb9ujWoUAwaQMCi9GppzYrqhSPc0YZqdQg4eIW2AlZs1giHD2Ko/V1rphzw+9gisCw== + dependencies: + eslint-scope "^5.1.0" + "@angular/animations@^10.2.4": version "10.2.4" resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-10.2.4.tgz#6c222aa1f4efd078f4c7388235ef5b9144bf80a4" @@ -335,11 +373,6 @@ tslib "^2.0.0" yargs "^16.1.1" -"@angular/compiler@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.0.0.tgz#87e0bef4c369b6cadae07e3a4295778fc93799d5" - integrity sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ== - "@angular/compiler@^10.2.4": version "10.2.4" resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-10.2.4.tgz#87ed92bae04dab78eace179ec93ec563e2d946bc" @@ -347,11 +380,6 @@ dependencies: tslib "^2.0.0" -"@angular/core@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.0.0.tgz#227dc53e1ac81824f998c6e76000b7efc522641e" - integrity sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w== - "@angular/core@^10.2.4": version "10.2.4" resolved "https://registry.yarnpkg.com/@angular/core/-/core-10.2.4.tgz#1124061f8232d79fcff7508c9243ec5ec3fc00f3" @@ -418,6 +446,13 @@ dependencies: tslib "^2.0.0" +"@babel/code-frame@7.12.11", "@babel/code-frame@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" @@ -425,13 +460,6 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - "@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" @@ -1443,6 +1471,14 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" +"@babel/runtime-corejs3@^7.10.2": + version "7.12.18" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.18.tgz#e5663237e5658e4c09586995d2dd6d2c8cfd6fc0" + integrity sha512-ngR7yhNTjDxxe1VYmhqQqqXZWujGb6g0IoA4qeG6MxNGRnIw2Zo8ImY8HfaQ7l3T6GklWhdNfyhWk0C0iocdVA== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + "@babel/runtime@7.11.2", "@babel/runtime@^7.10.1", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4": version "7.11.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" @@ -1450,6 +1486,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.10.2": + version "7.12.18" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.18.tgz#af137bd7e7d9705a412b3caaf991fe6aaa97831b" + integrity sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/template@7.10.4", "@babel/template@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" @@ -1617,6 +1660,22 @@ is-absolute "^1.0.0" is-negated-glob "^1.0.0" +"@eslint/eslintrc@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318" + integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.20" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + "@hapi/address@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-4.1.0.tgz#d60c5c0d930e77456fdcde2598e77302e2955e1d" @@ -2408,11 +2467,21 @@ "@types/parse5" "*" "@types/tough-cookie" "*" +"@types/json-schema@^7.0.3": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== + "@types/json-schema@^7.0.5": version "7.0.6" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + "@types/keyv@*": version "3.1.1" resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" @@ -2566,6 +2635,160 @@ dependencies: "@types/yargs-parser" "*" +"@typescript-eslint/eslint-plugin@^4.3.0": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.15.2.tgz#981b26b4076c62a5a55873fbef3fe98f83360c61" + integrity sha512-uiQQeu9tWl3f1+oK0yoAv9lt/KXO24iafxgQTkIYO/kitruILGx3uH+QtIAHqxFV+yIsdnJH+alel9KuE3J15Q== + dependencies: + "@typescript-eslint/experimental-utils" "4.15.2" + "@typescript-eslint/scope-manager" "4.15.2" + debug "^4.1.1" + functional-red-black-tree "^1.0.1" + lodash "^4.17.15" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@4.15.2": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.15.2.tgz#5efd12355bd5b535e1831282e6cf465b9a71cf36" + integrity sha512-Fxoshw8+R5X3/Vmqwsjc8nRO/7iTysRtDqx6rlfLZ7HbT8TZhPeQqbPjTyk2RheH3L8afumecTQnUc9EeXxohQ== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.15.2" + "@typescript-eslint/types" "4.15.2" + "@typescript-eslint/typescript-estree" "4.15.2" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/experimental-utils@4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.3.0.tgz#3f3c6c508e01b8050d51b016e7f7da0e3aefcb87" + integrity sha512-cmmIK8shn3mxmhpKfzMMywqiEheyfXLV/+yPDnOTvQX/ztngx7Lg/OD26J8gTZfkLKUmaEBxO2jYP3keV7h2OQ== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.3.0" + "@typescript-eslint/types" "4.3.0" + "@typescript-eslint/typescript-estree" "4.3.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/experimental-utils@^2.19.2 || ^3.0.0": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" + integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/typescript-estree" "3.10.1" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^4.3.0": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.15.2.tgz#c804474321ef76a3955aec03664808f0d6e7872e" + integrity sha512-SHeF8xbsC6z2FKXsaTb1tBCf0QZsjJ94H6Bo51Y1aVEZ4XAefaw5ZAilMoDPlGghe+qtq7XdTiDlGfVTOmvA+Q== + dependencies: + "@typescript-eslint/scope-manager" "4.15.2" + "@typescript-eslint/types" "4.15.2" + "@typescript-eslint/typescript-estree" "4.15.2" + debug "^4.1.1" + +"@typescript-eslint/scope-manager@4.15.2": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.15.2.tgz#5725bda656995960ae1d004bfd1cd70320f37f4f" + integrity sha512-Zm0tf/MSKuX6aeJmuXexgdVyxT9/oJJhaCkijv0DvJVT3ui4zY6XYd6iwIo/8GEZGy43cd7w1rFMiCLHbRzAPQ== + dependencies: + "@typescript-eslint/types" "4.15.2" + "@typescript-eslint/visitor-keys" "4.15.2" + +"@typescript-eslint/scope-manager@4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.3.0.tgz#c743227e087545968080d2362cfb1273842cb6a7" + integrity sha512-cTeyP5SCNE8QBRfc+Lgh4Xpzje46kNUhXYfc3pQWmJif92sjrFuHT9hH4rtOkDTo/si9Klw53yIr+djqGZS1ig== + dependencies: + "@typescript-eslint/types" "4.3.0" + "@typescript-eslint/visitor-keys" "4.3.0" + +"@typescript-eslint/types@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" + integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== + +"@typescript-eslint/types@4.15.2": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.15.2.tgz#04acf3a2dc8001a88985291744241e732ef22c60" + integrity sha512-r7lW7HFkAarfUylJ2tKndyO9njwSyoy6cpfDKWPX6/ctZA+QyaYscAHXVAfJqtnY6aaTwDYrOhp+ginlbc7HfQ== + +"@typescript-eslint/types@4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.3.0.tgz#1f0b2d5e140543e2614f06d48fb3ae95193c6ddf" + integrity sha512-Cx9TpRvlRjOppGsU6Y6KcJnUDOelja2NNCX6AZwtVHRzaJkdytJWMuYiqi8mS35MRNA3cJSwDzXePfmhU6TANw== + +"@typescript-eslint/typescript-estree@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" + integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== + dependencies: + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/visitor-keys" "3.10.1" + debug "^4.1.1" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/typescript-estree@4.15.2": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.15.2.tgz#c2f7a1e94f3428d229d5ecff3ead6581ee9b62fa" + integrity sha512-cGR8C2g5SPtHTQvAymEODeqx90pJHadWsgTtx6GbnTWKqsg7yp6Eaya9nFzUd4KrKhxdYTTFBiYeTPQaz/l8bw== + dependencies: + "@typescript-eslint/types" "4.15.2" + "@typescript-eslint/visitor-keys" "4.15.2" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/typescript-estree@4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.3.0.tgz#0edc1068e6b2e4c7fdc54d61e329fce76241cee8" + integrity sha512-ZAI7xjkl+oFdLV/COEz2tAbQbR3XfgqHEGy0rlUXzfGQic6EBCR4s2+WS3cmTPG69aaZckEucBoTxW9PhzHxxw== + dependencies: + "@typescript-eslint/types" "4.3.0" + "@typescript-eslint/visitor-keys" "4.3.0" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/visitor-keys@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" + integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== + dependencies: + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/visitor-keys@4.15.2": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.15.2.tgz#3d1c7979ce75bf6acf9691109bd0d6b5706192b9" + integrity sha512-TME1VgSb7wTwgENN5KVj4Nqg25hP8DisXxNBojM4Nn31rYaNDIocNm5cmjOFfh42n7NVERxWrDFoETO/76ePyg== + dependencies: + "@typescript-eslint/types" "4.15.2" + eslint-visitor-keys "^2.0.0" + +"@typescript-eslint/visitor-keys@4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.3.0.tgz#0e5ab0a09552903edeae205982e8521e17635ae0" + integrity sha512-xZxkuR7XLM6RhvLkgv9yYlTcBHnTULzfnw4i6+z2TGBLy9yljAypQaZl9c3zFvy7PNI7fYWyvKYtohyF8au3cw== + dependencies: + "@typescript-eslint/types" "4.3.0" + eslint-visitor-keys "^2.0.0" + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -2769,6 +2992,11 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + acorn-node@^1.3.0: version "1.8.2" resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" @@ -2793,6 +3021,11 @@ acorn@^7.0.0, acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + adjust-sourcemap-loader@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz#6471143af75ec02334b219f54bc7970c52fb29a4" @@ -2876,6 +3109,26 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.10.0: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^7.0.2: + version "7.1.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.1.1.tgz#1e6b37a454021fa9941713f38b952fc1c8d32a84" + integrity sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -3004,11 +3257,6 @@ apache-md5@^1.0.6: resolved "https://registry.yarnpkg.com/apache-md5/-/apache-md5-1.1.5.tgz#5d6365ece2ccc32b612f886b2b292e1c96ff3ffb" integrity sha512-sbLEIMQrkV7RkIruqTPXxeCMkAAycv4yzTkBzRgOR1BrR5UB7qZtupqxkersTJSf0HZ3sbaNRrNV80TnnM7cUw== -app-root-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" - integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== - aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -3026,13 +3274,13 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -aria-query@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" - integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w= +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== dependencies: - ast-types-flow "0.0.7" - commander "^2.11.0" + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" arity-n@^1.0.4: version "1.0.4" @@ -3074,6 +3322,17 @@ array-from@^2.1.1: resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= +array-includes@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" + is-string "^1.0.5" + array-timsort@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926" @@ -3101,6 +3360,15 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +array.prototype.flat@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + arraybuffer.slice@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" @@ -3167,11 +3435,6 @@ ast-transform@0.0.0: esprima "~1.0.4" through "~2.3.4" -ast-types-flow@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= - ast-types@^0.7.0: version "0.7.8" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.7.8.tgz#902d2e0d60d071bdcd46dc115e1809ed11c138a9" @@ -3269,12 +3532,10 @@ axios@^0.19.2: dependencies: follow-redirects "1.5.10" -axobject-query@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" - integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww== - dependencies: - ast-types-flow "0.0.7" +axobject-query@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== babel-jest@^26.6.3: version "26.6.3" @@ -3927,6 +4188,14 @@ cacheable-request@^7.0.1: normalize-url "^4.1.0" responselike "^2.0.0" +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" @@ -4286,25 +4555,10 @@ code-block-writer@^7.2.0: resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-7.3.1.tgz#b3b921b885fe7fb869866c0648491eae6c08cfa9" integrity sha512-3Jfe6ZmmGzvdQWFo3MUzobn3WdX++jc3Tj0rsviJWYPnP7NGMFEE4qheNeOXeJgB1TTgxYT8XuNvhS/u596yGg== -codelyzer@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-6.0.0.tgz#50c98581cc2890e0e9a9f93878dc317115d836ed" - integrity sha512-edJIQCIcxD9DhVSyBEdJ38AbLikm515Wl91t5RDGNT88uA6uQdTm4phTWfn9JhzAI8kXNUcfYyAE90lJElpGtA== - dependencies: - "@angular/compiler" "9.0.0" - "@angular/core" "9.0.0" - app-root-path "^3.0.0" - aria-query "^3.0.0" - axobject-query "2.0.2" - css-selector-tokenizer "^0.7.1" - cssauron "^1.4.0" - damerau-levenshtein "^1.0.4" - rxjs "^6.5.3" - semver-dsl "^1.0.1" - source-map "^0.5.7" - sprintf-js "^1.1.2" - tslib "^1.10.0" - zone.js "~0.10.3" +coffeescript@1.12.7: + version "1.12.7" + resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-1.12.7.tgz#e57ee4c4867cf7f606bfc4a0f2d550c0981ddd27" + integrity sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA== collapse-white-space@^1.0.2: version "1.0.6" @@ -4386,7 +4640,12 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^2.0.0, commander@^2.11.0, commander@^2.12.1, commander@^2.18.0, commander@^2.2.0, commander@^2.20.0: +commander@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75" + integrity sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q== + +commander@^2.0.0, commander@^2.12.1, commander@^2.18.0, commander@^2.2.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -4417,6 +4676,11 @@ comment-json@^4.1.0: has-own-prop "^2.0.0" repeat-string "^1.6.1" +comment-parser@^0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.7.6.tgz#0e743a53c8e646c899a1323db31f6cd337b10f12" + integrity sha512-GKNxVA7/iuTnAqGADlTWX4tkhzxZKXp5fLJqKTlQLHkE65XDUKutZ3BHaJC5IGcper2tT3QRD1xr4o3jNpgXXg== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -4546,6 +4810,11 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -4640,6 +4909,11 @@ core-js-compat@^3.6.2: browserslist "^4.8.5" semver "7.0.0" +core-js-pure@^3.0.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.9.0.tgz#326cc74e1fef8b7443a6a793ddb0adfcd81f9efb" + integrity sha512-3pEcmMZC9Cq0D4ZBh3pe2HLtqxpGNJBLXF/kZ2YzK17RbKp94w0HFbdbSx8H8kAlZG5k76hvLrkPm57Uyef+kg== + core-js@3.6.4: version "3.6.4" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" @@ -4743,7 +5017,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.1: +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -4779,6 +5053,13 @@ crypto-random-string@^2.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== +cson-parser@4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cson-parser/-/cson-parser-4.0.7.tgz#41cfbcb16f6481d7dbd8e80784db1d87a2bbd04d" + integrity sha512-BSnAl0gllETWjU9/lb8MmeqhsGaRINPwhoPiBjI/TJBRvKf/24I9EVqnwvmk6R3Gt66cMRSGVktl6QicxIb72g== + dependencies: + coffeescript "1.12.7" + css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" @@ -4842,14 +5123,6 @@ css-select@~1.2.0: domutils "1.5.1" nth-check "~1.0.1" -css-selector-tokenizer@^0.7.1: - version "0.7.3" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" - integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== - dependencies: - cssesc "^3.0.0" - fastparse "^1.1.2" - css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" @@ -4886,13 +5159,6 @@ css@^2.0.0: source-map-resolve "^0.5.2" urix "^0.1.0" -cssauron@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssauron/-/cssauron-1.4.0.tgz#a6602dff7e04a8306dc0db9a551e92e8b5662ad8" - integrity sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg= - dependencies: - through X.X.X - cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" @@ -5013,11 +5279,6 @@ d@1, d@^1.0.1: es5-ext "^0.10.50" type "^1.0.1" -damerau-levenshtein@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" - integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== - dargs@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" @@ -5059,7 +5320,7 @@ date-format@^3.0.0: resolved "https://registry.yarnpkg.com/date-format/-/date-format-3.0.0.tgz#eb8780365c7d2b1511078fb491e6479780f3ad95" integrity sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -5080,7 +5341,7 @@ debug@4.1.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: dependencies: ms "^2.1.1" -debug@4.3.1: +debug@4.3.1, debug@^4.0.1, debug@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== @@ -5160,7 +5421,7 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@~0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -5375,6 +5636,21 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + dom-serialize@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" @@ -5688,7 +5964,7 @@ enhanced-resolve@4.3.0, enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.1, enhanc memory-fs "^0.5.0" tapable "^1.0.0" -enquirer@^2.3.6: +enquirer@^2.3.5, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -5730,7 +6006,7 @@ errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" -error-ex@^1.3.1: +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -5772,6 +6048,26 @@ es-abstract@^1.18.0-next.0: string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0-next.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" + integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-negative-zero "^2.0.1" + is-regex "^1.1.1" + object-inspect "^1.9.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.3" + string.prototype.trimstart "^1.0.3" + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -5903,6 +6199,75 @@ escodegen@~1.2.0: optionalDependencies: source-map "~0.1.30" +eslint-config-prettier@6.15.0: + version "6.15.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" + integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== + dependencies: + get-stdin "^6.0.0" + +eslint-import-resolver-node@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-module-utils@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-deprecation@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-deprecation/-/eslint-plugin-deprecation-1.2.0.tgz#e12333a857986fc87fa2eff44c7425eba9653070" + integrity sha512-SrZqomFYofRbxJ9dlAcu526/tiZoWoZgHdZWKHjrRT/uLfTtTTjdVf0gdy0AZxK8nH5ri0fukgwS28llUueitA== + dependencies: + "@typescript-eslint/experimental-utils" "^2.19.2 || ^3.0.0" + tslib "^1.10.0" + tsutils "^3.0.0" + +eslint-plugin-import@^2.22.1: + version "2.22.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" + integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + dependencies: + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.4" + eslint-module-utils "^2.6.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.1" + read-pkg-up "^2.0.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" + +eslint-plugin-jsdoc@^30.7.6: + version "30.7.13" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-30.7.13.tgz#52e5c74fb806d3bbeb51d04a0c829508c3c6b563" + integrity sha512-YM4WIsmurrp0rHX6XiXQppqKB8Ne5ATiZLJe2+/fkp9l9ExXFr43BbAbjZaVrpCT+tuPYOZ8k1MICARHnURUNQ== + dependencies: + comment-parser "^0.7.6" + debug "^4.3.1" + jsdoctypeparser "^9.0.0" + lodash "^4.17.20" + regextras "^0.7.1" + semver "^7.3.4" + spdx-expression-parse "^3.0.1" + +eslint-plugin-prefer-arrow@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz#e7fbb3fa4cd84ff1015b9c51ad86550e55041041" + integrity sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ== + eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -5911,6 +6276,83 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-scope@^5.0.0, eslint-scope@^5.1.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint@^7.6.0: + version "7.20.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.20.0.tgz#db07c4ca4eda2e2316e7aa57ac7fc91ec550bdc7" + integrity sha512-qGi0CTcOGP2OtCQBgWZlQjcTuP0XkIpYFj25XtRTQSHC+umNnp7UMshr2G8SLsRFYDdAPFeHOsiteadmMH02Yw== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.3.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + file-entry-cache "^6.0.0" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.20" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.4" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -5921,7 +6363,14 @@ esprima@~1.0.4: resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" integrity sha1-n1V+CPw7TSbs6d00+Pv0drYlha0= -esrecurse@^4.1.0: +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0, esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== @@ -5933,7 +6382,7 @@ estraverse@^4.1.1, estraverse@^4.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.2.0: +estraverse@^5.1.0, estraverse@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== @@ -6257,7 +6706,7 @@ fast-json-stable-stringify@2.1.0, fast-json-stable-stringify@2.x, fast-json-stab resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -6267,11 +6716,6 @@ fastest-levenshtein@^1.0.12: resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== -fastparse@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - fastq@^1.6.0: version "1.8.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" @@ -6319,6 +6763,13 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" +file-entry-cache@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + file-loader@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.0.0.tgz#97bbfaab7a2460c07bcbd72d3a6922407f67649f" @@ -6428,6 +6879,13 @@ find-up@5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -6467,6 +6925,14 @@ flat-cache@^2.0.1: rimraf "2.6.3" write "1.0.3" +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" @@ -6477,6 +6943,11 @@ flatted@^2.0.0, flatted@^2.0.1, flatted@^2.0.2: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== +flatted@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -6679,6 +7150,11 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + genfun@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" @@ -6699,11 +7175,25 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + get-stdin@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" @@ -6788,7 +7278,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0: +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== @@ -6871,6 +7361,13 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + globby@11.0.1, globby@^11.0.1: version "11.0.1" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" @@ -7447,6 +7944,11 @@ ignore@^3.3.5: resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + ignore@^5.1.4, ignore@^5.1.8: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" @@ -7484,6 +7986,14 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" +import-fresh@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + import-fresh@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" @@ -7750,6 +8260,11 @@ is-callable@^1.1.4, is-callable@^1.2.0: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.1.tgz#4d1e21a4f437509d25ce55f8184350771421c96d" integrity sha512-wliAfSzx6V+6WfMOmus1xy0XvSgf/dlStkvTfq7F0g4bOIW0PSUbnyse3NhDwdyYS1ozfUtAAySqTws3z9Eqgg== +is-callable@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + is-ci@2.0.0, is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -7769,7 +8284,7 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.1.0: +is-core-module@^2.1.0, is-core-module@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== @@ -7907,6 +8422,11 @@ is-negative-zero@^2.0.0: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + is-npm@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" @@ -8035,6 +8555,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + is-svg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" @@ -8622,6 +9147,11 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= +jsdoctypeparser@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz#8c97e2fb69315eb274b0f01377eaa5c940bd7b26" + integrity sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw== + jsdom@^16.2.0, jsdom@^16.4.0: version "16.4.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" @@ -8689,11 +9219,21 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -8704,7 +9244,7 @@ json3@^3.3.2: resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== -json5@2.x, json5@^2.1.0, json5@^2.1.2: +json5@2.1.3, json5@2.x, json5@^2.1.0, json5@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== @@ -8962,6 +9502,14 @@ levenary@^1.1.1: dependencies: leven "^3.1.0" +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -9016,6 +9564,16 @@ live-server@^1.2.1: send latest serve-index "^1.9.1" +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -9058,6 +9616,14 @@ localtunnel@^2.0.0: openurl "1.1.1" yargs "13.3.0" +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -10071,6 +10637,11 @@ object-inspect@^1.6.0, object-inspect@^1.7.0, object-inspect@^1.8.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== +object-inspect@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + object-is@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" @@ -10111,6 +10682,16 @@ object.assign@^4.1.0: has-symbols "^1.0.1" object-keys "^1.1.1" +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" @@ -10136,6 +10717,16 @@ object.values@^1.1.0: function-bind "^1.1.1" has "^1.0.3" +object.values@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" + integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" + obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" @@ -10223,6 +10814,18 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + ora@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ora/-/ora-5.0.0.tgz#4f0b34f2994877b49b452a707245ab1e9f6afccb" @@ -10322,6 +10925,13 @@ p-finally@^2.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -10336,6 +10946,13 @@ p-limit@^3.0.1, p-limit@^3.0.2: dependencies: p-try "^2.0.0" +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -10376,6 +10993,11 @@ p-retry@^3.0.1: dependencies: retry "^0.12.0" +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -10486,6 +11108,13 @@ parse-json@5.1.0, parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -10635,6 +11264,13 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -10730,6 +11366,13 @@ pirates@^4.0.1: dependencies: node-modules-regexp "^1.0.0" +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -11219,6 +11862,11 @@ postcss@^8.1.6, postcss@^8.2.3: nanoid "^3.1.20" source-map "^0.6.1" +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -11259,6 +11907,11 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -11542,6 +12195,14 @@ read-package-tree@5.3.1: readdir-scoped-modules "^1.0.0" util-promisify "^2.1.0" +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + read-pkg-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-5.0.0.tgz#b6a6741cb144ed3610554f40162aa07a6db621b8" @@ -11559,6 +12220,15 @@ read-pkg-up@^7.0.1: read-pkg "^5.2.0" type-fest "^0.8.1" +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + read-pkg@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" @@ -11701,6 +12371,11 @@ regexp.prototype.flags@^1.2.0: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" +regexpp@^3.0.0, regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + regexpu-core@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" @@ -11713,6 +12388,11 @@ regexpu-core@^4.7.0: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.2.0" +regextras@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.7.1.tgz#be95719d5f43f9ef0b9fa07ad89b7c606995a3b2" + integrity sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w== + registry-auth-token@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" @@ -11891,6 +12571,11 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" @@ -11992,6 +12677,14 @@ resolve@^1.1.5, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0 dependencies: path-parse "^1.0.6" +resolve@^1.13.1: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + resolve@^1.18.1: version "1.19.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" @@ -12177,7 +12870,7 @@ rxjs@^5.5.6: dependencies: symbol-observable "1.0.1" -rxjs@^6.5.0, rxjs@^6.5.2, rxjs@^6.5.3, rxjs@^6.5.5, rxjs@^6.6.0: +rxjs@^6.5.0, rxjs@^6.5.2, rxjs@^6.5.5, rxjs@^6.6.0: version "6.6.3" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== @@ -12306,13 +12999,6 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -semver-dsl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/semver-dsl/-/semver-dsl-1.0.1.tgz#d3678de5555e8a61f629eed025366ae5f27340a0" - integrity sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA= - dependencies: - semver "^5.3.0" - semver-extra@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/semver-extra/-/semver-extra-3.0.0.tgz#98230dd8517b702c0715aea6c269a96fceaccebc" @@ -12342,7 +13028,7 @@ semver@7.3.2, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -semver@7.x: +semver@7.x, semver@^7.2.1, semver@^7.3.4: version "7.3.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== @@ -12787,7 +13473,7 @@ source-map@0.7.3, source-map@^0.7.3: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -12822,7 +13508,7 @@ spdx-exceptions@^2.1.0: resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== -spdx-expression-parse@^3.0.0: +spdx-expression-parse@^3.0.0, spdx-expression-parse@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== @@ -12891,11 +13577,6 @@ split@0.3: dependencies: through "2" -sprintf-js@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -13110,6 +13791,14 @@ string.prototype.trimend@^1.0.1: define-properties "^1.1.3" es-abstract "^1.17.5" +string.prototype.trimend@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" + integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + string.prototype.trimstart@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" @@ -13118,6 +13807,14 @@ string.prototype.trimstart@^1.0.1: define-properties "^1.1.3" es-abstract "^1.17.5" +string.prototype.trimstart@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" + integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -13162,6 +13859,11 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + strip-bom@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" @@ -13184,6 +13886,11 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" +strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -13408,6 +14115,16 @@ table@^6.0.1: slice-ansi "^4.0.0" string-width "^4.2.0" +table@^6.0.4: + version "6.0.7" + resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" + integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== + dependencies: + ajv "^7.0.2" + lodash "^4.17.20" + slice-ansi "^4.0.0" + string-width "^4.2.0" + tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" @@ -13522,6 +14239,11 @@ text-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + tfunk@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/tfunk/-/tfunk-3.1.0.tgz#38e4414fc64977d87afdaa72facb6d29f82f7b5b" @@ -13551,7 +14273,7 @@ through2@^3.0.0, through2@^3.0.1: inherits "^2.0.4" readable-stream "2 || 3" -through@2, "through@>=2.2.7 <3", through@X.X.X, through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.4: +through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.4: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -13796,6 +14518,16 @@ ts-simple-ast@12.4.0: tslib "^1.9.0" typescript "2.9.1" +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + tslib@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e" @@ -13811,7 +14543,23 @@ tslib@^2.0.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.0.tgz#18d13fc2dce04051e20f074cc8387fd8089ce4f3" integrity sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g== -tslint@~6.1.0: +tslint-to-eslint-config@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/tslint-to-eslint-config/-/tslint-to-eslint-config-2.0.1.tgz#c814513ed47cce47ebf89588806b7c607d06b59e" + integrity sha512-RURU/zcBQpW9jKS7H2J6of4+64npTb0nrH7ND8tNhagMwryVjVnUDcucsl8DQuD7tO9RgjFO9bmJfDhyP0yV1w== + dependencies: + chalk "4.1.0" + commander "6.2.0" + cson-parser "4.0.7" + eslint-config-prettier "6.15.0" + glob "7.1.6" + json5 "2.1.3" + lodash "4.17.20" + minimatch "3.0.4" + tslint "6.1.3" + typescript "4.1.2" + +tslint@6.1.3: version "6.1.3" resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg== @@ -13837,6 +14585,13 @@ tsutils@^2.29.0: dependencies: tslib "^1.8.1" +tsutils@^3.0.0, tsutils@^3.17.1: + version "3.20.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.20.0.tgz#ea03ea45462e146b53d70ce0893de453ff24f698" + integrity sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg== + dependencies: + tslib "^1.8.1" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -13854,6 +14609,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -13926,6 +14688,11 @@ typescript@4.0.2, typescript@~4.0.2: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.2.tgz#7ea7c88777c723c681e33bf7988be5d008d05ac2" integrity sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ== +typescript@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.2.tgz#6369ef22516fe5e10304aae5a5c4862db55380e9" + integrity sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ== + typescript@^2.4.2: version "2.9.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" @@ -14305,6 +15072,11 @@ uuid@^8.3.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +v8-compile-cache@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + v8-compile-cache@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" @@ -14679,7 +15451,7 @@ windows-release@^4.0.0: dependencies: execa "^4.0.2" -word-wrap@~1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==