From c355c00c36131c4ad8ef948ef2010ae08c2cadbd Mon Sep 17 00:00:00 2001 From: Justin Dietz Date: Thu, 15 Feb 2024 10:19:13 -0800 Subject: [PATCH] feat: updates generateTypeHelper to use type keyword and updates prettier version * adds support for verbatimModuleSyntax * adds support for user defined prettier config * updates prettier and related dependencies to latest versions BREAKING CHANGE: Typescript < 3.8 is no longer supported, please update to typescript >= 3.8 COMPLETES: #242 --- package-lock.json | 1758 ++++++++++------- package.json | 8 +- src/lib/compiler/typescript-compiler.ts | 8 +- src/lib/converters/constants.converter.ts | 26 +- src/lib/converters/files.converter.ts | 64 +- src/lib/converters/object.converter.ts | 14 +- src/lib/converters/shared.converter.ts | 44 +- .../code-snippet-generators.spec.ts | 38 +- src/lib/generators/code-snippet-generators.ts | 16 +- .../helpers/complete-icon-set-helper.spec.ts | 10 +- src/lib/helpers/complete-icon-set.helper.ts | 41 +- src/lib/helpers/file-helpers.ts | 29 +- src/lib/helpers/logger.ts | 4 +- src/lib/helpers/regex-helpers.ts | 2 +- .../commander/constant-options.commander.ts | 20 +- .../commander/file-options.commander.ts | 30 +- .../commander/object-options.commander.ts | 8 +- .../files-conversion-options.ts | 2 +- .../default-constants-conversion-options.ts | 2 +- .../default-files-conversion-options.ts | 2 +- .../default-object-conversion-options.ts | 2 +- .../commandline-consts-options.collector.ts | 4 +- .../commandline-files-options.collector.ts | 4 +- .../commandline-object-options.collector.ts | 2 +- ...config-file-constants-options.collector.ts | 12 +- .../config-file-files-options.collector.ts | 16 +- .../config-file-object-options.collector.ts | 4 +- .../constants-options.collector.ts | 2 +- .../files-options.collector.ts | 2 +- .../object-options.collector.ts | 2 +- src/lib/shared/file-type.model.ts | 2 +- 31 files changed, 1254 insertions(+), 924 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0d10263..3f40e9c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "svg-to-ts", - "version": "10.0.0", + "version": "11.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "svg-to-ts", - "version": "10.0.0", + "version": "11.0.1", "license": "ISC", "dependencies": { "chalk": "^3.0.0", @@ -18,7 +18,7 @@ "lodash.kebabcase": "^4.1.1", "lodash.snakecase": "^4.1.1", "ora": "^5.1.0", - "prettier": "^1.19.1", + "prettier": "^3.2.5", "svgo": "^3.0.2", "typescript": "^4.9.4" }, @@ -28,8 +28,8 @@ "svg-to-ts-object": "src/bin/svg-to-ts-object.js" }, "devDependencies": { - "@commitlint/cli": "^11.0.0", - "@commitlint/config-conventional": "^11.0.0", + "@commitlint/cli": "^18.6.1", + "@commitlint/config-conventional": "^18.6.2", "@semantic-release/changelog": "^3.0.1", "@semantic-release/exec": "^3.3.2", "@semantic-release/git": "^7.0.6", @@ -42,7 +42,7 @@ "husky": "^3.1.0", "import-conductor": "^2.0.3", "jest": "^24.9.0", - "pretty-quick": "^2.0.1", + "pretty-quick": "^4.0.0", "replace-json-property": "^1.4.1", "semantic-release": "^15.13.31", "ts-jest": "^24.2.0", @@ -482,92 +482,225 @@ } }, "node_modules/@commitlint/cli": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-11.0.0.tgz", - "integrity": "sha512-YWZWg1DuqqO5Zjh7vUOeSX76vm0FFyz4y0cpGMFhrhvUi5unc4IVfCXZ6337R9zxuBtmveiRuuhQqnRRer+13g==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.11.2", - "@commitlint/format": "^11.0.0", - "@commitlint/lint": "^11.0.0", - "@commitlint/load": "^11.0.0", - "@commitlint/read": "^11.0.0", - "chalk": "4.1.0", - "core-js": "^3.6.1", - "get-stdin": "8.0.0", - "lodash": "^4.17.19", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-18.6.1.tgz", + "integrity": "sha512-5IDE0a+lWGdkOvKH892HHAZgbAjcj1mT5QrfA/SVbLJV/BbBMGyKN0W5mhgjekPJJwEQdVNvhl9PwUacY58Usw==", + "dev": true, + "dependencies": { + "@commitlint/format": "^18.6.1", + "@commitlint/lint": "^18.6.1", + "@commitlint/load": "^18.6.1", + "@commitlint/read": "^18.6.1", + "@commitlint/types": "^18.6.1", + "execa": "^5.0.0", + "lodash.isfunction": "^3.0.9", "resolve-from": "5.0.0", "resolve-global": "1.0.0", - "yargs": "^15.1.0" + "yargs": "^17.0.0" }, "bin": { "commitlint": "cli.js" }, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" } }, - "node_modules/@commitlint/cli/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "node_modules/@commitlint/cli/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@commitlint/cli/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@commitlint/cli/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/cli/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@commitlint/cli/node_modules/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, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@commitlint/cli/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@commitlint/cli/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@commitlint/cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" } }, "node_modules/@commitlint/config-conventional": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-11.0.0.tgz", - "integrity": "sha512-SNDRsb5gLuDd2PL83yCOQX6pE7gevC79UPFx+GLbLfw6jGnnbO9/tlL76MLD8MOViqGbo7ZicjChO9Gn+7tHhA==", + "version": "18.6.2", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-18.6.2.tgz", + "integrity": "sha512-PcgSYg1AKGQIwDQKbaHtJsfqYy4uJTC7crLVZ83lfjcPaec4Pry2vLeaWej7ao2KsT20l9dWoMPpEGg8LWdUuA==", "dev": true, "dependencies": { - "conventional-changelog-conventionalcommits": "^4.3.1" + "@commitlint/types": "^18.6.1", + "conventional-changelog-conventionalcommits": "^7.0.2" }, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" } }, + "node_modules/@commitlint/config-validator": { + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-18.6.1.tgz", + "integrity": "sha512-05uiToBVfPhepcQWE1ZQBR/Io3+tb3gEotZjnI4tTzzPk16NffN6YABgwFQCLmzZefbDcmwWqJWc2XT47q7Znw==", + "dev": true, + "dependencies": { + "@commitlint/types": "^18.6.1", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-validator/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@commitlint/config-validator/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/@commitlint/ensure": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-11.0.0.tgz", - "integrity": "sha512-/T4tjseSwlirKZdnx4AuICMNNlFvRyPQimbZIOYujp9DSO6XRtOy9NrmvWujwHsq9F5Wb80QWi4WMW6HMaENug==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-18.6.1.tgz", + "integrity": "sha512-BPm6+SspyxQ7ZTsZwXc7TRQL5kh5YWt3euKmEIBZnocMFkJevqs3fbLRb8+8I/cfbVcAo4mxRlpTPfz8zX7SnQ==", "dev": true, "dependencies": { - "@commitlint/types": "^11.0.0", - "lodash": "^4.17.19" + "@commitlint/types": "^18.6.1", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" }, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" } }, "node_modules/@commitlint/execute-rule": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-11.0.0.tgz", - "integrity": "sha512-g01p1g4BmYlZ2+tdotCavrMunnPFPhTzG1ZiLKTCYrooHRbmvqo42ZZn4QMStUEIcn+jfLb6BRZX3JzIwA1ezQ==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-18.6.1.tgz", + "integrity": "sha512-7s37a+iWyJiGUeMFF6qBlyZciUkF8odSAnHijbD36YDctLhGKoYltdvuJ/AFfRm6cBLRtRk9cCVPdsEFtt/2rg==", "dev": true, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" } }, "node_modules/@commitlint/format": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-11.0.0.tgz", - "integrity": "sha512-bpBLWmG0wfZH/svzqD1hsGTpm79TKJWcf6EXZllh2J/LSSYKxGlv967lpw0hNojme0sZd4a/97R3qA2QHWWSLg==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-18.6.1.tgz", + "integrity": "sha512-K8mNcfU/JEFCharj2xVjxGSF+My+FbUHoqR+4GqPGrHNqXOGNio47ziiR4HQUPKtiNs05o8/WyLBoIpMVOP7wg==", "dev": true, "dependencies": { - "@commitlint/types": "^11.0.0", - "chalk": "^4.0.0" + "@commitlint/types": "^18.6.1", + "chalk": "^4.1.0" }, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" } }, "node_modules/@commitlint/format/node_modules/chalk": { @@ -587,51 +720,61 @@ } }, "node_modules/@commitlint/is-ignored": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-11.0.0.tgz", - "integrity": "sha512-VLHOUBN+sOlkYC4tGuzE41yNPO2w09sQnOpfS+pSPnBFkNUUHawEuA44PLHtDvQgVuYrMAmSWFQpWabMoP5/Xg==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-18.6.1.tgz", + "integrity": "sha512-MOfJjkEJj/wOaPBw5jFjTtfnx72RGwqYIROABudOtJKW7isVjFe9j0t8xhceA02QebtYf4P/zea4HIwnXg8rvA==", "dev": true, "dependencies": { - "@commitlint/types": "^11.0.0", - "semver": "7.3.2" + "@commitlint/types": "^18.6.1", + "semver": "7.6.0" }, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" } }, "node_modules/@commitlint/lint": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-11.0.0.tgz", - "integrity": "sha512-Q8IIqGIHfwKr8ecVZyYh6NtXFmKw4YSEWEr2GJTB/fTZXgaOGtGFZDWOesCZllQ63f1s/oWJYtVv5RAEuwN8BQ==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-18.6.1.tgz", + "integrity": "sha512-8WwIFo3jAuU+h1PkYe5SfnIOzp+TtBHpFr4S8oJWhu44IWKuVx6GOPux3+9H1iHOan/rGBaiacicZkMZuluhfQ==", "dev": true, "dependencies": { - "@commitlint/is-ignored": "^11.0.0", - "@commitlint/parse": "^11.0.0", - "@commitlint/rules": "^11.0.0", - "@commitlint/types": "^11.0.0" + "@commitlint/is-ignored": "^18.6.1", + "@commitlint/parse": "^18.6.1", + "@commitlint/rules": "^18.6.1", + "@commitlint/types": "^18.6.1" }, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" } }, "node_modules/@commitlint/load": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-11.0.0.tgz", - "integrity": "sha512-t5ZBrtgvgCwPfxmG811FCp39/o3SJ7L+SNsxFL92OR4WQxPcu6c8taD0CG2lzOHGuRyuMxZ7ps3EbngT2WpiCg==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-18.6.1.tgz", + "integrity": "sha512-p26x8734tSXUHoAw0ERIiHyW4RaI4Bj99D8YgUlVV9SedLf8hlWAfyIFhHRIhfPngLlCe0QYOdRKYFt8gy56TA==", "dev": true, "dependencies": { - "@commitlint/execute-rule": "^11.0.0", - "@commitlint/resolve-extends": "^11.0.0", - "@commitlint/types": "^11.0.0", - "chalk": "4.1.0", - "cosmiconfig": "^7.0.0", - "lodash": "^4.17.19", + "@commitlint/config-validator": "^18.6.1", + "@commitlint/execute-rule": "^18.6.1", + "@commitlint/resolve-extends": "^18.6.1", + "@commitlint/types": "^18.6.1", + "chalk": "^4.1.0", + "cosmiconfig": "^8.3.6", + "cosmiconfig-typescript-loader": "^5.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", "resolve-from": "^5.0.0" }, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" } }, + "node_modules/@commitlint/load/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/@commitlint/load/node_modules/chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", @@ -649,115 +792,320 @@ } }, "node_modules/@commitlint/load/node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@commitlint/load/node_modules/cosmiconfig-typescript-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", + "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", + "dev": true, + "dependencies": { + "jiti": "^1.19.1" + }, + "engines": { + "node": ">=v16" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=8.2", + "typescript": ">=4" + } + }, + "node_modules/@commitlint/load/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@commitlint/load/node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" } }, "node_modules/@commitlint/message": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-11.0.0.tgz", - "integrity": "sha512-01ObK/18JL7PEIE3dBRtoMmU6S3ecPYDTQWWhcO+ErA3Ai0KDYqV5VWWEijdcVafNpdeUNrEMigRkxXHQLbyJA==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-18.6.1.tgz", + "integrity": "sha512-VKC10UTMLcpVjMIaHHsY1KwhuTQtdIKPkIdVEwWV+YuzKkzhlI3aNy6oo1eAN6b/D2LTtZkJe2enHmX0corYRw==", "dev": true, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" } }, "node_modules/@commitlint/parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-11.0.0.tgz", - "integrity": "sha512-DekKQAIYWAXIcyAZ6/PDBJylWJ1BROTfDIzr9PMVxZRxBPc1gW2TG8fLgjZfBP5mc0cuthPkVi91KQQKGri/7A==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-18.6.1.tgz", + "integrity": "sha512-eS/3GREtvVJqGZrwAGRwR9Gdno3YcZ6Xvuaa+vUF8j++wsmxrA2En3n0ccfVO2qVOLJC41ni7jSZhQiJpMPGOQ==", "dev": true, "dependencies": { - "conventional-changelog-angular": "^5.0.0", - "conventional-commits-parser": "^3.0.0" + "@commitlint/types": "^18.6.1", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-parser": "^5.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/parse/node_modules/conventional-changelog-angular": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@commitlint/parse/node_modules/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "dev": true, + "dependencies": { + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.mjs" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@commitlint/parse/node_modules/is-text-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", + "dev": true, + "dependencies": { + "text-extensions": "^2.0.0" }, "engines": { - "node": ">=v10.22.0" + "node": ">=8" + } + }, + "node_modules/@commitlint/parse/node_modules/meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true, + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/parse/node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/@commitlint/parse/node_modules/text-extensions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@commitlint/read": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-11.0.0.tgz", - "integrity": "sha512-37V0V91GSv0aDzMzJioKpCoZw6l0shk7+tRG8RkW1GfZzUIytdg3XqJmM+IaIYpaop0m6BbZtfq+idzUwJnw7g==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-18.6.1.tgz", + "integrity": "sha512-ia6ODaQFzXrVul07ffSgbZGFajpe8xhnDeLIprLeyfz3ivQU1dIoHp7yz0QIorZ6yuf4nlzg4ZUkluDrGN/J/w==", "dev": true, "dependencies": { - "@commitlint/top-level": "^11.0.0", - "fs-extra": "^9.0.0", - "git-raw-commits": "^2.0.0" + "@commitlint/top-level": "^18.6.1", + "@commitlint/types": "^18.6.1", + "git-raw-commits": "^2.0.11", + "minimist": "^1.2.6" }, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" + } + }, + "node_modules/@commitlint/read/node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/@commitlint/resolve-extends": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-11.0.0.tgz", - "integrity": "sha512-WinU6Uv6L7HDGLqn/To13KM1CWvZ09VHZqryqxXa1OY+EvJkfU734CwnOEeNlSCK7FVLrB4kmodLJtL1dkEpXw==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-18.6.1.tgz", + "integrity": "sha512-ifRAQtHwK+Gj3Bxj/5chhc4L2LIc3s30lpsyW67yyjsETR6ctHAHRu1FSpt0KqahK5xESqoJ92v6XxoDRtjwEQ==", "dev": true, "dependencies": { + "@commitlint/config-validator": "^18.6.1", + "@commitlint/types": "^18.6.1", "import-fresh": "^3.0.0", - "lodash": "^4.17.19", + "lodash.mergewith": "^4.6.2", "resolve-from": "^5.0.0", "resolve-global": "^1.0.0" }, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" } }, "node_modules/@commitlint/rules": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-11.0.0.tgz", - "integrity": "sha512-2hD9y9Ep5ZfoNxDDPkQadd2jJeocrwC4vJ98I0g8pNYn/W8hS9+/FuNpolREHN8PhmexXbkjrwyQrWbuC0DVaA==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-18.6.1.tgz", + "integrity": "sha512-kguM6HxZDtz60v/zQYOe0voAtTdGybWXefA1iidjWYmyUUspO1zBPQEmJZ05/plIAqCVyNUTAiRPWIBKLCrGew==", "dev": true, "dependencies": { - "@commitlint/ensure": "^11.0.0", - "@commitlint/message": "^11.0.0", - "@commitlint/to-lines": "^11.0.0", - "@commitlint/types": "^11.0.0" + "@commitlint/ensure": "^18.6.1", + "@commitlint/message": "^18.6.1", + "@commitlint/to-lines": "^18.6.1", + "@commitlint/types": "^18.6.1", + "execa": "^5.0.0" }, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" + } + }, + "node_modules/@commitlint/rules/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@commitlint/rules/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/rules/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" } }, "node_modules/@commitlint/to-lines": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-11.0.0.tgz", - "integrity": "sha512-TIDTB0Y23jlCNubDROUVokbJk6860idYB5cZkLWcRS9tlb6YSoeLn1NLafPlrhhkkkZzTYnlKYzCVrBNVes1iw==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-18.6.1.tgz", + "integrity": "sha512-Gl+orGBxYSNphx1+83GYeNy5N0dQsHBQ9PJMriaLQDB51UQHCVLBT/HBdOx5VaYksivSf5Os55TLePbRLlW50Q==", "dev": true, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" } }, "node_modules/@commitlint/top-level": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-11.0.0.tgz", - "integrity": "sha512-O0nFU8o+Ws+py5pfMQIuyxOtfR/kwtr5ybqTvR+C2lUPer2x6lnQU+OnfD7hPM+A+COIUZWx10mYQvkR3MmtAA==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-18.6.1.tgz", + "integrity": "sha512-HyiHQZUTf0+r0goTCDs/bbVv/LiiQ7AVtz6KIar+8ZrseB9+YJAIo8HQ2IC2QT1y3N1lbW6OqVEsTHjbT6hGSw==", "dev": true, "dependencies": { "find-up": "^5.0.0" }, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" } }, "node_modules/@commitlint/types": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-11.0.0.tgz", - "integrity": "sha512-VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-18.6.1.tgz", + "integrity": "sha512-gwRLBLra/Dozj2OywopeuHj2ac26gjGkz2cZ+86cTJOdtWfiRRr4+e77ZDAGc6MDWxaWheI+mAV5TLWWRwqrFg==", "dev": true, + "dependencies": { + "chalk": "^4.1.0" + }, "engines": { - "node": ">=v10.22.0" + "node": ">=v18" + } + }, + "node_modules/@commitlint/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/@jest/console": { @@ -2611,15 +2959,6 @@ "node": ">=6" } }, - "node_modules/array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", @@ -2713,15 +3052,6 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -4087,17 +4417,15 @@ } }, "node_modules/conventional-changelog-conventionalcommits": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", - "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", + "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", "dev": true, "dependencies": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=16" } }, "node_modules/conventional-changelog-writer": { @@ -4304,17 +4632,6 @@ "node": ">=10" } }, - "node_modules/core-js": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.0.tgz", - "integrity": "sha512-YUdI3fFu4TF/2WykQ2xzSiTQdldLB4KVuL9WeAy5XONZYt5Cun/fpQvctoKbCgvPhmzADeesTk/j2Rdx77AcKQ==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -5633,21 +5950,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -5710,18 +6012,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -6633,9 +6923,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -9874,6 +10164,15 @@ "node": ">=6" } }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -10018,18 +10317,6 @@ "node": ">=6" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -10212,6 +10499,12 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, + "node_modules/lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "dev": true + }, "node_modules/lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", @@ -10247,6 +10540,18 @@ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true + }, "node_modules/lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", @@ -10264,6 +10569,12 @@ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true + }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -10276,6 +10587,12 @@ "integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=", "dev": true }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -10748,31 +11065,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", - "dev": true, - "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/multimatch/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", @@ -10954,21 +11246,6 @@ "node": ">=10" } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -13415,7 +13692,6 @@ }, "node_modules/npm/node_modules/lodash._baseindexof": { "version": "3.1.0", - "dev": true, "inBundle": true, "license": "MIT" }, @@ -13431,19 +13707,16 @@ }, "node_modules/npm/node_modules/lodash._bindcallback": { "version": "3.0.1", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/lodash._cacheindexof": { "version": "3.0.2", - "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/lodash._createcache": { "version": "3.1.2", - "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13458,7 +13731,6 @@ }, "node_modules/npm/node_modules/lodash._getnative": { "version": "3.9.1", - "dev": true, "inBundle": true, "license": "MIT" }, @@ -13476,7 +13748,6 @@ }, "node_modules/npm/node_modules/lodash.restparam": { "version": "3.6.1", - "dev": true, "inBundle": true, "license": "MIT" }, @@ -16467,14 +16738,17 @@ } }, "node_modules/prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=4" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/pretty-format": { @@ -16520,173 +16794,90 @@ "dev": true }, "node_modules/pretty-quick": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.2.tgz", - "integrity": "sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-4.0.0.tgz", + "integrity": "sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==", "dev": true, "dependencies": { - "chalk": "^2.4.2", - "execa": "^2.1.0", - "find-up": "^4.1.0", - "ignore": "^5.1.4", - "mri": "^1.1.4", - "multimatch": "^4.0.0" + "execa": "^5.1.1", + "find-up": "^5.0.0", + "ignore": "^5.3.0", + "mri": "^1.2.0", + "picocolors": "^1.0.0", + "picomatch": "^3.0.1", + "tslib": "^2.6.2" }, "bin": { - "pretty-quick": "bin/pretty-quick.js" + "pretty-quick": "lib/cli.mjs" }, "engines": { - "node": ">=8" + "node": ">=14" }, "peerDependencies": { - "prettier": ">=1.8.0" - } - }, - "node_modules/pretty-quick/node_modules/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, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "prettier": "^3.0.0" } }, - "node_modules/pretty-quick/node_modules/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, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-quick/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/pretty-quick/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "node_modules/pretty-quick/node_modules/execa": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", - "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" }, "engines": { - "node": "^8.12.0 || >=9.7.0" - } - }, - "node_modules/pretty-quick/node_modules/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, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "node": ">=10" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/pretty-quick/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "node_modules/pretty-quick/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-quick/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" + "node": ">=10" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pretty-quick/node_modules/npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "node_modules/pretty-quick/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10.17.0" } }, - "node_modules/pretty-quick/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/pretty-quick/node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-quick/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pretty-quick/node_modules/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, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } + "node_modules/pretty-quick/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true }, "node_modules/process-nextick-args": { "version": "2.0.1", @@ -17198,6 +17389,15 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -17786,10 +17986,13 @@ } }, "node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" }, @@ -19490,15 +19693,6 @@ "os-name": "^3.1.0" } }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -20450,70 +20644,171 @@ } }, "@commitlint/cli": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-11.0.0.tgz", - "integrity": "sha512-YWZWg1DuqqO5Zjh7vUOeSX76vm0FFyz4y0cpGMFhrhvUi5unc4IVfCXZ6337R9zxuBtmveiRuuhQqnRRer+13g==", - "dev": true, - "requires": { - "@babel/runtime": "^7.11.2", - "@commitlint/format": "^11.0.0", - "@commitlint/lint": "^11.0.0", - "@commitlint/load": "^11.0.0", - "@commitlint/read": "^11.0.0", - "chalk": "4.1.0", - "core-js": "^3.6.1", - "get-stdin": "8.0.0", - "lodash": "^4.17.19", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-18.6.1.tgz", + "integrity": "sha512-5IDE0a+lWGdkOvKH892HHAZgbAjcj1mT5QrfA/SVbLJV/BbBMGyKN0W5mhgjekPJJwEQdVNvhl9PwUacY58Usw==", + "dev": true, + "requires": { + "@commitlint/format": "^18.6.1", + "@commitlint/lint": "^18.6.1", + "@commitlint/load": "^18.6.1", + "@commitlint/read": "^18.6.1", + "@commitlint/types": "^18.6.1", + "execa": "^5.0.0", + "lodash.isfunction": "^3.0.9", "resolve-from": "5.0.0", "resolve-global": "1.0.0", - "yargs": "^15.1.0" + "yargs": "^17.0.0" }, "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "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" } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true } } }, "@commitlint/config-conventional": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-11.0.0.tgz", - "integrity": "sha512-SNDRsb5gLuDd2PL83yCOQX6pE7gevC79UPFx+GLbLfw6jGnnbO9/tlL76MLD8MOViqGbo7ZicjChO9Gn+7tHhA==", + "version": "18.6.2", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-18.6.2.tgz", + "integrity": "sha512-PcgSYg1AKGQIwDQKbaHtJsfqYy4uJTC7crLVZ83lfjcPaec4Pry2vLeaWej7ao2KsT20l9dWoMPpEGg8LWdUuA==", "dev": true, "requires": { - "conventional-changelog-conventionalcommits": "^4.3.1" + "@commitlint/types": "^18.6.1", + "conventional-changelog-conventionalcommits": "^7.0.2" + } + }, + "@commitlint/config-validator": { + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-18.6.1.tgz", + "integrity": "sha512-05uiToBVfPhepcQWE1ZQBR/Io3+tb3gEotZjnI4tTzzPk16NffN6YABgwFQCLmzZefbDcmwWqJWc2XT47q7Znw==", + "dev": true, + "requires": { + "@commitlint/types": "^18.6.1", + "ajv": "^8.11.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "@commitlint/ensure": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-11.0.0.tgz", - "integrity": "sha512-/T4tjseSwlirKZdnx4AuICMNNlFvRyPQimbZIOYujp9DSO6XRtOy9NrmvWujwHsq9F5Wb80QWi4WMW6HMaENug==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-18.6.1.tgz", + "integrity": "sha512-BPm6+SspyxQ7ZTsZwXc7TRQL5kh5YWt3euKmEIBZnocMFkJevqs3fbLRb8+8I/cfbVcAo4mxRlpTPfz8zX7SnQ==", "dev": true, "requires": { - "@commitlint/types": "^11.0.0", - "lodash": "^4.17.19" + "@commitlint/types": "^18.6.1", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" } }, "@commitlint/execute-rule": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-11.0.0.tgz", - "integrity": "sha512-g01p1g4BmYlZ2+tdotCavrMunnPFPhTzG1ZiLKTCYrooHRbmvqo42ZZn4QMStUEIcn+jfLb6BRZX3JzIwA1ezQ==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-18.6.1.tgz", + "integrity": "sha512-7s37a+iWyJiGUeMFF6qBlyZciUkF8odSAnHijbD36YDctLhGKoYltdvuJ/AFfRm6cBLRtRk9cCVPdsEFtt/2rg==", "dev": true }, "@commitlint/format": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-11.0.0.tgz", - "integrity": "sha512-bpBLWmG0wfZH/svzqD1hsGTpm79TKJWcf6EXZllh2J/LSSYKxGlv967lpw0hNojme0sZd4a/97R3qA2QHWWSLg==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-18.6.1.tgz", + "integrity": "sha512-K8mNcfU/JEFCharj2xVjxGSF+My+FbUHoqR+4GqPGrHNqXOGNio47ziiR4HQUPKtiNs05o8/WyLBoIpMVOP7wg==", "dev": true, "requires": { - "@commitlint/types": "^11.0.0", - "chalk": "^4.0.0" + "@commitlint/types": "^18.6.1", + "chalk": "^4.1.0" }, "dependencies": { "chalk": { @@ -20529,42 +20824,52 @@ } }, "@commitlint/is-ignored": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-11.0.0.tgz", - "integrity": "sha512-VLHOUBN+sOlkYC4tGuzE41yNPO2w09sQnOpfS+pSPnBFkNUUHawEuA44PLHtDvQgVuYrMAmSWFQpWabMoP5/Xg==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-18.6.1.tgz", + "integrity": "sha512-MOfJjkEJj/wOaPBw5jFjTtfnx72RGwqYIROABudOtJKW7isVjFe9j0t8xhceA02QebtYf4P/zea4HIwnXg8rvA==", "dev": true, "requires": { - "@commitlint/types": "^11.0.0", - "semver": "7.3.2" + "@commitlint/types": "^18.6.1", + "semver": "7.6.0" } }, "@commitlint/lint": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-11.0.0.tgz", - "integrity": "sha512-Q8IIqGIHfwKr8ecVZyYh6NtXFmKw4YSEWEr2GJTB/fTZXgaOGtGFZDWOesCZllQ63f1s/oWJYtVv5RAEuwN8BQ==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-18.6.1.tgz", + "integrity": "sha512-8WwIFo3jAuU+h1PkYe5SfnIOzp+TtBHpFr4S8oJWhu44IWKuVx6GOPux3+9H1iHOan/rGBaiacicZkMZuluhfQ==", "dev": true, "requires": { - "@commitlint/is-ignored": "^11.0.0", - "@commitlint/parse": "^11.0.0", - "@commitlint/rules": "^11.0.0", - "@commitlint/types": "^11.0.0" + "@commitlint/is-ignored": "^18.6.1", + "@commitlint/parse": "^18.6.1", + "@commitlint/rules": "^18.6.1", + "@commitlint/types": "^18.6.1" } }, "@commitlint/load": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-11.0.0.tgz", - "integrity": "sha512-t5ZBrtgvgCwPfxmG811FCp39/o3SJ7L+SNsxFL92OR4WQxPcu6c8taD0CG2lzOHGuRyuMxZ7ps3EbngT2WpiCg==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-18.6.1.tgz", + "integrity": "sha512-p26x8734tSXUHoAw0ERIiHyW4RaI4Bj99D8YgUlVV9SedLf8hlWAfyIFhHRIhfPngLlCe0QYOdRKYFt8gy56TA==", "dev": true, "requires": { - "@commitlint/execute-rule": "^11.0.0", - "@commitlint/resolve-extends": "^11.0.0", - "@commitlint/types": "^11.0.0", - "chalk": "4.1.0", - "cosmiconfig": "^7.0.0", - "lodash": "^4.17.19", + "@commitlint/config-validator": "^18.6.1", + "@commitlint/execute-rule": "^18.6.1", + "@commitlint/resolve-extends": "^18.6.1", + "@commitlint/types": "^18.6.1", + "chalk": "^4.1.0", + "cosmiconfig": "^8.3.6", + "cosmiconfig-typescript-loader": "^5.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", "resolve-from": "^5.0.0" }, "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", @@ -20576,91 +20881,224 @@ } }, "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "requires": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + } + }, + "cosmiconfig-typescript-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz", + "integrity": "sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==", + "dev": true, + "requires": { + "jiti": "^1.19.1" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "argparse": "^2.0.1" } + }, + "typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "peer": true } } }, "@commitlint/message": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-11.0.0.tgz", - "integrity": "sha512-01ObK/18JL7PEIE3dBRtoMmU6S3ecPYDTQWWhcO+ErA3Ai0KDYqV5VWWEijdcVafNpdeUNrEMigRkxXHQLbyJA==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-18.6.1.tgz", + "integrity": "sha512-VKC10UTMLcpVjMIaHHsY1KwhuTQtdIKPkIdVEwWV+YuzKkzhlI3aNy6oo1eAN6b/D2LTtZkJe2enHmX0corYRw==", "dev": true }, "@commitlint/parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-11.0.0.tgz", - "integrity": "sha512-DekKQAIYWAXIcyAZ6/PDBJylWJ1BROTfDIzr9PMVxZRxBPc1gW2TG8fLgjZfBP5mc0cuthPkVi91KQQKGri/7A==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-18.6.1.tgz", + "integrity": "sha512-eS/3GREtvVJqGZrwAGRwR9Gdno3YcZ6Xvuaa+vUF8j++wsmxrA2En3n0ccfVO2qVOLJC41ni7jSZhQiJpMPGOQ==", "dev": true, "requires": { - "conventional-changelog-angular": "^5.0.0", - "conventional-commits-parser": "^3.0.0" + "@commitlint/types": "^18.6.1", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-parser": "^5.0.0" + }, + "dependencies": { + "conventional-changelog-angular": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "dev": true, + "requires": { + "compare-func": "^2.0.0" + } + }, + "conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "dev": true, + "requires": { + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" + } + }, + "is-text-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", + "dev": true, + "requires": { + "text-extensions": "^2.0.0" + } + }, + "meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true + }, + "split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true + }, + "text-extensions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", + "dev": true + } } }, "@commitlint/read": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-11.0.0.tgz", - "integrity": "sha512-37V0V91GSv0aDzMzJioKpCoZw6l0shk7+tRG8RkW1GfZzUIytdg3XqJmM+IaIYpaop0m6BbZtfq+idzUwJnw7g==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-18.6.1.tgz", + "integrity": "sha512-ia6ODaQFzXrVul07ffSgbZGFajpe8xhnDeLIprLeyfz3ivQU1dIoHp7yz0QIorZ6yuf4nlzg4ZUkluDrGN/J/w==", "dev": true, "requires": { - "@commitlint/top-level": "^11.0.0", - "fs-extra": "^9.0.0", - "git-raw-commits": "^2.0.0" + "@commitlint/top-level": "^18.6.1", + "@commitlint/types": "^18.6.1", + "git-raw-commits": "^2.0.11", + "minimist": "^1.2.6" + }, + "dependencies": { + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + } } }, "@commitlint/resolve-extends": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-11.0.0.tgz", - "integrity": "sha512-WinU6Uv6L7HDGLqn/To13KM1CWvZ09VHZqryqxXa1OY+EvJkfU734CwnOEeNlSCK7FVLrB4kmodLJtL1dkEpXw==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-18.6.1.tgz", + "integrity": "sha512-ifRAQtHwK+Gj3Bxj/5chhc4L2LIc3s30lpsyW67yyjsETR6ctHAHRu1FSpt0KqahK5xESqoJ92v6XxoDRtjwEQ==", "dev": true, "requires": { + "@commitlint/config-validator": "^18.6.1", + "@commitlint/types": "^18.6.1", "import-fresh": "^3.0.0", - "lodash": "^4.17.19", + "lodash.mergewith": "^4.6.2", "resolve-from": "^5.0.0", "resolve-global": "^1.0.0" } }, "@commitlint/rules": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-11.0.0.tgz", - "integrity": "sha512-2hD9y9Ep5ZfoNxDDPkQadd2jJeocrwC4vJ98I0g8pNYn/W8hS9+/FuNpolREHN8PhmexXbkjrwyQrWbuC0DVaA==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-18.6.1.tgz", + "integrity": "sha512-kguM6HxZDtz60v/zQYOe0voAtTdGybWXefA1iidjWYmyUUspO1zBPQEmJZ05/plIAqCVyNUTAiRPWIBKLCrGew==", "dev": true, "requires": { - "@commitlint/ensure": "^11.0.0", - "@commitlint/message": "^11.0.0", - "@commitlint/to-lines": "^11.0.0", - "@commitlint/types": "^11.0.0" + "@commitlint/ensure": "^18.6.1", + "@commitlint/message": "^18.6.1", + "@commitlint/to-lines": "^18.6.1", + "@commitlint/types": "^18.6.1", + "execa": "^5.0.0" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + } } }, "@commitlint/to-lines": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-11.0.0.tgz", - "integrity": "sha512-TIDTB0Y23jlCNubDROUVokbJk6860idYB5cZkLWcRS9tlb6YSoeLn1NLafPlrhhkkkZzTYnlKYzCVrBNVes1iw==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-18.6.1.tgz", + "integrity": "sha512-Gl+orGBxYSNphx1+83GYeNy5N0dQsHBQ9PJMriaLQDB51UQHCVLBT/HBdOx5VaYksivSf5Os55TLePbRLlW50Q==", "dev": true }, "@commitlint/top-level": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-11.0.0.tgz", - "integrity": "sha512-O0nFU8o+Ws+py5pfMQIuyxOtfR/kwtr5ybqTvR+C2lUPer2x6lnQU+OnfD7hPM+A+COIUZWx10mYQvkR3MmtAA==", + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-18.6.1.tgz", + "integrity": "sha512-HyiHQZUTf0+r0goTCDs/bbVv/LiiQ7AVtz6KIar+8ZrseB9+YJAIo8HQ2IC2QT1y3N1lbW6OqVEsTHjbT6hGSw==", "dev": true, "requires": { "find-up": "^5.0.0" } }, "@commitlint/types": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-11.0.0.tgz", - "integrity": "sha512-VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ==", - "dev": true + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-18.6.1.tgz", + "integrity": "sha512-gwRLBLra/Dozj2OywopeuHj2ac26gjGkz2cZ+86cTJOdtWfiRRr4+e77ZDAGc6MDWxaWheI+mAV5TLWWRwqrFg==", + "dev": true, + "requires": { + "chalk": "^4.1.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } }, "@jest/console": { "version": "24.9.0", @@ -22246,12 +22684,6 @@ "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true - }, "array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", @@ -22327,12 +22759,6 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -23389,14 +23815,12 @@ } }, "conventional-changelog-conventionalcommits": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", - "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", + "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", "dev": true, "requires": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" + "compare-func": "^2.0.0" } }, "conventional-changelog-writer": { @@ -23570,12 +23994,6 @@ } } }, - "core-js": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.0.tgz", - "integrity": "sha512-YUdI3fFu4TF/2WykQ2xzSiTQdldLB4KVuL9WeAy5XONZYt5Cun/fpQvctoKbCgvPhmzADeesTk/j2Rdx77AcKQ==", - "dev": true - }, "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -24636,18 +25054,6 @@ } } }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -24693,12 +25099,6 @@ "has-symbols": "^1.0.1" } }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true - }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -25394,9 +25794,9 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true }, "import-conductor": { @@ -27970,6 +28370,12 @@ } } }, + "jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -28092,16 +28498,6 @@ "minimist": "^1.2.5" } }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -28243,6 +28639,12 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, + "lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "dev": true + }, "lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", @@ -28278,6 +28680,18 @@ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true + }, "lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", @@ -28295,6 +28709,12 @@ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, + "lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -28307,6 +28727,12 @@ "integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=", "dev": true }, + "lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true + }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -28655,27 +29081,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", - "dev": true, - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - } - } - }, "mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", @@ -28836,17 +29241,6 @@ "is-core-module": "^2.5.0", "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "normalize-path": { @@ -30675,8 +31069,7 @@ }, "lodash._baseindexof": { "version": "3.1.0", - "bundled": true, - "dev": true + "bundled": true }, "lodash._baseuniq": { "version": "4.6.0", @@ -30689,18 +31082,15 @@ }, "lodash._bindcallback": { "version": "3.0.1", - "bundled": true, - "dev": true + "bundled": true }, "lodash._cacheindexof": { "version": "3.0.2", - "bundled": true, - "dev": true + "bundled": true }, "lodash._createcache": { "version": "3.1.2", "bundled": true, - "dev": true, "requires": { "lodash._getnative": "^3.0.0" } @@ -30712,8 +31102,7 @@ }, "lodash._getnative": { "version": "3.9.1", - "bundled": true, - "dev": true + "bundled": true }, "lodash._root": { "version": "3.0.1", @@ -30727,8 +31116,7 @@ }, "lodash.restparam": { "version": "3.6.1", - "bundled": true, - "dev": true + "bundled": true }, "lodash.union": { "version": "4.6.0", @@ -33013,9 +33401,9 @@ "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==" + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==" }, "pretty-format": { "version": "24.9.0", @@ -33056,131 +33444,60 @@ } }, "pretty-quick": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.2.tgz", - "integrity": "sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-4.0.0.tgz", + "integrity": "sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==", "dev": true, "requires": { - "chalk": "^2.4.2", - "execa": "^2.1.0", - "find-up": "^4.1.0", - "ignore": "^5.1.4", - "mri": "^1.1.4", - "multimatch": "^4.0.0" + "execa": "^5.1.1", + "find-up": "^5.0.0", + "ignore": "^5.3.0", + "mri": "^1.2.0", + "picocolors": "^1.0.0", + "picomatch": "^3.0.1", + "tslib": "^2.6.2" }, "dependencies": { - "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" - } - }, - "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" - } - }, - "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==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "execa": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", - "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, - "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" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, - "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" - } - }, - "npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", - "dev": true, - "requires": { - "path-key": "^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" - } + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true }, - "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" - } + "picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "dev": true }, - "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" - } + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true } } }, @@ -33571,6 +33888,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -34022,10 +34345,13 @@ } }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } }, "semver-compare": { "version": "1.0.0", @@ -35357,12 +35683,6 @@ "os-name": "^3.1.0" } }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", diff --git a/package.json b/package.json index fcd2d2e..0663a3d 100644 --- a/package.json +++ b/package.json @@ -97,13 +97,13 @@ "lodash.kebabcase": "^4.1.1", "lodash.snakecase": "^4.1.1", "ora": "^5.1.0", - "prettier": "^1.19.1", + "prettier": "^3.2.5", "svgo": "^3.0.2", "typescript": "^4.9.4" }, "devDependencies": { - "@commitlint/cli": "^11.0.0", - "@commitlint/config-conventional": "^11.0.0", + "@commitlint/cli": "^18.6.1", + "@commitlint/config-conventional": "^18.6.2", "@semantic-release/changelog": "^3.0.1", "@semantic-release/exec": "^3.3.2", "@semantic-release/git": "^7.0.6", @@ -116,7 +116,7 @@ "husky": "^3.1.0", "import-conductor": "^2.0.3", "jest": "^24.9.0", - "pretty-quick": "^2.0.1", + "pretty-quick": "^4.0.0", "replace-json-property": "^1.4.1", "semantic-release": "^15.13.31", "ts-jest": "^24.2.0", diff --git a/src/lib/compiler/typescript-compiler.ts b/src/lib/compiler/typescript-compiler.ts index 2478779..24a9071 100644 --- a/src/lib/compiler/typescript-compiler.ts +++ b/src/lib/compiler/typescript-compiler.ts @@ -8,7 +8,7 @@ export const compileToEsNext = (filePaths: string[], outputDir: string): void => outDir: outputDir, moduleResolution: ts.ModuleResolutionKind.NodeJs, target: ts.ScriptTarget.ES2020, - module: ts.ModuleKind.ESNext + module: ts.ModuleKind.ESNext, }; ts.createProgram(filePaths, compilerOptionsNext).emit(); @@ -23,7 +23,7 @@ export const addMJsExtensionToImportStatements = (outputDir: string): void => { return; } - children.forEach(file => { + children.forEach((file) => { const path = `${outputDir}/${file}`; if (lstatSync(path).isDirectory()) { addMJsExtensionToImportStatements(path); @@ -46,7 +46,7 @@ export const renameJsFilesToMJs = (outputDir: string) => { return; } - children.forEach(file => { + children.forEach((file) => { const path = `${outputDir}/${file}`; if (lstatSync(path).isDirectory()) { renameJsFilesToMJs(path); @@ -64,7 +64,7 @@ export const compileToUMD = (filePaths: string[], outputDir: string): void => { outDir: outputDir, moduleResolution: ts.ModuleResolutionKind.NodeJs, target: ts.ScriptTarget.ES2020, - module: ts.ModuleKind.UMD + module: ts.ModuleKind.UMD, }; ts.createProgram(filePaths, compilerOptionsUMD).emit(); }; diff --git a/src/lib/converters/constants.converter.ts b/src/lib/converters/constants.converter.ts index e03f614..3b3491e 100644 --- a/src/lib/converters/constants.converter.ts +++ b/src/lib/converters/constants.converter.ts @@ -4,7 +4,7 @@ import { generateSvgConstant, generateTSXConstant, generateTypeDefinition, - generateTypeHelper + generateTypeHelper, } from '../generators/code-snippet-generators'; import { generateExportSection } from '../helpers/complete-icon-set.helper'; import { writeFile } from '../helpers/file-helpers'; @@ -20,7 +20,7 @@ export async function convertToConstants(conversionOptions: ConstantsConversionO const svgDefinitions = await callAndMonitorAsync( filesProcessor.bind({}, conversionOptions), - 'Processing SVG files' + 'Processing SVG files', ); if (!svgDefinitions.length) { @@ -43,7 +43,7 @@ async function convertToTSConstants(conversionOptions: ConstantsConversionOption exportCompleteIconSet, completeIconSetName, generateType, - generateEnum + generateEnum, } = conversionOptions; let exportAllStatement = ''; @@ -52,13 +52,13 @@ async function convertToTSConstants(conversionOptions: ConstantsConversionOption const typeDefinition = generateType ? callAndMonitor( generateTypeDefinition.bind({}, conversionOptions, svgDefinitions), - 'Generate type definitions' + 'Generate type definitions', ) : ''; const interfaceDefinition = callAndMonitor( generateInterfaceDefinition.bind({}, conversionOptions), - 'Generate Interface Definition' + 'Generate Interface Definition', ); const enumDefinition = generateEnum @@ -68,7 +68,7 @@ async function convertToTSConstants(conversionOptions: ConstantsConversionOption if (exportCompleteIconSet) { exportAllStatement = callAndMonitor( generateExportSection.bind({}, svgDefinitions, completeIconSetName), - 'Exporting all constants' + 'Exporting all constants', ); } @@ -76,7 +76,7 @@ async function convertToTSConstants(conversionOptions: ConstantsConversionOption const fileContent = `${svgContants}${typeDefinition}${enumDefinition}${interfaceDefinition}${typeHelper}${exportAllStatement}`; await callAndMonitorAsync( writeFile.bind({}, outputDirectory, fileName, fileContent), - `Writing files to ${outputDirectory}` + `Writing files to ${outputDirectory}`, ); Logger.generationSuccess(outputDirectory); } @@ -90,7 +90,7 @@ async function convertToTSXConstants(conversionOptions: ConstantsConversionOptio if (exportCompleteIconSet) { exportAllStatement = callAndMonitor( generateExportSection.bind({}, svgDefinitions, completeIconSetName, FILE_TYPE.TSX), - 'Exporting all TSX constants as ${completeIconSetName}' + 'Exporting all TSX constants as ${completeIconSetName}', ); } @@ -98,21 +98,21 @@ async function convertToTSXConstants(conversionOptions: ConstantsConversionOptio await callAndMonitorAsync( writeFile.bind({}, outputDirectory, fileName, fileContent, FILE_TYPE.TSX), - `Writing files to ${outputDirectory}` + `Writing files to ${outputDirectory}`, ); Logger.generationSuccess(outputDirectory); } function getTSConstants(svgDefinitions): string { - const svgConstants = svgDefinitions.map(svgDefinition => - generateSvgConstant(svgDefinition.variableName, svgDefinition.typeName, svgDefinition.data) + const svgConstants = svgDefinitions.map((svgDefinition) => + generateSvgConstant(svgDefinition.variableName, svgDefinition.typeName, svgDefinition.data), ); return svgConstants.join(''); } function getTSXConstants(svgDefinitions): string { - const tsxConstants = svgDefinitions.map(svgDefinition => - generateTSXConstant(svgDefinition.variableName, svgDefinition.data) + const tsxConstants = svgDefinitions.map((svgDefinition) => + generateTSXConstant(svgDefinition.variableName, svgDefinition.data), ); return tsxConstants.join(''); } diff --git a/src/lib/converters/files.converter.ts b/src/lib/converters/files.converter.ts index 6f6512b..61af9fc 100644 --- a/src/lib/converters/files.converter.ts +++ b/src/lib/converters/files.converter.ts @@ -6,7 +6,7 @@ import { generateSvgConstant, generateTypeDefinition, generateTypeHelperWithImport, - generateTSXConstant + generateTSXConstant, } from '../generators/code-snippet-generators'; import { generateCompleteIconSetContent } from '../helpers/complete-icon-set.helper'; import { deleteFiles, deleteFolder, writeFile } from '../helpers/file-helpers'; @@ -15,7 +15,7 @@ import { callAndMonitor, callAndMonitorAsync } from '../helpers/monitor'; import { getFilePathsFromRegex } from '../helpers/regex-helpers'; import { FilesConversionOptions, - SVG_TO_TS_COMPILATION_OUTPUT + SVG_TO_TS_COMPILATION_OUTPUT, } from '../options/conversion-options/files-conversion-options'; import { FILE_TYPE } from '../shared/file-type.model'; @@ -39,17 +39,17 @@ async function generateTSXFiles(conversionOptions: FilesConversionOptions) { barrelFileName, interfaceName, generateType, - modelFileName + modelFileName, } = conversionOptions; const svgDefinitions = await callAndMonitorAsync( filesProcessor.bind({}, conversionOptions), - 'Processing SVG files' + 'Processing SVG files', ); const generatedFileNames = await callAndMonitorAsync( generateTSXFileConstants.bind({}, svgDefinitions, outputDirectory, iconsFolderName), - 'Generate TSX constants' + 'Generate TSX constants', ); if (exportCompleteIconSet) { @@ -62,9 +62,9 @@ async function generateTSXFiles(conversionOptions: FilesConversionOptions) { completeIconSetName, interfaceName, generateType, - modelFileName + modelFileName, ), - 'Export complete icon set' + 'Export complete icon set', ); generatedFileNames.push(completeIconSetName); } @@ -75,7 +75,7 @@ async function generateTSXFiles(conversionOptions: FilesConversionOptions) { await callAndMonitorAsync( writeFile.bind({}, outputDirectory, barrelFileName, indexFileContent), - 'Generate barrel file' + 'Generate barrel file', ); Logger.generationSuccess(outputDirectory); @@ -93,20 +93,20 @@ async function generateTSFiles(conversionOptions: FilesConversionOptions) { completeIconSetName, compilationOutput, barrelFileName, - generateType + generateType, } = conversionOptions; await callAndMonitorAsync( deleteFolder.bind({}, `${outputDirectory}/${iconsFolderName}`), - 'Deleting the output folder' + 'Deleting the output folder', ); const svgDefinitions = await callAndMonitorAsync( filesProcessor.bind({}, conversionOptions), - 'Processing SVG files' + 'Processing SVG files', ); const generatedFileNames = await callAndMonitorAsync( generateSVGConstants.bind({}, svgDefinitions, outputDirectory, iconsFolderName), - 'Generate SVG constants' + 'Generate SVG constants', ); if (exportCompleteIconSet) { @@ -119,16 +119,16 @@ async function generateTSFiles(conversionOptions: FilesConversionOptions) { completeIconSetName, interfaceName, modelFileName, - generateType + generateType, ), - 'Export complete icon set' + 'Export complete icon set', ); generatedFileNames.push(completeIconSetName); } let indexFileContent = callAndMonitor( generateTypeHelperWithImport.bind({}, interfaceName, iconsFolderName, modelFileName), - 'Generate Type Helper' + 'Generate Type Helper', ); indexFileContent += generatedFileNames @@ -138,19 +138,19 @@ async function generateTSFiles(conversionOptions: FilesConversionOptions) { indexFileContent += generateExportStatement(modelFileName, iconsFolderName); await callAndMonitorAsync( writeFile.bind({}, outputDirectory, barrelFileName, indexFileContent), - 'Generate barrel file' + 'Generate barrel file', ); if (modelFileName) { const modelFile = await callAndMonitorAsync( generateModelFile.bind({}, conversionOptions, svgDefinitions), - 'Generate model file' + 'Generate model file', ); if (additionalModelOutputPath) { await callAndMonitorAsync( writeFile.bind({}, `${additionalModelOutputPath}`, modelFileName, modelFile), - 'Write model file to additional output path' + 'Write model file to additional output path', ); } } @@ -158,7 +158,7 @@ async function generateTSFiles(conversionOptions: FilesConversionOptions) { if (compileSources) { await callAndMonitorAsync( compileTypeScriptToJS.bind({}, outputDirectory, iconsFolderName, barrelFileName, compilationOutput), - 'Compile TypeScript to JavaScript' + 'Compile TypeScript to JavaScript', ); } Logger.generationSuccess(outputDirectory); @@ -167,17 +167,17 @@ async function generateTSFiles(conversionOptions: FilesConversionOptions) { const generateSVGConstants = async ( svgDefinitions: SvgDefinition[], outputDirectory: string, - iconsFolderName: string + iconsFolderName: string, ): Promise => { const generatedFileNames: string[] = []; await Promise.all( - svgDefinitions.map(async svgDefinition => { + svgDefinitions.map(async (svgDefinition) => { const svgConstant = generateSvgConstant(svgDefinition.variableName, svgDefinition.typeName, svgDefinition.data); const generatedFileName = `${svgDefinition.prefix}-${svgDefinition.filenameWithoutEnding}.icon`; generatedFileNames.push(generatedFileName); await writeFile(`${outputDirectory}/${iconsFolderName}`, generatedFileName, svgConstant); Logger.verboseInfo(`write file svg: ${outputDirectory}/${iconsFolderName}/${generatedFileName}.ts`); - }) + }), ); return generatedFileNames; }; @@ -185,17 +185,17 @@ const generateSVGConstants = async ( const generateTSXFileConstants = async ( svgDefinitions: SvgDefinition[], outputDirectory: string, - iconsFolderName: string + iconsFolderName: string, ): Promise => { const generatedFileNames: string[] = []; await Promise.all( - svgDefinitions.map(async svgDefinition => { + svgDefinitions.map(async (svgDefinition) => { const tsxConstant = generateTSXConstant(svgDefinition.variableName, svgDefinition.data); const generatedFileName = `${svgDefinition.prefix}-${svgDefinition.filenameWithoutEnding}.icon`; generatedFileNames.push(generatedFileName); await writeFile(`${outputDirectory}/${iconsFolderName}`, generatedFileName, tsxConstant, FILE_TYPE.TSX); Logger.verboseInfo(`write file svg: ${outputDirectory}/${iconsFolderName}/${generatedFileName}.tsx`); - }) + }), ); return generatedFileNames; }; @@ -207,21 +207,21 @@ const generateCompleteIconSet = async ( completeIconSetName: string, interfaceName?: string, modelFileName?: string, - generateType?: boolean + generateType?: boolean, ): Promise => { const completeIconSetContent = generateCompleteIconSetContent( svgDefinitions, completeIconSetName, interfaceName, modelFileName, - generateType + generateType, ); await writeFile(`${outputDirectory}/${iconsFolderName}`, completeIconSetName, completeIconSetContent); }; const generateModelFile = async ( conversionOptions: FilesConversionOptions, - svgDefinitions: SvgDefinition[] + svgDefinitions: SvgDefinition[], ): Promise => { const { outputDirectory, modelFileName, additionalModelOutputPath, iconsFolderName } = conversionOptions; @@ -231,13 +231,13 @@ const generateModelFile = async ( const modelFile = `${typeDefinition}${interfaceDefinition}${enumDefinition}`; await writeFile(`${outputDirectory}/${iconsFolderName}`, modelFileName, modelFile); Logger.verboseInfo( - `model-file successfully generated under ${outputDirectory}/${iconsFolderName}/${modelFileName}.ts` + `model-file successfully generated under ${outputDirectory}/${iconsFolderName}/${modelFileName}.ts`, ); if (additionalModelOutputPath) { await writeFile(`${additionalModelOutputPath}`, modelFileName, modelFile); Logger.verboseInfo( - `additional model-file successfully generated under ${additionalModelOutputPath}/${modelFileName}.ts` + `additional model-file successfully generated under ${additionalModelOutputPath}/${modelFileName}.ts`, ); } return modelFile; @@ -247,11 +247,11 @@ const compileTypeScriptToJS = async ( outputDirectory: string, iconsFolderName: string, barrelFileName: string, - compilationOutput: SVG_TO_TS_COMPILATION_OUTPUT + compilationOutput: SVG_TO_TS_COMPILATION_OUTPUT, ): Promise => { const generatedTypeScriptFilePaths = await getFilePathsFromRegex([ `${outputDirectory}/${iconsFolderName}/*.ts`, - `${outputDirectory}/${barrelFileName}.ts` + `${outputDirectory}/${barrelFileName}.ts`, ]); switch (compilationOutput) { case SVG_TO_TS_COMPILATION_OUTPUT.ESM: diff --git a/src/lib/converters/object.converter.ts b/src/lib/converters/object.converter.ts index a3d876e..67dbc25 100644 --- a/src/lib/converters/object.converter.ts +++ b/src/lib/converters/object.converter.ts @@ -11,7 +11,7 @@ export async function convertToSingleObject(conversionOptions: ObjectConversionO const { tsx } = conversionOptions; const svgDefinitions = await callAndMonitorAsync( filesProcessor.bind({}, conversionOptions), - 'Processing SVG files' + 'Processing SVG files', ); if (tsx) { @@ -26,12 +26,12 @@ async function generateTSXFile(svgDefinitions: SvgDefinition[], conversionOption const fileContent = await callAndMonitorAsync( generateTSXObject.bind({}, svgDefinitions, objectName, conversionOptions), - 'Generate TSX Object' + 'Generate TSX Object', ); await callAndMonitorAsync( writeFile.bind({}, outputDirectory, fileName, `${fileContent}`, FILE_TYPE.TSX), - 'Write content to file' + 'Write content to file', ); Logger.generationSuccess(outputDirectory); } @@ -41,17 +41,17 @@ async function generateTSFile(svgDefinitions: SvgDefinition[], conversionOptions const fileContent = await callAndMonitorAsync( generateTSObject.bind({}, svgDefinitions, objectName, conversionOptions), - 'Generate SVG Object' + 'Generate SVG Object', ); const typeDefinition = callAndMonitor( generateTypeDefinition.bind({}, conversionOptions, svgDefinitions), - 'Generate type definitions' + 'Generate type definitions', ); await callAndMonitorAsync( writeFile.bind({}, outputDirectory, fileName, `${fileContent}${typeDefinition}`), - 'Write content to file' + 'Write content to file', ); Logger.generationSuccess(outputDirectory); } @@ -59,7 +59,7 @@ async function generateTSFile(svgDefinitions: SvgDefinition[], conversionOptions async function generateTSObject( svgDefinitions: SvgDefinition[], objectName: string, - conversionOptions: ObjectConversionOptions + conversionOptions: ObjectConversionOptions, ): Promise { const svgObject = {}; svgDefinitions.forEach((svgDefinition: SvgDefinition) => (svgObject[svgDefinition.typeName] = svgDefinition.data)); diff --git a/src/lib/converters/shared.converter.ts b/src/lib/converters/shared.converter.ts index 5d93e2d..7626595 100644 --- a/src/lib/converters/shared.converter.ts +++ b/src/lib/converters/shared.converter.ts @@ -25,31 +25,29 @@ export const filesProcessor = async (conversionOptions): Promise => { - let svgDefinition: SvgDefinition = null; - const fileNameWithEnding = path.basename(filePath).replace(`'`, ''); - const [filenameWithoutEnding, extension] = fileNameWithEnding.split('.'); - if (extension === 'svg') { - const rawSvg = await extractSvgContent(filePath); - Logger.verboseInfo(`optimize svg: ${fileNameWithEnding}`); - const optimizedSvg = await optimize(rawSvg, { path: filePath, ...svgoConfig }); - const variableName = generateVariableName(prefix, filenameWithoutEnding); + filePaths.map(async (filePath): Promise => { + let svgDefinition: SvgDefinition = null; + const fileNameWithEnding = path.basename(filePath).replace(`'`, ''); + const [filenameWithoutEnding, extension] = fileNameWithEnding.split('.'); + if (extension === 'svg') { + const rawSvg = await extractSvgContent(filePath); + Logger.verboseInfo(`optimize svg: ${fileNameWithEnding}`); + const optimizedSvg = await optimize(rawSvg, { path: filePath, ...svgoConfig }); + const variableName = generateVariableName(prefix, filenameWithoutEnding); - const typeName = generateTypeName(filenameWithoutEnding, delimiter, namePrefix); + const typeName = generateTypeName(filenameWithoutEnding, delimiter, namePrefix); - svgDefinition = { - typeName, - prefix, - variableName, - interfaceName, - data: optimizedSvg.data, - filenameWithoutEnding - }; - } - return svgDefinition; + svgDefinition = { + typeName, + prefix, + variableName, + interfaceName, + data: optimizedSvg.data, + filenameWithoutEnding, + }; } - ) + return svgDefinition; + }), ); - return svgDefinitions.filter(svgDefinition => svgDefinition); + return svgDefinitions.filter((svgDefinition) => svgDefinition); }; diff --git a/src/lib/generators/code-snippet-generators.spec.ts b/src/lib/generators/code-snippet-generators.spec.ts index de9c18b..3f8a830 100644 --- a/src/lib/generators/code-snippet-generators.spec.ts +++ b/src/lib/generators/code-snippet-generators.spec.ts @@ -16,7 +16,7 @@ import { generateTypeHelper, generateTypeHelperWithImport, generateTypeName, - generateVariableName + generateVariableName, } from './code-snippet-generators'; describe('Generators', () => { @@ -25,7 +25,7 @@ describe('Generators', () => { const options = { generateType: true, typeName: 'AppIcons', - interfaceName: 'IconInterface' + interfaceName: 'IconInterface', } as ConstantsConversionOptions; const expected = `export interface ${options.interfaceName}{ name: ${options.typeName}; @@ -37,7 +37,7 @@ describe('Generators', () => { const options = { generateTypeObject: true, typeName: 'AppIcons', - interfaceName: 'IconInterface' + interfaceName: 'IconInterface', } as ConstantsConversionOptions; const expected = `export interface ${options.interfaceName}{ name: AppIcons; @@ -59,7 +59,7 @@ describe('Generators', () => { generateEnum: true, typeName: 'AppIcons', enumName: 'AppIconsEnum', - interfaceName: 'IconInterface' + interfaceName: 'IconInterface', } as ConstantsConversionOptions; const expected = `export interface ${options.interfaceName}{ name: ${options.enumName}; @@ -72,19 +72,19 @@ describe('Generators', () => { it('should create type definition', () => { const options = { generateType: true, typeName: 'AppIcons' } as ConstantsConversionOptions; const types = ['alert', 'noResults']; - const svgDefinitions = types.map(typeName => ({ typeName })) as SvgDefinition[]; + const svgDefinitions = types.map((typeName) => ({ typeName })) as SvgDefinition[]; const expected = ` - export type ${options.typeName} = ${types.map(v => `'${v}'`).join(' | ')};`; + export type ${options.typeName} = ${types.map((v) => `'${v}'`).join(' | ')};`; expect(generateTypeDefinition(options, svgDefinitions)).toEqual(expected); }); it('should create type definition object', () => { const options = { generateTypeObject: true, typeName: 'AppIcons' } as ConstantsConversionOptions; const types = ['alert', 'noResults']; - const svgDefinitions = types.map(typeName => ({ typeName })) as SvgDefinition[]; + const svgDefinitions = types.map((typeName) => ({ typeName })) as SvgDefinition[]; const expected = ` export const ${options.typeName} = { - ${types.map(v => `'${v}': '${v}'`).join(',')} + ${types.map((v) => `'${v}': '${v}'`).join(',')} };`; expect(generateTypeDefinition(options, svgDefinitions)).toEqual(expected); }); @@ -93,15 +93,15 @@ describe('Generators', () => { const options = { generateType: true, generateTypeObject: true, - typeName: 'AppIcons' + typeName: 'AppIcons', } as ConstantsConversionOptions; const types = ['alert', 'noResults']; - const svgDefinitions = types.map(typeName => ({ typeName })) as SvgDefinition[]; + const svgDefinitions = types.map((typeName) => ({ typeName })) as SvgDefinition[]; let expected = ` - export type ${options.typeName} = ${types.map(v => `'${v}'`).join(' | ')};`; + export type ${options.typeName} = ${types.map((v) => `'${v}'`).join(' | ')};`; expected += ` export const ${options.typeName} = { - ${types.map(v => `'${v}': '${v}' as ${options.typeName}`).join(',')} + ${types.map((v) => `'${v}': '${v}' as ${options.typeName}`).join(',')} };`; expect(generateTypeDefinition(options, svgDefinitions)).toEqual(expected); }); @@ -111,14 +111,14 @@ describe('Generators', () => { it('should create enum definition', () => { const options = { generateEnum: true, enumName: 'AppIconsEnum' } as ConstantsConversionOptions; const types = ['alert', 'noResults']; - const svgDefinitions = types.map(typeName => ({ typeName })) as SvgDefinition[]; + const svgDefinitions = types.map((typeName) => ({ typeName })) as SvgDefinition[]; const expected = ` export enum ${options.enumName} {${svgDefinitions - .map( - ({ typeName }, index) => - `${snakeCase(typeName).toUpperCase()} = '${typeName}'${index === svgDefinitions.length - 1 ? '}' : ','}` - ) - .join('')};`; + .map( + ({ typeName }, index) => + `${snakeCase(typeName).toUpperCase()} = '${typeName}'${index === svgDefinitions.length - 1 ? '}' : ','}`, + ) + .join('')};`; expect(generateEnumDefinition(options, svgDefinitions)).toEqual(expected); }); }); @@ -253,7 +253,7 @@ describe('Generators', () => { const iconsFolderName = 'build'; const expectedStatement = ` - import {${interfaceName}} from './${iconsFolderName}/${modelFileName}'; + import {type ${interfaceName}} from './${iconsFolderName}/${modelFileName}'; export type ${interfaceName}NameSubset> = T[number]['name']; `; diff --git a/src/lib/generators/code-snippet-generators.ts b/src/lib/generators/code-snippet-generators.ts index 9e060ac..1c15aeb 100644 --- a/src/lib/generators/code-snippet-generators.ts +++ b/src/lib/generators/code-snippet-generators.ts @@ -12,7 +12,7 @@ export enum Delimiter { KEBAB = 'KEBAB', SNAKE = 'SNAKE', UPPER = 'UPPER', - NONE = 'NONE' + NONE = 'NONE', } export const generateInterfaceDefinition = (conversionOptions: FilesConversionOptions | ConstantsConversionOptions) => { @@ -22,7 +22,7 @@ export const generateInterfaceDefinition = (conversionOptions: FilesConversionOp typeName = '', generateType, generateTypeObject, - generateEnum + generateEnum, } = conversionOptions; let nameType = 'string'; @@ -53,7 +53,7 @@ export const generateObjectInterface = (exportAsDefaultObject: boolean, conversi export const generateTypeDefinition = ( conversionOptions: FilesConversionOptions | ConstantsConversionOptions, - svgDefinitions: SvgDefinition[] + svgDefinitions: SvgDefinition[], ): string => { let typesDefinition = ''; @@ -72,7 +72,7 @@ export const generateTypeDefinition = ( ({ typeName }, index) => `'${typeName}': '${typeName}'${conversionOptions.generateType ? ` as ${conversionOptions.typeName}` : ''}${ index === svgDefinitions.length - 1 ? '' : ',' - }` + }`, ) .join('')} };`; @@ -83,7 +83,7 @@ export const generateTypeDefinition = ( export const generateEnumDefinition = ( conversionOptions: FilesConversionOptions | ConstantsConversionOptions, - svgDefinitions: SvgDefinition[] + svgDefinitions: SvgDefinition[], ): string => { let enumDefinition = ''; const { generateEnum, enumName } = conversionOptions; @@ -93,7 +93,7 @@ export const generateEnumDefinition = ( export enum ${enumName} {${svgDefinitions .map( ({ typeName }, index) => - `${snakeCase(typeName).toUpperCase()} = '${typeName}'${index === svgDefinitions.length - 1 ? '}' : ','}` + `${snakeCase(typeName).toUpperCase()} = '${typeName}'${index === svgDefinitions.length - 1 ? '}' : ','}`, ) .join('')};`; } @@ -154,9 +154,9 @@ export const generateTypeHelper = (interfaceName: string): string => ` export const generateTypeHelperWithImport = ( interfaceName: string, iconsFolderName: string, - modelFileName: string + modelFileName: string, ): string => ` - import {${interfaceName}} from './${iconsFolderName}/${modelFileName}'; + import type {${interfaceName}} from './${iconsFolderName}/${modelFileName}'; ${generateTypeHelper(interfaceName)} `; diff --git a/src/lib/helpers/complete-icon-set-helper.spec.ts b/src/lib/helpers/complete-icon-set-helper.spec.ts index ec06d21..9f99fb4 100644 --- a/src/lib/helpers/complete-icon-set-helper.spec.ts +++ b/src/lib/helpers/complete-icon-set-helper.spec.ts @@ -7,7 +7,7 @@ describe('Complete Iconset-helper', () => { const fileNamesWithDefinitions = [ { variableName: 'foo', prefix: 'sampleIcon', filenameWithoutEnding: 'foo' }, { variableName: 'bar', prefix: 'sampleIcon', filenameWithoutEnding: 'bar' }, - { variableName: 'baz', prefix: 'sampleIcon', filenameWithoutEnding: 'baz' } + { variableName: 'baz', prefix: 'sampleIcon', filenameWithoutEnding: 'baz' }, ] as any; const expectedContent = ` import {foo} from './sampleIcon-foo.icon'; @@ -24,7 +24,7 @@ describe('Complete Iconset-helper', () => { const fileNamesWithDefinitions = [ { variableName: 'foo', prefix: 'sampleIcon', filenameWithoutEnding: 'foo' }, { variableName: 'bar', prefix: 'sampleIcon', filenameWithoutEnding: 'bar' }, - { variableName: 'baz', prefix: 'sampleIcon', filenameWithoutEnding: 'baz' } + { variableName: 'baz', prefix: 'sampleIcon', filenameWithoutEnding: 'baz' }, ] as any; const expectedContent = ` import {MyIcon} from './my-icons'; @@ -39,7 +39,7 @@ describe('Complete Iconset-helper', () => { completeIconSetName, 'MyIcon', 'my-icons', - true + true, ); expect(unformatedString(expectedContent)).toEqual(unformatedString(generatedContent)); }); @@ -48,7 +48,7 @@ describe('Complete Iconset-helper', () => { const fileNamesWithDefinitions = [ { variableName: 'foo', prefix: 'sampleIcon', filenameWithoutEnding: 'foo' }, { variableName: 'bar', prefix: 'sampleIcon', filenameWithoutEnding: 'bar' }, - { variableName: 'baz', prefix: 'sampleIcon', filenameWithoutEnding: 'baz' } + { variableName: 'baz', prefix: 'sampleIcon', filenameWithoutEnding: 'baz' }, ] as any; const expectedContent = ` import {foo} from './sampleIcon-foo.icon'; @@ -62,7 +62,7 @@ describe('Complete Iconset-helper', () => { completeIconSetName, 'MyIcon', 'my-icons', - false + false, ); expect(unformatedString(expectedContent)).toEqual(unformatedString(generatedContent)); }); diff --git a/src/lib/helpers/complete-icon-set.helper.ts b/src/lib/helpers/complete-icon-set.helper.ts index e1f067f..86b638c 100644 --- a/src/lib/helpers/complete-icon-set.helper.ts +++ b/src/lib/helpers/complete-icon-set.helper.ts @@ -9,18 +9,18 @@ export const generateCompleteIconSetContent = ( completeIconSetName: string, interfaceName?: string, modelFileName?: string, - generateType?: boolean + generateType?: boolean, ): string => { const importSection = generateImportSection( svgDefinitions, generateType ? interfaceName : undefined, - generateType ? modelFileName : undefined + generateType ? modelFileName : undefined, ); const exportSection = generateExportSection( svgDefinitions, completeIconSetName, FILE_TYPE.TS, - generateType ? interfaceName : undefined + generateType ? interfaceName : undefined, ); return `${importSection}${exportSection}`; }; @@ -28,14 +28,14 @@ export const generateCompleteIconSetContent = ( const generateImportSection = ( svgDefinitions: SvgDefinition[], interfaceName?: string, - modelFileName?: string + modelFileName?: string, ): string => { const imports = interfaceName && modelFileName ? generateNamedImportStatement(interfaceName, `./${modelFileName}`) : ''; return svgDefinitions.reduce((acc: string, svgDefinition: SvgDefinition) => { acc += generateNamedImportStatement( svgDefinition.variableName, - `./${svgDefinition.prefix}-${svgDefinition.filenameWithoutEnding}.icon` + `./${svgDefinition.prefix}-${svgDefinition.filenameWithoutEnding}.icon`, ); return acc; }, imports); @@ -45,22 +45,25 @@ export const generateExportSection = ( svgDefinitions: SvgDefinition[], completeIconSetName: string, fileType = FILE_TYPE.TS, - interfaceName?: string + interfaceName?: string, ): string => { const interfaceSuffix = interfaceName ? `:${interfaceName}[]` : ''; - return svgDefinitions.reduce((acc: string, svgDefinition: SvgDefinition, index: number) => { - const variableName = - fileType === FILE_TYPE.TSX - ? svgDefinition.variableName.charAt(0).toUpperCase() + svgDefinition.variableName.slice(1) - : svgDefinition.variableName; + return svgDefinitions.reduce( + (acc: string, svgDefinition: SvgDefinition, index: number) => { + const variableName = + fileType === FILE_TYPE.TSX + ? svgDefinition.variableName.charAt(0).toUpperCase() + svgDefinition.variableName.slice(1) + : svgDefinition.variableName; - const interfaceSuffix = interfaceName ? ` as ${interfaceName}` : ''; + const interfaceSuffix = interfaceName ? ` as ${interfaceName}` : ''; - if (index === svgDefinitions.length - 1) { - acc += `${variableName}${interfaceSuffix}];`; - } else { - acc += `${variableName}${interfaceSuffix},`; - } - return acc; - }, `export const ${camelCase(completeIconSetName)}${interfaceSuffix} = [`); + if (index === svgDefinitions.length - 1) { + acc += `${variableName}${interfaceSuffix}];`; + } else { + acc += `${variableName}${interfaceSuffix},`; + } + return acc; + }, + `export const ${camelCase(completeIconSetName)}${interfaceSuffix} = [`, + ); }; diff --git a/src/lib/helpers/file-helpers.ts b/src/lib/helpers/file-helpers.ts index e568e8b..f26718c 100644 --- a/src/lib/helpers/file-helpers.ts +++ b/src/lib/helpers/file-helpers.ts @@ -1,8 +1,7 @@ import fs from 'fs'; import gfs from 'graceful-fs'; import path from 'path'; -import typescriptParser from 'prettier/parser-typescript'; -import prettier from 'prettier/standalone'; +import * as prettier from 'prettier'; import util from 'util'; import { FILE_TYPE } from '../shared/file-type.model'; @@ -23,14 +22,17 @@ export async function writeFile( outputDirectory: string, fileName: string, fileContent: string, - fileType = FILE_TYPE.TS + fileType = FILE_TYPE.TS, ): Promise { + const outputFile = path.join(outputDirectory, `${fileName}.${fileType}`); const formattedFileContent = - fileType === FILE_TYPE.TS ? formatContent(`${fileComment}${fileContent}`) : `${fileComment}${fileContent}`; + fileType === FILE_TYPE.TS + ? await formatContent(`${fileComment}${fileContent}`, outputFile) + : `${fileComment}${fileContent}`; if (!fs.existsSync(outputDirectory)) { fs.mkdirSync(outputDirectory, { recursive: true }); } - await writeFileToFS(path.join(outputDirectory, `${fileName}.${fileType}`), formattedFileContent); + await writeFileToFS(outputFile, formattedFileContent); } export const readFile = async (filePath: string): Promise => { @@ -55,9 +57,14 @@ export const deleteFiles = (filePaths: string[]): void => { filePaths.forEach((filePath: string) => fs.unlinkSync(filePath)); }; -const formatContent = (fileContent: string) => - prettier.format(fileContent, { - parser: 'typescript', - plugins: [typescriptParser], - singleQuote: true - }); +const formatContent = async (fileContent: string, filePath: string) => { + // get the existing prettier config if it exists + const existingPrettierConfig = await prettier.resolveConfig(filePath); + // if there is no existing prettier config, use our default config + const defaultPrettierConfig: prettier.Options = { singleQuote: true }; + const prettierConfig = existingPrettierConfig ?? defaultPrettierConfig; + // ensure even if there is a parser set in the existing config we still use the typescript parser + prettierConfig.parser = 'typescript'; + // use the existing prettier config along with the defaults to format the file content + return await prettier.format(fileContent, prettierConfig); +}; diff --git a/src/lib/helpers/logger.ts b/src/lib/helpers/logger.ts index d5fa97c..b5f1d8d 100644 --- a/src/lib/helpers/logger.ts +++ b/src/lib/helpers/logger.ts @@ -17,7 +17,9 @@ export class Logger { static generationSuccess(path: string) { Logger.logWithPrefix( - chalk.underline.green(`🏁 Everything is perfect: Icons succesfully generated under ${chalk.blue.underline(path)}`) + chalk.underline.green( + `🏁 Everything is perfect: Icons succesfully generated under ${chalk.blue.underline(path)}`, + ), ); } diff --git a/src/lib/helpers/regex-helpers.ts b/src/lib/helpers/regex-helpers.ts index 4ce65be..7a909ee 100644 --- a/src/lib/helpers/regex-helpers.ts +++ b/src/lib/helpers/regex-helpers.ts @@ -11,7 +11,7 @@ export const getFilePathsFromRegex = async (srcFiles: string[]) => { for (const regex of srcFilesRegexExpressions) { const directoryFiles = await getFilesFromRegex(regex, { - nodir: true + nodir: true, }); if (directoryFiles.length === 0) { Logger.verboseInfo(`No matching files for regex: "${regex}"`); diff --git a/src/lib/options/commander/constant-options.commander.ts b/src/lib/options/commander/constant-options.commander.ts index afe09b9..46ece0b 100644 --- a/src/lib/options/commander/constant-options.commander.ts +++ b/src/lib/options/commander/constant-options.commander.ts @@ -13,58 +13,58 @@ export const setupConstantOptionsCommander = () => { .option( '-t --typeName ', 'name of the generated enumeration type', - DEFAULT_CONST_CONVERSION_OPTIONS.typeName + DEFAULT_CONST_CONVERSION_OPTIONS.typeName, ) .option( '--generateType ', 'prevent generating enumeration type', - DEFAULT_CONST_CONVERSION_OPTIONS.generateType + DEFAULT_CONST_CONVERSION_OPTIONS.generateType, ) .option( '--generateTypeObject ', 'generate type object', - DEFAULT_CONST_CONVERSION_OPTIONS.generateTypeObject + DEFAULT_CONST_CONVERSION_OPTIONS.generateTypeObject, ) .option('-f --fileName ', 'name of the generated file', DEFAULT_CONST_CONVERSION_OPTIONS.fileName) .option( '--enumName ', 'the name of the generated enum', - DEFAULT_CONST_CONVERSION_OPTIONS.generateTypeObject + DEFAULT_CONST_CONVERSION_OPTIONS.generateTypeObject, ) .option('--generateEnum ', 'generate enum', DEFAULT_CONST_CONVERSION_OPTIONS.generateTypeObject) .option('-f --fileName ', 'name of the generated file', DEFAULT_CONST_CONVERSION_OPTIONS.fileName) .option( '-d --delimiter ', `delimiter which is used to generate the types and name properties (${Object.values(Delimiter).join(',')})`, - DEFAULT_CONST_CONVERSION_OPTIONS.delimiter + DEFAULT_CONST_CONVERSION_OPTIONS.delimiter, ) .option( '-i --interfaceName ', 'name for the generated interface', - DEFAULT_CONST_CONVERSION_OPTIONS.interfaceName + DEFAULT_CONST_CONVERSION_OPTIONS.interfaceName, ) .option('-s --srcFiles ', 'name of the source directory', collect, []) .option( '-o --outputDirectory ', 'name of the output directory', - DEFAULT_CONST_CONVERSION_OPTIONS.outputDirectory + DEFAULT_CONST_CONVERSION_OPTIONS.outputDirectory, ) .option('--svgoConfig ', 'Path to svgo configuration JSON or inline svgo configuration object') .option('-p --prefix ', 'prefix for the generated svg constants', DEFAULT_CONST_CONVERSION_OPTIONS.prefix) .option( '--exportCompleteIconSet ', 'Specifies if the complete icon set should be exported or not', - DEFAULT_CONST_CONVERSION_OPTIONS.exportCompleteIconSet + DEFAULT_CONST_CONVERSION_OPTIONS.exportCompleteIconSet, ) .option( '--completeIconSetName ', 'The name of the complete icon set (only effective if exportCompleteIconSet is set to true)', - DEFAULT_CONST_CONVERSION_OPTIONS.completeIconSetName + DEFAULT_CONST_CONVERSION_OPTIONS.completeIconSetName, ) .option( '--verbose ', 'Specifies if a verbose log message should be printed or not', - DEFAULT_CONST_CONVERSION_OPTIONS.verbose + DEFAULT_CONST_CONVERSION_OPTIONS.verbose, ) .parse(process.argv); }; diff --git a/src/lib/options/commander/file-options.commander.ts b/src/lib/options/commander/file-options.commander.ts index a25ddba..0a3c9f2 100644 --- a/src/lib/options/commander/file-options.commander.ts +++ b/src/lib/options/commander/file-options.commander.ts @@ -13,79 +13,79 @@ export const setupFilesOptionsCommander = () => { .option( '-t --typeName ', 'name of the generated enumeration type', - DEFAULT_FILES_CONVERSION_OPTIONS.typeName + DEFAULT_FILES_CONVERSION_OPTIONS.typeName, ) .option( '--generateType ', 'prevent generating enumeration type', - DEFAULT_FILES_CONVERSION_OPTIONS.generateType + DEFAULT_FILES_CONVERSION_OPTIONS.generateType, ) .option( '--generateTypeObject ', 'generate type object', - DEFAULT_FILES_CONVERSION_OPTIONS.generateTypeObject + DEFAULT_FILES_CONVERSION_OPTIONS.generateTypeObject, ) .option( '--barrelFileName ', 'name to use for the barrel file', - DEFAULT_FILES_CONVERSION_OPTIONS.barrelFileName + DEFAULT_FILES_CONVERSION_OPTIONS.barrelFileName, ) .option( '-d --delimiter ', - `delimiter which is used to generate the types and name properties (${Object.values(Delimiter).join(',')})` + `delimiter which is used to generate the types and name properties (${Object.values(Delimiter).join(',')})`, ) .option('-p --prefix ', 'prefix for the generated svg constants', DEFAULT_FILES_CONVERSION_OPTIONS.prefix) .option( '-i --interfaceName ', 'name for the generated interface', - DEFAULT_FILES_CONVERSION_OPTIONS.interfaceName + DEFAULT_FILES_CONVERSION_OPTIONS.interfaceName, ) .option('-s --srcFiles ', 'name of the source directory', collect, []) .option( '-o --outputDirectory ', 'name of the output directory', - DEFAULT_FILES_CONVERSION_OPTIONS.outputDirectory + DEFAULT_FILES_CONVERSION_OPTIONS.outputDirectory, ) .option('--svgoConfig ', 'Path to svgo configuration JSON or inline svgo configuration object') .option( '--modelFileName ', 'FileName of the model file (only necessary when conversion type is set to files)', - DEFAULT_FILES_CONVERSION_OPTIONS.modelFileName + DEFAULT_FILES_CONVERSION_OPTIONS.modelFileName, ) .option( '--iconsFolderName ', 'Name of the folder the icons will be generated to (only necessary when conversion type is set to files)', - DEFAULT_FILES_CONVERSION_OPTIONS.iconsFolderName + DEFAULT_FILES_CONVERSION_OPTIONS.iconsFolderName, ) .option( '--additionalModelOutputPath ', 'Additional outputpath for the models file (only helpful when conversion type is set to files)', - DEFAULT_FILES_CONVERSION_OPTIONS.additionalModelOutputPath + DEFAULT_FILES_CONVERSION_OPTIONS.additionalModelOutputPath, ) .option( '--compileSources ', 'Tells if the sources should be precompiled with the TypeScript compiler. If true, you will only end up with d.ts and js files (only necessary when conversion type is set to files)', - DEFAULT_FILES_CONVERSION_OPTIONS.compileSources + DEFAULT_FILES_CONVERSION_OPTIONS.compileSources, ) .option( '--compilationOutput ', 'Which module svg-to-ts should compile the source to (possible values are, ESM, UMD, ESM_AND_UMD)', - DEFAULT_FILES_CONVERSION_OPTIONS.compilationOutput + DEFAULT_FILES_CONVERSION_OPTIONS.compilationOutput, ) .option( '--exportCompleteIconSet ', 'Specifies if the complete icon set should be exported or not', - DEFAULT_FILES_CONVERSION_OPTIONS.exportCompleteIconSet + DEFAULT_FILES_CONVERSION_OPTIONS.exportCompleteIconSet, ) .option( '--completeIconSetName ', 'The name of the generated complete icon set file', - DEFAULT_FILES_CONVERSION_OPTIONS.completeIconSetName + DEFAULT_FILES_CONVERSION_OPTIONS.completeIconSetName, ) .option( '--verbose ', 'Specifies if a verbose log message should be printed or not', - DEFAULT_FILES_CONVERSION_OPTIONS.verbose + DEFAULT_FILES_CONVERSION_OPTIONS.verbose, ) .parse(process.argv); }; diff --git a/src/lib/options/commander/object-options.commander.ts b/src/lib/options/commander/object-options.commander.ts index a1a96ca..37a164a 100644 --- a/src/lib/options/commander/object-options.commander.ts +++ b/src/lib/options/commander/object-options.commander.ts @@ -13,18 +13,18 @@ export const setupObjectOptionsCommander = () => { .option( '-d --delimiter ', `delimiter which is used to generate the types and name properties (${Object.values(Delimiter).join(',')})`, - DEFAULT_OBJECT_CONVERSION_OPTIONS.delimiter + DEFAULT_OBJECT_CONVERSION_OPTIONS.delimiter, ) .option( '-s --srcFiles ', 'name of the source directory', collect, - DEFAULT_OBJECT_CONVERSION_OPTIONS.srcFiles + DEFAULT_OBJECT_CONVERSION_OPTIONS.srcFiles, ) .option( '-o --outputDirectory ', 'name of the output directory', - DEFAULT_OBJECT_CONVERSION_OPTIONS.outputDirectory + DEFAULT_OBJECT_CONVERSION_OPTIONS.outputDirectory, ) .option('--objectName ', 'name of the exported object', DEFAULT_OBJECT_CONVERSION_OPTIONS.objectName) .option('--typeName ', 'name of type object to generate', DEFAULT_OBJECT_CONVERSION_OPTIONS.typeName) @@ -33,7 +33,7 @@ export const setupObjectOptionsCommander = () => { .option( '--verbose ', 'Specifies if a verbose log message should be printed or not', - DEFAULT_OBJECT_CONVERSION_OPTIONS.verbose + DEFAULT_OBJECT_CONVERSION_OPTIONS.verbose, ) .parse(process.argv); }; diff --git a/src/lib/options/conversion-options/files-conversion-options.ts b/src/lib/options/conversion-options/files-conversion-options.ts index d6c610f..5038a0f 100644 --- a/src/lib/options/conversion-options/files-conversion-options.ts +++ b/src/lib/options/conversion-options/files-conversion-options.ts @@ -3,7 +3,7 @@ import { Delimiter } from '../../generators/code-snippet-generators'; export enum SVG_TO_TS_COMPILATION_OUTPUT { ESM = 'ESM', UMD = 'UMD', - ESM_AND_UMD = 'ESM_AND_UMD' + ESM_AND_UMD = 'ESM_AND_UMD', } export interface FilesConversionOptions { diff --git a/src/lib/options/default-options/default-constants-conversion-options.ts b/src/lib/options/default-options/default-constants-conversion-options.ts index 77429a4..324cbdd 100644 --- a/src/lib/options/default-options/default-constants-conversion-options.ts +++ b/src/lib/options/default-options/default-constants-conversion-options.ts @@ -16,5 +16,5 @@ export const DEFAULT_CONST_CONVERSION_OPTIONS: ConstantsConversionOptions = { exportCompleteIconSet: true, completeIconSetName: 'completeIconSet', verbose: false, - delimiter: Delimiter.SNAKE + delimiter: Delimiter.SNAKE, }; diff --git a/src/lib/options/default-options/default-files-conversion-options.ts b/src/lib/options/default-options/default-files-conversion-options.ts index 266bd4d..c9740ba 100644 --- a/src/lib/options/default-options/default-files-conversion-options.ts +++ b/src/lib/options/default-options/default-files-conversion-options.ts @@ -21,5 +21,5 @@ export const DEFAULT_FILES_CONVERSION_OPTIONS: FilesConversionOptions = { compilationOutput: SVG_TO_TS_COMPILATION_OUTPUT.ESM, verbose: false, barrelFileName: 'index', - delimiter: Delimiter.SNAKE + delimiter: Delimiter.SNAKE, }; diff --git a/src/lib/options/default-options/default-object-conversion-options.ts b/src/lib/options/default-options/default-object-conversion-options.ts index 7b35039..aacbe44 100644 --- a/src/lib/options/default-options/default-object-conversion-options.ts +++ b/src/lib/options/default-options/default-object-conversion-options.ts @@ -10,5 +10,5 @@ export const DEFAULT_OBJECT_CONVERSION_OPTIONS: ObjectConversionOptions = { fileName: 'my-icons', objectName: 'icons', generateType: true, - typeName: 'MyIconType' + typeName: 'MyIconType', }; diff --git a/src/lib/options/options-collector/command-line-options-collectors/commandline-consts-options.collector.ts b/src/lib/options/options-collector/command-line-options-collectors/commandline-consts-options.collector.ts index 92defb8..b77f742 100644 --- a/src/lib/options/options-collector/command-line-options-collectors/commandline-consts-options.collector.ts +++ b/src/lib/options/options-collector/command-line-options-collectors/commandline-consts-options.collector.ts @@ -21,7 +21,7 @@ export const collectCommandLineConstantOptions = async (): Promise mergeWithDefaultConstantOptions(config)) + cosmiConfigResult.config.map((config: ConstantsConversionOptions) => mergeWithDefaultConstantOptions(config)), ); } return await mergeWithDefaultConstantOptions(cosmiConfigResult.config); }; export const mergeWithDefaultConstantOptions = async ( - options: ConstantsConversionOptions + options: ConstantsConversionOptions, ): Promise => { const configOptions = { ...options }; @@ -47,7 +47,7 @@ export const mergeWithDefaultConstantOptions = async ( if (!configOptions.outputDirectory) { configOptions.outputDirectory = DEFAULT_CONST_CONVERSION_OPTIONS.outputDirectory; Logger.verboseInfo( - `No 'outputDirectory' provided, "${DEFAULT_CONST_CONVERSION_OPTIONS.outputDirectory}" will be used` + `No 'outputDirectory' provided, "${DEFAULT_CONST_CONVERSION_OPTIONS.outputDirectory}" will be used`, ); } @@ -84,7 +84,7 @@ export const mergeWithDefaultConstantOptions = async ( if (configOptions.generateTypeObject === undefined) { configOptions.generateTypeObject = DEFAULT_CONST_CONVERSION_OPTIONS.generateTypeObject; Logger.verboseInfo( - `No 'generateTypeObject' provided, "${DEFAULT_CONST_CONVERSION_OPTIONS.generateTypeObject}" will be used` + `No 'generateTypeObject' provided, "${DEFAULT_CONST_CONVERSION_OPTIONS.generateTypeObject}" will be used`, ); } @@ -96,14 +96,14 @@ export const mergeWithDefaultConstantOptions = async ( if (configOptions.exportCompleteIconSet === undefined) { configOptions.exportCompleteIconSet = DEFAULT_CONST_CONVERSION_OPTIONS.exportCompleteIconSet; Logger.verboseInfo( - `No flag for 'exportCompleteIconSet' provided, "${DEFAULT_CONST_CONVERSION_OPTIONS.exportCompleteIconSet}" will be used` + `No flag for 'exportCompleteIconSet' provided, "${DEFAULT_CONST_CONVERSION_OPTIONS.exportCompleteIconSet}" will be used`, ); } if (!configOptions.completeIconSetName) { configOptions.completeIconSetName = DEFAULT_CONST_CONVERSION_OPTIONS.completeIconSetName; Logger.verboseInfo( - `No 'completeIconSetName' provided, "${DEFAULT_CONST_CONVERSION_OPTIONS.completeIconSetName}" will be used` + `No 'completeIconSetName' provided, "${DEFAULT_CONST_CONVERSION_OPTIONS.completeIconSetName}" will be used`, ); } diff --git a/src/lib/options/options-collector/config-file-options-collector/config-file-files-options.collector.ts b/src/lib/options/options-collector/config-file-options-collector/config-file-files-options.collector.ts index 61e7347..d05eaf6 100644 --- a/src/lib/options/options-collector/config-file-options-collector/config-file-files-options.collector.ts +++ b/src/lib/options/options-collector/config-file-options-collector/config-file-files-options.collector.ts @@ -42,7 +42,7 @@ export const mergeWithDefaults = async (options): Promise