diff --git a/.stylelintrc.json b/.stylelintrc.json index a08e3016c5..54e149d42f 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -1,96 +1,3 @@ { - "plugins": [ - "./tools/stylelint/selector-no-deprecated-deep/index.js" - ], - "rules": { - "td/selector-no-deprecated-deep": true, - "color-hex-case": "lower", - "color-no-invalid-hex": true, - "function-calc-no-unspaced-operator": true, - "function-comma-space-after": "always-single-line", - "function-comma-space-before": "never", - "function-name-case": "lower", - "function-url-quotes": "always", - "function-whitespace-after": "always", - "number-leading-zero": "always", - "number-no-trailing-zeros": true, - "length-zero-no-unit": true, - "string-no-newline": true, - "string-quotes": "single", - "unit-case": "lower", - "unit-no-unknown": true, - "unit-whitelist": [ - "px", - "%", - "deg", - "ms", - "em", - "vh", - "vw", - "vmin", - "s", - "rem" - ], - "value-list-comma-space-after": "always-single-line", - "value-list-comma-space-before": "never", - "shorthand-property-no-redundant-values": true, - "property-case": "lower", - "property-no-unknown": true, - "declaration-block-no-duplicate-properties": [ - true, - { - "ignore": [ - "consecutive-duplicates-with-different-values" - ] - } - ], - "declaration-block-trailing-semicolon": "always", - "declaration-block-single-line-max-declarations": 1, - "declaration-block-semicolon-space-before": "never", - "declaration-block-semicolon-space-after": "always-single-line", - "declaration-block-semicolon-newline-before": "never-multi-line", - "declaration-block-semicolon-newline-after": "always-multi-line", - "declaration-property-value-blacklist": [ - { - "/.*/": [ - "initial" - ] - }, - { - "message": "The `initial` value is not supported in IE." - } - ], - "block-no-empty": true, - "block-closing-brace-newline-after": "always", - "block-closing-brace-newline-before": "always-multi-line", - "block-opening-brace-newline-after": "always-multi-line", - "block-opening-brace-space-before": "always-multi-line", - "indentation": 2, - "selector-attribute-brackets-space-inside": "never", - "selector-attribute-operator-space-after": "never", - "selector-attribute-operator-space-before": "never", - "selector-combinator-space-after": "always", - "selector-combinator-space-before": "always", - "selector-pseudo-class-case": "lower", - "selector-pseudo-class-parentheses-space-inside": "never", - "selector-pseudo-class-no-unknown": true, - "selector-pseudo-element-case": "lower", - "selector-pseudo-element-colon-notation": "double", - "selector-pseudo-element-no-unknown": [ - true, { - "ignorePseudoElements": [ - "ng-deep" - ] - } - ], - "selector-type-case": "lower", - "selector-max-id": 0, - "no-missing-end-of-source-newline": true, - "no-duplicate-selectors": true, - "no-extra-semicolons": true, - "no-invalid-double-slash-comments": true, - "max-line-length": 120, - "max-empty-lines": 1, - "media-feature-name-no-unknown": true - } + "extends": "./node_modules/@covalent/tools/lint/stylelint/.stylelintrc.json" } \ No newline at end of file diff --git a/package.json b/package.json index 21a3b78f40..68b88e8531 100644 --- a/package.json +++ b/package.json @@ -77,6 +77,7 @@ "@angular/router": "6.0.2", "@covalent/code-editor": "^2.0.0-beta.1", "@covalent/text-editor": "^1.0.0", + "@covalent/tools": "2.0.0-beta.2", "@ngx-translate/core": "10.0.1", "@ngx-translate/http-loader": "3.0.1", "@swimlane/ngx-charts": "7.0.1", @@ -93,8 +94,8 @@ "zone.js": "^0.8.24" }, "devDependencies": { - "@angular/cli": "6.0.1", "@angular-devkit/build-angular": "~0.6.1", + "@angular/cli": "6.0.1", "@angular/compiler-cli": "6.0.2", "@types/fs-extra": "^4.0.0", "@types/hammerjs": "^2.0.30", @@ -118,10 +119,10 @@ "jasmine-spec-reporter": "~4.2.1", "karma": "~1.7.1", "karma-chrome-launcher": "~2.2.0", + "karma-cli": "~1.0.1", "karma-coverage-istanbul-reporter": "~1.4.2", "karma-jasmine": "~1.1.1", "karma-jasmine-html-reporter": "^0.2.2", - "karma-cli": "~1.0.1", "ng-packagr": "2.4.2", "node-sass": "4.9.0", "pa11y": "^5.0.0-beta.5", diff --git a/tools/stylelint/selector-no-deprecated-deep/index.js b/tools/stylelint/selector-no-deprecated-deep/index.js deleted file mode 100644 index 8792641cb1..0000000000 --- a/tools/stylelint/selector-no-deprecated-deep/index.js +++ /dev/null @@ -1,37 +0,0 @@ -const stylelint = require('stylelint'); -const isStandardSyntaxRule = require('stylelint/lib/utils/isStandardSyntaxRule'); -const isStandardSyntaxSelector = require('stylelint/lib/utils/isStandardSyntaxSelector'); - -const ruleName = 'td/selector-no-deprecated-deep'; -const messages = stylelint.utils.ruleMessages(ruleName, { - expected: selector => `Usage of the /deep/ in "${selector}" is not allowed. Please use ng-deep instead`, -}); - - -/** - * Stylelint plugin that prevents uses of /deep/ in selectors. - */ -const plugin = stylelint.createPlugin(ruleName, isEnabled => { - return (root, result) => { - if (!isEnabled) return; - - root.walkRules(rule => { - if (rule.parent.type === 'rule' && - isStandardSyntaxRule(rule) && - isStandardSyntaxSelector(rule.selector) && - rule.selector.includes('/deep/')) { - - stylelint.utils.report({ - result, - ruleName, - message: messages.expected(rule.selector), - node: rule - }); - } - }); - }; -}); - -plugin.ruleName = ruleName; -plugin.messages = messages; -module.exports = plugin; \ No newline at end of file diff --git a/tslint.json b/tslint.json index a56230e74e..a1bb5c9ced 100644 --- a/tslint.json +++ b/tslint.json @@ -1,211 +1,4 @@ { "rulesDirectory": ["./node_modules/codelyzer"], - "rules": { - "align": [ - true, - "statements" - ], - "array-type": [ - true, - "array" - ], - "arrow-parens": true, - "ban": [ - true, - [] - ], - "class-name": true, - "comment-format": [ - true, - "check-space" - ], - "curly": true, - "eofline": true, - "forin": false, - "indent": [ - true, - "spaces" - ], - "interface-name": [ - true, - "always-prefix" - ], - "import-blacklist": [ - true, - "@angular/cdk", - "@angular/material", - "@covalent/core" - ], - "jsdoc-format": true, - "label-position": true, - "max-line-length": [true, 150], - "member-access": [ - false - ], - "member-ordering": [ - true, - { - "order" : [ - "private-static-field", - "protected-static-field", - "public-static-field", - "private-instance-field", - "protected-instance-field", - "public-instance-field", - "constructor", - "public-static-method", - "protected-static-method", - "private-static-method", - "public-instance-method", - "protected-instance-method", - "private-instance-method" - ] - } - ], - "new-parens": true, - "no-angle-bracket-type-assertion": false, - "no-any": false, - "no-arg": true, - "no-bitwise": true, - "no-conditional-assignment": true, - "no-consecutive-blank-lines": [true], - "no-console": [ - true, - "assert", - "count", - "debug", - "dir", - "dirxml", - "error", - "group", - "groupCollapsed", - "groupEnd", - "info", - "log", - "profile", - "profileEnd", - "table", - "time", - "timeEnd", - "timeStamp", - "trace", - "warn" - ], - "no-construct": true, - "no-debugger": true, - "no-default-export": true, - "no-duplicate-variable": true, - "no-empty": true, - "no-empty-interface": false, - "no-eval": true, - "no-inferrable-types": [ - false, - "ignore-params" - ], - "no-internal-module": true, - "no-invalid-this": true, - "no-magic-numbers": false, //TODO_LINT (we should lint for this) - "no-namespace": true, - "no-null-keyword": true, - "no-reference": true, - "no-require-imports": true, - "no-shadowed-variable": true, - "no-string-literal": true, - "no-string-throw": true, - "no-switch-case-fall-through": true, - "no-trailing-whitespace": false, - "no-unused-expression": true, - "no-use-before-declare": true, - "no-var-keyword": true, - "no-var-requires": true, - "object-literal-sort-keys": false, - "one-line": [ - true, - "check-catch", - "check-finally", - "check-else", - "check-open-brace", - "check-whitespace" - ], - "one-variable-per-declaration": true, - "quotemark": [ - true, - "single", - "avoid-escape" - ], - "radix": true, - "semicolon": [ - true, - "always" - ], - "switch-default": true, - "trailing-comma": [ - true, - { - "multiline": "always", - "single": "always" - } - ], - "triple-equals": true, - "typedef": [ - true, - "call-signature", - "parameter", - "arrow-parameter", - "property-declaration", - "variable-declaration", - "member-variable-declaration" - ], - "typedef-whitespace": [ - true, - { - "call-signature": "nospace", - "index-signature": "nospace", - "parameter": "nospace", - "property-declaration": "nospace", - "variable-declaration": "nospace" - }, - { - "call-signature": "onespace", - "index-signature": "onespace", - "parameter": "onespace", - "property-declaration": "onespace", - "variable-declaration": "onespace" - } - ], - "use-isnan": true, - "variable-name": [ - true, - "ban-keywords", - "check-format", - "allow-leading-underscore" - ], - "whitespace": [ - true, - "check-branch", - "check-decl", - "check-operator", - "check-module", - "check-separator", - "check-type" - ], - // ANGULAR Rules - "directive-selector": [false, "attribute", "td", "camelCase"], - "component-selector": [false, "element", "td", "kebab-case"], - "component-class-suffix": true, - "directive-class-suffix": false, // Checked in PR's (different suffix for validators and so) - "use-input-property-decorator": false, // Checked in PR's (mixins need a diff approach) - "use-output-property-decorator": true, - "use-host-property-decorator": true, - "no-attribute-parameter-decorator": true, - "no-input-rename": false, // so we can rename @Input so we can change API easier -> @Input('rename') name - "no-output-rename": false, // same but for @Output - "no-forward-ref" : false, - "use-life-cycle-interface": true, - "use-pipe-transform-interface": true, - "pipe-naming": [ - true, - "camelCase" - ] - } + "extends": "./node_modules/@covalent/tools/lint/tslint/tslint.json" } diff --git a/yarn.lock b/yarn.lock index 4916eb49fe..ef73cbcdf0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -204,6 +204,13 @@ simplemde "^1.11.2" tslib "^1.7.1" +"@covalent/tools@2.0.0-beta.2": + version "2.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@covalent/tools/-/tools-2.0.0-beta.2.tgz#b341cc609d64e04766c8905f3f685e3bcd332f6a" + dependencies: + colors "^1.3.0" + node-emoji "^1.8.1" + "@ngtools/json-schema@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@ngtools/json-schema/-/json-schema-1.1.0.tgz#c3a0c544d62392acc2813a42c8a0dc6f58f86922" @@ -1509,6 +1516,10 @@ colors@1.1.2, colors@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" +colors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.0.tgz#5f20c9fef6945cb1134260aab33bfbdc8295e04e" + combine-lists@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" @@ -5220,6 +5231,10 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "~3.0.0" +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + lodash@4.17.5, lodash@^4.17.3, lodash@^4.17.5: version "4.17.5" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" @@ -5799,6 +5814,12 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" +node-emoji@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.8.1.tgz#6eec6bfb07421e2148c75c6bba72421f8530a826" + dependencies: + lodash.toarray "^4.4.0" + node-forge@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300"