diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7861e5ba0f9f90447c5bc030ab366fc90a44d524..1375273c600eb13b18b739bb3db78528d3a06d50 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,29 +1,48 @@ image: node stages: - - install_deps + - setup - lint - test - build - - publish + +setup: + stage: setup + script: + - npm install + artifacts: + expire_in: 30 min + paths: + - node_modules lint:js: stage: lint dependencies: - - install_deps - scripts: npm run lint:js + - setup + script: + - npm run lint:js lint:css: stage: lint dependencies: - - install_deps - scripts: npm run lint:css + - setup + scripts: + - npm run lint:css + +test: + stage: test + dependencies: + - lint:js + - lint:css + script: + - npm test build:firefox: stage: build dependencies: - - install_deps - script: npm run build firefox + - test + script: + - npm run build firefox artifacts: - paths: - ./packages/*firefox.xpi.zip @@ -31,14 +50,19 @@ build:firefox: build:chrome: stage: build dependencies: - - install_deps - script: npm run build firefox + - test + script: + - npm run build chrome artifacts: - paths: - ./packages/*chrome.zip -pages: - stage: publish +build:edge: + stage: build + dependencies: + - test + script: + - npm run build edge artifacts: - paths: - - ./public + - ./packages/*edge.zip diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 0000000000000000000000000000000000000000..86b1b3a16ffc85c36e0e6feba85755dc19c0e320 --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,39 @@ +{ + "extends": "stylelint-config-standard", + "rules": { + "at-rule-empty-line-before": null, + "at-rule-no-unknown": [ + true, + { + "ignoreAtRules": ["if", "else", "mixin", "include", "content", "for"] + } + ], + "block-closing-brace-empty-line-before": null, + "block-closing-brace-newline-after": null, + "color-hex-case": ["lower"], + "unit-whitelist": ["px", "em", "rem", "%", "s", "deg", "pt", "vw", "vh"], + "declaration-no-important": null, + "declaration-empty-line-before": "never", + "declaration-colon-newline-after": "always-multi-line", + "no-extra-semicolons": true, + "max-empty-lines": 2, + "font-family-name-quotes": "always-where-recommended", + "function-url-quotes": "never", + "function-comma-newline-after": null, + "function-parentheses-space-inside": null, + "max-nesting-depth": 3, + "media-feature-name-no-vendor-prefix": true, + "number-leading-zero": "always", + "property-no-vendor-prefix": true, + "rule-empty-line-before": null, + "selector-list-comma-newline-after": null, + "selector-attribute-quotes": "always", + "selector-max-compound-selectors": 3, + "selector-max-specificity": "0,4,0", + "selector-max-universal": 1, + "selector-max-id": 0, + "selector-no-vendor-prefix": true, + "selector-pseudo-element-colon-notation": "single", + "value-no-vendor-prefix": true + } +} diff --git a/app/scripts/popup.js b/app/scripts/popup.js index c4a8d62d9e484f809adfb89982bc6dec0ac9861c..e25b48a2047b72f214d280e88e53459fe8a326d7 100644 --- a/app/scripts/popup.js +++ b/app/scripts/popup.js @@ -1,5 +1,4 @@ import '../styles/popup.scss' -import config from '../config.json' import { getActiveTabId } from './lib/tabs' import { updateIcon } from './lib/icon' import { getDomainStatus } from './lib/domain' @@ -91,8 +90,8 @@ const updatePopup = async () => { popup.addEventListener('click', updateIcon) popup.innerHTML = '' - const domainHeading = document.createElement('h3') - domainHeading.innerText = 'Request domains' + // const domainHeading = document.createElement('h3') + // domainHeading.innerText = 'Request domains' // popup.append(domainHeading) popup.appendChild(await createDomainTable()) const resolverHeading = document.createElement('h3') diff --git a/app/styles/options.scss b/app/styles/options.scss index 5c829c7850e6d222368860df5278621707f5fbc8..e64f78e03950541a390273d7c933845fa149cd34 100644 --- a/app/styles/options.scss +++ b/app/styles/options.scss @@ -27,7 +27,7 @@ label.advanced, .form-section.advanced { color: red; display: none; - + &.showing { display: initial; } diff --git a/app/styles/popup.scss b/app/styles/popup.scss index 0f51f8b4f4d10b5d97daead914aee4a9d9a1e59a..c666d5506d971d9e3011318255cd62bc68f8cb42 100644 --- a/app/styles/popup.scss +++ b/app/styles/popup.scss @@ -52,7 +52,7 @@ h3 { .toolbar { display: flex; overflow: hidden; - + button { overflow: hidden; line-height: 1em; diff --git a/package-lock.json b/package-lock.json index e9da633ac858aa6f98826264e91ca6af95c4f606..a27c22d84e0dc20a049c45aa49f5eeea1b59a6af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8023,9 +8023,9 @@ "dev": true }, "mini-css-extract-plugin": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.4.tgz", - "integrity": "sha512-o+Jm+ocb0asEngdM6FsZWtZsRzA8koFUudIDwYUfl94M3PejPHG7Vopw5hN9V8WsMkSFpm3tZP3Fesz89EyrfQ==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.5.tgz", + "integrity": "sha512-dqBanNfktnp2hwL2YguV9Jh91PFX7gu7nRLs4TGsbAfAG6WOtlynFRYzwDwmmeSb5uIwHo9nx1ta0f7vAZVp2w==", "dev": true, "requires": { "loader-utils": "1.1.0", @@ -12114,6 +12114,53 @@ } } }, + "stylelint-config-recommended": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-2.1.0.tgz", + "integrity": "sha512-ajMbivOD7JxdsnlS5945KYhvt7L/HwN6YeYF2BH6kE4UCLJR0YvXMf+2j7nQpJyYLZx9uZzU5G1ZOSBiWAc6yA==", + "dev": true + }, + "stylelint-config-standard": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-18.2.0.tgz", + "integrity": "sha512-07x0TaSIzvXlbOioUU4ORkCIM07kyIuojkbSVCyFWNVgXMXYHfhnQSCkqu+oHWJf3YADAnPGWzdJ53NxkoJ7RA==", + "dev": true, + "requires": { + "stylelint-config-recommended": "2.1.0" + } + }, + "stylelint-scss": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.4.0.tgz", + "integrity": "sha512-sM1bsOrbmR35N1ZAg+7uLVI+n2QHqOVMZPRiAIyiOa1ITBrg0hajBH/i1F/ZxbsBUWLAeSq/NREwPw1+xF9exQ==", + "dev": true, + "requires": { + "lodash": "4.17.11", + "postcss-media-query-parser": "0.2.3", + "postcss-resolve-nested-selector": "0.1.1", + "postcss-selector-parser": "4.0.0", + "postcss-value-parser": "3.3.1" + }, + "dependencies": { + "cssesc": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-1.0.1.tgz", + "integrity": "sha512-S2hzrpWvE6G/rW7i7IxJfWBYn27QWfOIncUW++8Rbo1VB5zsJDSVPcnI+Q8z7rhxT6/yZeLOCja4cZnghJrNGA==", + "dev": true + }, + "postcss-selector-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-4.0.0.tgz", + "integrity": "sha512-5h+MvEjnzu1qy6MabjuoPatsGAjjDV9B24e7Cktjl+ClNtjVjmvAXjOFQr1u7RlWULKNGYaYVE4s+DIIQ4bOGA==", + "dev": true, + "requires": { + "cssesc": "1.0.1", + "indexes-of": "1.0.1", + "uniq": "1.0.1" + } + } + } + }, "sugarss": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", diff --git a/package.json b/package.json index f0317b540473c9193c3310d4b6d75756da73a619..b0d69e12b4733e307c4ad22b33787a5f3f166b31 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "firefox": "web-ext -s ./dist/firefox/ run --browser-console", "clean": "rimraf packages dist build", "lint:js": "eslint .", - "lint:css": "stylelint ." + "lint:css": "stylelint app/**/*.scss", + "test": "echo 'not yet'" }, "devDependencies": { "css-loader": "^1.0.1", @@ -22,15 +23,17 @@ "eslint-plugin-standard": "^4.0.0", "extract-loader": "^3.0.0", "file-loader": "^2.0.0", - "mini-css-extract-plugin": "^0.4.4", + "mini-css-extract-plugin": "^0.4.5", "node-sass": "^4.10.0", "postcss-clean": "^1.1.0", "postcss-loader": "^3.0.0", "rimraf": "^2.6.2", "sass-loader": "^7.1.0", "stylelint": "^9.8.0", + "stylelint-config-standard": "^18.2.0", "web-ext": "^2.9.2", "web-ext-types": "^3.0.0", + "stylelint-scss": "^3.4.0", "webextension-toolbox": "^3.0.0" }, "dependencies": {