diff --git a/.editorconfig b/.editorconfig index f8ba116..5c36d2b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,3 +14,7 @@ indent_size = 2 [*.json] insert_final_newline = unset + +[{Makefile,**.mk}] +# Use tabs for indentation (Makefiles require tabs) +indent_style = tab diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ff5d11c --- /dev/null +++ b/Makefile @@ -0,0 +1,12 @@ +.DEFAULT_GOAL:=help + +.PHONY: help + +help: + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +update: ## Bumps installed deps. + @npx npm-check-updates -u && npm install + +build: ## Builds the docker container. + @docker build . --file Dockerfile --tag latest diff --git a/package-lock.json b/package-lock.json index e36298c..f2df041 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,9 +14,9 @@ }, "devDependencies": { "eslint": "8.33.0", - "eslint-config-chase": "1.0.5", + "eslint-config-chase": "1.0.6", "eslint-plugin-import": "2.27.5", - "eslint-plugin-jsdoc": "39.7.4", + "eslint-plugin-jsdoc": "39.7.5", "eslint-plugin-unicorn": "45.0.2" }, "engines": { @@ -801,68 +801,22 @@ } }, "node_modules/eslint-config-chase": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/eslint-config-chase/-/eslint-config-chase-1.0.5.tgz", - "integrity": "sha512-KuAEsEUPf2JS7OscopoKJ4ZX0yzpkQF/AasctCwLS9F2ppRS1tQAd6ErOgELOysUH50tvIujKYJA9iCLuYBVuA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/eslint-config-chase/-/eslint-config-chase-1.0.6.tgz", + "integrity": "sha512-OZ9rTTiurppXqA3WHMlsXxelp8ShidvpxwecT9AqLHo247nnJYhgDb66jpgK1naPxGsipa7ED+yD+00slCg7Yg==", "dev": true, "dependencies": { "eslint-config-airbnb-base": "^15.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsdoc": "^39.3.6", - "eslint-plugin-unicorn": "^43.0.2" + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsdoc": "^39.7.5", + "eslint-plugin-unicorn": "^45.0.2" }, "peerDependencies": { - "eslint": "^8.23.0", + "eslint": "^8.33.0", "eslint-config-airbnb-base": "^15.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsdoc": "^39.3.6", - "eslint-plugin-unicorn": "^43.0.2" - } - }, - "node_modules/eslint-config-chase/node_modules/eslint-plugin-unicorn": { - "version": "43.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-43.0.2.tgz", - "integrity": "sha512-DtqZ5mf/GMlfWoz1abIjq5jZfaFuHzGBZYIeuJfEoKKGWRHr2JiJR+ea+BF7Wx2N1PPRoT/2fwgiK1NnmNE3Hg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "ci-info": "^3.3.2", - "clean-regexp": "^1.0.0", - "eslint-utils": "^3.0.0", - "esquery": "^1.4.0", - "indent-string": "^4.0.0", - "is-builtin-module": "^3.1.0", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.24", - "safe-regex": "^2.1.1", - "semver": "^7.3.7", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=14.18" - }, - "funding": { - "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" - }, - "peerDependencies": { - "eslint": ">=8.18.0" - } - }, - "node_modules/eslint-config-chase/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsdoc": "^39.7.5", + "eslint-plugin-unicorn": "^45.0.2" } }, "node_modules/eslint-import-resolver-node": { @@ -962,9 +916,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "39.7.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.7.4.tgz", - "integrity": "sha512-2eJcWGKRyNQFa37UIpGcAdOp3wtES8vV3mlnFmEmJCuBNyFhK6cMhbZgMkLoLjKnipoxsN9GbfZZ+8nPY8ETZQ==", + "version": "39.7.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.7.5.tgz", + "integrity": "sha512-6L90P0AnZcE4ra7nocolp9vTjgVr2wEZ7jPnEA/X30XAoQPk+wvnaq61n164Tf7Fg4QPpJtRSCPpApOsfWDdNA==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.36.1", @@ -3501,48 +3455,15 @@ } }, "eslint-config-chase": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/eslint-config-chase/-/eslint-config-chase-1.0.5.tgz", - "integrity": "sha512-KuAEsEUPf2JS7OscopoKJ4ZX0yzpkQF/AasctCwLS9F2ppRS1tQAd6ErOgELOysUH50tvIujKYJA9iCLuYBVuA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/eslint-config-chase/-/eslint-config-chase-1.0.6.tgz", + "integrity": "sha512-OZ9rTTiurppXqA3WHMlsXxelp8ShidvpxwecT9AqLHo247nnJYhgDb66jpgK1naPxGsipa7ED+yD+00slCg7Yg==", "dev": true, "requires": { "eslint-config-airbnb-base": "^15.0.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsdoc": "^39.3.6", - "eslint-plugin-unicorn": "^43.0.2" - }, - "dependencies": { - "eslint-plugin-unicorn": { - "version": "43.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-43.0.2.tgz", - "integrity": "sha512-DtqZ5mf/GMlfWoz1abIjq5jZfaFuHzGBZYIeuJfEoKKGWRHr2JiJR+ea+BF7Wx2N1PPRoT/2fwgiK1NnmNE3Hg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "ci-info": "^3.3.2", - "clean-regexp": "^1.0.0", - "eslint-utils": "^3.0.0", - "esquery": "^1.4.0", - "indent-string": "^4.0.0", - "is-builtin-module": "^3.1.0", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.24", - "safe-regex": "^2.1.1", - "semver": "^7.3.7", - "strip-indent": "^3.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsdoc": "^39.7.5", + "eslint-plugin-unicorn": "^45.0.2" } }, "eslint-import-resolver-node": { @@ -3631,9 +3552,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "39.7.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.7.4.tgz", - "integrity": "sha512-2eJcWGKRyNQFa37UIpGcAdOp3wtES8vV3mlnFmEmJCuBNyFhK6cMhbZgMkLoLjKnipoxsN9GbfZZ+8nPY8ETZQ==", + "version": "39.7.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.7.5.tgz", + "integrity": "sha512-6L90P0AnZcE4ra7nocolp9vTjgVr2wEZ7jPnEA/X30XAoQPk+wvnaq61n164Tf7Fg4QPpJtRSCPpApOsfWDdNA==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.36.1", diff --git a/package.json b/package.json index fa875aa..523ae25 100644 --- a/package.json +++ b/package.json @@ -31,9 +31,9 @@ }, "devDependencies": { "eslint": "8.33.0", - "eslint-config-chase": "1.0.5", + "eslint-config-chase": "1.0.6", "eslint-plugin-import": "2.27.5", - "eslint-plugin-jsdoc": "39.7.4", + "eslint-plugin-jsdoc": "39.7.5", "eslint-plugin-unicorn": "45.0.2" } }