From b26099b14bfae5ad5cb0324eca1718f127d5a2db Mon Sep 17 00:00:00 2001 From: Rashmi Date: Mon, 19 Oct 2020 23:23:34 +0530 Subject: [PATCH 001/121] Edit offline payment method issue --- modules/OfflinePayments/Http/Controllers/Settings.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/OfflinePayments/Http/Controllers/Settings.php b/modules/OfflinePayments/Http/Controllers/Settings.php index 0dac4ccee..704b3334a 100644 --- a/modules/OfflinePayments/Http/Controllers/Settings.php +++ b/modules/OfflinePayments/Http/Controllers/Settings.php @@ -34,7 +34,13 @@ class Settings extends Controller */ public function update(Request $request) { - if (!empty($request->get('update_code'))) { + $methods = json_decode(setting('offline-payments.methods'), true); + if(array_search($request->update_code, array_column($methods, 'code')) == false) { + $request->merge(['code_exists' => false]); + }else{ + $request->merge(['code_exists' => true]); + } + if (!empty($request->get('update_code')) && $request->get('code_exists') == true) { $payment_method = $this->dispatch(new UpdatePaymentMethod($request)); $message = trans('messages.success.updated', ['type' => $payment_method['name']]); From bac713d0aa292164d73311ee181f7aba9e1f4be0 Mon Sep 17 00:00:00 2001 From: Shahal Tharique Date: Sun, 24 Jan 2021 20:52:40 +0530 Subject: [PATCH 002/121] Added package-lock.json --- package-lock.json | 14441 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 14441 insertions(+) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..15c9cac1d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,14441 @@ +{ + "name": "akaunting", + "version": "2.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/core": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", + "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-function-name": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", + "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz", + "integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.12.tgz", + "integrity": "sha512-fhkE9lJYpw2mjHelBpM2zCbaA11aov2GJs7q4cFaXNrWx0H3bW58H9Esy2rdtYOghFBEYUDRIpvlgi+ZD+AvvQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-decorators": "^7.12.1" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.1.tgz", + "integrity": "sha512-ir9YW5daRrTYiy9UJ2TzdNIJEZu8KclVzDcfSt4iEmOtwQ4llPtWInNKJyKnVXp1vE4bbVd5S31M/im3mYMO1w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz", + "integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.10.tgz", + "integrity": "sha512-xOrUfzPxw7+WDm9igMgQCbO3cJKymX7dFdsgRr1eu9n3KjjyU4pptIXbXPseQDquw+W+RuJEJMHKHNsPNNm3CA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", + "semver": "^5.5.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz", + "integrity": "sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.3.4", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.3.4", + "@babel/plugin-transform-classes": "^7.3.4", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.3.4", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.3.4", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + } + }, + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "requires": { + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + } + } + }, + "@babel/runtime-corejs2": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.12.5.tgz", + "integrity": "sha512-kt5YpZ7F5A05LOgQuaMXXmcxakK/qttf5C/E1BJPA3Kf5PanbjPzDoXN+PIslUnjUxpuKblCsXyP0QfMiqyKqA==", + "dev": true, + "requires": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + } + } + }, + "@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "@babel/traverse": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", + "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.11", + "@babel/generator": "^7.12.11", + "@babel/helper-function-name": "^7.12.11", + "@babel/helper-split-export-declaration": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/types": "^7.12.12", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@fullcalendar/core": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-4.4.2.tgz", + "integrity": "sha512-vq7KQGuAJ1ieFG5tUqwxwUwmXYtblFOTjHaLAVHo6iEPB52mS7DS45VJfkhaQmX4+5/+BHRpg82G1qkuAINwtg==" + }, + "@fullcalendar/daygrid": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-4.4.2.tgz", + "integrity": "sha512-axjfMhxEXHShV3r2TZjf+2niJ1C6LdAxkHKmg7mVq4jXtUQHOldU5XsjV0v2lUAt1urJBFi2zajfK8798ukL3Q==" + }, + "@fullcalendar/interaction": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-4.4.2.tgz", + "integrity": "sha512-3ItpGFnxcYQT4NClqhq93QTQwOI8x3mlMf5M4DgK5avVaSzpv9g8p+opqeotK2yzpFeINps06cuQyB1h7vcv1Q==" + }, + "@fullcalendar/timegrid": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-4.4.2.tgz", + "integrity": "sha512-M5an7qii8OUmI4ogY47k5pn2j/qUbLp6sa6Vo0gO182HR5pb9YtrEZnoQhnScok+I0BkDkLFzMQoiAMTjBm2PQ==", + "requires": { + "@fullcalendar/daygrid": "~4.4.0" + } + }, + "@fullcalendar/vue": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/vue/-/vue-4.4.2.tgz", + "integrity": "sha512-Iq5l8s0exyUI2vicPDs1Hn6SFLy0gnFAOEINqXixmnn9+U2fHgM++ofal1yKqpU9bAWE4d58Mizu2tlDlc6NyQ==", + "requires": { + "@fullcalendar/core": "~4.4.0", + "fast-deep-equal": "^2.0.1" + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", + "dev": true + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", + "dev": true + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", + "dev": true + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "dev": true, + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "dev": true, + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@intervolga/optimize-cssnano-plugin": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz", + "integrity": "sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==", + "dev": true, + "requires": { + "cssnano": "^4.0.0", + "cssnano-preset-default": "^4.0.0", + "postcss": "^7.0.0" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "@soda/friendly-errors-webpack-plugin": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.0.tgz", + "integrity": "sha512-RLotfx6k1+nfLacwNCenj7VnTMPxVwYKoGOcffMFoJDKM8tXzBiCN0hMHFJNnoAojduYAsxuiMm0EOMixgiRow==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "error-stack-parser": "^2.0.2", + "string-width": "^2.0.0", + "strip-ansi": "^5" + } + }, + "@types/chart.js": { + "version": "2.9.30", + "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.30.tgz", + "integrity": "sha512-EgjxUUZFvf6ls3kW2CwyrnSJhgyKxgwrlp/W5G9wqyPEO9iFatO63zAA7L24YqgMxiDjQ+tG7ODU+2yWH91lPg==", + "requires": { + "moment": "^2.10.2" + } + }, + "@types/d3": { + "version": "3.5.38", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-3.5.38.tgz", + "integrity": "sha1-dvjy6RWa5WKWWy+g5vvuGqZDobw=" + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "14.14.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", + "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz", + "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==", + "dev": true + }, + "@vue/babel-plugin-transform-vue-jsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz", + "integrity": "sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-preset-app": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.12.1.tgz", + "integrity": "sha512-Zjy5jQaikV1Pz+ri0YgXFS7q4/5wCxB5tRkDOEIt5+4105u0Feb/pvH20nVL6nx9GyXrECFfcm7Yxr/z++OaPQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-decorators": "^7.1.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.4.0", + "@babel/preset-env": "^7.0.0 < 7.4.0", + "@babel/runtime": "^7.0.0", + "@babel/runtime-corejs2": "^7.2.0", + "@vue/babel-preset-jsx": "^1.0.0", + "babel-plugin-dynamic-import-node": "^2.2.0", + "babel-plugin-module-resolver": "3.2.0", + "core-js": "^2.6.5" + } + }, + "@vue/babel-preset-jsx": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz", + "integrity": "sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w==", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", + "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", + "@vue/babel-sugar-functional-vue": "^1.2.2", + "@vue/babel-sugar-inject-h": "^1.2.2", + "@vue/babel-sugar-v-model": "^1.2.3", + "@vue/babel-sugar-v-on": "^1.2.3" + } + }, + "@vue/babel-sugar-composition-api-inject-h": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz", + "integrity": "sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-composition-api-render-instance": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz", + "integrity": "sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-functional-vue": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz", + "integrity": "sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-inject-h": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz", + "integrity": "sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-v-model": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz", + "integrity": "sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-sugar-v-on": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz", + "integrity": "sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "camelcase": "^5.0.0" + } + }, + "@vue/cli-overlay": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.12.1.tgz", + "integrity": "sha512-Bym92EN+lj+cNRN2ozbYyH+V8DMXWGbCDUk+hiJ4EYDBZfBkZKvalk1/mOBFwyxiopnnbOEBAAhL/UuMQ1xARg==", + "dev": true + }, + "@vue/cli-plugin-babel": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.12.1.tgz", + "integrity": "sha512-Zetvz8PikLCGomeKOKu8pC9YQ7cfxs7pGpvEOzaxGdhMnebhjAYR6i6dOB57A6N5lhxQksXCtYTv26QgfiIpdg==", + "dev": true, + "requires": { + "@babel/core": "^7.0.0", + "@vue/babel-preset-app": "^3.12.1", + "@vue/cli-shared-utils": "^3.12.1", + "babel-loader": "^8.0.5", + "webpack": "^4.0.0" + } + }, + "@vue/cli-plugin-eslint": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.12.1.tgz", + "integrity": "sha512-tVTZlEZsy3sQbO4LLWFK11yzlWwqVAqaM+IY+BeWHITBzEJKh2KmouG+x6x/reXiU3qROsMJ4Ej3Hs8buSMWyQ==", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^3.12.1", + "babel-eslint": "^10.0.1", + "eslint": "^4.19.1", + "eslint-loader": "^2.1.2", + "eslint-plugin-vue": "^4.7.1", + "globby": "^9.2.0", + "webpack": "^4.0.0", + "yorkie": "^2.0.0" + } + }, + "@vue/cli-service": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.12.1.tgz", + "integrity": "sha512-PDxNrTGnSKzeV1ruFlsRIAO8JcPizwT0EJXq9GeyooU+p+sOkv7aKkCBJQVYNjZapD1NOGWx6CvAAC/wAW+gew==", + "dev": true, + "requires": { + "@intervolga/optimize-cssnano-plugin": "^1.0.5", + "@soda/friendly-errors-webpack-plugin": "^1.7.1", + "@vue/cli-overlay": "^3.12.1", + "@vue/cli-shared-utils": "^3.12.1", + "@vue/component-compiler-utils": "^3.0.0", + "@vue/preload-webpack-plugin": "^1.1.0", + "@vue/web-component-wrapper": "^1.2.0", + "acorn": "^6.1.1", + "acorn-walk": "^6.1.1", + "address": "^1.0.3", + "autoprefixer": "^9.5.1", + "browserslist": "^4.5.4", + "cache-loader": "^2.0.1", + "case-sensitive-paths-webpack-plugin": "^2.2.0", + "chalk": "^2.4.2", + "cli-highlight": "^2.1.0", + "clipboardy": "^2.0.0", + "cliui": "^5.0.0", + "copy-webpack-plugin": "^4.6.0", + "css-loader": "^1.0.1", + "cssnano": "^4.1.10", + "current-script-polyfill": "^1.0.0", + "debug": "^4.1.1", + "default-gateway": "^5.0.2", + "dotenv": "^7.0.0", + "dotenv-expand": "^5.1.0", + "escape-string-regexp": "^1.0.5", + "file-loader": "^3.0.1", + "fs-extra": "^7.0.1", + "globby": "^9.2.0", + "hash-sum": "^1.0.2", + "html-webpack-plugin": "^3.2.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "lodash.transform": "^4.6.0", + "mini-css-extract-plugin": "^0.8.0", + "minimist": "^1.2.0", + "ora": "^3.4.0", + "portfinder": "^1.0.20", + "postcss-loader": "^3.0.0", + "read-pkg": "^5.0.0", + "semver": "^6.0.0", + "slash": "^2.0.0", + "source-map-url": "^0.4.0", + "ssri": "^6.0.1", + "string.prototype.padend": "^3.0.0", + "terser-webpack-plugin": "^1.2.3", + "thread-loader": "^2.1.2", + "url-loader": "^1.1.2", + "vue-loader": "^15.7.0", + "webpack": "^4.0.0", + "webpack-bundle-analyzer": "^3.3.0", + "webpack-chain": "^4.11.0", + "webpack-dev-server": "^3.4.1", + "webpack-merge": "^4.2.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@vue/cli-shared-utils": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.12.1.tgz", + "integrity": "sha512-jFblzRFjutGwu5utOKdVlPlsbA1lBUNNQlAThzNqej+JtTKJjnvjlhjKX0Gq0oOny5FjKWhoyfQ74p9h1qE6JQ==", + "dev": true, + "requires": { + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.1", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.7", + "semver": "^6.0.0", + "string.prototype.padstart": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@vue/component-compiler-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz", + "integrity": "sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw==", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.14", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "@vue/eslint-config-prettier": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-4.0.1.tgz", + "integrity": "sha512-rJEDXPb61Hfgg8GllO3XXFP98bcIxdNNHSrNcxP/vBSukOolgOwQyZJ5f5z/c7ViPyh5/IDlC4qBnhx/0n+I4g==", + "dev": true, + "requires": { + "eslint-config-prettier": "^3.3.0", + "eslint-plugin-prettier": "^3.0.0", + "prettier": "^1.15.2" + } + }, + "@vue/preload-webpack-plugin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz", + "integrity": "sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==", + "dev": true + }, + "@vue/web-component-wrapper": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz", + "integrity": "sha512-Xn/+vdm9CjuC9p3Ae+lTClNutrVhsXpzxvoTXXtoys6kVRX9FkueSUAqSWAyZntmVLlR4DosBV4pH8y5Z/HbUw==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "optional": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true, + "optional": true + } + } + }, + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "dev": true + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", + "dev": true + }, + "adjust-sourcemap-loader": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.2.0.tgz", + "integrity": "sha512-958oaHHVEXMvsY7v7cC5gEkNIcoaAVIhZ4mBReYVZJOTP9IgKmzLjIOhTtzpLMu+qriXvLsVjJ155EeInp45IQ==", + "dev": true, + "requires": { + "assert": "^1.3.0", + "camelcase": "^1.2.1", + "loader-utils": "^1.1.0", + "lodash.assign": "^4.0.1", + "lodash.defaults": "^3.1.2", + "object-path": "^0.9.2", + "regex-parser": "^2.2.9" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "lodash.defaults": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", + "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", + "dev": true, + "requires": { + "lodash.assign": "^3.0.0", + "lodash.restparam": "^3.0.0" + }, + "dependencies": { + "lodash.assign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", + "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", + "dev": true, + "requires": { + "lodash._baseassign": "^3.0.0", + "lodash._createassigner": "^3.0.0", + "lodash.keys": "^3.0.0" + } + } + } + } + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "dependencies": { + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + } + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "optional": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", + "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "async-validator": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz", + "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==", + "requires": { + "babel-runtime": "6.x" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "babel-helper-vue-jsx-merge-props": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", + "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" + }, + "babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + } + }, + "babel-merge": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/babel-merge/-/babel-merge-2.0.1.tgz", + "integrity": "sha512-puTQQxuzS+0JlMyVdfsTVaCgzqjBXKPMv7oUANpYcHFY+7IptWZ4PZDYX+qBxrRMtrriuBA44LkKpS99EJzqVA==", + "dev": true, + "requires": { + "@babel/core": "^7.0.0-beta.49", + "deepmerge": "^2.1.0", + "object.omit": "^3.0.0" + }, + "dependencies": { + "deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "dev": true + } + } + }, + "babel-plugin-component": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-component/-/babel-plugin-component-1.1.1.tgz", + "integrity": "sha512-WUw887kJf2GH80Ng/ZMctKZ511iamHNqPhd9uKo14yzisvV7Wt1EckIrb8oq/uCz3B3PpAW7Xfl7AkTLDYT6ag==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "7.0.0-beta.35" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.0.0-beta.35", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.35.tgz", + "integrity": "sha512-vaC1KyIZSuyWb3Lj277fX0pxivyHwuDU4xZsofqgYAbkDxNieMg2vuhzP5AgMweMY7fCQUMTi+BgPqTLjkxXFg==", + "dev": true, + "requires": { + "@babel/types": "7.0.0-beta.35", + "lodash": "^4.2.0" + } + }, + "@babel/types": { + "version": "7.0.0-beta.35", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.35.tgz", + "integrity": "sha512-y9XT11CozHDgjWcTdxmhSj13rJVXpa5ZXwjjOiTedjaM0ba5ItqdS02t31EhPl7HtOWxsZkYCCUNrSfrOisA6w==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-module-resolver": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz", + "integrity": "sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==", + "dev": true, + "requires": { + "find-babel-config": "^1.1.0", + "glob": "^7.1.2", + "pkg-up": "^2.0.0", + "reselect": "^3.0.1", + "resolve": "^1.4.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", + "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + }, + "dependencies": { + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "bootstrap": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", + "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brfs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", + "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", + "requires": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^2.2.0", + "through2": "^2.0.0" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", + "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001173", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.634", + "escalade": "^3.1.1", + "node-releases": "^1.1.69" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cache-loader": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-2.0.1.tgz", + "integrity": "sha512-V99T3FOynmGx26Zom+JrVBytLBsmUCzVG2/4NnUKgvXN4bEV42R1ERl1IyiH/cvFIDA1Ytq2lPZ9tXDSahcQpQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.0", + "normalize-path": "^3.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + } + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "optional": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true, + "optional": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001179", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001179.tgz", + "integrity": "sha512-blMmO0QQujuUWZKyVrD1msR4WNDAqb/UPO1Sw2WWsQ7deoM5bJiicKnWJ1Y0NS/aGINSnKPIWBMw5luX+NDUCA==", + "dev": true + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz", + "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true, + "optional": true + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true + }, + "chart.js": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz", + "integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==", + "requires": { + "chartjs-color": "^2.1.0", + "moment": "^2.10.2" + } + }, + "chartjs-color": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz", + "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==", + "requires": { + "chartjs-color-string": "^0.6.0", + "color-convert": "^1.9.3" + } + }, + "chartjs-color-string": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz", + "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==", + "requires": { + "color-name": "^1.0.0" + } + }, + "check-types": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", + "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==", + "dev": true + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true, + "optional": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-highlight": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.10.tgz", + "integrity": "sha512-CcPFD3JwdQ2oSzy+AMG6j3LRTkNjM82kzcSKzoVw6cLanDCJNlsLjeqVTOTfOfucnWv5F0rmBemVf1m9JiIasw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "highlight.js": "^10.0.0", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", + "dev": true + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true, + "optional": true + }, + "clipboard": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", + "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + } + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "optional": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collect.js": { + "version": "4.28.6", + "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.28.6.tgz", + "integrity": "sha512-NAyuk1DnCotRaDZIS5kJ4sptgkwOeYqElird10yziN5JBuwYOGkOTguhNcPn5g344IfylZecxNYZAVXgv19p5Q==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + }, + "dependencies": { + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + } + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "concatenate": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/concatenate/-/concatenate-0.0.2.tgz", + "integrity": "sha1-C0nW6MQQR9dyjNyNYqCGYjOXtJ8=", + "dev": true, + "requires": { + "globs": "^0.1.2" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", + "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "globby": "^7.1.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "minimatch": "^3.0.4", + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" + }, + "dependencies": { + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-env": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", + "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.5" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "dev": true + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", + "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash": "^4.17.11", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", + "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + } + } + }, + "current-script-polyfill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz", + "integrity": "sha1-8xz35PPiGLBybnOMqSoC00iO9hU=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "d3": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", + "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", + "requires": { + "d3-array": "1", + "d3-axis": "1", + "d3-brush": "1", + "d3-chord": "1", + "d3-collection": "1", + "d3-color": "1", + "d3-contour": "1", + "d3-dispatch": "1", + "d3-drag": "1", + "d3-dsv": "1", + "d3-ease": "1", + "d3-fetch": "1", + "d3-force": "1", + "d3-format": "1", + "d3-geo": "1", + "d3-hierarchy": "1", + "d3-interpolate": "1", + "d3-path": "1", + "d3-polygon": "1", + "d3-quadtree": "1", + "d3-random": "1", + "d3-scale": "2", + "d3-scale-chromatic": "1", + "d3-selection": "1", + "d3-shape": "1", + "d3-time": "1", + "d3-time-format": "2", + "d3-timer": "1", + "d3-transition": "1", + "d3-voronoi": "1", + "d3-zoom": "1" + } + }, + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" + }, + "d3-axis": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", + "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" + }, + "d3-brush": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz", + "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==", + "requires": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, + "d3-chord": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", + "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", + "requires": { + "d3-array": "1", + "d3-path": "1" + } + }, + "d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" + }, + "d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", + "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + }, + "d3-contour": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", + "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", + "requires": { + "d3-array": "^1.1.1" + } + }, + "d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" + }, + "d3-drag": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", + "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", + "requires": { + "d3-dispatch": "1", + "d3-selection": "1" + } + }, + "d3-dsv": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", + "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", + "requires": { + "commander": "2", + "iconv-lite": "0.4", + "rw": "1" + } + }, + "d3-ease": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", + "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" + }, + "d3-fetch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz", + "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", + "requires": { + "d3-dsv": "1" + } + }, + "d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", + "requires": { + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" + } + }, + "d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" + }, + "d3-geo": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", + "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", + "requires": { + "d3-array": "1" + } + }, + "d3-geo-projection": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-0.2.16.tgz", + "integrity": "sha1-SZTs0QM92xUztsTFUoocgdzClCc=", + "requires": { + "brfs": "^1.3.0" + } + }, + "d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" + }, + "d3-interpolate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", + "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "requires": { + "d3-color": "1" + } + }, + "d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + }, + "d3-polygon": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", + "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" + }, + "d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" + }, + "d3-queue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/d3-queue/-/d3-queue-2.0.3.tgz", + "integrity": "sha1-B/vaOsrlNYqcUpmq+ICt8JU+0sI=" + }, + "d3-random": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", + "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" + }, + "d3-scale": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", + "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", + "requires": { + "d3-array": "^1.2.0", + "d3-collection": "1", + "d3-format": "1", + "d3-interpolate": "1", + "d3-time": "1", + "d3-time-format": "2" + } + }, + "d3-scale-chromatic": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", + "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", + "requires": { + "d3-color": "1", + "d3-interpolate": "1" + } + }, + "d3-selection": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", + "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" + }, + "d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "requires": { + "d3-path": "1" + } + }, + "d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" + }, + "d3-time-format": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", + "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "requires": { + "d3-time": "1" + } + }, + "d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" + }, + "d3-transition": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", + "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", + "requires": { + "d3-color": "1", + "d3-dispatch": "1", + "d3-ease": "1", + "d3-interpolate": "1", + "d3-selection": "^1.1.0", + "d3-timer": "1" + } + }, + "d3-voronoi": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", + "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" + }, + "d3-zoom": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", + "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", + "requires": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "datamaps": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/datamaps/-/datamaps-0.5.9.tgz", + "integrity": "sha512-GUXpO713URNzaExVUgBtqA5fr2UuxUG/fVitI04zEFHVL2FHSjd672alHq8E16oQqRNzF0m1bmx8WlTnDrGSqQ==", + "requires": { + "@types/d3": "3.5.38", + "d3": "^3.5.6", + "topojson": "^1.6.19" + }, + "dependencies": { + "d3": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz", + "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=" + } + } + }, + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==" + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==" + }, + "default-gateway": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-5.0.5.tgz", + "integrity": "sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA==", + "dev": true, + "requires": { + "execa": "^3.3.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + } + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "optional": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", + "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "dropzone": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/dropzone/-/dropzone-5.7.2.tgz", + "integrity": "sha512-m217bJHtf0J1IiKn4Tv6mnu1h5QvQNBnKZ39gma7hzGQhIZMxYq1vYEHs4AVd4ThFwmALys+52NAOD4zdLTG4w==" + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "easy-stack": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.1.tgz", + "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.644", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.644.tgz", + "integrity": "sha512-N7FLvjDPADxad+OXXBuYfcvDvCBG0aW8ZZGr7G91sZMviYbnQJFxdSvUus4SJ0K7Q8dzMxE+Wx1d/CrJIIJ0sw==", + "dev": true + }, + "element-ui": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.0.tgz", + "integrity": "sha512-9z/1+b7V8fvp08OnKUEW4/BZ72kT+IhuKR9cTMz3XoCTKmEsqLLb32XjbO/DznSFaaiFbOYU93G7WtkvrCAL9A==", + "requires": { + "async-validator": "~1.8.1", + "babel-helper-vue-jsx-merge-props": "^2.0.0", + "deepmerge": "^1.2.0", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0", + "throttle-debounce": "^1.0.1" + } + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.18.0-next.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", + "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "es6-templates": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", + "integrity": "sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=", + "dev": true, + "requires": { + "recast": "~0.11.12", + "through": "~2.3.6" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "optional": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "optional": true + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "optional": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true, + "optional": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true, + "optional": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "optional": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true, + "optional": true + } + } + }, + "eslint-config-prettier": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-3.6.0.tgz", + "integrity": "sha512-ixJ4U3uTLXwJts4rmSVW/lMXjlGwCijhBJHk8iVqKKSifeI0qgFEfWl8L63isfc8Od7EiBALF6BX3jKLluf/jQ==", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + } + }, + "eslint-loader": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz", + "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==", + "dev": true, + "requires": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + } + }, + "eslint-plugin-prettier": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz", + "integrity": "sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-plugin-vue": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-4.7.1.tgz", + "integrity": "sha512-esETKhVMI7Vdli70Wt4bvAwnZBJeM0pxVX9Yb0wWKxdCJc2EADalVYK/q2FzMw8oKN0wPMdqVCKS8kmR89recA==", + "dev": true, + "optional": true, + "requires": { + "vue-eslint-parser": "^2.0.3" + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "optional": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true, + "optional": true + } + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "optional": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "optional": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz", + "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", + "dev": true + }, + "eventemitter3": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", + "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=" + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "optional": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extract-text-webpack-plugin": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz", + "integrity": "sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA==", + "dev": true, + "requires": { + "async": "^2.4.1", + "loader-utils": "^1.1.0", + "schema-utils": "^0.4.5", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "falafel": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz", + "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==", + "requires": { + "acorn": "^7.1.1", + "foreach": "^2.0.5", + "isarray": "^2.0.1", + "object-keys": "^1.0.6" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + }, + "fast-diff": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", + "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==" + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "optional": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "optional": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "file-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", + "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "file-type": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz", + "integrity": "sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==", + "dev": true + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-babel-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz", + "integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==", + "dev": true, + "requires": { + "json5": "^0.5.1", + "path-exists": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "optional": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatpickr": { + "version": "4.6.9", + "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.9.tgz", + "integrity": "sha512-F0azNNi8foVWKSF+8X+ZJzz8r9sE1G4hl06RyceIaLvyltKvDl6vqk9Lm/6AUUCi5HWaIjiUbk7UpeE/fOXOpw==" + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", + "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "friendly-errors-webpack-plugin": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz", + "integrity": "sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", + "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", + "dev": true, + "optional": true + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true, + "optional": true + }, + "fuse.js": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz", + "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + }, + "dependencies": { + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + } + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } + } + }, + "globs": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globs/-/globs-0.1.4.tgz", + "integrity": "sha512-D23dWbOq48vlOraoSigbcQV4tWrnhwk+E/Um2cMuDS3/5dwGmdFeA7L/vAvDhLFlQOTDqHcXh35m/71g2A2WzQ==", + "dev": true, + "requires": { + "glob": "^7.1.1" + } + }, + "globule": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "requires": { + "delegate": "^3.1.2" + } + }, + "google-maps": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/google-maps/-/google-maps-3.3.0.tgz", + "integrity": "sha512-pj4En0cWKG+lcBvC7qrzu5ItiMsYNTgjG2capsPzAbAM/O8ftugGpUUftTTwdGL8KlNvB4CEZ6IBWwpWYzUEpw==" + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "hammerjs": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", + "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "highlight.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz", + "integrity": "sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "html-loader": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.5.5.tgz", + "integrity": "sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog==", + "dev": true, + "requires": { + "es6-templates": "^0.2.3", + "fastparse": "^1.1.1", + "html-minifier": "^3.5.8", + "loader-utils": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + } + } + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + }, + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "dev": true, + "requires": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + } + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "imagemin": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz", + "integrity": "sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A==", + "dev": true, + "requires": { + "file-type": "^10.7.0", + "globby": "^8.0.1", + "make-dir": "^1.0.0", + "p-pipe": "^1.1.0", + "pify": "^4.0.1", + "replace-ext": "^1.0.0" + }, + "dependencies": { + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } + } + }, + "img-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/img-loader/-/img-loader-3.0.2.tgz", + "integrity": "sha512-rSriLKgvi85Km7ppSF+AEAM3nU4fxpvCkaXtC/IoCEU7jfks55bEANFs0bB9YXYkxY9JurZQIZFtXh5Gue3upw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + } + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "optional": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "dependencies": { + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + } + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "javascript-stringify": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz", + "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=", + "dev": true + }, + "jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, + "js-message": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.7.tgz", + "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", + "dev": true + }, + "js-queue": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.2.tgz", + "integrity": "sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA==", + "dev": true, + "requires": { + "easy-stack": "^1.0.1" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + } + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true, + "optional": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "laravel-mix": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-4.1.4.tgz", + "integrity": "sha512-fpFNpPyYAdeZ5mozlKbHpw+tCiRFUCCdSsK/D2+yYhlyIEbzPcAe4ar5cjeT33TnDNiKXSS42cB58yUSW5Y5tg==", + "dev": true, + "requires": { + "@babel/core": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-transform-runtime": "^7.2.0", + "@babel/preset-env": "^7.2.0", + "@babel/runtime": "^7.2.0", + "autoprefixer": "^9.4.2", + "babel-loader": "^8.0.4", + "babel-merge": "^2.0.1", + "chokidar": "^2.0.3", + "clean-css": "^4.1.3", + "collect.js": "^4.12.8", + "concatenate": "0.0.2", + "css-loader": "^1.0.1", + "dotenv": "^6.2.0", + "dotenv-expand": "^4.2.0", + "extract-text-webpack-plugin": "v4.0.0-beta.0", + "file-loader": "^2.0.0", + "friendly-errors-webpack-plugin": "^1.6.1", + "fs-extra": "^7.0.1", + "glob": "^7.1.2", + "html-loader": "^0.5.5", + "imagemin": "^6.0.0", + "img-loader": "^3.0.0", + "lodash": "^4.17.15", + "md5": "^2.2.1", + "optimize-css-assets-webpack-plugin": "^5.0.1", + "postcss-loader": "^3.0.0", + "style-loader": "^0.23.1", + "terser": "^3.11.0", + "terser-webpack-plugin": "^1.2.2", + "vue-loader": "^15.4.2", + "webpack": "^4.27.1", + "webpack-cli": "^3.1.2", + "webpack-dev-server": "^3.1.14", + "webpack-merge": "^4.1.0", + "webpack-notifier": "^1.5.1", + "yargs": "^12.0.5" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "dotenv": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", + "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", + "dev": true + }, + "dotenv-expand": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", + "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=", + "dev": true + }, + "file-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", + "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "terser": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", + "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.10" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", + "dev": true, + "requires": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "launch-editor": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.2.1.tgz", + "integrity": "sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw==", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "shell-quote": "^1.6.1" + } + }, + "launch-editor-middleware": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz", + "integrity": "sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg==", + "dev": true, + "requires": { + "launch-editor": "^2.2.1" + } + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "loader-fs-cache": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", + "dev": true, + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "dev": true, + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", + "dev": true + }, + "lodash._createassigner": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", + "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", + "dev": true, + "requires": { + "lodash._bindcallback": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash.restparam": "^3.0.0" + } + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", + "dev": true + }, + "lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "dev": true + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.transform": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz", + "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "requires": { + "vlq": "^0.2.2" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + } + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "requires": { + "source-map": "^0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "mime": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", + "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", + "dev": true + }, + "mime-db": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", + "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "dev": true + }, + "mime-types": { + "version": "2.1.28", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", + "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "dev": true, + "requires": { + "mime-db": "1.45.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz", + "integrity": "sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true, + "optional": true + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true, + "optional": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "node-ipc": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.3.tgz", + "integrity": "sha512-8RS4RZyS/KMKKYG8mrje+cLxwATe9dBCuOiqKFSWND4oOuKytfuKCiR9yinvhoXF/nGdX/WnbywaUee+9U87zA==", + "dev": true, + "requires": { + "event-pubsub": "4.3.0", + "js-message": "1.0.7", + "js-queue": "2.0.2" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-notifier": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", + "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "dev": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "node-releases": { + "version": "1.1.70", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", + "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", + "dev": true + }, + "node-sass": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "normalize-wheel": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", + "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=" + }, + "nouislider": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/nouislider/-/nouislider-12.1.0.tgz", + "integrity": "sha512-SAOabF6hBm8201c6LDbkVOVhgwY49+/ms72ZLUF2qkN5RCf7FfUvEh/hGZ7XcwZHU+I/grlicPmcSk1/rrMnOw==" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", + "dev": true + }, + "object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==" + }, + "object-is": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", + "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-path": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", + "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "object.omit": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-3.0.0.tgz", + "integrity": "sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==", + "dev": true, + "requires": { + "is-extendable": "^1.0.0" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", + "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimist": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", + "requires": { + "wordwrap": "~0.0.2" + } + }, + "optimize-css-assets-webpack-plugin": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz", + "integrity": "sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A==", + "dev": true, + "requires": { + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "p-pipe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz", + "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=", + "dev": true + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parchment": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz", + "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==" + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + } + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "perfect-scrollbar": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz", + "integrity": "sha512-NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + } + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true, + "optional": true + }, + "popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "dev": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "optional": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "quill": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", + "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", + "requires": { + "clone": "^2.1.1", + "deep-equal": "^1.0.1", + "eventemitter3": "^2.0.3", + "extend": "^3.0.2", + "parchment": "^1.1.4", + "quill-delta": "^3.6.2" + } + }, + "quill-delta": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz", + "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==", + "requires": { + "deep-equal": "^1.0.1", + "extend": "^3.0.2", + "fast-diff": "1.1.2" + } + }, + "quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", + "requires": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "recast": { + "version": "0.11.23", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", + "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", + "dev": true, + "requires": { + "ast-types": "0.9.6", + "esprima": "~3.1.0", + "private": "~0.1.5", + "source-map": "~0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + } + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true, + "optional": true + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.6.tgz", + "integrity": "sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "renderkid": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz", + "integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==", + "dev": true, + "requires": { + "css-select": "^2.0.2", + "dom-converter": "^0.2", + "htmlparser2": "^3.10.1", + "lodash": "^4.17.20", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "dev": true, + "requires": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "optional": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "reselect": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz", + "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=", + "dev": true + }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "dependencies": { + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + } + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true, + "optional": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "resolve-url-loader": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-2.3.2.tgz", + "integrity": "sha512-sc/UVgiADdoTc+4cGPB7cUCnlEkzlxD1NXHw4oa9qA0fp30H8mAQ2ePJBP9MQ029DUuhEPouhNdvzT37pBCV0g==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "^1.1.0", + "camelcase": "^4.1.0", + "convert-source-map": "^1.5.1", + "loader-utils": "^1.1.0", + "lodash.defaults": "^4.0.0", + "rework": "^1.0.1", + "rework-visit": "^1.0.0", + "source-map": "^0.5.7", + "urix": "^0.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "requires": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "optional": true + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true, + "optional": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "optional": true, + "requires": { + "rx-lite": "*" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass": { + "version": "1.32.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.5.tgz", + "integrity": "sha512-kU1yJ5zUAmPxr7f3q0YXTAd1oZjSR1g3tYyv+xu0HZSl5JiNOaE987eiz7wCUvbm4I9fGWGU2TgApTtcP4GMNQ==", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "sass-loader": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz", + "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=" + }, + "shapefile": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/shapefile/-/shapefile-0.3.1.tgz", + "integrity": "sha1-m7mkKb1ghqDPsDli0Uz99CD/uhI=", + "requires": { + "d3-queue": "1", + "iconv-lite": "0.2", + "optimist": "0.3" + }, + "dependencies": { + "d3-queue": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/d3-queue/-/d3-queue-1.2.3.tgz", + "integrity": "sha1-FDpwHPpl/gISkvMhwQ0U6Yq9SRs=" + }, + "iconv-lite": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", + "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=" + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "optional": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", + "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^3.4.0", + "websocket-driver": "^0.7.4" + } + }, + "sockjs-client": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz", + "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==", + "dev": true, + "requires": { + "debug": "^3.2.6", + "eventsource": "^1.0.7", + "faye-websocket": "^0.11.3", + "inherits": "^2.0.4", + "json3": "^3.3.3", + "url-parse": "^1.4.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==", + "dev": true + }, + "static-eval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", + "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", + "requires": { + "escodegen": "^1.11.1" + }, + "dependencies": { + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "static-module": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", + "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", + "requires": { + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "falafel": "^2.1.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "quote-stream": "~1.0.2", + "readable-stream": "~2.3.3", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.0", + "through2": "~2.0.3" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.padend": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.1.tgz", + "integrity": "sha512-eCzTASPnoCr5Ht+Vn1YXgm8SB015hHKgEIMu9Nr9bQmLhRBxKRfmzSj/IQsxDFc8JInJDDFA0qXwK+xxI7wDkg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "string.prototype.padstart": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.1.tgz", + "integrity": "sha512-kcFjKhQYg40AK9MITCWYr/vIebruAD01sc/fxi8szHJaEG7Rke4XHw6LU9c1VWXh/+J/PxvWLLf/aIAGKhXkAQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "optional": true + }, + "style-loader": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "sweetalert2": { + "version": "7.33.1", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-7.33.1.tgz", + "integrity": "sha512-69KYtyhtxejFG0HDb8aVhAwbpAWPSTZwaL5vxDHgojErD2KeFxTmRgmkbiLtMC8UdTFXRmvTPtZTF4459MUb7w==" + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "optional": true, + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true, + "optional": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true, + "optional": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true, + "optional": true + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true, + "optional": true + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "thread-loader": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.3.tgz", + "integrity": "sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg==", + "dev": true, + "requires": { + "loader-runner": "^2.3.1", + "loader-utils": "^1.1.0", + "neo-async": "^2.6.0" + } + }, + "throttle-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz", + "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "optional": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "topojson": { + "version": "1.6.27", + "resolved": "https://registry.npmjs.org/topojson/-/topojson-1.6.27.tgz", + "integrity": "sha1-rb4zpn4vFnPTON8SZErSD8ILQu0=", + "requires": { + "d3": "3", + "d3-geo-projection": "0.2", + "d3-queue": "2", + "optimist": "0.3", + "rw": "1", + "shapefile": "0.3" + }, + "dependencies": { + "d3": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz", + "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=" + } + } + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + } + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-loader": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", + "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + } + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "v-money": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/v-money/-/v-money-0.8.1.tgz", + "integrity": "sha512-raz87AP5F2YEpv1GAocI3SC/y9af1+TQeZQIhAK5UNovho6dnh6RQBa5UG8ZNC+BPLpUh5VECi7EWTjr4+4s1g==" + }, + "v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vee-validate": { + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/vee-validate/-/vee-validate-2.2.15.tgz", + "integrity": "sha512-4TOsI8XwVkKVLkg8Nhmy+jyoJrR6XcTRDyxBarzcCvYzU61zamipS1WsB6FlDze8eJQpgglS4NXAS6o4NDPs1g==" + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==" + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "vue": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz", + "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==" + }, + "vue-chartjs": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-3.5.1.tgz", + "integrity": "sha512-foocQbJ7FtveICxb4EV5QuVpo6d8CmZFmAopBppDIGKY+esJV8IJgwmEW0RexQhxqXaL/E1xNURsgFFYyKzS/g==", + "requires": { + "@types/chart.js": "^2.7.55" + } + }, + "vue-clipboard2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/vue-clipboard2/-/vue-clipboard2-0.3.1.tgz", + "integrity": "sha512-H5S/agEDj0kXjUb5GP2c0hCzIXWRBygaWLN3NEFsaI9I3uWin778SFEMt8QRXiPG+7anyjqWiw2lqcxWUSfkYg==", + "requires": { + "clipboard": "^2.0.0" + } + }, + "vue-eslint-parser": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz", + "integrity": "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "optional": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + } + } + }, + "vue-flatpickr-component": { + "version": "8.1.6", + "resolved": "https://registry.npmjs.org/vue-flatpickr-component/-/vue-flatpickr-component-8.1.6.tgz", + "integrity": "sha512-RUu/M/1lbuzQT+U3yP7O5/M2EIizr9vXLXqSc1eFOvCT3AHurQg8+iO02rjW+2l78Kit8pCNAUvHw7eexws6hw==", + "requires": { + "flatpickr": "^4.6.6" + } + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "vue-image-lightbox": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vue-image-lightbox/-/vue-image-lightbox-7.2.0.tgz", + "integrity": "sha512-Gykb05xg3tHqUKny/p4pjHp2B68izo5vOg6meUAZd3oKSc+eqQvd9q54n0L94KBkF2m8zjusKMP1tdhu150VOQ==", + "requires": { + "@babel/runtime": "7.9.2", + "hammerjs": "^2.0.8", + "vue-lazyload": "^1.3.2" + } + }, + "vue-lazyload": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/vue-lazyload/-/vue-lazyload-1.3.3.tgz", + "integrity": "sha512-uHnq0FTEeNmqnbBC2aRKlmtd9LofMZ6Q3mWvgfLa+i9vhxU8fDK+nGs9c1iVT85axSua/AUnMttIq3xPaU9G3A==" + }, + "vue-loader": { + "version": "15.9.6", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.6.tgz", + "integrity": "sha512-j0cqiLzwbeImIC6nVIby2o/ABAWhlppyL/m5oJ67R5MloP0hj/DtFgb0Zmq3J9CG7AJ+AXIvHVnJAPBvrLyuDg==", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + } + }, + "vue-loading-overlay": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/vue-loading-overlay/-/vue-loading-overlay-3.4.2.tgz", + "integrity": "sha512-xcB+NPjl76eA0uggm707x3ZFgrNosZXpynHipyS3K+rrK1NztOV49R1LY+/4ij5W1KYANp7eRI2EIHrxCpmWAw==" + }, + "vue-router": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.4.9.tgz", + "integrity": "sha512-CGAKWN44RqXW06oC+u4mPgHLQQi2t6vLD/JbGRDAXm0YpMv0bgpKuU5bBd7AvMgfTz9kXVRIWKHqRwGEb8xFkA==" + }, + "vue-style-loader": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz", + "integrity": "sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "vue-template-compiler": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz", + "integrity": "sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "vue2-transitions": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/vue2-transitions/-/vue2-transitions-0.3.0.tgz", + "integrity": "sha512-m1ad8K8kufqiEhj5gXHkkqOioI5sW0FaMbRiO0Tv2WFfGbO2eIKrfkFiO3HPQtMJboimaLCN4p/zL81clLbG4w==" + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-bundle-analyzer": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz", + "integrity": "sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.19", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "dependencies": { + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + } + } + }, + "webpack-chain": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-4.12.1.tgz", + "integrity": "sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==", + "dev": true, + "requires": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^1.6.0" + } + }, + "webpack-cli": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", + "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.1", + "findup-sync": "^3.0.0", + "global-modules": "^2.0.0", + "import-local": "^2.0.0", + "interpret": "^1.4.0", + "loader-utils": "^1.4.0", + "supports-color": "^6.1.0", + "v8-compile-cache": "^2.1.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", + "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.8", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-notifier": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.12.0.tgz", + "integrity": "sha512-urRnbKupMQHUplsiwsOajp1F1DCJgJ+yyT4HIxAP+TfMF+ZtsKW+kVt2UcDm1E88xutOst+VChJZMDAD3aec5w==", + "dev": true, + "requires": { + "node-notifier": "^8.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "optional": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + }, + "yorkie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yorkie/-/yorkie-2.0.0.tgz", + "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==", + "dev": true, + "requires": { + "execa": "^0.8.0", + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + } + } +} From 0320df1c9b50a05a79107d0e1a53f9766c806df3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Sun, 31 Jan 2021 23:47:36 +0300 Subject: [PATCH 003/121] improved error handler of import/export --- app/Abstracts/Http/Controller.php | 47 +++++++++++++++++++ app/Http/Controllers/Banking/Transactions.php | 2 +- app/Http/Controllers/Banking/Transfers.php | 40 ++++++++-------- app/Http/Controllers/Common/Items.php | 6 ++- app/Http/Controllers/Purchases/Bills.php | 10 ++-- app/Http/Controllers/Purchases/Payments.php | 6 ++- app/Http/Controllers/Purchases/Vendors.php | 6 ++- app/Http/Controllers/Sales/Customers.php | 6 ++- app/Http/Controllers/Sales/Invoices.php | 11 ++--- app/Http/Controllers/Sales/Revenues.php | 6 ++- app/Imports/Sales/Invoices.php | 1 - 11 files changed, 95 insertions(+), 46 deletions(-) diff --git a/app/Abstracts/Http/Controller.php b/app/Abstracts/Http/Controller.php index ce3a6b3a4..dfc1b9848 100644 --- a/app/Abstracts/Http/Controller.php +++ b/app/Abstracts/Http/Controller.php @@ -6,12 +6,18 @@ use App\Abstracts\Http\Response; use App\Traits\Jobs; use App\Traits\Permissions; use App\Traits\Relationships; +use Exception; +use ErrorException; use Illuminate\Database\Eloquent\Collection; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Pagination\Paginator; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Routing\Controller as BaseController; +use Illuminate\Support\Str; +use Maatwebsite\Excel\Exceptions\SheetNotFoundException; +use Maatwebsite\Excel\Facades\Excel; +use Throwable; abstract class Controller extends BaseController { @@ -66,4 +72,45 @@ abstract class Controller extends BaseController return $response; } + + /** + * Import the excel file or catch errors + * + * @param $class + * @param $request + * @param $url + * + * @return mixed + */ + public function importExcel($class, $request, $url) + { + try { + Excel::import($class, $request->file('import')); + } catch (SheetNotFoundException | ErrorException | Exception | Throwable $e) { + flash($e->getMessage())->error()->important(); + + return redirect()->route('import.create', explode('/', $url)); + } + + return true; + } + + /** + * Export the excel file or catch errors + * + * @param $class + * @param $file_name + * + * @return mixed + */ + public function exportExcel($class, $file_name, $extension = 'xlsx') + { + try { + return Excel::download($class, Str::filename($file_name) . '.' . $extension); + } catch (ErrorException | Exception | Throwable $e) { + flash($e->getMessage())->error()->important(); + + return back(); + } + } } diff --git a/app/Http/Controllers/Banking/Transactions.php b/app/Http/Controllers/Banking/Transactions.php index 0daceef6a..b28cc5f46 100644 --- a/app/Http/Controllers/Banking/Transactions.php +++ b/app/Http/Controllers/Banking/Transactions.php @@ -84,6 +84,6 @@ class Transactions extends Controller */ public function export() { - return \Excel::download(new Export(), \Str::filename(trans_choice('general.transactions', 2)) . '.xlsx'); + return $this->exportExcel(new Export, trans_choice('general.transactions', 2)); } } diff --git a/app/Http/Controllers/Banking/Transfers.php b/app/Http/Controllers/Banking/Transfers.php index 3eac88ee6..70c6fc812 100644 --- a/app/Http/Controllers/Banking/Transfers.php +++ b/app/Http/Controllers/Banking/Transfers.php @@ -139,6 +139,26 @@ class Transfers extends Controller return response()->json($response); } + /** + * Import the specified resource. + * + * @param ImportRequest $request + * + * @return Response + */ + public function import(ImportRequest $request) + { + if (true !== $result = $this->importExcel(new Import, $request, 'banking/transfers')) { + return $result; + } + + $message = trans('messages.success.imported', ['type' => trans_choice('general.transfers', 2)]); + + flash($message)->success(); + + return redirect()->route('transfers.index'); + } + /** * Show the form for editing the specified resource. * @@ -222,24 +242,6 @@ class Transfers extends Controller return response()->json($response); } - /** - * Import the specified resource. - * - * @param ImportRequest $request - * - * @return Response - */ - public function import(ImportRequest $request) - { - \Excel::import(new Import(), $request->file('import')); - - $message = trans('messages.success.imported', ['type' => trans_choice('general.transfers', 2)]); - - flash($message)->success(); - - return redirect()->route('transfers.index'); - } - /** * Export the specified resource. * @@ -247,6 +249,6 @@ class Transfers extends Controller */ public function export() { - return \Excel::download(new Export(), \Str::filename(trans_choice('general.transfers', 2)) . '.xlsx'); + return $this->exportExcel(new Export, trans_choice('general.transfers', 2)); } } diff --git a/app/Http/Controllers/Common/Items.php b/app/Http/Controllers/Common/Items.php index d44a7863e..942b43eca 100644 --- a/app/Http/Controllers/Common/Items.php +++ b/app/Http/Controllers/Common/Items.php @@ -111,7 +111,9 @@ class Items extends Controller */ public function import(ImportRequest $request) { - \Excel::import(new Import(), $request->file('import')); + if (true !== $result = $this->importExcel(new Import, $request, 'common/items')) { + return $result; + } $message = trans('messages.success.imported', ['type' => trans_choice('general.items', 2)]); @@ -237,7 +239,7 @@ class Items extends Controller */ public function export() { - return \Excel::download(new Export(), \Str::filename(trans_choice('general.items', 2)) . '.xlsx'); + return $this->exportExcel(new Export, trans_choice('general.items', 2)); } public function autocomplete() diff --git a/app/Http/Controllers/Purchases/Bills.php b/app/Http/Controllers/Purchases/Bills.php index eeaf03c03..bf097307e 100644 --- a/app/Http/Controllers/Purchases/Bills.php +++ b/app/Http/Controllers/Purchases/Bills.php @@ -128,12 +128,8 @@ class Bills extends Controller */ public function import(ImportRequest $request) { - try { - \Excel::import(new Import(), $request->file('import')); - } catch (\Maatwebsite\Excel\Exceptions\SheetNotFoundException $e) { - flash($e->getMessage())->error()->important(); - - return redirect()->route('import.create', ['purchases', 'bills']); + if (true !== $result = $this->importExcel(new Import, $request, 'purchases/bills')) { + return $result; } $message = trans('messages.success.imported', ['type' => trans_choice('general.bills', 2)]); @@ -217,7 +213,7 @@ class Bills extends Controller */ public function export() { - return \Excel::download(new Export(), \Str::filename(trans_choice('general.bills', 2)) . '.xlsx'); + return $this->exportExcel(new Export, trans_choice('general.bills', 2)); } /** diff --git a/app/Http/Controllers/Purchases/Payments.php b/app/Http/Controllers/Purchases/Payments.php index 5c4c73d41..f3980f8cd 100644 --- a/app/Http/Controllers/Purchases/Payments.php +++ b/app/Http/Controllers/Purchases/Payments.php @@ -124,7 +124,9 @@ class Payments extends Controller */ public function import(ImportRequest $request) { - \Excel::import(new Import(), $request->file('import')); + if (true !== $result = $this->importExcel(new Import, $request, 'purchases/payments')) { + return $result; + } $message = trans('messages.success.imported', ['type' => trans_choice('general.payments', 2)]); @@ -229,6 +231,6 @@ class Payments extends Controller */ public function export() { - return \Excel::download(new Export(), \Str::filename(trans_choice('general.payments', 2)) . '.xlsx'); + return $this->exportExcel(new Export, trans_choice('general.payments', 2)); } } diff --git a/app/Http/Controllers/Purchases/Vendors.php b/app/Http/Controllers/Purchases/Vendors.php index 72518602c..e0793ac16 100644 --- a/app/Http/Controllers/Purchases/Vendors.php +++ b/app/Http/Controllers/Purchases/Vendors.php @@ -161,7 +161,9 @@ class Vendors extends Controller */ public function import(ImportRequest $request) { - \Excel::import(new Import(), $request->file('import')); + if (true !== $result = $this->importExcel(new Import, $request, 'purchases/vendors')) { + return $result; + } $message = trans('messages.success.imported', ['type' => trans_choice('general.vendors', 2)]); @@ -282,7 +284,7 @@ class Vendors extends Controller */ public function export() { - return \Excel::download(new Export(), \Str::filename(trans_choice('general.vendors', 2)) . '.xlsx'); + return $this->exportExcel(new Export, trans_choice('general.vendors', 2)); } public function currency(Contact $vendor) diff --git a/app/Http/Controllers/Sales/Customers.php b/app/Http/Controllers/Sales/Customers.php index aea2f7bfe..cac9b0a6b 100644 --- a/app/Http/Controllers/Sales/Customers.php +++ b/app/Http/Controllers/Sales/Customers.php @@ -159,7 +159,9 @@ class Customers extends Controller */ public function import(ImportRequest $request) { - \Excel::import(new Import(), $request->file('import')); + if (true !== $result = $this->importExcel(new Import, $request, 'sales/customers')) { + return $result; + } $message = trans('messages.success.imported', ['type' => trans_choice('general.customers', 2)]); @@ -280,7 +282,7 @@ class Customers extends Controller */ public function export() { - return \Excel::download(new Export(), \Str::filename(trans_choice('general.customers', 2)) . '.xlsx'); + return $this->exportExcel(new Export, trans_choice('general.customers', 2)); } public function currency(Contact $customer) diff --git a/app/Http/Controllers/Sales/Invoices.php b/app/Http/Controllers/Sales/Invoices.php index 310b16ebd..94dbc8867 100644 --- a/app/Http/Controllers/Sales/Invoices.php +++ b/app/Http/Controllers/Sales/Invoices.php @@ -13,7 +13,6 @@ use App\Jobs\Document\DuplicateDocument; use App\Jobs\Document\UpdateDocument; use App\Models\Document\Document; use App\Notifications\Sale\Invoice as Notification; -use App\Models\Setting\Currency; use App\Traits\Documents; use File; @@ -128,12 +127,8 @@ class Invoices extends Controller */ public function import(ImportRequest $request) { - try { - \Excel::import(new Import(), $request->file('import')); - } catch (\Maatwebsite\Excel\Exceptions\SheetNotFoundException $e) { - flash($e->getMessage())->error()->important(); - - return redirect()->route('import.create', ['sales', 'invoices']); + if (true !== $result = $this->importExcel(new Import, $request, 'sales/invoices')) { + return $result; } $message = trans('messages.success.imported', ['type' => trans_choice('general.invoices', 2)]); @@ -217,7 +212,7 @@ class Invoices extends Controller */ public function export() { - return \Excel::download(new Export(), \Str::filename(trans_choice('general.invoices', 2)) . '.xlsx'); + return $this->exportExcel(new Export, trans_choice('general.invoices', 2)); } /** diff --git a/app/Http/Controllers/Sales/Revenues.php b/app/Http/Controllers/Sales/Revenues.php index 6f5bad53f..15aead9bf 100644 --- a/app/Http/Controllers/Sales/Revenues.php +++ b/app/Http/Controllers/Sales/Revenues.php @@ -124,7 +124,9 @@ class Revenues extends Controller */ public function import(ImportRequest $request) { - \Excel::import(new Import(), $request->file('import')); + if (true !== $result = $this->importExcel(new Import, $request, 'sales/revenues')) { + return $result; + } $message = trans('messages.success.imported', ['type' => trans_choice('general.revenues', 2)]); @@ -229,6 +231,6 @@ class Revenues extends Controller */ public function export() { - return \Excel::download(new Export(), \Str::filename(trans_choice('general.revenues', 2)) . '.xlsx'); + return $this->exportExcel(new Export, trans_choice('general.revenues', 2)); } } diff --git a/app/Imports/Sales/Invoices.php b/app/Imports/Sales/Invoices.php index 863381dac..ad99d8689 100644 --- a/app/Imports/Sales/Invoices.php +++ b/app/Imports/Sales/Invoices.php @@ -12,7 +12,6 @@ use Maatwebsite\Excel\Concerns\WithMultipleSheets; class Invoices implements WithMultipleSheets { - public function sheets(): array { return [ From a5e4ee3a4ce694e473de43e78798d79cf66ab108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Mon, 1 Feb 2021 00:47:39 +0300 Subject: [PATCH 004/121] OfflinePayment edit payment method. --- .../Http/Controllers/Settings.php | 11 ++++--- .../Resources/assets/js/offline-payments.js | 7 +++++ .../Resources/views/edit.blade.php | 31 +++++++++++++++++++ 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/modules/OfflinePayments/Http/Controllers/Settings.php b/modules/OfflinePayments/Http/Controllers/Settings.php index 704b3334a..e1d957ad5 100644 --- a/modules/OfflinePayments/Http/Controllers/Settings.php +++ b/modules/OfflinePayments/Http/Controllers/Settings.php @@ -34,13 +34,14 @@ class Settings extends Controller */ public function update(Request $request) { + $code_exists = true; $methods = json_decode(setting('offline-payments.methods'), true); - if(array_search($request->update_code, array_column($methods, 'code')) == false) { - $request->merge(['code_exists' => false]); - }else{ - $request->merge(['code_exists' => true]); + + if (array_search($request->update_code, array_column($methods, 'code')) == false) { + $code_exists = false; } - if (!empty($request->get('update_code')) && $request->get('code_exists') == true) { + + if (!empty($request->get('update_code')) && $code_exists == true) { $payment_method = $this->dispatch(new UpdatePaymentMethod($request)); $message = trans('messages.success.updated', ['type' => $payment_method['name']]); diff --git a/modules/OfflinePayments/Resources/assets/js/offline-payments.js b/modules/OfflinePayments/Resources/assets/js/offline-payments.js index 32149da8c..4de72a8e9 100644 --- a/modules/OfflinePayments/Resources/assets/js/offline-payments.js +++ b/modules/OfflinePayments/Resources/assets/js/offline-payments.js @@ -27,6 +27,8 @@ const app = new Vue({ data() { return { form: new Form('offline-payment'), + update_code: null, + form_loading: '', } }, @@ -34,6 +36,8 @@ const app = new Vue({ onEdit(event) { var code = event.target.dataset.code; + this.form_loading = ''; + this.form.loading = true; axios.post('offline-payments/settings/get', { @@ -46,10 +50,13 @@ const app = new Vue({ this.form.order = response.data.data.order; this.form.description = response.data.data.description; this.form.update_code = response.data.data.update_code; + this.update_code = response.data.data.update_code; this.form.loading = false; + this.form_loading = ''; }) .catch(error => { this.form.loading = false; + this.form_loading = ''; }); }, diff --git a/modules/OfflinePayments/Resources/views/edit.blade.php b/modules/OfflinePayments/Resources/views/edit.blade.php index f69c49630..79d01e616 100644 --- a/modules/OfflinePayments/Resources/views/edit.blade.php +++ b/modules/OfflinePayments/Resources/views/edit.blade.php @@ -22,6 +22,8 @@ ]) !!}
+
+
{{ Form::textGroup('name', trans('general.name'), 'money-check', ['required' => 'required'], null, 'col-md-12') }} @@ -92,6 +94,7 @@ 'title' => trans('general.delete'), 'data-code' => $item->code, 'id' => 'delete-' . $item->code, + ':disabled' => "update_code == '" . $item->code . "'", '@click' => 'confirmDelete("' . $item->code . '", "' . trans('general.delete') . ' ' . trans_choice('offline-payments::general.methods', 1) . '", "' . trans('general.delete_confirm', ['name' => '' . $item->name . '', 'type' => mb_strtolower(trans('offline-payments::general.name'))]) . '", "' . trans('general.cancel') . '", "' . trans('general.delete') . '")', ]) !!}
@@ -111,3 +114,31 @@ @push('scripts_start') @endpush + +@push('stylesheet') + +@endpush From e33c03a46e39f6f003ce60c127e56fdfdd322775 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Mon, 1 Feb 2021 00:39:25 +0000 Subject: [PATCH 005/121] new crowdin translations --- resources/lang/fi-FI/general.php | 2 ++ resources/lang/fr-FR/settings.php | 25 +++++++++++++++++-------- resources/lang/pt-BR/general.php | 6 +++++- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/resources/lang/fi-FI/general.php b/resources/lang/fi-FI/general.php index cabfaa4ab..f9beb44b3 100644 --- a/resources/lang/fi-FI/general.php +++ b/resources/lang/fi-FI/general.php @@ -192,8 +192,10 @@ return [ 'add_new' => 'Lisää Uusi :field', 'edit' => 'Muokkaa :field', 'contact_edit' => 'Muokkaa :contact_name :field', + 'drop_file' => 'Pudota tiedostot tähän ladataksesi', 'choose' => 'Lataa tiedosto', 'choose_different' => 'Valitse toinen :field', + 'choose_file' => 'Valitse tiedosto', 'no_file_selected' => 'Tiedostoa ei valittu...', ], diff --git a/resources/lang/fr-FR/settings.php b/resources/lang/fr-FR/settings.php index 4c7f8b357..26ad5278e 100644 --- a/resources/lang/fr-FR/settings.php +++ b/resources/lang/fr-FR/settings.php @@ -12,7 +12,7 @@ return [ ], 'localisation' => [ - 'description' => 'Définir l\'année fiscale, le fuseau horaire, le format de la date et plus de locaux', + 'description' => 'Définir l\'année fiscale, le fuseau horaire, le format de la date et plus', 'financial_start' => 'Date de démarrage de la comptabilité', 'timezone' => 'Fuseau horaire', 'date' => [ @@ -44,34 +44,43 @@ return [ 'next' => 'Numéro suivant', 'logo' => 'Logo', 'custom' => 'Personnalisé', - 'item_name' => 'Nom de l\'élément', - 'item' => 'Éléments', + 'item_name' => 'Nom de l\'article', + 'item' => 'Articles', 'product' => 'Produits', 'service' => 'Services', 'price_name' => 'Nom du prix', 'price' => 'Prix', - 'rate' => 'Tarif', + 'rate' => 'Taux', 'quantity_name' => 'Nom de la quantité', 'quantity' => 'Quantité', 'payment_terms' => 'Conditions de paiement', 'title' => 'Titre', 'subheading' => 'Sous-titre', 'due_receipt' => 'Échéance après réception', - 'due_days' => 'Échéance dans :jours', - 'choose_template' => 'Choisi un modèle de facture', + 'due_days' => 'Échéance dans :days jours', + 'choose_template' => 'Choisir un modèle de facture', 'default' => 'Défaut', 'classic' => 'Classique', 'modern' => 'Moderne', + 'hide' => [ + 'item_name' => 'Cacher le nom de l\'article', + 'item_description' => 'Cacher la description de l\'article', + 'quantity' => 'Cacher la quantité', + 'price' => 'Cacher le prix', + 'amount' => 'Cacher le montant', + ], ], 'default' => [ 'description' => 'Compte par défaut, devise, langue de votre entreprise', 'list_limit' => 'Résultats par page', 'use_gravatar' => 'Utiliser Gravatar', + 'income_category' => 'Catégorie de factures', + 'expense_category' => 'Catégorie de dépenses', ], 'email' => [ - 'description' => 'Modifier les modèles de protocole d\'envoi et les modèles d\'e-mail', + 'description' => 'Modifier le protocole d\'envoi et les modèles d\'e-mail', 'protocol' => 'Protocole', 'php' => 'PHP Mail', 'smtp' => [ @@ -119,7 +128,7 @@ return [ ], 'currencies' => [ - 'description' => 'Créez et gérez des devises et définissez leurs taux', + 'description' => 'Créez et gérez les devises et définissez leurs taux', ], 'taxes' => [ diff --git a/resources/lang/pt-BR/general.php b/resources/lang/pt-BR/general.php index 95672b7cf..7170c20d5 100644 --- a/resources/lang/pt-BR/general.php +++ b/resources/lang/pt-BR/general.php @@ -156,16 +156,18 @@ return [ 'clear_cache' => 'Limpar o Cache', 'go_to_dashboard' => 'Ir para o Painel', 'is' => 'é', - 'isnot' => 'não é', + 'isnot' => 'não é', 'recurring_and_more' => 'Recorrente e mais..', 'due_on' => 'Vence em', 'amount_due' => 'Total devido', 'card' => [ + 'cards' => 'Cartão|Cartões', 'name' => 'Nome que consta no cartão', 'number' => 'Número do Cartão', 'expiration_date' => 'Data de validade', 'cvv' => 'Código CVV do cartão', + 'save' => 'Salvar cartão', ], 'title' => [ @@ -190,8 +192,10 @@ return [ 'add_new' => 'Adicionar novo :field', 'edit' => 'Editar :field', 'contact_edit' => 'Editar :contact_name :field', + 'drop_file' => 'Solte arquivos aqui para enviar', 'choose' => 'Escolher :field', 'choose_different' => 'Selecione um :field diferente', + 'choose_file' => 'Escolher Arquivo', 'no_file_selected' => 'Nenhum arquivo selecionado...', ], From 44ccdfd617c76d660cfb7777ea2055df6eec9f89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Mon, 1 Feb 2021 10:27:59 +0300 Subject: [PATCH 006/121] update composer.lock file --- composer.lock | 304 ++++++++++++++++++++++++++------------------------ 1 file changed, 156 insertions(+), 148 deletions(-) diff --git a/composer.lock b/composer.lock index 34c04cee9..589eedeca 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b5ff7f6b82222fa71c5dee6d019a1f3c", + "content-hash": "36796d7907ccd912874a2657d4162b71", "packages": [ { "name": "akaunting/firewall", @@ -1115,16 +1115,16 @@ }, { "name": "composer/composer", - "version": "2.0.8", + "version": "2.0.9", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "62139b2806178adb979d76bd3437534a1a9fd490" + "reference": "591c2c155cac0d2d7f34af41d3b1e29bcbfc685e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/62139b2806178adb979d76bd3437534a1a9fd490", - "reference": "62139b2806178adb979d76bd3437534a1a9fd490", + "url": "https://api.github.com/repos/composer/composer/zipball/591c2c155cac0d2d7f34af41d3b1e29bcbfc685e", + "reference": "591c2c155cac0d2d7f34af41d3b1e29bcbfc685e", "shasum": "" }, "require": { @@ -1192,7 +1192,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.0.8" + "source": "https://github.com/composer/composer/tree/2.0.9" }, "funding": [ { @@ -1208,7 +1208,7 @@ "type": "tidelift" } ], - "time": "2020-12-03T16:20:39+00:00" + "time": "2021-01-27T15:09:27+00:00" }, { "name": "composer/semver", @@ -4696,16 +4696,16 @@ }, { "name": "laravel/tinker", - "version": "v2.5.0", + "version": "v2.6.0", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "45884b526e10a88a1b179fa1a1a24d5468c668c2" + "reference": "daae1c43f1300fe88c05d83db6f3d8f76677ad88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/45884b526e10a88a1b179fa1a1a24d5468c668c2", - "reference": "45884b526e10a88a1b179fa1a1a24d5468c668c2", + "url": "https://api.github.com/repos/laravel/tinker/zipball/daae1c43f1300fe88c05d83db6f3d8f76677ad88", + "reference": "daae1c43f1300fe88c05d83db6f3d8f76677ad88", "shasum": "" }, "require": { @@ -4758,9 +4758,9 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.5.0" + "source": "https://github.com/laravel/tinker/tree/v2.6.0" }, - "time": "2020-10-29T13:07:12+00:00" + "time": "2021-01-26T20:35:18+00:00" }, { "name": "laravel/ui", @@ -5413,16 +5413,16 @@ }, { "name": "lorisleiva/laravel-search-string", - "version": "v1.0.4", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/lorisleiva/laravel-search-string.git", - "reference": "f1b1a8cfe95617b1a9b02016fcc05eaaab8886fb" + "reference": "afed28a7c2f7a2921c43a31dd8896446844bad98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lorisleiva/laravel-search-string/zipball/f1b1a8cfe95617b1a9b02016fcc05eaaab8886fb", - "reference": "f1b1a8cfe95617b1a9b02016fcc05eaaab8886fb", + "url": "https://api.github.com/repos/lorisleiva/laravel-search-string/zipball/afed28a7c2f7a2921c43a31dd8896446844bad98", + "reference": "afed28a7c2f7a2921c43a31dd8896446844bad98", "shasum": "" }, "require": { @@ -5459,9 +5459,15 @@ "description": "Generates database queries based on one unique string using a simple and customizable syntax.", "support": { "issues": "https://github.com/lorisleiva/laravel-search-string/issues", - "source": "https://github.com/lorisleiva/laravel-search-string/tree/v1.0.4" + "source": "https://github.com/lorisleiva/laravel-search-string/tree/v1.1.0" }, - "time": "2020-09-17T15:21:35+00:00" + "funding": [ + { + "url": "https://github.com/lorisleiva", + "type": "github" + } + ], + "time": "2021-01-29T10:07:03+00:00" }, { "name": "maatwebsite/excel", @@ -6209,16 +6215,16 @@ }, { "name": "nesbot/carbon", - "version": "2.43.0", + "version": "2.44.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "d32c57d8389113742f4a88725a170236470012e2" + "reference": "e6ef33cb1f67a4bed831ed6d0f7e156739a5d8cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d32c57d8389113742f4a88725a170236470012e2", - "reference": "d32c57d8389113742f4a88725a170236470012e2", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/e6ef33cb1f67a4bed831ed6d0f7e156739a5d8cd", + "reference": "e6ef33cb1f67a4bed831ed6d0f7e156739a5d8cd", "shasum": "" }, "require": { @@ -6234,7 +6240,7 @@ "phpmd/phpmd": "^2.9", "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^0.12.54", - "phpunit/phpunit": "^7.5 || ^8.0", + "phpunit/phpunit": "^7.5.20 || ^8.5.14", "squizlabs/php_codesniffer": "^3.4" }, "bin": [ @@ -6298,7 +6304,7 @@ "type": "tidelift" } ], - "time": "2020-12-17T20:55:32+00:00" + "time": "2021-01-26T20:46:41+00:00" }, { "name": "nikic/php-parser", @@ -8731,16 +8737,16 @@ }, { "name": "symfony/console", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "47c02526c532fb381374dab26df05e7313978976" + "reference": "d62ec79478b55036f65e2602e282822b8eaaff0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/47c02526c532fb381374dab26df05e7313978976", - "reference": "47c02526c532fb381374dab26df05e7313978976", + "url": "https://api.github.com/repos/symfony/console/zipball/d62ec79478b55036f65e2602e282822b8eaaff0a", + "reference": "d62ec79478b55036f65e2602e282822b8eaaff0a", "shasum": "" }, "require": { @@ -8799,7 +8805,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Console Component", + "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "keywords": [ "cli", @@ -8808,7 +8814,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.2.1" + "source": "https://github.com/symfony/console/tree/v5.2.2" }, "funding": [ { @@ -8824,20 +8830,20 @@ "type": "tidelift" } ], - "time": "2020-12-18T08:03:05+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/css-selector", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054" + "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/f789e7ead4c79e04ca9a6d6162fc629c89bd8054", - "reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/f65f217b3314504a1ec99c2d6ef69016bb13490f", + "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f", "shasum": "" }, "require": { @@ -8870,10 +8876,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony CssSelector Component", + "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.2.1" + "source": "https://github.com/symfony/css-selector/tree/v5.2.2" }, "funding": [ { @@ -8889,20 +8895,20 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:02:38+00:00" + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/debug", - "version": "v4.4.18", + "version": "v4.4.19", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "5dfc7825f3bfe9bb74b23d8b8ce0e0894e32b544" + "reference": "af4987aa4a5630e9615be9d9c3ed1b0f24ca449c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/5dfc7825f3bfe9bb74b23d8b8ce0e0894e32b544", - "reference": "5dfc7825f3bfe9bb74b23d8b8ce0e0894e32b544", + "url": "https://api.github.com/repos/symfony/debug/zipball/af4987aa4a5630e9615be9d9c3ed1b0f24ca449c", + "reference": "af4987aa4a5630e9615be9d9c3ed1b0f24ca449c", "shasum": "" }, "require": { @@ -8939,10 +8945,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Debug Component", + "description": "Provides tools to ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/debug/tree/v4.4.18" + "source": "https://github.com/symfony/debug/tree/v4.4.19" }, "funding": [ { @@ -8958,7 +8964,7 @@ "type": "tidelift" } ], - "time": "2020-12-10T16:34:26+00:00" + "time": "2021-01-27T09:09:26+00:00" }, { "name": "symfony/deprecation-contracts", @@ -9029,16 +9035,16 @@ }, { "name": "symfony/error-handler", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "59b190ce16ddf32771a22087b60f6dafd3407147" + "reference": "4fd4a377f7b7ec7c3f3b40346a1411e0a83f9d40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/59b190ce16ddf32771a22087b60f6dafd3407147", - "reference": "59b190ce16ddf32771a22087b60f6dafd3407147", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/4fd4a377f7b7ec7c3f3b40346a1411e0a83f9d40", + "reference": "4fd4a377f7b7ec7c3f3b40346a1411e0a83f9d40", "shasum": "" }, "require": { @@ -9075,10 +9081,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony ErrorHandler Component", + "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.2.1" + "source": "https://github.com/symfony/error-handler/tree/v5.2.2" }, "funding": [ { @@ -9094,20 +9100,20 @@ "type": "tidelift" } ], - "time": "2020-12-09T18:54:12+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "1c93f7a1dff592c252574c79a8635a8a80856042" + "reference": "4f9760f8074978ad82e2ce854dff79a71fe45367" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1c93f7a1dff592c252574c79a8635a8a80856042", - "reference": "1c93f7a1dff592c252574c79a8635a8a80856042", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4f9760f8074978ad82e2ce854dff79a71fe45367", + "reference": "4f9760f8074978ad82e2ce854dff79a71fe45367", "shasum": "" }, "require": { @@ -9160,10 +9166,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony EventDispatcher Component", + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.1" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.2" }, "funding": [ { @@ -9179,7 +9185,7 @@ "type": "tidelift" } ], - "time": "2020-12-18T08:03:05+00:00" + "time": "2021-01-27T10:36:42+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -9262,16 +9268,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d" + "reference": "262d033b57c73e8b59cd6e68a45c528318b15038" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/fa8f8cab6b65e2d99a118e082935344c5ba8c60d", - "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/262d033b57c73e8b59cd6e68a45c528318b15038", + "reference": "262d033b57c73e8b59cd6e68a45c528318b15038", "shasum": "" }, "require": { @@ -9301,10 +9307,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Filesystem Component", + "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.2.1" + "source": "https://github.com/symfony/filesystem/tree/v5.2.2" }, "funding": [ { @@ -9320,20 +9326,20 @@ "type": "tidelift" } ], - "time": "2020-11-30T17:05:38+00:00" + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/finder", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba" + "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/0b9231a5922fd7287ba5b411893c0ecd2733e5ba", - "reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba", + "url": "https://api.github.com/repos/symfony/finder/zipball/196f45723b5e618bf0e23b97e96d11652696ea9e", + "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e", "shasum": "" }, "require": { @@ -9362,10 +9368,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Finder Component", + "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.2.1" + "source": "https://github.com/symfony/finder/tree/v5.2.2" }, "funding": [ { @@ -9381,7 +9387,7 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:02:38+00:00" + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/http-client-contracts", @@ -9464,16 +9470,16 @@ }, { "name": "symfony/http-foundation", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "a1f6218b29897ab52acba58cfa905b83625bef8d" + "reference": "16dfa5acf8103f0394d447f8eea3ea49f9e50855" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a1f6218b29897ab52acba58cfa905b83625bef8d", - "reference": "a1f6218b29897ab52acba58cfa905b83625bef8d", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/16dfa5acf8103f0394d447f8eea3ea49f9e50855", + "reference": "16dfa5acf8103f0394d447f8eea3ea49f9e50855", "shasum": "" }, "require": { @@ -9514,10 +9520,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony HttpFoundation Component", + "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.2.1" + "source": "https://github.com/symfony/http-foundation/tree/v5.2.2" }, "funding": [ { @@ -9533,20 +9539,20 @@ "type": "tidelift" } ], - "time": "2020-12-18T10:00:10+00:00" + "time": "2021-01-27T11:19:04+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "1feb619286d819180f7b8bc0dc44f516d9c62647" + "reference": "831b51e9370ece0febd0950dd819c63f996721c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1feb619286d819180f7b8bc0dc44f516d9c62647", - "reference": "1feb619286d819180f7b8bc0dc44f516d9c62647", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/831b51e9370ece0febd0950dd819c63f996721c7", + "reference": "831b51e9370ece0febd0950dd819c63f996721c7", "shasum": "" }, "require": { @@ -9575,7 +9581,7 @@ "symfony/translation": "<5.0", "symfony/twig-bridge": "<5.0", "symfony/validator": "<5.0", - "twig/twig": "<2.4" + "twig/twig": "<2.13" }, "provide": { "psr/log-implementation": "1.0" @@ -9595,7 +9601,7 @@ "symfony/stopwatch": "^4.4|^5.0", "symfony/translation": "^4.4|^5.0", "symfony/translation-contracts": "^1.1|^2", - "twig/twig": "^2.4|^3.0" + "twig/twig": "^2.13|^3.0.4" }, "suggest": { "symfony/browser-kit": "", @@ -9626,10 +9632,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony HttpKernel Component", + "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.2.1" + "source": "https://github.com/symfony/http-kernel/tree/v5.2.2" }, "funding": [ { @@ -9645,20 +9651,20 @@ "type": "tidelift" } ], - "time": "2020-12-18T13:49:39+00:00" + "time": "2021-01-27T14:45:46+00:00" }, { "name": "symfony/mime", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "de97005aef7426ba008c46ba840fc301df577ada" + "reference": "37bade585ea100d235c031b258eff93b5b6bb9a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/de97005aef7426ba008c46ba840fc301df577ada", - "reference": "de97005aef7426ba008c46ba840fc301df577ada", + "url": "https://api.github.com/repos/symfony/mime/zipball/37bade585ea100d235c031b258eff93b5b6bb9a9", + "reference": "37bade585ea100d235c031b258eff93b5b6bb9a9", "shasum": "" }, "require": { @@ -9669,6 +9675,8 @@ "symfony/polyfill-php80": "^1.15" }, "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<4.4" }, "require-dev": { @@ -9702,14 +9710,14 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "A library to manipulate MIME messages", + "description": "Allows manipulating MIME messages", "homepage": "https://symfony.com", "keywords": [ "mime", "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.2.1" + "source": "https://github.com/symfony/mime/tree/v5.2.2" }, "funding": [ { @@ -9725,7 +9733,7 @@ "type": "tidelift" } ], - "time": "2020-12-09T18:54:12+00:00" + "time": "2021-01-25T14:08:25+00:00" }, { "name": "symfony/polyfill-ctype", @@ -10458,16 +10466,16 @@ }, { "name": "symfony/process", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd" + "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/bd8815b8b6705298beaa384f04fabd459c10bedd", - "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd", + "url": "https://api.github.com/repos/symfony/process/zipball/313a38f09c77fbcdc1d223e57d368cea76a2fd2f", + "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f", "shasum": "" }, "require": { @@ -10497,10 +10505,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Process Component", + "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.2.1" + "source": "https://github.com/symfony/process/tree/v5.2.2" }, "funding": [ { @@ -10516,20 +10524,20 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:03:37+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/routing", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "934ac2720dcc878a47a45c986b483a7ee7193620" + "reference": "348b5917e56546c6d96adbf21d7f92c9ef563661" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/934ac2720dcc878a47a45c986b483a7ee7193620", - "reference": "934ac2720dcc878a47a45c986b483a7ee7193620", + "url": "https://api.github.com/repos/symfony/routing/zipball/348b5917e56546c6d96adbf21d7f92c9ef563661", + "reference": "348b5917e56546c6d96adbf21d7f92c9ef563661", "shasum": "" }, "require": { @@ -10543,7 +10551,7 @@ "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.7", + "doctrine/annotations": "^1.10.4", "psr/log": "~1.0", "symfony/config": "^5.0", "symfony/dependency-injection": "^4.4|^5.0", @@ -10581,7 +10589,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Routing Component", + "description": "Maps an HTTP request to a set of configuration variables", "homepage": "https://symfony.com", "keywords": [ "router", @@ -10590,7 +10598,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.2.1" + "source": "https://github.com/symfony/routing/tree/v5.2.2" }, "funding": [ { @@ -10606,7 +10614,7 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:03:37+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/service-contracts", @@ -10689,16 +10697,16 @@ }, { "name": "symfony/string", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed" + "reference": "c95468897f408dd0aca2ff582074423dd0455122" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed", - "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed", + "url": "https://api.github.com/repos/symfony/string/zipball/c95468897f408dd0aca2ff582074423dd0455122", + "reference": "c95468897f408dd0aca2ff582074423dd0455122", "shasum": "" }, "require": { @@ -10741,7 +10749,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony String component", + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", "homepage": "https://symfony.com", "keywords": [ "grapheme", @@ -10752,7 +10760,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.2.1" + "source": "https://github.com/symfony/string/tree/v5.2.2" }, "funding": [ { @@ -10768,20 +10776,20 @@ "type": "tidelift" } ], - "time": "2020-12-05T07:33:16+00:00" + "time": "2021-01-25T15:14:59+00:00" }, { "name": "symfony/translation", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "a04209ba0d1391c828e5b2373181dac63c52ee70" + "reference": "c021864d4354ee55160ddcfd31dc477a1bc77949" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/a04209ba0d1391c828e5b2373181dac63c52ee70", - "reference": "a04209ba0d1391c828e5b2373181dac63c52ee70", + "url": "https://api.github.com/repos/symfony/translation/zipball/c021864d4354ee55160ddcfd31dc477a1bc77949", + "reference": "c021864d4354ee55160ddcfd31dc477a1bc77949", "shasum": "" }, "require": { @@ -10842,10 +10850,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Translation Component", + "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.2.1" + "source": "https://github.com/symfony/translation/tree/v5.2.2" }, "funding": [ { @@ -10861,7 +10869,7 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:03:37+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/translation-contracts", @@ -10943,16 +10951,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "13e7e882eaa55863faa7c4ad7c60f12f1a8b5089" + "reference": "72ca213014a92223a5d18651ce79ef441c12b694" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/13e7e882eaa55863faa7c4ad7c60f12f1a8b5089", - "reference": "13e7e882eaa55863faa7c4ad7c60f12f1a8b5089", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/72ca213014a92223a5d18651ce79ef441c12b694", + "reference": "72ca213014a92223a5d18651ce79ef441c12b694", "shasum": "" }, "require": { @@ -10968,7 +10976,7 @@ "ext-iconv": "*", "symfony/console": "^4.4|^5.0", "symfony/process": "^4.4|^5.0", - "twig/twig": "^2.4|^3.0" + "twig/twig": "^2.13|^3.0.4" }, "suggest": { "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", @@ -11004,14 +11012,14 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony mechanism for exploring and dumping PHP variables", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", "homepage": "https://symfony.com", "keywords": [ "debug", "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.2.1" + "source": "https://github.com/symfony/var-dumper/tree/v5.2.2" }, "funding": [ { @@ -11027,7 +11035,7 @@ "type": "tidelift" } ], - "time": "2020-12-16T17:02:19+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -11358,16 +11366,16 @@ }, { "name": "brianium/paratest", - "version": "v6.1.2", + "version": "v6.2.0", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "235db99a43401d68fdc4495b20b49291ea2e767d" + "reference": "9a94366983ce32c7724fc92e3b544327d4adb9be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/235db99a43401d68fdc4495b20b49291ea2e767d", - "reference": "235db99a43401d68fdc4495b20b49291ea2e767d", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/9a94366983ce32c7724fc92e3b544327d4adb9be", + "reference": "9a94366983ce32c7724fc92e3b544327d4adb9be", "shasum": "" }, "require": { @@ -11379,7 +11387,7 @@ "phpunit/php-code-coverage": "^9.2.5", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-timer": "^5.0.3", - "phpunit/phpunit": "^9.5.0", + "phpunit/phpunit": "^9.5.1", "sebastian/environment": "^5.1.3", "symfony/console": "^4.4 || ^5.2", "symfony/process": "^4.4 || ^5.2" @@ -11389,15 +11397,15 @@ "ekino/phpstan-banned-code": "^0.3.1", "ergebnis/phpstan-rules": "^0.15.3", "ext-posix": "*", - "infection/infection": "^0.18.2", - "phpstan/phpstan": "^0.12.58", - "phpstan/phpstan-deprecation-rules": "^0.12.5", - "phpstan/phpstan-phpunit": "^0.12.16", - "phpstan/phpstan-strict-rules": "^0.12.5", + "infection/infection": "^0.20.2", + "phpstan/phpstan": "^0.12.70", + "phpstan/phpstan-deprecation-rules": "^0.12.6", + "phpstan/phpstan-phpunit": "^0.12.17", + "phpstan/phpstan-strict-rules": "^0.12.9", "squizlabs/php_codesniffer": "^3.5.8", - "symfony/filesystem": "^5.2.0", + "symfony/filesystem": "^5.2.2", "thecodingmachine/phpstan-strict-rules": "^0.12.1", - "vimeo/psalm": "^4.3.1" + "vimeo/psalm": "^4.4.1" }, "bin": [ "bin/paratest" @@ -11432,9 +11440,9 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v6.1.2" + "source": "https://github.com/paratestphp/paratest/tree/v6.2.0" }, - "time": "2020-12-15T11:41:54+00:00" + "time": "2021-01-29T15:25:31+00:00" }, { "name": "doctrine/instantiator", From d7988a2c84365111cd07cc21582a97dad459fdd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Mon, 1 Feb 2021 11:03:42 +0300 Subject: [PATCH 007/121] version update 2.1.0 to 2.1.1 --- config/version.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/version.php b/config/version.php index 48b20d80c..f005373e8 100644 --- a/config/version.php +++ b/config/version.php @@ -10,15 +10,15 @@ return [ 'minor' => '1', - 'patch' => '0', + 'patch' => '1', 'build' => '', 'status' => 'Stable', - 'date' => '26-January-2020', + 'date' => '1-February-2020', - 'time' => '18:00', + 'time' => '11:00', 'zone' => 'GMT +3', From be2cbe79385915ff6b6078b9d4249dfcf8cd3f40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20=C3=87ak=C4=B1rel?= Date: Mon, 1 Feb 2021 16:39:21 +0300 Subject: [PATCH 008/121] Document color for modules --- app/Abstracts/View/Components/DocumentTemplate.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/Abstracts/View/Components/DocumentTemplate.php b/app/Abstracts/View/Components/DocumentTemplate.php index 798dcdbf8..499c924c9 100644 --- a/app/Abstracts/View/Components/DocumentTemplate.php +++ b/app/Abstracts/View/Components/DocumentTemplate.php @@ -3,12 +3,11 @@ namespace App\Abstracts\View\Components; use App\Abstracts\View\Components\Document as Base; -use App\Traits\DateTime; use App\Models\Common\Media; +use App\Traits\DateTime; use File; use Image; use Storage; -use Illuminate\Support\Str; abstract class DocumentTemplate extends Base { @@ -227,6 +226,11 @@ abstract class DocumentTemplate extends Base return $background_color; } + + if (!empty($alias = config('type.' . $type . '.alias'))) { + $type = $alias . '.' . str_replace('-', '_', $type); + } + $backgroundColor = setting($type . '.color', '#55588b'); return $backgroundColor; From ecdc442fd93bdb243d109d209a76db28185f9b3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20=C3=87ak=C4=B1rel?= Date: Mon, 1 Feb 2021 17:44:05 +0300 Subject: [PATCH 009/121] Change background color typo to be able to sent it from module views --- app/Abstracts/View/Components/DocumentShow.php | 12 ++++++------ app/Abstracts/View/Components/DocumentTemplate.php | 7 +++---- .../components/documents/show/content.blade.php | 2 +- .../components/documents/show/document.blade.php | 6 +++--- .../components/documents/template/classic.blade.php | 8 ++++---- .../components/documents/template/default.blade.php | 2 +- .../components/documents/template/modern.blade.php | 6 +++--- 7 files changed, 21 insertions(+), 22 deletions(-) diff --git a/app/Abstracts/View/Components/DocumentShow.php b/app/Abstracts/View/Components/DocumentShow.php index 49428a7a9..43a7ba824 100644 --- a/app/Abstracts/View/Components/DocumentShow.php +++ b/app/Abstracts/View/Components/DocumentShow.php @@ -3,15 +3,15 @@ namespace App\Abstracts\View\Components; use App\Abstracts\View\Components\Document as Base; -use App\Traits\DateTime; use App\Models\Common\Media; +use App\Traits\DateTime; use File; -use Image; -use Storage; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\URL; use Illuminate\Support\Str; +use Image; use Intervention\Image\Exception\NotReadableException; +use Storage; abstract class DocumentShow extends Base { @@ -28,7 +28,7 @@ abstract class DocumentShow extends Base public $logo; /** @var string */ - public $backGroundColor; + public $backgroundColor; /** @var string */ public $signedUrl; @@ -359,7 +359,7 @@ abstract class DocumentShow extends Base * @return void */ public function __construct( - $type, $document, $documentTemplate = '', $logo = '', $backGroundColor = '', string $signedUrl = '', $histories = [], $transactions = [], + $type, $document, $documentTemplate = '', $logo = '', $backgroundColor = '', string $signedUrl = '', $histories = [], $transactions = [], string $textRecurringType = '', string $textStatusMessage = '', string $textHistories = '', string $textHistoryStatus = '', string $routeButtonAddNew = '', string $routeButtonEdit = '', string $routeButtonDuplicate = '', string $routeButtonPrint = '', string $routeButtonPdf = '', string $routeButtonCancelled = '', string $routeButtonDelete = '', string $routeButtonCustomize = '', string $routeButtonSent = '', string $routeButtonReceived = '', string $routeButtonEmail = '', string $routeButtonPaid = '', @@ -387,7 +387,7 @@ abstract class DocumentShow extends Base $this->document = $document; $this->documentTemplate = $this->getDocumentTemplate($type, $documentTemplate); $this->logo = $this->getLogo($logo); - $this->backGroundColor = $backGroundColor; + $this->backgroundColor = $backgroundColor; $this->signedUrl = $this->getSignedUrl($type, $signedUrl); $this->histories = ($histories) ? $histories : $document->histories; diff --git a/app/Abstracts/View/Components/DocumentTemplate.php b/app/Abstracts/View/Components/DocumentTemplate.php index f1a0a3a56..befb69193 100644 --- a/app/Abstracts/View/Components/DocumentTemplate.php +++ b/app/Abstracts/View/Components/DocumentTemplate.php @@ -7,9 +7,8 @@ use App\Models\Common\Media; use App\Traits\DateTime; use File; use Illuminate\Support\Facades\Log; -use Illuminate\Support\Str; -use Intervention\Image\Exception\NotReadableException; use Image; +use Intervention\Image\Exception\NotReadableException; use Storage; abstract class DocumentTemplate extends Base @@ -29,7 +28,7 @@ abstract class DocumentTemplate extends Base public $logo; - public $backGroundColor; + public $backgroundColor; public $hideFooter; @@ -129,7 +128,7 @@ abstract class DocumentTemplate extends Base $this->document = $document; $this->documentTemplate = $this->getDocumentTemplate($type, $documentTemplate); $this->logo = $this->getLogo($logo); - $this->backGroundColor = $this->getBackgroundColor($type, $backgroundColor); + $this->backgroundColor = $this->getBackgroundColor($type, $backgroundColor); $this->hideFooter = $hideFooter; $this->hideCompanyLogo = $hideCompanyLogo; diff --git a/resources/views/components/documents/show/content.blade.php b/resources/views/components/documents/show/content.blade.php index f95e53860..653838972 100644 --- a/resources/views/components/documents/show/content.blade.php +++ b/resources/views/components/documents/show/content.blade.php @@ -84,7 +84,7 @@ :document="$document" document-template="{{ $documentTemplate }}" logo="{{ $logo }}" - back-ground-color="{{ $backGroundColor }}" + background-color="{{ $backgroundColor }}" hide-footer="{{ $hideFooter }}" hide-company-logo="{{ $hideCompanyLogo }}" hide-company-details="{{ $hideCompanyDetails }}" diff --git a/resources/views/components/documents/show/document.blade.php b/resources/views/components/documents/show/document.blade.php index 5114b1848..d814666e2 100644 --- a/resources/views/components/documents/show/document.blade.php +++ b/resources/views/components/documents/show/document.blade.php @@ -10,7 +10,7 @@ :document="$document" document-template="{{ $documentTemplate }}" logo="{{ $logo }}" - back-ground-color="{{ $backGroundColor }}" + background-color="{{ $backgroundColor }}" hide-footer="{{ $hideFooter }}" hide-company-logo="{{ $hideCompanyLogo }}" hide-company-details="{{ $hideCompanyDetails }}" @@ -53,7 +53,7 @@ :document="$document" document-template="{{ $documentTemplate }}" logo="{{ $logo }}" - back-ground-color="{{ $backGroundColor }}" + background-color="{{ $backgroundColor }}" hide-footer="{{ $hideFooter }}" hide-company-logo="{{ $hideCompanyLogo }}" hide-company-details="{{ $hideCompanyDetails }}" @@ -96,7 +96,7 @@ :document="$document" document-template="{{ $documentTemplate }}" logo="{{ $logo }}" - back-ground-color="{{ $backGroundColor }}" + background-color="{{ $backgroundColor }}" hide-footer="{{ $hideFooter }}" hide-company-logo="{{ $hideCompanyLogo }}" hide-company-details="{{ $hideCompanyDetails }}" diff --git a/resources/views/components/documents/template/classic.blade.php b/resources/views/components/documents/template/classic.blade.php index d16e3d77f..a454ff8c8 100644 --- a/resources/views/components/documents/template/classic.blade.php +++ b/resources/views/components/documents/template/classic.blade.php @@ -52,8 +52,8 @@
-
-
+
+
@@ -72,8 +72,8 @@
-
-
+
+
diff --git a/resources/views/components/documents/template/default.blade.php b/resources/views/components/documents/template/default.blade.php index 55ef2cd51..b760ef3cd 100644 --- a/resources/views/components/documents/template/default.blade.php +++ b/resources/views/components/documents/template/default.blade.php @@ -148,7 +148,7 @@
- + @stack('name_th_start') @if (!$hideItems || (!$hideName && !$hideDescription)) diff --git a/resources/views/components/documents/template/modern.blade.php b/resources/views/components/documents/template/modern.blade.php index 3ed0f774b..c1388878b 100644 --- a/resources/views/components/documents/template/modern.blade.php +++ b/resources/views/components/documents/template/modern.blade.php @@ -1,4 +1,4 @@ -
+
@stack('company_logo_start') @@ -138,7 +138,7 @@
- + @stack('name_th_start') @if (!$hideItems || (!$hideName && !$hideDescription)) @@ -244,7 +244,7 @@ @if (!$hideFooter) @if ($document->footer)
-
+
{!! nl2br($document->footer) !!}
From 26cf1f4b705254e54f826b656c63f6ff9cbc7d6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Mon, 1 Feb 2021 18:12:54 +0300 Subject: [PATCH 010/121] close #1820 Changed: Item can't be saved with zero or empty sale or purchase prices --- app/Http/Requests/Common/Item.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Requests/Common/Item.php b/app/Http/Requests/Common/Item.php index 5d44db3ca..b5a55fd41 100644 --- a/app/Http/Requests/Common/Item.php +++ b/app/Http/Requests/Common/Item.php @@ -31,8 +31,8 @@ class Item extends FormRequest return [ 'name' => 'required|string', - 'sale_price' => 'required|amount', - 'purchase_price' => 'required|amount', + 'sale_price' => 'required', + 'purchase_price' => 'required', 'tax_ids' => 'nullable|array', 'category_id' => 'nullable|integer', 'enabled' => 'integer|boolean', From 37cd1a920503e65b1bf3b844c37911b3fda85233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Tue, 2 Feb 2021 10:39:28 +0300 Subject: [PATCH 011/121] close #1825 Fixed: Unable to edit email templates --- .../js/components/AkauntingHtmlEditor.vue | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/resources/assets/js/components/AkauntingHtmlEditor.vue b/resources/assets/js/components/AkauntingHtmlEditor.vue index 95bf0af08..98bbe9c66 100644 --- a/resources/assets/js/components/AkauntingHtmlEditor.vue +++ b/resources/assets/js/components/AkauntingHtmlEditor.vue @@ -42,6 +42,7 @@ export default { data () { return { editor: null, + editorValue: this.value, content: null, lastHtmlValue: '', editorId: null, @@ -60,10 +61,10 @@ export default { } }); - if (this.value.length > 0) { - this.value = this.value.replace(new RegExp('


', 'g'), '

 

'); + if (this.editorValue.length > 0) { + this.editorValue = this.editorValue.replace(new RegExp('


', 'g'), '

 

'); - this.editor.pasteHTML(this.value); + this.editor.pasteHTML(this.editorValue); } let editorRef = this.$refs.editor; @@ -89,9 +90,9 @@ export default { return; } - this.value = this.value.replace(new RegExp('


', 'g'), '

 

'); + this.editorValue = this.editorValue.replace(new RegExp('


', 'g'), '

 

'); - this.editor.pasteHTML(this.value); + this.editor.pasteHTML(this.editorValue); }, randomString() { @@ -107,7 +108,7 @@ export default { }, async mounted () { - this.content = this.value; + this.content = this.editorValue; this.editorId = this.randomString(); this.toolbarId = this.randomString(); @@ -124,6 +125,12 @@ export default { } }, + editorValue (newVal) { + if (newVal !== this.content) { + this.pasteHTML(newVal); + } + }, + content (newVal) { this.$emit('input', newVal); }, From ecb772927bae70d253c5e7291d78cb1f062de726 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20=C3=87ak=C4=B1rel?= Date: Tue, 2 Feb 2021 14:48:16 +0300 Subject: [PATCH 012/121] Migrate only the module's migrations --- app/Listeners/Module/FinishInstallation.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Listeners/Module/FinishInstallation.php b/app/Listeners/Module/FinishInstallation.php index f1bcbeb8b..44ddf0a1f 100644 --- a/app/Listeners/Module/FinishInstallation.php +++ b/app/Listeners/Module/FinishInstallation.php @@ -20,7 +20,7 @@ class FinishInstallation { $module = module($event->alias); - Artisan::call('migrate', ['--force' => true]); + Artisan::call('module:migrate', ['alias' => $event->alias, '--force' => true]); $this->attachDefaultModulePermissions($module); } From 885b4c18fc13d8f2ee8a80db70e0a35af75072a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Tue, 2 Feb 2021 18:35:42 +0300 Subject: [PATCH 013/121] update extra modules --- app/Listeners/Module/InstallExtraModules.php | 4 +- app/Listeners/Module/UpdateExtraModules.php | 58 ++++++++++++++++++++ app/Providers/Event.php | 1 + 3 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 app/Listeners/Module/UpdateExtraModules.php diff --git a/app/Listeners/Module/InstallExtraModules.php b/app/Listeners/Module/InstallExtraModules.php index b56baf9ca..a17e538e1 100644 --- a/app/Listeners/Module/InstallExtraModules.php +++ b/app/Listeners/Module/InstallExtraModules.php @@ -24,9 +24,7 @@ class InstallExtraModules return; } - $module = module($event->alias); - - $extra_modules = $module->get('extra-modules'); + $extra_modules = module($event->alias)->get('extra-modules'); if (empty($extra_modules)) { return; diff --git a/app/Listeners/Module/UpdateExtraModules.php b/app/Listeners/Module/UpdateExtraModules.php new file mode 100644 index 000000000..886c654b8 --- /dev/null +++ b/app/Listeners/Module/UpdateExtraModules.php @@ -0,0 +1,58 @@ +alias)->get('extra-modules'); + + if (empty($extra_modules)) { + return; + } + + foreach ($extra_modules as $alias => $level) { + // Don't update if the module is "suggested" + if ($level != 'required') { + continue; + } + + $installed_version = module_version($alias); + $latest_version = Versions::latest($alias); + + // Skip if no update available + if (version_compare($installed_version, $latest_version, '>=')) { + continue; + } + + $company_id = session('company_id'); + + $command = "update {$alias} {$company_id} {$latest_version}"; + + if (true !== $result = Console::run($command)) { + $message = !empty($result) ? $result : trans('modules.errors.finish', ['module' => $alias]); + + logger($message); + + // Stop the propagation of event if the required module failed to update + return false; + } + } + } +} diff --git a/app/Providers/Event.php b/app/Providers/Event.php index 61979b159..260ee43d1 100644 --- a/app/Providers/Event.php +++ b/app/Providers/Event.php @@ -14,6 +14,7 @@ class Event extends Provider protected $listen = [ 'App\Events\Install\UpdateFinished' => [ 'App\Listeners\Update\CreateModuleUpdatedHistory', + 'App\Listeners\Module\UpdateExtraModules', 'App\Listeners\Update\V20\Version200', 'App\Listeners\Update\V20\Version203', 'App\Listeners\Update\V20\Version205', From 031f1a16a9940a9af46b231ec4db169d15200d6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Tue, 2 Feb 2021 18:38:13 +0300 Subject: [PATCH 014/121] skip core install/update --- app/Listeners/Module/InstallExtraModules.php | 4 ++++ app/Listeners/Module/UpdateExtraModules.php | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/app/Listeners/Module/InstallExtraModules.php b/app/Listeners/Module/InstallExtraModules.php index a17e538e1..1a6328ba2 100644 --- a/app/Listeners/Module/InstallExtraModules.php +++ b/app/Listeners/Module/InstallExtraModules.php @@ -24,6 +24,10 @@ class InstallExtraModules return; } + if ($event->alias == 'core') { + return; + } + $extra_modules = module($event->alias)->get('extra-modules'); if (empty($extra_modules)) { diff --git a/app/Listeners/Module/UpdateExtraModules.php b/app/Listeners/Module/UpdateExtraModules.php index 886c654b8..b4699d2de 100644 --- a/app/Listeners/Module/UpdateExtraModules.php +++ b/app/Listeners/Module/UpdateExtraModules.php @@ -21,6 +21,10 @@ class UpdateExtraModules return; } + if ($event->alias == 'core') { + return; + } + $extra_modules = module($event->alias)->get('extra-modules'); if (empty($extra_modules)) { From 3879e0cd989610729d09f0e109ddaee8dd1de253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Wed, 3 Feb 2021 17:43:47 +0300 Subject: [PATCH 015/121] check if extra module exists before update --- app/Listeners/Module/UpdateExtraModules.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/Listeners/Module/UpdateExtraModules.php b/app/Listeners/Module/UpdateExtraModules.php index b4699d2de..93c38ad1b 100644 --- a/app/Listeners/Module/UpdateExtraModules.php +++ b/app/Listeners/Module/UpdateExtraModules.php @@ -37,7 +37,13 @@ class UpdateExtraModules continue; } - $installed_version = module_version($alias); + $extra_module = module($alias); + + if (empty($extra_module)) { + continue; + } + + $installed_version = $extra_module->get('version'); $latest_version = Versions::latest($alias); // Skip if no update available From 74ee6fd0d4b62864f7abf02654da842358119f65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Wed, 3 Feb 2021 18:27:37 +0300 Subject: [PATCH 016/121] fixed user > company selected style --- public/css/custom.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/css/custom.css b/public/css/custom.css index 1f1771521..8ba877a0f 100644 --- a/public/css/custom.css +++ b/public/css/custom.css @@ -1465,6 +1465,6 @@ table .align-items-center td span.badge { display: none !important; } -#form-select-companies span.el-tag.el-tag--info.el-tag--small.el-tag--light.v-enter-to { +#form-select-companies span.el-tag.el-tag--info.el-tag--small.el-tag--light { margin-top: -50px !important; } From db11b0cf835a5ba0896418305c8edba8bd838181 Mon Sep 17 00:00:00 2001 From: Sevan Nerse Date: Fri, 5 Feb 2021 20:34:35 +0300 Subject: [PATCH 017/121] quarterly based reports should consider financial year start --- app/Abstracts/Report.php | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/app/Abstracts/Report.php b/app/Abstracts/Report.php index 7a060173d..e2fedbbae 100644 --- a/app/Abstracts/Report.php +++ b/app/Abstracts/Report.php @@ -16,6 +16,7 @@ use App\Traits\Charts; use App\Traits\DateTime; use App\Traits\SearchString; use App\Utilities\Chartjs; +use Carbon\CarbonPeriod; use Date; use Illuminate\Support\Str; @@ -388,15 +389,26 @@ abstract class Report switch ($this->getSetting('period')) { case 'yearly': $i = $date->copy()->format($this->getYearlyDateFormat()); + break; case 'quarterly': - $start = $date->copy()->startOfQuarter()->format($this->getQuarterlyDateFormat($this->year)); - $end = $date->copy()->endOfQuarter()->format($this->getQuarterlyDateFormat($this->year)); + $quarters = $this->getFiscalBaseQuarters($this->year); + + foreach ($quarters as $quarter) { + if ($date->lessThan($quarter->getStartDate()) || $date->greaterThan($quarter->getEndDate())) { + continue; + } + + $start = $quarter->getStartDate()->format($this->getQuarterlyDateFormat($this->year)); + $end = $quarter->getEndDate()->format($this->getQuarterlyDateFormat($this->year)); + } $i = $start . '-' . $end; + break; default: $i = $date->copy()->format($this->getMonthlyDateFormat($this->year)); + break; } @@ -502,4 +514,16 @@ abstract class Report ], ]; } + + private function getFiscalBaseQuarters($year) + { + $periods = []; + $fiscal_start = $this->getFinancialStart($year); + + for ($i = 0; $i < 4; $i++) { + $periods[] = CarbonPeriod::create($fiscal_start->copy()->addQuarters($i), $fiscal_start->copy()->addQuarters($i + 1)->subDay()); + } + + return $periods; + } } From c445d73765652b0fa122b0985d604b80a83dff85 Mon Sep 17 00:00:00 2001 From: Sevan Nerse Date: Fri, 5 Feb 2021 21:00:15 +0300 Subject: [PATCH 018/121] code refactoring --- app/Abstracts/Report.php | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/app/Abstracts/Report.php b/app/Abstracts/Report.php index e2fedbbae..57f4758de 100644 --- a/app/Abstracts/Report.php +++ b/app/Abstracts/Report.php @@ -278,44 +278,28 @@ abstract class Report case 'yearly': $start->addYear(); - $date = $this->getFormattedDate($start); - - $this->dates[$j] = $date; - - foreach ($this->tables as $table) { - $this->footer_totals[$table][$date] = 0; - } - $j += 11; break; case 'quarterly': $start->addQuarter(); - $date = $this->getFormattedDate($start); - - $this->dates[$j] = $date; - - foreach ($this->tables as $table) { - $this->footer_totals[$table][$date] = 0; - } - $j += 2; break; default: $start->addMonth(); - $date = $this->getFormattedDate($start); - - $this->dates[$j] = $date; - - foreach ($this->tables as $table) { - $this->footer_totals[$table][$date] = 0; - } - break; } + + $date = $this->getFormattedDate($start); + + $this->dates[] = $date; + + foreach ($this->tables as $table) { + $this->footer_totals[$table][$date] = 0; + } } } From 53e12abe386b678e0fdb069c89b546aab85e9c9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Sun, 7 Feb 2021 01:09:31 +0300 Subject: [PATCH 019/121] fixed #1835 --- database/factories/Transaction.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/database/factories/Transaction.php b/database/factories/Transaction.php index 91335775e..f5463f19f 100644 --- a/database/factories/Transaction.php +++ b/database/factories/Transaction.php @@ -27,6 +27,8 @@ class Transaction extends Factory $types = array_merge($this->getIncomeTypes(), $this->getExpenseTypes()); $type = $this->faker->randomElement($types); + $category_type = in_array($type, $this->getIncomeTypes()) ? 'income' : 'expense'; + return [ 'company_id' => $this->company->id, 'type' => $type, @@ -36,7 +38,7 @@ class Transaction extends Factory 'currency_code' => setting('default.currency'), 'currency_rate' => '1.0', 'description' => $this->faker->text(5), - 'category_id' => $this->company->categories()->type($type)->get()->random(1)->pluck('id')->first(), + 'category_id' => $this->company->categories()->$category_type()->get()->random(1)->pluck('id')->first(), 'reference' => $this->faker->text(5), 'payment_method' => setting('default.payment_method'), ]; From 94d3b5c020279483d3f674ceb4565feeea87630f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Sun, 7 Feb 2021 01:10:22 +0300 Subject: [PATCH 020/121] styling --- database/factories/Transaction.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/factories/Transaction.php b/database/factories/Transaction.php index f5463f19f..aab752572 100644 --- a/database/factories/Transaction.php +++ b/database/factories/Transaction.php @@ -25,7 +25,7 @@ class Transaction extends Factory public function definition() { $types = array_merge($this->getIncomeTypes(), $this->getExpenseTypes()); - $type = $this->faker->randomElement($types); + $type = $this->faker->randomElement($types); $category_type = in_array($type, $this->getIncomeTypes()) ? 'income' : 'expense'; From f399b8a4134e746da51e1cb0b021c2275d0f0ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Sun, 7 Feb 2021 01:12:57 +0300 Subject: [PATCH 021/121] more styling --- database/factories/Transaction.php | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/database/factories/Transaction.php b/database/factories/Transaction.php index aab752572..d5e9b3933 100644 --- a/database/factories/Transaction.php +++ b/database/factories/Transaction.php @@ -8,7 +8,7 @@ use App\Traits\Transactions; class Transaction extends Factory { - use Transactions; + use Transactions; /** * The name of the factory's corresponding model. @@ -29,19 +29,19 @@ class Transaction extends Factory $category_type = in_array($type, $this->getIncomeTypes()) ? 'income' : 'expense'; - return [ - 'company_id' => $this->company->id, - 'type' => $type, - 'account_id' => setting('default.account'), - 'paid_at' => $this->faker->dateTimeBetween(now()->startOfYear(), now()->endOfYear())->format('Y-m-d H:i:s'), - 'amount' => $this->faker->randomFloat(2, 1, 1000), - 'currency_code' => setting('default.currency'), - 'currency_rate' => '1.0', - 'description' => $this->faker->text(5), - 'category_id' => $this->company->categories()->$category_type()->get()->random(1)->pluck('id')->first(), - 'reference' => $this->faker->text(5), - 'payment_method' => setting('default.payment_method'), - ]; + return [ + 'company_id' => $this->company->id, + 'type' => $type, + 'account_id' => setting('default.account'), + 'paid_at' => $this->faker->dateTimeBetween(now()->startOfYear(), now()->endOfYear())->format('Y-m-d H:i:s'), + 'amount' => $this->faker->randomFloat(2, 1, 1000), + 'currency_code' => setting('default.currency'), + 'currency_rate' => '1.0', + 'description' => $this->faker->text(5), + 'category_id' => $this->company->categories()->$category_type()->get()->random(1)->pluck('id')->first(), + 'reference' => $this->faker->text(5), + 'payment_method' => setting('default.payment_method'), + ]; } /** From a770e678f93b821dc184c74d2072eaef8d46a3fa Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Sun, 7 Feb 2021 16:50:23 +0000 Subject: [PATCH 022/121] new crowdin translations --- resources/lang/az-AZ/accounts.php | 14 ++ resources/lang/az-AZ/auth.php | 41 ++++ resources/lang/az-AZ/bills.php | 56 ++++++ resources/lang/az-AZ/bulk_actions.php | 23 +++ resources/lang/az-AZ/companies.php | 14 ++ resources/lang/az-AZ/currencies.php | 19 ++ resources/lang/az-AZ/customers.php | 12 ++ resources/lang/az-AZ/dashboards.php | 11 ++ resources/lang/az-AZ/demo.php | 34 ++++ resources/lang/az-AZ/documents.php | 54 ++++++ resources/lang/az-AZ/email_templates.php | 50 +++++ resources/lang/az-AZ/errors.php | 23 +++ resources/lang/az-AZ/footer.php | 10 + resources/lang/az-AZ/general.php | 231 +++++++++++++++++++++++ resources/lang/az-AZ/header.php | 16 ++ resources/lang/az-AZ/import.php | 9 + resources/lang/az-AZ/install.php | 46 +++++ resources/lang/az-AZ/invoices.php | 60 ++++++ resources/lang/az-AZ/items.php | 8 + resources/lang/az-AZ/maintenance.php | 9 + resources/lang/az-AZ/messages.php | 37 ++++ resources/lang/az-AZ/modules.php | 83 ++++++++ resources/lang/az-AZ/notifications.php | 10 + resources/lang/az-AZ/pagination.php | 10 + resources/lang/az-AZ/passwords.php | 23 +++ resources/lang/az-AZ/reconciliations.php | 18 ++ resources/lang/az-AZ/recurring.php | 20 ++ resources/lang/az-AZ/reports.php | 31 +++ resources/lang/az-AZ/search_string.php | 18 ++ resources/lang/az-AZ/settings.php | 138 ++++++++++++++ resources/lang/az-AZ/taxes.php | 12 ++ resources/lang/az-AZ/transfers.php | 12 ++ resources/lang/az-AZ/updates.php | 15 ++ resources/lang/az-AZ/validation.php | 123 ++++++++++++ resources/lang/az-AZ/widgets.php | 23 +++ resources/lang/el-GR/settings.php | 11 +- resources/lang/th-TH/auth.php | 2 +- resources/lang/th-TH/currencies.php | 1 + resources/lang/th-TH/customers.php | 8 +- resources/lang/th-TH/demo.php | 38 +++- resources/lang/th-TH/errors.php | 23 +++ resources/lang/th-TH/import.php | 2 +- resources/lang/th-TH/maintenance.php | 9 + resources/lang/th-TH/passwords.php | 1 + resources/lang/th-TH/taxes.php | 5 +- resources/lang/th-TH/validation.php | 36 ++-- 46 files changed, 1411 insertions(+), 38 deletions(-) create mode 100644 resources/lang/az-AZ/accounts.php create mode 100644 resources/lang/az-AZ/auth.php create mode 100644 resources/lang/az-AZ/bills.php create mode 100644 resources/lang/az-AZ/bulk_actions.php create mode 100644 resources/lang/az-AZ/companies.php create mode 100644 resources/lang/az-AZ/currencies.php create mode 100644 resources/lang/az-AZ/customers.php create mode 100644 resources/lang/az-AZ/dashboards.php create mode 100644 resources/lang/az-AZ/demo.php create mode 100644 resources/lang/az-AZ/documents.php create mode 100644 resources/lang/az-AZ/email_templates.php create mode 100644 resources/lang/az-AZ/errors.php create mode 100644 resources/lang/az-AZ/footer.php create mode 100644 resources/lang/az-AZ/general.php create mode 100644 resources/lang/az-AZ/header.php create mode 100644 resources/lang/az-AZ/import.php create mode 100644 resources/lang/az-AZ/install.php create mode 100644 resources/lang/az-AZ/invoices.php create mode 100644 resources/lang/az-AZ/items.php create mode 100644 resources/lang/az-AZ/maintenance.php create mode 100644 resources/lang/az-AZ/messages.php create mode 100644 resources/lang/az-AZ/modules.php create mode 100644 resources/lang/az-AZ/notifications.php create mode 100644 resources/lang/az-AZ/pagination.php create mode 100644 resources/lang/az-AZ/passwords.php create mode 100644 resources/lang/az-AZ/reconciliations.php create mode 100644 resources/lang/az-AZ/recurring.php create mode 100644 resources/lang/az-AZ/reports.php create mode 100644 resources/lang/az-AZ/search_string.php create mode 100644 resources/lang/az-AZ/settings.php create mode 100644 resources/lang/az-AZ/taxes.php create mode 100644 resources/lang/az-AZ/transfers.php create mode 100644 resources/lang/az-AZ/updates.php create mode 100644 resources/lang/az-AZ/validation.php create mode 100644 resources/lang/az-AZ/widgets.php create mode 100644 resources/lang/th-TH/errors.php create mode 100644 resources/lang/th-TH/maintenance.php diff --git a/resources/lang/az-AZ/accounts.php b/resources/lang/az-AZ/accounts.php new file mode 100644 index 000000000..37b4b0103 --- /dev/null +++ b/resources/lang/az-AZ/accounts.php @@ -0,0 +1,14 @@ + 'Hesab Adı', + 'number' => 'Nömrə', + 'opening_balance' => 'Açılış Balansı', + 'current_balance' => 'Mövcud Balans', + 'bank_name' => 'Bank Adı', + 'bank_phone' => 'Bank Telefonu', + 'bank_address' => 'Bank Ünvanı', + 'default_account' => 'Varsayılan Hesab', + +]; diff --git a/resources/lang/az-AZ/auth.php b/resources/lang/az-AZ/auth.php new file mode 100644 index 000000000..92e6880a9 --- /dev/null +++ b/resources/lang/az-AZ/auth.php @@ -0,0 +1,41 @@ + 'Profil', + 'logout' => 'Çıxış', + 'login' => 'Giriş', + 'login_to' => 'Giriş üçün daxil olun', + 'remember_me' => 'Məni Xatırla', + 'forgot_password' => 'Şifrəmi unutdum', + 'reset_password' => 'Şifrəmi Yenilə', + 'enter_email' => 'E-poçt Ünvanınızı Daxil edin', + 'current_email' => 'Cari E-poçt', + 'reset' => 'Yenilə', + 'never' => 'heçbir zaman', + 'landing_page' => 'Açılış Səhifəsi', + + 'password' => [ + 'current' => 'Şifrə', + 'current_confirm' => 'Şifrə Təsdiqi', + 'new' => 'Yeni Şifrə', + 'new_confirm' => 'Yeni Şifrə Təsdiqi', + ], + + 'error' => [ + 'self_delete' => 'Xəta: Özünüzü silə bilməzsiniz!', + 'self_disable' => 'Xəta: Özünüzü deaktiv edə bilməzsiniz!', + 'no_company' => 'Xəta: Hesabınıza təyin edilmiş bir şirkət yoxdur. Zəhmət olmasa sistem inzibatçısı ilə əlaqə saxlayın.', + ], + + 'failed' => 'Bu istifadəçi bilgiləri bizim məlumatlarla uyğun gəlmir.', + 'disabled' => 'Bu hesab deaktiv edilib. Zəhmət olmasa sistem administratoru ilə əlaqə saxlayın.', + 'throttle' => 'Çox sayda giriş cəhdi. Zəhmət olmazsa: saniyələr içində yenidən cəhd edin.', + + 'notification' => [ + 'message_1' => 'Bu e-poçtu şifrə Yeniləma tələbinizə uyğun olaraq alırsınız.', + 'message_2' => 'Bir şifrə Yeniləma tələb etmədiyiniz təqdirdə heç bir şey etməyin.', + 'button' => 'Şifrə Yeniləma', + ], + +]; diff --git a/resources/lang/az-AZ/bills.php b/resources/lang/az-AZ/bills.php new file mode 100644 index 000000000..346ff07b9 --- /dev/null +++ b/resources/lang/az-AZ/bills.php @@ -0,0 +1,56 @@ + 'Faktura Nömrəsi', + 'bill_date' => 'Faktura Tarixi', + 'total_price' => 'Cəmi Məbləğ', + 'due_date' => 'Son Ödəniş Tarixi', + 'order_number' => 'Sifariş Nömrəsi', + 'bill_from' => 'Fakturanı Göndərən', + + 'quantity' => 'Ədəd', + 'price' => 'Qiymət', + 'sub_total' => 'Ara Cəmi', + 'discount' => 'Endirim', + 'item_discount' => 'Məhsul Endirimi', + 'tax_total' => 'Vergi Cəmi', + 'total' => 'Cəmi', + + 'item_name' => 'Məhsul Adı | Məhsul Adları', + + 'show_discount' => '%:discount Endirim', + 'add_discount' => 'Endirim Əlavə et', + 'discount_desc' => 'ara cəm üzərinə', + + 'payment_due' => 'Son Ödəmə Tarixi', + 'amount_due' => 'Ödənəcək Məbləğ', + 'paid' => 'Ödənmiş', + 'histories' => 'Keşmiş', + 'payments' => 'Ödənişlər', + 'add_payment' => 'Ödəniş Əlavə Et', + 'mark_paid' => 'Ödənildi İşarələ', + 'mark_received' => 'Qəbul edildi İşarələ', + 'mark_cancelled' => 'Ləğv Edildi İşarələ', + 'download_pdf' => 'PDF Yükə', + 'send_mail' => 'E-poçt Göndər', + 'create_bill' => 'Faktura Yarat', + 'receive_bill' => 'Fakturanı Qəbul et', + 'make_payment' => 'Ödəniş et', + + 'messages' => [ + 'draft' => 'Bu bir QARALAMA Fakturadır və qəbul edildikdən sonra qrafiklərdə əks olunacaq.', + + 'status' => [ + 'created' => ':date Tarixində Yaradıldı', + 'receive' => [ + 'draft' => 'Göndərilmədi', + 'received' => ':date Tarixində Qəbul edildi', + ], + 'paid' => [ + 'await' => 'Gözləyən Ödəniş', + ], + ], + ], + +]; diff --git a/resources/lang/az-AZ/bulk_actions.php b/resources/lang/az-AZ/bulk_actions.php new file mode 100644 index 000000000..628d4aa4d --- /dev/null +++ b/resources/lang/az-AZ/bulk_actions.php @@ -0,0 +1,23 @@ + 'Toplu Hərəkət|Toplu Hərəkətlər', + 'selected' => 'seçili', + 'no_action' => 'Heç bir əməliyyat yoxdur', + + 'message' => [ + 'duplicate' => 'Seşilmiş qeydi dublikat etməl istədiyinizdən əminsiniz?', + 'delete' => 'Seşilmiş qeydi silmək istədiyinizdən əminsiniz?|Seşilmiş qeydiləri silmək istədiyinizdən əminsiniz?', + 'export' => 'Seçilmiş qeydi ixrac etmək istədiyinizdən əminsiniz?|Seçilmiş qeydləri ixrac etmək istədiyinizdən əminsiniz?', + 'enable' => 'Seçilmiş qeydi aktiv etmək istədiyinizdən əminsiniz?|Seçilmiş qeydləri aktiv etmək istədiyinizdən əminsiniz?', + 'disable' => 'Seçilmiş qeydi deaktiv etmək istədiyinizdən əminsiniz?|Seçilmiş qeydləri deaktiv etmək istədiyinizdən əminsiniz?', + 'paid' => 'Seçilmiş fakturanı ödənildi olaraq işarələmək istədiyinizdən əminsiniz?|Seçilmiş fakturaları ödənildi olaraq işarələmək istədiyinizdən əminsiniz?', + 'sent' => 'Seçilmiş fakturanı göndərildi olaraq işarələmək istədiyinizdən əminsiniz?|Seçilmiş fakturaları göndərildi olaraq işarələmək istədiyinizdən əminsiniz?', + 'received' => 'Seçilmiş fakturanı qəbul edildi olaraq işarələmək istədiyinizdən əminsiniz?|Seçilmiş fakturaları qəbul edildi olaraq işarələmək istədiyinizdən əminsiniz?', + 'cancelled' => 'Seçilmiş fakturanı ləğv etmək istədiyinizdən əminsiniz?|Seçilmiş fakturaları ləğv etmək istədiyinizdən əminsiniz?', + 'reconcile' => 'Seçilmiş qeyd üçün razılaşmaq istədiyinizdən əminsiniz?|Seçilmiş qeydlər üçün razılaşmaq istədiyinizdən əminsiniz?', + 'unreconcile' => 'Seçilmiş qeyd üçün razılaşmaq istəmədiyinizdən əminsiniz?|Seçilmiş qeydlər üçün razılaşmaq istəmədiyinizdən əminsiniz?', + ], + +]; diff --git a/resources/lang/az-AZ/companies.php b/resources/lang/az-AZ/companies.php new file mode 100644 index 000000000..87fc5cfd2 --- /dev/null +++ b/resources/lang/az-AZ/companies.php @@ -0,0 +1,14 @@ + 'Domain Adı', + 'logo' => 'Logo', + + 'error' => [ + 'not_user_company' => 'Xəta: Bu şirkəti dəyişdirmə icazəniz yoxdur!', + 'delete_active' => 'Xəta: Mövcud şirkəti silə bilməzsiniz. Zəhmət olmazsa, əvvəlcə başqa bir şirkətə keçin!', + 'disable_active' => 'Xəta: Mövcud şirkəti deaktiv edə bilməzsiniz. Zəhmət olmazsa, əvvəlcə başqa bir şirkətə keçin!', + ], + +]; diff --git a/resources/lang/az-AZ/currencies.php b/resources/lang/az-AZ/currencies.php new file mode 100644 index 000000000..f8f887e4d --- /dev/null +++ b/resources/lang/az-AZ/currencies.php @@ -0,0 +1,19 @@ + 'Kod', + 'rate' => 'Məzənnə', + 'default' => 'Varsayılan Valyuta', + 'decimal_mark' => 'Onluq Ayırıcı', + 'thousands_separator' => 'Minlik Aıyrıcı', + 'precision' => 'Dəqiqlik', + 'conversion' => 'Valyuta konversiyası', + 'symbol' => [ + 'symbol' => 'İşarə', + 'position' => 'İşarənin Yeri', + 'before' => 'Məbləğdən Əvvəl', + 'after' => 'Məbləğdən Sonra', + ] + +]; diff --git a/resources/lang/az-AZ/customers.php b/resources/lang/az-AZ/customers.php new file mode 100644 index 000000000..8072f88a2 --- /dev/null +++ b/resources/lang/az-AZ/customers.php @@ -0,0 +1,12 @@ + 'Giriş Edə Bilər', + 'user_created' => 'İstifadəçi yarat', + + 'error' => [ + 'email' => 'E-poçt ünvanı istifadə edilir.', + ], + +]; diff --git a/resources/lang/az-AZ/dashboards.php b/resources/lang/az-AZ/dashboards.php new file mode 100644 index 000000000..57a4b66d7 --- /dev/null +++ b/resources/lang/az-AZ/dashboards.php @@ -0,0 +1,11 @@ + [ + 'not_user_dashboard' => 'Xəta: Bu idarəetmə panelini dəyişdirmə icazəniz yoxdur!', + 'delete_last' => 'Xəta: Son idarəetmə panelini silə bilməzsiniz. Əvvəlcə yeni bir panel yaradın!', + 'disable_last' => 'Xəta: Son idarəetmə panelini deaktiv edə bilməzsiniz. Əvvəlcə yeni bir panel yaradın!', + ], + +]; diff --git a/resources/lang/az-AZ/demo.php b/resources/lang/az-AZ/demo.php new file mode 100644 index 000000000..d36324f7d --- /dev/null +++ b/resources/lang/az-AZ/demo.php @@ -0,0 +1,34 @@ + [ + 'cash' => 'Nəğd', + ], + + 'categories' => [ + 'deposit' => 'Depozit', + 'sales' => 'Satış', + ], + + 'currencies' => [ + 'usd' => 'Amerika Dolları', + 'eur' => 'Avro', + 'gbp' => 'İngilis Sterlinqi', + 'try' => 'Türk Lirəsı', + ], + + 'offline_payments' => [ + 'cash' => 'Nəğd', + 'bank' => 'Bank Köçürməsi', + ], + + 'reports' => [ + 'income' => 'Kateqoriya əsaslı aylıq gəlir xülasəsi.', + 'expense' => 'Kateqoriya əsaslı aylıq xərc xülasəsi.', + 'income_expense' => 'Kateqoriya əsaslı aylıq gəlir-xərc balansı.', + 'tax' => 'Rüblük vergi xülasəsi.', + 'profit_loss' => 'Rüblük mənfəət və zərər hesabatı.', + ], + +]; diff --git a/resources/lang/az-AZ/documents.php b/resources/lang/az-AZ/documents.php new file mode 100644 index 000000000..f7fb358de --- /dev/null +++ b/resources/lang/az-AZ/documents.php @@ -0,0 +1,54 @@ + 'Sütünları Düzəlt', + 'empty_items' =>'Hər hansı bir məhsul/xidmət əlavə etmədiniz.', + + 'statuses' => [ + 'draft' => 'Qaralama', + 'sent' => 'Göndərildi', + 'expired' => 'Vaxtı Bitdi', + 'viewed' => 'Baxıldı', + 'approved' => 'Təsdiqləndi', + 'received' => 'Qəbul Edildi', + 'refused' => 'Rədd Edildi', + 'restored' => 'Bərpa edildi', + 'reversed' => 'Geri Qaytarıldı', + 'partial' => 'Qismən Ödəmə', + 'paid' => 'Ödənildi', + 'pending' => 'Gözləyən', + 'invoiced' => 'Faturalandırıldı', + 'overdue' => 'Gecikmiş', + 'unpaid' => 'Ödənilməmiş', + 'cancelled' => 'Ləğv Edildi', + 'voided' => 'Ləğv Edildi', + 'completed' => 'Tamamlandı', + 'shipped' => 'Göndərildi', + 'refunded' => 'Geri Qaytarıldı', + 'failed' => 'Uğursuz Oldu', + 'denied' => 'Rəddedildi', + 'processed' => 'İşləndi', + 'open' => 'Açıq', + 'closed' => 'Bağlı', + 'billed' => 'Fakturalandı', + 'delivered' => 'Çatdırıldı', + 'returned' => 'Qaytarıldı', + 'drawn' => 'Geri Çəkildi', + 'not_billed' => 'Fakturalanmadı', + 'issued' => 'Yaradıldı', + 'not_invoiced' => 'Fakturalanmadı', + 'confirmed' => 'Təsdiqləndi', + 'not_confirmed' => 'Təsdiqlənmədi', + ], + + 'messages' => [ + 'email_sent' => ':type e-poçtu göndərildi!', + 'marked_as' => ':type :status olaraq işarələndi!', + 'marked_sent' => ':type göndərildi olaraq işarələndi!', + 'marked_paid' => ':type ödənildi olaraq işarələndi!', + 'marked_viewed' => ':type baxıldı olaraq işarələndi!', + 'marked_cancelled' => ':type ləğv edildi olaraq işarələndi!', + 'marked_received' => ':type qəbul edildi olaraq işarələndi!', + ], +]; diff --git a/resources/lang/az-AZ/email_templates.php b/resources/lang/az-AZ/email_templates.php new file mode 100644 index 000000000..c0a189a33 --- /dev/null +++ b/resources/lang/az-AZ/email_templates.php @@ -0,0 +1,50 @@ + [ + 'subject' => '{invoice_number} faktura yaradıldı', + 'body' => 'Hörmətli {customer_name},

{invoice_number} nömrəli fakturanız hazırlandı.

Aşağıdakı linkə daxil olaraq faktura haqqında ətraflı məlumat əldə edə və online ödəniş edə bilərsiniz: {invoice_number}.

Hər hansı bir problemlə üzləşdikdə zəhmət olmazsa bizə yazın.

İşlərinizdə uğurlar,
{company_name}', + ], + + 'invoice_remind_customer' => [ + 'subject' => '{invoice_number} fakturası üçün gecikən ödəmə xatırlatması', + 'body' => 'Hörmətli {customer_name},

{invoice_number} nömrəli fkatura üçün ödənişiniz gecikdi.

Qeyd edilən faktura üçün {invoice_total} məbləğində vəsait ən son {invoice_due_date} tarixində ödənilməlidir.

Aşağıdakı linkə daxil olaraq faktura haqqında ətraflı məlumat əldə edə və online ödəniş edə bilərsiniz: {invoice_number}.

İşlərinizdə uğurlar,
{company_name}', + ], + + 'invoice_remind_admin' => [ + 'subject' => '{invoice_number} fakturanın ödənişi gecikib', + 'body' => 'Salam,

{customer_name} müştərinizə {invoice_number} fakturası üçün gecikmiş ödəniş xəbərdarlığı göndərildi.

Faktura məbləği {invoice_total} və son ödənişi {invoice_due_date} tarixində həyata keçirməli idi.

Aşağıdakı linkdən faktura haqqında ətraflı məlumat əldə edə bilərsiniz: {invoice_number}.

İşlərinizdə uğurlar,
{company_name}', + ], + + 'invoice_recur_customer' => [ + 'subject' => '{invoice_number} təkrarlanan faktura yaradıldı', + 'body' => 'Hörmətli {customer_name},

Ödəniş dövrünə uyğun olaraq {invoice_number} nömrəli fakturanız hazırlandı.

Aşağıdakı linkə daxil olaraq faktura haqqında ətraflı məlumat əldə edə və online ödəniş edə bilərsiniz: {invoice_number}.

Hər hansı bir problemlə üzləşdikdə zəhmət olmazsa bizə yazın.

İşlərinizdə uğurlar,
{company_name}', + ], + + 'invoice_recur_admin' => [ + 'subject' => '{invoice_number} təkrarlanan faktura yaradıldı', + 'body' => 'Salam,

{customer_name} müştərinizə ödəmə dövrünə uyğun olaraq {invoice_number} nömrəli faktura avtomatik olaraq yaradıldı.

Aşağıdakı linkdən faktura haqqında ətraflı məlumat əldə edə bilərsiniz: {invoice_number}.

İşlərinizdə uğurlar,
{company_name}', + ], + + 'invoice_payment_customer' => [ + 'subject' => '{invoice_number} faturasının ödemesi alındı', + 'body' => 'Hörmətli {customer_name},

Ödənişiniz üçün təşəkkür edirik. Ödənişiniz haqqında ətraflı məlumat:

-------------------------------------------------

Məbləğ: {transaction_total}
Tarix: {transaction_paid_date}
Faktura nömrəsi: {invoice_number}

-------------------------------------------------

Aşağıdakı linkdən faktura haqqında ətraflı məlumat əldə edə bilərsiniz: {invoice_number}.

Hər hansı bir problemlə üzləşdikdə zəhmət olmazsa bizə yazın.

İşlərinizdə uğurlar,
{company_name}', + ], + + 'invoice_payment_admin' => [ + 'subject' => '{invoice_number} faktura üçün ödəniş edildi', + 'body' => 'Salam,

{customer_name} mütəriniz {invoice_number} nömrəli faktura üçün ödəniş etdi.

Aşağıdakı linkdən faktura haqqında ətraflı məlumat əldə edə bilərsiniz: {invoice_number}.

İşlərinizdə uğurlar,
{company_name}', + ], + + 'bill_remind_admin' => [ + 'subject' => '{bill_number} xərc fakturası üçün ödəniş satırlatması', + 'body' => 'Salam,

{vendor_name} tədarükçünüzdən {bill_number} nömrəli xərc fakturası üçün ödəniş xatırlatmasıdır.

Fakturanın məbləği {bill_total} və son ödəniş {bill_due_date} tarixində edilməlidir.

Aşağıdakı linkdən faktura haqqında ətraflı məlumat əldə edə bilərsiniz: {bill_number}.

İşlərinizdə uğurlar,
{company_name}', + ], + + 'bill_recur_admin' => [ + 'subject' => '{bill_number} təkrarlanan xərc fakturası yaradıldı', + 'body' => 'Salam,

{vendor_name} tədarükçünüzün ödəniş dövrünə uyğun olaraq {bill_number} nömrəli xərc fakturası avtomatik olaraq yaradıldı.

Aşağıdakı linkdən faktura haqqında ətraflı məlumat əldə edə bilərsiniz: {bill_number}.

İşlərinizdə uğurlar,
{company_name}', + ], + +]; diff --git a/resources/lang/az-AZ/errors.php b/resources/lang/az-AZ/errors.php new file mode 100644 index 000000000..052d877bf --- /dev/null +++ b/resources/lang/az-AZ/errors.php @@ -0,0 +1,23 @@ + [ + '403' => 'Təəsüf ki, giriş qadağandır', + '404' => 'Təəsüf ki, səhifə tapılmadı', + '500' => 'Təəsüf ki, bir xəta baş verdi', + ], + + 'header' => [ + '403' => '403 Qadağandır', + '404' => '404 Tapılmadı', + '500' => '500 Server xətası', + ], + + 'message' => [ + '403' => 'Bu səhifəyə giriş qadağandır.', + '404' => 'Girməyə çalışdığınız səhifəni tapa bilmədik.', + '500' => 'Bu nasazlığı aradan qaldırmaq üçün dərhal işə başlayırıq.', + ], + +]; diff --git a/resources/lang/az-AZ/footer.php b/resources/lang/az-AZ/footer.php new file mode 100644 index 000000000..f7624f905 --- /dev/null +++ b/resources/lang/az-AZ/footer.php @@ -0,0 +1,10 @@ + 'Versiya', + 'powered' => 'Akaunting tərəfindən', + 'link' => 'https://akaunting.com/tr', + 'software' => 'Pulsuz Ön Muhasibat Proqramı', + +]; diff --git a/resources/lang/az-AZ/general.php b/resources/lang/az-AZ/general.php new file mode 100644 index 000000000..41e08380a --- /dev/null +++ b/resources/lang/az-AZ/general.php @@ -0,0 +1,231 @@ + 'İdarəetmə Paneli|İdarəetmə Panelləri', + 'items' => 'Məhsul / Xidmət|Məhsullar / Xidmətlər', + 'incomes' => 'Gəlir|Gəlirlər', + 'invoices' => 'Faktura|Fakturalar', + 'revenues' => 'Gəlir|Gəlirlər', + 'customers' => 'Müştəri|Müştərilər', + 'expenses' => 'Xərc|Xərclər', + 'bills' => 'Faktura|Fakturalar', + 'payments' => 'Ödəniş|Ödənişlər', + 'vendors' => 'Tədarükçü|Tədarükçülər', + 'accounts' => 'Hesab|Hesablar', + 'transfers' => 'Köçürmə|Köçürmələr', + 'transactions' => 'Əməliyyat|Əməliyyatlar', + 'reports' => 'Hesabat|Hesabatlar', + 'settings' => 'Tənzimləmə|Tənzimləmələr', + 'categories' => 'Kateqoriya|Kateqoriyalar', + 'currencies' => 'Valyuta|Valyutalar', + 'tax_rates' => 'Vergi Dərəcəsi|Vergi Dərəcələri', + 'users' => 'İstifadəçi|İstifadəçilər', + 'roles' => 'Tapşırıq|Tapşırıqlar', + 'permissions' => 'İcazə|İcazələr', + 'modules' => 'Tətbiq|Tətbiqlər', + 'companies' => 'Şirkət|Şirkətlər', + 'profits' => 'Qazanc|Qazanc', + 'taxes' => 'Vergi Dərəcəsi|Vergi Dərəcələri', + 'logos' => 'Logo|Logolar', + 'pictures' => 'Şəkil|Şəkillər', + 'types' => 'Növ|Növlər', + 'payment_methods' => 'Ödəniş Metodu|Ödəniş Metodları', + 'compares' => 'Gəlir və Xərc | Gəlirlər və Xərclər', + 'notes' => 'Açıqlama|Açıqlamalar', + 'totals' => 'Ümumi|Ümumilər', + 'languages' => 'Dil|Dillər', + 'updates' => 'Yeniləmə|Yeniləmələr', + 'numbers' => 'Nömrə|Nömrələr', + 'statuses' => 'Status|Status', + 'others' => 'Digər|Digərləri', + 'contacts' => 'Şəxs|Şəxslər', + 'reconciliations' => 'Razılaşma|Razılaşmalar', + 'developers' => 'Geliştirici|Geliştiriciler', + 'schedules' => 'Planlama|Planlamalar', + 'groups' => 'Grup|Gruplar', + 'charts' => 'Grafik|Grafikler', + 'localisations' => 'Lokallaşdırma|Lokallaşdırmalar', + 'defaults' => 'Varsayılan|Varsayılanlar', + 'widgets' => 'Komponent|Komponentlər', + 'templates' => 'Şablon|Şablonlar', + 'sales' => 'Satış|Satışlar', + 'purchases' => 'Alış|Alışlar', + + 'welcome' => 'Xoş Gəldiniz', + 'banking' => 'Bank', + 'general' => 'Ümumi', + 'no_records' => 'Qeyd yoxdur.', + 'date' => 'Tarix', + 'amount' => 'Məbləğ', + 'enabled' => 'Aktiv', + 'disabled' => 'Deaktiv', + 'yes' => 'Bəli', + 'no' => 'Xeyir', + 'na' => '- Yox -', + 'daily' => 'Gündəlik', + 'weekly' => 'Həftəlik', + 'monthly' => 'Aylıq', + 'quarterly' => 'Rüblük', + 'yearly' => 'İllik', + 'add' => 'Əlavə et', + 'add_new' => 'Yeni Əlavə et', + 'add_income' => 'Gəlir Əlavə et', + 'add_expense' => 'Xərc Əlavə et', + 'show' => 'Göstər', + 'edit' => 'Düəliş et', + 'delete' => 'Sil', + 'send' => 'Göndər', + 'share' => 'Paylaş', + 'download' => 'Yüklə', + 'delete_confirm' => ':name :type silmək istədiyinizdən əminsiniz?', + 'name' => 'Ad', + 'email' => 'E-poçt', + 'tax_number' => 'Vergi Nömrəsi', + 'phone' => 'Telefon', + 'address' => 'Ünvan', + 'website' => 'Veb Səhifə', + 'actions' => 'Əməliyyat', + 'description' => 'Açıqlama', + 'manage' => 'İdarəEt', + 'code' => 'Kod', + 'alias' => 'Ləqəb', + 'balance' => 'Balans', + 'reference' => 'İstinad', + 'attachment' => 'Fayl', + 'change' => 'Dəyişdir', + 'change_type' => ':type Dəyişdir', + 'switch' => 'Dəyişdir', + 'color' => 'Rəng', + 'save' => 'Yadda Saxla', + 'confirm' => 'Təsdiq', + 'cancel' => 'Ləğv', + 'loading' => 'Yüklənir...', + 'from' => 'Tərəfindən', + 'to' => 'Tərəfinə', + 'print' => 'Çap et', + 'download_pdf' => 'PDF Yükə', + 'customize' => 'Özəlləşdir', + 'search' => 'Axtar', + 'search_text' => 'Bu mətni axtar', + 'search_placeholder' => 'Axtarılacaq söz..', + 'filter' => 'Filtrlə', + 'help' => 'Kömək', + 'all' => 'Hamısı', + 'all_type' => 'Bütün :type', + 'upcoming' => 'Gələcək', + 'created' => 'Yaradıldı', + 'id' => 'ID', + 'more_actions' => 'Başqa Əməliyyat', + 'duplicate' => 'Dublikat', + 'unpaid' => 'Ödənməmiş', + 'paid' => 'Ödənmiş', + 'overdue' => 'Gecikmiş', + 'partially' => 'Qismən', + 'partially_paid' => 'Qismən Ödenmiş', + 'export' => 'İxrac et', + 'finish' => 'Bitdi', + 'wizard' => 'Sehirbaz', + 'skip' => 'Keç', + 'enable' => 'Aktiv et', + 'disable' => 'Deaktiv et', + 'select_all' => 'Hamısını seç', + 'unselect_all' => 'Seçilmişləri təmizlə', + 'created_date' => 'Yaranma Tarixi', + 'period' => 'Dövr', + 'frequency' => 'Tezlik', + 'start' => 'Başlat', + 'end' => 'Bitir', + 'clear' => 'Təmizlə', + 'difference' => 'Fərq', + 'footer' => 'Alt məlumat', + 'start_date' => 'Başlanğıc Tarixi', + 'end_date' => 'Bitiş Tarixi', + 'basis' => 'Əsas', + 'accrual' => 'Hesablama', + 'cash' => 'Nəğd', + 'group_by' => 'Qruplandır', + 'accounting' => 'Mühasibat', + 'sort' => 'Sıralama', + 'width' => 'Eni', + 'month' => 'Ay', + 'year' => 'İl', + 'type_item_name' => 'Məhsul/Xidmət adını yazın', + 'no_data' => 'Məlumat yoxdur', + 'no_matching_data' => 'Uyğun gələn məlumat yoxdur', + 'clear_cache' => 'Keşi təmizləmək', + 'go_to_dashboard' => 'İdarəetmə Panelinə Get', + 'is' => 'bərabər', + 'isnot' => 'deyil', + 'recurring_and_more' => 'Təkrarlanan və daha çox...', + 'due_on' => 'Son Tarix', + 'amount_due' => 'Qalıq Məbləğ', + + 'card' => [ + 'cards' => 'Kart|Kartlar', + 'name' => 'Kart Sahibi', + 'number' => 'Kart Nömrəsi', + 'expiration_date' => 'Qüvvədə olma tarixi', + 'cvv' => 'CVV Nömrəsi', + 'save' => 'Kartı Yadda Saxla', + ], + + 'title' => [ + 'new' => 'Yeni :type', + 'edit' => ':type Düzəliş et', + 'delete' => ':type Sil', + 'create' => ':type Yarat', + 'send' => ':type Göndər', + 'get' => ':type Gətir', + 'add' => ':type Əlavə et', + 'manage' => ':type İdarə et', + ], + + 'form' => [ + 'enter' => ':field Daxil edin', + 'select' => [ + 'field' => '- :field Seçin -', + 'file' => 'Fayl Seçin', + ], + 'add' => ':field Əlavə et', + 'add_an' => ':field Əlavə et', + 'add_new' => ':field Yenisini əlavə et', + 'edit' => ':field Düzəliş et', + 'contact_edit' => ':contact_name :field əlavə et', + 'drop_file' => 'Yükləmək üçün faylları buraya sürükləyin', + 'choose' => ':field Seç', + 'choose_different' => 'Başqa bir :field seç', + 'choose_file' => 'Fayl Seçin', + 'no_file_selected' => 'Fayl seçilməyib...', + ], + + 'placeholder' => [ + 'search' => 'Axtarılacaq söz...', + 'search_and_filter' => 'Qeydləri axtar və ya filtrlə', + 'contact_search' => ':type adı yazın', + 'item_search' => 'Məhsul/Xidmət adı yazın', + ], + + 'date_range' => [ + 'today' => 'Bugün', + 'yesterday' => 'Dünən', + 'last_days' => 'Son :day Gün', + 'this_month' => 'Bu Ay', + 'last_month' => 'Son Ay', + ], + + 'empty' => [ + 'documentation' => 'Daha çox məlumat üçün səndləşmə səhifəsini yoxlaya bilərsiniz.', + 'items' => 'Maddələr məhsullar və ya xidmətlər ola bilər. Gəlir/xərc fakturası yaradarkən qiymət, vergi kimi sahələri avtomatik doldurmaq üçün maddələrdən istifadə edə bilərsiniz..', + 'invoices' => 'Faturalar birdəfəlik və ya təkrar ola bilər. Müştərilərinizə faktura göndərərək, onlayn ödəniş etmələrini təmin edə bilərsiniz.', + 'revenues' => 'Gəlir reallaşdırılan qazanc əməliyyatıdır. Tamamilə müstəqil (depozit kimi) ola bilər və ya gəlir fakturasına bağlana bilər.', + 'customers' => 'Gəlir fakturası yaratmaq üşün müştəri olması məcburidir. Giriş icazəsi verdiyiniz müştərilər panelə girib balanslarına baxa bilərlər.', + 'bills' => 'Faturalar birdəfəlik və ya təkrar ola bilər. Tədarükçülərdən aldığınız məhsul və xidmətləri asanlıqla izləyə bilərsiniz.', + 'payments' => 'Ödəniş, həyata keçirilmiş bir xərc əməliyyatıdır. Tamamilə müstəqil (yemək bileti) ola bilər və ya xərc fakturasına bağlana bilər.', + 'vendors' => 'Xərc fakturası yaratmaq üşün tədarükçü olması məcburidir. Onalra olan borc balansınıza baxa vəya filtirləyə bilərsiniz.', + 'transfers' => 'Köçürmələr, hesablar arası pul köçürməsi üçün istifadə olunur. Hesabların valyutaları eyni vəya fərqli ola bilər.', + 'taxes' => 'Vergilər, gəlir və ya xərc fakturalarına əlavə xərclər əlavə etmək üçün istifadə olunur. Maliyyə hesabatlarınız da müvafiq olaraq təsir göstərir.', + 'reconciliations' => 'Bank hesabları və mühasibat qeydlərinin düzgün olub olmadığını yoxlamaq üçün bank uzlaşması aparılır.', + ], + +]; diff --git a/resources/lang/az-AZ/header.php b/resources/lang/az-AZ/header.php new file mode 100644 index 000000000..c48791092 --- /dev/null +++ b/resources/lang/az-AZ/header.php @@ -0,0 +1,16 @@ + 'Dil Dəyişdir', + 'last_login' => 'Son giriş :time', + 'notifications' => [ + 'counter' => '{0} Bildiriş yox|{1} :count bildirişiniz var|[2,*] :count bildirişiniz var', + 'overdue_invoices' => '{1} :count Gecikmiş Faktura Mövcuddur |[2,*] :count Gecikmiş Faktura Mövcuddur', + 'upcoming_bills' => '{1} :count Yaxınlaşan Faktura Mövcuddur|[2,*] :count Yaxınlaşan Faktura Mövcuddur', + 'view_all' => 'Hamısını göstər' + ], + 'docs_link' => 'https://akaunting.com/docs', + 'support_link' => 'https://akaunting.com/support', + +]; diff --git a/resources/lang/az-AZ/import.php b/resources/lang/az-AZ/import.php new file mode 100644 index 000000000..4455e4fb1 --- /dev/null +++ b/resources/lang/az-AZ/import.php @@ -0,0 +1,9 @@ + 'İdxal et', + 'title' => ':type İdxal et', + 'message' => 'İcazə veriəln fayl tipləri: XLS, XLSX. Lütfen, örnek dosyayı indirin.', + +]; diff --git a/resources/lang/az-AZ/install.php b/resources/lang/az-AZ/install.php new file mode 100644 index 000000000..4e8819c52 --- /dev/null +++ b/resources/lang/az-AZ/install.php @@ -0,0 +1,46 @@ + 'İləri', + 'refresh' => 'Yenilə', + + 'steps' => [ + 'requirements' => 'Problemləri aradan qaldırmaq üçün hosting firması ilə əlaqə saxlayın!', + 'language' => 'Adım 1/3 : Dil Seçimi', + 'database' => 'Adım 2/3 : Verilənlər bazası parametrləri', + 'settings' => 'Adım 3/3 : Şirkət və Menecer məlumatları', + ], + + 'language' => [ + 'select' => 'Dil Seçin', + ], + + 'requirements' => [ + 'enabled' => ':feature aktiv olmalıdır!', + 'disabled' => ':feature deaktiv edilməlidir!', + 'extension' => ':extension əlavəsi quraşdırılmaslıdır!', + 'directory' => ':directory qovluq yazılabilir olmalıdır!', + 'executable' => 'PHP CLI çalıştırıcısı tapılması vəya işlək deyil vəya versiyası :php_version və üstü deyil. Zəhmət olmazsa, hosting firmanızdan PHP_BINARY vəya PHP_PATH mühit dəyərlərinin düzgün tənzimləməsini istəyin.', + ], + + 'database' => [ + 'hostname' => 'Server', + 'username' => 'İstifadçi adı', + 'password' => 'Şifrə', + 'name' => 'Verilənlər bazası', + ], + + 'settings' => [ + 'company_name' => 'Şirkət Adı', + 'company_email' => 'Şirkət e-Poçtu', + 'admin_email' => 'İnzibatçı e-Poçtu', + 'admin_password' => 'İnzibatçı Şifresi', + ], + + 'error' => [ + 'php_version' => 'Xəta: HTTP ve CLI üçün PHP versiyası :php_version və üstü olmalı olduğunu hosting firmanıza bildirin.', + 'connection' => 'Xəta: Verilənlər bazasına bağlana bilmədik! Zəhmət olmazsa verilənlər bazası məlumatlarını yoxlayın.', + ], + +]; diff --git a/resources/lang/az-AZ/invoices.php b/resources/lang/az-AZ/invoices.php new file mode 100644 index 000000000..19302b002 --- /dev/null +++ b/resources/lang/az-AZ/invoices.php @@ -0,0 +1,60 @@ + 'Faktura Nömrəsi', + 'invoice_date' => 'Faktura Tarixi', + 'total_price' => 'Cəmi Məbləğ', + 'due_date' => 'Son Tarixi', + 'order_number' => 'Sifariş Nömrəsi', + 'bill_to' => 'Fakturalanacak Şəxs/Qurum', + + 'quantity' => 'Ədəd', + 'price' => 'Qiymət', + 'sub_total' => 'Ara Cəmi', + 'discount' => 'Endirim', + 'item_discount' => 'Məhsul Endirimi', + 'tax_total' => 'Vergi Cəmi', + 'total' => 'Cəmi', + + 'item_name' => 'Məhsul Adı | Məhsul Adları', + + 'show_discount' => '%:discount Endirim', + 'add_discount' => 'Endirim əlavə et', + 'discount_desc' => 'ara cəm üzərindən', + + 'payment_due' => 'Son Ödəniş Tarixi', + 'paid' => 'Ödənmiş', + 'histories' => 'Keçmiş', + 'payments' => 'Ödənişlər', + 'add_payment' => 'Ödəniş Əlavə et', + 'mark_paid' => 'Ödəndi İşarələ', + 'mark_sent' => 'Göndərildi İşarələ', + 'mark_viewed' => 'Baxıldı İşarələ', + 'mark_cancelled' => 'Ləğv edildi işarələ', + 'download_pdf' => 'PDF Yüklə', + 'send_mail' => 'Email Göndər', + 'all_invoices' => ' Bütün Fakturalara baxmaq üçün giriş edin', + 'create_invoice' => 'Faktura Yarat', + 'send_invoice' => 'Fakturanı Göndər', + 'get_paid' => 'Ödəniş qəbul et', + 'accept_payments' => 'Online Ödəniş qəbul et', + + 'messages' => [ + 'email_required' => 'Bu müştəri üçün e-poçt ünvanı yoxdur!', + 'draft' => 'Bu bir QARALAMA Fakturadır və göndərildikdən sonra grafiklərdə əks olunacaq.', + + 'status' => [ + 'created' => ':date tarixində yaradıldı', + 'viewed' => 'Baxıldı', + 'send' => [ + 'draft' => 'Göndərilmədi', + 'sent' => ':date Tarixində Göndərildi', + ], + 'paid' => [ + 'await' => 'Ödəniş Gözlənilir', + ], + ], + ], + +]; diff --git a/resources/lang/az-AZ/items.php b/resources/lang/az-AZ/items.php new file mode 100644 index 000000000..6aeee561b --- /dev/null +++ b/resources/lang/az-AZ/items.php @@ -0,0 +1,8 @@ + 'Satış Qiyməti', + 'purchase_price' => 'Alış Qiyməti', + +]; diff --git a/resources/lang/az-AZ/maintenance.php b/resources/lang/az-AZ/maintenance.php new file mode 100644 index 000000000..05123e714 --- /dev/null +++ b/resources/lang/az-AZ/maintenance.php @@ -0,0 +1,9 @@ + 'Texniki işlər gedir', + + 'message' => 'Üzr istəyirik, texniki işlərlə əlaqədar bağlanmışıq. Zəhmət olmasa daha sonra yenə cəhd edin!', + +]; diff --git a/resources/lang/az-AZ/messages.php b/resources/lang/az-AZ/messages.php new file mode 100644 index 000000000..1dcca8cd6 --- /dev/null +++ b/resources/lang/az-AZ/messages.php @@ -0,0 +1,37 @@ + [ + 'added' => ':type əlavə edildi!', + 'updated' => ':type yeniləndi!', + 'deleted' => ':type silindi!', + 'duplicated' => ':type dublikat edildi!', + 'imported' => ':type idxal edildi!', + 'exported' => ':type ixrac edildi!', + 'enabled' => ':type aktiv edildi!', + 'disabled' => ':type deaktiv edildi!', + ], + + 'error' => [ + 'over_payment' => 'Xəta: Ödəniş əlavə edilmədi! Daxil etdiyiniz :amount cəmi keçir.', + 'not_user_company' => 'Xəta: Bu şirkəti idarə etmə icazəniz yoxdur!', + 'customer' => 'Xəta: İstifadəçi yaradılmadı. :name bu e-poçt ünvanı istifadə edilir.', + 'no_file' => 'Xəta: Fayl seçilmədi!', + 'last_category' => 'Xəta: Son :type kateqoriyasını silə bilməzsiniz!', + 'change_type' => 'Xəta: Növ dəyişdirilə bilməz çünki :text əlaqə mövcuddur!', + 'invalid_apikey' => 'Xəta: Daxil etdiyiniz API açar qüvvədə deyil!', + 'import_column' => 'Xəta: :message Səhifə adı: :sheet. Sətir nömrəsi: :line.', + 'import_sheet' => 'Xəta: Səyfə adı qüvvədə deyil. Zəhmət olmazsa, nümunə sənədinə baxın.', + ], + + 'warning' => [ + 'deleted' => 'Xəbərdarlıq: :name silinə bilməz çünki :text ile əlaqəlidir.', + 'disabled' => 'Xəbərdarlıq: :name deaktiv edilə bilməz çünki :text ilə əlaqəlidir.', + 'reconciled_tran' => 'Xəbərdarlıq: Əməliyyat razılaşdırılmış olunduğu üçün dəyişdirilə / silinə bilməz.', + 'reconciled_doc' => 'Xəbərdarlıq: :type razılaşdırılmış əməliyyatlar apardığı üçün dəyişdirilə / silinə bilməz.', + 'disable_code' => 'Xəbərdarlıq: :name deaktiv edilə vəya valyuta dəyişdirilə bilməz çünki :text ilə əlaqəlidir.', + 'payment_cancel' => 'Xəbərdarlıq: :method ödənişini ləğv etdiniz!', + ], + +]; diff --git a/resources/lang/az-AZ/modules.php b/resources/lang/az-AZ/modules.php new file mode 100644 index 000000000..0a440a9fe --- /dev/null +++ b/resources/lang/az-AZ/modules.php @@ -0,0 +1,83 @@ + 'API Açarı', + 'my_apps' => 'Tətbiqlərim', + 'pre_sale' => 'Ön-Satış', + 'top_paid' => 'Populyar pullu', + 'new' => 'Yeni', + 'top_free' => 'Populyar Pulsuz', + 'free' => 'Pulsuz', + 'install' => 'Yüklə', + 'buy_now' => 'İndi satın al', + 'get_api_key' => 'API Açar almaq üçün buraya vurun.', + 'no_apps' => 'Bu kateqoriyada hələ heç bir tətbiq yoxdur.', + 'become_developer' => 'Bir geliştiricisiniz? Buraya Akaunting üçün tətbiqetmələr inkişaf etdirməyi öyrənib və dərhal pul qazanmağa başlayacağınızı bilərsiniz!', + 'recommended_apps' => 'Məsləhət Görülən tətbiqlər', + + 'about' => 'Haqqında', + + 'added' => 'Əlavə Etmə Tarixi', + 'updated' => 'Yeniləmə Tarixi', + 'compatibility' => 'Uyğunluq', + 'documentation' => 'Sənədlər', + 'view' => 'Bax', + 'back' => 'Geri', + + 'installed' => ':module yükləndi', + 'uninstalled' => ':module silindi', + //'updated' => ':module updated', + 'enabled' => ':module aktiv et', + 'disabled' => ':module deaktiv edildi', + + 'tab' => [ + 'installation' => 'Yükləmə', + 'faq' => 'SSS', + 'changelog' => 'Dəyişikliklər', + 'reviews' => 'Rəylər', + ], + + 'installation' => [ + 'header' => 'Tətbiq Yükəmə', + 'download' => ':module yüklənir', + 'unzip' => ':module zipdən çıxardılır', + 'file_copy' => ':module fayllar kopyalanır', + 'finish' => ':module qurulma tamamlanır', + 'redirect' => ':module quruldu, yeniləmə səhifəsinə yönləndirilirsiniz', + 'install' => ':module qurulur', + ], + + 'errors' => [ + 'download' => ':module yüklənə bilmədi', + 'zip' => ':module üçün zip faylı yaradıldı', + 'unzip' => ':module zipdən çıxarılması', + 'file_copy' => ':module faylları kopyalana bilmədi', + 'finish' => ':module qurulum tamamlana bilmədi', + ], + + 'badge' => [ + 'installed' => 'Qurulmuş', + 'pre_sale' => 'Ön-Satış', + ], + + 'button' => [ + 'uninstall' => 'Sil', + 'disable' => 'Deaktiv et', + 'enable' => 'Aktiv', + ], + + 'my' => [ + 'purchased' => 'Satın Alınmış', + 'installed' => 'Qurulu', + ], + + 'reviews' => [ + 'button' => [ + 'add' => 'Rəy əlavə et' + ], + + 'na' => 'Hər hansı bir rəy yoxdur.' + ], + +]; diff --git a/resources/lang/az-AZ/notifications.php b/resources/lang/az-AZ/notifications.php new file mode 100644 index 000000000..0562cc3bc --- /dev/null +++ b/resources/lang/az-AZ/notifications.php @@ -0,0 +1,10 @@ + 'Ayyy səni!', + 'hello' => 'Salam!', + 'salutation' => 'Hörmətlə,
:company_name', + 'subcopy' => '":text" düyməyə vura bilmirsinizsə, aşaöıdakı linki kopyalayib browserə köçürün: [:url](:url)', + +]; diff --git a/resources/lang/az-AZ/pagination.php b/resources/lang/az-AZ/pagination.php new file mode 100644 index 000000000..321c86f37 --- /dev/null +++ b/resources/lang/az-AZ/pagination.php @@ -0,0 +1,10 @@ + 'Geri', + 'next' => 'İləri', + 'showing' => ':total qeyddən :first-:last arası.', + 'page' => 'səhifə başına.', + +]; diff --git a/resources/lang/az-AZ/passwords.php b/resources/lang/az-AZ/passwords.php new file mode 100644 index 000000000..884a9ebf6 --- /dev/null +++ b/resources/lang/az-AZ/passwords.php @@ -0,0 +1,23 @@ + 'Parollar ən azı altı simvoldan ibarət olmalı və təsdiqlə uyğun olmalıdır.', + 'reset' => 'Şifrəniz sıfırlandı!', + 'sent' => 'Şifrə sıfırlama linkinizi elektron poçtla göndərdik!', + 'token' => 'Şifrə sıfırlama ünvanı/kodu etibarsızdır.', + 'user' => "Bu e-poçt ünvanı ilə qeydiyyatdan keçmiş bir üzv yoxdur.", + 'throttle' => 'Zəhmət olmazsa, yenidən cəhd etmədən əvvəl gözləyin.', + +]; diff --git a/resources/lang/az-AZ/reconciliations.php b/resources/lang/az-AZ/reconciliations.php new file mode 100644 index 000000000..ef4fa97c5 --- /dev/null +++ b/resources/lang/az-AZ/reconciliations.php @@ -0,0 +1,18 @@ + 'Razılaşma', + 'unreconcile' => 'Razılaşmanı ləğv et', + 'reconciled' => 'Razılaşdırıldı', + 'opening_balance' => 'Açılış Balansı', + 'closing_balance' => 'Bağlanma Balansı', + 'unreconciled' => 'Razılaşma baş tutmadı', + 'transactions' => 'Əməliyyatlar', + 'start_date' => 'Başlanğıc Tarixi', + 'end_date' => 'Bitiş Tarixi', + 'cleared_amount' => 'Təmizlənmiş Məbləğ', + 'deposit' => 'Əmanət edildi', + 'withdrawal' => 'Çıxarılan', + +]; diff --git a/resources/lang/az-AZ/recurring.php b/resources/lang/az-AZ/recurring.php new file mode 100644 index 000000000..549ebae38 --- /dev/null +++ b/resources/lang/az-AZ/recurring.php @@ -0,0 +1,20 @@ + 'Təkrarlanan', + 'every' => 'Hər', + 'period' => 'Aralıq', + 'times' => 'Dəfə', + 'daily' => 'Günlük', + 'weekly' => 'Həftəlik', + 'monthly' => 'Aylı1', + 'yearly' => 'İllik', + 'custom' => 'Xüsusi', + 'days' => 'Gün', + 'weeks' => 'Həftə', + 'months' => 'Ay', + 'years' => 'İl', + 'message' => 'Bu təkrarlayan bir :type və bir sonrakı :type avtomatik olaraq :date tarixdə yaradılacaq.', + +]; diff --git a/resources/lang/az-AZ/reports.php b/resources/lang/az-AZ/reports.php new file mode 100644 index 000000000..463a992c7 --- /dev/null +++ b/resources/lang/az-AZ/reports.php @@ -0,0 +1,31 @@ + 'İl|İllər', + 'this_year' => 'Bu İl', + 'previous_year' => 'Öncəki İl', + 'this_quarter' => 'Bu Rüb', + 'previous_quarter' => 'Öncəki Rüb', + 'last_12_months' => 'Son 12 Ay', + 'profit_loss' => 'Gəlir və Zərər', + 'gross_profit' => 'Brüt Gəlir', + 'net_profit' => 'Net Gəlir', + 'total_expenses' => 'Cəmi Xərc', + 'net' => 'NET', + 'income_expense' => 'Gəlir - Xərc', + + 'summary' => [ + 'income' => 'Gəlir Xülasəsi', + 'expense' => 'Xərc Xülasəsi', + 'income_expense' => 'Gəlir və Xərc Balansı', + 'tax' => 'Vergi Xülasəsi', + ], + + 'charts' => [ + 'line' => 'Xətt', + 'bar' => 'Çubuq', + 'pie' => 'Tort', + ], + +]; diff --git a/resources/lang/az-AZ/search_string.php b/resources/lang/az-AZ/search_string.php new file mode 100644 index 000000000..4fd3834b1 --- /dev/null +++ b/resources/lang/az-AZ/search_string.php @@ -0,0 +1,18 @@ + [ + 'last_logged_in_at' => 'Son Giriş', + 'paid_at' => 'Ödəniş Tarixi', + 'started_at' => 'Başlanğıc Tarixi', + 'ended_at' => 'Bitiş Tarixi', + 'billed_at' => 'Faktura Tarixi', + 'due_at' => 'Son Tarix', + 'invoiced_at' => 'Faktura Tarixi', + 'issued_at' => 'Əməliyyat Tarixi', + 'symbol_first' => 'İşarə Yeri', + 'reconciled' => 'Razılaşdırıldı', + ], + +]; diff --git a/resources/lang/az-AZ/settings.php b/resources/lang/az-AZ/settings.php new file mode 100644 index 000000000..c52edaec2 --- /dev/null +++ b/resources/lang/az-AZ/settings.php @@ -0,0 +1,138 @@ + [ + 'description' => 'Şirkətin adını, adresini, vergi nömrəsini vs. dəyişdirin', + 'name' => 'Şirkət Adı', + 'email' => 'Şirkət E-poçtu', + 'phone' => 'Telefon', + 'address' => 'Şirkət Ünvanı', + 'logo' => 'Şirkət Logosu', + ], + + 'localisation' => [ + 'description' => 'Maliyyə ilinin başlanğıcını, saat qurşağını, tarix formatını və s. dəyişdirin.', + 'financial_start' => 'Maliyyə ilinin başlanğıcı', + 'timezone' => 'Saat Qurşağı', + 'date' => [ + 'format' => 'Tarix Formatı', + 'separator' => 'Tarix Ayracı', + 'dash' => 'Tire (-)', + 'dot' => 'Nöqtə (.)', + 'comma' => 'Vergül (,)', + 'slash' => 'Bölmə (/)', + 'space' => 'Boşluq ( )', + ], + 'percent' => [ + 'title' => 'Faiz (%) Yeri', + 'before' => 'Nömrədən əvvəl', + 'after' => 'Nömrədən Sonra', + ], + 'discount_location' => [ + 'name' => 'Endirim Yeri', + 'item' => 'Sətirdə', + 'total' => 'Cəmdə', + 'both' => 'Sətir və Cəmdə', + ], + ], + + 'invoice' => [ + 'description' => 'Faktura nömrəsi, prefiks, müddət və s. özəlləşdirmək', + 'prefix' => 'Nömrə prefiksi', + 'digit' => 'Nömrə Rəqəm Sayı', + 'next' => 'Sonraki Nömrə', + 'logo' => 'Logo', + 'custom' => 'Xüsusi', + 'item_name' => 'Məhsul/Xidmət adı', + 'item' => 'Məhsullar/Xidmətlər', + 'product' => 'Məhsullar', + 'service' => 'Xidmətlər', + 'price_name' => 'Qiymət Adı', + 'price' => 'Qiymət', + 'rate' => 'Dərəcə', + 'quantity_name' => 'Miqdar Adı', + 'quantity' => 'Miqdar', + 'payment_terms' => 'Ödəmə şərtləri', + 'title' => 'Başlıq', + 'subheading' => 'Altbaşlıq', + 'due_receipt' => 'Qəbul edildikdən sonra', + 'due_days' => ':days müddət', + 'choose_template' => 'Faktura Şablonu seçin', + 'default' => 'Varsayılan', + 'classic' => 'Klasik', + 'modern' => 'Modern', + 'hide' => [ + 'item_name' => 'Məhsul/Xidmət Adını Gizlə', + 'item_description' => 'Məhsul/Xidmət Açıqlamasını gizlə', + 'quantity' => 'Miqdarı Gizlə', + 'price' => 'Qiyməti Gizlə', + 'amount' => 'Məbləği Gizlə', + ], + ], + + 'default' => [ + 'description' => 'Şirkətinizin varsayılan hesabı, valyutası, dili və s.', + 'list_limit' => 'Səhifə başına qeydlərin sayı', + 'use_gravatar' => 'Gravatar istifadə edin', + 'income_category' => 'Gəlir Kateqoriyası', + 'expense_category' => 'Xərc Kateqoriyası', + ], + + 'email' => [ + 'description' => 'E-poçt şablonlarını və göndərmə protokolunu dəyişdirin', + 'protocol' => 'Protokol', + 'php' => 'PHP Mail', + 'smtp' => [ + 'name' => 'SMTP', + 'host' => 'SMTP Host', + 'port' => 'SMTP Port', + 'username' => 'SMTP İstifadəçi adı', + 'password' => 'SMTP Şifrəsi', + 'encryption' => 'SMTP Təhlükəsizlik', + 'none' => 'Heçbiri', + ], + 'sendmail' => 'Sendmail', + 'sendmail_path' => 'Sendmail Yolu', + 'log' => 'E-mailleri logla', + + 'templates' => [ + 'subject' => 'Başlıq', + 'body' => 'Mətn', + 'tags' => 'Mövcud Teqlər: :tag_list', + 'invoice_new_customer' => 'Yeni Faktura Şablonu (müştəriyə göndərilir)', + 'invoice_remind_customer' => 'Faktura Xatırlatma Şablonu (müştəriyə göndərilir)', + 'invoice_remind_admin' => 'Faktura Xatırlatma Şablonu (inzibatçıya göndərilir)', + 'invoice_recur_customer' => 'Təkrarlanan Faktura Şablonu (müştəriyə göndərilir)', + 'invoice_recur_admin' => 'Təkrarlanan Faktura Şablonu (inzibatçıya göndərilir)', + 'invoice_payment_customer' => 'Ödəniş qəbzi şablonu (müştəriyə göndərilir)', + 'invoice_payment_admin' => 'Ödəniş qəbzi şablonu (inzibatçıya göndərilir)', + 'bill_remind_admin' => 'Xərclər Xatırlatma Şablonu (inzibatçıya göndərilir)', + 'bill_recur_admin' => 'Təkrarlanan Xərc Fakturası Şablonu (inzibatçıya göndərilir)', + ], + ], + + 'scheduling' => [ + 'name' => 'Vaxt', + 'description' => 'Avtomatik xatırlatmalar və təkrarlanan hərəkətlər üçün komanda xətti', + 'send_invoice' => 'Gəlir Fakturası Xatırlat', + 'invoice_days' => 'Ödəniş gündən sonra göndər', + 'send_bill' => 'Xərc Fakturası Xatırlat', + 'bill_days' => 'Ödniş Günündən əvvəl göndər', + 'cron_command' => 'Cron komandası', + 'schedule_time' => 'Çalışma Saatı', + ], + + 'categories' => [ + 'description' => 'Limitsiz gəlir, xərc və Məhsul kateqoriyalarını yaradın', + ], + + 'currencies' => [ + 'description' => 'Valyuta yaradın və onların məzənnələrini tənzimləyin', + ], + + 'taxes' => [ + 'description' => 'Sabit, müntəzəm, əhatəli və qarışıq vergi sinifləri yaradın', + ], + +]; diff --git a/resources/lang/az-AZ/taxes.php b/resources/lang/az-AZ/taxes.php new file mode 100644 index 000000000..9f46b045b --- /dev/null +++ b/resources/lang/az-AZ/taxes.php @@ -0,0 +1,12 @@ + 'Dərəcə', + 'rate_percent' => 'Dərəcə (%)', + 'normal' => 'Normal', + 'inclusive' => 'Daxil', + 'compound' => 'Qarışıq', + 'fixed' => 'Sabit', + 'withholding' => 'Tutulma', +]; diff --git a/resources/lang/az-AZ/transfers.php b/resources/lang/az-AZ/transfers.php new file mode 100644 index 000000000..016f635b5 --- /dev/null +++ b/resources/lang/az-AZ/transfers.php @@ -0,0 +1,12 @@ + 'Göndərən Hesab', + 'to_account' => 'Alan Hesab', + + 'messages' => [ + 'delete' => ':from hesabından :to hesabına (:amount)', + ], + +]; diff --git a/resources/lang/az-AZ/updates.php b/resources/lang/az-AZ/updates.php new file mode 100644 index 000000000..ab211e006 --- /dev/null +++ b/resources/lang/az-AZ/updates.php @@ -0,0 +1,15 @@ + 'Yüklü Versiya', + 'latest_version' => 'Ən Son Versiya', + 'update' => ':version versiyasına yenilə', + 'changelog' => 'Dəyişiklik Qeydi', + 'check' => 'Yenilə', + 'new_core' => 'Akaunting\'in yeni bir versiyası mövcuddur.', + 'latest_core' => 'Təbriklər! Akaunting\'in ən son versiyasına sahib oldunuz. Təhlükəsizlik yeniləmələri avtomatik olaraq yenilənəcəkdir.', + 'success' => 'Yeniləmə əməliyyatı müvəffəqiyyətlə tamamlandı.', + 'error' => 'Yeniləmə əməliyyatı uğursuz oldu, zəhmət olmazsa yenidən cəhd edin.', + +]; diff --git a/resources/lang/az-AZ/validation.php b/resources/lang/az-AZ/validation.php new file mode 100644 index 000000000..02bb069ae --- /dev/null +++ b/resources/lang/az-AZ/validation.php @@ -0,0 +1,123 @@ + ':attribute qəbul edilməlidir', + 'active_url' => ':attribute etibarlı bir URL olmalıdır.', + 'after' => ':attribute :date tarixindən sonra olmalıdır', + 'after_or_equal' => ':attribute :date tarixi ilə eyni və ya sonra olmalıdır', + 'alpha' => ':attribute yalnız hərflərdən ibarət ola bilər', + 'alpha_dash' => ':attribute yalnız hərf, rəqəm və tire simvolundan ibarət ola bilər', + 'alpha_num' => ':attribute yalnız hərf və rəqəmlərdən ibarət ola bilər', + 'array' => ':attribute massiv formatında olmalıdır', + 'before' => ':attribute tarixindən əvvəl bir tarix olmalıdır :date.', + 'before_or_equal' => ':attribute tarixə bərabər vəya daha əvvəl olmalıdır', + 'between' => [ + 'numeric' => ':attribute :min ilə :max arasında olmalıdır', + 'file' => ':attribute :min ilə :max KB ölçüsü intervalında olmalıdır', + 'string' => ':attribute :min - :max arasında simvollardan ibarət olmalıdır.', + 'array' => ':attribute :min - :max arasında obyekt olmalıdır.', + ], + 'boolean' => ':attribute sadəcə doğru vəya səhv olmalıdır.', + 'confirmed' => ':attribute təkrarlama uyğun gəlmir.', + 'date' => ':attribute etibarlı bir tarix olmalıdır.', + 'date_format' => ':attribute :format formatına uyğun gəlmir.', + 'different' => ':attribute ilə :other birbirindən fərqli olmalıdır.', + 'digits' => ':attribute :digits rəqəm olmalıdır.', + 'digits_between' => ':attribute :min ilə :max arasında rəqəm olmalıdır.', + 'dimensions' => ':attribute vizual ölçüləri etibarsızdır.', + 'distinct' => ':attribute sahənin təkrarlanan dəyəri var.', + 'email' => ':attribute formatı etibarsızdır.', + 'ends_with' => ':attribute bunlardan biri ilə bitməlidir: :values', + 'exists' => 'Seçili :attribute etibarsızdır.', + 'file' => ':attribute fayl olmalıdır.', + 'filled' => ':attribute sahənin doldurulması məcburidir.', + 'image' => ':attribute sahə rəsm faylı olmalıdır.', + 'in' => ':attribute dəyəri etibarsızdır.', + 'in_array' => ':attribute sahəni :other içində mövcud deyil.', + 'integer' => ':attribute tam ədəd olmalıdır.', + 'ip' => ':attribute etibarlı bir IP ünvanl olmalıdır.', + 'json' => ':attribute etibarlı bir JSON dəyişən olmalıdır.', + 'max' => [ + 'numeric' => ':attribute dəyəri :max dəyərindən kiçik olmalıdır.', + 'file' => ':attribute dəyəri :max kilobayt dəyərindən kiçik olmalıdır.', + 'string' => ':attribute dəyəri :max simvol dəyərindən kiçik olmalıdır.', + 'array' => ':attribute dəyəri :max ədədindən daha az obyekt olmalıdır.', + ], + 'mimes' => ':attribute fayl formatı :values olmalıdır.', + 'mimetypes' => ':attribute fayl formatı :values olmalıdır.', + 'min' => [ + 'numeric' => ':attribute dəyəri :min dəyərindən büyük olmalıdır.', + 'file' => ':attribute dəyəri :min kilobayt dəyərindən büyük olmalıdır.', + 'string' => ':attribute dəyəri :min simvol dəyərindən büyük olmalıdır.', + 'array' => ':attribute en az :min obyektə sahip olmalıdır.', + ], + 'not_in' => 'Seçili :attribute etibarsız.', + 'numeric' => ' :attribute rəqəmlərdən ibarət olmalıdır', + 'present' => ':attribute sahəsi mövcud olmalıdır.', + 'regex' => ' :attribute formatı yanlışdır', + 'required' => ' :attribute mütləqdir', + 'required_if' => ' :attribute (:other :value ikən) mütləqdir', + 'required_unless' => ':attribute sahəsi, :other :values dəyərinə sahip olmadığı təqdirdə məcburidir.', + 'required_with' => ':attribute sahəsi :values varkən məcburidir.', + 'required_with_all' => ':attribute sahəsi hərhansı bir :values dəyəri varkən məcburidir.', + 'required_without' => ':attribute sahəsi :values olmadıqda məcburidir.', + 'required_without_all' => ':attribute sahəsi :values dəyərlərindən hərhansı biri olmadıqda məcburidir.', + 'same' => ':attribute ile :other uyğun olmalıdır.', + 'size' => [ + 'numeric' => ':attribute :size olmalıdır.', + 'file' => ':attribute :size kilobyte olmalıdır.', + 'string' => ':attribute :size simvol olmalıdır.', + 'array' => ':attribute :size obyektə sahip olmalıdır.', + ], + 'string' => ':attribute dizge olmalıdır.', + 'timezone' => ':attribute etibarlı bir saat qurşağı olmalıdır.', + 'unique' => ':attribute daha öncədən qeyd edilmiş.', + 'uploaded' => ':attribute yükləməsi uğursuz.', + 'url' => ':attribute formatı etibarsız.', + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => [ + 'attribute-name' => [ + 'rule-name' => 'Şəxsi Mesaj', + ], + 'invalid_currency' => ':attribute etibarsız bir valyuta məzənnəsi kodu.', + 'invalid_amount' => 'Məbləğ :attribute etibarsız.', + 'invalid_extension' => 'faylnın uzantısı etibarsız.', + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap attribute place-holders + | with something more reader friendly such as E-Mail Address instead + | of "email". This simply helps us make messages a little cleaner. + | + */ + + 'attributes' => [], + +]; diff --git a/resources/lang/az-AZ/widgets.php b/resources/lang/az-AZ/widgets.php new file mode 100644 index 000000000..19454b0d0 --- /dev/null +++ b/resources/lang/az-AZ/widgets.php @@ -0,0 +1,23 @@ + 'Cəmi Gəlir', + 'receivables' => 'Alacaq', + 'open_invoices' => 'Açıq Fakturalar', + 'overdue_invoices' => 'Gecikmiş Fakturalar', + 'total_expenses' => 'Cəmi Xərc', + 'payables' => 'Verəcək', + 'open_bills' => 'Açıq Fakturalar', + 'overdue_bills' => 'Gecikmiş Fakturalar', + 'total_profit' => 'Cəmi Gəlir', + 'open_profit' => 'Açıq Gəlir', + 'overdue_profit' => 'Gecikmiş Gəlir', + 'cash_flow' => 'Maliyyə axını', + 'no_profit_loss' => 'Gəlir-Zərər Yox', + 'income_by_category' => 'Gəlir Kateqoriyaları', + 'expenses_by_category' => 'Xərc Kateqoriyaları', + 'account_balance' => 'Hesap Balansı', + 'latest_income' => 'Son Gəlirlər', + 'latest_expenses' => 'Son Xərclər', +]; diff --git a/resources/lang/el-GR/settings.php b/resources/lang/el-GR/settings.php index 3d05870ad..157b89f0c 100644 --- a/resources/lang/el-GR/settings.php +++ b/resources/lang/el-GR/settings.php @@ -3,7 +3,7 @@ return [ 'company' => [ - 'description' => 'Αλλαγή ονόματος εταιρείας, email, διεύθυνση, Αφμ, κλπ', + 'description' => 'Αλλαγή ονόματος εταιρείας, email, διεύθυνση, ΑΦΜ, κλπ', 'name' => 'Όνομα', 'email' => 'Διεύθυνση ηλ. ταχυδρομείου', 'phone' => 'Τηλέφωνο', @@ -62,12 +62,21 @@ return [ 'default' => 'Προεπιλεγμένο', 'classic' => 'Κλασικό', 'modern' => 'Μοντέρνο', + 'hide' => [ + 'item_name' => 'Απόκρυψη Ονόματος Αντικειμένων', + 'item_description' => 'Απόκρυψη Περιγραφής Αντικειμένων', + 'quantity' => 'Απόκρυψη Ποσότητας', + 'price' => 'Απόκρυψη Τιμής', + 'amount' => 'Απόκρυψη Ποσού', + ], ], 'default' => [ 'description' => 'Προεπιλεγμένος λογαριασμός, νόμισμα, γλώσσα της εταιρείας', 'list_limit' => 'Εγγραφές ανά σελίδα', 'use_gravatar' => 'Χρήση Gravatar', + 'income_category' => 'Κατηγορία Εσόδων', + 'expense_category' => 'Κατηγορία Εξόδων', ], 'email' => [ diff --git a/resources/lang/th-TH/auth.php b/resources/lang/th-TH/auth.php index d152a4a84..74ba3bd56 100644 --- a/resources/lang/th-TH/auth.php +++ b/resources/lang/th-TH/auth.php @@ -17,7 +17,7 @@ return [ 'password' => [ 'current' => 'รหัสผ่าน', - 'current_confirm' => 'การยืนยันรหัสผ่าน', + 'current_confirm' => 'ยืนยันรหัสผ่าน', 'new' => 'รหัสผ่านใหม่', 'new_confirm' => 'ยืนยันรหัสผ่านใหม่', ], diff --git a/resources/lang/th-TH/currencies.php b/resources/lang/th-TH/currencies.php index f989c4146..fa88ee971 100644 --- a/resources/lang/th-TH/currencies.php +++ b/resources/lang/th-TH/currencies.php @@ -8,6 +8,7 @@ return [ 'decimal_mark' => 'เครื่องหมายทศนิยม', 'thousands_separator' => 'ตัวคั่นรายการหลักพัน', 'precision' => 'ความแม่นยำ', + 'conversion' => 'อัตราแลกเปลี่ยนสกุลเงิน: :price (:currency_code) ที่ :currency_rate', 'symbol' => [ 'symbol' => 'สัญลักษณ์', 'position' => 'ตำแหน่งของสัญลักษณ์', diff --git a/resources/lang/th-TH/customers.php b/resources/lang/th-TH/customers.php index b1c1c691f..cde3f4ecc 100644 --- a/resources/lang/th-TH/customers.php +++ b/resources/lang/th-TH/customers.php @@ -2,15 +2,11 @@ return [ - 'allow_login' => 'อนุญาตให้เข้าสู่ระบบหรือไม่', + 'can_login' => 'ล็อคอินได้รึเปล่า?', 'user_created' => 'สร้างผู้ใช้งานระบบแล้ว', 'error' => [ - 'email' => 'อีเมลนี้ได้ลงทะเบียนอยู่แล้ว' + 'email' => 'อีเมลนี้ได้ลงทะเบียนอยู่แล้ว', ], - 'notification' => [ - 'message' => ': ดำเนินโดยลูกค้า: ยอดเงินการชำระเงินใบแจ้งหนี้หมายเลข: invoice_number', - 'button' => 'แสดง', - ], ]; diff --git a/resources/lang/th-TH/demo.php b/resources/lang/th-TH/demo.php index 62bfba5c1..d47c8f93b 100644 --- a/resources/lang/th-TH/demo.php +++ b/resources/lang/th-TH/demo.php @@ -2,15 +2,33 @@ return [ - 'accounts_cash' => 'เงินสด', - 'categories_deposit' => 'เงินฝาก', - 'categories_sales' => 'ขาย', - 'currencies_usd' => 'ดอลลาร์สหรัฐฯ', - 'currencies_eur' => 'ยูโร', - 'currencies_gbp' => 'ปอนด์ อังกฤษ', - 'currencies_try' => 'ลีรา ตุรกี', - 'taxes_exempt' => 'ยกเว้นภาษี', - 'taxes_normal' => 'ภาษีปกติ', - 'taxes_sales' => 'ภาษีการขาย', + 'accounts' => [ + 'cash' => 'เงินสด', + ], + + 'categories' => [ + 'deposit' => 'เงินฝาก', + 'sales' => 'การขาย', + ], + + 'currencies' => [ + 'usd' => 'ดอลลาร์สหรัฐฯ', + 'eur' => 'ยูโร', + 'gbp' => 'ปอนด์ อังกฤษ', + 'try' => 'ลีรา ตุรกี', + ], + + 'offline_payments' => [ + 'cash' => 'เงินสด', + 'bank' => 'โอนเงินผ่านธนาคาร', + ], + + 'reports' => [ + 'income' => 'สรุปรายได้ต่อเดือนตามหมวดหมู่', + 'expense' => 'สรุปรายจ่ายต่อเดือนตามหมวดหมู่', + 'income_expense' => 'สรุปรายได้กับรายจ่ายต่อเดือนตามหมวดหมู่', + 'tax' => 'สรุปยอดภาษีต่อไตรมาส', + 'profit_loss' => 'สรุปยอดกำไรขาดทุนต่อไตรมาสตามหมวดหมู่', + ], ]; diff --git a/resources/lang/th-TH/errors.php b/resources/lang/th-TH/errors.php new file mode 100644 index 000000000..8e68e611d --- /dev/null +++ b/resources/lang/th-TH/errors.php @@ -0,0 +1,23 @@ + [ + '403' => 'ขออภัย ระบบไม่อนุญาตให้เข้าได้', + '404' => 'ขออภัย ระบบไม่พบหน้านี้', + '500' => 'ขออภัย มีบางอย่างผิดพลาด', + ], + + 'header' => [ + '403' => '403 ไม่อนุญาต', + '404' => '404 ไม่พบ', + '500' => '500 ข้อผิดพลาดภายในเซิร์ฟเวอร์', + ], + + 'message' => [ + '403' => 'คุณไม่มีสิทธิเข้าถึงหน้านี้', + '404' => 'เราไม่พบหน้าที่คุณกำลังหาอยู่', + '500' => 'เราจะดำเนินการแก้ไขภายในเร็วๆนี้', + ], + +]; diff --git a/resources/lang/th-TH/import.php b/resources/lang/th-TH/import.php index bdddaf3e3..e75512876 100644 --- a/resources/lang/th-TH/import.php +++ b/resources/lang/th-TH/import.php @@ -4,6 +4,6 @@ return [ 'import' => 'นำเข้า', 'title' => 'นำเข้า :type', - 'message' => 'Allowed file types: XLS, XLSX. Please, download the sample file.', + 'message' => 'ประเภทไฟล์ที่อนุญาต: XLS, XLSX. กรุณา, ดาวน์โหลด ไฟล์ตัวอย่าง.', ]; diff --git a/resources/lang/th-TH/maintenance.php b/resources/lang/th-TH/maintenance.php new file mode 100644 index 000000000..7ea57e62d --- /dev/null +++ b/resources/lang/th-TH/maintenance.php @@ -0,0 +1,9 @@ + 'ระบบอยู่ระหว่างการปรับปรุง', + + 'message' => 'ขออภัย ระบบอยู่ระหว่างการปรับปรุง โปรดรออีกครั้งในภายหลัง', + +]; diff --git a/resources/lang/th-TH/passwords.php b/resources/lang/th-TH/passwords.php index e5d437000..09848e7df 100644 --- a/resources/lang/th-TH/passwords.php +++ b/resources/lang/th-TH/passwords.php @@ -18,5 +18,6 @@ return [ 'sent' => 'เราได้ส่งลิงก์การรีเซ็ตรหัสผ่านทางอีเมลของคุณแล้ว!', 'token' => 'ชุดรหัสสำหรับการเปลี่ยนรหัสผ่านไม่ถูกต้อง', 'user' => "ไม่พบผู้ใช้งานที่ตรงกับอีเมลนี้", + 'throttle' => 'โปรดรอสักครู่ก่อนลองอีกครั้ง', ]; diff --git a/resources/lang/th-TH/taxes.php b/resources/lang/th-TH/taxes.php index df3a8131c..a82147a50 100644 --- a/resources/lang/th-TH/taxes.php +++ b/resources/lang/th-TH/taxes.php @@ -6,6 +6,7 @@ return [ 'rate_percent' => 'อัตรา (%)', 'normal' => 'ปกติ', 'inclusive' => 'รวมภาษีแล้ว', - 'compound' => 'ภาษีแบบผสม', - + 'compound' => 'ภาษีอัตราผสม', + 'fixed' => 'ภาษีแบบคงที่', + 'withholding' => 'ภาษีหัก ณ ที่จ่าย', ]; diff --git a/resources/lang/th-TH/validation.php b/resources/lang/th-TH/validation.php index 23a27816d..a2835fc91 100644 --- a/resources/lang/th-TH/validation.php +++ b/resources/lang/th-TH/validation.php @@ -16,18 +16,18 @@ return [ 'accepted' => 'ข้อมูล :attribute ต้องผ่านการยอมรับก่อน', 'active_url' => 'ข้อมูล :attribute ต้องเป็น URL เท่านั้น', 'after' => 'ข้อมูล :attribute ต้องเป็นวันที่หลังจาก :date.', - 'after_or_equal' => ':attribute ต้องเป็นวันที่หลังจากหรือเท่ากับ :date', + 'after_or_equal' => 'ข้อมูล :attribute ต้องเป็นวันที่ตั้งแต่วันที่ :date หรือหลังจากนั้น.', 'alpha' => 'ข้อมูล :attribute ต้องเป็นตัวอักษรภาษาอังกฤษเท่านั้น', 'alpha_dash' => 'ข้อมูล :attribute ต้องเป็นตัวอักษรภาษาอังกฤษ ตัวเลข และ _ เท่านั้น', 'alpha_num' => 'ข้อมูล :attribute ต้องเป็นตัวอักษรภาษาอังกฤษ ตัวเลข เท่านั้น', 'array' => 'ข้อมูล :attribute ต้องเป็น array เท่านั้น', 'before' => 'ข้อมูล :attribute ต้องเป็นวันที่ก่อน :date.', - 'before_or_equal' => ':attribute ต้องเป็นวันที่ก่อนหรือเท่ากับ :date', + 'before_or_equal' => 'ข้อมูล :attribute ต้องเป็นวันที่ก่อนหรือเท่ากับวันที่ :date.', 'between' => [ 'numeric' => 'ข้อมูล :attribute ต้องอยู่ในช่วงระหว่าง :min - :max.', - 'file' => 'ข้อมูล :attribute ต้องอยู่ในช่วงระหว่าง :min - :max กิโลไบต์', - 'string' => 'ข้อมูล :attribute ต้องอยู่ในช่วงระหว่าง :min - :max ตัวอักษร', - 'array' => 'ข้อมูล :attribute ต้องอยู่ในช่วงระหว่าง :min - :max ค่า', + 'file' => 'ข้อมูล :attribute ต้องมีขนาดระหว่าง :min - :max กิโลไบต์', + 'string' => 'ข้อมูล :attribute ต้องมีความยาวตัวอักษรระหว่าง :min - :max ตัวอักษร', + 'array' => 'ข้อมูล :attribute ต้องมีค่าระหว่าง :min - :max ค่า', ], 'boolean' => 'ข้อมูล :attribute ต้องเป็นจริง หรือเท็จ เท่านั้น', 'confirmed' => 'ข้อมูล :attribute ไม่ตรงกัน', @@ -36,9 +36,10 @@ return [ 'different' => 'ข้อมูล :attribute และ :other ต้องไม่เท่ากัน', 'digits' => 'ข้อมูล :attribute ต้องเป็น :digits', 'digits_between' => 'ข้อมูล :attribute ต้องอยู่ในช่วงระหว่าง :min ถึง :max', - 'dimensions' => ':attribute มีขนาดภาพที่ไม่ถูกต้อง', + 'dimensions' => 'ข้อมูล :attribute มีขนาดไม่ถูกต้อง.', 'distinct' => 'ข้อมูล :attribute มีค่าที่ซ้ำกัน', 'email' => 'ข้อมูล :attribute ต้องเป็นอีเมล์', + 'ends_with' => 'ค่า :attribute ต้องลงท้ายด้วย: :values', 'exists' => 'ข้อมูล ที่ถูกเลือกจาก :attribute ไม่ถูกต้อง', 'file' => ':attribute ต้องเป็นไฟล์', 'filled' => 'ข้อมูล :attribute จำเป็นต้องกรอก', @@ -49,18 +50,18 @@ return [ 'ip' => 'ข้อมูล :attribute ต้องเป็น IP', 'json' => 'ข้อมูล :attribute ต้องเป็นอักขระ JSON ที่สมบูรณ์', 'max' => [ - 'numeric' => 'ข้อมูล :attribute ต้องมีจำนวนไม่เกิน :max.', - 'file' => 'ข้อมูล :attribute ต้องมีจำนวนไม่เกิน :max กิโลไบต์', - 'string' => 'ข้อมูล :attribute ต้องมีจำนวนไม่เกิน :max ตัวอักษร', - 'array' => 'ข้อมูล :attribute ต้องมีจำนวนไม่เกิน :max ค่า', + 'numeric' => 'ข้อมูล :attribute ต้องมีค่าไม่เกิน :max.', + 'file' => 'ข้อมูล :attribute ต้องมีขนาดไม่เกิน :max กิโลไบต์', + 'string' => 'ข้อมูล :attribute ต้องมีความยาวตัวอักษรไม่เกิน :max ตัวอักษร', + 'array' => 'ข้อมูล :attribute ต้องมีไม่เกิน :max ค่า', ], 'mimes' => 'ข้อมูล :attribute ต้องเป็นชนิดไฟล์: :values.', 'mimetypes' => 'ข้อมูล :attribute ต้องเป็นชนิดไฟล์: :values.', 'min' => [ - 'numeric' => 'ข้อมูล :attribute ต้องมีจำนวนอย่างน้อย :min.', - 'file' => 'ข้อมูล :attribute ต้องมีจำนวนอย่างน้อย :min กิโลไบต์', - 'string' => 'ข้อมูล :attribute ต้องมีจำนวนอย่างน้อย :min ตัวอักษร', - 'array' => 'ข้อมูล :attribute ต้องมีจำนวนอย่างน้อย :min ค่า', + 'numeric' => 'ข้อมูล :attribute ต้องมีค่าอย่างน้อย :min.', + 'file' => 'ข้อมูล :attribute ต้องมีขนาดอย่างน้อย :min กิโลไบต์', + 'string' => 'ข้อมูล :attribute ต้องมีความยาวตัวอักษรอย่างน้อย :min ตัวอักษร', + 'array' => 'ข้อมูล :attribute ต้องมีอย่างน้อย :min ค่า', ], 'not_in' => 'ข้อมูล ที่เลือกจาก :attribute ไม่ถูกต้อง', 'numeric' => 'ข้อมูล :attribute ต้องเป็นตัวเลข', @@ -99,10 +100,11 @@ return [ 'custom' => [ 'attribute-name' => [ - 'rule-name' => 'ข้อความแบบกำหนดเอง', + 'rule-name' => 'ข้อความแบบกำหนดเอง', ], - 'invalid_currency' => 'รูปแบบของ :attribute ไม่ถูกต้อง', - 'invalid_amount' => 'ปริมาณ:attribute ไม่ถูกต้อง', + 'invalid_currency' => 'รูปแบบของ :attribute ไม่ถูกต้อง', + 'invalid_amount' => 'ปริมาณ:attribute ไม่ถูกต้อง', + 'invalid_extension' => 'สกุลไฟล์ไม่รองรับ', ], /* From df0d0dbd8271d070756698f03117891df3fecf47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Sun, 7 Feb 2021 21:19:12 +0300 Subject: [PATCH 023/121] added azerbaijani language --- config/language.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/language.php b/config/language.php index 5e4d0d411..58de67519 100644 --- a/config/language.php +++ b/config/language.php @@ -122,7 +122,7 @@ return [ | This options indicates the allowed languages. | */ - 'allowed' => ['ar-SA', 'bg-BG', 'bn-BD', 'bs-BA', 'ca-ES', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-AU', 'en-GB', 'en-US', 'es-AR', 'es-ES', 'es-MX', 'fa-IR', 'fr-FR', 'he-IL', 'hi-IN', 'hr-HR', 'hu-HU', 'id-ID', 'is-IS', 'it-IT', 'ja-JP', 'ka-GE', 'ko-KR', 'lt-LT', 'lv-LV', 'mk-MK', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-NL', 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sk-SK', 'sr-RS', 'sq-AL', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'ur-PK', 'uz-UZ', 'vi-VN', 'zh-CN', 'zh-TW'], + 'allowed' => ['ar-SA', 'az-AZ', 'bg-BG', 'bn-BD', 'bs-BA', 'ca-ES', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-AU', 'en-GB', 'en-US', 'es-AR', 'es-ES', 'es-MX', 'fa-IR', 'fr-FR', 'he-IL', 'hi-IN', 'hr-HR', 'hu-HU', 'id-ID', 'is-IS', 'it-IT', 'ja-JP', 'ka-GE', 'ko-KR', 'lt-LT', 'lv-LV', 'mk-MK', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-NL', 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sk-SK', 'sr-RS', 'sq-AL', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'ur-PK', 'uz-UZ', 'vi-VN', 'zh-CN', 'zh-TW'], /* |-------------------------------------------------------------------------- @@ -134,6 +134,7 @@ return [ */ 'all' => [ ['short' => 'ar', 'long' => 'ar-SA', 'english' => 'Arabic', 'native' => 'العربية'], + ['short' => 'az', 'long' => 'az-AZ', 'english' => 'Azerbaijani', 'native' => 'Azərbaycan'], ['short' => 'bg', 'long' => 'bg-BG', 'english' => 'Bulgarian', 'native' => 'български'], ['short' => 'bn', 'long' => 'bn-BD', 'english' => 'Bengali', 'native' => 'বাংলা'], ['short' => 'bs', 'long' => 'bs-BA', 'english' => 'Bosnian', 'native' => 'Bosanski'], From ef2684222fd6191e435f607c55b05acf8cf0e87e Mon Sep 17 00:00:00 2001 From: Pavel Mironchik Date: Mon, 8 Feb 2021 14:12:12 +0600 Subject: [PATCH 024/121] Allow modules to provide a translation for a search filter. --- app/View/Components/SearchString.php | 38 ++++++++++++++++++---------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/app/View/Components/SearchString.php b/app/View/Components/SearchString.php index 090f965c5..d3dfb87a9 100644 --- a/app/View/Components/SearchString.php +++ b/app/View/Components/SearchString.php @@ -33,26 +33,26 @@ class SearchString extends Component { if (empty($this->filters)) { $search_string = config('search-string'); - + $this->filters = []; - + if (!empty($search_string[$this->model])) { $columns = $search_string[$this->model]['columns']; - + foreach ($columns as $column => $options) { // This column skip for filter if (!empty($options['searchable'])) { continue; } - + if (!is_array($options)) { $column = $options; } - + if (!$this->isFilter($column, $options)) { continue; } - + $this->filters[] = [ 'key' => $this->getFilterKey($column, $options), 'value' => $this->getFilterName($column, $options), @@ -101,19 +101,29 @@ class SearchString extends Component $plural = Str::plural($column, 2); - if (trans_choice('general.' . $plural, 1) !== 'general.' . $plural) { - return trans_choice('general.' . $plural, 1); - } elseif (trans_choice('search_string.columns.' . $plural, 1) !== 'search_string.columns.' . $plural) { - return trans_choice('search_string.columns.' . $plural, 1); + if (strpos($this->model, 'Modules') !== false) { + $module_class = explode('\\', $this->model); + + $prefix = Str::slug($module_class[1], '-') . '::'; + + $translation_keys[] = $prefix . 'general.'; + $translation_keys[] = $prefix . 'search_string.columns.'; } - $name = trans('general.' . $column); + $translation_keys[] = 'general.'; + $translation_keys[] = 'search_string.columns.'; - if ($name == 'general.' . $column) { - $name = trans('search_string.columns.' . $column); + foreach ($translation_keys as $translation_key) { + if (trans_choice($translation_key . $plural, 1) !== $translation_key . $plural) { + return trans_choice($translation_key . $plural, 1); + } + + if (trans($translation_key . $column) !== $translation_key . $column) { + return trans($translation_key . $column); + } } - return $name; + return $column; } protected function getFilterType($options) From 8cfbf82e0aa14f2f293510b2686e7a637137ee01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Mon, 8 Feb 2021 12:07:22 +0300 Subject: [PATCH 025/121] moved financial quarters to trait --- app/Abstracts/Report.php | 15 +-------------- app/Traits/DateTime.php | 13 +++++++++++++ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/Abstracts/Report.php b/app/Abstracts/Report.php index 57f4758de..6a121f0a8 100644 --- a/app/Abstracts/Report.php +++ b/app/Abstracts/Report.php @@ -16,7 +16,6 @@ use App\Traits\Charts; use App\Traits\DateTime; use App\Traits\SearchString; use App\Utilities\Chartjs; -use Carbon\CarbonPeriod; use Date; use Illuminate\Support\Str; @@ -376,7 +375,7 @@ abstract class Report break; case 'quarterly': - $quarters = $this->getFiscalBaseQuarters($this->year); + $quarters = $this->getFinancialQuarters($this->year); foreach ($quarters as $quarter) { if ($date->lessThan($quarter->getStartDate()) || $date->greaterThan($quarter->getEndDate())) { @@ -498,16 +497,4 @@ abstract class Report ], ]; } - - private function getFiscalBaseQuarters($year) - { - $periods = []; - $fiscal_start = $this->getFinancialStart($year); - - for ($i = 0; $i < 4; $i++) { - $periods[] = CarbonPeriod::create($fiscal_start->copy()->addQuarters($i), $fiscal_start->copy()->addQuarters($i + 1)->subDay()); - } - - return $periods; - } } diff --git a/app/Traits/DateTime.php b/app/Traits/DateTime.php index 8a34f319b..350d7c163 100644 --- a/app/Traits/DateTime.php +++ b/app/Traits/DateTime.php @@ -3,6 +3,7 @@ namespace App\Traits; use App\Traits\SearchString; +use Carbon\CarbonPeriod; use Date; trait DateTime @@ -117,6 +118,18 @@ trait DateTime return $financial_start; } + public function getFinancialQuarters($year) + { + $quarters = []; + $start = $this->getFinancialStart($year); + + for ($i = 0; $i < 4; $i++) { + $quarters[] = CarbonPeriod::create($start->copy()->addQuarters($i), $start->copy()->addQuarters($i + 1)->subDay()); + } + + return $quarters; + } + public function getMonthlyDateFormat($year = null) { $format = 'M'; From 394698ee26e7c6af5f18f6cb213a2d983ab2c295 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Mon, 8 Feb 2021 12:08:24 +0300 Subject: [PATCH 026/121] allow year to be null --- app/Traits/DateTime.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Traits/DateTime.php b/app/Traits/DateTime.php index 350d7c163..0f3fbe5ea 100644 --- a/app/Traits/DateTime.php +++ b/app/Traits/DateTime.php @@ -118,7 +118,7 @@ trait DateTime return $financial_start; } - public function getFinancialQuarters($year) + public function getFinancialQuarters($year = null) { $quarters = []; $start = $this->getFinancialStart($year); From 4f6d2a043505bb809b4ff6acdd6f22cbbfccf493 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Mon, 8 Feb 2021 16:06:31 +0300 Subject: [PATCH 027/121] Document issue and due at enhancement --- .../View/Components/DocumentForm.php | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/app/Abstracts/View/Components/DocumentForm.php b/app/Abstracts/View/Components/DocumentForm.php index cb189baaf..cedaf14a3 100644 --- a/app/Abstracts/View/Components/DocumentForm.php +++ b/app/Abstracts/View/Components/DocumentForm.php @@ -537,7 +537,7 @@ abstract class DocumentForm extends Base if (request()->has($issued_at)) { $issuedAt = request()->get($issued_at); } else { - $issuedAt = request()->get('invoiced_at', Date::now()->toDateString()); + $issuedAt = request()->get('invoice_at', Date::now()->toDateString()); } return $issuedAt; @@ -572,20 +572,19 @@ abstract class DocumentForm extends Base return $document->due_at; } - $addDays = (setting($type . '.payment_terms', 0)) ? setting($type . '.payment_terms', 0) : setting('invoice.payment_terms', 0); + $issued_at = $type . '_at'; - switch ($type) { - case 'bill': - case 'expense': - case 'purchase': - $due_at = request()->get('billed_at', Date::now()->toDateString()); - break; - default: - $due_at = Date::parse(request()->get('invoiced_at', Date::now()->toDateString()))->addDays($addDays)->toDateString(); - break; + if (request()->has($issued_at)) { + $issuedAt = request()->get($issued_at); + } else { + $issuedAt = Date::now()->toDateString(); } - return $due_at; + $addDays = (setting($type . '.payment_terms', 0)) ? setting($type . '.payment_terms', 0) : 0; + + $dueAt = Date::parse($issuedAt)->addDays($addDays)->toDateString(); + + return $dueAt; } protected function getOrderNumber($type, $document, $orderNumber) From 6852d83cb98b37b71a9f89215a3e1788d76c127d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Mon, 8 Feb 2021 18:26:30 +0300 Subject: [PATCH 028/121] dropzone fixed href issue.. --- .../AkauntingDropzoneFileUpload.vue | 110 +++++++++--------- 1 file changed, 58 insertions(+), 52 deletions(-) diff --git a/resources/assets/js/components/AkauntingDropzoneFileUpload.vue b/resources/assets/js/components/AkauntingDropzoneFileUpload.vue index 0fff9b98b..8007f2663 100644 --- a/resources/assets/js/components/AkauntingDropzoneFileUpload.vue +++ b/resources/assets/js/components/AkauntingDropzoneFileUpload.vue @@ -107,83 +107,89 @@ export default { let preview = this.preview == 'single' ? this.$refs.previewSingle : this.$refs.previewMultiple; if (this.configurations.maxFiles === undefined && this.multiple == false) { - this.configurations.maxFiles = 1 + this.configurations.maxFiles = 1; } if (this.configurations.acceptedFiles === undefined) { - this.configurations.acceptedFiles = 'image/*' + this.configurations.acceptedFiles = 'image/*'; } let finalOptions = { - ...self.configurations, - url: this.url, - previewsContainer: preview, - previewTemplate: preview.innerHTML, - dictDefaultMessage: this.textDropFile, - autoProcessQueue: false, + ...self.configurations, + url: this.url, + previewsContainer: preview, + previewTemplate: preview.innerHTML, + dictDefaultMessage: this.textDropFile, + autoProcessQueue: false, - init: function () { - let dropzone = this + init: function () { + let dropzone = this; - dropzone.on('addedfile', function (file) { - self.files.push(file); + dropzone.on('addedfile', function (file) { + self.files.push(file); - if (self.configurations.maxFiles == 1) { - self.$emit('change', file); - } else { - self.$emit('change', self.files); - } - }), + if (self.configurations.maxFiles == 1) { + self.$emit('change', file); + } else { + self.$emit('change', self.files); + } + }), - dropzone.on('removedfile', function (file) { - let index = self.files.findIndex(f => f.name === file.name) + dropzone.on('removedfile', function (file) { + let index = self.files.findIndex(f => f.name === file.name) - if (index !== -1) { - self.files.splice(index, 1); - } + if (index !== -1) { + self.files.splice(index, 1); + } - self.$emit('change', self.files); + self.$emit('change', self.files); - if (self.multiple) { - this.enable(); - } - }), + if (self.multiple) { + this.enable(); + } + }), - dropzone.on('maxfilesexceeded', function(file) { - this.removeAllFiles('notCancel'); - this.addFile(file); - }), + dropzone.on('maxfilesexceeded', function(file) { + this.removeAllFiles('notCancel'); + this.addFile(file); + }), - dropzone.on('maxfilesreached', function(file) { - if (self.multiple) { - this.disable(); - } - }) - - setTimeout(() => { - self.attachments.forEach(async (attachment) => { - let blob = await self.getAttachmentContent(attachment.path) - let file = new File([blob], attachment.name, { type: blob.type }) - - dropzone.displayExistingFile(file, attachment.path, () => { - file.previewElement.querySelector("[data-dz-download]").href = attachment.downloadPath - file.previewElement.querySelector("[data-dz-download]").classList.remove("d-none") - }) + dropzone.on('maxfilesreached', function(file) { + if (self.multiple) { + this.disable(); + } }) - if (self.preview == 'single' && self.attachments.length == 1) - document.querySelector("#dropzone").classList.add("dz-max-files-reached"); - }, 750) - } + if (self.attachments.length) { + setTimeout(() => { + self.attachments.forEach(async (attachment) => { + let blob = await self.getAttachmentContent(attachment.path); + let file = new File([blob], attachment.name, { type: blob.type }); + + dropzone.displayExistingFile(file, attachment.path, () => { + if (attachment.downloadPath) { + file.previewElement.querySelector("[data-dz-download]").href = attachment.downloadPath; + file.previewElement.querySelector("[data-dz-download]").classList.remove("d-none"); + } + }); + }); + + if (self.preview == 'single' && self.attachments.length == 1) { + document.querySelector("#dropzone").classList.add("dz-max-files-reached"); + } + }, 100); + } + } }; this.dropzone = new Dropzone(this.$el, finalOptions); preview.innerHTML = ''; }, + async getAttachmentContent(imageUrl) { return await axios.get(imageUrl, { responseType: 'blob' }).then(function (response) { - return response.data + return response.data; }); } }, From cf2726441c9b8d90ce5d1e5d2148c38d85e796a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Tue, 9 Feb 2021 11:47:30 +0300 Subject: [PATCH 029/121] File group component and view changes.. --- .../AkauntingDropzoneFileUpload.vue | 59 ++++++++++++++----- .../views/partials/form/file_group.blade.php | 21 +++++-- 2 files changed, 61 insertions(+), 19 deletions(-) diff --git a/resources/assets/js/components/AkauntingDropzoneFileUpload.vue b/resources/assets/js/components/AkauntingDropzoneFileUpload.vue index 8007f2663..a756602f1 100644 --- a/resources/assets/js/components/AkauntingDropzoneFileUpload.vue +++ b/resources/assets/js/components/AkauntingDropzoneFileUpload.vue @@ -11,6 +11,10 @@
+ + + +
@@ -20,6 +24,10 @@
+ + + +
@@ -133,6 +141,24 @@ export default { } else { self.$emit('change', self.files); } + + if (file.type.indexOf("image") == -1) { + var ext = file.name.split('.').pop(); + + if (ext == "pdf") { + file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none"); + file.previewElement.querySelector("[data-dz-thumbnail-pdf]").classList.remove("d-none"); + } else if ((ext.indexOf("doc") != -1) || (ext.indexOf("docx") != -1)) { + file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none"); + file.previewElement.querySelector("[data-dz-thumbnail-word]").classList.remove("d-none"); + } else if ((ext.indexOf("xls") != -1) || (ext.indexOf("xlsx") != -1)) { + file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none"); + file.previewElement.querySelector("[data-dz-thumbnail-excel]").classList.remove("d-none"); + } else { + file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none"); + file.previewElement.querySelector("[data-dz-thumbnail-image]").classList.remove("d-none"); + } + } }), dropzone.on('removedfile', function (file) { @@ -163,15 +189,26 @@ export default { if (self.attachments.length) { setTimeout(() => { self.attachments.forEach(async (attachment) => { - let blob = await self.getAttachmentContent(attachment.path); - let file = new File([blob], attachment.name, { type: blob.type }); + var mockFile = { + id: attachment.id, + name: attachment.name, + size: attachment.size, + type: attachment.type, + download: attachment.downloadPath, + }; - dropzone.displayExistingFile(file, attachment.path, () => { - if (attachment.downloadPath) { - file.previewElement.querySelector("[data-dz-download]").href = attachment.downloadPath; - file.previewElement.querySelector("[data-dz-download]").classList.remove("d-none"); - } - }); + dropzone.emit("addedfile", mockFile); + dropzone.options.thumbnail.call(dropzone, mockFile, attachment.path); + + // Make sure that there is no progress bar, etc... + dropzone.emit("complete", mockFile); + }); + + self.files.forEach(async (attachment) => { + if (attachment.download) { + attachment.previewElement.querySelector("[data-dz-download]").href = attachment.download; + attachment.previewElement.querySelector("[data-dz-download]").classList.remove("d-none"); + } }); if (self.preview == 'single' && self.attachments.length == 1) { @@ -186,12 +223,6 @@ export default { preview.innerHTML = ''; }, - - async getAttachmentContent(imageUrl) { - return await axios.get(imageUrl, { responseType: 'blob' }).then(function (response) { - return response.data; - }); - } }, async mounted() { diff --git a/resources/views/partials/form/file_group.blade.php b/resources/views/partials/form/file_group.blade.php index 7591b9a36..bea74d73f 100644 --- a/resources/views/partials/form/file_group.blade.php +++ b/resources/views/partials/form/file_group.blade.php @@ -45,17 +45,24 @@ @foreach($value as $attachment) @php $attachments[] = [ + 'id' => $attachment->id, 'name' => $attachment->filename . '.' . $attachment->extension, - 'path' => route('uploads.get', $attachment->id), - 'downloadPath' => route('uploads.download', $attachment->id) + 'path' => route('uploads.get', $attachment->id), + 'type' => $attachment->mime_type, + 'size' => $attachment->size, + 'downloadPath' => route('uploads.download', $attachment->id), ]; @endphp @endforeach @elseif ($value instanceof \Plank\Mediable\Media) @php $attachments[] = [ + 'id' => $attachment->id, 'name' => $value->filename . '.' . $value->extension, - 'path' => route('uploads.get', $value->id) + 'path' => route('uploads.get', $value->id), + 'type' => $attachment->mime_type, + 'size' => $attachment->size, + 'downloadPath' => false, ]; @endphp @else @@ -63,12 +70,16 @@ $attachment = \Plank\Mediable\Media::find($value); $attachments[] = [ + 'id' => $attachment->id, 'name' => $attachment->filename . '.' . $attachment->extension, - 'path' => route('uploads.get', $attachment->id) + 'path' => route('uploads.get', $attachment->id), + 'type' => $attachment->mime_type, + 'size' => $attachment->size, + 'downloadPath' => false, ]; @endphp @endif - + :attachments="{{ json_encode($attachments) }}" @endif From fcc8b6358e4cc876c43e03e4a824ac825634fa08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Tue, 9 Feb 2021 11:48:58 +0300 Subject: [PATCH 030/121] Revenues attachment add multiple --- app/Http/Controllers/Sales/Revenues.php | 24 +++++++++++++++++-- .../views/sales/revenues/create.blade.php | 4 ++-- resources/views/sales/revenues/edit.blade.php | 11 ++------- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/Sales/Revenues.php b/app/Http/Controllers/Sales/Revenues.php index 15aead9bf..6e761745e 100644 --- a/app/Http/Controllers/Sales/Revenues.php +++ b/app/Http/Controllers/Sales/Revenues.php @@ -66,7 +66,17 @@ class Revenues extends Controller $payment_methods = Modules::getPaymentMethods(); - return view('sales.revenues.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'customers', 'categories', 'payment_methods')); + $file_type_mimes = explode(',', config('filesystems.mimes')); + + $file_types = []; + + foreach ($file_type_mimes as $mime) { + $file_types[] = '.' . $mime; + } + + $file_types = implode(',', $file_types); + + return view('sales.revenues.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'customers', 'categories', 'payment_methods', 'file_types')); } /** @@ -166,7 +176,17 @@ class Revenues extends Controller $date_format = $this->getCompanyDateFormat(); - return view('sales.revenues.edit', compact('revenue', 'accounts', 'currencies', 'currency', 'customers', 'categories', 'payment_methods', 'date_format')); + $file_type_mimes = explode(',', config('filesystems.mimes')); + + $file_types = []; + + foreach ($file_type_mimes as $mime) { + $file_types[] = '.' . $mime; + } + + $file_types = implode(',', $file_types); + + return view('sales.revenues.edit', compact('revenue', 'accounts', 'currencies', 'currency', 'customers', 'categories', 'payment_methods', 'date_format', 'file_types')); } /** diff --git a/resources/views/sales/revenues/create.blade.php b/resources/views/sales/revenues/create.blade.php index 59c839319..d3bd3a409 100644 --- a/resources/views/sales/revenues/create.blade.php +++ b/resources/views/sales/revenues/create.blade.php @@ -38,9 +38,9 @@ {{ Form::textGroup('reference', trans('general.reference'), 'file', []) }} - {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'form-file']) }} - {{ Form::selectGroup('document_id', trans_choice('general.invoices', 1), 'file-invoice', [], null, ['disabled' => 'true']) }} + + {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'w-100', 'multiple' => 'multiple', 'options' => ['acceptedFiles' => $file_types]], null, 'col-md-12') }}
diff --git a/resources/views/sales/revenues/edit.blade.php b/resources/views/sales/revenues/edit.blade.php index 02f5c2ec9..8932d5570 100644 --- a/resources/views/sales/revenues/edit.blade.php +++ b/resources/views/sales/revenues/edit.blade.php @@ -57,19 +57,12 @@ {{ Form::textGroup('reference', trans('general.reference'), 'file',[]) }} - @if ($revenue->attachment) -
- @php $file = $revenue->attachment; @endphp - @include('partials.media.file') -
- @else - {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'form-file']) }} - @endif - @if ($revenue->invoice) {{ Form::textGroup('document', trans_choice('general.invoices', 1), 'file-invoice', ['disabled' => 'true'], $revenue->invoice->document_number) }} {{ Form::hidden('document_id', $revenue->invoice->id) }} @endif + + {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'w-100', 'multiple' => 'multiple', 'options' => ['acceptedFiles' => $file_types]], $revenue->attachment, 'col-md-12') }}
From 4ef70899be2ee3ed1663cb5969dbca9df9b1858c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Tue, 9 Feb 2021 11:52:01 +0300 Subject: [PATCH 031/121] Payment attachment add multiple --- app/Http/Controllers/Purchases/Payments.php | 24 +++++++++++++++++-- .../views/purchases/payments/create.blade.php | 4 ++-- .../views/purchases/payments/edit.blade.php | 11 ++------- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/Purchases/Payments.php b/app/Http/Controllers/Purchases/Payments.php index f3980f8cd..bf5b3225e 100644 --- a/app/Http/Controllers/Purchases/Payments.php +++ b/app/Http/Controllers/Purchases/Payments.php @@ -66,7 +66,17 @@ class Payments extends Controller $payment_methods = Modules::getPaymentMethods(); - return view('purchases.payments.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'vendors', 'categories', 'payment_methods')); + $file_type_mimes = explode(',', config('filesystems.mimes')); + + $file_types = []; + + foreach ($file_type_mimes as $mime) { + $file_types[] = '.' . $mime; + } + + $file_types = implode(',', $file_types); + + return view('purchases.payments.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'vendors', 'categories', 'payment_methods', 'file_types')); } /** @@ -166,7 +176,17 @@ class Payments extends Controller $date_format = $this->getCompanyDateFormat(); - return view('purchases.payments.edit', compact('payment', 'accounts', 'currencies', 'currency', 'vendors', 'categories', 'payment_methods', 'date_format')); + $file_type_mimes = explode(',', config('filesystems.mimes')); + + $file_types = []; + + foreach ($file_type_mimes as $mime) { + $file_types[] = '.' . $mime; + } + + $file_types = implode(',', $file_types); + + return view('purchases.payments.edit', compact('payment', 'accounts', 'currencies', 'currency', 'vendors', 'categories', 'payment_methods', 'date_format', 'file_types')); } /** diff --git a/resources/views/purchases/payments/create.blade.php b/resources/views/purchases/payments/create.blade.php index 7744147f4..b9cc329c4 100644 --- a/resources/views/purchases/payments/create.blade.php +++ b/resources/views/purchases/payments/create.blade.php @@ -38,9 +38,9 @@ {{ Form::textGroup('reference', trans('general.reference'), 'file', []) }} - {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'form-file']) }} - {{ Form::selectGroup('document_id', trans_choice('general.bills', 1), 'file-invoice', [], null, ['disabled' => 'true']) }} + + {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'w-100', 'multiple' => 'multiple', 'options' => ['acceptedFiles' => $file_types]], null, 'col-md-12') }} diff --git a/resources/views/purchases/payments/edit.blade.php b/resources/views/purchases/payments/edit.blade.php index b4b3fca8e..933992f2b 100644 --- a/resources/views/purchases/payments/edit.blade.php +++ b/resources/views/purchases/payments/edit.blade.php @@ -57,19 +57,12 @@ {{ Form::textGroup('reference', trans('general.reference'), 'file',[]) }} - @if ($payment->attachment) -
- @php $file = $payment->attachment; @endphp - @include('partials.media.file') -
- @else - {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'form-file']) }} - @endif - @if ($payment->bill) {{ Form::textGroup('document', trans_choice('general.bills', 1), 'file-invoice', ['disabled' => 'true'], $payment->bill->document_number) }} {{ Form::hidden('document_id', $payment->bill->id) }} @endif + + {{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'w-100', 'multiple' => 'multiple', 'options' => ['acceptedFiles' => $file_types]], $payment->attachment, 'col-md-12') }} From 305ff07ee01f7952768a8d05a2104491e3333e96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Tue, 9 Feb 2021 11:54:53 +0300 Subject: [PATCH 032/121] Transaction model and jobs added multiple attachment --- app/Jobs/Banking/CreateTransaction.php | 6 ++++-- app/Jobs/Banking/UpdateTransaction.php | 10 ++++++++-- app/Models/Banking/Transaction.php | 12 +++++++++++- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/app/Jobs/Banking/CreateTransaction.php b/app/Jobs/Banking/CreateTransaction.php index 40e2a485d..001f4bddc 100644 --- a/app/Jobs/Banking/CreateTransaction.php +++ b/app/Jobs/Banking/CreateTransaction.php @@ -37,9 +37,11 @@ class CreateTransaction extends Job // Upload attachment if ($this->request->file('attachment')) { - $media = $this->getMedia($this->request->file('attachment'), 'transactions'); + foreach ($this->request->file('attachment') as $attachment) { + $media = $this->getMedia($attachment, 'transactions'); - $this->transaction->attachMedia($media, 'attachment'); + $this->transaction->attachMedia($media, 'attachment'); + } } // Recurring diff --git a/app/Jobs/Banking/UpdateTransaction.php b/app/Jobs/Banking/UpdateTransaction.php index b444e57fd..0d95bf6b1 100644 --- a/app/Jobs/Banking/UpdateTransaction.php +++ b/app/Jobs/Banking/UpdateTransaction.php @@ -37,9 +37,15 @@ class UpdateTransaction extends Job // Upload attachment if ($this->request->file('attachment')) { - $media = $this->getMedia($this->request->file('attachment'), 'transactions'); + $this->transaction->delete_attachment(); - $this->transaction->attachMedia($media, 'attachment'); + foreach ($this->request->file('attachment') as $attachment) { + $media = $this->getMedia($attachment, 'transactions'); + + $this->transaction->attachMedia($media, 'attachment'); + } + } elseif (!$this->request->file('attachment') && $this->transaction->attachment) { + $this->transaction->delete_attachment(); } // Recurring diff --git a/app/Models/Banking/Transaction.php b/app/Models/Banking/Transaction.php index d57ec6575..188a45366 100644 --- a/app/Models/Banking/Transaction.php +++ b/app/Models/Banking/Transaction.php @@ -3,6 +3,7 @@ namespace App\Models\Banking; use App\Abstracts\Model; +use App\Models\Common\Media as MediaModel; use App\Models\Setting\Category; use App\Scopes\Transaction as Scope; use App\Traits\Currencies; @@ -320,7 +321,16 @@ class Transaction extends Model return false; } - return $this->getMedia('attachment')->last(); + return $this->getMedia('attachment')->all(); + } + + public function delete_attachment() + { + if ($attachments = $this->attachment) { + foreach ($attachments as $file) { + MediaModel::where('id', $file->id)->delete(); + } + } } /** From 60d1286458a2d1d5674aff811ac84bbfa1c53b97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Tue, 9 Feb 2021 12:00:30 +0300 Subject: [PATCH 033/121] Update document job attachment --- app/Jobs/Document/UpdateDocument.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Jobs/Document/UpdateDocument.php b/app/Jobs/Document/UpdateDocument.php index 680b4ab25..2d91a48d6 100644 --- a/app/Jobs/Document/UpdateDocument.php +++ b/app/Jobs/Document/UpdateDocument.php @@ -53,6 +53,8 @@ class UpdateDocument extends Job $this->document->attachMedia($media, 'attachment'); } + } elseif (!$this->request->file('attachment') && $this->document->attachment) { + $this->document->delete_attachment(); } $this->deleteRelationships($this->document, ['items', 'item_taxes', 'totals']); From 8df09b5c25152ebb04a7cd0029a31b1fbd1438d0 Mon Sep 17 00:00:00 2001 From: dev-zm-sl <78361157+dev-zm-sl@users.noreply.github.com> Date: Tue, 9 Feb 2021 15:44:47 +0500 Subject: [PATCH 034/121] Update create.blade.php Error styling Issue #1839 --- resources/views/sales/customers/create.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/sales/customers/create.blade.php b/resources/views/sales/customers/create.blade.php index 80a18a2d4..99da96eaa 100644 --- a/resources/views/sales/customers/create.blade.php +++ b/resources/views/sales/customers/create.blade.php @@ -76,7 +76,7 @@ @push('scripts_start') From e251a14106fc2fcaf7a34f6d759d41c99e174b1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Tue, 9 Feb 2021 14:56:56 +0300 Subject: [PATCH 035/121] Money middleware re-factoring.. --- app/Http/Middleware/Money.php | 118 +++++++++++++--------------------- 1 file changed, 44 insertions(+), 74 deletions(-) diff --git a/app/Http/Middleware/Money.php b/app/Http/Middleware/Money.php index 8c206ab6d..1a51550d4 100644 --- a/app/Http/Middleware/Money.php +++ b/app/Http/Middleware/Money.php @@ -19,95 +19,65 @@ class Money */ public function handle($request, Closure $next) { - if ($request->method() == 'POST' || $request->method() == 'PATCH') { - $amount = $request->get('amount'); - $document_number = $request->get('document_number'); - $sale_price = $request->get('sale_price'); - $purchase_price = $request->get('purchase_price'); - $opening_balance = $request->get('opening_balance'); - $items = $request->get('items'); + if (($request->method() != 'POST') && ($request->method() != 'PATCH')) { + return $next($request); + } - if (!empty($amount)) { - try { - $amount = money($amount)->getAmount(); - } catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) { - logger($e->getMessage()); + $parameters = [ + 'amount', + 'sale_price', + 'purchase_price', + 'opening_balance', + ]; - $amount = 0; - } - - $request->request->set('amount', $amount); + foreach ($parameters as $parameter) { + if (!$request->has($parameter)) { + continue; } - if (isset($document_number) || !empty($items)) { - if (!empty($items)) { - foreach ($items as $key => $item) { - if (!isset($item['price'])) { - continue; - } + $money_format = $request->get($parameter); - try { - $amount = money($item['price'])->getAmount(); - } catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) { - logger($e->getMessage()); + if ($parameter == 'sale_price' || $parameter == 'purchase_price') { + $money_format = Str::replaceFirst(',', '.', $money_format); + } - $amount = 0; - } + $amount = $this->getAmount($money_format); - $items[$key]['price'] = $amount; + $request->request->set($parameter, $amount); + } + + $document_number = $request->get('document_number'); + $items = $request->get('items'); + + if (isset($document_number) || !empty($items)) { + if (!empty($items)) { + foreach ($items as $key => $item) { + if (!isset($item['price'])) { + continue; } - $request->request->set('items', $items); - } - } + $amount = $this->getAmount($item['price']); - if (isset($opening_balance)) { - try { - $amount = money($opening_balance)->getAmount(); - } catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) { - logger($e->getMessage()); - - $amount = 0; + $items[$key]['price'] = $amount; } - $opening_balance = $amount; - - $request->request->set('opening_balance', $opening_balance); - } - - if (isset($sale_price)) { - $sale_price = Str::replaceFirst(',', '.', $sale_price); - - try { - $amount = money($sale_price)->getAmount(); - } catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) { - logger($e->getMessage()); - - $amount = 0; - } - - $sale_price = $amount; - - $request->request->set('sale_price', $sale_price); - } - - if (isset($purchase_price)) { - $purchase_price = Str::replaceFirst(',', '.', $purchase_price); - - try { - $amount = money($purchase_price)->getAmount(); - } catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) { - logger($e->getMessage()); - - $amount = 0; - } - - $purchase_price = $amount; - - $request->request->set('purchase_price', $purchase_price); + $request->request->set('items', $items); } } return $next($request); } + + protected function getAmount($money_format) + { + try { + $amount = money($money_format)->getAmount(); + } catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) { + logger($e->getMessage()); + + $amount = 0; + } + + return $amount; + } } From f8ffda26c73e71851f7158fbd68facbc1c8d1950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Wed, 10 Feb 2021 00:40:59 +0300 Subject: [PATCH 036/121] prevent direct access to json files --- .htaccess | 2 +- nginx.example.com.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.htaccess b/.htaccess index d6cc946a1..da9dd1792 100644 --- a/.htaccess +++ b/.htaccess @@ -28,7 +28,7 @@ RewriteRule ^(app|bootstrap|config|database|overrides|resources|routes|storage|tests)/(.*) / [L,R=301] # Prevent Direct Access To modules/vendor Folders Except Assets - RewriteRule ^(modules|vendor)/(.*)\.((?!ico|gif|jpg|jpeg|png|js|css|less|sass|font|woff|woff2|eot|ttf|svg).)*$ / [L,R=301] + RewriteRule ^(modules|vendor)/(.*)\.((?!ico|gif|jpg|jpeg|png|js\b|css|less|sass|font|woff|woff2|eot|ttf|svg).)*$ / [L,R=301] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d diff --git a/nginx.example.com.conf b/nginx.example.com.conf index e4270878d..96852d10d 100644 --- a/nginx.example.com.conf +++ b/nginx.example.com.conf @@ -32,7 +32,7 @@ server { } # Prevent Direct Access To modules/vendor Folders Except Assets - location ~ ^/(modules|vendor)\/(.*)\.((?!ico|gif|jpg|jpeg|png|js|css|less|sass|font|woff|woff2|eot|ttf|svg).)*$ { + location ~ ^/(modules|vendor)\/(.*)\.((?!ico|gif|jpg|jpeg|png|js\b|css|less|sass|font|woff|woff2|eot|ttf|svg).)*$ { deny all; } From 4631253bd9f9aa6111f6780ad8509bcce6a39120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Wed, 10 Feb 2021 12:06:41 +0300 Subject: [PATCH 037/121] add dropzone middleware --- app/Http/Kernel.php | 1 + app/Http/Middleware/Dropzone.php | 65 ++++++++++++++++++++++++++++++++ routes/admin.php | 22 +++++------ routes/portal.php | 2 +- 4 files changed, 78 insertions(+), 12 deletions(-) create mode 100644 app/Http/Middleware/Dropzone.php diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 04ef72e94..cba2297bc 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -148,6 +148,7 @@ class Kernel extends HttpKernel 'company.currencies' => \App\Http\Middleware\LoadCurrencies::class, 'company.settings' => \App\Http\Middleware\LoadSettings::class, 'company.signed' => \App\Http\Middleware\SignedCompany::class, + 'dropzone' => \App\Http\Middleware\Dropzone::class, 'header.x' => \App\Http\Middleware\AddXHeader::class, 'menu.admin' => \App\Http\Middleware\AdminMenu::class, 'menu.portal' => \App\Http\Middleware\PortalMenu::class, diff --git a/app/Http/Middleware/Dropzone.php b/app/Http/Middleware/Dropzone.php new file mode 100644 index 000000000..8b0bba235 --- /dev/null +++ b/app/Http/Middleware/Dropzone.php @@ -0,0 +1,65 @@ +method() != 'POST') && ($request->method() != 'PATCH')) { + return $next($request); + } + + $multiple = false; + + foreach ($request->all() as $key => $value) { + if (!is_array($value)) { + continue; + } + + $files = []; + $uploaded = []; + + foreach ($value as $index => $parameter) { + // single file uploaded.. + if (!is_array($parameter) && !$multiple) { + if (!Arr::has($value, 'dropzone')) { + continue; + } + + $request->request->set('uploaded_' . $key, $value); + + unset($request[$key]); + break; + } + + // multiple file uploaded.. + if (!Arr::has($parameter, 'dropzone')) { + $files[] = $parameter; + + continue; + } + + $multiple = true; + $uploaded[] = $parameter; + } + + if ($multiple && $uploaded) { + $request->request->set('uploaded_' . $key, $uploaded); + $request->request->set($key, $files); + } + } + + return $next($request); + } +} diff --git a/routes/admin.php b/routes/admin.php index 7dbcffa4f..bbaf2b85f 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -18,7 +18,7 @@ Route::group(['prefix' => 'common'], function () { Route::get('companies/{company}/switch', 'Common\Companies@switch')->name('companies.switch'); Route::get('companies/{company}/enable', 'Common\Companies@enable')->name('companies.enable'); Route::get('companies/{company}/disable', 'Common\Companies@disable')->name('companies.disable'); - Route::resource('companies', 'Common\Companies'); + Route::resource('companies', 'Common\Companies', ['middleware' => ['dropzone']]); Route::get('dashboards/{dashboard}/switch', 'Common\Dashboards@switch')->name('dashboards.switch'); Route::get('dashboards/{dashboard}/enable', 'Common\Dashboards@enable')->name('dashboards.enable'); @@ -37,7 +37,7 @@ Route::group(['prefix' => 'common'], function () { Route::get('items/export', 'Common\Items@export')->name('items.export'); Route::get('items/{item}/enable', 'Common\Items@enable')->name('items.enable'); Route::get('items/{item}/disable', 'Common\Items@disable')->name('items.disable'); - Route::resource('items', 'Common\Items', ['middleware' => ['money']]); + Route::resource('items', 'Common\Items', ['middleware' => ['money', 'dropzone']]); Route::resource('search', 'Common\Search'); @@ -61,7 +61,7 @@ Route::group(['prefix' => 'auth'], function () { Route::get('users/{user}/read-invoices', 'Auth\Users@readOverdueInvoices')->name('users.read.invoices'); Route::get('users/{user}/enable', 'Auth\Users@enable')->name('users.enable'); Route::get('users/{user}/disable', 'Auth\Users@disable')->name('users.disable'); - Route::resource('users', 'Auth\Users'); + Route::resource('users', 'Auth\Users', ['middleware' => ['dropzone']]); Route::resource('roles', 'Auth\Roles'); @@ -79,12 +79,12 @@ Route::group(['prefix' => 'sales'], function () { Route::get('invoices/addItem', 'Sales\Invoices@addItem')->middleware(['money'])->name('invoice.add.item'); Route::post('invoices/import', 'Sales\Invoices@import')->name('invoices.import'); Route::get('invoices/export', 'Sales\Invoices@export')->name('invoices.export'); - Route::resource('invoices', 'Sales\Invoices', ['middleware' => ['date.format', 'money']]); + Route::resource('invoices', 'Sales\Invoices', ['middleware' => ['date.format', 'money', 'dropzone']]); Route::get('revenues/{revenue}/duplicate', 'Sales\Revenues@duplicate')->name('revenues.duplicate'); Route::post('revenues/import', 'Sales\Revenues@import')->name('revenues.import'); Route::get('revenues/export', 'Sales\Revenues@export')->name('revenues.export'); - Route::resource('revenues', 'Sales\Revenues', ['middleware' => ['date.format', 'money']]); + Route::resource('revenues', 'Sales\Revenues', ['middleware' => ['date.format', 'money', 'dropzone']]); Route::get('customers/currency', 'Sales\Customers@currency'); Route::get('customers/{customer}/duplicate', 'Sales\Customers@duplicate')->name('customers.duplicate'); @@ -107,12 +107,12 @@ Route::group(['prefix' => 'purchases'], function () { Route::get('bills/addItem', 'Purchases\Bills@addItem')->middleware(['money'])->name('bill.add.item'); Route::post('bills/import', 'Purchases\Bills@import')->name('bills.import'); Route::get('bills/export', 'Purchases\Bills@export')->name('bills.export'); - Route::resource('bills', 'Purchases\Bills', ['middleware' => ['date.format', 'money']]); + Route::resource('bills', 'Purchases\Bills', ['middleware' => ['date.format', 'money', 'dropzone']]); Route::get('payments/{payment}/duplicate', 'Purchases\Payments@duplicate')->name('payments.duplicate'); Route::post('payments/import', 'Purchases\Payments@import')->name('payments.import'); Route::get('payments/export', 'Purchases\Payments@export')->name('payments.export'); - Route::resource('payments', 'Purchases\Payments', ['middleware' => ['date.format', 'money']]); + Route::resource('payments', 'Purchases\Payments', ['middleware' => ['date.format', 'money', 'dropzone']]); Route::get('vendors/currency', 'Purchases\Vendors@currency'); Route::get('vendors/{vendor}/duplicate', 'Purchases\Vendors@duplicate')->name('vendors.duplicate'); @@ -121,7 +121,7 @@ Route::group(['prefix' => 'purchases'], function () { Route::get('vendors/{vendor}/enable', 'Purchases\Vendors@enable')->name('vendors.enable'); Route::get('vendors/{vendor}/currency', 'Purchases\Vendors@currency')->name('vendors.currency'); Route::get('vendors/{vendor}/disable', 'Purchases\Vendors@disable')->name('vendors.disable'); - Route::resource('vendors', 'Purchases\Vendors'); + Route::resource('vendors', 'Purchases\Vendors', ['middleware' => ['dropzone']]); }); Route::group(['prefix' => 'banking'], function () { @@ -162,7 +162,7 @@ Route::group(['prefix' => 'settings'], function () { Route::group(['as' => 'settings.'], function () { Route::get('settings', 'Settings\Settings@index')->name('index'); Route::patch('settings', 'Settings\Settings@update')->name('update'); - Route::get('company', 'Settings\Company@edit')->name('company.edit'); + Route::get('company', 'Settings\Company@edit')->middleware('dropzone')->name('company.edit'); Route::get('localisation', 'Settings\Localisation@edit')->name('localisation.edit'); Route::get('invoice', 'Settings\Invoice@edit')->name('invoice.edit'); Route::get('default', 'Settings\Defaults@edit')->name('default.edit'); @@ -174,7 +174,7 @@ Route::group(['prefix' => 'settings'], function () { Route::group(['as' => 'settings.'], function () { Route::get('{alias}/settings', 'Settings\Modules@edit')->name('module.edit'); - Route::patch('{alias}/settings', 'Settings\Modules@update')->name('module.update'); + Route::patch('{alias}/settings', 'Settings\Modules@update')->middleware('dropzone')->name('module.update'); }); Route::group(['as' => 'apps.', 'prefix' => 'apps'], function () { @@ -232,6 +232,6 @@ Route::group(['as' => 'modals.', 'prefix' => 'modals'], function () { Route::patch('invoice-templates', 'Modals\InvoiceTemplates@update')->name('invoice-templates.update'); Route::get('documents/item-columns/edit', 'Modals\DocumentItemColumns@edit')->name('documents.item-columns.edit'); Route::patch('documents/item-columns', 'Modals\DocumentItemColumns@update')->name('documents.item-columns.update'); - Route::resource('documents/{document}/transactions', 'Modals\DocumentTransactions', ['names' => 'documents.document.transactions', 'middleware' => ['date.format', 'money']]); + Route::resource('documents/{document}/transactions', 'Modals\DocumentTransactions', ['names' => 'documents.document.transactions', 'middleware' => ['date.format', 'money', 'dropzone']]); Route::resource('taxes', 'Modals\Taxes'); }); diff --git a/routes/portal.php b/routes/portal.php index 968f71144..856ee4ff3 100644 --- a/routes/portal.php +++ b/routes/portal.php @@ -20,7 +20,7 @@ Route::group(['as' => 'portal.'], function () { Route::resource('payments', 'Portal\Payments'); Route::get('profile/read-invoices', 'Portal\Profile@readOverdueInvoices')->name('invoices.read'); - Route::resource('profile', 'Portal\Profile'); + Route::resource('profile', 'Portal\Profile', ['middleware' => ['dropzone']]); Route::get('logout', 'Auth\Login@destroy')->name('logout'); }); From 55ef9559eb581be68cc9097ce8d1f6142825740b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Wed, 10 Feb 2021 12:07:33 +0300 Subject: [PATCH 038/121] File group changes.. --- .../assets/js/components/AkauntingDropzoneFileUpload.vue | 1 + resources/assets/js/plugins/form.js | 6 +++++- resources/views/partials/form/file_group.blade.php | 6 +++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/resources/assets/js/components/AkauntingDropzoneFileUpload.vue b/resources/assets/js/components/AkauntingDropzoneFileUpload.vue index a756602f1..dff2f1677 100644 --- a/resources/assets/js/components/AkauntingDropzoneFileUpload.vue +++ b/resources/assets/js/components/AkauntingDropzoneFileUpload.vue @@ -195,6 +195,7 @@ export default { size: attachment.size, type: attachment.type, download: attachment.downloadPath, + dropzone: 'edit', }; dropzone.emit("addedfile", mockFile); diff --git a/resources/assets/js/plugins/form.js b/resources/assets/js/plugins/form.js index aac79e8a6..fe839c8a9 100644 --- a/resources/assets/js/plugins/form.js +++ b/resources/assets/js/plugins/form.js @@ -347,7 +347,11 @@ export default class Form { submit() { FormData.prototype.appendRecursive = function(data, wrapper = null) { - for(var name in data) { + for (var name in data) { + if (name == "previewElement" || name == "previewTemplate") { + continue; + } + if (wrapper) { if ((typeof data[name] == 'object' || Array.isArray(data[name])) && ((data[name] instanceof File != true ) && (data[name] instanceof Blob != true))) { this.appendRecursive(data[name], wrapper + '[' + name + ']'); diff --git a/resources/views/partials/form/file_group.blade.php b/resources/views/partials/form/file_group.blade.php index bea74d73f..1b7158f4d 100644 --- a/resources/views/partials/form/file_group.blade.php +++ b/resources/views/partials/form/file_group.blade.php @@ -57,11 +57,11 @@ @elseif ($value instanceof \Plank\Mediable\Media) @php $attachments[] = [ - 'id' => $attachment->id, + 'id' => $value->id, 'name' => $value->filename . '.' . $value->extension, 'path' => route('uploads.get', $value->id), - 'type' => $attachment->mime_type, - 'size' => $attachment->size, + 'type' => $value->mime_type, + 'size' => $value->size, 'downloadPath' => false, ]; @endphp From eaab52328b380c0adfba157f784bafaf9df9646c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Wed, 10 Feb 2021 12:08:16 +0300 Subject: [PATCH 039/121] fixed transaction request.. --- app/Http/Requests/Banking/Transaction.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Requests/Banking/Transaction.php b/app/Http/Requests/Banking/Transaction.php index dfa4f2f4d..e3b347c8e 100644 --- a/app/Http/Requests/Banking/Transaction.php +++ b/app/Http/Requests/Banking/Transaction.php @@ -41,7 +41,7 @@ class Transaction extends FormRequest 'contact_id' => 'nullable|integer', 'category_id' => 'required|integer', 'payment_method' => 'required|string', - 'attachment' => $attachment, + 'attachment.*' => $attachment, ]; } From d82c25108504f02b058dcb25d8dbc435f2adda46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Wed, 10 Feb 2021 12:08:39 +0300 Subject: [PATCH 040/121] change media delete format.. --- app/Jobs/Banking/UpdateTransaction.php | 4 ++-- app/Jobs/Document/UpdateDocument.php | 4 ++-- app/Traits/Uploads.php | 33 +++++++++++++++++++++++++- 3 files changed, 36 insertions(+), 5 deletions(-) diff --git a/app/Jobs/Banking/UpdateTransaction.php b/app/Jobs/Banking/UpdateTransaction.php index 0d95bf6b1..ea5733ce1 100644 --- a/app/Jobs/Banking/UpdateTransaction.php +++ b/app/Jobs/Banking/UpdateTransaction.php @@ -37,7 +37,7 @@ class UpdateTransaction extends Job // Upload attachment if ($this->request->file('attachment')) { - $this->transaction->delete_attachment(); + $this->deleteMediaModel($this->transaction, 'attachment', $this->request); foreach ($this->request->file('attachment') as $attachment) { $media = $this->getMedia($attachment, 'transactions'); @@ -45,7 +45,7 @@ class UpdateTransaction extends Job $this->transaction->attachMedia($media, 'attachment'); } } elseif (!$this->request->file('attachment') && $this->transaction->attachment) { - $this->transaction->delete_attachment(); + $this->deleteMediaModel($this->transaction, 'attachment', $this->request); } // Recurring diff --git a/app/Jobs/Document/UpdateDocument.php b/app/Jobs/Document/UpdateDocument.php index 2d91a48d6..7edff00f9 100644 --- a/app/Jobs/Document/UpdateDocument.php +++ b/app/Jobs/Document/UpdateDocument.php @@ -46,7 +46,7 @@ class UpdateDocument extends Job \DB::transaction(function () { // Upload attachment if ($this->request->file('attachment')) { - $this->document->delete_attachment(); + $this->deleteMediaModel($this->document, 'attachment', $this->request); foreach ($this->request->file('attachment') as $attachment) { $media = $this->getMedia($attachment, Str::plural($this->document->type)); @@ -54,7 +54,7 @@ class UpdateDocument extends Job $this->document->attachMedia($media, 'attachment'); } } elseif (!$this->request->file('attachment') && $this->document->attachment) { - $this->document->delete_attachment(); + $this->deleteMediaModel($this->document, 'attachment', $this->request); } $this->deleteRelationships($this->document, ['items', 'item_taxes', 'totals']); diff --git a/app/Traits/Uploads.php b/app/Traits/Uploads.php index 18f219e0d..1576ab5d1 100644 --- a/app/Traits/Uploads.php +++ b/app/Traits/Uploads.php @@ -3,10 +3,10 @@ namespace App\Traits; use MediaUploader; +use App\Models\Common\Media as MediaModel; trait Uploads { - public function getUploadedFilePath($file, $folder = 'settings', $company_id = null) { $path = ''; @@ -63,4 +63,35 @@ trait Uploads return MediaUploader::importPath($disk, $path); } + + public function deleteMediaModel($model, $parameter, $request = null) + { + $medias = $model->$parameter; + + if (!$medias) { + return; + } + + $already_uploaded = []; + + if ($request && isset($request['uploaded_' . $parameter])) { + $uploaded = $request['uploaded_' . $parameter]; + + if (count($medias) == count($uploaded)) { + return; + } + + foreach ($uploaded as $old_media) { + $already_uploaded[] = $old_media['id']; + } + } + + foreach ((array)$medias as $media) { + if (in_array($media->id, $already_uploaded)) { + continue; + } + + MediaModel::where('id', $media->id)->delete(); + } + } } From 5adc60b68858626400443ede0107e4336256c192 Mon Sep 17 00:00:00 2001 From: Sevan Nerse Date: Wed, 10 Feb 2021 16:29:33 +0300 Subject: [PATCH 041/121] code refactoring for recent works related to dropzone --- app/Http/Middleware/Dropzone.php | 2 +- .../assets/js/components/AkauntingDropzoneFileUpload.vue | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/app/Http/Middleware/Dropzone.php b/app/Http/Middleware/Dropzone.php index 8b0bba235..eeee69e28 100644 --- a/app/Http/Middleware/Dropzone.php +++ b/app/Http/Middleware/Dropzone.php @@ -16,7 +16,7 @@ class Dropzone */ public function handle($request, Closure $next) { - if (($request->method() != 'POST') && ($request->method() != 'PATCH')) { + if (!in_array($request->method(), ['POST', 'PATCH'])) { return $next($request); } diff --git a/resources/assets/js/components/AkauntingDropzoneFileUpload.vue b/resources/assets/js/components/AkauntingDropzoneFileUpload.vue index dff2f1677..5fdba7a46 100644 --- a/resources/assets/js/components/AkauntingDropzoneFileUpload.vue +++ b/resources/assets/js/components/AkauntingDropzoneFileUpload.vue @@ -144,18 +144,16 @@ export default { if (file.type.indexOf("image") == -1) { var ext = file.name.split('.').pop(); - + + file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none"); + if (ext == "pdf") { - file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none"); file.previewElement.querySelector("[data-dz-thumbnail-pdf]").classList.remove("d-none"); } else if ((ext.indexOf("doc") != -1) || (ext.indexOf("docx") != -1)) { - file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none"); file.previewElement.querySelector("[data-dz-thumbnail-word]").classList.remove("d-none"); } else if ((ext.indexOf("xls") != -1) || (ext.indexOf("xlsx") != -1)) { - file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none"); file.previewElement.querySelector("[data-dz-thumbnail-excel]").classList.remove("d-none"); } else { - file.previewElement.querySelector("[data-dz-thumbnail]").classList.add("d-none"); file.previewElement.querySelector("[data-dz-thumbnail-image]").classList.remove("d-none"); } } From 9efca137a0e7c142edec35cbed09aaf0df1323cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Wed, 10 Feb 2021 17:06:35 +0300 Subject: [PATCH 042/121] close #1831 Fixed: Unable to select company on New User Step --- config/search-string.php | 1 + 1 file changed, 1 insertion(+) diff --git a/config/search-string.php b/config/search-string.php index b0bb646f6..64d4b5819 100644 --- a/config/search-string.php +++ b/config/search-string.php @@ -114,6 +114,7 @@ return [ App\Models\Common\Company::class => [ 'columns' => [ 'domain' => ['searchable' => true], + 'settings.value' => ['searchable' => true], 'enabled' => ['boolean' => true], ], ], From 8cc2aeb9b9449585274032400d9c9fe1176c2a6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Wed, 10 Feb 2021 17:38:58 +0300 Subject: [PATCH 043/121] close #1845 Fixed: Wrong price when creating bills --- app/View/Components/SelectItemButton.php | 6 +++--- resources/views/components/documents/form/content.blade.php | 2 ++ resources/views/components/documents/form/main.blade.php | 2 ++ resources/views/purchases/bills/create.blade.php | 2 +- resources/views/purchases/bills/edit.blade.php | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/View/Components/SelectItemButton.php b/app/View/Components/SelectItemButton.php index 9fa8b4e12..ae1008d96 100644 --- a/app/View/Components/SelectItemButton.php +++ b/app/View/Components/SelectItemButton.php @@ -36,7 +36,7 @@ class SelectItemButton extends Component public function render() { $items = Item::enabled()->orderBy('name')->take(setting('default.select_limit'))->get(); - $price_type= $this->getPriceType($this->type, $this->isSale, $this->isPurchase); + $price_type = $this->getPriceType($this->type, $this->isSale, $this->isPurchase); foreach ($items as $item) { $price = $item->{$price_type . '_price'}; @@ -44,7 +44,7 @@ class SelectItemButton extends Component $item->price = $price; } - $price = ($this->isPurchase) ? 'purchase_price' : 'sale_price'; + $price = $price_type . '_price'; return view('components.select-item-button', compact('items', 'price')); } @@ -55,7 +55,7 @@ class SelectItemButton extends Component return 'sale'; } - if (!empty($is_sale)) { + if (!empty($is_purchase)) { return 'purchase'; } diff --git a/resources/views/components/documents/form/content.blade.php b/resources/views/components/documents/form/content.blade.php index cd7d00c79..c58ddcc1b 100644 --- a/resources/views/components/documents/form/content.blade.php +++ b/resources/views/components/documents/form/content.blade.php @@ -65,6 +65,8 @@ hide-discount="{{ $hideDiscount }}" hide-amount="{{ $hideAmount }}" text-amount="{{ $textAmount }}" + is-sale-price="{{ $isSalePrice }}" + is-purchase-price="{{ $isPurchasePrice }}" /> @if (!$hideFooter) diff --git a/resources/views/components/documents/form/main.blade.php b/resources/views/components/documents/form/main.blade.php index 7f84b7371..6c16f296e 100644 --- a/resources/views/components/documents/form/main.blade.php +++ b/resources/views/components/documents/form/main.blade.php @@ -42,6 +42,8 @@ hide-discount="{{ $hideDiscount }}" hide-amount="{{ $hideAmount }}" text-amount="{{ $textAmount }}" + is-sale-price="{{ $isSalePrice }}" + is-purchase-price="{{ $isPurchasePrice }}" /> setting('bill.title', trans_choice('general.bills', 1))])) @section('content') - + @endsection @push('scripts_start') diff --git a/resources/views/purchases/bills/edit.blade.php b/resources/views/purchases/bills/edit.blade.php index d18dff854..75d66f511 100644 --- a/resources/views/purchases/bills/edit.blade.php +++ b/resources/views/purchases/bills/edit.blade.php @@ -3,7 +3,7 @@ @section('title', trans('general.title.edit', ['type' => trans_choice('general.bills', 1)])) @section('content') - + @endsection @push('scripts_start') From 6d47a8c32a9bdc51734800599ecd43b0403e2e54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Thu, 11 Feb 2021 01:57:17 +0300 Subject: [PATCH 044/121] fixed #1830 --- app/Http/Controllers/Banking/Transfers.php | 57 +------------------ app/Models/Banking/Transfer.php | 19 ++++++- config/search-string.php | 13 +++++ resources/lang/en-GB/search_string.php | 2 + .../views/banking/transfers/index.blade.php | 17 ++++-- 5 files changed, 45 insertions(+), 63 deletions(-) diff --git a/app/Http/Controllers/Banking/Transfers.php b/app/Http/Controllers/Banking/Transfers.php index 70c6fc812..4f37c97f8 100644 --- a/app/Http/Controllers/Banking/Transfers.php +++ b/app/Http/Controllers/Banking/Transfers.php @@ -25,64 +25,11 @@ class Transfers extends Controller */ public function index() { - $data = []; - - $items = Transfer::with( + $transfers = Transfer::with( 'expense_transaction', 'expense_transaction.account', 'income_transaction', 'income_transaction.account' )->collect(['expense_transaction.paid_at' => 'desc']); - foreach ($items as $item) { - $income_transaction = $item->income_transaction; - $expense_transaction = $item->expense_transaction; - - $name = trans('transfers.messages.delete', [ - 'from' => $expense_transaction->account->name, - 'to' => $income_transaction->account->name, - 'amount' => money($expense_transaction->amount, $expense_transaction->currency_code, true) - ]); - - $data[] = (object) [ - 'id' => $item->id, - 'name' => $name, - 'from_account' => $expense_transaction->account->name, - 'to_account' => $income_transaction->account->name, - 'amount' => $expense_transaction->amount, - 'currency_code' => $expense_transaction->currency_code, - 'paid_at' => $expense_transaction->paid_at, - ]; - } - - $special_key = [ - 'expense_transaction.name' => 'from_account', - 'income_transaction.name' => 'to_account', - ]; - - $request = request(); - - if (isset($request['sort']) && array_key_exists($request['sort'], $special_key)) { - $sort_order = []; - - foreach ($data as $key => $value) { - $sort = $request['sort']; - - if (array_key_exists($request['sort'], $special_key)) { - $sort = $special_key[$request['sort']]; - } - - $sort_order[$key] = $value->{$sort}; - } - - $sort_type = (isset($request['order']) && $request['order'] == 'asc') ? SORT_ASC : SORT_DESC; - - array_multisort($sort_order, $sort_type, $data); - } - - $transfers = $request->expectsJson() ? $data : $this->paginate($data); - - $accounts = collect(Account::enabled()->orderBy('name')->pluck('name', 'id')) - ->prepend(trans('general.all_type', ['type' => trans_choice('general.accounts', 2)]), ''); - - return $this->response('banking.transfers.index', compact('transfers', 'accounts')); + return $this->response('banking.transfers.index', compact('transfers')); } /** diff --git a/app/Models/Banking/Transfer.php b/app/Models/Banking/Transfer.php index 08bdf65a7..0799abc1c 100644 --- a/app/Models/Banking/Transfer.php +++ b/app/Models/Banking/Transfer.php @@ -5,10 +5,11 @@ namespace App\Models\Banking; use App\Abstracts\Model; use App\Traits\Currencies; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Znck\Eloquent\Traits\BelongsToThrough; class Transfer extends Model { - use HasFactory, Currencies; + use BelongsToThrough, Currencies, HasFactory; protected $table = 'transfers'; @@ -33,7 +34,13 @@ class Transfer extends Model public function expense_account() { - return $this->belongsTo('App\Models\Banking\Account', 'expense_transaction.account_id', 'id')->withDefault(['name' => trans('general.na')]); + return $this->belongsToThrough( + 'App\Models\Banking\Account', + 'App\Models\Banking\Transaction', + null, + '', + ['App\Models\Banking\Transaction' => 'expense_transaction_id'] + )->withDefault(['name' => trans('general.na')]); } public function income_transaction() @@ -43,7 +50,13 @@ class Transfer extends Model public function income_account() { - return $this->belongsTo('App\Models\Banking\Account', 'income_transaction.account_id', 'id')->withDefault(['name' => trans('general.na')]); + return $this->belongsToThrough( + 'App\Models\Banking\Account', + 'App\Models\Banking\Transaction', + null, + '', + ['App\Models\Banking\Transaction' => 'income_transaction_id'] + )->withDefault(['name' => trans('general.na')]); } /** diff --git a/config/search-string.php b/config/search-string.php index 64d4b5819..00ff96ba3 100644 --- a/config/search-string.php +++ b/config/search-string.php @@ -111,6 +111,19 @@ return [ ], ], + App\Models\Banking\Transfer::class => [ + 'columns' => [ + 'expense_account' => [ + 'relationship' => true, + 'route' => 'accounts.index', + ], + 'income_account' => [ + 'relationship' => true, + 'route' => 'accounts.index', + ], + ], + ], + App\Models\Common\Company::class => [ 'columns' => [ 'domain' => ['searchable' => true], diff --git a/resources/lang/en-GB/search_string.php b/resources/lang/en-GB/search_string.php index 7346ca3ca..05e9aef86 100644 --- a/resources/lang/en-GB/search_string.php +++ b/resources/lang/en-GB/search_string.php @@ -13,6 +13,8 @@ return [ 'issued_at' => 'Issue Date', 'symbol_first' => 'Symbol Position', 'reconciled' => 'Reconciled', + 'expense_account' => 'From Account', + 'income_account' => 'To Account', ], ]; diff --git a/resources/views/banking/transfers/index.blade.php b/resources/views/banking/transfers/index.blade.php index 6c4a63031..794e085c3 100644 --- a/resources/views/banking/transfers/index.blade.php +++ b/resources/views/banking/transfers/index.blade.php @@ -43,12 +43,19 @@
@foreach($transfers as $item) + @php + $item->name = trans('transfers.messages.delete', [ + 'from' => $item->expense_transaction->account->name, + 'to' => $item->income_transaction->account->name, + 'amount' => money($item->expense_transaction->amount, $item->expense_transaction->currency_code, true) + ]); + @endphp - - - - - + + + + +
{{ Form::bulkActionGroup($item->id, $item->from_account) }}@date($item->paid_at){{ $item->from_account }}{{ $item->to_account }}@money($item->amount, $item->currency_code, true){{ Form::bulkActionGroup($item->id, $item->expense_transaction->account->name) }}@date($item->expense_transaction->paid_at){{ $item->expense_transaction->account->name }}{{ $item->income_transaction->account->name }}@money($item->expense_transaction->amount, $item->expense_transaction->currency_code, true) {!! Form::close() !!} @endsection + +@push('scripts_start') + +@endpush diff --git a/webpack.mix.js b/webpack.mix.js index 4d1cf291e..f1081e3cd 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -38,10 +38,11 @@ mix .js('resources/assets/js/views/banking/reconciliations.js', 'public/js/banking') // Common - .js('resources/assets/js/views/common/items.js', 'public/js/common') .js('resources/assets/js/views/common/companies.js', 'public/js/common') .js('resources/assets/js/views/common/dashboards.js', 'public/js/common') .js('resources/assets/js/views/common/documents.js', 'public/js/common') + .js('resources/assets/js/views/common/imports.js', 'public/js/common') + .js('resources/assets/js/views/common/items.js', 'public/js/common') .js('resources/assets/js/views/common/reports.js', 'public/js/common') .js('resources/assets/js/views/common/search.js', 'public/js/common') From e0878c045905040b4ab731784853a2fcb4827ad4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 11:20:10 +0300 Subject: [PATCH 053/121] fixed TransfersTest import step.. --- tests/Feature/Banking/TransfersTest.php | 32 ++++++++++++------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/tests/Feature/Banking/TransfersTest.php b/tests/Feature/Banking/TransfersTest.php index 4cf86a02e..27afbc121 100644 --- a/tests/Feature/Banking/TransfersTest.php +++ b/tests/Feature/Banking/TransfersTest.php @@ -81,8 +81,8 @@ class TransfersTest extends FeatureTestCase \Excel::fake(); $this->loginAs() - ->get(route('transfers.export')) - ->assertStatus(200); + ->get(route('transfers.export')) + ->assertStatus(200); \Excel::assertDownloaded( \Str::filename(trans_choice('general.transfers', 2)) . '.xlsx', @@ -101,10 +101,10 @@ class TransfersTest extends FeatureTestCase \Excel::fake(); $this->loginAs() - ->post( - route('bulk-actions.action', ['group' => 'banking', 'type' => 'transfers']), - ['handle' => 'export', 'selected' => [$transfers->random()->id]] - ) + ->post( + route('bulk-actions.action', ['group' => 'banking', 'type' => 'transfers']), + ['handle' => 'export', 'selected' => [$transfers->random()->id]] + ) ->assertStatus(200); \Excel::assertDownloaded( @@ -120,16 +120,16 @@ class TransfersTest extends FeatureTestCase \Excel::fake(); $this->loginAs() - ->post( - route('transfers.import'), - [ - 'import' => UploadedFile::fake()->createWithContent( - 'transfers.xlsx', - File::get(public_path('files/import/transfers.xlsx')) - ), - ] - ) - ->assertStatus(302); + ->post( + route('transfers.import'), + [ + 'import' => UploadedFile::fake()->createWithContent( + 'transfers.xlsx', + File::get(public_path('files/import/transfers.xlsx')) + ), + ] + ) + ->assertStatus(200); \Excel::assertImported('transfers.xlsx'); From 5d41645bbb07a75481bf39f5577e3ac45d2e1c3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 11:54:34 +0300 Subject: [PATCH 054/121] added export/ bulk action export and import feature test for items.. --- tests/Feature/Common/ItemsTest.php | 66 ++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/tests/Feature/Common/ItemsTest.php b/tests/Feature/Common/ItemsTest.php index 0f6559199..eb696e0ca 100644 --- a/tests/Feature/Common/ItemsTest.php +++ b/tests/Feature/Common/ItemsTest.php @@ -2,8 +2,11 @@ namespace Tests\Feature\Common; +use App\Exports\Common\Items as Export; use App\Jobs\Common\CreateItem; use App\Models\Common\Item; +use Illuminate\Http\UploadedFile; +use Illuminate\Support\Facades\File; use Tests\Feature\FeatureTestCase; class ItemsTest extends FeatureTestCase @@ -82,6 +85,69 @@ class ItemsTest extends FeatureTestCase $this->assertSoftDeleted('items', $request); } + public function testItShouldExportItems() + { + $count = 5; + Item::factory()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->get(route('items.export')) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.items', 2)) . '.xlsx', + function (Export $export) use ($count) { + // Assert that the correct export is downloaded. + return $export->sheets()['items']->collection()->count() === $count; + } + ); + } + + public function testItShouldExportSelectedItems() + { + $count = 5; + $items = Item::factory()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->post( + route('bulk-actions.action', ['group' => 'common', 'type' => 'items']), + ['handle' => 'export', 'selected' => [$items->random()->id]] + ) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.items', 2)) . '.xlsx', + function (Export $export) { + return $export->sheets()['items']->collection()->count() === 1; + } + ); + } + + public function testItShouldImportItems() + { + \Excel::fake(); + + $this->loginAs() + ->post( + route('items.import'), + [ + 'import' => UploadedFile::fake()->createWithContent( + 'items.xlsx', + File::get(public_path('files/import/items.xlsx')) + ), + ] + ) + ->assertStatus(200); + + \Excel::assertImported('items.xlsx'); + + $this->assertFlashLevel('success'); + } + public function getRequest() { return Item::factory()->enabled()->raw(); From fff6029af3c290936795870116058d07504335a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 12:16:57 +0300 Subject: [PATCH 055/121] added export/ bulk action export and import feature test for bills.. --- tests/Feature/Purchases/BillsTest.php | 66 +++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/tests/Feature/Purchases/BillsTest.php b/tests/Feature/Purchases/BillsTest.php index b7e3a5e93..10a7866bc 100644 --- a/tests/Feature/Purchases/BillsTest.php +++ b/tests/Feature/Purchases/BillsTest.php @@ -2,8 +2,11 @@ namespace Tests\Feature\Purchases; +use App\Exports\Purchases\Bills as Export; use App\Jobs\Document\CreateDocument; use App\Models\Document\Document; +use Illuminate\Http\UploadedFile; +use Illuminate\Support\Facades\File; use Tests\Feature\FeatureTestCase; class BillsTest extends FeatureTestCase @@ -104,6 +107,69 @@ class BillsTest extends FeatureTestCase ]); } + public function testItShouldExportBills() + { + $count = 5; + Document::factory()->bill()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->get(route('bills.export')) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.bills', 2)) . '.xlsx', + function (Export $export) use ($count) { + // Assert that the correct export is downloaded. + return $export->sheets()['bills']->collection()->count() === $count; + } + ); + } + + public function testItShouldExportSelectedBills() + { + $count = 5; + $bills = Document::factory()->bill()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->post( + route('bulk-actions.action', ['group' => 'purchases', 'type' => 'bills']), + ['handle' => 'export', 'selected' => [$bills->random()->id]] + ) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.bills', 2)) . '.xlsx', + function (Export $export) { + return $export->sheets()['bills']->collection()->count() === 1; + } + ); + } + + public function testItShouldImportBills() + { + \Excel::fake(); + + $this->loginAs() + ->post( + route('bills.import'), + [ + 'import' => UploadedFile::fake()->createWithContent( + 'bills.xlsx', + File::get(public_path('files/import/bills.xlsx')) + ), + ] + ) + ->assertStatus(200); + + \Excel::assertImported('bills.xlsx'); + + $this->assertFlashLevel('success'); + } + public function getRequest($recurring = false) { $factory = Document::factory(); From d7bd69eb5f2c2606add962eec97c74357b6f122d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 12:25:03 +0300 Subject: [PATCH 056/121] added export/ bulk action export and import feature test for payments.. --- tests/Feature/Purchases/PaymentsTest.php | 66 ++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/tests/Feature/Purchases/PaymentsTest.php b/tests/Feature/Purchases/PaymentsTest.php index 8cc680296..11a6ea6ab 100644 --- a/tests/Feature/Purchases/PaymentsTest.php +++ b/tests/Feature/Purchases/PaymentsTest.php @@ -2,8 +2,11 @@ namespace Tests\Feature\Purchases; +use App\Exports\Purchases\Payments as Export; use App\Jobs\Banking\CreateTransaction; use App\Models\Banking\Transaction; +use Illuminate\Http\UploadedFile; +use Illuminate\Support\Facades\File; use Tests\Feature\FeatureTestCase; class PaymentsTest extends FeatureTestCase @@ -82,6 +85,69 @@ class PaymentsTest extends FeatureTestCase $this->assertSoftDeleted('transactions', $request); } + public function testItShouldExportPayments() + { + $count = 5; + Transaction::factory()->expense()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->get(route('payments.export')) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.payments', 2)) . '.xlsx', + function (Export $export) use ($count) { + // Assert that the correct export is downloaded. + return $export->collection()->count() === $count; + } + ); + } + + public function testItShouldExportSelectedPayments() + { + $count = 5; + $payments = Transaction::factory()->expense()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->post( + route('bulk-actions.action', ['group' => 'purchases', 'type' => 'payments']), + ['handle' => 'export', 'selected' => [$payments->random()->id]] + ) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.payments', 2)) . '.xlsx', + function (Export $export) { + return $export->collection()->count() === 1; + } + ); + } + + public function testItShouldImportPayments() + { + \Excel::fake(); + + $this->loginAs() + ->post( + route('payments.import'), + [ + 'import' => UploadedFile::fake()->createWithContent( + 'payments.xlsx', + File::get(public_path('files/import/payments.xlsx')) + ), + ] + ) + ->assertStatus(200); + + \Excel::assertImported('payments.xlsx'); + + $this->assertFlashLevel('success'); + } + public function getRequest() { return Transaction::factory()->expense()->raw(); From f804e19524f0b92a0a238af840fa598c05b1f4bc Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Fri, 12 Feb 2021 09:25:12 +0000 Subject: [PATCH 057/121] new crowdin translations --- resources/lang/az-AZ/search_string.php | 2 ++ resources/lang/bs-BA/items.php | 5 +++-- resources/lang/bs-BA/search_string.php | 2 ++ resources/lang/bs-BA/settings.php | 13 +++++++------ resources/lang/ca-ES/search_string.php | 2 ++ resources/lang/da-DK/items.php | 5 +++-- resources/lang/da-DK/reconciliations.php | 2 +- resources/lang/da-DK/search_string.php | 2 ++ resources/lang/da-DK/settings.php | 13 +++++++------ resources/lang/de-DE/items.php | 5 +++-- resources/lang/de-DE/search_string.php | 2 ++ resources/lang/de-DE/settings.php | 13 +++++++------ resources/lang/en-AU/items.php | 5 +++-- resources/lang/en-AU/search_string.php | 2 ++ resources/lang/en-AU/settings.php | 13 +++++++------ resources/lang/it-IT/general.php | 3 +++ resources/lang/it-IT/items.php | 5 +++-- resources/lang/it-IT/search_string.php | 5 +++++ resources/lang/it-IT/settings.php | 13 +++++++------ resources/lang/ne-NP/items.php | 5 +++-- resources/lang/ne-NP/settings.php | 13 +++++++------ resources/lang/sk-SK/auth.php | 6 ++++-- resources/lang/sk-SK/search_string.php | 20 ++++++++++++++++++++ resources/lang/sq-AL/search_string.php | 2 ++ resources/lang/tr-TR/search_string.php | 2 ++ resources/lang/zh-CN/bills.php | 19 +++---------------- 26 files changed, 112 insertions(+), 67 deletions(-) create mode 100644 resources/lang/sk-SK/search_string.php diff --git a/resources/lang/az-AZ/search_string.php b/resources/lang/az-AZ/search_string.php index 4fd3834b1..bdf382b82 100644 --- a/resources/lang/az-AZ/search_string.php +++ b/resources/lang/az-AZ/search_string.php @@ -13,6 +13,8 @@ return [ 'issued_at' => 'Əməliyyat Tarixi', 'symbol_first' => 'İşarə Yeri', 'reconciled' => 'Razılaşdırıldı', + 'expense_account' => 'Göndərən Hesab', + 'income_account' => 'Qəbul Edən Hesab', ], ]; diff --git a/resources/lang/bs-BA/items.php b/resources/lang/bs-BA/items.php index 122db90d3..d114daef7 100644 --- a/resources/lang/bs-BA/items.php +++ b/resources/lang/bs-BA/items.php @@ -2,7 +2,8 @@ return [ - 'sales_price' => 'Prodajna cijena', - 'purchase_price' => 'Kupovna cijena', + 'sales_price' => 'Prodajna cijena', + 'purchase_price' => 'Kupovna cijena', + 'enter_item_description' => 'Unesite opis stavke', ]; diff --git a/resources/lang/bs-BA/search_string.php b/resources/lang/bs-BA/search_string.php index 7b27e8220..69c61aa49 100644 --- a/resources/lang/bs-BA/search_string.php +++ b/resources/lang/bs-BA/search_string.php @@ -13,6 +13,8 @@ return [ 'issued_at' => 'Datum dospjeća', 'symbol_first' => 'Položaj simbola', 'reconciled' => 'Usaglašeno', + 'expense_account' => 'Sa računa', + 'income_account' => 'Na račun', ], ]; diff --git a/resources/lang/bs-BA/settings.php b/resources/lang/bs-BA/settings.php index 3d05cd9f5..11e3989ed 100644 --- a/resources/lang/bs-BA/settings.php +++ b/resources/lang/bs-BA/settings.php @@ -3,12 +3,13 @@ return [ 'company' => [ - 'description' => 'Promijenite naziv firme, e-mail, adresu, porezni broj itd', - 'name' => 'Naziv firme', - 'email' => 'E-mail', - 'phone' => 'Telefon', - 'address' => 'Adresa', - 'logo' => 'Logo', + 'description' => 'Promijenite naziv firme, e-mail, adresu, porezni broj itd', + 'name' => 'Naziv firme', + 'email' => 'E-mail', + 'phone' => 'Telefon', + 'address' => 'Adresa', + 'edit_your_business_address' => 'Izmjenite vašu boznis adresu', + 'logo' => 'Logo', ], 'localisation' => [ diff --git a/resources/lang/ca-ES/search_string.php b/resources/lang/ca-ES/search_string.php index b44c3c263..0355e570b 100644 --- a/resources/lang/ca-ES/search_string.php +++ b/resources/lang/ca-ES/search_string.php @@ -13,6 +13,8 @@ return [ 'issued_at' => 'Data de venciment', 'symbol_first' => 'Posició del caràcter', 'reconciled' => 'Concilia', + 'expense_account' => 'Compte origen', + 'income_account' => 'Compte destí', ], ]; diff --git a/resources/lang/da-DK/items.php b/resources/lang/da-DK/items.php index 9f36fb513..7348958b8 100644 --- a/resources/lang/da-DK/items.php +++ b/resources/lang/da-DK/items.php @@ -2,7 +2,8 @@ return [ - 'sales_price' => 'Salgspris', - 'purchase_price' => 'Købspris', + 'sales_price' => 'Salgspris', + 'purchase_price' => 'Købspris', + 'enter_item_description' => 'Indtast varebeskrivelsen', ]; diff --git a/resources/lang/da-DK/reconciliations.php b/resources/lang/da-DK/reconciliations.php index 0ca61e53c..22c3de810 100644 --- a/resources/lang/da-DK/reconciliations.php +++ b/resources/lang/da-DK/reconciliations.php @@ -2,7 +2,7 @@ return [ - 'reconcile' => 'Afstemme', + 'reconcile' => 'Afstem', 'unreconcile' => 'Uafsem', 'reconciled' => 'Afstemt', 'opening_balance' => 'Åbningsbalance', diff --git a/resources/lang/da-DK/search_string.php b/resources/lang/da-DK/search_string.php index 14c471419..2498bf324 100644 --- a/resources/lang/da-DK/search_string.php +++ b/resources/lang/da-DK/search_string.php @@ -13,6 +13,8 @@ return [ 'issued_at' => 'Udstedelsesdato', 'symbol_first' => 'Symbolplacering', 'reconciled' => 'Afstemt', + 'expense_account' => 'Fra konto', + 'income_account' => 'Til konto', ], ]; diff --git a/resources/lang/da-DK/settings.php b/resources/lang/da-DK/settings.php index 57641a0c0..b8e50fa64 100644 --- a/resources/lang/da-DK/settings.php +++ b/resources/lang/da-DK/settings.php @@ -3,12 +3,13 @@ return [ 'company' => [ - 'description' => 'Ændre navn, email, adresse, CVR-nummer mv.', - 'name' => 'Navn', - 'email' => 'E-mail', - 'phone' => 'Telefon', - 'address' => 'Adresse', - 'logo' => 'Logo', + 'description' => 'Ændre navn, email, adresse, CVR-nummer mv.', + 'name' => 'Navn', + 'email' => 'E-mail', + 'phone' => 'Telefon', + 'address' => 'Adresse', + 'edit_your_business_address' => 'Rediger din adresse', + 'logo' => 'Logo', ], 'localisation' => [ diff --git a/resources/lang/de-DE/items.php b/resources/lang/de-DE/items.php index d16b6745d..9fd47b957 100644 --- a/resources/lang/de-DE/items.php +++ b/resources/lang/de-DE/items.php @@ -2,7 +2,8 @@ return [ - 'sales_price' => 'Verkaufspreis', - 'purchase_price' => 'Einkaufspreis', + 'sales_price' => 'Verkaufspreis', + 'purchase_price' => 'Einkaufspreis', + 'enter_item_description' => 'Artikelbeschreibung eingeben', ]; diff --git a/resources/lang/de-DE/search_string.php b/resources/lang/de-DE/search_string.php index 64ee3ca10..147503e52 100644 --- a/resources/lang/de-DE/search_string.php +++ b/resources/lang/de-DE/search_string.php @@ -13,6 +13,8 @@ return [ 'issued_at' => 'Ausstellungsdatum', 'symbol_first' => 'Symbolposition', 'reconciled' => 'Abgeglichen', + 'expense_account' => 'Von Konto', + 'income_account' => 'Auf Konto', ], ]; diff --git a/resources/lang/de-DE/settings.php b/resources/lang/de-DE/settings.php index 6087beaa7..7a32052a3 100644 --- a/resources/lang/de-DE/settings.php +++ b/resources/lang/de-DE/settings.php @@ -3,12 +3,13 @@ return [ 'company' => [ - 'description' => 'Firmenname, E-Mail, Adresse, Steuernummer usw. ändern', - 'name' => 'Name', - 'email' => 'E-Mail', - 'phone' => 'Telefon', - 'address' => 'Adresse', - 'logo' => 'Logo', + 'description' => 'Firmenname, E-Mail, Adresse, Steuernummer usw. ändern', + 'name' => 'Name', + 'email' => 'E-Mail', + 'phone' => 'Telefon', + 'address' => 'Adresse', + 'edit_your_business_address' => 'Geschäftsadresse bearbeiten', + 'logo' => 'Logo', ], 'localisation' => [ diff --git a/resources/lang/en-AU/items.php b/resources/lang/en-AU/items.php index 1ffc7f336..a00c2d803 100644 --- a/resources/lang/en-AU/items.php +++ b/resources/lang/en-AU/items.php @@ -2,7 +2,8 @@ return [ - 'sales_price' => 'Sale Price', - 'purchase_price' => 'Purchase Price', + 'sales_price' => 'Sale Price', + 'purchase_price' => 'Purchase Price', + 'enter_item_description' => 'Enter item description', ]; diff --git a/resources/lang/en-AU/search_string.php b/resources/lang/en-AU/search_string.php index 7346ca3ca..05e9aef86 100644 --- a/resources/lang/en-AU/search_string.php +++ b/resources/lang/en-AU/search_string.php @@ -13,6 +13,8 @@ return [ 'issued_at' => 'Issue Date', 'symbol_first' => 'Symbol Position', 'reconciled' => 'Reconciled', + 'expense_account' => 'From Account', + 'income_account' => 'To Account', ], ]; diff --git a/resources/lang/en-AU/settings.php b/resources/lang/en-AU/settings.php index 820d8e51d..36a5920ed 100644 --- a/resources/lang/en-AU/settings.php +++ b/resources/lang/en-AU/settings.php @@ -3,12 +3,13 @@ return [ 'company' => [ - 'description' => 'Change company name, email, address, tax number etc', - 'name' => 'Name', - 'email' => 'Email', - 'phone' => 'Phone', - 'address' => 'Address', - 'logo' => 'Logo', + 'description' => 'Change company name, email, address, tax number etc', + 'name' => 'Name', + 'email' => 'Email', + 'phone' => 'Phone', + 'address' => 'Address', + 'edit_your_business_address' => 'Edit your business address', + 'logo' => 'Logo', ], 'localisation' => [ diff --git a/resources/lang/it-IT/general.php b/resources/lang/it-IT/general.php index 9a28b557e..34804505f 100644 --- a/resources/lang/it-IT/general.php +++ b/resources/lang/it-IT/general.php @@ -162,6 +162,7 @@ return [ 'amount_due' => 'Importo dovuto', 'card' => [ + 'cards' => 'Carta|Carte', 'name' => 'Nome sulla carta', 'number' => 'Numero della carta', 'expiration_date' => 'Data di scadenza', @@ -191,8 +192,10 @@ return [ 'add_new' => 'Aggiungi nuovo :field', 'edit' => 'Modifica :field', 'contact_edit' => 'Modifica :contact_name :field', + 'drop_file' => 'Trascina i file qui per caricare', 'choose' => 'Scegli :field', 'choose_different' => 'Scegli un campo diverso :field', + 'choose_file' => 'Scegli file', 'no_file_selected' => 'Nessun file selezionato...', ], diff --git a/resources/lang/it-IT/items.php b/resources/lang/it-IT/items.php index ca111f06a..0839ee003 100644 --- a/resources/lang/it-IT/items.php +++ b/resources/lang/it-IT/items.php @@ -2,7 +2,8 @@ return [ - 'sales_price' => 'Prezzo di vendita', - 'purchase_price' => 'Prezzo d\'acquisto', + 'sales_price' => 'Prezzo di vendita', + 'purchase_price' => 'Prezzo d\'acquisto', + 'enter_item_description' => 'Inserisci descrizione articolo', ]; diff --git a/resources/lang/it-IT/search_string.php b/resources/lang/it-IT/search_string.php index a44b560f9..5d90ea28d 100644 --- a/resources/lang/it-IT/search_string.php +++ b/resources/lang/it-IT/search_string.php @@ -10,6 +10,11 @@ return [ 'billed_at' => 'Data fattura di acquisto', 'due_at' => 'Data scadenza', 'invoiced_at' => 'Data fattura', + 'issued_at' => 'Data Emissione', + 'symbol_first' => 'Posizione simbolo', + 'reconciled' => 'Riconciliato', + 'expense_account' => 'Dal conto', + 'income_account' => 'Al Conto', ], ]; diff --git a/resources/lang/it-IT/settings.php b/resources/lang/it-IT/settings.php index 1f1fba95a..831c729ea 100644 --- a/resources/lang/it-IT/settings.php +++ b/resources/lang/it-IT/settings.php @@ -3,12 +3,13 @@ return [ 'company' => [ - 'description' => 'Cambia il nome dell\'azienda, l\'e-mail, il numero di tasse ecc', - 'name' => 'Nome', - 'email' => 'Email', - 'phone' => 'Telefono', - 'address' => 'Indirizzo', - 'logo' => 'Logo', + 'description' => 'Cambia il nome dell\'azienda, l\'e-mail, il numero di tasse ecc', + 'name' => 'Nome', + 'email' => 'Email', + 'phone' => 'Telefono', + 'address' => 'Indirizzo', + 'edit_your_business_address' => 'Modifica il tuo indirizzo business', + 'logo' => 'Logo', ], 'localisation' => [ diff --git a/resources/lang/ne-NP/items.php b/resources/lang/ne-NP/items.php index c1bd2ee64..20674c402 100644 --- a/resources/lang/ne-NP/items.php +++ b/resources/lang/ne-NP/items.php @@ -2,7 +2,8 @@ return [ - 'sales_price' => 'विक्री मुल्य', - 'purchase_price' => 'क्रय मुल्य', + 'sales_price' => 'विक्री मुल्य', + 'purchase_price' => 'क्रय मुल्य', + 'enter_item_description' => 'वस्तु वर्णन प्रविष्ट गर्नुहोस्', ]; diff --git a/resources/lang/ne-NP/settings.php b/resources/lang/ne-NP/settings.php index afceb643c..31839b8c5 100644 --- a/resources/lang/ne-NP/settings.php +++ b/resources/lang/ne-NP/settings.php @@ -3,12 +3,13 @@ return [ 'company' => [ - 'description' => 'कम्पनीको नाम, इमेल, ठेगाना, कर सङ्ख्या आदि परिवर्तन गर्नुहोस्', - 'name' => 'नाम', - 'email' => 'ईमेल', - 'phone' => 'फोन', - 'address' => 'ठेगाना', - 'logo' => 'लोगो', + 'description' => 'कम्पनीको नाम, इमेल, ठेगाना, कर सङ्ख्या आदि परिवर्तन गर्नुहोस्', + 'name' => 'नाम', + 'email' => 'ईमेल', + 'phone' => 'फोन', + 'address' => 'ठेगाना', + 'edit_your_business_address' => 'तपाईंको व्यवसाय ठेगाना सम्पादन गर्नुहोस्', + 'logo' => 'लोगो', ], 'localisation' => [ diff --git a/resources/lang/sk-SK/auth.php b/resources/lang/sk-SK/auth.php index 8690bbc72..f64fb92b7 100644 --- a/resources/lang/sk-SK/auth.php +++ b/resources/lang/sk-SK/auth.php @@ -13,16 +13,18 @@ return [ 'current_email' => 'Aktuálny E-mail', 'reset' => 'Reset', 'never' => 'nikdy', - + 'landing_page' => 'Úvodná stránka', + 'password' => [ 'current' => 'Heslo', 'current_confirm' => 'Potvrdenie hesla', 'new' => 'Nové heslo', 'new_confirm' => 'Potvrdenie hesla', ], - + 'error' => [ 'self_delete' => 'Chyba: Nemožete zmazať tento účet pokiaľ ste prihlásený!', + 'self_disable' => 'Chyba: Nemôžete zakázať samého seba!', 'no_company' => 'Chyba: Žiadna spoločnosť priradené k vášmu kontu. Prosím, kontaktujte správcu systému.', ], diff --git a/resources/lang/sk-SK/search_string.php b/resources/lang/sk-SK/search_string.php new file mode 100644 index 000000000..27d8457ba --- /dev/null +++ b/resources/lang/sk-SK/search_string.php @@ -0,0 +1,20 @@ + [ + 'last_logged_in_at' => 'Posledné prihlásenie', + 'paid_at' => 'Dátum platby', + 'started_at' => 'Dátum začiatku', + 'ended_at' => 'Dátum ukončenia', + 'billed_at' => 'Dátum vystavenia', + 'due_at' => 'Dátum splatnosti', + 'invoiced_at' => 'Dátum fakturácie', + 'issued_at' => 'Dátum vydania', + 'symbol_first' => 'Pozícia symbolu', + 'reconciled' => 'Vyrovanané', + 'expense_account' => 'Z účtu', + 'income_account' => 'Na účet', + ], + +]; diff --git a/resources/lang/sq-AL/search_string.php b/resources/lang/sq-AL/search_string.php index fb9e12b01..b4eb4879a 100644 --- a/resources/lang/sq-AL/search_string.php +++ b/resources/lang/sq-AL/search_string.php @@ -13,6 +13,8 @@ return [ 'issued_at' => 'Data e Lëshimit', 'symbol_first' => 'Pozicioni i Simbolit', 'reconciled' => 'I Pajtuar', + 'expense_account' => 'Nga Llogaria', + 'income_account' => 'Në Llogarinë', ], ]; diff --git a/resources/lang/tr-TR/search_string.php b/resources/lang/tr-TR/search_string.php index 481415f15..354eae39b 100644 --- a/resources/lang/tr-TR/search_string.php +++ b/resources/lang/tr-TR/search_string.php @@ -13,6 +13,8 @@ return [ 'issued_at' => 'İşlem Tarihi', 'symbol_first' => 'Simge Konumu', 'reconciled' => 'Mutabakat Yapıldı', + 'expense_account' => 'Gönderen Hesap', + 'income_account' => 'Alan Hesap', ], ]; diff --git a/resources/lang/zh-CN/bills.php b/resources/lang/zh-CN/bills.php index b8889aef5..611b32dfc 100644 --- a/resources/lang/zh-CN/bills.php +++ b/resources/lang/zh-CN/bills.php @@ -13,7 +13,7 @@ return [ 'price' => '价格', 'sub_total' => '小计', 'discount' => '折扣', - 'item_discount' => 'Line Discount', + 'item_discount' => '行折扣', 'tax_total' => '税率', 'total' => '总计', @@ -29,29 +29,16 @@ return [ 'histories' => '历史记录', 'payments' => '付款方式', 'add_payment' => '新增付款方式', - 'mark_paid' => 'Mark Paid', + 'mark_paid' => '标记为已付款', 'mark_received' => '标记已收到', - 'mark_cancelled' => 'Mark Cancelled', + 'mark_cancelled' => '标记为已取消', 'download_pdf' => '下载 PDF格式', 'send_mail' => '发送邮件', 'create_bill' => '创建帐单', 'receive_bill' => '接收账单', 'make_payment' => '支付', - 'statuses' => [ - 'draft' => '草稿', - 'received' => '已收到', - 'partial' => '部分', - 'paid' => '已付款', - 'overdue' => '已逾期', - 'unpaid' => '未付款', - 'cancelled' => 'Cancelled', - ], - 'messages' => [ - 'marked_received' => 'Bill marked as received!', - 'marked_paid' => 'Bill marked as paid!', - 'marked_cancelled' => 'Bill marked as cancelled!', 'draft' => '这是 草稿 账单, 在收到后将反映在图表上。', 'status' => [ From a94c9dc9c5881520801a20f9422050cf744057b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 12:31:00 +0300 Subject: [PATCH 058/121] added export/ bulk action export and import feature test for vendors.. --- tests/Feature/Purchases/VendorsTest.php | 67 +++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/tests/Feature/Purchases/VendorsTest.php b/tests/Feature/Purchases/VendorsTest.php index ccb2cdda0..8de9be0ce 100644 --- a/tests/Feature/Purchases/VendorsTest.php +++ b/tests/Feature/Purchases/VendorsTest.php @@ -2,8 +2,11 @@ namespace Tests\Feature\Purchases; +use App\Exports\Common\Contacts as Export; use App\Jobs\Common\CreateContact; use App\Models\Common\Contact; +use Illuminate\Http\UploadedFile; +use Illuminate\Support\Facades\File; use Tests\Feature\FeatureTestCase; class VendorsTest extends FeatureTestCase @@ -96,6 +99,70 @@ class VendorsTest extends FeatureTestCase $this->assertSoftDeleted('contacts', $request); } + public function testItShouldExportVendors() + { + $count = 5; + Contact::factory()->vendor()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->get(route('vendors.export')) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.vendors', 2)) . '.xlsx', + function (Export $export) use ($count) { + // Assert that the correct export is downloaded. + return $export->collection()->count() === $count; + } + ); + } + + public function testItShouldExportSelectedVendors() + { + $count = 5; + $vendors = Contact::factory()->vendor()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->post( + route('bulk-actions.action', ['group' => 'purchases', 'type' => 'vendors']), + ['handle' => 'export', 'selected' => [$vendors->random()->id]] + ) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.vendors', 2)) . '.xlsx', + function (Export $export) { + return $export->collection()->count() === 1; + } + ); + } + + public function testItShouldImportVendors() + { + \Excel::fake(); + + $this->loginAs() + ->post( + route('vendors.import'), + [ + 'import' => UploadedFile::fake()->createWithContent( + 'vendors.xlsx', + File::get(public_path('files/import/vendors.xlsx')) + ), + ] + ) + ->assertStatus(200); + + \Excel::assertImported('vendors.xlsx'); + + $this->assertFlashLevel('success'); + } + + public function getRequest() { return Contact::factory()->vendor()->enabled()->raw(); From eab1ccc60fb065f5ffe0392e3af2075e1bb55e6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 13:07:05 +0300 Subject: [PATCH 059/121] fixed vendor test --- tests/Feature/Purchases/VendorsTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Feature/Purchases/VendorsTest.php b/tests/Feature/Purchases/VendorsTest.php index 8de9be0ce..9d1ed8001 100644 --- a/tests/Feature/Purchases/VendorsTest.php +++ b/tests/Feature/Purchases/VendorsTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature\Purchases; -use App\Exports\Common\Contacts as Export; +use App\Exports\Purchases\Vendors as Export; use App\Jobs\Common\CreateContact; use App\Models\Common\Contact; use Illuminate\Http\UploadedFile; From 053fb1a7bae83a956bc0611e7e1267afe2b3b627 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 13:09:56 +0300 Subject: [PATCH 060/121] added export/ bulk action export and import feature test for customers.. --- tests/Feature/Sales/CustomersTest.php | 66 +++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/tests/Feature/Sales/CustomersTest.php b/tests/Feature/Sales/CustomersTest.php index 9e04fcdf2..0c6a908fc 100644 --- a/tests/Feature/Sales/CustomersTest.php +++ b/tests/Feature/Sales/CustomersTest.php @@ -2,9 +2,12 @@ namespace Tests\Feature\Sales; +use App\Exports\Sales\Customers as Export; use App\Jobs\Common\CreateContact; use App\Models\Auth\User; use App\Models\Common\Contact; +use Illuminate\Http\UploadedFile; +use Illuminate\Support\Facades\File; use Tests\Feature\FeatureTestCase; class CustomersTest extends FeatureTestCase @@ -123,6 +126,69 @@ class CustomersTest extends FeatureTestCase return Contact::factory()->customer()->enabled()->raw(); } + public function testItShouldExportCustomers() + { + $count = 5; + Contact::factory()->customer()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->get(route('customers.export')) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.customers', 2)) . '.xlsx', + function (Export $export) use ($count) { + // Assert that the correct export is downloaded. + return $export->collection()->count() === $count; + } + ); + } + + public function testItShouldExportSelectedCustomers() + { + $count = 5; + $customers = Contact::factory()->customer()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->post( + route('bulk-actions.action', ['group' => 'purchases', 'type' => 'customers']), + ['handle' => 'export', 'selected' => [$customers->random()->id]] + ) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.customers', 2)) . '.xlsx', + function (Export $export) { + return $export->collection()->count() === 1; + } + ); + } + + public function testItShouldImportCustomers() + { + \Excel::fake(); + + $this->loginAs() + ->post( + route('customers.import'), + [ + 'import' => UploadedFile::fake()->createWithContent( + 'customers.xlsx', + File::get(public_path('files/import/customers.xlsx')) + ), + ] + ) + ->assertStatus(200); + + \Excel::assertImported('customers.xlsx'); + + $this->assertFlashLevel('success'); + } + public function getRequestWithUser() { $password = $this->faker->password; From 1d5ce19c039e6649af70f2b12857a52c36a2d10b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 13:12:32 +0300 Subject: [PATCH 061/121] styling.. --- tests/Feature/Purchases/VendorsTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/Feature/Purchases/VendorsTest.php b/tests/Feature/Purchases/VendorsTest.php index 9d1ed8001..f96c57145 100644 --- a/tests/Feature/Purchases/VendorsTest.php +++ b/tests/Feature/Purchases/VendorsTest.php @@ -162,7 +162,6 @@ class VendorsTest extends FeatureTestCase $this->assertFlashLevel('success'); } - public function getRequest() { return Contact::factory()->vendor()->enabled()->raw(); From b626c763601e91cbc630be16762aeef1fa2df59b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 13:13:02 +0300 Subject: [PATCH 062/121] added export/ bulk action export and import feature test for invoices.. --- tests/Feature/Sales/CustomersTest.php | 2 +- tests/Feature/Sales/InvoicesTest.php | 66 +++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/tests/Feature/Sales/CustomersTest.php b/tests/Feature/Sales/CustomersTest.php index 0c6a908fc..abb932adf 100644 --- a/tests/Feature/Sales/CustomersTest.php +++ b/tests/Feature/Sales/CustomersTest.php @@ -155,7 +155,7 @@ class CustomersTest extends FeatureTestCase $this->loginAs() ->post( - route('bulk-actions.action', ['group' => 'purchases', 'type' => 'customers']), + route('bulk-actions.action', ['group' => 'sales', 'type' => 'customers']), ['handle' => 'export', 'selected' => [$customers->random()->id]] ) ->assertStatus(200); diff --git a/tests/Feature/Sales/InvoicesTest.php b/tests/Feature/Sales/InvoicesTest.php index e58dd0052..5ead4eaa9 100644 --- a/tests/Feature/Sales/InvoicesTest.php +++ b/tests/Feature/Sales/InvoicesTest.php @@ -2,8 +2,11 @@ namespace Tests\Feature\Sales; +use App\Exports\Sales\Invoices as Export; use App\Jobs\Document\CreateDocument; use App\Models\Document\Document; +use Illuminate\Http\UploadedFile; +use Illuminate\Support\Facades\File; use Tests\Feature\FeatureTestCase; class InvoicesTest extends FeatureTestCase @@ -115,6 +118,69 @@ class InvoicesTest extends FeatureTestCase ]); } + public function testItShouldExportInvoices() + { + $count = 5; + Document::factory()->invoice()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->get(route('invoices.export')) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.invoices', 2)) . '.xlsx', + function (Export $export) use ($count) { + // Assert that the correct export is downloaded. + return $export->sheets()['invoices']->collection()->count() === $count; + } + ); + } + + public function testItShouldExportSelectedInvoices() + { + $count = 5; + $invoices = Document::factory()->invoice()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->post( + route('bulk-actions.action', ['group' => 'sales', 'type' => 'invoices']), + ['handle' => 'export', 'selected' => [$invoices->random()->id]] + ) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.invoices', 2)) . '.xlsx', + function (Export $export) { + return $export->sheets()['invoices']->collection()->count() === 1; + } + ); + } + + public function testItShouldImportInvoices() + { + \Excel::fake(); + + $this->loginAs() + ->post( + route('invoices.import'), + [ + 'import' => UploadedFile::fake()->createWithContent( + 'invoices.xlsx', + File::get(public_path('files/import/invoices.xlsx')) + ), + ] + ) + ->assertStatus(200); + + \Excel::assertImported('invoices.xlsx'); + + $this->assertFlashLevel('success'); + } + public function getRequest($recurring = false) { $factory = Document::factory(); From 95e88e04f8319826f4518c2aab5b63668aaf2ad7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 13:15:05 +0300 Subject: [PATCH 063/121] added export/ bulk action export and import feature test for revenues.. --- tests/Feature/Sales/RevenuesTest.php | 66 ++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/tests/Feature/Sales/RevenuesTest.php b/tests/Feature/Sales/RevenuesTest.php index 9b5b4a45f..38ebf6766 100644 --- a/tests/Feature/Sales/RevenuesTest.php +++ b/tests/Feature/Sales/RevenuesTest.php @@ -2,8 +2,11 @@ namespace Tests\Feature\Sales; +use App\Exports\Sales\Revenues as Export; use App\Jobs\Banking\CreateTransaction; use App\Models\Banking\Transaction; +use Illuminate\Http\UploadedFile; +use Illuminate\Support\Facades\File; use Tests\Feature\FeatureTestCase; class RevenuesTest extends FeatureTestCase @@ -82,6 +85,69 @@ class RevenuesTest extends FeatureTestCase $this->assertSoftDeleted('transactions', $request); } + public function testItShouldExportRevenues() + { + $count = 5; + Transaction::factory()->income()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->get(route('revenues.export')) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.revenues', 2)) . '.xlsx', + function (Export $export) use ($count) { + // Assert that the correct export is downloaded. + return $export->collection()->count() === $count; + } + ); + } + + public function testItShouldExportSelectedRevenues() + { + $count = 5; + $revenues = Transaction::factory()->income()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->post( + route('bulk-actions.action', ['group' => 'sales', 'type' => 'revenues']), + ['handle' => 'export', 'selected' => [$revenues->random()->id]] + ) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.revenues', 2)) . '.xlsx', + function (Export $export) { + return $export->collection()->count() === 1; + } + ); + } + + public function testItShouldImportRevenues() + { + \Excel::fake(); + + $this->loginAs() + ->post( + route('revenues.import'), + [ + 'import' => UploadedFile::fake()->createWithContent( + 'revenues.xlsx', + File::get(public_path('files/import/revenues.xlsx')) + ), + ] + ) + ->assertStatus(200); + + \Excel::assertImported('revenues.xlsx'); + + $this->assertFlashLevel('success'); + } + public function getRequest() { return Transaction::factory()->income()->raw(); From 2c7f25f41fdcc5fd6d9272c186d4f7b1098aa1d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 13:26:10 +0300 Subject: [PATCH 064/121] Document empty page create button added permission control --- .../components/documents/index/content.blade.php | 2 ++ .../components/documents/index/empty-page.blade.php | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/resources/views/components/documents/index/content.blade.php b/resources/views/components/documents/index/content.blade.php index ed3b60e9f..03fe0a42a 100644 --- a/resources/views/components/documents/index/content.blade.php +++ b/resources/views/components/documents/index/content.blade.php @@ -65,5 +65,7 @@ text-empty-page="{{ $textEmptyPage }}" url-docs-path="{{ $urlDocsPath }}" create-route="{{ $createRoute }}" + check-permission-create="{{ $checkPermissionCreate }}" + permission-create="{{ $permissionCreate }}" /> @endif diff --git a/resources/views/components/documents/index/empty-page.blade.php b/resources/views/components/documents/index/empty-page.blade.php index 07da65419..81961f829 100644 --- a/resources/views/components/documents/index/empty-page.blade.php +++ b/resources/views/components/documents/index/empty-page.blade.php @@ -10,9 +10,15 @@ {!! trans($textEmptyPage) !!} {!! trans('general.empty.documentation', ['url' => $urlDocsPath]) !!}

- - {{ trans('general.title.create', ['type' => trans_choice($textPage, 1)]) }} - + @if ($checkPermissionCreate) + @can($permissionCreate) + @endif + + {{ trans('general.title.create', ['type' => trans_choice($textPage, 1)]) }} + + @if ($checkPermissionCreate) + @endcan + @endif From 6a216d3f9eda2af106d070cd83799411b5f27326 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Fri, 12 Feb 2021 13:28:03 +0300 Subject: [PATCH 065/121] fixed report permissions --- app/Http/Controllers/Common/Reports.php | 11 +++++++++++ resources/views/common/reports/index.blade.php | 6 +++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Common/Reports.php b/app/Http/Controllers/Common/Reports.php index d846e96a8..b1f711a75 100644 --- a/app/Http/Controllers/Common/Reports.php +++ b/app/Http/Controllers/Common/Reports.php @@ -13,6 +13,17 @@ use Illuminate\Support\Facades\Cache; class Reports extends Controller { + /** + * Instantiate a new controller instance. + */ + public function __construct() + { + // Add CRUD permission check + $this->middleware('permission:create-common-reports')->only('create', 'store', 'duplicate', 'import'); + $this->middleware('permission:read-common-reports')->only('index', 'show', 'export'); + $this->middleware('permission:update-common-reports')->only('edit', 'update', 'enable', 'disable'); + $this->middleware('permission:delete-common-reports')->only('destroy'); + } /** * Display a listing of the resource. * diff --git a/resources/views/common/reports/index.blade.php b/resources/views/common/reports/index.blade.php index 07d96c218..12f46c3a2 100644 --- a/resources/views/common/reports/index.blade.php +++ b/resources/views/common/reports/index.blade.php @@ -19,13 +19,16 @@ @foreach($reports as $report)
+ @canany(['create-common-reports', 'update-common-reports', 'delete-common-reports']) + @endcanany
From 46fdbc5d8a1d7afff843eaad9fa9fe09cc94033b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 13:38:33 +0300 Subject: [PATCH 066/121] fixed styling.. --- tests/Feature/Sales/CustomersTest.php | 172 +++++++++++++------------- 1 file changed, 86 insertions(+), 86 deletions(-) diff --git a/tests/Feature/Sales/CustomersTest.php b/tests/Feature/Sales/CustomersTest.php index abb932adf..56acf0901 100644 --- a/tests/Feature/Sales/CustomersTest.php +++ b/tests/Feature/Sales/CustomersTest.php @@ -12,118 +12,113 @@ use Tests\Feature\FeatureTestCase; class CustomersTest extends FeatureTestCase { - public function testItShouldSeeCustomerListPage() - { - $this->loginAs() - ->get(route('customers.index')) - ->assertStatus(200) - ->assertSeeText(trans_choice('general.customers', 2)); - } + public function testItShouldSeeCustomerListPage() + { + $this->loginAs() + ->get(route('customers.index')) + ->assertStatus(200) + ->assertSeeText(trans_choice('general.customers', 2)); + } - public function testItShouldSeeCustomerCreatePage() - { - $this->loginAs() - ->get(route('customers.create')) - ->assertStatus(200) - ->assertSeeText(trans('general.title.new', ['type' => trans_choice('general.customers', 1)])); - } + public function testItShouldSeeCustomerCreatePage() + { + $this->loginAs() + ->get(route('customers.create')) + ->assertStatus(200) + ->assertSeeText(trans('general.title.new', ['type' => trans_choice('general.customers', 1)])); + } - public function testItShouldCreateCustomer() - { - $request = $this->getRequest(); + public function testItShouldCreateCustomer() + { + $request = $this->getRequest(); - $this->loginAs() - ->post(route('customers.store'), $request) - ->assertStatus(200); + $this->loginAs() + ->post(route('customers.store'), $request) + ->assertStatus(200); - $this->assertFlashLevel('success'); + $this->assertFlashLevel('success'); $this->assertDatabaseHas('contacts', $request); - } + } - public function testItShouldCreateCustomerWithUser() - { + public function testItShouldCreateCustomerWithUser() + { $request = $this->getRequestWithUser(); - $this->loginAs() - ->post(route('customers.store'), $request) - ->assertStatus(200); + $this->loginAs() + ->post(route('customers.store'), $request) + ->assertStatus(200); - $this->assertFlashLevel('success'); + $this->assertFlashLevel('success'); - $user = User::where('email', $request['email'])->first(); + $user = User::where('email', $request['email'])->first(); - $this->assertNotNull($user); - $this->assertEquals($request['email'], $user->email); - } + $this->assertNotNull($user); + $this->assertEquals($request['email'], $user->email); + } - public function testItShouldSeeCustomerDetailPage() - { - $request = $this->getRequest(); + public function testItShouldSeeCustomerDetailPage() + { + $request = $this->getRequest(); - $customer = $this->dispatch(new CreateContact($request)); + $customer = $this->dispatch(new CreateContact($request)); - $this->loginAs() - ->get(route('customers.show', $customer->id)) - ->assertStatus(200) - ->assertSee($customer->email); - } + $this->loginAs() + ->get(route('customers.show', $customer->id)) + ->assertStatus(200) + ->assertSee($customer->email); + } - public function testItShouldSeeCustomerUpdatePage() - { - $request = $this->getRequest(); + public function testItShouldSeeCustomerUpdatePage() + { + $request = $this->getRequest(); - $customer = $this->dispatch(new CreateContact($request)); + $customer = $this->dispatch(new CreateContact($request)); - $this->loginAs() - ->get(route('customers.edit', $customer->id)) - ->assertStatus(200) - ->assertSee($customer->email); - } + $this->loginAs() + ->get(route('customers.edit', $customer->id)) + ->assertStatus(200) + ->assertSee($customer->email); + } - public function testItShouldUpdateCustomer() - { - $request = $this->getRequest(); + public function testItShouldUpdateCustomer() + { + $request = $this->getRequest(); - $customer = $this->dispatch(new CreateContact($request)); + $customer = $this->dispatch(new CreateContact($request)); $request['email'] = $this->faker->safeEmail; - $this->loginAs() - ->patch(route('customers.update', $customer->id), $request) - ->assertStatus(200) - ->assertSee($request['email']); + $this->loginAs() + ->patch(route('customers.update', $customer->id), $request) + ->assertStatus(200) + ->assertSee($request['email']); - $this->assertFlashLevel('success'); + $this->assertFlashLevel('success'); $this->assertDatabaseHas('contacts', $request); - } + } - public function testItShouldDeleteCustomer() - { + public function testItShouldDeleteCustomer() + { $request = $this->getRequest(); - $customer = $this->dispatch(new CreateContact($request)); + $customer = $this->dispatch(new CreateContact($request)); - $this->loginAs() - ->delete(route('customers.destroy', $customer->id)) - ->assertStatus(200); + $this->loginAs() + ->delete(route('customers.destroy', $customer->id)) + ->assertStatus(200); - $this->assertFlashLevel('success'); + $this->assertFlashLevel('success'); $this->assertSoftDeleted('contacts', $request); - } + } - public function testItShouldNotDeleteCustomerIfHasRelations() - { - $this->assertTrue(true); - //TODO : This will write after done invoice and revenues tests. - } - - public function getRequest() + public function testItShouldNotDeleteCustomerIfHasRelations() { - return Contact::factory()->customer()->enabled()->raw(); + $this->assertTrue(true); + //TODO : This will write after done invoice and revenues tests. } public function testItShouldExportCustomers() @@ -189,15 +184,20 @@ class CustomersTest extends FeatureTestCase $this->assertFlashLevel('success'); } - public function getRequestWithUser() - { - $password = $this->faker->password; + public function getRequest() + { + return Contact::factory()->customer()->enabled()->raw(); + } - return $this->getRequest() + [ - 'create_user' => 'true', - 'locale' => 'en-GB', - 'password' => $password, - 'password_confirmation' => $password, - ]; - } + public function getRequestWithUser() + { + $password = $this->faker->password; + + return $this->getRequest() + [ + 'create_user' => 'true', + 'locale' => 'en-GB', + 'password' => $password, + 'password_confirmation' => $password, + ]; + } } From 14aa49dfdbc153e5895e1cb0f95d1890311bfe9f Mon Sep 17 00:00:00 2001 From: Sevan Nerse Date: Fri, 12 Feb 2021 13:53:27 +0300 Subject: [PATCH 067/121] key variable must be considered if it is defined in search string --- app/View/Components/SearchString.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/View/Components/SearchString.php b/app/View/Components/SearchString.php index d3dfb87a9..a863aa109 100644 --- a/app/View/Components/SearchString.php +++ b/app/View/Components/SearchString.php @@ -80,6 +80,10 @@ class SearchString extends Component protected function getFilterKey($column, $options) { + if (isset($options['key'])) { + $column = $options['key']; + } + if (isset($options['relationship'])) { $column .= '.id'; } From 01742cd054b08a899e05f51bf9b5e51b11a95015 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 14:52:18 +0300 Subject: [PATCH 068/121] Add Empty page component.. --- app/View/Components/EmptyPage.php | 125 ++++++++++++++++++ .../views/components/empty-page.blade.php | 24 ++++ 2 files changed, 149 insertions(+) create mode 100644 app/View/Components/EmptyPage.php create mode 100644 resources/views/components/empty-page.blade.php diff --git a/app/View/Components/EmptyPage.php b/app/View/Components/EmptyPage.php new file mode 100644 index 000000000..863f8c3d5 --- /dev/null +++ b/app/View/Components/EmptyPage.php @@ -0,0 +1,125 @@ +page = $page; + $this->imageEmptyPage = $this->getImageEmptyPage($page, $imageEmptyPage); + $this->textEmptyPage = $this->getTextEmptyPage($page, $textEmptyPage); + $this->textPage = $this->getTextPage($page, $textPage); + $this->urlDocsPath = $this->getUrlDocsPath($page, $urlDocsPath); + $this->checkPermissionCreate = $checkPermissionCreate; + $this->permissionCreate = $this->getPermissionCreate($page, $permissionCreate); + $this->routeCreate = $this->getRouteCreate($page, $routeCreate); + } + + /** + * Get the view / contents that represent the component. + * + * @return \Illuminate\Contracts\View\View|string + */ + public function render() + { + return view('components.empty-page'); + } + + protected function getImageEmptyPage($page, $imageEmptyPage) + { + if ($imageEmptyPage) { + return $imageEmptyPage; + } + + return 'public/img/empty_pages/' . $page . '.png'; + } + + protected function getTextEmptyPage($page, $textEmptyPage) + { + if ($textEmptyPage) { + return $textEmptyPage; + } + + return 'general.empty.' . $page; + } + + protected function getTextPage($page, $textPage) + { + if ($textPage) { + return $textPage; + } + + return 'general.' . $page; + } + + protected function getUrlDocsPath($page, $urlDocsPath) + { + if ($urlDocsPath) { + return $urlDocsPath; + } + + return 'https://akaunting.com/docs/user-manual/' . $page; + } + + protected function getPermissionCreate($page, $permissionCreate) + { + if ($permissionCreate) { + return $permissionCreate; + } + + $pages = [ + 'items' => 'create-commen-items', + ]; + + if (array_key_exists($page, $pages)) { + $permissionCreate = $pages[$page]; + } + + return $permissionCreate; + } + + protected function getRouteCreate($page, $routeCreate) + { + if ($routeCreate) { + return $routeCreate; + } + + return $page . '.create'; + } +} diff --git a/resources/views/components/empty-page.blade.php b/resources/views/components/empty-page.blade.php new file mode 100644 index 000000000..d02fd9d15 --- /dev/null +++ b/resources/views/components/empty-page.blade.php @@ -0,0 +1,24 @@ + +
+
+
+ @yield('title') +
+ +
+

+ {!! trans($textEmptyPage) !!} {!! trans('general.empty.documentation', ['url' => $urlDocsPath]) !!} +

+ + @if ($checkPermissionCreate) + @can($permissionCreate) + @endif + + {{ trans('general.title.create', ['type' => trans_choice($textPage, 1)]) }} + + @if ($checkPermissionCreate) + @endcan + @endif +
+
+
From baed35a4fddb1b9cb1df4f3e39cfd59b47ca8368 Mon Sep 17 00:00:00 2001 From: Sevan Nerse Date: Fri, 12 Feb 2021 16:10:03 +0300 Subject: [PATCH 069/121] prefix definition is fixed by converting the use of slug to kebab --- app/View/Components/SearchString.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/View/Components/SearchString.php b/app/View/Components/SearchString.php index a863aa109..86315ee12 100644 --- a/app/View/Components/SearchString.php +++ b/app/View/Components/SearchString.php @@ -108,7 +108,7 @@ class SearchString extends Component if (strpos($this->model, 'Modules') !== false) { $module_class = explode('\\', $this->model); - $prefix = Str::slug($module_class[1], '-') . '::'; + $prefix = Str::kebab($module_class[1]) . '::'; $translation_keys[] = $prefix . 'general.'; $translation_keys[] = $prefix . 'search_string.columns.'; From c17a596c3342ba9f1151635d4e0c3e58b5bfb68f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 17:51:46 +0300 Subject: [PATCH 070/121] Empty page change method.. --- app/View/Components/EmptyPage.php | 33 +++++++++++++++---- .../banking/reconciliations/index.blade.php | 2 +- .../views/banking/transfers/index.blade.php | 2 +- resources/views/common/items/index.blade.php | 2 +- .../views/purchases/payments/index.blade.php | 2 +- .../views/purchases/vendors/index.blade.php | 2 +- .../views/sales/customers/index.blade.php | 2 +- .../views/sales/revenues/index.blade.php | 2 +- .../views/settings/taxes/index.blade.php | 2 +- 9 files changed, 35 insertions(+), 14 deletions(-) diff --git a/app/View/Components/EmptyPage.php b/app/View/Components/EmptyPage.php index 863f8c3d5..afd846c04 100644 --- a/app/View/Components/EmptyPage.php +++ b/app/View/Components/EmptyPage.php @@ -11,6 +11,9 @@ class EmptyPage extends Component /** @var string */ public $page; + /** @var string */ + public $group; + /** @var string */ public $imageEmptyPage; @@ -38,16 +41,17 @@ class EmptyPage extends Component * @return void */ public function __construct( - string $page, string $imageEmptyPage = '', string $textEmptyPage = '', string $textPage = '', + string $page, string $group = '', string $imageEmptyPage = '', string $textEmptyPage = '', string $textPage = '', string $urlDocsPath = '', bool $checkPermissionCreate = true, string $permissionCreate = '', string $routeCreate = '' ) { $this->page = $page; + $this->group = $group; $this->imageEmptyPage = $this->getImageEmptyPage($page, $imageEmptyPage); $this->textEmptyPage = $this->getTextEmptyPage($page, $textEmptyPage); $this->textPage = $this->getTextPage($page, $textPage); - $this->urlDocsPath = $this->getUrlDocsPath($page, $urlDocsPath); + $this->urlDocsPath = $this->getUrlDocsPath($page, $group, $urlDocsPath); $this->checkPermissionCreate = $checkPermissionCreate; - $this->permissionCreate = $this->getPermissionCreate($page, $permissionCreate); + $this->permissionCreate = $this->getPermissionCreate($page, $group, $permissionCreate); $this->routeCreate = $this->getRouteCreate($page, $routeCreate); } @@ -88,29 +92,46 @@ class EmptyPage extends Component return 'general.' . $page; } - protected function getUrlDocsPath($page, $urlDocsPath) + protected function getUrlDocsPath($page, $group, $urlDocsPath) { if ($urlDocsPath) { return $urlDocsPath; } + $docs_path = $page; + + if (!empty($group)) { + $docs_path = $group . '/' . $page; + } + return 'https://akaunting.com/docs/user-manual/' . $page; } - protected function getPermissionCreate($page, $permissionCreate) + protected function getPermissionCreate($page, $group, $permissionCreate) { if ($permissionCreate) { return $permissionCreate; } $pages = [ - 'items' => 'create-commen-items', + 'reconciliations' => 'create-banking-reconciliations', + 'transfers' => 'create-banking-transfers', + 'payments' => 'create-purchases-payments', + 'vendors' => 'create-purchases-vendors', + 'customers' => 'create-sales-customers', + 'revenues' => 'create-sales-revenues', + 'taxes' => 'create-settings-taxes', + 'items' => 'create-common-items', ]; if (array_key_exists($page, $pages)) { $permissionCreate = $pages[$page]; } + if (empty($permissionCreate) && !empty($group)) { + $permissionCreate = 'create-' . $group . '-' . $page; + } + return $permissionCreate; } diff --git a/resources/views/banking/reconciliations/index.blade.php b/resources/views/banking/reconciliations/index.blade.php index 237fbaf17..e9e3e494f 100644 --- a/resources/views/banking/reconciliations/index.blade.php +++ b/resources/views/banking/reconciliations/index.blade.php @@ -82,7 +82,7 @@
@else - @include('partials.admin.empty_page', ['page' => 'reconciliations', 'docs_path' => 'banking/reconciliations']) + @endif @endsection diff --git a/resources/views/banking/transfers/index.blade.php b/resources/views/banking/transfers/index.blade.php index 794e085c3..de69651de 100644 --- a/resources/views/banking/transfers/index.blade.php +++ b/resources/views/banking/transfers/index.blade.php @@ -83,7 +83,7 @@
@else - @include('partials.admin.empty_page', ['page' => 'transfers', 'docs_path' => 'banking/transfers']) + @endif @endsection diff --git a/resources/views/common/items/index.blade.php b/resources/views/common/items/index.blade.php index edd35a1ff..52bbe5b4f 100644 --- a/resources/views/common/items/index.blade.php +++ b/resources/views/common/items/index.blade.php @@ -103,7 +103,7 @@ @else - @include('partials.admin.empty_page', ['page' => 'items', 'docs_path' => 'items']) + @endif @endsection diff --git a/resources/views/purchases/payments/index.blade.php b/resources/views/purchases/payments/index.blade.php index f70f89c6b..7d0b2556d 100644 --- a/resources/views/purchases/payments/index.blade.php +++ b/resources/views/purchases/payments/index.blade.php @@ -116,7 +116,7 @@ @else - @include('partials.admin.empty_page', ['page' => 'payments', 'docs_path' => 'purchases/payments']) + @endif @endsection diff --git a/resources/views/purchases/vendors/index.blade.php b/resources/views/purchases/vendors/index.blade.php index c1c57206c..8eb8cdb15 100644 --- a/resources/views/purchases/vendors/index.blade.php +++ b/resources/views/purchases/vendors/index.blade.php @@ -103,7 +103,7 @@ @else - @include('partials.admin.empty_page', ['page' => 'vendors', 'docs_path' => 'purchases/vendors']) + @endif @endsection diff --git a/resources/views/sales/customers/index.blade.php b/resources/views/sales/customers/index.blade.php index ccf02c789..097ef6b45 100644 --- a/resources/views/sales/customers/index.blade.php +++ b/resources/views/sales/customers/index.blade.php @@ -105,7 +105,7 @@ @else - @include('partials.admin.empty_page', ['page' => 'customers', 'docs_path' => 'sales/customers']) + @endif @endsection diff --git a/resources/views/sales/revenues/index.blade.php b/resources/views/sales/revenues/index.blade.php index 264b2af3e..428b99b60 100644 --- a/resources/views/sales/revenues/index.blade.php +++ b/resources/views/sales/revenues/index.blade.php @@ -116,7 +116,7 @@ @else - @include('partials.admin.empty_page', ['page' => 'revenues', 'docs_path' => 'sales/revenues']) + @endif @endsection diff --git a/resources/views/settings/taxes/index.blade.php b/resources/views/settings/taxes/index.blade.php index 13739ec12..bf46b3054 100644 --- a/resources/views/settings/taxes/index.blade.php +++ b/resources/views/settings/taxes/index.blade.php @@ -86,7 +86,7 @@ @else - @include('partials.admin.empty_page', ['page' => 'taxes', 'docs_path' => 'settings/taxes']) + @endif @endsection From 463d89a4e2c024b3d893a02c3c28869f41d3eaa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 18:10:20 +0300 Subject: [PATCH 071/121] customer test fixed export issue.. this issue reason https://github.com/akaunting/akaunting/blob/b5300e416c1e330e4dfa9fa60ff22abc5682c920/database/seeds/TestCompany.php#L76 --- tests/Feature/Sales/CustomersTest.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/Feature/Sales/CustomersTest.php b/tests/Feature/Sales/CustomersTest.php index 56acf0901..ddc78c1e6 100644 --- a/tests/Feature/Sales/CustomersTest.php +++ b/tests/Feature/Sales/CustomersTest.php @@ -112,7 +112,6 @@ class CustomersTest extends FeatureTestCase $this->assertFlashLevel('success'); $this->assertSoftDeleted('contacts', $request); - } public function testItShouldNotDeleteCustomerIfHasRelations() @@ -136,7 +135,7 @@ class CustomersTest extends FeatureTestCase \Str::filename(trans_choice('general.customers', 2)) . '.xlsx', function (Export $export) use ($count) { // Assert that the correct export is downloaded. - return $export->collection()->count() === $count; + return $export->collection()->count() === $count + 1; } ); } From 9665d8d695e4e2303d27e9318d048cb5a7310ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 12 Feb 2021 19:26:38 +0300 Subject: [PATCH 072/121] add error notification important feature --- app/Abstracts/BulkAction.php | 6 +++--- app/Abstracts/Http/PaymentController.php | 2 +- app/BulkActions/Auth/Users.php | 4 ++-- app/BulkActions/Banking/Accounts.php | 4 ++-- app/BulkActions/Banking/Transfers.php | 2 +- app/BulkActions/Common/Companies.php | 6 +++--- app/BulkActions/Common/Dashboards.php | 6 +++--- app/BulkActions/Common/Items.php | 2 +- app/BulkActions/Purchases/Bills.php | 2 +- app/BulkActions/Sales/Invoices.php | 2 +- app/BulkActions/Settings/Categories.php | 4 ++-- app/BulkActions/Settings/Currencies.php | 4 ++-- app/BulkActions/Settings/Taxes.php | 4 ++-- app/Exceptions/Handler.php | 2 +- app/Http/Controllers/Auth/Permissions.php | 6 +++--- app/Http/Controllers/Auth/Roles.php | 6 +++--- app/Http/Controllers/Auth/Users.php | 6 +++--- app/Http/Controllers/Banking/Accounts.php | 6 +++--- app/Http/Controllers/Banking/Reconciliations.php | 6 +++--- app/Http/Controllers/Banking/Transactions.php | 2 +- app/Http/Controllers/Banking/Transfers.php | 6 +++--- app/Http/Controllers/Common/BulkActions.php | 2 +- app/Http/Controllers/Common/Companies.php | 6 +++--- app/Http/Controllers/Common/Dashboards.php | 6 +++--- app/Http/Controllers/Common/Items.php | 6 +++--- app/Http/Controllers/Common/Reports.php | 6 +++--- app/Http/Controllers/Common/Uploads.php | 2 +- app/Http/Controllers/Modules/Item.php | 8 ++++---- app/Http/Controllers/Purchases/Bills.php | 8 ++++---- app/Http/Controllers/Purchases/Payments.php | 6 +++--- app/Http/Controllers/Purchases/Vendors.php | 6 +++--- app/Http/Controllers/Sales/Customers.php | 6 +++--- app/Http/Controllers/Sales/Invoices.php | 8 ++++---- app/Http/Controllers/Sales/Revenues.php | 6 +++--- app/Http/Controllers/Settings/Categories.php | 6 +++--- app/Http/Controllers/Settings/Currencies.php | 6 +++--- app/Http/Controllers/Settings/Taxes.php | 6 +++--- app/Http/Controllers/Wizard/Currencies.php | 6 +++--- app/Http/Controllers/Wizard/Taxes.php | 6 +++--- app/Listeners/Auth/Login.php | 2 +- app/Listeners/Document/CreateDocumentTransaction.php | 4 ++-- app/Traits/Omnipay.php | 2 +- modules/OfflinePayments/Http/Controllers/Settings.php | 2 +- 43 files changed, 102 insertions(+), 102 deletions(-) diff --git a/app/Abstracts/BulkAction.php b/app/Abstracts/BulkAction.php index a629d0a35..41c2c1cf2 100644 --- a/app/Abstracts/BulkAction.php +++ b/app/Abstracts/BulkAction.php @@ -134,7 +134,7 @@ abstract class BulkAction try { $this->dispatch(new UpdateContact($contact, request()->merge(['enabled' => 0]))); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } @@ -147,7 +147,7 @@ abstract class BulkAction try { $this->dispatch(new DeleteContact($contact)); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } @@ -160,7 +160,7 @@ abstract class BulkAction try { $this->dispatch(new DeleteTransaction($transaction)); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } diff --git a/app/Abstracts/Http/PaymentController.php b/app/Abstracts/Http/PaymentController.php index 7f26bf472..5d4ce543b 100644 --- a/app/Abstracts/Http/PaymentController.php +++ b/app/Abstracts/Http/PaymentController.php @@ -73,7 +73,7 @@ abstract class PaymentController extends BaseController $this->logger->info($this->module->getName() . ':: Invoice: ' . $invoice->id . ' - Cancel Message: ' . $message); - flash($message)->warning(); + flash($message)->warning()->important(); $invoice_url = $this->getInvoiceUrl($invoice); diff --git a/app/BulkActions/Auth/Users.php b/app/BulkActions/Auth/Users.php index 9476e2c98..8f395a06e 100644 --- a/app/BulkActions/Auth/Users.php +++ b/app/BulkActions/Auth/Users.php @@ -37,7 +37,7 @@ class Users extends BulkAction try { $this->dispatch(new UpdateUser($user, $request->merge(['enabled' => 0]))); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } @@ -50,7 +50,7 @@ class Users extends BulkAction try { $this->dispatch(new DeleteUser($user)); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } diff --git a/app/BulkActions/Banking/Accounts.php b/app/BulkActions/Banking/Accounts.php index 96bc53dbf..da36ea671 100644 --- a/app/BulkActions/Banking/Accounts.php +++ b/app/BulkActions/Banking/Accounts.php @@ -37,7 +37,7 @@ class Accounts extends BulkAction try { $this->dispatch(new UpdateAccount($account, $request->merge(['enabled' => 0]))); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } @@ -50,7 +50,7 @@ class Accounts extends BulkAction try { $this->dispatch(new DeleteAccount($account)); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } diff --git a/app/BulkActions/Banking/Transfers.php b/app/BulkActions/Banking/Transfers.php index 23ad1f2a1..2f2f99410 100644 --- a/app/BulkActions/Banking/Transfers.php +++ b/app/BulkActions/Banking/Transfers.php @@ -32,7 +32,7 @@ class Transfers extends BulkAction try { $this->dispatch(new DeleteTransfer($transfer)); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } diff --git a/app/BulkActions/Common/Companies.php b/app/BulkActions/Common/Companies.php index d8a848075..f4c120a10 100644 --- a/app/BulkActions/Common/Companies.php +++ b/app/BulkActions/Common/Companies.php @@ -37,7 +37,7 @@ class Companies extends BulkAction try { $this->dispatch(new UpdateCompany($company, $request->merge(['enabled' => 1]), session('company_id'))); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } @@ -50,7 +50,7 @@ class Companies extends BulkAction try { $this->dispatch(new UpdateCompany($company, $request->merge(['enabled' => 0]), session('company_id'))); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } @@ -63,7 +63,7 @@ class Companies extends BulkAction try { $this->dispatch(new DeleteCompany($company, session('company_id'))); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } diff --git a/app/BulkActions/Common/Dashboards.php b/app/BulkActions/Common/Dashboards.php index 472ba7f79..3967c121b 100644 --- a/app/BulkActions/Common/Dashboards.php +++ b/app/BulkActions/Common/Dashboards.php @@ -37,7 +37,7 @@ class Dashboards extends BulkAction try { $this->dispatch(new UpdateDashboard($dashboard, $request->merge(['enabled' => 1]))); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } @@ -50,7 +50,7 @@ class Dashboards extends BulkAction try { $this->dispatch(new UpdateDashboard($dashboard, $request->merge(['enabled' => 0]))); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } @@ -63,7 +63,7 @@ class Dashboards extends BulkAction try { $this->dispatch(new DeleteDashboard($dashboard)); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } diff --git a/app/BulkActions/Common/Items.php b/app/BulkActions/Common/Items.php index 815256a5f..2a62296f7 100644 --- a/app/BulkActions/Common/Items.php +++ b/app/BulkActions/Common/Items.php @@ -46,7 +46,7 @@ class Items extends BulkAction try { $this->dispatch(new DeleteItem($item)); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } diff --git a/app/BulkActions/Purchases/Bills.php b/app/BulkActions/Purchases/Bills.php index a3fcb206f..b8d3aca1c 100644 --- a/app/BulkActions/Purchases/Bills.php +++ b/app/BulkActions/Purchases/Bills.php @@ -95,7 +95,7 @@ class Bills extends BulkAction try { $this->dispatch(new DeleteDocument($bill)); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } diff --git a/app/BulkActions/Sales/Invoices.php b/app/BulkActions/Sales/Invoices.php index 002f69499..9ad8298e6 100644 --- a/app/BulkActions/Sales/Invoices.php +++ b/app/BulkActions/Sales/Invoices.php @@ -99,7 +99,7 @@ class Invoices extends BulkAction try { $this->dispatch(new DeleteDocument($invoice)); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } diff --git a/app/BulkActions/Settings/Categories.php b/app/BulkActions/Settings/Categories.php index d9b665f98..3e82cbdf2 100644 --- a/app/BulkActions/Settings/Categories.php +++ b/app/BulkActions/Settings/Categories.php @@ -37,7 +37,7 @@ class Categories extends BulkAction try { $this->dispatch(new UpdateCategory($category, $request->merge(['enabled' => 0]))); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } @@ -50,7 +50,7 @@ class Categories extends BulkAction try { $this->dispatch(new DeleteCategory($category)); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } diff --git a/app/BulkActions/Settings/Currencies.php b/app/BulkActions/Settings/Currencies.php index 581878290..8f0f11913 100644 --- a/app/BulkActions/Settings/Currencies.php +++ b/app/BulkActions/Settings/Currencies.php @@ -37,7 +37,7 @@ class Currencies extends BulkAction try { $this->dispatch(new UpdateCurrency($currency, $request->merge(['enabled' => 0]))); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } @@ -50,7 +50,7 @@ class Currencies extends BulkAction try { $this->dispatch(new DeleteCurrency($currency)); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } diff --git a/app/BulkActions/Settings/Taxes.php b/app/BulkActions/Settings/Taxes.php index 3d1d7182e..a3f21bf85 100644 --- a/app/BulkActions/Settings/Taxes.php +++ b/app/BulkActions/Settings/Taxes.php @@ -37,7 +37,7 @@ class Taxes extends BulkAction try { $this->dispatch(new UpdateTax($tax, $request->merge(['enabled' => 0]))); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } @@ -50,7 +50,7 @@ class Taxes extends BulkAction try { $this->dispatch(new DeleteTax($tax)); } catch (\Exception $e) { - flash($e->getMessage())->error(); + flash($e->getMessage())->error()->important(); } } } diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 996093a9d..ccabc4437 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -86,7 +86,7 @@ class Handler extends ExceptionHandler return response()->json(['error' => 'Not Found'], 404); } - flash(trans('errors.body.page_not_found'))->error(); + flash(trans('errors.body.page_not_found'))->error()->important(); // normal 404 view page feedback return redirect() diff --git a/app/Http/Controllers/Auth/Permissions.php b/app/Http/Controllers/Auth/Permissions.php index 555435dbb..e5f69f113 100644 --- a/app/Http/Controllers/Auth/Permissions.php +++ b/app/Http/Controllers/Auth/Permissions.php @@ -55,7 +55,7 @@ class Permissions extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -96,7 +96,7 @@ class Permissions extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -122,7 +122,7 @@ class Permissions extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Auth/Roles.php b/app/Http/Controllers/Auth/Roles.php index ab4e042f5..d185caae2 100644 --- a/app/Http/Controllers/Auth/Roles.php +++ b/app/Http/Controllers/Auth/Roles.php @@ -63,7 +63,7 @@ class Roles extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -111,7 +111,7 @@ class Roles extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -137,7 +137,7 @@ class Roles extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Auth/Users.php b/app/Http/Controllers/Auth/Users.php index 770ebc93f..17cdb7ae1 100644 --- a/app/Http/Controllers/Auth/Users.php +++ b/app/Http/Controllers/Auth/Users.php @@ -85,7 +85,7 @@ class Users extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -167,7 +167,7 @@ class Users extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -229,7 +229,7 @@ class Users extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Banking/Accounts.php b/app/Http/Controllers/Banking/Accounts.php index 0683c4e59..bf9eda309 100644 --- a/app/Http/Controllers/Banking/Accounts.php +++ b/app/Http/Controllers/Banking/Accounts.php @@ -70,7 +70,7 @@ class Accounts extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -117,7 +117,7 @@ class Accounts extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -179,7 +179,7 @@ class Accounts extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Banking/Reconciliations.php b/app/Http/Controllers/Banking/Reconciliations.php index ab9ec5f38..f5782e783 100644 --- a/app/Http/Controllers/Banking/Reconciliations.php +++ b/app/Http/Controllers/Banking/Reconciliations.php @@ -85,7 +85,7 @@ class Reconciliations extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -134,7 +134,7 @@ class Reconciliations extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -160,7 +160,7 @@ class Reconciliations extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Banking/Transactions.php b/app/Http/Controllers/Banking/Transactions.php index 3f19b0e12..61a92d008 100644 --- a/app/Http/Controllers/Banking/Transactions.php +++ b/app/Http/Controllers/Banking/Transactions.php @@ -81,7 +81,7 @@ class Transactions extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Banking/Transfers.php b/app/Http/Controllers/Banking/Transfers.php index 32d3f2fe7..0814f9eeb 100644 --- a/app/Http/Controllers/Banking/Transfers.php +++ b/app/Http/Controllers/Banking/Transfers.php @@ -80,7 +80,7 @@ class Transfers extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -165,7 +165,7 @@ class Transfers extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -191,7 +191,7 @@ class Transfers extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Common/BulkActions.php b/app/Http/Controllers/Common/BulkActions.php index ef43531a8..314cc4f49 100644 --- a/app/Http/Controllers/Common/BulkActions.php +++ b/app/Http/Controllers/Common/BulkActions.php @@ -42,7 +42,7 @@ class BulkActions extends Controller } if (isset($bulk_actions->actions[$request->get('handle')]['permission']) && !user()->can($bulk_actions->actions[$request->get('handle')]['permission'])) { - flash(trans('errors.message.403'))->error(); + flash(trans('errors.message.403'))->error()->important(); return response()->json([ 'success' => false, diff --git a/app/Http/Controllers/Common/Companies.php b/app/Http/Controllers/Common/Companies.php index b5cf85efa..b6766947e 100644 --- a/app/Http/Controllers/Common/Companies.php +++ b/app/Http/Controllers/Common/Companies.php @@ -75,7 +75,7 @@ class Companies extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } session(['company_id' => $company_id]); @@ -128,7 +128,7 @@ class Companies extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } session(['company_id' => $company_id]); @@ -194,7 +194,7 @@ class Companies extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Common/Dashboards.php b/app/Http/Controllers/Common/Dashboards.php index 5e8170113..f0d912bcf 100644 --- a/app/Http/Controllers/Common/Dashboards.php +++ b/app/Http/Controllers/Common/Dashboards.php @@ -110,7 +110,7 @@ class Dashboards extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -156,7 +156,7 @@ class Dashboards extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -220,7 +220,7 @@ class Dashboards extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Common/Items.php b/app/Http/Controllers/Common/Items.php index f904b95fd..a836a40ec 100644 --- a/app/Http/Controllers/Common/Items.php +++ b/app/Http/Controllers/Common/Items.php @@ -78,7 +78,7 @@ class Items extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -172,7 +172,7 @@ class Items extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -234,7 +234,7 @@ class Items extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Common/Reports.php b/app/Http/Controllers/Common/Reports.php index b1f711a75..fb8361b01 100644 --- a/app/Http/Controllers/Common/Reports.php +++ b/app/Http/Controllers/Common/Reports.php @@ -112,7 +112,7 @@ class Reports extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -174,7 +174,7 @@ class Reports extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -200,7 +200,7 @@ class Reports extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Common/Uploads.php b/app/Http/Controllers/Common/Uploads.php index f0f897156..7b4871693 100644 --- a/app/Http/Controllers/Common/Uploads.php +++ b/app/Http/Controllers/Common/Uploads.php @@ -142,7 +142,7 @@ class Uploads extends Controller if (!$path = $this->getPath($media)) { $message = trans('messages.warning.deleted', ['name' => $media->basename, 'text' => $media->basename]); - flash($message)->warning(); + flash($message)->warning()->important(); return $return; } diff --git a/app/Http/Controllers/Modules/Item.php b/app/Http/Controllers/Modules/Item.php index 6649a4909..04cc336a3 100644 --- a/app/Http/Controllers/Modules/Item.php +++ b/app/Http/Controllers/Modules/Item.php @@ -259,7 +259,7 @@ class Item extends Controller } catch (\Exception $e) { $message = $e->getMessage(); - flash($message)->error(); + flash($message)->error()->important(); $json = [ 'success' => false, @@ -285,7 +285,7 @@ class Item extends Controller } catch (\Exception $e) { $message = $e->getMessage(); - flash($message)->error(); + flash($message)->error()->important(); } return redirect()->route('apps.app.show', $alias)->send(); @@ -304,7 +304,7 @@ class Item extends Controller } catch (\Exception $e) { $message = $e->getMessage(); - flash($message)->error(); + flash($message)->error()->important(); } return redirect()->route('apps.app.show', $alias)->send(); @@ -323,7 +323,7 @@ class Item extends Controller } catch (\Exception $e) { $message = $e->getMessage(); - flash($message)->error(); + flash($message)->error()->important(); } return redirect()->route('apps.app.show', $alias)->send(); diff --git a/app/Http/Controllers/Purchases/Bills.php b/app/Http/Controllers/Purchases/Bills.php index 16f7d637f..ac7606e2b 100644 --- a/app/Http/Controllers/Purchases/Bills.php +++ b/app/Http/Controllers/Purchases/Bills.php @@ -95,7 +95,7 @@ class Bills extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -182,7 +182,7 @@ class Bills extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -208,7 +208,7 @@ class Bills extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -318,7 +318,7 @@ class Bills extends Controller } catch(\Exception $e) { $message = $e->getMessage(); - flash($message)->error(); + flash($message)->error()->important(); } return redirect()->back(); diff --git a/app/Http/Controllers/Purchases/Payments.php b/app/Http/Controllers/Purchases/Payments.php index 7a53c6415..bf8b1851f 100644 --- a/app/Http/Controllers/Purchases/Payments.php +++ b/app/Http/Controllers/Purchases/Payments.php @@ -101,7 +101,7 @@ class Payments extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -220,7 +220,7 @@ class Payments extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -246,7 +246,7 @@ class Payments extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Purchases/Vendors.php b/app/Http/Controllers/Purchases/Vendors.php index b5bf6d05a..275ea79cd 100644 --- a/app/Http/Controllers/Purchases/Vendors.php +++ b/app/Http/Controllers/Purchases/Vendors.php @@ -128,7 +128,7 @@ class Vendors extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -217,7 +217,7 @@ class Vendors extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -279,7 +279,7 @@ class Vendors extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Sales/Customers.php b/app/Http/Controllers/Sales/Customers.php index ddcd21f16..d2a02b9ba 100644 --- a/app/Http/Controllers/Sales/Customers.php +++ b/app/Http/Controllers/Sales/Customers.php @@ -126,7 +126,7 @@ class Customers extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -215,7 +215,7 @@ class Customers extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -277,7 +277,7 @@ class Customers extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Sales/Invoices.php b/app/Http/Controllers/Sales/Invoices.php index 42f00c106..0bf72a264 100644 --- a/app/Http/Controllers/Sales/Invoices.php +++ b/app/Http/Controllers/Sales/Invoices.php @@ -94,7 +94,7 @@ class Invoices extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -181,7 +181,7 @@ class Invoices extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -207,7 +207,7 @@ class Invoices extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -367,7 +367,7 @@ class Invoices extends Controller } catch(\Exception $e) { $message = $e->getMessage(); - flash($message)->error(); + flash($message)->error()->important(); } return redirect()->back(); diff --git a/app/Http/Controllers/Sales/Revenues.php b/app/Http/Controllers/Sales/Revenues.php index 43a3a3de2..b1f7b73cd 100644 --- a/app/Http/Controllers/Sales/Revenues.php +++ b/app/Http/Controllers/Sales/Revenues.php @@ -101,7 +101,7 @@ class Revenues extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -220,7 +220,7 @@ class Revenues extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -246,7 +246,7 @@ class Revenues extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Settings/Categories.php b/app/Http/Controllers/Settings/Categories.php index b37a1132c..a0222b540 100644 --- a/app/Http/Controllers/Settings/Categories.php +++ b/app/Http/Controllers/Settings/Categories.php @@ -82,7 +82,7 @@ class Categories extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -132,7 +132,7 @@ class Categories extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -194,7 +194,7 @@ class Categories extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Settings/Currencies.php b/app/Http/Controllers/Settings/Currencies.php index cddc3a682..09be6ab8b 100644 --- a/app/Http/Controllers/Settings/Currencies.php +++ b/app/Http/Controllers/Settings/Currencies.php @@ -90,7 +90,7 @@ class Currencies extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -158,7 +158,7 @@ class Currencies extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -220,7 +220,7 @@ class Currencies extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Settings/Taxes.php b/app/Http/Controllers/Settings/Taxes.php index f466371c9..57d1332d4 100644 --- a/app/Http/Controllers/Settings/Taxes.php +++ b/app/Http/Controllers/Settings/Taxes.php @@ -88,7 +88,7 @@ class Taxes extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -143,7 +143,7 @@ class Taxes extends Controller $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -205,7 +205,7 @@ class Taxes extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Wizard/Currencies.php b/app/Http/Controllers/Wizard/Currencies.php index 38c8015fb..16fa0bbeb 100644 --- a/app/Http/Controllers/Wizard/Currencies.php +++ b/app/Http/Controllers/Wizard/Currencies.php @@ -68,7 +68,7 @@ class Currencies extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -95,7 +95,7 @@ class Currencies extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -121,7 +121,7 @@ class Currencies extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Http/Controllers/Wizard/Taxes.php b/app/Http/Controllers/Wizard/Taxes.php index 64fa6dc2e..5ba794d2e 100644 --- a/app/Http/Controllers/Wizard/Taxes.php +++ b/app/Http/Controllers/Wizard/Taxes.php @@ -55,7 +55,7 @@ class Taxes extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -82,7 +82,7 @@ class Taxes extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); @@ -108,7 +108,7 @@ class Taxes extends Controller } else { $message = $response['message']; - flash($message)->error(); + flash($message)->error()->important(); } return response()->json($response); diff --git a/app/Listeners/Auth/Login.php b/app/Listeners/Auth/Login.php index 6a6e8769f..99bdfc01a 100644 --- a/app/Listeners/Auth/Login.php +++ b/app/Listeners/Auth/Login.php @@ -22,7 +22,7 @@ class Login if (!$company) { app('App\Http\Controllers\Auth\Login')->logout(); - flash(trans('auth.error.no_company'))->error(); + flash(trans('auth.error.no_company'))->error()->important(); return; } diff --git a/app/Listeners/Document/CreateDocumentTransaction.php b/app/Listeners/Document/CreateDocumentTransaction.php index 300545a9e..7621755cc 100644 --- a/app/Listeners/Document/CreateDocumentTransaction.php +++ b/app/Listeners/Document/CreateDocumentTransaction.php @@ -32,13 +32,13 @@ class CreateDocumentTransaction $type = Str::plural($event->document->type); if (empty($user)) { - flash($message)->error(); + flash($message)->error()->important(); redirect()->route("signed.$type.show", $document->id)->send(); } if ($user->can('read-client-portal')) { - flash($message)->error(); + flash($message)->error()->important(); redirect()->route("portal.$type.show", $document->id)->send(); } diff --git a/app/Traits/Omnipay.php b/app/Traits/Omnipay.php index 4c63a2ff1..ea98037a4 100644 --- a/app/Traits/Omnipay.php +++ b/app/Traits/Omnipay.php @@ -145,7 +145,7 @@ trait Omnipay $invoice_url = $this->getInvoiceUrl($invoice); - flash($message)->error(); + flash($message)->error()->important(); if ($force_redirect) { return redirect($invoice_url); diff --git a/modules/OfflinePayments/Http/Controllers/Settings.php b/modules/OfflinePayments/Http/Controllers/Settings.php index e1d957ad5..148bab50a 100644 --- a/modules/OfflinePayments/Http/Controllers/Settings.php +++ b/modules/OfflinePayments/Http/Controllers/Settings.php @@ -122,7 +122,7 @@ class Settings extends Controller $message = $response['message']; - //flash($message)->error(); + //flash($message)->error()->important(); } return response()->json($response); From 52cf468d7083ddfb1964c79c59e7df9644f6c7be Mon Sep 17 00:00:00 2001 From: Sevan Nerse Date: Fri, 12 Feb 2021 22:00:46 +0300 Subject: [PATCH 073/121] setting that named as `financial year denote` added to localization part and it will be considered on the preparation of reports --- app/Abstracts/Report.php | 10 +++++++++- app/Http/Controllers/Settings/Localisation.php | 8 +++++++- app/Traits/DateTime.php | 10 ++++++++-- config/setting.php | 1 + resources/lang/en-GB/settings.php | 5 +++++ resources/lang/tr-TR/settings.php | 5 +++++ resources/views/settings/localisation/edit.blade.php | 2 ++ 7 files changed, 37 insertions(+), 4 deletions(-) diff --git a/app/Abstracts/Report.php b/app/Abstracts/Report.php index 6a121f0a8..e99744209 100644 --- a/app/Abstracts/Report.php +++ b/app/Abstracts/Report.php @@ -371,7 +371,15 @@ abstract class Report { switch ($this->getSetting('period')) { case 'yearly': - $i = $date->copy()->format($this->getYearlyDateFormat()); + $financial_year = $this->getFinancialYear($this->year); + + if ($date->greaterThanOrEqualTo($financial_year->getStartDate()) && $date->lessThanOrEqualTo($financial_year->getEndDate())) { + if (setting('localisation.financial_year_denote') == 'begins') { + $i = $financial_year->getStartDate()->copy()->format($this->getYearlyDateFormat()); + } else { + $i = $financial_year->getEndDate()->copy()->format($this->getYearlyDateFormat()); + } + } break; case 'quarterly': diff --git a/app/Http/Controllers/Settings/Localisation.php b/app/Http/Controllers/Settings/Localisation.php index 6f4b1f709..b538d865e 100644 --- a/app/Http/Controllers/Settings/Localisation.php +++ b/app/Http/Controllers/Settings/Localisation.php @@ -41,12 +41,18 @@ class Localisation extends Controller 'both' => trans('settings.localisation.discount_location.both'), ]; + $financial_year_denote_options = [ + 'begins' => trans('settings.localisation.financial_year_denote.begins'), + 'ends' => trans('settings.localisation.financial_year_denote.ends'), + ]; + return view('settings.localisation.edit', compact( 'timezones', 'date_formats', 'date_separators', 'percent_positions', - 'discount_locations' + 'discount_locations', + 'financial_year_denote_options' )); } } diff --git a/app/Traits/DateTime.php b/app/Traits/DateTime.php index 0f3fbe5ea..6bcaa4fe8 100644 --- a/app/Traits/DateTime.php +++ b/app/Traits/DateTime.php @@ -110,14 +110,20 @@ trait DateTime $financial_start = Date::create($year, $month, $day); - // Check if FS is in last calendar year - if ($now->diffInDays($financial_start, false) > 0) { + if (setting('localisation.financial_year_denote') == 'ends' && $financial_start->dayOfYear != 1) { $financial_start->subYear(); } return $financial_start; } + public function getFinancialYear($year = null) + { + $start = $this->getFinancialStart($year); + + return CarbonPeriod::create($start, $start->copy()->addYear()->subDay()); + } + public function getFinancialQuarters($year = null) { $quarters = []; diff --git a/config/setting.php b/config/setting.php index 6e4eb2620..ef2537a45 100644 --- a/config/setting.php +++ b/config/setting.php @@ -103,6 +103,7 @@ return [ 'date_separator' => env('SETTING_FALLBACK_LOCALISATION_DATE_SEPARATOR', 'space'), 'percent_position' => env('SETTING_FALLBACK_LOCALISATION_PERCENT_POSITION', 'after'), 'discount_location' => env('SETTING_FALLBACK_LOCALISATION_DISCOUNT_LOCATION', 'total'), + 'financial_year_denote' => env('SETTING_FALLBACK_LOCALISATION_FINANCIAL_YEAR_DENOTE', 'ends'), ], 'invoice' => [ 'number_prefix' => env('SETTING_FALLBACK_INVOICE_NUMBER_PREFIX', 'INV-'), diff --git a/resources/lang/en-GB/settings.php b/resources/lang/en-GB/settings.php index 36a5920ed..c5bf423e3 100644 --- a/resources/lang/en-GB/settings.php +++ b/resources/lang/en-GB/settings.php @@ -36,6 +36,11 @@ return [ 'total' => 'At total', 'both' => 'Both line and total', ], + 'financial_year_denote' => [ + 'title' => 'Financial Year Denote', + 'begins' => 'By the year it begins', + 'ends' => 'By the year it ends', + ], ], 'invoice' => [ diff --git a/resources/lang/tr-TR/settings.php b/resources/lang/tr-TR/settings.php index 921bf64e5..b2bc9bf44 100644 --- a/resources/lang/tr-TR/settings.php +++ b/resources/lang/tr-TR/settings.php @@ -35,6 +35,11 @@ return [ 'total' => 'Toplamda', 'both' => 'Satırda ve toplamda', ], + 'financial_year_denote' => [ + 'title' => 'Mali Yıl Gösterimi', + 'begins' => 'Başlangıç Yılı', + 'ends' => 'Bitiş Yılı', + ], ], 'invoice' => [ diff --git a/resources/views/settings/localisation/edit.blade.php b/resources/views/settings/localisation/edit.blade.php index 4d825715e..29f588924 100644 --- a/resources/views/settings/localisation/edit.blade.php +++ b/resources/views/settings/localisation/edit.blade.php @@ -20,6 +20,8 @@
{{ Form::dateGroup('financial_start', trans('settings.localisation.financial_start'), 'calendar', ['id' => 'financial_start', 'class' => 'form-control datepicker', 'show-date-format' => 'j F', 'date-format' => 'd-m', 'autocomplete' => 'off'], setting('localisation.financial_start')) }} + {{ Form::selectGroup('financial_year_denote', trans('settings.localisation.financial_year_denote.title'), 'calendar', $financial_year_denote_options, setting('localisation.financial_year_denote'), []) }} + {{ Form::selectGroupGroup('timezone', trans('settings.localisation.timezone'), 'globe', $timezones, setting('localisation.timezone'), []) }} {{ Form::selectGroup('date_format', trans('settings.localisation.date.format'), 'calendar', $date_formats, setting('localisation.date_format'), ['autocomplete' => 'off']) }} From 8cdb9a2a21d1c21f6852e41466f8b8631f8572a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Fri, 12 Feb 2021 23:05:50 +0300 Subject: [PATCH 074/121] formatting #1855 --- app/Abstracts/Report.php | 2 +- app/Http/Controllers/Settings/Localisation.php | 8 ++++---- app/Traits/DateTime.php | 2 +- config/setting.php | 2 +- resources/lang/en-GB/settings.php | 10 +++++----- resources/views/settings/localisation/edit.blade.php | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/Abstracts/Report.php b/app/Abstracts/Report.php index e99744209..d8684fb3f 100644 --- a/app/Abstracts/Report.php +++ b/app/Abstracts/Report.php @@ -374,7 +374,7 @@ abstract class Report $financial_year = $this->getFinancialYear($this->year); if ($date->greaterThanOrEqualTo($financial_year->getStartDate()) && $date->lessThanOrEqualTo($financial_year->getEndDate())) { - if (setting('localisation.financial_year_denote') == 'begins') { + if (setting('localisation.financial_denote') == 'begins') { $i = $financial_year->getStartDate()->copy()->format($this->getYearlyDateFormat()); } else { $i = $financial_year->getEndDate()->copy()->format($this->getYearlyDateFormat()); diff --git a/app/Http/Controllers/Settings/Localisation.php b/app/Http/Controllers/Settings/Localisation.php index b538d865e..aff8cd058 100644 --- a/app/Http/Controllers/Settings/Localisation.php +++ b/app/Http/Controllers/Settings/Localisation.php @@ -41,9 +41,9 @@ class Localisation extends Controller 'both' => trans('settings.localisation.discount_location.both'), ]; - $financial_year_denote_options = [ - 'begins' => trans('settings.localisation.financial_year_denote.begins'), - 'ends' => trans('settings.localisation.financial_year_denote.ends'), + $financial_denote_options = [ + 'begins' => trans('settings.localisation.financial_denote.begins'), + 'ends' => trans('settings.localisation.financial_denote.ends'), ]; return view('settings.localisation.edit', compact( @@ -52,7 +52,7 @@ class Localisation extends Controller 'date_separators', 'percent_positions', 'discount_locations', - 'financial_year_denote_options' + 'financial_denote_options' )); } } diff --git a/app/Traits/DateTime.php b/app/Traits/DateTime.php index 6bcaa4fe8..79b2b2fae 100644 --- a/app/Traits/DateTime.php +++ b/app/Traits/DateTime.php @@ -110,7 +110,7 @@ trait DateTime $financial_start = Date::create($year, $month, $day); - if (setting('localisation.financial_year_denote') == 'ends' && $financial_start->dayOfYear != 1) { + if ((setting('localisation.financial_denote') == 'ends') && ($financial_start->dayOfYear != 1)) { $financial_start->subYear(); } diff --git a/config/setting.php b/config/setting.php index ef2537a45..c3082d162 100644 --- a/config/setting.php +++ b/config/setting.php @@ -98,12 +98,12 @@ return [ 'fallback' => [ 'localisation' => [ 'financial_start' => env('SETTING_FALLBACK_LOCALISATION_FINANCIAL_START', '01-01'), + 'financial_denote' => env('SETTING_FALLBACK_LOCALISATION_FINANCIAL_DENOTE', 'ends'), 'timezone' => env('SETTING_FALLBACK_LOCALISATION_TIMEZONE', 'Europe/London'), 'date_format' => env('SETTING_FALLBACK_LOCALISATION_DATE_FORMAT', 'd M Y'), 'date_separator' => env('SETTING_FALLBACK_LOCALISATION_DATE_SEPARATOR', 'space'), 'percent_position' => env('SETTING_FALLBACK_LOCALISATION_PERCENT_POSITION', 'after'), 'discount_location' => env('SETTING_FALLBACK_LOCALISATION_DISCOUNT_LOCATION', 'total'), - 'financial_year_denote' => env('SETTING_FALLBACK_LOCALISATION_FINANCIAL_YEAR_DENOTE', 'ends'), ], 'invoice' => [ 'number_prefix' => env('SETTING_FALLBACK_INVOICE_NUMBER_PREFIX', 'INV-'), diff --git a/resources/lang/en-GB/settings.php b/resources/lang/en-GB/settings.php index c5bf423e3..dc1516ed5 100644 --- a/resources/lang/en-GB/settings.php +++ b/resources/lang/en-GB/settings.php @@ -16,6 +16,11 @@ return [ 'description' => 'Set fiscal year, time zone, date format and more locals', 'financial_start' => 'Financial Year Start', 'timezone' => 'Time Zone', + 'financial_denote' => [ + 'title' => 'Financial Year Denote', + 'begins' => 'By the year in which it begins', + 'ends' => 'By the year in which it ends', + ], 'date' => [ 'format' => 'Date Format', 'separator' => 'Date Separator', @@ -36,11 +41,6 @@ return [ 'total' => 'At total', 'both' => 'Both line and total', ], - 'financial_year_denote' => [ - 'title' => 'Financial Year Denote', - 'begins' => 'By the year it begins', - 'ends' => 'By the year it ends', - ], ], 'invoice' => [ diff --git a/resources/views/settings/localisation/edit.blade.php b/resources/views/settings/localisation/edit.blade.php index 29f588924..2018e8346 100644 --- a/resources/views/settings/localisation/edit.blade.php +++ b/resources/views/settings/localisation/edit.blade.php @@ -20,7 +20,7 @@
{{ Form::dateGroup('financial_start', trans('settings.localisation.financial_start'), 'calendar', ['id' => 'financial_start', 'class' => 'form-control datepicker', 'show-date-format' => 'j F', 'date-format' => 'd-m', 'autocomplete' => 'off'], setting('localisation.financial_start')) }} - {{ Form::selectGroup('financial_year_denote', trans('settings.localisation.financial_year_denote.title'), 'calendar', $financial_year_denote_options, setting('localisation.financial_year_denote'), []) }} + {{ Form::selectGroup('financial_denote', trans('settings.localisation.financial_denote.title'), 'calendar', $financial_denote_options, setting('localisation.financial_denote'), []) }} {{ Form::selectGroupGroup('timezone', trans('settings.localisation.timezone'), 'globe', $timezones, setting('localisation.timezone'), []) }} From 5137ef3e983d31a59893307becee255d8ab2e3f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Sat, 13 Feb 2021 00:50:14 +0300 Subject: [PATCH 075/121] fixed auth profile permission --- resources/views/partials/admin/navbar.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/partials/admin/navbar.blade.php b/resources/views/partials/admin/navbar.blade.php index 2781d23b8..64a982f77 100644 --- a/resources/views/partials/admin/navbar.blade.php +++ b/resources/views/partials/admin/navbar.blade.php @@ -254,12 +254,12 @@ @stack('navbar_profile_edit') - @can(['read-auth-users', 'read-auth-profile']) + @canany(['read-auth-users', 'read-auth-profile']) {{ trans('auth.profile') }} - @endcan + @endcanany @canany(['read-auth-users', 'read-auth-roles', 'read-auth-permissions']) From 6afd559dcba132818050d3986c24e6abdde829dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Sat, 13 Feb 2021 01:53:10 +0300 Subject: [PATCH 076/121] composer lock --- composer.lock | 202 +++++++++++++++++++++++++------------------------- 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/composer.lock b/composer.lock index 589eedeca..8c39d390d 100644 --- a/composer.lock +++ b/composer.lock @@ -344,16 +344,16 @@ }, { "name": "akaunting/setting", - "version": "1.2.2", + "version": "1.2.4", "source": { "type": "git", "url": "https://github.com/akaunting/setting.git", - "reference": "5731c99819961f912092d14f2fcf312aa4c48d61" + "reference": "1e7d9c9c35a6c8f86930b64c38f51db0fbde3111" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/akaunting/setting/zipball/5731c99819961f912092d14f2fcf312aa4c48d61", - "reference": "5731c99819961f912092d14f2fcf312aa4c48d61", + "url": "https://api.github.com/repos/akaunting/setting/zipball/1e7d9c9c35a6c8f86930b64c38f51db0fbde3111", + "reference": "1e7d9c9c35a6c8f86930b64c38f51db0fbde3111", "shasum": "" }, "require": { @@ -405,9 +405,9 @@ ], "support": { "issues": "https://github.com/akaunting/setting/issues", - "source": "https://github.com/akaunting/setting/tree/1.2.2" + "source": "https://github.com/akaunting/setting/tree/1.2.4" }, - "time": "2020-09-09T14:16:22+00:00" + "time": "2021-02-12T22:44:39+00:00" }, { "name": "akaunting/version", @@ -4528,16 +4528,16 @@ }, { "name": "laravel/framework", - "version": "v8.25.0", + "version": "v8.27.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "05da44d6823c2923597519ac10151f5827a24f80" + "reference": "a6680d98f9dadaa363aa7d5218517a08706cee64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/05da44d6823c2923597519ac10151f5827a24f80", - "reference": "05da44d6823c2923597519ac10151f5827a24f80", + "url": "https://api.github.com/repos/laravel/framework/zipball/a6680d98f9dadaa363aa7d5218517a08706cee64", + "reference": "a6680d98f9dadaa363aa7d5218517a08706cee64", "shasum": "" }, "require": { @@ -4692,7 +4692,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-01-26T14:40:21+00:00" + "time": "2021-02-09T15:14:54+00:00" }, { "name": "laravel/tinker", @@ -5341,16 +5341,16 @@ }, { "name": "livewire/livewire", - "version": "v2.3.8", + "version": "v2.3.17", "source": { "type": "git", "url": "https://github.com/livewire/livewire.git", - "reference": "c661e295428b2baaff04320d0a9424db5ca72be5" + "reference": "1a1d43ff365301ae99ed7f0ccf02c553d4eeba03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/c661e295428b2baaff04320d0a9424db5ca72be5", - "reference": "c661e295428b2baaff04320d0a9424db5ca72be5", + "url": "https://api.github.com/repos/livewire/livewire/zipball/1a1d43ff365301ae99ed7f0ccf02c553d4eeba03", + "reference": "1a1d43ff365301ae99ed7f0ccf02c553d4eeba03", "shasum": "" }, "require": { @@ -5401,7 +5401,7 @@ "description": "A front-end framework for Laravel.", "support": { "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v2.3.8" + "source": "https://github.com/livewire/livewire/tree/v2.3.17" }, "funding": [ { @@ -5409,20 +5409,20 @@ "type": "github" } ], - "time": "2021-01-21T14:01:48+00:00" + "time": "2021-02-09T15:15:49+00:00" }, { "name": "lorisleiva/laravel-search-string", - "version": "v1.1.0", + "version": "v1.1.1", "source": { "type": "git", "url": "https://github.com/lorisleiva/laravel-search-string.git", - "reference": "afed28a7c2f7a2921c43a31dd8896446844bad98" + "reference": "8b0b82053c51266f2d062f542ab67eac82cefcf9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lorisleiva/laravel-search-string/zipball/afed28a7c2f7a2921c43a31dd8896446844bad98", - "reference": "afed28a7c2f7a2921c43a31dd8896446844bad98", + "url": "https://api.github.com/repos/lorisleiva/laravel-search-string/zipball/8b0b82053c51266f2d062f542ab67eac82cefcf9", + "reference": "8b0b82053c51266f2d062f542ab67eac82cefcf9", "shasum": "" }, "require": { @@ -5459,7 +5459,7 @@ "description": "Generates database queries based on one unique string using a simple and customizable syntax.", "support": { "issues": "https://github.com/lorisleiva/laravel-search-string/issues", - "source": "https://github.com/lorisleiva/laravel-search-string/tree/v1.1.0" + "source": "https://github.com/lorisleiva/laravel-search-string/tree/v1.1.1" }, "funding": [ { @@ -5467,7 +5467,7 @@ "type": "github" } ], - "time": "2021-01-29T10:07:03+00:00" + "time": "2021-02-05T17:50:31+00:00" }, { "name": "maatwebsite/excel", @@ -6215,16 +6215,16 @@ }, { "name": "nesbot/carbon", - "version": "2.44.0", + "version": "2.45.1", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "e6ef33cb1f67a4bed831ed6d0f7e156739a5d8cd" + "reference": "528783b188bdb853eb21239b1722831e0f000a8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/e6ef33cb1f67a4bed831ed6d0f7e156739a5d8cd", - "reference": "e6ef33cb1f67a4bed831ed6d0f7e156739a5d8cd", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/528783b188bdb853eb21239b1722831e0f000a8d", + "reference": "528783b188bdb853eb21239b1722831e0f000a8d", "shasum": "" }, "require": { @@ -6304,7 +6304,7 @@ "type": "tidelift" } ], - "time": "2021-01-26T20:46:41+00:00" + "time": "2021-02-11T18:30:17+00:00" }, { "name": "nikic/php-parser", @@ -6843,16 +6843,16 @@ }, { "name": "php-http/message", - "version": "1.10.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/php-http/message.git", - "reference": "39db36d5972e9e6d00ea852b650953f928d8f10d" + "reference": "fb0dbce7355cad4f4f6a225f537c34d013571f29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/message/zipball/39db36d5972e9e6d00ea852b650953f928d8f10d", - "reference": "39db36d5972e9e6d00ea852b650953f928d8f10d", + "url": "https://api.github.com/repos/php-http/message/zipball/fb0dbce7355cad4f4f6a225f537c34d013571f29", + "reference": "fb0dbce7355cad4f4f6a225f537c34d013571f29", "shasum": "" }, "require": { @@ -6868,15 +6868,15 @@ "ergebnis/composer-normalize": "^2.6", "ext-zlib": "*", "guzzlehttp/psr7": "^1.0", + "laminas/laminas-diactoros": "^2.0", "phpspec/phpspec": "^5.1 || ^6.3", - "slim/slim": "^3.0", - "zendframework/zend-diactoros": "^1.0" + "slim/slim": "^3.0" }, "suggest": { "ext-zlib": "Used with compressor/decompressor streams", "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories", - "slim/slim": "Used with Slim Framework PSR-7 implementation", - "zendframework/zend-diactoros": "Used with Diactoros Factories" + "laminas/laminas-diactoros": "Used with Diactoros Factories", + "slim/slim": "Used with Slim Framework PSR-7 implementation" }, "type": "library", "extra": { @@ -6911,9 +6911,9 @@ ], "support": { "issues": "https://github.com/php-http/message/issues", - "source": "https://github.com/php-http/message/tree/1.10.0" + "source": "https://github.com/php-http/message/tree/1.11.0" }, - "time": "2020-11-11T10:19:56+00:00" + "time": "2021-02-01T08:54:58+00:00" }, { "name": "php-http/message-factory", @@ -8737,16 +8737,16 @@ }, { "name": "symfony/console", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "d62ec79478b55036f65e2602e282822b8eaaff0a" + "reference": "89d4b176d12a2946a1ae4e34906a025b7b6b135a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/d62ec79478b55036f65e2602e282822b8eaaff0a", - "reference": "d62ec79478b55036f65e2602e282822b8eaaff0a", + "url": "https://api.github.com/repos/symfony/console/zipball/89d4b176d12a2946a1ae4e34906a025b7b6b135a", + "reference": "89d4b176d12a2946a1ae4e34906a025b7b6b135a", "shasum": "" }, "require": { @@ -8814,7 +8814,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.2.2" + "source": "https://github.com/symfony/console/tree/v5.2.3" }, "funding": [ { @@ -8830,11 +8830,11 @@ "type": "tidelift" } ], - "time": "2021-01-27T10:15:41+00:00" + "time": "2021-01-28T22:06:19+00:00" }, { "name": "symfony/css-selector", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", @@ -8879,7 +8879,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.2.2" + "source": "https://github.com/symfony/css-selector/tree/v5.2.3" }, "funding": [ { @@ -9035,16 +9035,16 @@ }, { "name": "symfony/error-handler", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "4fd4a377f7b7ec7c3f3b40346a1411e0a83f9d40" + "reference": "48f18b3609e120ea66d59142c23dc53e9562c26d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/4fd4a377f7b7ec7c3f3b40346a1411e0a83f9d40", - "reference": "4fd4a377f7b7ec7c3f3b40346a1411e0a83f9d40", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/48f18b3609e120ea66d59142c23dc53e9562c26d", + "reference": "48f18b3609e120ea66d59142c23dc53e9562c26d", "shasum": "" }, "require": { @@ -9084,7 +9084,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.2.2" + "source": "https://github.com/symfony/error-handler/tree/v5.2.3" }, "funding": [ { @@ -9100,11 +9100,11 @@ "type": "tidelift" } ], - "time": "2021-01-27T10:15:41+00:00" + "time": "2021-01-28T22:06:19+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", @@ -9169,7 +9169,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.2" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.3" }, "funding": [ { @@ -9268,7 +9268,7 @@ }, { "name": "symfony/filesystem", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", @@ -9310,7 +9310,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.2.2" + "source": "https://github.com/symfony/filesystem/tree/v5.2.3" }, "funding": [ { @@ -9330,16 +9330,16 @@ }, { "name": "symfony/finder", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e" + "reference": "4adc8d172d602008c204c2e16956f99257248e03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/196f45723b5e618bf0e23b97e96d11652696ea9e", - "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e", + "url": "https://api.github.com/repos/symfony/finder/zipball/4adc8d172d602008c204c2e16956f99257248e03", + "reference": "4adc8d172d602008c204c2e16956f99257248e03", "shasum": "" }, "require": { @@ -9371,7 +9371,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.2.2" + "source": "https://github.com/symfony/finder/tree/v5.2.3" }, "funding": [ { @@ -9387,7 +9387,7 @@ "type": "tidelift" } ], - "time": "2021-01-27T10:01:46+00:00" + "time": "2021-01-28T22:06:19+00:00" }, { "name": "symfony/http-client-contracts", @@ -9470,16 +9470,16 @@ }, { "name": "symfony/http-foundation", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "16dfa5acf8103f0394d447f8eea3ea49f9e50855" + "reference": "20c554c0f03f7cde5ce230ed248470cccbc34c36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/16dfa5acf8103f0394d447f8eea3ea49f9e50855", - "reference": "16dfa5acf8103f0394d447f8eea3ea49f9e50855", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/20c554c0f03f7cde5ce230ed248470cccbc34c36", + "reference": "20c554c0f03f7cde5ce230ed248470cccbc34c36", "shasum": "" }, "require": { @@ -9523,7 +9523,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.2.2" + "source": "https://github.com/symfony/http-foundation/tree/v5.2.3" }, "funding": [ { @@ -9539,20 +9539,20 @@ "type": "tidelift" } ], - "time": "2021-01-27T11:19:04+00:00" + "time": "2021-02-03T04:42:09+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "831b51e9370ece0febd0950dd819c63f996721c7" + "reference": "89bac04f29e7b0b52f9fa6a4288ca7a8f90a1a05" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/831b51e9370ece0febd0950dd819c63f996721c7", - "reference": "831b51e9370ece0febd0950dd819c63f996721c7", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/89bac04f29e7b0b52f9fa6a4288ca7a8f90a1a05", + "reference": "89bac04f29e7b0b52f9fa6a4288ca7a8f90a1a05", "shasum": "" }, "require": { @@ -9635,7 +9635,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.2.2" + "source": "https://github.com/symfony/http-kernel/tree/v5.2.3" }, "funding": [ { @@ -9651,20 +9651,20 @@ "type": "tidelift" } ], - "time": "2021-01-27T14:45:46+00:00" + "time": "2021-02-03T04:51:58+00:00" }, { "name": "symfony/mime", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "37bade585ea100d235c031b258eff93b5b6bb9a9" + "reference": "7dee6a43493f39b51ff6c5bb2bd576fe40a76c86" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/37bade585ea100d235c031b258eff93b5b6bb9a9", - "reference": "37bade585ea100d235c031b258eff93b5b6bb9a9", + "url": "https://api.github.com/repos/symfony/mime/zipball/7dee6a43493f39b51ff6c5bb2bd576fe40a76c86", + "reference": "7dee6a43493f39b51ff6c5bb2bd576fe40a76c86", "shasum": "" }, "require": { @@ -9717,7 +9717,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.2.2" + "source": "https://github.com/symfony/mime/tree/v5.2.3" }, "funding": [ { @@ -9733,7 +9733,7 @@ "type": "tidelift" } ], - "time": "2021-01-25T14:08:25+00:00" + "time": "2021-02-02T06:10:15+00:00" }, { "name": "symfony/polyfill-ctype", @@ -10466,7 +10466,7 @@ }, { "name": "symfony/process", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", @@ -10508,7 +10508,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.2.2" + "source": "https://github.com/symfony/process/tree/v5.2.3" }, "funding": [ { @@ -10528,7 +10528,7 @@ }, { "name": "symfony/routing", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", @@ -10598,7 +10598,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.2.2" + "source": "https://github.com/symfony/routing/tree/v5.2.3" }, "funding": [ { @@ -10697,7 +10697,7 @@ }, { "name": "symfony/string", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/string.git", @@ -10760,7 +10760,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.2.2" + "source": "https://github.com/symfony/string/tree/v5.2.3" }, "funding": [ { @@ -10780,7 +10780,7 @@ }, { "name": "symfony/translation", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", @@ -10853,7 +10853,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.2.2" + "source": "https://github.com/symfony/translation/tree/v5.2.3" }, "funding": [ { @@ -10951,7 +10951,7 @@ }, { "name": "symfony/var-dumper", - "version": "v5.2.2", + "version": "v5.2.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", @@ -11019,7 +11019,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.2.2" + "source": "https://github.com/symfony/var-dumper/tree/v5.2.3" }, "funding": [ { @@ -11580,16 +11580,16 @@ }, { "name": "facade/ignition", - "version": "2.5.9", + "version": "2.5.11", "source": { "type": "git", "url": "https://github.com/facade/ignition.git", - "reference": "66b3138ecce38024723fb3bfc66ef8852a779ea9" + "reference": "e91d67353054bf827c64687fcac5ea44e4dcec54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/66b3138ecce38024723fb3bfc66ef8852a779ea9", - "reference": "66b3138ecce38024723fb3bfc66ef8852a779ea9", + "url": "https://api.github.com/repos/facade/ignition/zipball/e91d67353054bf827c64687fcac5ea44e4dcec54", + "reference": "e91d67353054bf827c64687fcac5ea44e4dcec54", "shasum": "" }, "require": { @@ -11653,7 +11653,7 @@ "issues": "https://github.com/facade/ignition/issues", "source": "https://github.com/facade/ignition" }, - "time": "2021-01-26T14:45:19+00:00" + "time": "2021-02-05T12:52:11+00:00" }, { "name": "facade/ignition-contracts", @@ -12598,16 +12598,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.1", + "version": "9.5.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360" + "reference": "f661659747f2f87f9e72095bb207bceb0f151cb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e7bdf4085de85a825f4424eae52c99a1cec2f360", - "reference": "e7bdf4085de85a825f4424eae52c99a1cec2f360", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f661659747f2f87f9e72095bb207bceb0f151cb4", + "reference": "f661659747f2f87f9e72095bb207bceb0f151cb4", "shasum": "" }, "require": { @@ -12685,7 +12685,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.1" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.2" }, "funding": [ { @@ -12697,7 +12697,7 @@ "type": "github" } ], - "time": "2021-01-17T07:42:25+00:00" + "time": "2021-02-02T14:45:58+00:00" }, { "name": "sebastian/cli-parser", From b0adc4bdf9c830acf3c787ea255bc33a97480226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Sat, 13 Feb 2021 11:10:42 +0300 Subject: [PATCH 077/121] fixed tests --- database/seeds/TestCompany.php | 8 ++++++++ tests/Feature/FeatureTestCase.php | 10 ---------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/database/seeds/TestCompany.php b/database/seeds/TestCompany.php index e915c8163..0029cfc94 100644 --- a/database/seeds/TestCompany.php +++ b/database/seeds/TestCompany.php @@ -55,6 +55,14 @@ class TestCompany extends Seeder session(['company_id' => $company->id]); + // Set Company settings + setting()->setExtraColumns(['company_id' => $company->id]); + setting()->forgetAll(); + setting()->load(true); + + setting()->set(['email.protocol' => 'array']); + setting()->save(); + $this->command->info('Test company created.'); } diff --git a/tests/Feature/FeatureTestCase.php b/tests/Feature/FeatureTestCase.php index 9212a0b1d..7d30ddff8 100644 --- a/tests/Feature/FeatureTestCase.php +++ b/tests/Feature/FeatureTestCase.php @@ -26,16 +26,6 @@ abstract class FeatureTestCase extends TestCase $this->user = User::first(); $this->company = $this->user->companies()->first(); - session(['company_id' => $this->company->id]); - - // Set Company settings - setting()->setExtraColumns(['company_id' => $this->company->id]); - setting()->forgetAll(); - setting()->load(true); - - setting()->set(['email.protocol' => 'array']); - setting()->save(); - // Disable debugbar config(['debugbar.enabled', false]); From 1f77846ff7b15cb81dd5df00a45a2b530199cf1a Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Sat, 13 Feb 2021 08:31:53 +0000 Subject: [PATCH 078/121] new crowdin translations --- resources/lang/bs-BA/settings.php | 5 +++++ resources/lang/en-AU/settings.php | 5 +++++ resources/lang/hi-IN/items.php | 5 +++-- resources/lang/hi-IN/reports.php | 1 + resources/lang/hi-IN/settings.php | 18 ++++++++++++------ resources/lang/ne-NP/settings.php | 5 +++++ resources/lang/sq-AL/items.php | 5 +++-- resources/lang/sq-AL/settings.php | 18 ++++++++++++------ resources/lang/tr-TR/items.php | 5 +++-- resources/lang/tr-TR/settings.php | 23 ++++++++++++----------- 10 files changed, 61 insertions(+), 29 deletions(-) diff --git a/resources/lang/bs-BA/settings.php b/resources/lang/bs-BA/settings.php index 11e3989ed..8f6d45053 100644 --- a/resources/lang/bs-BA/settings.php +++ b/resources/lang/bs-BA/settings.php @@ -16,6 +16,11 @@ return [ 'description' => 'Postavite fiskalnu godinu, vremensku zonu, format datuma i više', 'financial_start' => 'Početak fiskalne godine', 'timezone' => 'Vremenska zona', + 'financial_denote' => [ + 'title' => 'Početak fiskalne godine', + 'begins' => 'Do godine u kojoj se započinje', + 'ends' => 'Do godine u kojoj završava', + ], 'date' => [ 'format' => 'Format datuma', 'separator' => 'Separator datuma', diff --git a/resources/lang/en-AU/settings.php b/resources/lang/en-AU/settings.php index 36a5920ed..dc1516ed5 100644 --- a/resources/lang/en-AU/settings.php +++ b/resources/lang/en-AU/settings.php @@ -16,6 +16,11 @@ return [ 'description' => 'Set fiscal year, time zone, date format and more locals', 'financial_start' => 'Financial Year Start', 'timezone' => 'Time Zone', + 'financial_denote' => [ + 'title' => 'Financial Year Denote', + 'begins' => 'By the year in which it begins', + 'ends' => 'By the year in which it ends', + ], 'date' => [ 'format' => 'Date Format', 'separator' => 'Date Separator', diff --git a/resources/lang/hi-IN/items.php b/resources/lang/hi-IN/items.php index 755959518..18342f784 100644 --- a/resources/lang/hi-IN/items.php +++ b/resources/lang/hi-IN/items.php @@ -2,7 +2,8 @@ return [ - 'sales_price' => 'विक्रय कीमत', - 'purchase_price' => 'खरीद कीमत', + 'sales_price' => 'विक्रय कीमत', + 'purchase_price' => 'खरीद कीमत', + 'enter_item_description' => 'वस्तु का विवरण दर्ज करें', ]; diff --git a/resources/lang/hi-IN/reports.php b/resources/lang/hi-IN/reports.php index 3d4477b14..d36126f28 100644 --- a/resources/lang/hi-IN/reports.php +++ b/resources/lang/hi-IN/reports.php @@ -2,6 +2,7 @@ return [ + 'years' => 'साल|वर्षों', 'this_year' => 'इस साल', 'previous_year' => 'पिछला साल', 'this_quarter' => 'इस तिमाही', diff --git a/resources/lang/hi-IN/settings.php b/resources/lang/hi-IN/settings.php index 5dbfb9428..84c689282 100644 --- a/resources/lang/hi-IN/settings.php +++ b/resources/lang/hi-IN/settings.php @@ -3,18 +3,24 @@ return [ 'company' => [ - 'description' => 'कंपनी का नाम, ईमेल, पता, कर संख्या आदि बदलें', - 'name' => 'नाम', - 'email' => 'ईमेल', - 'phone' => 'फ़ोन', - 'address' => 'पता', - 'logo' => 'लोगो', + 'description' => 'कंपनी का नाम, ईमेल, पता, कर संख्या आदि बदलें', + 'name' => 'नाम', + 'email' => 'ईमेल', + 'phone' => 'फ़ोन', + 'address' => 'पता', + 'edit_your_business_address' => 'अपना व्यावसायिक पता संपादित करें', + 'logo' => 'लोगो', ], 'localisation' => [ 'description' => 'वित्तीय वर्ष, समय क्षेत्र, तिथि प्रारूप और अधिक स्थानीय सेट करें', 'financial_start' => 'वित्तीय वर्ष प्रारंभ', 'timezone' => 'समय क्षेत्र', + 'financial_denote' => [ + 'title' => 'वित्तीय वर्ष की देन', + 'begins' => 'जिस वर्ष से यह शुरू होता है', + 'ends' => 'जिस वर्ष तक यह समाप्त हो जाता है', + ], 'date' => [ 'format' => 'तारीख प्रारूप', 'separator' => 'तारीख विभाजक', diff --git a/resources/lang/ne-NP/settings.php b/resources/lang/ne-NP/settings.php index 31839b8c5..3bf9c5d24 100644 --- a/resources/lang/ne-NP/settings.php +++ b/resources/lang/ne-NP/settings.php @@ -16,6 +16,11 @@ return [ 'description' => 'आर्थिक वर्ष, समय क्षेत्र, मितिको स्वरूप, र अरु स्थानीय विवरणहरु सेट गर्नुहोस्', 'financial_start' => 'आर्थिक वर्ष सुरु', 'timezone' => 'समयरेखा', + 'financial_denote' => [ + 'title' => 'वित्तीय वर्ष दर्शाउनुहोस्', + 'begins' => 'यो सुरु भएको सालमा', + 'ends' => 'यो समाप्त हुन्छ जुनमा', + ], 'date' => [ 'format' => 'मितिको ढांचा', 'separator' => 'मिति विभाजक', diff --git a/resources/lang/sq-AL/items.php b/resources/lang/sq-AL/items.php index d1f894937..40e21c8ec 100644 --- a/resources/lang/sq-AL/items.php +++ b/resources/lang/sq-AL/items.php @@ -2,7 +2,8 @@ return [ - 'sales_price' => 'Çmimi i Shitjes', - 'purchase_price' => 'Çmimi i Blerjes', + 'sales_price' => 'Çmimi i Shitjes', + 'purchase_price' => 'Çmimi i Blerjes', + 'enter_item_description' => 'Vendos Përshkrimin e Artikullit', ]; diff --git a/resources/lang/sq-AL/settings.php b/resources/lang/sq-AL/settings.php index d1bd89e49..2192834fb 100644 --- a/resources/lang/sq-AL/settings.php +++ b/resources/lang/sq-AL/settings.php @@ -3,18 +3,24 @@ return [ 'company' => [ - 'description' => 'Ndryshoni emrin e kompanisë, emailin, adresën, numrin e taksave etj', - 'name' => 'Emri', - 'email' => 'Email', - 'phone' => 'Telefoni', - 'address' => 'Adresa', - 'logo' => 'Logoja', + 'description' => 'Ndryshoni emrin e kompanisë, emailin, adresën, numrin e taksave etj', + 'name' => 'Emri', + 'email' => 'Email', + 'phone' => 'Telefoni', + 'address' => 'Adresa', + 'edit_your_business_address' => 'Redakto adresën e biznesit tënd', + 'logo' => 'Logoja', ], 'localisation' => [ 'description' => 'Vendosni vitin fiskal, zonën e kohës, formatin e datës dhe më shumë vendorë', 'financial_start' => 'Fillimi i Vitit Financiar', 'timezone' => 'Zona Kohore', + 'financial_denote' => [ + 'title' => 'Treguesi i Vitit Fiskal', + 'begins' => 'Deri në vitin në të cilin fillon', + 'ends' => 'Deri në vitin në të cilin përfundon', + ], 'date' => [ 'format' => 'Formati i Datës', 'separator' => 'Ndarës i Datës', diff --git a/resources/lang/tr-TR/items.php b/resources/lang/tr-TR/items.php index 93974c7a6..d9b3efdd1 100644 --- a/resources/lang/tr-TR/items.php +++ b/resources/lang/tr-TR/items.php @@ -2,7 +2,8 @@ return [ - 'sales_price' => 'Satış Fiyatı', - 'purchase_price' => 'Alış Fiyatı', + 'sales_price' => 'Satış Fiyatı', + 'purchase_price' => 'Alış Fiyatı', + 'enter_item_description' => 'Bir açıklama giriniz', ]; diff --git a/resources/lang/tr-TR/settings.php b/resources/lang/tr-TR/settings.php index b2bc9bf44..6bfae2024 100644 --- a/resources/lang/tr-TR/settings.php +++ b/resources/lang/tr-TR/settings.php @@ -3,18 +3,24 @@ return [ 'company' => [ - 'description' => 'Şirketin ismini, adresini, vergi numrasını vs. değiştirin', - 'name' => 'Şirket İsmi', - 'email' => 'Şirket Emaili', - 'phone' => 'Telefon', - 'address' => 'Şirket Adresi', - 'logo' => 'Şirket Logosu', + 'description' => 'Şirketin ismini, adresini, vergi numrasını vs. değiştirin', + 'name' => 'Şirket İsmi', + 'email' => 'Şirket Emaili', + 'phone' => 'Telefon', + 'address' => 'Şirket Adresi', + 'edit_your_business_address' => 'Şirket adresini giriniz', + 'logo' => 'Şirket Logosu', ], 'localisation' => [ 'description' => 'Mali yıl başlangıcını, saat dilimini, tarih biçimini vs. ayarlayın', 'financial_start' => 'Mali Yıl Başlangıcı', 'timezone' => 'Saat Dilimi', + 'financial_denote' => [ + 'title' => 'Mali Yıl Gösterimi', + 'begins' => 'Yılın başlangıcı', + 'ends' => 'Yılın bitişi', + ], 'date' => [ 'format' => 'Tarih Biçimi', 'separator' => 'Tarih Ayracı', @@ -35,11 +41,6 @@ return [ 'total' => 'Toplamda', 'both' => 'Satırda ve toplamda', ], - 'financial_year_denote' => [ - 'title' => 'Mali Yıl Gösterimi', - 'begins' => 'Başlangıç Yılı', - 'ends' => 'Bitiş Yılı', - ], ], 'invoice' => [ From 0ef7c42db023a9111124790944107b00b26165ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Sat, 13 Feb 2021 12:01:10 +0300 Subject: [PATCH 079/121] version update 2.1.1 to 2.1.2 --- config/version.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/version.php b/config/version.php index f005373e8..cf879d936 100644 --- a/config/version.php +++ b/config/version.php @@ -10,15 +10,15 @@ return [ 'minor' => '1', - 'patch' => '1', + 'patch' => '2', 'build' => '', 'status' => 'Stable', - 'date' => '1-February-2020', + 'date' => '12-February-2020', - 'time' => '11:00', + 'time' => '20:00', 'zone' => 'GMT +3', From 91cae79a2a6ad0e664552513b51523e2082994d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Sat, 13 Feb 2021 12:50:28 +0300 Subject: [PATCH 080/121] Suggestions styling.. --- resources/views/partials/admin/suggestions.blade.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/views/partials/admin/suggestions.blade.php b/resources/views/partials/admin/suggestions.blade.php index c2f3c8b0f..0b79682da 100644 --- a/resources/views/partials/admin/suggestions.blade.php +++ b/resources/views/partials/admin/suggestions.blade.php @@ -1,6 +1,6 @@ @foreach($modules as $module) - - {{ $module->name }} - + + {{ $module->name }} + @endforeach From 43bafc9afd74bfcc1b8513dc66cd5eda6cec62c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Sat, 13 Feb 2021 13:08:30 +0300 Subject: [PATCH 081/121] change log modal styling.. --- resources/views/install/updates/index.blade.php | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/views/install/updates/index.blade.php b/resources/views/install/updates/index.blade.php index 4df1f31df..44c34afe1 100644 --- a/resources/views/install/updates/index.blade.php +++ b/resources/views/install/updates/index.blade.php @@ -82,6 +82,7 @@
Date: Sun, 14 Feb 2021 12:52:00 +0300 Subject: [PATCH 082/121] added import export for categories --- app/Exports/Settings/Categories.php | 30 +++++++++++++ app/Http/Controllers/Settings/Categories.php | 41 ++++++++++++++++++ app/Imports/Settings/Categories.php | 20 +++++++++ public/files/import/categories.xlsx | Bin 0 -> 6662 bytes .../views/settings/categories/index.blade.php | 10 +++-- routes/admin.php | 2 + 6 files changed, 99 insertions(+), 4 deletions(-) create mode 100644 app/Exports/Settings/Categories.php create mode 100644 app/Imports/Settings/Categories.php create mode 100644 public/files/import/categories.xlsx diff --git a/app/Exports/Settings/Categories.php b/app/Exports/Settings/Categories.php new file mode 100644 index 000000000..b82fc958f --- /dev/null +++ b/app/Exports/Settings/Categories.php @@ -0,0 +1,30 @@ +ids)) { + $model->whereIn('id', (array) $this->ids); + } + + return $model->cursor(); + } + + public function fields(): array + { + return [ + 'name', + 'type', + 'color', + 'enabled', + ]; + } +} diff --git a/app/Http/Controllers/Settings/Categories.php b/app/Http/Controllers/Settings/Categories.php index a0222b540..727df6cb1 100644 --- a/app/Http/Controllers/Settings/Categories.php +++ b/app/Http/Controllers/Settings/Categories.php @@ -3,7 +3,10 @@ namespace App\Http\Controllers\Settings; use App\Abstracts\Http\Controller; +use App\Exports\Settings\Categories as Export; +use App\Http\Requests\Common\Import as ImportRequest; use App\Http\Requests\Setting\Category as Request; +use App\Imports\Settings\Categories as Import; use App\Jobs\Setting\CreateCategory; use App\Jobs\Setting\DeleteCategory; use App\Jobs\Setting\UpdateCategory; @@ -88,6 +91,34 @@ class Categories extends Controller return response()->json($response); } + /** + * Import the specified resource. + * + * @param ImportRequest $request + * + * @return Response + */ + public function import(ImportRequest $request) + { + $response = $this->importExcel(new Import, $request); + + if ($response['success']) { + $response['redirect'] = route('categories.index'); + + $message = trans('messages.success.imported', ['type' => trans_choice('general.categories', 2)]); + + flash($message)->success(); + } else { + $response['redirect'] = route('import.create', ['settings', 'categories']); + + $message = $response['message']; + + flash($message)->error()->important(); + } + + return response()->json($response); + } + /** * Show the form for editing the specified resource. * @@ -200,6 +231,16 @@ class Categories extends Controller return response()->json($response); } + /** + * Export the specified resource. + * + * @return Response + */ + public function export() + { + return $this->exportExcel(new Export, trans_choice('general.categories', 2)); + } + public function category(Request $request) { $category = $this->dispatch(new CreateCategory($request)); diff --git a/app/Imports/Settings/Categories.php b/app/Imports/Settings/Categories.php new file mode 100644 index 000000000..7443c09d3 --- /dev/null +++ b/app/Imports/Settings/Categories.php @@ -0,0 +1,20 @@ +rules(); + } +} diff --git a/public/files/import/categories.xlsx b/public/files/import/categories.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ab56765453d0d25efebcb195994f213431993b42 GIT binary patch literal 6662 zcmZ`-1ymbY+6_>OI}~?{yOSctDZwRJ(cl)mP_$_ALUE^fk>c*|#dUBkQlz+)Kb_fs zJHzfKC-0r)oO_ep@4Zj13JBo|J^%nf252iPsmaDlRqDb40LM=N06f^IdXi9k7c+Yo zLk$lHGiQBvcRSnCxFMx3PHgE*FX>G-`LxQH$b5(Xow&@ZqDJKmk(zzAwwLFZ3b6@^ zQ!nG~O{7m+ESy9(PF%G1O#?(3ZBY3Kof5Kez|2*wbBpUtEs$65jp!_G%8fkHZGjCW z92c095+-=4;GW&@LRg$g;`XA|R?8-<9 zeQ=4^4Io4jsH3#~D%8EY7U|z&gu8HOfb`KXoQ}9J3%fj;C6kDm7Dckv%A&^}Bnw&&YwHJIjsjD17w*+t`nc>aq#DIXA!ygW7V6 zuOXDFS*i~o-Q}7h>5turMYY8s4`&ZHQ_RPVhB*b>^;g~Am!dNri)c2da4P=@1!1j# z;5S$ZK=1$n8f-UoGP8B&VE?t2#*SEbaiaSjd7|cc=2Qo9$)p<$X4P?5B8}N@h0rBb zw6J;KdW2LUHcoU!CFCh*2D;sPkW9Y_nG2sRXO~wwh?rZhAu-r1m_{f}>enIZsR-tg zozr^LWI@5Sl`?lO`Wf9(RWdQwS1KZZBh-XCL;t50okH9xPxbBq`V_bQ;3-8H^r;3~ zK2R59&9W|QuWCncZi2UEEg-2bRKIZy-b3ktbuk{RK{QtsE5{m@jR6BZ%oIW!dnql0 zV8FldhyB@QwV)#nD0ED2bzjtwcs6k6q2ZHRZ}f=pdPv}!rs| zRj_?!DPVVhsYxnFhMbL**x~4NVOcju^aQ)H1uK zoBRV|4^6qE3Uy)>OqIg4?%OQ6c=6OQKqzAOT0W32BY2pDBpqmqD64Nu`C)cL3)Jhp z+~a(cDU4aHhmI8vUUiYU9c2~XTONBK{I z0w`!hBVo5!7y$slh6!W}g{U||9h^Cg9UOjXldj%jzsQN+a>RnZL@Lz5iTk7(7-bR?VuyntT4@XZw$#Zq3 z&WKupwuVIzy+$d0qy3&IwthNuO7zArhD|L2pN!y>F{U2V0Ph@J>BL;#t1Spp+MqVb zP;+LrMF2_;Oh^@epgHN@m1l)^vNE!VEoMAuRiBw3%YN;1mV2wa6f~xbkj7p_SsI$* z)iYoBu>(A?rSd!*A*Igpy2SZ;Vjhsl(lIg66_G7F_6XzLkJGdkiS$)*Mx6-B1sCn@ zi@aK#c{FTHH`H;->Q(L6mWd|ac2rR}iP2xCsJNMg1Z3+s*(>f#W@)M4*?dZir1P>n zv22jO(K)0(6(jqS7$u8kvc{DcR1^KJLexD?=@#U>(**e5Ea$reId+WDAFwK+=n#(# zXpivGzLZy9+dY~rQa_tjbhV^1Nj9+YNomNYm>@TKar_3Oo@6NWha)HJ;EyefvHcNd z<&}C$b>)G}mRVoGKSOs?Tl6Y5*DDsUM3&oVu(d8v6N5DI_`z1hpfDc{sr?6$!)%9kNIouTvmr ze9N_XL7EWD8VQC#sjQ>JQ7KV`tA6yJqs93T*(>Mk)0t8d)Ond6z!sAQ3eU@Q?(3#M zqnCl|;-)=Lu%t-~s4ZHRvm+kr^pWo&EY9V_$cJ}0+vzSR zt2RxyH&3_UIx>23>seZx)sHl#DQS9Ude`MA{?s6>OMQU@ zap>6YXS`HC}f7UD3SCTP3TvIltA+RQ3r=2JL)0_T%%sRi3)Qm-C2II`Y-_vDHDG`;TY0- zh_rkjX)T*~Qtv6Z@+){72)jv%5u?Nl>?`EC-eG%w5*xP&E0gReeeLHL?h4-i!NedN z=h5b`t1PPAsmIBJ$IhWZ=_m|(r3+e%%DyMS?h?qmG(Sp=0R%JZ;5`4JsOf&Ogcgr! z18go$$>MR0Q{`7$xKBQsD=~DA`;QUV?`zc(-lZZwXufV+IXX{AY$NmYret*mmw(SX zblDN+Q#q+0Y??hLu_yR)0xeygZCWa;Gw7&GaDRiiVqemrH-fsXzuuyG-=x>Ftc!TW zc4EVF)e(QrR~PnG94BYM6fwQW87CRhba)2rH}l4#yMb<%c!_3cZWm+@0( z@~ib?hBh(J)AjwYKd*jPz_mUnvR zC!UDm##_qb>NYc1!oXHzT7+R3~ic~F9 zq<|NaLhsnZ#woO9p1bo&R&sU2G1RQJfRp$qjN+bb4!lm z<;f>Et1Cwsrw%X8JTX`NC5PjL8Nyx3zx!%`sypGGr~N>1#Bz3vde08tZG7E&)!5A1 zQ@d=lW4pf4>#0EeLWM`hez5sHh?9e;-Bh$c^qIF0Ne6_f%pVPLG&5#(5Ayj_0CE9U z@4)lGN>g(AI46`kwBm#}KGJzc&Z0XbNAZ5W)`>_xE}%9j``l)Z%AUV2aX=NSjlRbV zVBwDEFPPFnHpOaBgGRzeCI;x)fGE~kiK!BU>a z()+hxtR`mkpbUqs;uAd$eCy3<@6{mBV0rzEe%BL7R`)xgFbf-*~Mt%HGQbX)J2XAZoVq`jUTSJ%_%v-wp}qYFCLI&6h4d zybITzV~_;(Le`5@lDEoVZ>URmi{q1J-JMd)AMuOY$e8It}@9y8IkcvTg@fm7|4SIS=^Pd$dpR5{+Q zH8^>4>g%jfPUR@;RJ_&63!0EXjH(0up@TXV-Y@idv`&8vWXl+U8hI?cPWUf@lw#c|D>#^S?i{F<6@1yS8= zp77}J0S9*Vl#0o*J)Q+f4ort555WM@i&&Q*(0}Iol0qX809J+-U@hjasR)+qoh^-> z%uLl?oUH6EoPQ;IyV$R=0SLYKNLV^PU8fOzOFLyQK~>-J?gWtUIx82dZh~b8Ri?+3 z8`+$^97?F=_U>z#YJH>?!-BNieNBI~(|gFT&RIYBXH zxOLX}$rRPw_EK2Q=y+;CVu>@VSG_sgOf+Z0G+}QVnTH}Tj9w8iRIV_1p)$mRHS@SJ z^d{d^AJ18GMYisV(I+xN^c|>2sd2r84tB1v-?_IBQ^)0VGcidn)YMvQ+c=Hg*%_NP=qaYOd$oY=va-l#*j!Cf(GH8|LO zF&`Q&HTX34X4(N@FYyZpRF9j5q%P@DeE#7(3Q;UEir8CKR3|t{1DGiisubt<*=0mC zbwW(~=QYdoXUU(F$57RP@A59^3%b|oRvQprt|P-j9IM{eRvC|$ev zlG`)KQ^h`ST!!1F$clD9!?@<0j_K2nZ)eYABUn{jc1Qz6}DXvBa{4gRjbeLnl4ui`5+TQzk)n|jJl!S!jSiIcc6cL%7eg(xU; zC)L%?fqJHOlowfNf=7yz`3;KBy2+lg4Hc>@rAA$_;>q<4WUXSJUw(=E| zzHPSC`srJ*&Km=T2F#u3rpf`V9h*O57N-T<6GVn1*dEy3i|L*yB$V681MRMgyKX1P z{NcNvoNoj)pQ;t%)Z{)f?p`4w9#!8ed_dnvW5};I?rgj+PhZ>18xu0*gO1LzVwP?X zgURo7G}o2QorDBz`$tr>U-MChku@twxKlha@ZNUfZZyrzs|_tN4CgV5EPFKyYI*gb?8ka zlQqlx$|5OH7H)J{u#;PJ)x7F`tOdW-?KfgiJjS%S@Hany{G1OTl0BNjn<<`!*3j^0^RPd)JjeUc`npy30OB*(eU(M$t2Cf}l864p1F7--J6#dZ z0*}cL=KM{T%^ePfoL?W*X)i={>!aMxu-%zs zJBSnFE!(BuHtddf+*jvuGkNnFYpU2Bih&AyEIRh{(_#+a3tQ~Obs73;$p>tKlKPvyO_g# z!X_k;)TLj!wCn+M5IhoIvzJb;Ou&rDqGxMHJ z44ZD;j8QLZQ1x_qT3PEh+|S;%gKu7IoB`=P%5=fU<-7b8bj_JpUDkv085pUBG4JSv zKB4W=WSYm9br(Om-D{JiFaEW_n~^5?h{ z|8nHnPK%@7s&}3k9rB#leSsKd}v22XHo^XWF>41QVwiooKBQGHQ%5y9RWXx(jA;bscsL zqpUaY%Om=|V|*pn$pRMDWX_AGc0F}?Z!0$>V%fT+vN&;dmg?IWXASl6+Q(i4#6|;d=y+paf^Ouq?0-=_u46W z1m!3BDkc#Ri9?52O5&*sa|^vPY|pZyz{AI%ld@|#UApJy=5QboJXwVx zyL2j`iHufH1nWc*ZEvqV85h6X{(IsU4*F(h`fByHZ6+^CMT_i@-L6-yX(yUOkksi{ z51$dD$VAA;22S4IwPp-xir}SA7e#3zxeRWUAporml$U3DT0UD?R{@!H6jvrD;g(L5 zTeBI;Va?|}vcBO(Udu6FC;sv?lUsosO`Bq5!5ED+5zQ}rBWs-u+A)r^;fZ(i(n77? z?DXJe7Q7>6Avs%&TOMpk;>0Sq#xkbl^eBZ?bx3_N7{voK318Qiags_;O9@M&ElJjY z=pwxeB-*Uy{Hnocc&IL}?#1QeTgQEm;O%_=@P5oz+=ea{k*6p$_Z0N1;H643o0vq} zlKavz_bLIfF26k_a##p$iHMKGUSrch>G&$+Tbqi(v4on}bv#yUkYSz0MQp z!R#C9>chs`eRKbOYM;2R)(XMXMEon-*07O`_zXp+?r^JEzwQ=_jjL#cW9I}CBgwo8 zaAbBMrAEOO(5~^Bu}fd%7t!p6XyszTG6Od4=^3Js>F@DP#2exMb(3~o5sQemF+^5} zu~C{Nho8#KC;=&lL%!FKe5w(U8jU+FRYbyGwEvMZ{_^yGCyqZIJ;ewvOn7Q+fTy8& z?d3}}$gtz=H6RCT&VdEnn3|RA#*>MS;bXGL{bug+6y390ha_}H6Rq0*<<1SCrA+Zx zvdf$V^k{~-+KEeEIf351xF!UA^sLV$j?O>T)W0M)V~%%Evalk)ZQpj4zLZeDu^fI? z_kgs!g`@(4gGYG!zYTKOuZKOT{#^g7UH+Khv90?T@)toktU~_HM{JWm+~8qkM!rCc{{ trans('general.add_new') }} - @endsection -@endcan + {{ trans('import.import') }} + @endcan + {{ trans('general.export') }} +@endsection @section('content')
diff --git a/routes/admin.php b/routes/admin.php index bbaf2b85f..486118b9f 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -145,6 +145,8 @@ Route::group(['prefix' => 'banking'], function () { Route::group(['prefix' => 'settings'], function () { Route::post('categories/category', 'Settings\Categories@category'); + Route::post('categories/import', 'Settings\Categories@import')->name('categories.import'); + Route::get('categories/export', 'Settings\Categories@export')->name('categories.export'); Route::get('categories/{category}/enable', 'Settings\Categories@enable')->name('categories.enable'); Route::get('categories/{category}/disable', 'Settings\Categories@disable')->name('categories.disable'); Route::resource('categories', 'Settings\Categories'); From f49db07e24227399553dd5c9f94ecd4be4f2f6ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Sun, 14 Feb 2021 12:57:30 +0300 Subject: [PATCH 083/121] make imported message plural --- app/Http/Controllers/Banking/Transactions.php | 2 +- app/Http/Controllers/Banking/Transfers.php | 2 +- app/Http/Controllers/Common/Items.php | 2 +- app/Http/Controllers/Purchases/Payments.php | 2 +- app/Http/Controllers/Purchases/Vendors.php | 2 +- app/Http/Controllers/Sales/Invoices.php | 2 +- app/Http/Controllers/Sales/Revenues.php | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/Banking/Transactions.php b/app/Http/Controllers/Banking/Transactions.php index 61a92d008..8ed90812b 100644 --- a/app/Http/Controllers/Banking/Transactions.php +++ b/app/Http/Controllers/Banking/Transactions.php @@ -47,7 +47,7 @@ class Transactions extends Controller if ($response['success']) { $response['redirect'] = route('transactions.index'); - $message = trans('messages.success.imported', ['type' => trans_choice('general.transactions', 1)]); + $message = trans('messages.success.imported', ['type' => trans_choice('general.transactions', 2)]); flash($message)->success(); } else { diff --git a/app/Http/Controllers/Banking/Transfers.php b/app/Http/Controllers/Banking/Transfers.php index 0814f9eeb..ba537734c 100644 --- a/app/Http/Controllers/Banking/Transfers.php +++ b/app/Http/Controllers/Banking/Transfers.php @@ -100,7 +100,7 @@ class Transfers extends Controller if ($response['success']) { $response['redirect'] = route('transfers.index'); - $message = trans('messages.success.imported', ['type' => trans_choice('general.transfers', 1)]); + $message = trans('messages.success.imported', ['type' => trans_choice('general.transfers', 2)]); flash($message)->success(); } else { diff --git a/app/Http/Controllers/Common/Items.php b/app/Http/Controllers/Common/Items.php index a836a40ec..5d1d002a8 100644 --- a/app/Http/Controllers/Common/Items.php +++ b/app/Http/Controllers/Common/Items.php @@ -116,7 +116,7 @@ class Items extends Controller if ($response['success']) { $response['redirect'] = route('items.index'); - $message = trans('messages.success.imported', ['type' => trans_choice('general.items', 1)]); + $message = trans('messages.success.imported', ['type' => trans_choice('general.items', 2)]); flash($message)->success(); } else { diff --git a/app/Http/Controllers/Purchases/Payments.php b/app/Http/Controllers/Purchases/Payments.php index bf8b1851f..8d9899ac3 100644 --- a/app/Http/Controllers/Purchases/Payments.php +++ b/app/Http/Controllers/Purchases/Payments.php @@ -139,7 +139,7 @@ class Payments extends Controller if ($response['success']) { $response['redirect'] = route('payments.index'); - $message = trans('messages.success.imported', ['type' => trans_choice('general.payments', 1)]); + $message = trans('messages.success.imported', ['type' => trans_choice('general.payments', 2)]); flash($message)->success(); } else { diff --git a/app/Http/Controllers/Purchases/Vendors.php b/app/Http/Controllers/Purchases/Vendors.php index 275ea79cd..1af867166 100644 --- a/app/Http/Controllers/Purchases/Vendors.php +++ b/app/Http/Controllers/Purchases/Vendors.php @@ -166,7 +166,7 @@ class Vendors extends Controller if ($response['success']) { $response['redirect'] = route('vendors.index'); - $message = trans('messages.success.imported', ['type' => trans_choice('general.vendors', 1)]); + $message = trans('messages.success.imported', ['type' => trans_choice('general.vendors', 2)]); flash($message)->success(); } else { diff --git a/app/Http/Controllers/Sales/Invoices.php b/app/Http/Controllers/Sales/Invoices.php index 0bf72a264..1742e25cc 100644 --- a/app/Http/Controllers/Sales/Invoices.php +++ b/app/Http/Controllers/Sales/Invoices.php @@ -132,7 +132,7 @@ class Invoices extends Controller if ($response['success']) { $response['redirect'] = route('invoices.index'); - $message = trans('messages.success.imported', ['type' => trans_choice('general.invoices', 1)]); + $message = trans('messages.success.imported', ['type' => trans_choice('general.invoices', 2)]); flash($message)->success(); } else { diff --git a/app/Http/Controllers/Sales/Revenues.php b/app/Http/Controllers/Sales/Revenues.php index b1f7b73cd..842d88d0d 100644 --- a/app/Http/Controllers/Sales/Revenues.php +++ b/app/Http/Controllers/Sales/Revenues.php @@ -139,7 +139,7 @@ class Revenues extends Controller if ($response['success']) { $response['redirect'] = route('revenues.index'); - $message = trans('messages.success.imported', ['type' => trans_choice('general.revenues', 1)]); + $message = trans('messages.success.imported', ['type' => trans_choice('general.revenues', 2)]); flash($message)->success(); } else { From 2c92998a1437af1dddf3bb9e4441339ecf2c5da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Sun, 14 Feb 2021 20:45:15 +0300 Subject: [PATCH 084/121] check if extra module is already installed --- app/Listeners/Module/InstallExtraModules.php | 12 ++++++++++-- app/Traits/Modules.php | 4 ---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/Listeners/Module/InstallExtraModules.php b/app/Listeners/Module/InstallExtraModules.php index 1a6328ba2..3af0a9695 100644 --- a/app/Listeners/Module/InstallExtraModules.php +++ b/app/Listeners/Module/InstallExtraModules.php @@ -6,11 +6,12 @@ use App\Events\Module\Installed as Event; use App\Jobs\Install\DownloadModule; use App\Jobs\Install\InstallModule; use App\Traits\Jobs; +use App\Traits\Modules; use Illuminate\Support\Facades\App; class InstallExtraModules { - use Jobs; + use Jobs, Modules; /** * Handle the event. @@ -40,8 +41,15 @@ class InstallExtraModules continue; } + // Check if module is already installed + if ($this->moduleIsEnabled($alias)) { + continue; + } + try { - $this->dispatch(new DownloadModule($alias, $event->company_id)); + if (!$this->moduleExists($alias)) { + $this->dispatch(new DownloadModule($alias, $event->company_id)); + } $this->dispatch(new InstallModule($alias, $event->company_id, $event->locale)); } catch (\Exception $e) { diff --git a/app/Traits/Modules.php b/app/Traits/Modules.php index a714747e1..cc28ba09b 100644 --- a/app/Traits/Modules.php +++ b/app/Traits/Modules.php @@ -4,13 +4,9 @@ namespace App\Traits; use App\Models\Module\Module; use App\Traits\SiteApi; -use App\Utilities\Console; use App\Utilities\Info; use Cache; use Date; -use File; -use Illuminate\Support\Str; -use ZipArchive; trait Modules { From 86ae76d8853f6fa839133047b057649f208455ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Mon, 15 Feb 2021 10:11:44 +0300 Subject: [PATCH 085/121] fixed permission check issue --- .../documents/index/empty-page.blade.php | 10 ++++++---- .../documents/index/top-buttons.blade.php | 16 ++++++++++------ resources/views/components/empty-page.blade.php | 10 ++++++---- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/resources/views/components/documents/index/empty-page.blade.php b/resources/views/components/documents/index/empty-page.blade.php index 81961f829..e281731a4 100644 --- a/resources/views/components/documents/index/empty-page.blade.php +++ b/resources/views/components/documents/index/empty-page.blade.php @@ -10,14 +10,16 @@ {!! trans($textEmptyPage) !!} {!! trans('general.empty.documentation', ['url' => $urlDocsPath]) !!}

- @if ($checkPermissionCreate) + @if ($checkPermissionCreate) @can($permissionCreate) - @endif + + {{ trans('general.title.create', ['type' => trans_choice($textPage, 1)]) }} + + @endcan + @else {{ trans('general.title.create', ['type' => trans_choice($textPage, 1)]) }} - @if ($checkPermissionCreate) - @endcan @endif
diff --git a/resources/views/components/documents/index/top-buttons.blade.php b/resources/views/components/documents/index/top-buttons.blade.php index 6108f4856..001540f81 100644 --- a/resources/views/components/documents/index/top-buttons.blade.php +++ b/resources/views/components/documents/index/top-buttons.blade.php @@ -1,17 +1,21 @@ -@if ($checkPermissionCreate) +@if ($checkPermissionCreate) @can($permissionCreate) -@endif + @if (!$hideCreate) + {{ trans('general.add_new') }} + @endif - @if (!$hideCreate) + @if (!$hideImport) + {{ trans('import.import') }} + @endif + @endcan +@else + @if (!$hideCreate) {{ trans('general.add_new') }} @endif @if (!$hideImport) {{ trans('import.import') }} @endif - -@if ($checkPermissionCreate) - @endcan @endif @if (!$hideExport) diff --git a/resources/views/components/empty-page.blade.php b/resources/views/components/empty-page.blade.php index d02fd9d15..8dc333682 100644 --- a/resources/views/components/empty-page.blade.php +++ b/resources/views/components/empty-page.blade.php @@ -10,14 +10,16 @@ {!! trans($textEmptyPage) !!} {!! trans('general.empty.documentation', ['url' => $urlDocsPath]) !!}

- @if ($checkPermissionCreate) + @if ($checkPermissionCreate) @can($permissionCreate) - @endif + + {{ trans('general.title.create', ['type' => trans_choice($textPage, 1)]) }} + + @endcan + @else {{ trans('general.title.create', ['type' => trans_choice($textPage, 1)]) }} - @if ($checkPermissionCreate) - @endcan @endif From fc6ed0280317ade3c6eed972206da2a3070ad881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Mon, 15 Feb 2021 10:12:05 +0300 Subject: [PATCH 086/121] document timeline permission typo --- resources/views/components/documents/show/timeline.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/components/documents/show/timeline.blade.php b/resources/views/components/documents/show/timeline.blade.php index 4054a96c1..2107dee43 100644 --- a/resources/views/components/documents/show/timeline.blade.php +++ b/resources/views/components/documents/show/timeline.blade.php @@ -181,7 +181,7 @@
@stack('timeline_get_paid_body_button_pay_start') @if (!$hideButtonPaid) - @can('update-sales-invoices') + @can($permissionUpdate) {{ trans($textTimelineGetPaidMarkPaid) }} From 435926d51464b44cea3c7a7b3334ac4e1c930c3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Mon, 15 Feb 2021 10:41:15 +0300 Subject: [PATCH 087/121] fixed undefined variable error --- app/Abstracts/Report.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Abstracts/Report.php b/app/Abstracts/Report.php index d8684fb3f..cc272233a 100644 --- a/app/Abstracts/Report.php +++ b/app/Abstracts/Report.php @@ -383,6 +383,7 @@ abstract class Report break; case 'quarterly': + $start = $end = ''; $quarters = $this->getFinancialQuarters($this->year); foreach ($quarters as $quarter) { From 6251d09edbaeeffe9c915dd36e9e4cdd34a2ec61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Mon, 15 Feb 2021 12:47:29 +0300 Subject: [PATCH 088/121] Document edit company logo issue solved.. --- app/Jobs/Document/UpdateDocument.php | 1 + .../Document/SettingFieldCreated.php | 36 ++++++++++++++++++- .../Document/SettingFieldUpdated.php | 36 ++++++++++++++++++- 3 files changed, 71 insertions(+), 2 deletions(-) diff --git a/app/Jobs/Document/UpdateDocument.php b/app/Jobs/Document/UpdateDocument.php index 7edff00f9..f9717219e 100644 --- a/app/Jobs/Document/UpdateDocument.php +++ b/app/Jobs/Document/UpdateDocument.php @@ -62,6 +62,7 @@ class UpdateDocument extends Job $this->dispatch(new CreateDocumentItemsAndTotals($this->document, $this->request)); $this->document->paid_amount = $this->document->paid; + event(new PaidAmountCalculated($this->document)); if ($this->document->paid_amount > 0) { diff --git a/app/Listeners/Document/SettingFieldCreated.php b/app/Listeners/Document/SettingFieldCreated.php index 66080152d..3ed162964 100644 --- a/app/Listeners/Document/SettingFieldCreated.php +++ b/app/Listeners/Document/SettingFieldCreated.php @@ -3,11 +3,15 @@ namespace App\Listeners\Document; use App\Events\Document\DocumentCreated as Event; +use App\Models\Common\Company; use App\Traits\Documents; +use App\Traits\Uploads; +use Illuminate\Support\Arr; +use Illuminate\Support\Str; class SettingFieldCreated { - use Documents; + use Documents, Uploads; /** * Handle the event. @@ -18,6 +22,7 @@ class SettingFieldCreated public function handle(Event $event) { $request = $event->request; + $document = $event->document; if (!$request->has('setting')) { return; @@ -28,6 +33,10 @@ class SettingFieldCreated foreach ($fields as $key => $value) { if ($key == 'company_logo') { + if (Arr::has($value, 'dropzone')) { + continue; + } + setting()->set('company.logo', $value); continue; @@ -38,6 +47,31 @@ class SettingFieldCreated setting()->set($real_key, $value); } + $files = $request->file('setting', []); + + if ($files) { + $company = Company::find($document->company_id); + + foreach ($files as $key => $value) { + // Upload attachment + $media = $this->getMedia($value, 'settings'); + + $company->attachMedia($media, Str::snake($real_key)); + + $value = $media->id; + + if ($key == 'company_logo') { + setting()->set('company.logo', $value); + + continue; + } + + $real_key = $type . '.' . $key; + + setting()->set($real_key, $value); + } + } + // Save all settings setting()->save(); } diff --git a/app/Listeners/Document/SettingFieldUpdated.php b/app/Listeners/Document/SettingFieldUpdated.php index 50155cd8e..681d4e02e 100644 --- a/app/Listeners/Document/SettingFieldUpdated.php +++ b/app/Listeners/Document/SettingFieldUpdated.php @@ -3,11 +3,15 @@ namespace App\Listeners\Document; use App\Events\Document\DocumentUpdated as Event; +use App\Models\Common\Company; +use App\Traits\Uploads; use App\Traits\Documents; +use Illuminate\Support\Arr; +use Illuminate\Support\Str; class SettingFieldUpdated { - use Documents; + use Documents, Uploads; /** * Handle the event. @@ -18,6 +22,7 @@ class SettingFieldUpdated public function handle(Event $event) { $request = $event->request; + $document = $event->document; if (!$request->has('setting')) { return; @@ -28,6 +33,10 @@ class SettingFieldUpdated foreach ($fields as $key => $value) { if ($key == 'company_logo') { + if (Arr::has($value, 'dropzone')) { + continue; + } + setting()->set('company.logo', $value); continue; @@ -38,6 +47,31 @@ class SettingFieldUpdated setting()->set($real_key, $value); } + $files = $request->file('setting', []); + + if ($files) { + $company = Company::find($document->company_id); + + foreach ($files as $key => $value) { + // Upload attachment + $media = $this->getMedia($value, 'settings'); + + $company->attachMedia($media, Str::snake($real_key)); + + $value = $media->id; + + if ($key == 'company_logo') { + setting()->set('company.logo', $value); + + continue; + } + + $real_key = $type . '.' . $key; + + setting()->set($real_key, $value); + } + } + // Save all settings setting()->save(); } From 087b41184bccda9de81dd37e8ccf3fdca10b668a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Mon, 15 Feb 2021 12:58:48 +0300 Subject: [PATCH 089/121] broken company.logo repair --- app/Listeners/Update/V21/Version213.php | 65 +++++++++++++++++++++++++ app/Providers/Event.php | 1 + 2 files changed, 66 insertions(+) create mode 100644 app/Listeners/Update/V21/Version213.php diff --git a/app/Listeners/Update/V21/Version213.php b/app/Listeners/Update/V21/Version213.php new file mode 100644 index 000000000..003e847d5 --- /dev/null +++ b/app/Listeners/Update/V21/Version213.php @@ -0,0 +1,65 @@ +skipThisUpdate($event)) { + return; + } + + $this->updateCompanies(); + } + + protected function updateCompanies() + { + $company_id = session('company_id'); + + $companies = Company::cursor(); + + foreach ($companies as $company) { + session(['company_id' => $company->id]); + + $this->updateSettings($company); + } + + setting()->forgetAll(); + + session(['company_id' => $company_id]); + + Overrider::load('settings'); + } + + public function updateSettings($company) + { + // Set the active company settings + setting()->setExtraColumns(['company_id' => $company->id]); + setting()->forgetAll(); + setting()->load(true); + + $company_logo = setting('company.logo'); + + if (is_array($company_logo)) { + setting()->set('company.logo', $company_logo['id']); + } + + setting()->save(); + } +} diff --git a/app/Providers/Event.php b/app/Providers/Event.php index 260ee43d1..1f7fac0e9 100644 --- a/app/Providers/Event.php +++ b/app/Providers/Event.php @@ -27,6 +27,7 @@ class Event extends Provider 'App\Listeners\Update\V20\Version2023', 'App\Listeners\Update\V20\Version2024', 'App\Listeners\Update\V21\Version210', + 'App\Listeners\Update\V21\Version213', ], 'Illuminate\Auth\Events\Login' => [ 'App\Listeners\Auth\Login', From 7dd96a308ebd791e29315ae1c96985c03b50fe6a Mon Sep 17 00:00:00 2001 From: Sevan Nerse Date: Mon, 15 Feb 2021 13:25:16 +0300 Subject: [PATCH 090/121] minor bug fixed on reflect recurring transactions to reports --- app/Abstracts/Report.php | 1 - app/Traits/DateTime.php | 8 ++++---- app/Utilities/Recurring.php | 16 ++++++++++------ 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/app/Abstracts/Report.php b/app/Abstracts/Report.php index cc272233a..d8684fb3f 100644 --- a/app/Abstracts/Report.php +++ b/app/Abstracts/Report.php @@ -383,7 +383,6 @@ abstract class Report break; case 'quarterly': - $start = $end = ''; $quarters = $this->getFinancialQuarters($this->year); foreach ($quarters as $quarter) { diff --git a/app/Traits/DateTime.php b/app/Traits/DateTime.php index 79b2b2fae..ef3f102e4 100644 --- a/app/Traits/DateTime.php +++ b/app/Traits/DateTime.php @@ -50,8 +50,8 @@ trait DateTime $start = Date::parse($year . '-01-01')->startOfDay()->format('Y-m-d H:i:s'); $end = Date::parse($year . '-12-31')->endOfDay()->format('Y-m-d H:i:s'); } else { - $start = $financial_start->format('Y-m-d H:i:s'); - $end = $financial_start->addYear(1)->subDays(1)->format('Y-m-d H:i:s'); + $start = $financial_start->startOfDay()->format('Y-m-d H:i:s'); + $end = $financial_start->addYear(1)->subDays(1)->endOfDay()->format('Y-m-d H:i:s'); } return $query->whereBetween($field, [$start, $end]); @@ -121,7 +121,7 @@ trait DateTime { $start = $this->getFinancialStart($year); - return CarbonPeriod::create($start, $start->copy()->addYear()->subDay()); + return CarbonPeriod::create($start, $start->copy()->addYear()->subDay()->endOfDay()); } public function getFinancialQuarters($year = null) @@ -130,7 +130,7 @@ trait DateTime $start = $this->getFinancialStart($year); for ($i = 0; $i < 4; $i++) { - $quarters[] = CarbonPeriod::create($start->copy()->addQuarters($i), $start->copy()->addQuarters($i + 1)->subDay()); + $quarters[] = CarbonPeriod::create($start->copy()->addQuarters($i), $start->copy()->addQuarters($i + 1)->subDay()->endOfDay()); } return $quarters; diff --git a/app/Utilities/Recurring.php b/app/Utilities/Recurring.php index 66372d165..0d16212ab 100644 --- a/app/Utilities/Recurring.php +++ b/app/Utilities/Recurring.php @@ -3,12 +3,17 @@ namespace App\Utilities; use App\Models\Document\Document; +use App\Traits\DateTime; use Date; class Recurring { + use DateTime; + public static function reflect(&$items, $issued_date_field) { + $financial_year = (new static)->getFinancialYear(); + foreach ($items as $key => $item) { // @todo cache recurrings if (!$item->recurring || !empty($item->parent_id)) { @@ -18,18 +23,17 @@ class Recurring foreach ($item->recurring->getRecurringSchedule(false) as $schedule) { $issued = Date::parse($item->$issued_date_field); $start = $schedule->getStart(); - - if ($issued->format('Y') != $start->format('Y')) { - continue; - } + $start_date = Date::parse($start->format('Y-m-d')); if (($issued->format('Y-m') == $start->format('Y-m')) && ($issued->format('d') >= $start->format('d'))) { continue; } - $clone = clone $item; + if ($start_date->lessThan($financial_year->getStartDate()) || $start_date->greaterThan($financial_year->getEndDate())) { + continue; + } - $start_date = Date::parse($start->format('Y-m-d')); + $clone = clone $item; if ($clone instanceof Document) { // Days between invoiced/billed and due date From 93d95a8dfcf18c53ee149c4a3d306b3a342efbd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Mon, 15 Feb 2021 13:48:12 +0300 Subject: [PATCH 091/121] close #1860 Fixed: Search dropdown breaks when screensize =< 575px --- public/css/custom.css | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/public/css/custom.css b/public/css/custom.css index 8ba877a0f..3b5652bea 100644 --- a/public/css/custom.css +++ b/public/css/custom.css @@ -808,6 +808,20 @@ table .align-items-center td span.badge { } } +@media (max-width: 768px) { + .navbar.navbar-top.navbar-expand.navbar-dark.border-bottom { + z-index: 99999; + } + + .dropdown-menu-xl { + min-width: 345px !important; + } + + .aka-select.aka-select--medium { + max-width: 294px !important; + } +} + .navbar-vertical.navbar-expand-xs { position: fixed; top: 0; From 2e7e30dd648d3f510aad7db6c35f2be355e6682f Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Mon, 15 Feb 2021 11:01:23 +0000 Subject: [PATCH 092/121] new crowdin translations --- resources/lang/ca-ES/items.php | 5 +++-- resources/lang/ca-ES/settings.php | 18 ++++++++++++------ resources/lang/cs-CZ/currencies.php | 1 + 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/resources/lang/ca-ES/items.php b/resources/lang/ca-ES/items.php index e592b96d4..612522e83 100644 --- a/resources/lang/ca-ES/items.php +++ b/resources/lang/ca-ES/items.php @@ -2,7 +2,8 @@ return [ - 'sales_price' => 'Preu de venda', - 'purchase_price' => 'Preu de compra', + 'sales_price' => 'Preu de venda', + 'purchase_price' => 'Preu de compra', + 'enter_item_description' => 'Introdueix la descripció de l\'article', ]; diff --git a/resources/lang/ca-ES/settings.php b/resources/lang/ca-ES/settings.php index b3277c4ca..94efd14ab 100644 --- a/resources/lang/ca-ES/settings.php +++ b/resources/lang/ca-ES/settings.php @@ -3,18 +3,24 @@ return [ 'company' => [ - 'description' => 'Canvia el nom d\'empresa, correu electrònic, adreça, NIF, etc...', - 'name' => 'Nom', - 'email' => 'Correu electrònic', - 'phone' => 'Telèfon', - 'address' => 'Adreça', - 'logo' => 'Logotip', + 'description' => 'Canvia el nom d\'empresa, correu electrònic, adreça, NIF, etc...', + 'name' => 'Nom', + 'email' => 'Correu electrònic', + 'phone' => 'Telèfon', + 'address' => 'Adreça', + 'edit_your_business_address' => 'Edita l\'adreça de l\'empresa', + 'logo' => 'Logotip', ], 'localisation' => [ 'description' => 'Defineix l\'any fiscal, la zona horària, el format de data i altres configuracions locals.', 'financial_start' => 'Inici de l\'any fiscal', 'timezone' => 'Zona horària', + 'financial_denote' => [ + 'title' => 'Denominació de l\'exercici', + 'begins' => 'Per l\'any d\'inici', + 'ends' => 'Per l\'any de finalització', + ], 'date' => [ 'format' => 'Format de data', 'separator' => 'Separador de la data', diff --git a/resources/lang/cs-CZ/currencies.php b/resources/lang/cs-CZ/currencies.php index 9fc1feb55..d803b0102 100644 --- a/resources/lang/cs-CZ/currencies.php +++ b/resources/lang/cs-CZ/currencies.php @@ -8,6 +8,7 @@ return [ 'decimal_mark' => 'Desetinná značka', 'thousands_separator' => 'Oddělovač tisíců', 'precision' => 'Přesnost', + 'conversion' => 'Převod měny: :price (:currency_code) na :currency_rate', 'symbol' => [ 'symbol' => 'Symbol', 'position' => 'Pozice symbolu', From 0b020a1484a2ea8860f786606a356000115445cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Mon, 15 Feb 2021 14:30:41 +0300 Subject: [PATCH 093/121] update composer.lock file.. --- composer.lock | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/composer.lock b/composer.lock index 8c39d390d..2bf0a68bb 100644 --- a/composer.lock +++ b/composer.lock @@ -5858,16 +5858,16 @@ }, { "name": "mobiledetect/mobiledetectlib", - "version": "2.8.35", + "version": "2.8.36", "source": { "type": "git", "url": "https://github.com/serbanghita/Mobile-Detect.git", - "reference": "68a35170fdf36e7b35f9c125e5102338dbc3ff65" + "reference": "e55c155f4d1ab299a0cfca8ec29a0154918c9e3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/68a35170fdf36e7b35f9c125e5102338dbc3ff65", - "reference": "68a35170fdf36e7b35f9c125e5102338dbc3ff65", + "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/e55c155f4d1ab299a0cfca8ec29a0154918c9e3d", + "reference": "e55c155f4d1ab299a0cfca8ec29a0154918c9e3d", "shasum": "" }, "require": { @@ -5908,9 +5908,9 @@ ], "support": { "issues": "https://github.com/serbanghita/Mobile-Detect/issues", - "source": "https://github.com/serbanghita/Mobile-Detect/tree/2.8.35" + "source": "https://github.com/serbanghita/Mobile-Detect/tree/2.8.36" }, - "time": "2021-01-25T19:09:34+00:00" + "time": "2021-02-13T14:35:52+00:00" }, { "name": "moneyphp/money", @@ -11580,16 +11580,16 @@ }, { "name": "facade/ignition", - "version": "2.5.11", + "version": "2.5.12", "source": { "type": "git", "url": "https://github.com/facade/ignition.git", - "reference": "e91d67353054bf827c64687fcac5ea44e4dcec54" + "reference": "be73521836f978106b3c3cf57de7eaeb261af520" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/e91d67353054bf827c64687fcac5ea44e4dcec54", - "reference": "e91d67353054bf827c64687fcac5ea44e4dcec54", + "url": "https://api.github.com/repos/facade/ignition/zipball/be73521836f978106b3c3cf57de7eaeb261af520", + "reference": "be73521836f978106b3c3cf57de7eaeb261af520", "shasum": "" }, "require": { @@ -11653,7 +11653,7 @@ "issues": "https://github.com/facade/ignition/issues", "source": "https://github.com/facade/ignition" }, - "time": "2021-02-05T12:52:11+00:00" + "time": "2021-02-15T07:55:43+00:00" }, { "name": "facade/ignition-contracts", From faf49d5937725dc273e05169ef5121cdfbf02121 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Mon, 15 Feb 2021 16:10:34 +0300 Subject: [PATCH 094/121] version update 2.1.2 to 2.1.3 --- config/version.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/version.php b/config/version.php index cf879d936..565abeb1c 100644 --- a/config/version.php +++ b/config/version.php @@ -10,15 +10,15 @@ return [ 'minor' => '1', - 'patch' => '2', + 'patch' => '3', 'build' => '', 'status' => 'Stable', - 'date' => '12-February-2020', + 'date' => '15-February-2020', - 'time' => '20:00', + 'time' => '15:00', 'zone' => 'GMT +3', From 96fd43384a979dd51c4176e4011a4acbfb304452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Mon, 15 Feb 2021 22:58:58 +0300 Subject: [PATCH 095/121] fixed excel data format --- app/Exports/Banking/Transactions.php | 11 ++++++++++- app/Exports/Purchases/Payments.php | 11 ++++++++++- app/Exports/Sales/Revenues.php | 11 ++++++++++- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/app/Exports/Banking/Transactions.php b/app/Exports/Banking/Transactions.php index 90f4b342d..d2e7a0ffc 100644 --- a/app/Exports/Banking/Transactions.php +++ b/app/Exports/Banking/Transactions.php @@ -4,8 +4,10 @@ namespace App\Exports\Banking; use App\Abstracts\Export; use App\Models\Banking\Transaction as Model; +use Maatwebsite\Excel\Concerns\WithColumnFormatting; +use PhpOffice\PhpSpreadsheet\Style\NumberFormat; -class Transactions extends Export +class Transactions extends Export implements WithColumnFormatting { public function collection() { @@ -51,4 +53,11 @@ class Transactions extends Export 'reconciled', ]; } + + public function columnFormats(): array + { + return [ + 'B' => NumberFormat::FORMAT_DATE_YYYYMMDD, + ]; + } } diff --git a/app/Exports/Purchases/Payments.php b/app/Exports/Purchases/Payments.php index d5558f434..8acdbec9f 100644 --- a/app/Exports/Purchases/Payments.php +++ b/app/Exports/Purchases/Payments.php @@ -4,8 +4,10 @@ namespace App\Exports\Purchases; use App\Abstracts\Export; use App\Models\Banking\Transaction as Model; +use Maatwebsite\Excel\Concerns\WithColumnFormatting; +use PhpOffice\PhpSpreadsheet\Style\NumberFormat; -class Payments extends Export +class Payments extends Export implements WithColumnFormatting { public function collection() { @@ -45,4 +47,11 @@ class Payments extends Export 'reconciled', ]; } + + public function columnFormats(): array + { + return [ + 'A' => NumberFormat::FORMAT_DATE_YYYYMMDD, + ]; + } } diff --git a/app/Exports/Sales/Revenues.php b/app/Exports/Sales/Revenues.php index 12de9e077..47e7c6dfe 100644 --- a/app/Exports/Sales/Revenues.php +++ b/app/Exports/Sales/Revenues.php @@ -4,8 +4,10 @@ namespace App\Exports\Sales; use App\Abstracts\Export; use App\Models\Banking\Transaction as Model; +use Maatwebsite\Excel\Concerns\WithColumnFormatting; +use PhpOffice\PhpSpreadsheet\Style\NumberFormat; -class Revenues extends Export +class Revenues extends Export implements WithColumnFormatting { public function collection() { @@ -45,4 +47,11 @@ class Revenues extends Export 'reconciled', ]; } + + public function columnFormats(): array + { + return [ + 'A' => NumberFormat::FORMAT_DATE_YYYYMMDD, + ]; + } } From 7a10757c8db5f4704463874ea4d4ee66727202a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Mon, 15 Feb 2021 23:11:10 +0300 Subject: [PATCH 096/121] improved document import --- app/Exports/Banking/Transactions.php | 9 ++------- app/Traits/Import.php | 4 ++++ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/Exports/Banking/Transactions.php b/app/Exports/Banking/Transactions.php index d2e7a0ffc..01354dd74 100644 --- a/app/Exports/Banking/Transactions.php +++ b/app/Exports/Banking/Transactions.php @@ -11,7 +11,7 @@ class Transactions extends Export implements WithColumnFormatting { public function collection() { - $model = Model::with('account', 'bill', 'category', 'contact', 'invoice')->usingSearchString(request('search')); + $model = Model::with('account', 'category', 'contact', 'document')->usingSearchString(request('search')); if (!empty($this->ids)) { $model->whereIn('id', (array) $this->ids); @@ -25,12 +25,7 @@ class Transactions extends Export implements WithColumnFormatting $model->account_name = $model->account->name; $model->contact_email = $model->contact->email; $model->category_name = $model->category->name; - - if ($model->type == 'income') { - $model->invoice_bill_number = $model->invoice->document_number ?? 0; - } else { - $model->invoice_bill_number = $model->bill->document_number ?? 0; - } + $model->invoice_bill_number = $model->document->document_number ?? 0; return parent::map($model); } diff --git a/app/Traits/Import.php b/app/Traits/Import.php index 15b5b290c..042ce58c8 100644 --- a/app/Traits/Import.php +++ b/app/Traits/Import.php @@ -64,6 +64,10 @@ trait Import { $id = isset($row['document_id']) ? $row['document_id'] : null; + if (empty($id) && !empty($row['document_number'])) { + $id = Document::number($row['document_number'])->pluck('id')->first(); + } + if (empty($id) && !empty($row['invoice_number'])) { $id = Document::invoice()->number($row['invoice_number'])->pluck('id')->first(); } From b59bbd52122be2aba15237772e3d0575e9d34425 Mon Sep 17 00:00:00 2001 From: Sevan Nerse Date: Tue, 16 Feb 2021 15:10:36 +0300 Subject: [PATCH 097/121] module prefix should be converted with kebab instead of slug --- app/View/Components/SearchString.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/View/Components/SearchString.php b/app/View/Components/SearchString.php index 86315ee12..9063929e3 100644 --- a/app/View/Components/SearchString.php +++ b/app/View/Components/SearchString.php @@ -163,7 +163,7 @@ class SearchString extends Component if (strpos($this->model, 'Modules') !== false) { $module_class = explode('\\', $this->model); - $url .= Str::slug($module_class[1], '-') . '::'; + $url .= Str::kebab($module_class[1]) . '::'; } if (strpos($column, '_id') !== false) { From 240e12cab6a21da021f7c943544c40d07119d71c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Wed, 17 Feb 2021 00:50:56 +0300 Subject: [PATCH 098/121] updated laravel dependencies --- composer.json | 12 +-- composer.lock | 207 +++++++++++++++++++++++++------------------------- 2 files changed, 109 insertions(+), 110 deletions(-) diff --git a/composer.json b/composer.json index 28d1b56a9..d55f0ad69 100644 --- a/composer.json +++ b/composer.json @@ -29,16 +29,16 @@ "dingo/api": "3.0.*", "doctrine/dbal": "2.11.*", "fideloper/proxy": "^4.4", - "fruitcake/laravel-cors": "^1.0", + "fruitcake/laravel-cors": "^2.0", "genealabs/laravel-model-caching": "0.11.*", "graham-campbell/markdown": "13.1.*", - "guzzlehttp/guzzle": "^7.0", + "guzzlehttp/guzzle": "^7.0.1", "intervention/image": "2.5.*", "intervention/imagecache": "^2.5", "kyslik/column-sortable": "^6.0", "laracasts/flash": "3.2.*", - "laravel/framework": "^8.0", - "laravel/tinker": "^2.0", + "laravel/framework": "^8.12", + "laravel/tinker": "^2.5", "laravel/ui": "^3.0", "laravelcollective/html": "6.2.*", "league/oauth2-client": "2.6.*", @@ -57,9 +57,9 @@ "require-dev": { "beyondcode/laravel-dump-server": "^1.5", "brianium/paratest": "^6.1", - "facade/ignition": "^2.3", + "facade/ignition": "^2.5", "fakerphp/faker": "^1.9.1", - "mockery/mockery": "^1.3.1", + "mockery/mockery": "^1.4.2", "nunomaduro/collision": "^5.0", "phpunit/phpunit": "^9.3", "wnx/laravel-stats": "^2.5" diff --git a/composer.lock b/composer.lock index 2bf0a68bb..7c21cba9a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "36796d7907ccd912874a2657d4162b71", + "content-hash": "79c12898250f9e11176ed2a82226d3fa", "packages": [ { "name": "akaunting/firewall", @@ -209,16 +209,16 @@ }, { "name": "akaunting/module", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/akaunting/module.git", - "reference": "34f23221f674d96192846a78ac8934f634d72cb7" + "reference": "5443dc1667f3bcabc46e06b5eb679572ae2ac462" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/akaunting/module/zipball/34f23221f674d96192846a78ac8934f634d72cb7", - "reference": "34f23221f674d96192846a78ac8934f634d72cb7", + "url": "https://api.github.com/repos/akaunting/module/zipball/5443dc1667f3bcabc46e06b5eb679572ae2ac462", + "reference": "5443dc1667f3bcabc46e06b5eb679572ae2ac462", "shasum": "" }, "require": { @@ -273,9 +273,9 @@ ], "support": { "issues": "https://github.com/akaunting/module/issues", - "source": "https://github.com/akaunting/module/tree/2.0.2" + "source": "https://github.com/akaunting/module/tree/2.0.3" }, - "time": "2020-12-25T12:49:18+00:00" + "time": "2021-02-16T19:56:17+00:00" }, { "name": "akaunting/money", @@ -471,36 +471,36 @@ }, { "name": "asm89/stack-cors", - "version": "1.3.0", + "version": "v2.0.2", "source": { "type": "git", "url": "https://github.com/asm89/stack-cors.git", - "reference": "b9c31def6a83f84b4d4a40d35996d375755f0e08" + "reference": "8d8f88b3b3830916be94292c1fbce84433efb1aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/asm89/stack-cors/zipball/b9c31def6a83f84b4d4a40d35996d375755f0e08", - "reference": "b9c31def6a83f84b4d4a40d35996d375755f0e08", + "url": "https://api.github.com/repos/asm89/stack-cors/zipball/8d8f88b3b3830916be94292c1fbce84433efb1aa", + "reference": "8d8f88b3b3830916be94292c1fbce84433efb1aa", "shasum": "" }, "require": { - "php": ">=5.5.9", + "php": "^7.0|^8.0", "symfony/http-foundation": "~2.7|~3.0|~4.0|~5.0", "symfony/http-kernel": "~2.7|~3.0|~4.0|~5.0" }, "require-dev": { - "phpunit/phpunit": "^5.0 || ^4.8.10", - "squizlabs/php_codesniffer": "^2.3" + "phpunit/phpunit": "^6|^7|^8|^9", + "squizlabs/php_codesniffer": "^3.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "2.0-dev" } }, "autoload": { "psr-4": { - "Asm89\\Stack\\": "src/Asm89/Stack/" + "Asm89\\Stack\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -521,9 +521,9 @@ ], "support": { "issues": "https://github.com/asm89/stack-cors/issues", - "source": "https://github.com/asm89/stack-cors/tree/1.3.0" + "source": "https://github.com/asm89/stack-cors/tree/v2.0.2" }, - "time": "2019-12-24T22:41:47+00:00" + "time": "2020-10-29T16:03:21+00:00" }, { "name": "balping/json-raw-encoder", @@ -2615,37 +2615,36 @@ }, { "name": "fruitcake/laravel-cors", - "version": "v1.0.6", + "version": "v2.0.3", "source": { "type": "git", "url": "https://github.com/fruitcake/laravel-cors.git", - "reference": "1d127dbec313e2e227d65e0c483765d8d7559bf6" + "reference": "01de0fe5f71c70d1930ee9a80385f9cc28e0f63a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/1d127dbec313e2e227d65e0c483765d8d7559bf6", - "reference": "1d127dbec313e2e227d65e0c483765d8d7559bf6", + "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/01de0fe5f71c70d1930ee9a80385f9cc28e0f63a", + "reference": "01de0fe5f71c70d1930ee9a80385f9cc28e0f63a", "shasum": "" }, "require": { - "asm89/stack-cors": "^1.3", - "illuminate/contracts": "^5.5|^6.0|^7.0|^8.0", - "illuminate/support": "^5.5|^6.0|^7.0|^8.0", - "php": ">=7", - "symfony/http-foundation": "^3.3|^4.0|^5.0", - "symfony/http-kernel": "^3.3|^4.0|^5.0" + "asm89/stack-cors": "^2.0.1", + "illuminate/contracts": "^6|^7|^8|^9", + "illuminate/support": "^6|^7|^8|^9", + "php": ">=7.2", + "symfony/http-foundation": "^4|^5", + "symfony/http-kernel": "^4.3.4|^5" }, "require-dev": { - "laravel/framework": "^5.5|^6.0|^7.0|^8.0", - "orchestra/testbench": "^3.5|^4.0|^5.0|^6.0", - "phpro/grumphp": "^0.16|^0.17", - "phpunit/phpunit": "^6.0|^7.0|^8.0", + "laravel/framework": "^6|^7|^8", + "orchestra/testbench-dusk": "^4|^5|^6", + "phpunit/phpunit": "^6|^7|^8", "squizlabs/php_codesniffer": "^3.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.0-dev" }, "laravel": { "providers": [ @@ -2681,7 +2680,7 @@ ], "support": { "issues": "https://github.com/fruitcake/laravel-cors/issues", - "source": "https://github.com/fruitcake/laravel-cors/tree/1.0" + "source": "https://github.com/fruitcake/laravel-cors/tree/v2.0.3" }, "funding": [ { @@ -2689,7 +2688,7 @@ "type": "github" } ], - "time": "2020-04-28T08:47:37+00:00" + "time": "2020-10-22T13:57:20+00:00" }, { "name": "genealabs/laravel-model-caching", @@ -4528,16 +4527,16 @@ }, { "name": "laravel/framework", - "version": "v8.27.0", + "version": "v8.28.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "a6680d98f9dadaa363aa7d5218517a08706cee64" + "reference": "73dd43d92fcde6c6abc00658ae33391397ca119d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/a6680d98f9dadaa363aa7d5218517a08706cee64", - "reference": "a6680d98f9dadaa363aa7d5218517a08706cee64", + "url": "https://api.github.com/repos/laravel/framework/zipball/73dd43d92fcde6c6abc00658ae33391397ca119d", + "reference": "73dd43d92fcde6c6abc00658ae33391397ca119d", "shasum": "" }, "require": { @@ -4692,7 +4691,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-02-09T15:14:54+00:00" + "time": "2021-02-16T18:07:44+00:00" }, { "name": "laravel/tinker", @@ -5341,16 +5340,16 @@ }, { "name": "livewire/livewire", - "version": "v2.3.17", + "version": "v2.3.18", "source": { "type": "git", "url": "https://github.com/livewire/livewire.git", - "reference": "1a1d43ff365301ae99ed7f0ccf02c553d4eeba03" + "reference": "c0c78f430e4151fb6902bbb88c75e782d2549e1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/1a1d43ff365301ae99ed7f0ccf02c553d4eeba03", - "reference": "1a1d43ff365301ae99ed7f0ccf02c553d4eeba03", + "url": "https://api.github.com/repos/livewire/livewire/zipball/c0c78f430e4151fb6902bbb88c75e782d2549e1a", + "reference": "c0c78f430e4151fb6902bbb88c75e782d2549e1a", "shasum": "" }, "require": { @@ -5401,7 +5400,7 @@ "description": "A front-end framework for Laravel.", "support": { "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v2.3.17" + "source": "https://github.com/livewire/livewire/tree/v2.3.18" }, "funding": [ { @@ -5409,7 +5408,7 @@ "type": "github" } ], - "time": "2021-02-09T15:15:49+00:00" + "time": "2021-02-16T20:34:52+00:00" }, { "name": "lorisleiva/laravel-search-string", @@ -6155,26 +6154,26 @@ }, { "name": "myclabs/php-enum", - "version": "1.7.7", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/myclabs/php-enum.git", - "reference": "d178027d1e679832db9f38248fcc7200647dc2b7" + "reference": "46cf3d8498b095bd33727b13fd5707263af99421" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/php-enum/zipball/d178027d1e679832db9f38248fcc7200647dc2b7", - "reference": "d178027d1e679832db9f38248fcc7200647dc2b7", + "url": "https://api.github.com/repos/myclabs/php-enum/zipball/46cf3d8498b095bd33727b13fd5707263af99421", + "reference": "46cf3d8498b095bd33727b13fd5707263af99421", "shasum": "" }, "require": { "ext-json": "*", - "php": ">=7.1" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^7", + "phpunit/phpunit": "^9.5", "squizlabs/php_codesniffer": "1.*", - "vimeo/psalm": "^3.8" + "vimeo/psalm": "^4.5.1" }, "type": "library", "autoload": { @@ -6199,7 +6198,7 @@ ], "support": { "issues": "https://github.com/myclabs/php-enum/issues", - "source": "https://github.com/myclabs/php-enum/tree/1.7.7" + "source": "https://github.com/myclabs/php-enum/tree/1.8.0" }, "funding": [ { @@ -6211,7 +6210,7 @@ "type": "tidelift" } ], - "time": "2020-11-14T18:14:52+00:00" + "time": "2021-02-15T16:11:48+00:00" }, { "name": "nesbot/carbon", @@ -9737,7 +9736,7 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -9796,7 +9795,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" }, "funding": [ { @@ -9816,16 +9815,16 @@ }, { "name": "symfony/polyfill-iconv", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6" + "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6", - "reference": "b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/06fb361659649bcfd6a208a0f1fcaf4e827ad342", + "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342", "shasum": "" }, "require": { @@ -9876,7 +9875,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.1" }, "funding": [ { @@ -9892,20 +9891,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "267a9adeb8ecb8071040a740930e077cdfb987af" + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/267a9adeb8ecb8071040a740930e077cdfb987af", - "reference": "267a9adeb8ecb8071040a740930e077cdfb987af", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170", + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170", "shasum": "" }, "require": { @@ -9957,7 +9956,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1" }, "funding": [ { @@ -9973,20 +9972,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44" + "reference": "2d63434d922daf7da8dd863e7907e67ee3031483" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44", - "reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483", + "reference": "2d63434d922daf7da8dd863e7907e67ee3031483", "shasum": "" }, "require": { @@ -10044,7 +10043,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.1" }, "funding": [ { @@ -10060,20 +10059,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "6e971c891537eb617a00bb07a43d182a6915faba" + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/6e971c891537eb617a00bb07a43d182a6915faba", - "reference": "6e971c891537eb617a00bb07a43d182a6915faba", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", "shasum": "" }, "require": { @@ -10128,7 +10127,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1" }, "funding": [ { @@ -10144,20 +10143,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T17:09:11+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13" + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", - "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", "shasum": "" }, "require": { @@ -10208,7 +10207,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" }, "funding": [ { @@ -10224,11 +10223,11 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", @@ -10284,7 +10283,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1" }, "funding": [ { @@ -10304,7 +10303,7 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -10363,7 +10362,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1" }, "funding": [ { @@ -10383,7 +10382,7 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.22.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", @@ -10446,7 +10445,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" }, "funding": [ { @@ -11515,16 +11514,16 @@ }, { "name": "facade/flare-client-php", - "version": "1.3.7", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/facade/flare-client-php.git", - "reference": "fd688d3c06658f2b3b5f7bb19f051ee4ddf02492" + "reference": "ef0f5bce23b30b32d98fd9bb49c6fa37b40eb546" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facade/flare-client-php/zipball/fd688d3c06658f2b3b5f7bb19f051ee4ddf02492", - "reference": "fd688d3c06658f2b3b5f7bb19f051ee4ddf02492", + "url": "https://api.github.com/repos/facade/flare-client-php/zipball/ef0f5bce23b30b32d98fd9bb49c6fa37b40eb546", + "reference": "ef0f5bce23b30b32d98fd9bb49c6fa37b40eb546", "shasum": "" }, "require": { @@ -11568,7 +11567,7 @@ ], "support": { "issues": "https://github.com/facade/flare-client-php/issues", - "source": "https://github.com/facade/flare-client-php/tree/1.3.7" + "source": "https://github.com/facade/flare-client-php/tree/1.4.0" }, "funding": [ { @@ -11576,20 +11575,20 @@ "type": "github" } ], - "time": "2020-10-21T16:02:39+00:00" + "time": "2021-02-16T12:42:06+00:00" }, { "name": "facade/ignition", - "version": "2.5.12", + "version": "2.5.13", "source": { "type": "git", "url": "https://github.com/facade/ignition.git", - "reference": "be73521836f978106b3c3cf57de7eaeb261af520" + "reference": "5e9ef386aaad9985cee2ac23281a27568d083b7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/be73521836f978106b3c3cf57de7eaeb261af520", - "reference": "be73521836f978106b3c3cf57de7eaeb261af520", + "url": "https://api.github.com/repos/facade/ignition/zipball/5e9ef386aaad9985cee2ac23281a27568d083b7e", + "reference": "5e9ef386aaad9985cee2ac23281a27568d083b7e", "shasum": "" }, "require": { @@ -11653,7 +11652,7 @@ "issues": "https://github.com/facade/ignition/issues", "source": "https://github.com/facade/ignition" }, - "time": "2021-02-15T07:55:43+00:00" + "time": "2021-02-16T12:46:19+00:00" }, { "name": "facade/ignition-contracts", From 94866bf68d002dade4bf681621cb01e8256b857b Mon Sep 17 00:00:00 2001 From: Pavel Mironchik Date: Wed, 17 Feb 2021 09:34:55 +0600 Subject: [PATCH 099/121] Fix a typo. --- app/Abstracts/View/Components/Document.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Abstracts/View/Components/Document.php b/app/Abstracts/View/Components/Document.php index a9942ac91..82323a590 100644 --- a/app/Abstracts/View/Components/Document.php +++ b/app/Abstracts/View/Components/Document.php @@ -11,7 +11,7 @@ abstract class Document extends Component { $translation = ''; - // if set config trasnlation config_key + // if set config translation config_key if ($translation = config('type.' . $type . '.translation.' . $config_key)) { return $translation; } From 3ae138de8934f7514cda9341e71802107fd04c4c Mon Sep 17 00:00:00 2001 From: Pavel Mironchik Date: Wed, 17 Feb 2021 09:36:52 +0600 Subject: [PATCH 100/121] Show correct text in a delete modal for modules. --- .../View/Components/DocumentIndex.php | 25 ++++++++++++++++++- .../documents/index/card-body.blade.php | 4 +-- .../documents/index/content.blade.php | 2 ++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/app/Abstracts/View/Components/DocumentIndex.php b/app/Abstracts/View/Components/DocumentIndex.php index 376606954..d22518b92 100644 --- a/app/Abstracts/View/Components/DocumentIndex.php +++ b/app/Abstracts/View/Components/DocumentIndex.php @@ -155,6 +155,12 @@ abstract class DocumentIndex extends Base /** @var string */ public $routeButtonDelete; + /** @var string */ + public $textModalDelete; + + /** @var string */ + public $valueModalDelete; + /** @var bool */ public $hideButtonShow; @@ -194,7 +200,7 @@ abstract class DocumentIndex extends Base * @return void */ public function __construct( - string $type, $documents = [], $limits = [], + string $type, $documents = [], $limits = [], string $imageEmptyPage = '', string $textEmptyPage = '', string $textPage = '', string $urlDocsPath = '', $hideEmptyPage = false, bool $checkPermissionCreate = true, string $createRoute = '', string $importRoute = '', array $importRouteParameters = [], string $exportRoute = '', bool $hideCreate = false, bool $hideImport = false, bool $hideExport = false, // Advanced @@ -204,6 +210,7 @@ abstract class DocumentIndex extends Base string $textDocumentNumber = '', string $textContactName = '', string $classAmount = '', string $textIssuedAt = '', string $textDueAt = '', string $textDocumentStatus = '', bool $checkButtonReconciled = true, bool $checkButtonCancelled = true, string $routeButtonShow = '', string $routeButtonEdit = '', string $routeButtonDuplicate = '', string $routeButtonCancelled = '', string $routeButtonDelete = '', + string $textModalDelete = '', string $valueModalDelete = 'name', bool $hideDocumentNumber = false, bool $hideContactName = false, bool $hideAmount = false, bool $hideIssuedAt = false, bool $hideDueAt = false, bool $hideStatus = false, bool $hideActions = false, bool $hideButtonShow = false, bool $hideButtonEdit = false, bool $hideButtonDuplicate = false, bool $hideButtonCancel = false, bool $hideButtonDelete = false, string $permissionCreate = '', string $permissionUpdate = '', string $permissionDelete = '' @@ -260,6 +267,9 @@ abstract class DocumentIndex extends Base $this->routeButtonCancelled = $this->getRouteButtonCancelled($type, $routeButtonCancelled); $this->routeButtonDelete = $this->getRouteButtonDelete($type, $routeButtonDelete); + $this->textModalDelete = $this->getTextModalDelete($type, $textModalDelete); + $this->valueModalDelete = $valueModalDelete; + $this->hideBulkAction = $hideBulkAction; $this->hideDocumentNumber = $hideDocumentNumber; $this->hideContactName = $hideContactName; @@ -915,6 +925,19 @@ abstract class DocumentIndex extends Base return 'invoices.destroy'; } + protected function getTextModalDelete($type, $textModalDelete) + { + if (!empty($textModalDelete)) { + return $textModalDelete; + } + + if ($alias = config('type.' . $type . '.alias')) { + return $alias . '::general.' . Str::plural(str_replace('-', '_', $type)); + } + + return ''; + } + protected function getPermissionCreate($type, $permissionCreate) { if (!empty($permissionCreate)) { diff --git a/resources/views/components/documents/index/card-body.blade.php b/resources/views/components/documents/index/card-body.blade.php index b68b322e8..e5eed5aa9 100644 --- a/resources/views/components/documents/index/card-body.blade.php +++ b/resources/views/components/documents/index/card-body.blade.php @@ -242,10 +242,10 @@ @can($permissionDelete) @if ($checkButtonReconciled) @if (!$item->reconciled) - {!! Form::deleteLink($item, $routeButtonDelete) !!} + {!! Form::deleteLink($item, $routeButtonDelete, $textModalDelete, $valueModalDelete) !!} @endif @else - {!! Form::deleteLink($item, $routeButtonDelete) !!} + {!! Form::deleteLink($item, $routeButtonDelete, $textModalDelete, $valueModalDelete) !!} @endif @endcan @endif diff --git a/resources/views/components/documents/index/content.blade.php b/resources/views/components/documents/index/content.blade.php index 03fe0a42a..5b923b298 100644 --- a/resources/views/components/documents/index/content.blade.php +++ b/resources/views/components/documents/index/content.blade.php @@ -51,6 +51,8 @@ hide-button-delete="{{ $hideButtonDelete }}" permission-delete="{{ $permissionDelete }}" route-button-delete="{{ $routeButtonDelete }}" + text-modal-delete="{{ $textModalDelete }}" + value-modal-delete="{{ $valueModalDelete }}" /> Date: Wed, 17 Feb 2021 09:41:31 +0600 Subject: [PATCH 101/121] Use the `document_number` field by default in a delete modal for documents. --- app/Abstracts/View/Components/DocumentIndex.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Abstracts/View/Components/DocumentIndex.php b/app/Abstracts/View/Components/DocumentIndex.php index d22518b92..a8449b336 100644 --- a/app/Abstracts/View/Components/DocumentIndex.php +++ b/app/Abstracts/View/Components/DocumentIndex.php @@ -210,7 +210,7 @@ abstract class DocumentIndex extends Base string $textDocumentNumber = '', string $textContactName = '', string $classAmount = '', string $textIssuedAt = '', string $textDueAt = '', string $textDocumentStatus = '', bool $checkButtonReconciled = true, bool $checkButtonCancelled = true, string $routeButtonShow = '', string $routeButtonEdit = '', string $routeButtonDuplicate = '', string $routeButtonCancelled = '', string $routeButtonDelete = '', - string $textModalDelete = '', string $valueModalDelete = 'name', + string $textModalDelete = '', string $valueModalDelete = 'document_number', bool $hideDocumentNumber = false, bool $hideContactName = false, bool $hideAmount = false, bool $hideIssuedAt = false, bool $hideDueAt = false, bool $hideStatus = false, bool $hideActions = false, bool $hideButtonShow = false, bool $hideButtonEdit = false, bool $hideButtonDuplicate = false, bool $hideButtonCancel = false, bool $hideButtonDelete = false, string $permissionCreate = '', string $permissionUpdate = '', string $permissionDelete = '' From c5af4cb2da512e81dfa01ffc3dbc67782f3f24b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Wed, 17 Feb 2021 11:17:18 +0300 Subject: [PATCH 102/121] api route name typo --- routes/api.php | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/routes/api.php b/routes/api.php index 18b567d60..db05274b1 100644 --- a/routes/api.php +++ b/routes/api.php @@ -13,34 +13,34 @@ $api = app('Dingo\Api\Routing\Router'); $api->version('v3', ['middleware' => ['api']], function($api) { $api->group(['as' => 'api', 'namespace' => 'App\Http\Controllers\Api'], function($api) { // Companies - $api->get('companies/{company}/owner', 'Common\Companies@owner')->name('companies.owner'); - $api->get('companies/{company}/enable', 'Common\Companies@enable')->name('companies.enable'); - $api->get('companies/{company}/disable', 'Common\Companies@disable')->name('companies.disable'); + $api->get('companies/{company}/owner', 'Common\Companies@owner')->name('.companies.owner'); + $api->get('companies/{company}/enable', 'Common\Companies@enable')->name('.companies.enable'); + $api->get('companies/{company}/disable', 'Common\Companies@disable')->name('.companies.disable'); $api->resource('companies', 'Common\Companies'); // Dashboards - $api->get('dashboards/{dashboard}/enable', 'Common\Dashboards@enable')->name('dashboards.enable'); - $api->get('dashboards/{dashboard}/disable', 'Common\Dashboards@disable')->name('dashboards.disable'); + $api->get('dashboards/{dashboard}/enable', 'Common\Dashboards@enable')->name('.dashboards.enable'); + $api->get('dashboards/{dashboard}/disable', 'Common\Dashboards@disable')->name('.dashboards.disable'); $api->resource('dashboards', 'Common\Dashboards'); // Items - $api->get('items/{item}/enable', 'Common\Items@enable')->name('items.enable'); - $api->get('items/{item}/disable', 'Common\Items@disable')->name('items.disable'); + $api->get('items/{item}/enable', 'Common\Items@enable')->name('.items.enable'); + $api->get('items/{item}/disable', 'Common\Items@disable')->name('.items.disable'); $api->resource('items', 'Common\Items'); // Contacts - $api->get('contacts/{contact}/enable', 'Common\Contacts@enable')->name('contacts.enable'); - $api->get('contacts/{contact}/disable', 'Common\Contacts@disable')->name('contacts.disable'); + $api->get('contacts/{contact}/enable', 'Common\Contacts@enable')->name('.contacts.enable'); + $api->get('contacts/{contact}/disable', 'Common\Contacts@disable')->name('.contacts.disable'); $api->resource('contacts', 'Common\Contacts'); // Sales $api->resource('documents', 'Document\Documents'); $api->resource('documents.transactions', 'Document\DocumentTransactions'); - $api->get('documents/{document}/received', 'Document\Documents@received')->name('documents.received'); + $api->get('documents/{document}/received', 'Document\Documents@received')->name('.documents.received'); // Banking - $api->get('accounts/{account}/enable', 'Banking\Accounts@enable')->name('accounts.enable'); - $api->get('accounts/{account}/disable', 'Banking\Accounts@disable')->name('accounts.disable'); + $api->get('accounts/{account}/enable', 'Banking\Accounts@enable')->name('.accounts.enable'); + $api->get('accounts/{account}/disable', 'Banking\Accounts@disable')->name('.accounts.disable'); $api->resource('accounts', 'Banking\Accounts'); $api->resource('reconciliations', 'Banking\Reconciliations'); $api->resource('transactions', 'Banking\Transactions'); @@ -50,15 +50,15 @@ $api->version('v3', ['middleware' => ['api']], function($api) { $api->resource('reports', 'Common\Reports'); // Settings - $api->get('categories/{category}/enable', 'Settings\Categories@enable')->name('categories.enable'); - $api->get('categories/{category}/disable', 'Settings\Categories@disable')->name('categories.disable'); + $api->get('categories/{category}/enable', 'Settings\Categories@enable')->name('.categories.enable'); + $api->get('categories/{category}/disable', 'Settings\Categories@disable')->name('.categories.disable'); $api->resource('categories', 'Settings\Categories'); - $api->get('currencies/{currency}/enable', 'Settings\Currencies@enable')->name('currencies.enable'); - $api->get('currencies/{currency}/disable', 'Settings\Currencies@disable')->name('currencies.disable'); + $api->get('currencies/{currency}/enable', 'Settings\Currencies@enable')->name('.currencies.enable'); + $api->get('currencies/{currency}/disable', 'Settings\Currencies@disable')->name('.currencies.disable'); $api->resource('currencies', 'Settings\Currencies'); $api->resource('settings', 'Settings\Settings'); - $api->get('taxes/{tax}/enable', 'Settings\Taxes@enable')->name('taxes.enable'); - $api->get('taxes/{tax}/disable', 'Settings\Taxes@disable')->name('taxes.disable'); + $api->get('taxes/{tax}/enable', 'Settings\Taxes@enable')->name('.taxes.enable'); + $api->get('taxes/{tax}/disable', 'Settings\Taxes@disable')->name('.taxes.disable'); $api->resource('taxes', 'Settings\Taxes'); // Common @@ -67,8 +67,8 @@ $api->version('v3', ['middleware' => ['api']], function($api) { // Auth $api->resource('permissions', 'Auth\Permissions'); $api->resource('roles', 'Auth\Roles'); - $api->get('users/{user}/enable', 'Auth\Users@enable')->name('users.enable'); - $api->get('users/{user}/disable', 'Auth\Users@disable')->name('users.disable'); + $api->get('users/{user}/enable', 'Auth\Users@enable')->name('.users.enable'); + $api->get('users/{user}/disable', 'Auth\Users@disable')->name('.users.disable'); $api->resource('users', 'Auth\Users'); }); }); From 043af4a60245edf602fee7f18893b339ae9e044f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Wed, 17 Feb 2021 21:01:41 +0300 Subject: [PATCH 103/121] Contact and Document update request fixed on Api --- app/Http/Requests/Common/Contact.php | 9 +++++++-- app/Http/Requests/Document/Document.php | 8 +++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/Http/Requests/Common/Contact.php b/app/Http/Requests/Common/Contact.php index b69cce146..200783ca8 100644 --- a/app/Http/Requests/Common/Contact.php +++ b/app/Http/Requests/Common/Contact.php @@ -23,7 +23,6 @@ class Contact extends FormRequest */ public function rules() { - $email = ''; $required = ''; @@ -32,7 +31,13 @@ class Contact extends FormRequest // Check if store or update if ($this->getMethod() == 'PATCH') { - $id = is_numeric($this->$type) ? $this->$type : $this->$type->getAttribute('id'); + $model = $type; + + if ($this->isApi()) { + $model = 'contact'; + } + + $id = is_numeric($this->$model) ? $this->$model : $this->$model->getAttribute('id'); } else { $id = null; } diff --git a/app/Http/Requests/Document/Document.php b/app/Http/Requests/Document/Document.php index a82fa3f00..ded651f33 100644 --- a/app/Http/Requests/Document/Document.php +++ b/app/Http/Requests/Document/Document.php @@ -32,7 +32,13 @@ class Document extends FormRequest // Check if store or update if ($this->getMethod() == 'PATCH') { - $id = is_numeric($this->$type) ? $this->$type : $this->{$type}->getAttribute('id'); + $model = $type; + + if ($this->isApi()) { + $model = 'document'; + } + + $id = is_numeric($this->$model) ? $this->$model : $this->{$model}->getAttribute('id'); } else { $id = null; } From 1a9fc8cfe132dc8dc5be39501c3d4b6b3bd0d95e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Wed, 17 Feb 2021 22:38:11 +0300 Subject: [PATCH 104/121] formatting --- app/Http/Requests/Common/Contact.php | 6 +----- app/Http/Requests/Document/Document.php | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/app/Http/Requests/Common/Contact.php b/app/Http/Requests/Common/Contact.php index 200783ca8..1c93fcb3c 100644 --- a/app/Http/Requests/Common/Contact.php +++ b/app/Http/Requests/Common/Contact.php @@ -31,11 +31,7 @@ class Contact extends FormRequest // Check if store or update if ($this->getMethod() == 'PATCH') { - $model = $type; - - if ($this->isApi()) { - $model = 'contact'; - } + $model = $this->isApi() ? 'contact' : $type; $id = is_numeric($this->$model) ? $this->$model : $this->$model->getAttribute('id'); } else { diff --git a/app/Http/Requests/Document/Document.php b/app/Http/Requests/Document/Document.php index ded651f33..e04e8706c 100644 --- a/app/Http/Requests/Document/Document.php +++ b/app/Http/Requests/Document/Document.php @@ -32,11 +32,7 @@ class Document extends FormRequest // Check if store or update if ($this->getMethod() == 'PATCH') { - $model = $type; - - if ($this->isApi()) { - $model = 'document'; - } + $model = $this->isApi() ? 'document' : $type; $id = is_numeric($this->$model) ? $this->$model : $this->{$model}->getAttribute('id'); } else { From 09dde2847f09ea8c37ff60e64fc3eb476eaf9430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Wed, 17 Feb 2021 22:40:35 +0300 Subject: [PATCH 105/121] use str lower --- app/Http/Requests/Document/Document.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Http/Requests/Document/Document.php b/app/Http/Requests/Document/Document.php index e04e8706c..d6336dc16 100644 --- a/app/Http/Requests/Document/Document.php +++ b/app/Http/Requests/Document/Document.php @@ -89,9 +89,9 @@ class Document extends FormRequest public function messages() { return [ - 'items.*.name.required' => trans('validation.required', ['attribute' => mb_strtolower(trans('general.name'))]), - 'items.*.quantity.required' => trans('validation.required', ['attribute' => mb_strtolower(trans('invoices.quantity'))]), - 'items.*.price.required' => trans('validation.required', ['attribute' => mb_strtolower(trans('invoices.price'))]), + 'items.*.name.required' => trans('validation.required', ['attribute' => Str::lower(trans('general.name'))]), + 'items.*.quantity.required' => trans('validation.required', ['attribute' => Str::lower(trans('invoices.quantity'))]), + 'items.*.price.required' => trans('validation.required', ['attribute' => Str::lower(trans('invoices.price'))]), 'items.*.currency.required' => trans('validation.custom.invalid_currency'), 'items.*.currency.string' => trans('validation.custom.invalid_currency'), ]; From c074be895ff9f15ede43bb45958dc5a2de891862 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Thu, 18 Feb 2021 11:54:01 +0300 Subject: [PATCH 106/121] make category types extendible --- app/Http/Controllers/Settings/Categories.php | 23 +--- app/Traits/Categories.php | 28 +++++ config/type.php | 119 ++++++++++++------- 3 files changed, 107 insertions(+), 63 deletions(-) create mode 100644 app/Traits/Categories.php diff --git a/app/Http/Controllers/Settings/Categories.php b/app/Http/Controllers/Settings/Categories.php index 727df6cb1..6bdc533e5 100644 --- a/app/Http/Controllers/Settings/Categories.php +++ b/app/Http/Controllers/Settings/Categories.php @@ -11,9 +11,11 @@ use App\Jobs\Setting\CreateCategory; use App\Jobs\Setting\DeleteCategory; use App\Jobs\Setting\UpdateCategory; use App\Models\Setting\Category; +use App\Traits\Categories as Helper; class Categories extends Controller { + use Helper; /** * Display a listing of the resource. @@ -26,12 +28,7 @@ class Categories extends Controller $transfer_id = Category::transfer(); - $types = collect([ - 'expense' => trans_choice('general.expenses', 1), - 'income' => trans_choice('general.incomes', 1), - 'item' => trans_choice('general.items', 1), - 'other' => trans_choice('general.others', 1), - ]); + $types = $this->getCategoryTypes(); return $this->response('settings.categories.index', compact('categories', 'types', 'transfer_id')); } @@ -53,12 +50,7 @@ class Categories extends Controller */ public function create() { - $types = [ - 'expense' => trans_choice('general.expenses', 1), - 'income' => trans_choice('general.incomes', 1), - 'item' => trans_choice('general.items', 1), - 'other' => trans_choice('general.others', 1), - ]; + $types = $this->getCategoryTypes(); return view('settings.categories.create', compact('types')); } @@ -128,12 +120,7 @@ class Categories extends Controller */ public function edit(Category $category) { - $types = [ - 'expense' => trans_choice('general.expenses', 1), - 'income' => trans_choice('general.incomes', 1), - 'item' => trans_choice('general.items', 1), - 'other' => trans_choice('general.others', 1), - ]; + $types = $this->getCategoryTypes(); $type_disabled = (Category::where('type', $category->type)->count() == 1) ?: false; diff --git a/app/Traits/Categories.php b/app/Traits/Categories.php new file mode 100644 index 000000000..1b7ba68c9 --- /dev/null +++ b/app/Traits/Categories.php @@ -0,0 +1,28 @@ + $attr) { + $plural_type = Str::plural($type); + + $name = $attr['translation']['prefix'] . '.' . $plural_type; + + if (!empty($attr['alias'])) { + $name = $attr['alias'] . '::' . $name; + } + + $types[$type] = trans_choice($name, 1); + } + + return $types; + } +} diff --git a/config/type.php b/config/type.php index 920ce1c4a..b24e0e361 100644 --- a/config/type.php +++ b/config/type.php @@ -6,86 +6,115 @@ return [ // Documents Document::INVOICE_TYPE => [ - 'alias' => '', // core empty but module write own alias - 'group' => 'sales', // controller folder name for permission and route + 'alias' => '', // core empty but module write own alias + 'group' => 'sales', // controller folder name for permission and route 'route' => [ - 'prefix' => 'invoices', // core use with group + prefix, module ex. estimates - 'parameter' => 'invoice', // sales/invoices/{parameter}/edit - //'create' => 'invoices.create', // if you change route, you can write full path + 'prefix' => 'invoices', // core use with group + prefix, module ex. estimates + 'parameter' => 'invoice', // sales/invoices/{parameter}/edit + //'create' => 'invoices.create', // if you change route, you can write full path ], 'permission' => [ - 'prefix' => 'invoices', // this controller file name. - //'create' => 'create-sales-invoices', // if you change action permission key, you can write full permission + 'prefix' => 'invoices', // this controller file name. + //'create' => 'create-sales-invoices', // if you change action permission key, you can write full permission ], 'translation' => [ - 'prefix' => 'invoices', // this translation file name. - 'add_contact' => 'general.customers', // - 'issued_at' => 'invoices.invoice_date', - 'due_at' => 'invoices.due_date', + 'prefix' => 'invoices', // this translation file name. + 'add_contact' => 'general.customers', // + 'issued_at' => 'invoices.invoice_date', + 'due_at' => 'invoices.due_date', ], - 'category_type' => 'income', - 'transaction_type' => 'income', - 'contact_type' => 'customer', // use contact type - 'hide' => [], // for document items - 'class' => [], + 'category_type' => 'income', + 'transaction_type' => 'income', + 'contact_type' => 'customer', // use contact type + 'hide' => [], // for document items + 'class' => [], ], Document::BILL_TYPE => [ - 'alias' => '', - 'group' => 'purchases', + 'alias' => '', + 'group' => 'purchases', 'route' => [ - 'prefix' => 'bills', - 'parameter' => 'bill', - //'create' => 'bilss.create', + 'prefix' => 'bills', + 'parameter' => 'bill', + //'create' => 'bilss.create', ], 'permission' => [ - 'prefix' => 'bills', - //'create' => 'create-purchases-bills', + 'prefix' => 'bills', + //'create' => 'create-purchases-bills', ], - 'translation' => [ - 'prefix' => 'bills', - 'issued_at' => 'bills.bill_date', - 'due_at' => 'bills.due_date', + 'translation' => [ + 'prefix' => 'bills', + 'issued_at' => 'bills.bill_date', + 'due_at' => 'bills.due_date', ], - 'category_type' => 'expense', - 'transaction_type' => 'expense', - 'contact_type' => 'vendor', - 'hide' => [], + 'category_type' => 'expense', + 'transaction_type' => 'expense', + 'contact_type' => 'vendor', + 'hide' => [], ], // Contacts 'customer' => [ - 'group' => 'sales', + 'group' => 'sales', 'permission' => [ - 'prefix' => 'customers', - //'create' => 'create-sales-customers', + 'prefix' => 'customers', + //'create' => 'create-sales-customers', ], ], 'vendor' => [ - 'group' => 'purchases', + 'group' => 'purchases', 'permission' => [ - 'prefix' => 'vendors', - //'create' => 'create-purchases-vendors', + 'prefix' => 'vendors', + //'create' => 'create-purchases-vendors', ], ], // Transactions 'income' => [ - 'group' => 'sales', + 'group' => 'sales', 'permission' => [ - 'prefix' => 'revenues', - //'create' => 'create-sales-revenues', + 'prefix' => 'revenues', + //'create' => 'create-sales-revenues', ], - 'contact_type' => 'customer', + 'contact_type' => 'customer', ], 'expense' => [ - 'group' => 'purchases', + 'group' => 'purchases', 'permission' => [ - 'prefix' => 'payments', - //'create' => 'create-purchases-payments', + 'prefix' => 'payments', + //'create' => 'create-purchases-payments', ], - 'contact_type' => 'vendor', + 'contact_type' => 'vendor', ], + + // Categories + 'category' => [ + 'income' => [ + 'alias' => '', + 'translation' => [ + 'prefix' => 'general', + ], + ], + 'expense' => [ + 'alias' => '', + 'translation' => [ + 'prefix' => 'general', + ], + ], + 'item' => [ + 'alias' => '', + 'translation' => [ + 'prefix' => 'general', + ], + ], + 'other' => [ + 'alias' => '', + 'translation' => [ + 'prefix' => 'general', + ], + ], + ], + ]; From 3dc29ce5c4a91f3d1a38bee4b9e321016bcdd70c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihan=20=C5=9Eent=C3=BCrk?= Date: Thu, 18 Feb 2021 15:05:38 +0300 Subject: [PATCH 107/121] akaunting select dynamicOptions update --- .../assets/js/components/AkauntingSelect.vue | 16 +++++++++------- .../js/components/AkauntingSelectRemote.vue | 17 ++++++++++------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/resources/assets/js/components/AkauntingSelect.vue b/resources/assets/js/components/AkauntingSelect.vue index c93713543..e7dfc1dcc 100644 --- a/resources/assets/js/components/AkauntingSelect.vue +++ b/resources/assets/js/components/AkauntingSelect.vue @@ -294,10 +294,12 @@ export default { }, created() { + let created_option = (this.dynamicOptions) ? this.dynamicOptions : this.options; + if (this.group) { // Option set sort_option data - if (!Array.isArray(this.options)) { - for (const [index, options] of Object.entries(this.options)) { + if (!Array.isArray(created_options)) { + for (const [index, options] of Object.entries(created_option)) { let values = []; for (const [key, value] of Object.entries(options)) { @@ -313,7 +315,7 @@ export default { }); } } else { - this.options.forEach(function (option, index) { + created_option.forEach(function (option, index) { if (typeof(option) == 'string') { this.sort_options.push({ index: index, @@ -331,15 +333,15 @@ export default { } } else { // Option set sort_option data - if (!Array.isArray(this.options)) { - for (const [key, value] of Object.entries(this.options)) { + if (!Array.isArray(created_option)) { + for (const [key, value] of Object.entries(created_option)) { this.sort_options.push({ key: key, value: value }); } } else { - this.options.forEach(function (option, index) { + created_option.forEach(function (option, index) { if (typeof(option) == 'string') { this.sort_options.push({ index: index, @@ -765,7 +767,7 @@ export default { dynamicOptions: function(options) { this.sort_options = []; this.selected = ''; - + if (this.group) { // Option set sort_option data if (!Array.isArray(options)) { diff --git a/resources/assets/js/components/AkauntingSelectRemote.vue b/resources/assets/js/components/AkauntingSelectRemote.vue index 79cb696a7..0ca43d8d8 100644 --- a/resources/assets/js/components/AkauntingSelectRemote.vue +++ b/resources/assets/js/components/AkauntingSelectRemote.vue @@ -466,11 +466,14 @@ export default { return 0; } }, + setSortOptions() { + let created_option = (this.dynamicOptions) ? this.dynamicOptions : this.options; + if (this.group) { // Option set sort_option data - if (!Array.isArray(this.options)) { - for (const [index, options] of Object.entries(this.options)) { + if (!Array.isArray(created_options)) { + for (const [index, options] of Object.entries(created_option)) { let values = []; for (const [key, value] of Object.entries(options)) { @@ -486,7 +489,7 @@ export default { }); } } else { - this.options.forEach(function (option, index) { + created_option.forEach(function (option, index) { this.sort_options.push({ index: index, key: option.id, @@ -496,15 +499,15 @@ export default { } } else { // Option set sort_option data - if (!Array.isArray(this.options)) { - for (const [key, value] of Object.entries(this.options)) { + if (!Array.isArray(created_option)) { + for (const [key, value] of Object.entries(created_option)) { this.sort_options.push({ key: key, value: value }); } } else { - this.options.forEach(function (option, index) { + created_option.forEach(function (option, index) { this.sort_options.push({ index: index, key: option.id, @@ -956,7 +959,7 @@ export default { dynamicOptions: function(options) { this.sort_options = []; this.selected = ''; - + if (this.group) { // Option set sort_option data if (!Array.isArray(options)) { From 5dc20083cd4550ff761f7cf2801ccbb5da7b37d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20=C3=87ak=C4=B1rel?= Date: Thu, 18 Feb 2021 17:59:44 +0300 Subject: [PATCH 108/121] Fix tooltip issue for "Send Email" button --- resources/views/components/documents/show/timeline.blade.php | 4 ++-- .../views/components/documents/show/top-buttons.blade.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/views/components/documents/show/timeline.blade.php b/resources/views/components/documents/show/timeline.blade.php index 2107dee43..4a38eaf99 100644 --- a/resources/views/components/documents/show/timeline.blade.php +++ b/resources/views/components/documents/show/timeline.blade.php @@ -118,8 +118,8 @@ {{ trans($textTimelineSendStatusMail) }} @else - - diff --git a/resources/views/components/documents/show/top-buttons.blade.php b/resources/views/components/documents/show/top-buttons.blade.php index d83435744..bc44b38ce 100644 --- a/resources/views/components/documents/show/top-buttons.blade.php +++ b/resources/views/components/documents/show/top-buttons.blade.php @@ -71,8 +71,8 @@ {{ trans($textTimelineSendStatusMail) }} @else - - From eb2407c6935182fd20af02cccedc43ee8b08e29b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Thu, 18 Feb 2021 18:22:57 +0300 Subject: [PATCH 109/121] fixed #1868 --- config/search-string.php | 61 ++++++++++++++----- .../views/purchases/payments/index.blade.php | 2 +- .../views/purchases/vendors/index.blade.php | 2 +- .../views/sales/revenues/index.blade.php | 2 +- 4 files changed, 48 insertions(+), 19 deletions(-) diff --git a/config/search-string.php b/config/search-string.php index 00ff96ba3..1ccc3390a 100644 --- a/config/search-string.php +++ b/config/search-string.php @@ -98,9 +98,7 @@ return [ 'route' => 'currencies.index' ], 'document_id', - 'contact_id' => [ - 'route' => 'customers.index' - ], + 'contact_id', 'description' => ['searchable' => true], 'payment_method', 'reference', @@ -182,9 +180,7 @@ return [ 'currency_code' => [ 'route' => 'currencies.index' ], - 'contact_id' => [ - 'route' => 'vendors.index' - ], + 'contact_id', 'contact_name' => ['searchable' => true], 'contact_email' => ['searchable' => true], 'contact_tax_number', @@ -197,7 +193,7 @@ return [ ], ], - App\Models\Purchase\Bill::class => [ + 'App\Models\Purchase\Bill' => [ 'columns' => [ 'document_number' => ['searchable' => true], 'order_number' => ['searchable' => true], @@ -226,24 +222,32 @@ return [ ], ], - App\Models\Purchase\Vendor::class => [ + 'App\Models\Purchase\Payment' => [ 'columns' => [ 'type', - 'name' => ['searchable' => true], - 'email' => ['searchable' => true], - 'tax_number' => ['searchable' => true], - 'phone' => ['searchable' => true], - 'address' => ['searchable' => true], - 'website' => ['searchable' => true], + 'account_id' => [ + 'route' => 'accounts.index' + ], + 'paid_at' => ['date' => true], + 'amount', 'currency_code' => [ 'route' => 'currencies.index' ], + 'document_id', + 'contact_id' => [ + 'route' => 'vendors.index' + ], + 'description' => ['searchable' => true], + 'payment_method', 'reference', - 'enabled' => ['boolean' => true], + 'category_id' => [ + 'route' => ['categories.index', 'search=type:expense'] + ], + 'parent_id', ], ], - App\Models\Sale\Invoice::class => [ + 'App\Models\Sale\Invoice' => [ 'columns' => [ 'document_number' => ['searchable' => true], 'order_number' => ['searchable' => true], @@ -272,6 +276,31 @@ return [ ], ], + 'App\Models\Sale\Revenue' => [ + 'columns' => [ + 'type', + 'account_id' => [ + 'route' => 'accounts.index' + ], + 'paid_at' => ['date' => true], + 'amount', + 'currency_code' => [ + 'route' => 'currencies.index' + ], + 'document_id', + 'contact_id' => [ + 'route' => 'customers.index' + ], + 'description' => ['searchable' => true], + 'payment_method', + 'reference', + 'category_id' => [ + 'route' => ['categories.index', 'search=type:income'] + ], + 'parent_id', + ], + ], + App\Models\Setting\Category::class => [ 'columns' => [ 'name' => ['searchable' => true], diff --git a/resources/views/purchases/payments/index.blade.php b/resources/views/purchases/payments/index.blade.php index 7d0b2556d..cd374692f 100644 --- a/resources/views/purchases/payments/index.blade.php +++ b/resources/views/purchases/payments/index.blade.php @@ -21,7 +21,7 @@ 'class' => 'mb-0' ]) !!}
- +
{{ Form::bulkActionRowGroup('general.payments', $bulk_actions, ['group' => 'purchases', 'type' => 'payments']) }} diff --git a/resources/views/purchases/vendors/index.blade.php b/resources/views/purchases/vendors/index.blade.php index 8eb8cdb15..9b097506a 100644 --- a/resources/views/purchases/vendors/index.blade.php +++ b/resources/views/purchases/vendors/index.blade.php @@ -21,7 +21,7 @@ 'class' => 'mb-0' ]) !!}
- +
{{ Form::bulkActionRowGroup('general.vendors', $bulk_actions, ['group' => 'purchases', 'type' => 'vendors']) }} diff --git a/resources/views/sales/revenues/index.blade.php b/resources/views/sales/revenues/index.blade.php index 428b99b60..377a14164 100644 --- a/resources/views/sales/revenues/index.blade.php +++ b/resources/views/sales/revenues/index.blade.php @@ -21,7 +21,7 @@ 'class' => 'mb-0' ]) !!}
- +
{{ Form::bulkActionRowGroup('general.revenues', $bulk_actions, ['group' => 'sales', 'type' => 'revenues']) }} From 13262b8fae811a0467f1d7fe178e452ba1784859 Mon Sep 17 00:00:00 2001 From: Sevan Nerse Date: Thu, 18 Feb 2021 23:28:22 +0300 Subject: [PATCH 110/121] invoiced or bill date filter is fixed --- config/search-string.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/config/search-string.php b/config/search-string.php index 1ccc3390a..4d4f4f1be 100644 --- a/config/search-string.php +++ b/config/search-string.php @@ -174,7 +174,10 @@ return [ 'document_number' => ['searchable' => true], 'order_number' => ['searchable' => true], 'status', - 'issued_at' => ['date' => true], + 'issued_at' => [ + 'key' => '/^(invoiced_at|billed_at)$/', + 'date' => true, + ], 'due_at' => ['date' => true], 'amount', 'currency_code' => [ From f4c781786276747808353919d024ae864256e6fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Sat, 20 Feb 2021 20:31:18 +0300 Subject: [PATCH 111/121] removed batch inserts to use eloquent --- app/Abstracts/Import.php | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/app/Abstracts/Import.php b/app/Abstracts/Import.php index 7cd59dbe8..3cdd14e97 100644 --- a/app/Abstracts/Import.php +++ b/app/Abstracts/Import.php @@ -13,7 +13,6 @@ use Maatwebsite\Excel\Concerns\Importable; use Maatwebsite\Excel\Concerns\SkipsOnError; use Maatwebsite\Excel\Concerns\SkipsOnFailure; use Maatwebsite\Excel\Concerns\ToModel; -use Maatwebsite\Excel\Concerns\WithBatchInserts; use Maatwebsite\Excel\Concerns\WithChunkReading; use Maatwebsite\Excel\Concerns\WithHeadingRow; use Maatwebsite\Excel\Concerns\WithMapping; @@ -21,7 +20,7 @@ use Maatwebsite\Excel\Concerns\WithValidation; use Maatwebsite\Excel\Validators\Failure; use PhpOffice\PhpSpreadsheet\Shared\Date as ExcelDate; -abstract class Import implements ToModel, SkipsOnError, SkipsOnFailure, WithBatchInserts, WithChunkReading, WithHeadingRow, WithMapping, WithValidation +abstract class Import implements ToModel, SkipsOnError, SkipsOnFailure, WithChunkReading, WithHeadingRow, WithMapping, WithValidation { use Importable, ImportHelper; @@ -63,11 +62,6 @@ abstract class Import implements ToModel, SkipsOnError, SkipsOnFailure, WithBatc return []; } - public function batchSize(): int - { - return 100; - } - public function chunkSize(): int { return 100; From bf32f0d913bf684e0a1830328979f54ac7228639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Mon, 22 Feb 2021 00:33:29 +0300 Subject: [PATCH 112/121] sync translation of core modules --- .github/workflows/translation_modules.yml | 37 +++++++++++++++++++++++ crowdin_modules.yml | 22 ++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 .github/workflows/translation_modules.yml create mode 100644 crowdin_modules.yml diff --git a/.github/workflows/translation_modules.yml b/.github/workflows/translation_modules.yml new file mode 100644 index 000000000..013d58042 --- /dev/null +++ b/.github/workflows/translation_modules.yml @@ -0,0 +1,37 @@ +name: Translation of Modules + +on: + schedule: + - cron: '0 0 * * *' + workflow_dispatch: + +jobs: + sync: + name: Sync + + runs-on: ubuntu-latest + + steps: + + - name: Checkout + uses: actions/checkout@v2 + + - name: Sync with Crowdin + uses: crowdin/github-action@master + with: + upload_sources: true + upload_translations: true + download_translations: true + skip_untranslated_files: true + + localization_branch_name: 'translations' + commit_message: 'new crowdin translations' + pull_request_title: 'New Crowdin translations' + pull_request_body: 'https://crowdin.com/project/akaunting-apps' + pull_request_labels: 'Translation' + + config: 'crowdin_modules.yml' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_APPS_ID }} + CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} diff --git a/crowdin_modules.yml b/crowdin_modules.yml new file mode 100644 index 000000000..6fee73225 --- /dev/null +++ b/crowdin_modules.yml @@ -0,0 +1,22 @@ +"project_id_env": CROWDIN_PROJECT_ID +"api_token_env": CROWDIN_PERSONAL_TOKEN +"preserve_hierarchy": true + +"files": [ + { + "source": "modules/OfflinePayments/Resources/lang/en-GB/general.php", + "dest": "offline-payments/general.php", + "translation": "modules/OfflinePayments/Resources/lang/%locale%/offline-payments/general.php", + "translation_replace": { + "offline-payments/": "" + } + }, + { + "source": "modules/PaypalStandard/Resources/lang/en-GB/general.php", + "dest": "paypal-standard/general.php", + "translation": "modules/PaypalStandard/Resources/lang/%locale%/paypal-standard/general.php", + "translation_replace": { + "paypal-standard/": "" + } + } +] From 35fa63bf4288a44e80e4940a172e93dce4d8fc32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Mon, 22 Feb 2021 00:59:08 +0300 Subject: [PATCH 113/121] changed branch --- .../{translation_modules.yml => translations_modules.yml} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename .github/workflows/{translation_modules.yml => translations_modules.yml} (77%) diff --git a/.github/workflows/translation_modules.yml b/.github/workflows/translations_modules.yml similarity index 77% rename from .github/workflows/translation_modules.yml rename to .github/workflows/translations_modules.yml index 013d58042..2ba86308c 100644 --- a/.github/workflows/translation_modules.yml +++ b/.github/workflows/translations_modules.yml @@ -1,4 +1,4 @@ -name: Translation of Modules +name: Translations of Modules on: schedule: @@ -24,9 +24,9 @@ jobs: download_translations: true skip_untranslated_files: true - localization_branch_name: 'translations' - commit_message: 'new crowdin translations' - pull_request_title: 'New Crowdin translations' + localization_branch_name: 'translations-modules' + commit_message: 'new crowdin translations of modules' + pull_request_title: 'New Crowdin translations of modules' pull_request_body: 'https://crowdin.com/project/akaunting-apps' pull_request_labels: 'Translation' From 1e4a633558db690e1b88ddb156197c6c7ff8db87 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Mon, 22 Feb 2021 00:53:06 +0000 Subject: [PATCH 114/121] new crowdin translations of modules --- .../Resources/lang/ar-SA/general.php | 21 +++++++++++++++++++ .../Resources/lang/da-DK/general.php | 21 +++++++++++++++++++ .../Resources/lang/de-DE/general.php | 21 +++++++++++++++++++ .../Resources/lang/fa-IR/general.php | 21 +++++++++++++++++++ .../Resources/lang/fr-FR/general.php | 21 +++++++++++++++++++ .../Resources/lang/id-ID/general.php | 21 +++++++++++++++++++ .../Resources/lang/it-IT/general.php | 21 +++++++++++++++++++ .../Resources/lang/ja-JP/general.php | 2 +- .../Resources/lang/nb-NO/general.php | 21 +++++++++++++++++++ .../Resources/lang/sq-AL/general.php | 21 +++++++++++++++++++ .../Resources/lang/uk-UA/general.php | 21 +++++++++++++++++++ .../Resources/lang/ar-SA/general.php | 20 ++++++++++++++++++ .../Resources/lang/ca-ES/general.php | 20 ++++++++++++++++++ .../Resources/lang/da-DK/general.php | 20 ++++++++++++++++++ .../Resources/lang/de-DE/general.php | 20 ++++++++++++++++++ .../Resources/lang/fa-IR/general.php | 20 ++++++++++++++++++ .../Resources/lang/fr-FR/general.php | 20 ++++++++++++++++++ .../Resources/lang/id-ID/general.php | 20 ++++++++++++++++++ .../Resources/lang/it-IT/general.php | 20 ++++++++++++++++++ .../Resources/lang/ja-JP/general.php | 4 ++-- .../Resources/lang/nb-NO/general.php | 20 ++++++++++++++++++ .../Resources/lang/pt-BR/general.php | 20 ++++++++++++++++++ .../Resources/lang/sq-AL/general.php | 20 ++++++++++++++++++ .../Resources/lang/uk-UA/general.php | 20 ++++++++++++++++++ 24 files changed, 453 insertions(+), 3 deletions(-) create mode 100644 modules/OfflinePayments/Resources/lang/ar-SA/general.php create mode 100644 modules/OfflinePayments/Resources/lang/da-DK/general.php create mode 100644 modules/OfflinePayments/Resources/lang/de-DE/general.php create mode 100644 modules/OfflinePayments/Resources/lang/fa-IR/general.php create mode 100644 modules/OfflinePayments/Resources/lang/fr-FR/general.php create mode 100644 modules/OfflinePayments/Resources/lang/id-ID/general.php create mode 100644 modules/OfflinePayments/Resources/lang/it-IT/general.php create mode 100644 modules/OfflinePayments/Resources/lang/nb-NO/general.php create mode 100644 modules/OfflinePayments/Resources/lang/sq-AL/general.php create mode 100644 modules/OfflinePayments/Resources/lang/uk-UA/general.php create mode 100644 modules/PaypalStandard/Resources/lang/ar-SA/general.php create mode 100644 modules/PaypalStandard/Resources/lang/ca-ES/general.php create mode 100644 modules/PaypalStandard/Resources/lang/da-DK/general.php create mode 100644 modules/PaypalStandard/Resources/lang/de-DE/general.php create mode 100644 modules/PaypalStandard/Resources/lang/fa-IR/general.php create mode 100644 modules/PaypalStandard/Resources/lang/fr-FR/general.php create mode 100644 modules/PaypalStandard/Resources/lang/id-ID/general.php create mode 100644 modules/PaypalStandard/Resources/lang/it-IT/general.php create mode 100644 modules/PaypalStandard/Resources/lang/nb-NO/general.php create mode 100644 modules/PaypalStandard/Resources/lang/pt-BR/general.php create mode 100644 modules/PaypalStandard/Resources/lang/sq-AL/general.php create mode 100644 modules/PaypalStandard/Resources/lang/uk-UA/general.php diff --git a/modules/OfflinePayments/Resources/lang/ar-SA/general.php b/modules/OfflinePayments/Resources/lang/ar-SA/general.php new file mode 100644 index 000000000..65124cba3 --- /dev/null +++ b/modules/OfflinePayments/Resources/lang/ar-SA/general.php @@ -0,0 +1,21 @@ + 'المدفوعات بدون الإتصال بالأنترنت', + 'description' => 'إنشاء خيارات دفع غير محدودة لاستخدام المسؤول', + + 'add_new' => 'إضافة جديد', + 'edit' => 'تعديل: :method', + + 'form' => [ + 'code' => 'الكود', + 'customer' => 'إظهار للعميل', + 'order' => 'طلب' + ], + + 'methods' => 'طريقة | طرق', + + 'payment_gateways' => 'طرق الدفع بدون أنترنت', + +]; diff --git a/modules/OfflinePayments/Resources/lang/da-DK/general.php b/modules/OfflinePayments/Resources/lang/da-DK/general.php new file mode 100644 index 000000000..46a033490 --- /dev/null +++ b/modules/OfflinePayments/Resources/lang/da-DK/general.php @@ -0,0 +1,21 @@ + 'Offline betalinger', + 'description' => 'Opret ubegrænsede betalingsmuligheder til admin-brug', + + 'add_new' => 'Tilføj ny', + 'edit' => 'Rediger: :method', + + 'form' => [ + 'code' => 'Kode', + 'customer' => 'Vis til kunde', + 'order' => 'Bestille' + ], + + 'methods' => 'Metode|Metoder', + + 'payment_gateways' => 'Offline betalingsmetoder', + +]; diff --git a/modules/OfflinePayments/Resources/lang/de-DE/general.php b/modules/OfflinePayments/Resources/lang/de-DE/general.php new file mode 100644 index 000000000..d91be4055 --- /dev/null +++ b/modules/OfflinePayments/Resources/lang/de-DE/general.php @@ -0,0 +1,21 @@ + 'Offline-Zahlungen', + 'description' => 'Erstelle unbegrenzte Zahlungsoptionen für Adminnutzung', + + 'add_new' => 'Neu hinzufügen', + 'edit' => 'Bearbeiten: :method', + + 'form' => [ + 'code' => 'Code', + 'customer' => 'Dem Kunden zeigen', + 'order' => 'Bestellung' + ], + + 'methods' => 'Methode|Methoden', + + 'payment_gateways' => 'Offline-Zahlungen-Methoden', + +]; diff --git a/modules/OfflinePayments/Resources/lang/fa-IR/general.php b/modules/OfflinePayments/Resources/lang/fa-IR/general.php new file mode 100644 index 000000000..87e80dde4 --- /dev/null +++ b/modules/OfflinePayments/Resources/lang/fa-IR/general.php @@ -0,0 +1,21 @@ + 'پرداخت های آفلاین', + 'description' => 'ساخت گزینه پرداخت نامحدود برای استفاده مدیر', + + 'add_new' => 'افزودن جدید', + 'edit' => 'ویرایش: :method', + + 'form' => [ + 'code' => 'کد', + 'customer' => 'نمایش به مشتری', + 'order' => 'سفارش' + ], + + 'methods' => 'روش|روش ها', + + 'payment_gateways' => 'روش های پرداخت آفلاین', + +]; diff --git a/modules/OfflinePayments/Resources/lang/fr-FR/general.php b/modules/OfflinePayments/Resources/lang/fr-FR/general.php new file mode 100644 index 000000000..9a9302c52 --- /dev/null +++ b/modules/OfflinePayments/Resources/lang/fr-FR/general.php @@ -0,0 +1,21 @@ + 'Paiements hors-ligne', + 'description' => 'Créez un nombre illimité d\'options de paiement à usage administratif', + + 'add_new' => 'Ajouter un nouveau', + 'edit' => 'Modifier : :method', + + 'form' => [ + 'code' => 'Code', + 'customer' => 'Montrer au client', + 'order' => 'Ordre' + ], + + 'methods' => 'Méthode|Méthodes', + + 'payment_gateways' => 'Méthodes de paiement hors ligne', + +]; diff --git a/modules/OfflinePayments/Resources/lang/id-ID/general.php b/modules/OfflinePayments/Resources/lang/id-ID/general.php new file mode 100644 index 000000000..c1be0aea8 --- /dev/null +++ b/modules/OfflinePayments/Resources/lang/id-ID/general.php @@ -0,0 +1,21 @@ + 'Pembayaran Offline', + 'description' => 'Buat opsi pembayaran tak terbatas untuk admin gunakan', + + 'add_new' => 'Tambah Baru', + 'edit' => 'Edit:: metode', + + 'form' => [ + 'code' => 'Kode', + 'customer' => 'Tunjukkan kepada Pelanggan', + 'order' => 'Pesanan' + ], + + 'methods' => 'Metode|Metode', + + 'payment_gateways' => 'Metode Pembayaran Offline', + +]; diff --git a/modules/OfflinePayments/Resources/lang/it-IT/general.php b/modules/OfflinePayments/Resources/lang/it-IT/general.php new file mode 100644 index 000000000..042654e00 --- /dev/null +++ b/modules/OfflinePayments/Resources/lang/it-IT/general.php @@ -0,0 +1,21 @@ + 'Pagamenti offline', + 'description' => 'Crea opzioni di pagamento illimitate per l\'utilizzo dell\'amministratore', + + 'add_new' => 'Aggiungi nuovo', + 'edit' => 'Modifica: :method', + + 'form' => [ + 'code' => 'Codice', + 'customer' => 'Mostra al Cliente', + 'order' => 'Ordine' + ], + + 'methods' => 'Metodi', + + 'payment_gateways' => 'Metodi di pagamento offline', + +]; diff --git a/modules/OfflinePayments/Resources/lang/ja-JP/general.php b/modules/OfflinePayments/Resources/lang/ja-JP/general.php index e286a1c52..df49809b3 100644 --- a/modules/OfflinePayments/Resources/lang/ja-JP/general.php +++ b/modules/OfflinePayments/Resources/lang/ja-JP/general.php @@ -18,4 +18,4 @@ return [ 'payment_gateways' => 'オフライン支払い方法', -]; \ No newline at end of file +]; diff --git a/modules/OfflinePayments/Resources/lang/nb-NO/general.php b/modules/OfflinePayments/Resources/lang/nb-NO/general.php new file mode 100644 index 000000000..a25aa5779 --- /dev/null +++ b/modules/OfflinePayments/Resources/lang/nb-NO/general.php @@ -0,0 +1,21 @@ + 'Offline betalinger', + 'description' => 'Lag ubegrensede betalingsalternativer for administrasjonsbruk', + + 'add_new' => 'Legg til ny', + 'edit' => 'Rediger:: method', + + 'form' => [ + 'code' => 'Kode', + 'customer' => 'Vis til kunde', + 'order' => 'Rekkefølge' + ], + + 'methods' => 'Metode|Metoder', + + 'payment_gateways' => 'Offline betalingsmetoder', + +]; diff --git a/modules/OfflinePayments/Resources/lang/sq-AL/general.php b/modules/OfflinePayments/Resources/lang/sq-AL/general.php new file mode 100644 index 000000000..ac8e9c1af --- /dev/null +++ b/modules/OfflinePayments/Resources/lang/sq-AL/general.php @@ -0,0 +1,21 @@ + 'Offline Payments', + 'description' => 'Krijoni mundësi të pakufizuara pagese për përdorim të administratorit', + + 'add_new' => 'Shto të Re', + 'edit' => 'Redaktoni: :method', + + 'form' => [ + 'code' => 'Kodi', + 'customer' => 'Trego tek Klienti', + 'order' => 'Porosi' + ], + + 'methods' => 'Metodë|Metodat', + + 'payment_gateways' => 'Metodat e Pagesës Offline', + +]; diff --git a/modules/OfflinePayments/Resources/lang/uk-UA/general.php b/modules/OfflinePayments/Resources/lang/uk-UA/general.php new file mode 100644 index 000000000..0b33d286c --- /dev/null +++ b/modules/OfflinePayments/Resources/lang/uk-UA/general.php @@ -0,0 +1,21 @@ + 'Оффлайн платежі', + 'description' => 'Створити необмежену кількість варіантів платежів для використання адміна', + + 'add_new' => 'Добавити нове', + 'edit' => 'Редагувати: :method', + + 'form' => [ + 'code' => 'Код', + 'customer' => 'Показати Клієнту', + 'order' => 'Замовлення' + ], + + 'methods' => 'Метод|Методи', + + 'payment_gateways' => 'Способи Оффлайн Платежів', + +]; diff --git a/modules/PaypalStandard/Resources/lang/ar-SA/general.php b/modules/PaypalStandard/Resources/lang/ar-SA/general.php new file mode 100644 index 000000000..c851ec43e --- /dev/null +++ b/modules/PaypalStandard/Resources/lang/ar-SA/general.php @@ -0,0 +1,20 @@ + 'معيار الباي بال', + 'description' => 'تمكين خيار الدفع القياسي لـ باي بال', + + 'form' => [ + 'email' => 'البريد الإلكتروني', + 'mode' => 'نمط', + 'debug' => 'تصحيح الأخطاء', + 'transaction' => 'المعاملات', + 'customer' => 'إظهار للعميل', + 'order' => 'طلب', + ], + + 'test_mode' => 'تحذير: بوابة الدفع في وضع "Sandbox". لن يتم احتساب مبالغ على حسابك.', + //'description' => 'Pay with PAYPAL', + +]; diff --git a/modules/PaypalStandard/Resources/lang/ca-ES/general.php b/modules/PaypalStandard/Resources/lang/ca-ES/general.php new file mode 100644 index 000000000..962c69986 --- /dev/null +++ b/modules/PaypalStandard/Resources/lang/ca-ES/general.php @@ -0,0 +1,20 @@ + 'PayPal estàndard', + 'description' => 'Activa el pagament estàndard amb PayPal', + + 'form' => [ + 'email' => 'Correu electrònic', + 'mode' => 'Mode', + 'debug' => 'Depura', + 'transaction' => 'Transacció', + 'customer' => 'Mostra al client', + 'order' => 'Comanda', + ], + + 'test_mode' => 'Avís: La passarel·la de pagament està en \'mode de proves\'. El teu compte no es veurà afectat per l\'acció.', + //'description' => 'Pay with PAYPAL', + +]; diff --git a/modules/PaypalStandard/Resources/lang/da-DK/general.php b/modules/PaypalStandard/Resources/lang/da-DK/general.php new file mode 100644 index 000000000..a85ad277e --- /dev/null +++ b/modules/PaypalStandard/Resources/lang/da-DK/general.php @@ -0,0 +1,20 @@ + 'PayPal Standard', + 'description' => 'Aktivér standard betalingsmulighed for PayPal', + + 'form' => [ + 'email' => 'E-mail', + 'mode' => 'Mode', + 'debug' => 'Fejlfinde', + 'transaction' => 'Transaktion', + 'customer' => 'Vis til kunde', + 'order' => 'Bestille', + ], + + 'test_mode' => 'Advarsel: Betalingsgatewayen er i \'Sandbox Mode\'. Din konto bliver ikke debiteret.', + //'description' => 'Pay with PAYPAL', + +]; diff --git a/modules/PaypalStandard/Resources/lang/de-DE/general.php b/modules/PaypalStandard/Resources/lang/de-DE/general.php new file mode 100644 index 000000000..f43db128a --- /dev/null +++ b/modules/PaypalStandard/Resources/lang/de-DE/general.php @@ -0,0 +1,20 @@ + 'PayPal Standard', + 'description' => 'Aktivieren Sie die Standard-Zahlungsoption von PayPal', + + 'form' => [ + 'email' => 'E-Mail', + 'mode' => 'Modus', + 'debug' => 'Debug', + 'transaction' => 'Transaktion', + 'customer' => 'Dem Kunden zeigen', + 'order' => 'Bestellung', + ], + + 'test_mode' => 'Warnung: Das Payment-Gateway befindet sich im Sandbox-Modus. Ihr Konto wird nicht belastet.', + //'description' => 'Pay with PAYPAL', + +]; diff --git a/modules/PaypalStandard/Resources/lang/fa-IR/general.php b/modules/PaypalStandard/Resources/lang/fa-IR/general.php new file mode 100644 index 000000000..a8f442100 --- /dev/null +++ b/modules/PaypalStandard/Resources/lang/fa-IR/general.php @@ -0,0 +1,20 @@ + 'PayPal استاندارد', + 'description' => 'گزینه پرداخت استاندارد PayPal را فعال کنید', + + 'form' => [ + 'email' => 'ایمیل', + 'mode' => 'حالت', + 'debug' => 'اشکال زدايي کردن', + 'transaction' => 'تراکنش‌ها', + 'customer' => 'نمایش به مشتری', + 'order' => 'سفارش', + ], + + 'test_mode' => 'هشدار: درگاه پرداخت در "حالت Sandbox" است. حساب شما شارژ نخواهد شد.', + //'description' => 'Pay with PAYPAL', + +]; diff --git a/modules/PaypalStandard/Resources/lang/fr-FR/general.php b/modules/PaypalStandard/Resources/lang/fr-FR/general.php new file mode 100644 index 000000000..97310bbf8 --- /dev/null +++ b/modules/PaypalStandard/Resources/lang/fr-FR/general.php @@ -0,0 +1,20 @@ + 'Standard Paypal', + 'description' => 'Activation de l\'option de paiement standard pour Paypal', + + 'form' => [ + 'email' => 'Email', + 'mode' => 'Mode', + 'debug' => 'Debug', + 'transaction' => 'Transaction', + 'customer' => 'Montrer au client', + 'order' => 'Commande', + ], + + 'test_mode' => 'Avertissement: La passerelle de paiement est en mode \'Bac à sable\'. Votre compte ne sera pas débité.', + //'description' => 'Pay with PAYPAL', + +]; diff --git a/modules/PaypalStandard/Resources/lang/id-ID/general.php b/modules/PaypalStandard/Resources/lang/id-ID/general.php new file mode 100644 index 000000000..ce3b791c0 --- /dev/null +++ b/modules/PaypalStandard/Resources/lang/id-ID/general.php @@ -0,0 +1,20 @@ + 'PayPal Standard', + 'description' => 'Aktifkan opsi pembayaran standar PayPal', + + 'form' => [ + 'email' => 'Email', + 'mode' => 'Mode', + 'debug' => 'Debug', + 'transaction' => 'Transaksi', + 'customer' => 'Tunjukkan kepada Pelanggan', + 'order' => 'Pesanan', + ], + + 'test_mode' => 'Peringatan: Gateway pembayaran dalam \'Mode Sandbox\'. Akun Anda tidak akan dikenakan biaya.', + //'description' => 'Pay with PAYPAL', + +]; diff --git a/modules/PaypalStandard/Resources/lang/it-IT/general.php b/modules/PaypalStandard/Resources/lang/it-IT/general.php new file mode 100644 index 000000000..4083225d3 --- /dev/null +++ b/modules/PaypalStandard/Resources/lang/it-IT/general.php @@ -0,0 +1,20 @@ + 'PayPal Standard', + 'description' => 'Abilita l\'opzione di pagamento standard di PayPal', + + 'form' => [ + 'email' => 'Email', + 'mode' => 'Modalità', + 'debug' => 'Debug', + 'transaction' => 'Transazione', + 'customer' => 'Mostra al Cliente', + 'order' => 'Ordine', + ], + + 'test_mode' => 'Avviso: il gateway di pagamento è in "Modalità sandbox". Il tuo account non verrà addebitato.', + //'description' => 'Pay with PAYPAL', + +]; diff --git a/modules/PaypalStandard/Resources/lang/ja-JP/general.php b/modules/PaypalStandard/Resources/lang/ja-JP/general.php index 162b4b37b..374185a88 100644 --- a/modules/PaypalStandard/Resources/lang/ja-JP/general.php +++ b/modules/PaypalStandard/Resources/lang/ja-JP/general.php @@ -15,6 +15,6 @@ return [ ], 'test_mode' => '警告: 支払いゲートウェイは \'サンドボックスモード\'です。 アカウントには請求されません。 ', - //'description' => 'PAYPALで支払う', + //'description' => 'Pay with PAYPAL', -]; \ No newline at end of file +]; diff --git a/modules/PaypalStandard/Resources/lang/nb-NO/general.php b/modules/PaypalStandard/Resources/lang/nb-NO/general.php new file mode 100644 index 000000000..75f35ba36 --- /dev/null +++ b/modules/PaypalStandard/Resources/lang/nb-NO/general.php @@ -0,0 +1,20 @@ + 'PayPal-standard', + 'description' => 'Aktiver standard betalingsalternativ for PayPal', + + 'form' => [ + 'email' => 'E-post', + 'mode' => 'Modus', + 'debug' => 'Debug', + 'transaction' => 'Transaksjon', + 'customer' => 'Vis til kunde', + 'order' => 'Rekkefølge', + ], + + 'test_mode' => 'Advarsel: Betalingsporten er i \'Sandbox Mode\'. Kontoen din blir ikke belastet.', + //'description' => 'Pay with PAYPAL', + +]; diff --git a/modules/PaypalStandard/Resources/lang/pt-BR/general.php b/modules/PaypalStandard/Resources/lang/pt-BR/general.php new file mode 100644 index 000000000..555fa9b1f --- /dev/null +++ b/modules/PaypalStandard/Resources/lang/pt-BR/general.php @@ -0,0 +1,20 @@ + 'PayPal Standard', + 'description' => 'Habilitar a opção de pagamento padrão do PayPal', + + 'form' => [ + 'email' => 'E-mail', + 'mode' => 'Modo', + 'debug' => 'Depuração', + 'transaction' => 'Transação', + 'customer' => 'Mostrar ao Cliente', + 'order' => 'Ordem', + ], + + 'test_mode' => 'Aviso: O gateway de pagamento está no \'Modo seguro\'. Sua conta não será cobrada.', + //'description' => 'Pay with PAYPAL', + +]; diff --git a/modules/PaypalStandard/Resources/lang/sq-AL/general.php b/modules/PaypalStandard/Resources/lang/sq-AL/general.php new file mode 100644 index 000000000..181bf2653 --- /dev/null +++ b/modules/PaypalStandard/Resources/lang/sq-AL/general.php @@ -0,0 +1,20 @@ + 'PayPal Standard', + 'description' => 'Aktivizoni opsionin standard të pagesës së PayPal', + + 'form' => [ + 'email' => 'Email', + 'mode' => 'Modë', + 'debug' => 'Debugim', + 'transaction' => 'Transaksion', + 'customer' => 'Trego tek Klienti', + 'order' => 'Porosi', + ], + + 'test_mode' => 'Kujdes: Porta e pagesës është në \'Modalitetin Sandbox\'. Llogaria jote nuk do të ngarkohet.', + //'description' => 'Pay with PAYPAL', + +]; diff --git a/modules/PaypalStandard/Resources/lang/uk-UA/general.php b/modules/PaypalStandard/Resources/lang/uk-UA/general.php new file mode 100644 index 000000000..d83152ef3 --- /dev/null +++ b/modules/PaypalStandard/Resources/lang/uk-UA/general.php @@ -0,0 +1,20 @@ + 'PayPal Стандартний', + 'description' => 'Включити стандартний варіант оплати PayPal', + + 'form' => [ + 'email' => 'E-mail', + 'mode' => 'Режим', + 'debug' => 'Налагодження', + 'transaction' => 'Транзакції', + 'customer' => 'Показати Клієнту', + 'order' => 'Замовлення', + ], + + 'test_mode' => 'Увага: Платіжний шлюз у тестовому режимі. Гроші з вашого рахунку не будуть списані.', + //'description' => 'Pay with PAYPAL', + +]; From e41eaa8d5442620e1756d38356264b97cbd80440 Mon Sep 17 00:00:00 2001 From: Sevan Nerse Date: Mon, 22 Feb 2021 13:58:25 +0300 Subject: [PATCH 115/121] fixing typo and bug when group is true --- resources/assets/js/components/AkauntingSelect.vue | 12 ++++++------ .../assets/js/components/AkauntingSelectRemote.vue | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/resources/assets/js/components/AkauntingSelect.vue b/resources/assets/js/components/AkauntingSelect.vue index e7dfc1dcc..6033ab965 100644 --- a/resources/assets/js/components/AkauntingSelect.vue +++ b/resources/assets/js/components/AkauntingSelect.vue @@ -294,12 +294,12 @@ export default { }, created() { - let created_option = (this.dynamicOptions) ? this.dynamicOptions : this.options; + let created_options = (this.dynamicOptions) ? this.dynamicOptions : this.options; if (this.group) { // Option set sort_option data if (!Array.isArray(created_options)) { - for (const [index, options] of Object.entries(created_option)) { + for (const [index, options] of Object.entries(created_options)) { let values = []; for (const [key, value] of Object.entries(options)) { @@ -315,7 +315,7 @@ export default { }); } } else { - created_option.forEach(function (option, index) { + created_options.forEach(function (option, index) { if (typeof(option) == 'string') { this.sort_options.push({ index: index, @@ -333,15 +333,15 @@ export default { } } else { // Option set sort_option data - if (!Array.isArray(created_option)) { - for (const [key, value] of Object.entries(created_option)) { + if (!Array.isArray(created_options)) { + for (const [key, value] of Object.entries(created_options)) { this.sort_options.push({ key: key, value: value }); } } else { - created_option.forEach(function (option, index) { + created_options.forEach(function (option, index) { if (typeof(option) == 'string') { this.sort_options.push({ index: index, diff --git a/resources/assets/js/components/AkauntingSelectRemote.vue b/resources/assets/js/components/AkauntingSelectRemote.vue index 0ca43d8d8..36d62d8f6 100644 --- a/resources/assets/js/components/AkauntingSelectRemote.vue +++ b/resources/assets/js/components/AkauntingSelectRemote.vue @@ -468,12 +468,12 @@ export default { }, setSortOptions() { - let created_option = (this.dynamicOptions) ? this.dynamicOptions : this.options; + let created_options = (this.dynamicOptions) ? this.dynamicOptions : this.options; if (this.group) { // Option set sort_option data if (!Array.isArray(created_options)) { - for (const [index, options] of Object.entries(created_option)) { + for (const [index, options] of Object.entries(created_options)) { let values = []; for (const [key, value] of Object.entries(options)) { @@ -489,7 +489,7 @@ export default { }); } } else { - created_option.forEach(function (option, index) { + created_options.forEach(function (option, index) { this.sort_options.push({ index: index, key: option.id, @@ -499,15 +499,15 @@ export default { } } else { // Option set sort_option data - if (!Array.isArray(created_option)) { - for (const [key, value] of Object.entries(created_option)) { + if (!Array.isArray(created_options)) { + for (const [key, value] of Object.entries(created_options)) { this.sort_options.push({ key: key, value: value }); } } else { - created_option.forEach(function (option, index) { + created_options.forEach(function (option, index) { this.sort_options.push({ index: index, key: option.id, From 8aac5fe43338635d5d5687ac34723e9fb3355c80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20=C3=87ak=C4=B1rel?= Date: Mon, 22 Feb 2021 17:21:04 +0300 Subject: [PATCH 116/121] Make dynamic invoice settings for documents --- .../View/Components/DocumentForm.php | 80 ++++++++++++++++--- .../View/Components/DocumentShow.php | 16 ++-- .../View/Components/DocumentTemplate.php | 30 +++---- .../Modals/DocumentItemColumns.php | 34 +++++++- app/Traits/Documents.php | 19 ++++- config/type.php | 6 ++ .../documents/form/company.blade.php | 4 +- .../documents/form/content.blade.php | 3 + .../documents/form/footer.blade.php | 4 +- .../components/documents/form/main.blade.php | 1 + .../components/documents/form/note.blade.php | 2 +- .../modals/documents/item_columns.blade.php | 17 ++-- 12 files changed, 163 insertions(+), 53 deletions(-) diff --git a/app/Abstracts/View/Components/DocumentForm.php b/app/Abstracts/View/Components/DocumentForm.php index cedaf14a3..8d0bf785d 100644 --- a/app/Abstracts/View/Components/DocumentForm.php +++ b/app/Abstracts/View/Components/DocumentForm.php @@ -43,6 +43,12 @@ abstract class DocumentForm extends Base /** @var bool */ public $hideCompanyEdit; + + /** @var string */ + public $titleSetting; + + /** @var string */ + public $subheadingSetting; /** Company Component End */ /** Content Component Start */ @@ -72,6 +78,12 @@ abstract class DocumentForm extends Base /** @var bool */ public $hideButtons; + + /** @var string */ + public $footerSetting; + + /** @var string */ + public $notesSetting; /** Content Component End */ /** Metadata Component Start */ @@ -199,10 +211,12 @@ abstract class DocumentForm extends Base /** Advanced Component End */ /** Company Component Start */ bool $hideLogo = false, bool $hideDocumentTitle = false, bool $hideDocumentSubheading = false, bool $hideCompanyEdit = false, + string $titleSetting = '', string $subheadingSetting = '', /** Company Component End */ /** Content Component Start */ string $routeStore = '', string $routeUpdate = '', string $formId = 'document', string $formSubmit = 'onSubmit', string $routeCancel = '', bool $hideCompany = false, bool $hideAdvanced = false, bool $hideFooter = false, bool $hideButtons = false, + string $footerSetting = '', string $notesSetting = '', /** Content Component End */ /** Metadata Component Start */ $contacts = [], $contact = false, string $contactType = '', string $contactSearchRoute = '', string $contactCreateRoute = '', @@ -234,6 +248,8 @@ abstract class DocumentForm extends Base $this->hideDocumentTitle = $hideDocumentTitle; $this->hideDocumentSubheading = $hideDocumentSubheading; $this->hideCompanyEdit = $hideCompanyEdit; + $this->titleSetting = $this->getTitleSettingValue($titleSetting); + $this->subheadingSetting = $this->getSubheadingSettingValue($subheadingSetting); /** Company Component End */ /** Content Component Start */ @@ -247,6 +263,8 @@ abstract class DocumentForm extends Base $this->hideAdvanced = $hideAdvanced; $this->hideFooter = $hideFooter; $this->hideButtons = $hideButtons; + $this->footerSetting = $this->getFooterSettingValue($footerSetting); + $this->notesSetting = $this->getNotesSettingValue($notesSetting); /** Content Component End */ /** Metadata Component Start */ @@ -580,7 +598,7 @@ abstract class DocumentForm extends Base $issuedAt = Date::now()->toDateString(); } - $addDays = (setting($type . '.payment_terms', 0)) ? setting($type . '.payment_terms', 0) : 0; + $addDays = setting($this->getSettingKey($type, 'payment_terms'), 0) ?: 0; $dueAt = Date::parse($issuedAt)->addDays($addDays)->toDateString(); @@ -689,8 +707,8 @@ abstract class DocumentForm extends Base } // if you use settting translation - if (setting($type . '.item_name', 'items') == 'custom') { - if (empty($textItems = setting($type . '.item_name_input'))) { + if (setting($this->getSettingKey($type, 'item_name'), 'items') === 'custom') { + if (empty($textItems = setting($this->getSettingKey($type, 'item_name_input')))) { $textItems = 'general.items'; } @@ -713,8 +731,8 @@ abstract class DocumentForm extends Base } // if you use settting translation - if (setting($type . '.quantity_name', 'quantity') == 'custom') { - if (empty($textQuantity = setting($type . '.quantity_name_input'))) { + if (setting($this->getSettingKey($type, 'quantity_name'), 'quantity') === 'custom') { + if (empty($textQuantity = setting($this->getSettingKey($type, 'quantity_name_input')))) { $textQuantity = 'invoices.quantity'; } @@ -737,8 +755,8 @@ abstract class DocumentForm extends Base } // if you use settting translation - if (setting($type . '.price_name', 'price') == 'custom') { - if (empty($textPrice = setting($type . '.price_name_input'))) { + if (setting($this->getSettingKey($type, 'price_name'), 'price') === 'custom') { + if (empty($textPrice = setting($this->getSettingKey($type, 'price_name_input')))) { $textPrice = 'invoices.price'; } @@ -793,7 +811,7 @@ abstract class DocumentForm extends Base } // if you use settting translation - if ($hideName = setting($type . '.hide_item_name', false)) { + if ($hideName = setting($this->getSettingKey($type, 'hide_item_name'), false)) { return $hideName; } @@ -814,7 +832,7 @@ abstract class DocumentForm extends Base } // if you use settting translation - if ($hideDescription = setting($type . '.hide_item_description', false)) { + if ($hideDescription = setting($this->getSettingKey($type, 'hide_item_description'), false)) { return $hideDescription; } @@ -835,7 +853,7 @@ abstract class DocumentForm extends Base } // if you use settting translation - if ($hideQuantity = setting($type . '.hide_quantity', false)) { + if ($hideQuantity = setting($this->getSettingKey($type, 'hide_quantity'), false)) { return $hideQuantity; } @@ -856,7 +874,7 @@ abstract class DocumentForm extends Base } // if you use settting translation - if ($hidePrice = setting($type . '.hide_price', false)) { + if ($hidePrice = setting($this->getSettingKey($type, 'hide_price'), false)) { return $hidePrice; } @@ -877,7 +895,7 @@ abstract class DocumentForm extends Base } // if you use settting translation - if ($hideDiscount = setting($type . '.hide_discount', false)) { + if ($hideDiscount = setting($this->getSettingKey($type, 'hide_discount'), false)) { return $hideDiscount; } @@ -898,7 +916,7 @@ abstract class DocumentForm extends Base } // if you use settting translation - if ($hideAmount = setting($type . '.hide_amount', false)) { + if ($hideAmount = setting($this->getSettingKey($type, 'hide_amount'), false)) { return $hideAmount; } @@ -911,4 +929,40 @@ abstract class DocumentForm extends Base // @todo what return value invoice or always false?? return setting('invoice.hide_amount', $hideAmount); } + + protected function getTitleSettingValue($titleSetting) + { + if (!empty($titleSetting)) { + return $titleSetting; + } + + return setting($this->getSettingKey($this->type, 'title')); + } + + protected function getSubheadingSettingValue($subheadingSetting) + { + if (!empty($subheadingSetting)) { + return $subheadingSetting; + } + + return setting($this->getSettingKey($this->type, 'subheading')); + } + + protected function getFooterSettingValue($footerSetting) + { + if (!empty($footerSetting)) { + return $footerSetting; + } + + return setting($this->getSettingKey($this->type, 'footer')); + } + + protected function getNotesSettingValue($notesSetting) + { + if (!empty($notesSetting)) { + return $notesSetting; + } + + return setting($this->getSettingKey($this->type, 'notes')); + } } diff --git a/app/Abstracts/View/Components/DocumentShow.php b/app/Abstracts/View/Components/DocumentShow.php index 43a7ba824..13702130c 100644 --- a/app/Abstracts/View/Components/DocumentShow.php +++ b/app/Abstracts/View/Components/DocumentShow.php @@ -5,6 +5,7 @@ namespace App\Abstracts\View\Components; use App\Abstracts\View\Components\Document as Base; use App\Models\Common\Media; use App\Traits\DateTime; +use App\Traits\Documents; use File; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\URL; @@ -16,6 +17,7 @@ use Storage; abstract class DocumentShow extends Base { use DateTime; + use Documents; public $type; @@ -578,7 +580,7 @@ abstract class DocumentShow extends Base $type = $alias . '.' . str_replace('-', '_', $type); } - $documentTemplate = setting($type . '.template') ?: 'default'; + $documentTemplate = setting($this->getSettingKey($type, 'template')) ?: 'default'; return $documentTemplate; } @@ -1384,7 +1386,7 @@ abstract class DocumentShow extends Base } // if you use settting translation - if ($hideName = setting($type . '.hide_item_name', false)) { + if ($hideName = setting($this->getSettingKey($type, 'hide_item_name'), false)) { return $hideName; } @@ -1405,7 +1407,7 @@ abstract class DocumentShow extends Base } // if you use settting translation - if ($hideDescription = setting($type . '.hide_item_description', false)) { + if ($hideDescription = setting($this->getSettingKey($type, 'hide_item_description'), false)) { return $hideDescription; } @@ -1426,7 +1428,7 @@ abstract class DocumentShow extends Base } // if you use settting translation - if ($hideQuantity = setting($type . '.hide_quantity', false)) { + if ($hideQuantity = setting($this->getSettingKey($type, 'hide_quantity'), false)) { return $hideQuantity; } @@ -1447,7 +1449,7 @@ abstract class DocumentShow extends Base } // if you use settting translation - if ($hidePrice = setting($type . '.hide_price', false)) { + if ($hidePrice = setting($this->getSettingKey($type, 'hide_price'), false)) { return $hidePrice; } @@ -1468,7 +1470,7 @@ abstract class DocumentShow extends Base } // if you use settting translation - if ($hideDiscount = setting($type . '.hide_discount', false)) { + if ($hideDiscount = setting($this->getSettingKey($type, 'hide_discount'), false)) { return $hideDiscount; } @@ -1489,7 +1491,7 @@ abstract class DocumentShow extends Base } // if you use settting translation - if ($hideAmount = setting($type . '.hide_amount', false)) { + if ($hideAmount = setting($this->getSettingKey($type, 'hide_amount'), false)) { return $hideAmount; } diff --git a/app/Abstracts/View/Components/DocumentTemplate.php b/app/Abstracts/View/Components/DocumentTemplate.php index befb69193..b7f4d7405 100644 --- a/app/Abstracts/View/Components/DocumentTemplate.php +++ b/app/Abstracts/View/Components/DocumentTemplate.php @@ -5,6 +5,7 @@ namespace App\Abstracts\View\Components; use App\Abstracts\View\Components\Document as Base; use App\Models\Common\Media; use App\Traits\DateTime; +use App\Traits\Documents; use File; use Illuminate\Support\Facades\Log; use Image; @@ -14,6 +15,7 @@ use Storage; abstract class DocumentTemplate extends Base { use DateTime; + use Documents; public $type; @@ -180,7 +182,7 @@ abstract class DocumentTemplate extends Base return $template; } - $documentTemplate = setting($type . '.template', 'default'); + $documentTemplate = setting($this->getSettingKey($type, 'template'), 'default'); return $documentTemplate; } @@ -248,7 +250,7 @@ abstract class DocumentTemplate extends Base $type = $alias . '.' . str_replace('-', '_', $type); } - $backgroundColor = setting($type . '.color', '#55588b'); + $backgroundColor = setting($this->getSettingKey($type, 'color'), '#55588b'); return $backgroundColor; } @@ -368,8 +370,8 @@ abstract class DocumentTemplate extends Base } // if you use settting translation - if (setting($type . '.item_name', 'items') == 'custom') { - if (empty($textItems = setting($type . '.item_name_input'))) { + if (setting($this->getSettingKey($type, 'item_name'), 'items') == 'custom') { + if (empty($textItems = setting($this->getSettingKey($type, 'item_name_input')))) { $textItems = 'general.items'; } @@ -392,8 +394,8 @@ abstract class DocumentTemplate extends Base } // if you use settting translation - if (setting($type . '.quantity_name', 'quantity') == 'custom') { - if (empty($textQuantity = setting($type . '.quantity_name_input'))) { + if (setting($this->getSettingKey($type, 'quantity_name'), 'quantity') === 'custom') { + if (empty($textQuantity = setting($this->getSettingKey($type, 'quantity_name_input')))) { $textQuantity = 'invoices.quantity'; } @@ -416,8 +418,8 @@ abstract class DocumentTemplate extends Base } // if you use settting translation - if (setting($type . '.price_name', 'price') == 'custom') { - if (empty($textPrice = setting($type . '.price_name_input'))) { + if (setting($this->getSettingKey($type, 'price_name'), 'price') === 'custom') { + if (empty($textPrice = setting($this->getSettingKey($type, 'price_name_input')))) { $textPrice = 'invoices.price'; } @@ -472,7 +474,7 @@ abstract class DocumentTemplate extends Base } // if you use settting translation - if ($hideName = setting($type . '.hide_item_name', false)) { + if ($hideName = setting($this->getSettingKey($type, 'hide_item_name'), false)) { return $hideName; } @@ -493,7 +495,7 @@ abstract class DocumentTemplate extends Base } // if you use settting translation - if ($hideDescription = setting($type . '.hide_item_description', false)) { + if ($hideDescription = setting($this->getSettingKey($type, 'hide_item_description'), false)) { return $hideDescription; } @@ -514,7 +516,7 @@ abstract class DocumentTemplate extends Base } // if you use settting translation - if ($hideQuantity = setting($type . '.hide_quantity', false)) { + if ($hideQuantity = setting($this->getSettingKey($type, 'hide_quantity'), false)) { return $hideQuantity; } @@ -535,7 +537,7 @@ abstract class DocumentTemplate extends Base } // if you use settting translation - if ($hidePrice = setting($type . '.hide_price', false)) { + if ($hidePrice = setting($this->getSettingKey($type, 'hide_price'), false)) { return $hidePrice; } @@ -556,7 +558,7 @@ abstract class DocumentTemplate extends Base } // if you use settting translation - if ($hideDiscount = setting($type . '.hide_discount', false)) { + if ($hideDiscount = setting($this->getSettingKey($type, 'hide_discount'), false)) { return $hideDiscount; } @@ -577,7 +579,7 @@ abstract class DocumentTemplate extends Base } // if you use settting translation - if ($hideAmount = setting($type . '.hide_amount', false)) { + if ($hideAmount = setting($this->getSettingKey($type, 'hide_amount'), false)) { return $hideAmount; } diff --git a/app/Http/Controllers/Modals/DocumentItemColumns.php b/app/Http/Controllers/Modals/DocumentItemColumns.php index e35714798..e28901b70 100644 --- a/app/Http/Controllers/Modals/DocumentItemColumns.php +++ b/app/Http/Controllers/Modals/DocumentItemColumns.php @@ -4,10 +4,13 @@ namespace App\Http\Controllers\Modals; use App\Abstracts\Http\Controller; use App\Http\Requests\Setting\Setting as Request; +use App\Traits\Documents; class DocumentItemColumns extends Controller { - public $skip_keys = ['company_id', '_method', '_token', '_prefix', '_template', 'type']; + use Documents; + + public $skip_keys = ['company_id', '_method', '_token', '_template', 'type']; public function __construct() { @@ -54,12 +57,35 @@ class DocumentItemColumns extends Controller '90' => trans('settings.invoice.due_days', ['days' => 90]), ]; + $item_name = setting($this->getSettingKey($type, 'item_name')); + $item_name_input = setting($this->getSettingKey($type, 'item_name_input')); + $price_name = setting($this->getSettingKey($type, 'price_name')); + $price_name_input = setting($this->getSettingKey($type, 'price_name_input')); + $quantity_name = setting($this->getSettingKey($type, 'quantity_name')); + $quantity_name_input = setting($this->getSettingKey($type, 'quantity_name_input')); + $hide_item_name = setting($this->getSettingKey($type, 'hide_item_name')); + $hide_item_description = setting($this->getSettingKey($type, 'hide_item_description')); + $hide_quantity = setting($this->getSettingKey($type, 'hide_quantity')); + $hide_price = setting($this->getSettingKey($type, 'hide_price')); + $hide_amount = setting($this->getSettingKey($type, 'hide_amount')); + $html = view('modals.documents.item_columns', compact( 'type', 'item_names', 'price_names', 'quantity_names', - 'payment_terms' + 'payment_terms', + 'item_name', + 'item_name_input', + 'price_name', + 'price_name_input', + 'quantity_name', + 'quantity_name_input', + 'hide_item_name', + 'hide_item_description', + 'hide_quantity', + 'hide_price', + 'hide_amount', ))->render(); return response()->json([ @@ -80,7 +106,7 @@ class DocumentItemColumns extends Controller public function update(Request $request) { $fields = $request->all(); - $prefix = $request->get('_prefix', 'invoice'); + $type = $request->get('type', 'invoice'); $company_id = $request->get('company_id'); if (empty($company_id)) { @@ -88,7 +114,7 @@ class DocumentItemColumns extends Controller } foreach ($fields as $key => $value) { - $real_key = $prefix . '.' . $key; + $real_key = $this->getSettingKey($type, $key); // Don't process unwanted keys if (in_array($key, $this->skip_keys)) { diff --git a/app/Traits/Documents.php b/app/Traits/Documents.php index 6caeaacab..8a88034a0 100644 --- a/app/Traits/Documents.php +++ b/app/Traits/Documents.php @@ -83,7 +83,7 @@ trait Documents { return Str::slug($document->document_number, $separator, language()->getShortCode()); } - + protected function getTextDocumentStatuses($type) { $default_key = config('type.' . $type . '.translation.prefix') . '.statuses.'; @@ -106,4 +106,21 @@ trait Documents return 'documents.statuses.'; } + + protected function getSettingKey($type, $setting_key) + { + $key = ''; + $alias = config('type.' . $type . '.alias'); + + if (!empty($alias)) { + $key .= $alias . '.'; + } + + $prefix = config('type.' . $type . '.setting.prefix'); + + + $key .= $prefix . '.' . $setting_key; + + return $key; + } } diff --git a/config/type.php b/config/type.php index b24e0e361..c552cd587 100644 --- a/config/type.php +++ b/config/type.php @@ -23,6 +23,9 @@ return [ 'issued_at' => 'invoices.invoice_date', 'due_at' => 'invoices.due_date', ], + 'setting' => [ + 'prefix' => 'invoice', + ], 'category_type' => 'income', 'transaction_type' => 'income', 'contact_type' => 'customer', // use contact type @@ -47,6 +50,9 @@ return [ 'issued_at' => 'bills.bill_date', 'due_at' => 'bills.due_date', ], + 'setting' => [ + 'prefix' => 'bill', + ], 'category_type' => 'expense', 'transaction_type' => 'expense', 'contact_type' => 'vendor', diff --git a/resources/views/components/documents/form/company.blade.php b/resources/views/components/documents/form/company.blade.php index d9b06cd94..68c730fd3 100644 --- a/resources/views/components/documents/form/company.blade.php +++ b/resources/views/components/documents/form/company.blade.php @@ -15,11 +15,11 @@
@if (!$hideDocumentTitle) - {{ Form::textGroup('title', trans('settings.invoice.title'), 'font', ['data-field' => 'setting'], setting($type . '.title'), 'col-md-12') }} + {{ Form::textGroup('title', trans('settings.invoice.title'), 'font', ['data-field' => 'setting'], $titleSetting, 'col-md-12') }} @endif @if (!$hideDocumentSubheading) - {{ Form::textGroup('subheading', trans('settings.invoice.subheading'), 'font', ['data-field' => 'setting'], setting($type . '.subheading'), 'col-md-12') }} + {{ Form::textGroup('subheading', trans('settings.invoice.subheading'), 'font', ['data-field' => 'setting'], $subheadingSetting, 'col-md-12') }} @endif @if (!$hideCompanyEdit) diff --git a/resources/views/components/documents/form/content.blade.php b/resources/views/components/documents/form/content.blade.php index c58ddcc1b..1def1e9ec 100644 --- a/resources/views/components/documents/form/content.blade.php +++ b/resources/views/components/documents/form/content.blade.php @@ -29,6 +29,7 @@ hide-document-title="{{ $hideDocumentTitle }}" hide-document-subheading="{{ $hideDocumentSubheading }}" hide-company-edit="{{ $hideCompanyEdit }}" + title-setting="{{ $titleSetting }}" /> @endif @@ -67,12 +68,14 @@ text-amount="{{ $textAmount }}" is-sale-price="{{ $isSalePrice }}" is-purchase-price="{{ $isPurchasePrice }}" + notes-setting="{{ $notesSetting }}" /> @if (!$hideFooter) @endif diff --git a/resources/views/components/documents/form/footer.blade.php b/resources/views/components/documents/form/footer.blade.php index 8ec9c1dec..0a1604621 100644 --- a/resources/views/components/documents/form/footer.blade.php +++ b/resources/views/components/documents/form/footer.blade.php @@ -6,7 +6,7 @@
- \ No newline at end of file + diff --git a/resources/views/components/documents/form/main.blade.php b/resources/views/components/documents/form/main.blade.php index 6c16f296e..684722cc9 100644 --- a/resources/views/components/documents/form/main.blade.php +++ b/resources/views/components/documents/form/main.blade.php @@ -54,6 +54,7 @@ diff --git a/resources/views/components/documents/form/note.blade.php b/resources/views/components/documents/form/note.blade.php index 8895a4fd6..c473cd937 100644 --- a/resources/views/components/documents/form/note.blade.php +++ b/resources/views/components/documents/form/note.blade.php @@ -1,3 +1,3 @@ diff --git a/resources/views/modals/documents/item_columns.blade.php b/resources/views/modals/documents/item_columns.blade.php index aae91f8d5..a4b653c51 100644 --- a/resources/views/modals/documents/item_columns.blade.php +++ b/resources/views/modals/documents/item_columns.blade.php @@ -10,23 +10,22 @@ 'novalidate' => true, ]) !!}
- {{ Form::invoice_text('item_name', trans('settings.invoice.item_name'), 'font', $item_names, setting($type . '.item_name'), [], 'item_name_input', setting($type . '.item_name_input', null), 'col-md-12') }} + {{ Form::invoice_text('item_name', trans('settings.invoice.item_name'), 'font', $item_names, $item_name, [], 'item_name_input', $item_name_input, 'col-md-12') }} - {{ Form::invoice_text('price_name', trans('settings.invoice.price_name'), 'font', $price_names, setting($type . '.price_name'), [], 'price_name_input', setting($type . '.price_name_input', null), 'col-md-12') }} + {{ Form::invoice_text('price_name', trans('settings.invoice.price_name'), 'font', $price_names, $price_name, [], 'price_name_input', $price_name_input, 'col-md-12') }} - {{ Form::invoice_text('quantity_name', trans('settings.invoice.quantity_name'), 'font', $quantity_names, setting($type . '.quantity_name'), [], 'quantity_name_input', setting($type . '.quantity_name_input', null), 'col-md-12') }} + {{ Form::invoice_text('quantity_name', trans('settings.invoice.quantity_name'), 'font', $quantity_names, $quantity_name, [], 'quantity_name_input', $quantity_name_input, 'col-md-12') }} - {{ Form::radioGroup('hide_item_name', trans('settings.invoice.hide.item_name'), setting($type . '.hide_item_name', null)) }} + {{ Form::radioGroup('hide_item_name', trans('settings.invoice.hide.item_name'), $hide_item_name) }} - {{ Form::radioGroup('hide_item_description', trans('settings.invoice.hide.item_description'), setting($type . '.hide_item_description', null)) }} + {{ Form::radioGroup('hide_item_description', trans('settings.invoice.hide.item_description'), $hide_item_description) }} - {{ Form::radioGroup('hide_quantity', trans('settings.invoice.hide.quantity'), setting($type . '.hide_quantity', null)) }} + {{ Form::radioGroup('hide_quantity', trans('settings.invoice.hide.quantity'), $hide_quantity) }} - {{ Form::radioGroup('hide_price', trans('settings.invoice.hide.price'), setting($type . '.hide_price', null)) }} + {{ Form::radioGroup('hide_price', trans('settings.invoice.hide.price'), $hide_price) }} - {{ Form::radioGroup('hide_amount', trans('settings.invoice.hide.amount'), setting($type . '.hide_amount', null)) }} + {{ Form::radioGroup('hide_amount', trans('settings.invoice.hide.amount'), $hide_amount) }} {!! Form::hidden('type', $type) !!} - {!! Form::hidden('_prefix', $type) !!}
{!! Form::close() !!} From 7363287ab50bf66483a5e44edf9fb16ffb077e01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Tue, 23 Feb 2021 18:28:34 +0300 Subject: [PATCH 117/121] close #1884 Fixed: Changing Company settings forcing logo update --- routes/admin.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routes/admin.php b/routes/admin.php index 486118b9f..28e9ecf02 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -163,8 +163,8 @@ Route::group(['prefix' => 'settings'], function () { Route::group(['as' => 'settings.'], function () { Route::get('settings', 'Settings\Settings@index')->name('index'); - Route::patch('settings', 'Settings\Settings@update')->name('update'); - Route::get('company', 'Settings\Company@edit')->middleware('dropzone')->name('company.edit'); + Route::patch('settings', 'Settings\Settings@update')->middleware('dropzone')->name('update'); + Route::get('company', 'Settings\Company@edit')->name('company.edit'); Route::get('localisation', 'Settings\Localisation@edit')->name('localisation.edit'); Route::get('invoice', 'Settings\Invoice@edit')->name('invoice.edit'); Route::get('default', 'Settings\Defaults@edit')->name('default.edit'); From f8253a5b305d9d9dbde85ff84baa0b91cf1ae6eb Mon Sep 17 00:00:00 2001 From: Sevan Nerse Date: Tue, 23 Feb 2021 18:29:31 +0300 Subject: [PATCH 118/121] date filter will work based on company format and the selection of date range is added --- app/View/Components/SearchString.php | 9 +++- .../assets/js/components/AkauntingSearch.vue | 54 +++++++++++++++---- .../views/components/search-string.blade.php | 6 +-- 3 files changed, 54 insertions(+), 15 deletions(-) diff --git a/app/View/Components/SearchString.php b/app/View/Components/SearchString.php index 9063929e3..c1f579f8b 100644 --- a/app/View/Components/SearchString.php +++ b/app/View/Components/SearchString.php @@ -2,17 +2,21 @@ namespace App\View\Components; -use Illuminate\View\Component; +use App\Traits\DateTime; use Illuminate\Support\Str; -use Symfony\Component\Routing\Exception\RouteNotFoundException; +use Illuminate\View\Component; class SearchString extends Component { + use DateTime; + public $filters; /** string */ public $model; + public $date_format; + /** * Create a new component instance. * @@ -22,6 +26,7 @@ class SearchString extends Component { $this->model = $model; $this->filters = $filters; + $this->date_format = $this->getCompanyDateFormat(); } /** diff --git a/resources/assets/js/components/AkauntingSearch.vue b/resources/assets/js/components/AkauntingSearch.vue index 1a1b2a0d4..2dcf6aa0c 100644 --- a/resources/assets/js/components/AkauntingSearch.vue +++ b/resources/assets/js/components/AkauntingSearch.vue @@ -9,6 +9,7 @@ + @@ -41,9 +42,9 @@ class="form-control datepicker" :placeholder="placeholder" :ref="'input-search-date-field-' + _uid" - v-model="search" + value="" @focus="onInputFocus" - @input="onInputDateSelected" + @on-close="onInputDateSelected" @keyup.enter="onInputConfirm" > @@ -70,6 +71,10 @@ + +