diff --git a/package-lock.json b/package-lock.json index 1d7b0929e..2df39cb9b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,6 +30,21 @@ "js-tokens": "^4.0.0" } }, + "@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "dev": true, + "requires": { + "@cspotcode/source-map-consumer": "0.8.0" + } + }, "@nodelib/fs.scandir": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", @@ -57,9 +72,9 @@ } }, "@rollup/plugin-commonjs": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-19.0.0.tgz", - "integrity": "sha512-adTpD6ATGbehdaQoZQ6ipDFhdjqsTgpOAhFiPwl+dzre4pPshsecptDPyEFb61JMJ1+mGljktaC4jI8ARMSNyw==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.1.tgz", + "integrity": "sha512-EA+g22lbNJ8p5kuZJUYyhhDK7WgJckW5g4pNN7n4mAFUM96VuwUnNT3xr2Db2iCZPI1pJPbGyfT5mS9T1dHfMg==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -102,28 +117,46 @@ } } }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, "@types/component-emitter": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", - "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", "dev": true }, "@types/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", "dev": true }, "@types/cors": { - "version": "2.8.10", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", - "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", - "dev": true - }, - "@types/css-font-loading-module": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@types/css-font-loading-module/-/css-font-loading-module-0.0.4.tgz", - "integrity": "sha512-ENdXf7MW4m9HeDojB2Ukbi7lYMIuQNBHVf98dbzaiG4EEJREBd6oleVAjrLRCrp7dm6CK1mmdmU9tcgF61acbw==", + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", "dev": true }, "@types/estree": { @@ -152,9 +185,9 @@ } }, "@types/jasmine": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.7.1.tgz", - "integrity": "sha512-MP1bcwS0MXQSKPBd20wv0rqF+GOfHTchz4mKFkS4ajAmz2oYwhOpSE9FPe611TOOarA061itZwUQUYRI5mPJsA==", + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.2.tgz", + "integrity": "sha512-qs4xjVm4V/XjM6owGm/x6TNmhGl5iKX8dkTdsgdgl9oFnqgzxLepnS7rN9Tdo7kDmnFD/VEqKrW57cGD2odbEg==", "dev": true }, "@types/minimatch": { @@ -169,16 +202,10 @@ "integrity": "sha512-eWQGP3qtxwL8FGneRrC5DwrJLGN4/dH1clNTuLfN81HCrxVtxRjygDTUoZJ5ASlDEeo0ppYFQjQIlXhtXpOn6g==", "dev": true }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, "@types/resize-observer-browser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.5.tgz", - "integrity": "sha512-8k/67Z95Goa6Lznuykxkfhq9YU3l1Qe6LNZmwde1u7802a3x8v44oq0j91DICclxatTr0rNnhXx7+VTIetSrSQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.6.tgz", + "integrity": "sha512-61IfTac0s9jvNtBCpyo86QeaN8qqpMGHdK0uGKCCIy2dt5/Yk84VduHIdWAcmkC5QvdkPL0p5eWYgUZtHKKUVg==", "dev": true }, "accepts": { @@ -191,10 +218,22 @@ "negotiator": "0.6.2" } }, + "acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { @@ -237,24 +276,6 @@ "sprintf-js": "~1.0.2" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -273,95 +294,16 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, "base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz", + "integrity": "sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==", "dev": true }, "base64id": { @@ -441,31 +383,6 @@ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "dev": true }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -493,35 +410,6 @@ "readdirp": "~3.5.0" } }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -533,16 +421,6 @@ "wrap-ansi": "^7.0.0" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -588,12 +466,6 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -651,15 +523,14 @@ } }, "concurrently": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.1.0.tgz", - "integrity": "sha512-jy+xj49pvqeKjc2TAVXRIhrgPG51eBKDZti0kZ41kaWk9iLbyWBjH6KMFpW7peOLkEymD+ZM83Lx6UEy3N/M9g==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.3.0.tgz", + "integrity": "sha512-k4k1jQGHHKsfbqzkUszVf29qECBrkvBKkcPJEUDTyVR7tZd1G/JOfnst4g1sYbFvJ4UjHZisj1aWQR8yLKpGPw==", "dev": true, "requires": { "chalk": "^4.1.0", "date-fns": "^2.16.1", "lodash": "^4.17.21", - "read-pkg": "^5.2.0", "rxjs": "^6.6.3", "spawn-command": "^0.0.2-1", "supports-color": "^8.1.0", @@ -677,9 +548,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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", @@ -776,16 +647,10 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "cors": { @@ -811,9 +676,9 @@ "dev": true }, "date-fns": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.21.3.tgz", - "integrity": "sha512-HeYdzCaFflc1i4tGbj7JKMjM4cKGYoyxwcIIkHzNgCkX8xXDNJDZXgDDVchIWpN4eQc3lH37WarduXFZJOtxfw==", + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz", + "integrity": "sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w==", "dev": true }, "date-format": { @@ -837,59 +702,6 @@ "ms": "2.0.0" } }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -902,12 +714,6 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, "di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", @@ -988,24 +794,27 @@ "dev": true }, "engine.io": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", - "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.0.1.tgz", + "integrity": "sha512-Y53UaciUh2Rmx5MiogtMxOQcfh7pnemday+Bb4QDg0Wjmnvo/VTvuEyNGQgYmh8L7VOe8Je1QuiqjLNDelMqLA==", "dev": true, "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~4.0.0", - "ws": "~7.4.2" + "engine.io-parser": "~5.0.0", + "ws": "~8.2.3" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -1020,12 +829,12 @@ } }, "engine.io-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", - "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.1.tgz", + "integrity": "sha512-j4p3WwJrG2k92VISM0op7wiq60vO92MlF3CRGxhKHy9ywG1/Dkc72g0dXeDQ+//hrcDn8gqQzoEkdO9FN0d9AA==", "dev": true, "requires": { - "base64-arraybuffer": "0.1.4" + "base64-arraybuffer": "~1.0.1" } }, "ent": { @@ -1034,15 +843,6 @@ "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", "dev": true }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -1091,50 +891,6 @@ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -1193,107 +949,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "fast-glob": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", @@ -1341,138 +996,6 @@ "unpipe": "~1.0.0" } }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, "flatted": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", @@ -1480,15 +1003,9 @@ "dev": true }, "follow-redirects": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz", - "integrity": "sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "version": "1.14.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", + "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==", "dev": true }, "forwarded": { @@ -1497,15 +1014,6 @@ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -1548,21 +1056,6 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "git-branch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/git-branch/-/git-branch-2.0.1.tgz", - "integrity": "sha512-jMCT1kjXvsUdZKQd2p8E1uZhKsIuR1pnHgcDYQpQiXBtzE9cmYGvOcCSGqqi58x0B9CPS0lUSu/yti866est8g==", - "dev": true, - "requires": { - "findup-sync": "^2.0.0" - } - }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -1586,30 +1079,6 @@ "is-glob": "^4.0.1" } }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, "globby": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", @@ -1647,81 +1116,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -1785,44 +1179,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -1832,66 +1194,15 @@ "binary-extensions": "^2.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, "is-core-module": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", - "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dev": true, "requires": { "has": "^1.0.3" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1934,10 +1245,10 @@ "@types/estree": "*" } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "isbinaryfile": { @@ -2002,12 +1313,6 @@ "esprima": "^4.0.0" } }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -2019,34 +1324,56 @@ } }, "karma": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.2.tgz", - "integrity": "sha512-fo4Wt0S99/8vylZMxNj4cBFyOBBnC1bewZ0QOlePij/2SZVWxqbyLeIddY13q6URa2EpLRW8ixvFRUMjkmo1bw==", + "version": "6.3.7", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.7.tgz", + "integrity": "sha512-EEkswZhOx3EFt1ELlVECeOXHONbHSGw6fkbeMxvCSkLD77X38Kb1d/Oup2Re9ep/tSoa1He3YIBf3Hp+9EsKtg==", "dev": true, "requires": { "body-parser": "^1.19.0", "braces": "^3.0.2", - "chokidar": "^3.4.2", + "chokidar": "^3.5.1", "colors": "^1.4.0", "connect": "^3.7.0", "di": "^0.0.1", "dom-serialize": "^2.2.1", - "glob": "^7.1.6", - "graceful-fs": "^4.2.4", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.6", - "lodash": "^4.17.19", - "log4js": "^6.2.1", - "mime": "^2.4.5", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.3.0", + "mime": "^2.5.2", "minimatch": "^3.0.4", "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", - "socket.io": "^3.1.0", + "socket.io": "^4.2.0", "source-map": "^0.6.1", - "tmp": "0.2.1", - "ua-parser-js": "^0.7.23", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", "yargs": "^16.1.1" + }, + "dependencies": { + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + } } }, "karma-chrome-launcher": { @@ -2077,9 +1404,9 @@ } }, "karma-jasmine-html-reporter": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.6.0.tgz", - "integrity": "sha512-ELO9yf0cNqpzaNLsfFgXd/wxZVYkE2+ECUwhMHUD4PZ17kcsPsYsVyjquiRqyMn2jkd2sHt0IeMyAyq1MC23Fw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz", + "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==", "dev": true }, "karma-rollup-preprocessor": { @@ -2101,18 +1428,6 @@ "colors": "^1.1.2" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -2133,9 +1448,9 @@ }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -2164,21 +1479,6 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -2255,42 +1555,6 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -2313,134 +1577,38 @@ "dev": true }, "multer": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", - "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.3.tgz", + "integrity": "sha512-np0YLKncuZoTzufbkM6wEKp68EhWJXcU6fq6QqrSwkckd2LlMgd1UqhUJLj6NS/5sZ8dE8LYDWslsltJznnXlg==", "dev": true, "requires": { "append-field": "^1.0.0", "busboy": "^0.2.11", "concat-stream": "^1.5.2", - "mkdirp": "^0.5.1", + "mkdirp": "^0.5.4", "object-assign": "^4.1.1", "on-finished": "^2.3.0", "type-is": "^1.6.4", "xtend": "^4.0.0" } }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true }, "on-finished": { "version": "2.3.0", @@ -2467,27 +1635,9 @@ "dev": true }, "package-name-regex": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/package-name-regex/-/package-name-regex-1.0.9.tgz", - "integrity": "sha512-+U2oQCfEz2IlGqws8gmfKzdMDbSd6+RZp6UIFdKo+GAw3+o+kfnsgXkWtJ1JMoKhpP2kEvuYyTy1lXOEQEe0ZA==", - "dev": true - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/package-name-regex/-/package-name-regex-2.0.4.tgz", + "integrity": "sha512-p+ixFAmbQ9DE9TG3ptbjLc7/gwgdKEMCwdGpZwxzgD02D1q/SRRT/j32MyjGjJQ36CSTeVsvKt9Zp3PUHYWBnw==", "dev": true }, "parseurl": { @@ -2496,12 +1646,6 @@ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -2532,12 +1676,6 @@ "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", "dev": true }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -2599,18 +1737,6 @@ "unpipe": "1.0.0" } }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - } - }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -2621,14 +1747,6 @@ "inherits": "~2.0.1", "isarray": "0.0.1", "string_decoder": "~0.10.x" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } } }, "readdirp": { @@ -2640,28 +1758,6 @@ "picomatch": "^2.2.1" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -2683,28 +1779,6 @@ "path-parse": "^1.0.6" } }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -2727,12 +1801,12 @@ } }, "rollup": { - "version": "2.47.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.47.0.tgz", - "integrity": "sha512-rqBjgq9hQfW0vRmz+0S062ORRNJXvwRpzxhFXORvar/maZqY6za3rgQ/p1Glg+j1hnc1GtYyQCPiAei95uTElg==", + "version": "2.59.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.59.0.tgz", + "integrity": "sha512-l7s90JQhCQ6JyZjKgo7Lq1dKh2RxatOM+Jr6a9F7WbS9WgKbocyUSeLmZl8evAse7y96Ae98L2k1cBOwWD8nHw==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.3.2" } }, "rollup-plugin-copy": { @@ -2777,40 +1851,40 @@ } }, "rollup-plugin-dts": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-3.0.1.tgz", - "integrity": "sha512-sdTsd0tEIV1b5Bio1k4Ei3N4/7jbwcVRdlYotGYdJOKR59JH7DzqKTSCbfaKPzuAcKTp7k317z2BzYJ3bkhDTw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-dts/-/rollup-plugin-dts-4.0.1.tgz", + "integrity": "sha512-DNv5F8pro/r0Hkx3JWKRtJZocDnqXfgypoajeiaNq134rYaFcEIl/oas5PogD1qexMadVijsHyVko1Chig0OOQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", + "@babel/code-frame": "^7.14.5", "magic-string": "^0.25.7" }, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", "dev": true, "optional": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.16.0" } }, "@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", "dev": true, "optional": true }, "@babel/highlight": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", - "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", "dev": true, "optional": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.0", + "@babel/helper-validator-identifier": "^7.15.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } @@ -2818,22 +1892,36 @@ } }, "rollup-plugin-license": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.3.0.tgz", - "integrity": "sha512-oi8pL59fVTwXCkLUsZ8dVGVJjO7Hcc5UT0chJvKd0MktPgeYHSadkaicAYUemdYHHpjb0D3DyvedZAEPt+2r8w==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.6.0.tgz", + "integrity": "sha512-ilM+sb9xCvP+23tmzsCqJSm33877nIFeO6lMDGbckxc1jq2nW6WtU1nFD4cfOrKYl0cw1dkz4rC3VMAe8dA8cQ==", "dev": true, "requires": { "commenting": "1.1.0", - "glob": "7.1.6", + "glob": "7.2.0", "lodash": "4.17.21", "magic-string": "0.25.7", "mkdirp": "1.0.4", "moment": "2.29.1", - "package-name-regex": "1.0.9", + "package-name-regex": "2.0.4", "spdx-expression-validate": "2.0.0", - "spdx-satisfies": "5.0.0" + "spdx-satisfies": "5.0.1" }, "dependencies": { + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -2933,15 +2021,6 @@ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -3010,44 +2089,6 @@ "send": "0.17.1" } }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", @@ -3060,146 +2101,24 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "socket.io": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", - "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.3.1.tgz", + "integrity": "sha512-HC5w5Olv2XZ0XJ4gOLGzzHEuOCfj3G0SmoW3jLHYYh34EVsIr3EkW9h6kgfW+K3TFEcmYy8JcPWe//KUkBp5jA==", "dev": true, "requires": { - "@types/cookie": "^0.4.0", - "@types/cors": "^2.8.8", - "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "~2.0.0", - "debug": "~4.3.1", - "engine.io": "~4.1.0", - "socket.io-adapter": "~2.1.0", - "socket.io-parser": "~4.0.3" + "debug": "~4.3.2", + "engine.io": "~6.0.0", + "socket.io-adapter": "~2.3.2", + "socket.io-parser": "~4.0.4" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -3214,9 +2133,9 @@ } }, "socket.io-adapter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", - "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.2.tgz", + "integrity": "sha512-PBZpxUPYjmoogY0aoaTmo1643JelsaS1CiAwNjRVdrI0X9Seuc19Y2Wife8k88avW6haG8cznvwbubAZwH4Mtg==", "dev": true }, "socket.io-parser": { @@ -3237,9 +2156,9 @@ "dev": true }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -3259,19 +2178,6 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, "source-map-support": { "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", @@ -3282,12 +2188,6 @@ "source-map": "^0.6.0" } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, "sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", @@ -3311,16 +2211,6 @@ "spdx-ranges": "^2.0.0" } }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, "spdx-exceptions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", @@ -3347,9 +2237,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", "dev": true }, "spdx-ranges": { @@ -3359,9 +2249,9 @@ "dev": true }, "spdx-satisfies": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-5.0.0.tgz", - "integrity": "sha512-/hGhwh20BeGmkA+P/lm06RvXD94JduwNxtx/oX3B5ClPt1/u/m5MCaDNo1tV3Y9laLkQr/NRde63b9lLMhlNfw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-5.0.1.tgz", + "integrity": "sha512-Nwor6W6gzFp8XX4neaKQ7ChV4wmpSh2sSDemMFSzHxpTw460jxFYeOn+jq4ybnSSw/5sc3pjka9MQPouksQNpw==", "dev": true, "requires": { "spdx-compare": "^1.0.0", @@ -3369,42 +2259,12 @@ "spdx-ranges": "^2.0.0" } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -3429,9 +2289,9 @@ "dev": true }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -3478,14 +2338,14 @@ "dev": true }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "string_decoder": { @@ -3495,12 +2355,12 @@ "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "supports-color": { @@ -3513,14 +2373,14 @@ } }, "terser": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz", - "integrity": "sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", + "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", - "source-map-support": "~0.5.19" + "source-map-support": "~0.5.20" }, "dependencies": { "source-map": { @@ -3528,6 +2388,24 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true + }, + "source-map-support": { + "version": "0.5.20", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", + "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } } } }, @@ -3540,38 +2418,6 @@ "rimraf": "^3.0.0" } }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -3594,16 +2440,22 @@ "dev": true }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "requires": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz", + "integrity": "sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "source-map-support": "^0.5.17", "yn": "3.1.1" } }, @@ -3695,12 +2547,6 @@ "resolve": ">=1.9.0" } }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -3718,29 +2564,17 @@ "dev": true }, "typescript": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", "dev": true }, "ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", "dev": true }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -3753,70 +2587,6 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -3829,16 +2599,6 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -3904,9 +2664,9 @@ "dev": true }, "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "dev": true }, "xtend": { @@ -3937,9 +2697,9 @@ } }, "yargs-parser": { - "version": "20.2.7", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", - "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true }, "yn": { diff --git a/package.json b/package.json index b95c27b5c..8a4e6dc77 100644 --- a/package.json +++ b/package.json @@ -53,37 +53,35 @@ "test-kotlin-ci": "cd src.kotlin/alphaTab && gradlew jvmTest" }, "devDependencies": { - "@rollup/plugin-commonjs": "^19.0.0", - "@types/css-font-loading-module": "0.0.4", - "@types/jasmine": "^3.7.1", - "@types/resize-observer-browser": "^0.1.5", - "concurrently": "^6.1.0", + "@rollup/plugin-commonjs": "^21.0.1", + "@types/jasmine": "^3.10.2", + "@types/resize-observer-browser": "^0.1.6", + "concurrently": "^6.3.0", "cors": "^2.8.5", "fs-extra": "^10.0.0", - "git-branch": "^2.0.1", - "karma": "^6.3.2", + "karma": "^6.3.7", "karma-chrome-launcher": "^3.1.0", "karma-express-http-server": "0.0.1", "karma-jasmine": "^4.0.1", - "karma-jasmine-html-reporter": "^1.6.0", + "karma-jasmine-html-reporter": "^1.7.0", "karma-rollup-preprocessor": "^7.0.7", "karma-spec-reporter": "0.0.32", "lodash": "^4.17.21", - "multer": "^1.4.2", + "multer": "^1.4.3", "rimraf": "^3.0.2", - "rollup": "^2.47.0", + "rollup": "^2.59.0", "rollup-plugin-copy": "^3.4.0", - "rollup-plugin-dts": "^3.0.1", - "rollup-plugin-license": "^2.3.0", + "rollup-plugin-dts": "^4.0.1", + "rollup-plugin-license": "^2.6.0", "rollup-plugin-serve": "^1.1.0", "rollup-plugin-terser": "^7.0.2", - "terser": "^5.7.0", - "ts-node": "^9.1.1", + "terser": "^5.9.0", + "ts-node": "^10.4.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", "ttypescript": "^1.5.12", - "typescript": "^4.2.4" + "typescript": "^4.4.4" }, "files": [ "/dist/alphaTab.js", diff --git a/rollup.config.js b/rollup.config.js index 204a0c7fa..d19f507dc 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -2,9 +2,19 @@ const resolve = require('./rollup.resolve'); const terser = require('rollup-plugin-terser').terser; const dts = require('rollup-plugin-dts').default; const copy = require('rollup-plugin-copy'); -const branch = require('git-branch'); const license = require('rollup-plugin-license'); const serve = require('rollup-plugin-serve'); +const fs = require('fs'); + +function getGitBranch() { + const filepath = '.git/HEAD'; + if (!fs.existsSync(filepath)) { + throw new Error('.git/HEAD does not exist'); + } + const buf = fs.readFileSync(filepath); + const match = /ref: refs\/heads\/([^\n]+)/.exec(buf.toString()); + return match ? match[1] : ''; +} const commonOutput = { name: 'alphaTab', @@ -57,7 +67,7 @@ module.exports = [ }, data() { let buildNumber = process.env.GITHUB_RUN_NUMBER || 0; - let gitBranch = branch.sync(); + let gitBranch = getGitBranch(); return { branch: gitBranch, build: buildNumber diff --git a/src.compiler/csharp/CSharpAstTransformer.ts b/src.compiler/csharp/CSharpAstTransformer.ts index c9f8fd2d4..03f63e811 100644 --- a/src.compiler/csharp/CSharpAstTransformer.ts +++ b/src.compiler/csharp/CSharpAstTransformer.ts @@ -638,7 +638,7 @@ export default class CSharpAstTransformer { !!d.initializer.modifiers && !!d.initializer.modifiers.find(m => m.kind === ts.SyntaxKind.AsyncKeyword); - const functionType = type.symbol.declarations.find(d => + const functionType = type.symbol.declarations!.find(d => ts.isFunctionTypeNode(d) ) as ts.FunctionTypeNode; diff --git a/src.compiler/csharp/CSharpEmitterContext.ts b/src.compiler/csharp/CSharpEmitterContext.ts index 0a495f0e1..05984d06a 100644 --- a/src.compiler/csharp/CSharpEmitterContext.ts +++ b/src.compiler/csharp/CSharpEmitterContext.ts @@ -756,20 +756,22 @@ export default class CSharpEmitterContext { private buildCoreNamespace(aliasSymbol: ts.Symbol) { let suffix = ''; - for (const decl of aliasSymbol.declarations) { - let fileName = path.basename(decl.getSourceFile().fileName).toLowerCase(); - if (fileName.startsWith('lib.') && fileName.endsWith('.d.ts')) { - fileName = fileName.substring(4, fileName.length - 5); - if (fileName.length) { - suffix = fileName.split('.').map(s => { - if (s.match(/es[0-9]{4}/)) { - return '.' + this.toPascalCase('ecmaScript'); - } - if (s.match(/es[0-9]{1}/)) { - return '.' + this.toPascalCase('ecmaScript'); - } - return '.' + this.toPascalCase(s); - })[0]; + if (aliasSymbol.declarations) { + for (const decl of aliasSymbol.declarations) { + let fileName = path.basename(decl.getSourceFile().fileName).toLowerCase(); + if (fileName.startsWith('lib.') && fileName.endsWith('.d.ts')) { + fileName = fileName.substring(4, fileName.length - 5); + if (fileName.length) { + suffix = fileName.split('.').map(s => { + if (s.match(/es[0-9]{4}/)) { + return '.' + this.toPascalCase('ecmaScript'); + } + if (s.match(/es[0-9]{1}/)) { + return '.' + this.toPascalCase('ecmaScript'); + } + return '.' + this.toPascalCase(s); + })[0]; + } } } } @@ -935,9 +937,14 @@ export default class CSharpEmitterContext { // unwrap symbol of expression to get declared type let symbol = this.typeChecker.getSymbolAtLocation(expression); - if (!symbol || !symbol.declarations || symbol.declarations.length === 0) { + if (!symbol) { + return undefined; + } + const declarations = symbol.declarations; + if (!declarations || declarations.length === 0) { return undefined; } + if (symbol.flags & ts.SymbolFlags.Alias) { symbol = this.typeChecker.getAliasedSymbol(symbol); } @@ -946,7 +953,7 @@ export default class CSharpEmitterContext { } // declared type must be nullable - let declaredType = this.typeChecker.getTypeAtLocation(symbol.declarations[0]); + let declaredType = this.typeChecker.getTypeAtLocation(declarations[0]); if (!this.isNullableType(declaredType)) { return undefined; } @@ -991,7 +998,11 @@ export default class CSharpEmitterContext { // we consider the expression as smart casted if the declared symbol has a different // contextual type than the declared type. let symbol = this.typeChecker.getSymbolAtLocation(expression); - if (!symbol || !symbol.declarations || symbol.declarations.length === 0) { + if (!symbol) { + return false; + } + const declarations = symbol.declarations; + if (!declarations || declarations.length === 0) { return false; } @@ -1008,7 +1019,7 @@ export default class CSharpEmitterContext { return false; } - let declaredType = this.typeChecker.getTypeAtLocation(symbol.declarations[0]); + let declaredType = this.typeChecker.getTypeAtLocation(declarations[0]); if (!this.isNullableType(declaredType)) { return false; } @@ -1037,7 +1048,11 @@ export default class CSharpEmitterContext { // we consider the expression as smart casted if the declared symbol has a different // contextual type than the declared type. let symbol = this.typeChecker.getSymbolAtLocation(expression); - if (!symbol || !symbol.declarations || symbol.declarations.length === 0) { + if (!symbol) { + return null; + } + const declarations = symbol.declarations; + if(!declarations || declarations.length === 0){ return null; } @@ -1057,7 +1072,7 @@ export default class CSharpEmitterContext { } } - let declaredType = this.typeChecker.getTypeAtLocation(symbol.declarations[0]); + let declaredType = this.typeChecker.getTypeAtLocation(declarations[0]); let contextualTypeNullable = contextualType; contextualType = this.typeChecker.getNonNullableType(contextualType); @@ -1363,7 +1378,7 @@ export default class CSharpEmitterContext { public isStaticSymbol(tsSymbol: ts.Symbol) { return ( (tsSymbol.flags & ts.SymbolFlags.EnumMember) !== 0 || - !!tsSymbol.declarations.find( + !!tsSymbol.declarations?.find( d => d.modifiers && !!d.modifiers.find(m => m.kind === ts.SyntaxKind.StaticKeyword) ) ); diff --git a/src.compiler/kotlin/KotlinAstPrinter.ts b/src.compiler/kotlin/KotlinAstPrinter.ts index 532b809ec..bacecde56 100644 --- a/src.compiler/kotlin/KotlinAstPrinter.ts +++ b/src.compiler/kotlin/KotlinAstPrinter.ts @@ -978,7 +978,7 @@ export default class KotlinAstPrinter extends AstPrinterBase { protected isMethodAsDelegate(expr: cs.MemberAccessExpression) { if ( - expr.tsSymbol && + expr.tsSymbol?.valueDeclaration && ts.isMethodDeclaration(expr.tsSymbol.valueDeclaration) && !ts.isCallExpression(expr.tsNode!.parent) ) { diff --git a/src.compiler/kotlin/KotlinEmitterContext.ts b/src.compiler/kotlin/KotlinEmitterContext.ts index 245b19529..c30d09cf2 100644 --- a/src.compiler/kotlin/KotlinEmitterContext.ts +++ b/src.compiler/kotlin/KotlinEmitterContext.ts @@ -46,6 +46,7 @@ export default class KotlinEmitterContext extends CSharpEmitterContext { } if ( + classType.symbol.valueDeclaration && ts.isClassDeclaration(classType.symbol.valueDeclaration) && classType.symbol.valueDeclaration.heritageClauses ) { diff --git a/src.compiler/typescript/CloneEmitter.ts b/src.compiler/typescript/CloneEmitter.ts index 343212181..bf2993d61 100644 --- a/src.compiler/typescript/CloneEmitter.ts +++ b/src.compiler/typescript/CloneEmitter.ts @@ -4,17 +4,16 @@ */ import * as path from 'path'; import * as ts from 'typescript'; -import createEmitter from './EmitterBase' +import createEmitter from './EmitterBase'; import { addNewLines } from '../BuilderHelpers'; -import { getTypeWithNullableInfo } from '../BuilderHelpers'; -import { unwrapArrayItemType } from '../BuilderHelpers'; +import { getTypeWithNullableInfo, unwrapArrayItemType } from '../BuilderHelpers'; function removeExtension(fileName: string) { return fileName.substring(0, fileName.lastIndexOf('.')); } function toImportPath(fileName: string) { - return "@" + removeExtension(fileName).split('\\').join('/'); + return '@' + removeExtension(fileName).split('\\').join('/'); } function isClonable(type: ts.Type): boolean { @@ -32,7 +31,11 @@ function isClonable(type: ts.Type): boolean { function isCloneMember(propertyDeclaration: ts.PropertyDeclaration) { if (propertyDeclaration.modifiers) { - if (propertyDeclaration.modifiers.find(m => m.kind === ts.SyntaxKind.StaticKeyword || m.kind === ts.SyntaxKind.ReadonlyKeyword)) { + if ( + propertyDeclaration.modifiers.find( + m => m.kind === ts.SyntaxKind.StaticKeyword || m.kind === ts.SyntaxKind.ReadonlyKeyword + ) + ) { return false; } @@ -48,8 +51,11 @@ function isCloneMember(propertyDeclaration: ts.PropertyDeclaration) { return true; } -function generateClonePropertyStatements(prop: ts.PropertyDeclaration, typeChecker: ts.TypeChecker, - importer: (name: string, module: string) => void): ts.Statement[] { +function generateClonePropertyStatements( + prop: ts.PropertyDeclaration, + typeChecker: ts.TypeChecker, + importer: (name: string, module: string) => void +): ts.Statement[] { const propertyType = getTypeWithNullableInfo(typeChecker, prop.type!); const statements: ts.Statement[] = []; @@ -57,25 +63,25 @@ function generateClonePropertyStatements(prop: ts.PropertyDeclaration, typeCheck const propertyName = (prop.name as ts.Identifier).text; function assign(expr: ts.Expression) { - return [ts.factory.createExpressionStatement( - ts.factory.createAssignment( - ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier('clone'), - propertyName - ), - expr + return [ + ts.factory.createExpressionStatement( + ts.factory.createAssignment( + ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier('clone'), propertyName), + expr + ) ) - )]; + ]; } const arrayItemType = unwrapArrayItemType(propertyType.type!, typeChecker); if (arrayItemType) { if (isClonable(arrayItemType)) { - const collectionAddMethod = ts.getJSDocTags(prop) + const collectionAddMethod = ts + .getJSDocTags(prop) .filter(t => t.tagName.text === 'clone_add') - .map(t => t.comment ?? "")[0]; + .map(t => t.comment ?? '')[0] as string; - importer(arrayItemType.symbol!.name + "Cloner", './' + arrayItemType.symbol!.name + "Cloner"); + importer(arrayItemType.symbol!.name + 'Cloner', './' + arrayItemType.symbol!.name + 'Cloner'); const loopItems = [ ...assign(ts.factory.createArrayLiteralExpression(undefined)), @@ -85,61 +91,59 @@ function generateClonePropertyStatements(prop: ts.PropertyDeclaration, typeCheck [ts.factory.createVariableDeclaration('i')], ts.NodeFlags.Const ), - ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier('original'), - propertyName - ), + ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier('original'), propertyName), ts.factory.createBlock([ ts.factory.createExpressionStatement( collectionAddMethod - // clone.addProp(ItemTypeCloner.clone(i)) - ? ts.factory.createCallExpression( - ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier('clone'), - collectionAddMethod - ), - undefined, - [ts.factory.createCallExpression( - ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier(arrayItemType.symbol!.name + "Cloner"), - 'clone' - ), - undefined, - [ - ts.factory.createIdentifier('i') - ] - )] - ) - // clone.prop.push(ItemTypeCloner.clone(i)) - : ts.factory.createCallExpression( - ts.factory.createPropertyAccessExpression( - ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier('clone'), - propertyName - ), - 'push' - ), - undefined, - [ts.factory.createCallExpression( - ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier(arrayItemType.symbol!.name + "Cloner"), - 'clone' - ), - undefined, - [ - ts.factory.createIdentifier('i') - ] - )] - ) + ? // clone.addProp(ItemTypeCloner.clone(i)) + ts.factory.createCallExpression( + ts.factory.createPropertyAccessExpression( + ts.factory.createIdentifier('clone'), + collectionAddMethod + ), + undefined, + [ + ts.factory.createCallExpression( + ts.factory.createPropertyAccessExpression( + ts.factory.createIdentifier(arrayItemType.symbol!.name + 'Cloner'), + 'clone' + ), + undefined, + [ts.factory.createIdentifier('i')] + ) + ] + ) + : // clone.prop.push(ItemTypeCloner.clone(i)) + ts.factory.createCallExpression( + ts.factory.createPropertyAccessExpression( + ts.factory.createPropertyAccessExpression( + ts.factory.createIdentifier('clone'), + propertyName + ), + 'push' + ), + undefined, + [ + ts.factory.createCallExpression( + ts.factory.createPropertyAccessExpression( + ts.factory.createIdentifier(arrayItemType.symbol!.name + 'Cloner'), + 'clone' + ), + undefined, + [ts.factory.createIdentifier('i')] + ) + ] + ) ) ]) - )]; + ) + ]; if (propertyType.isNullable) { // if(original.prop) { // clone.prop = []; // for(const i of original.prop) { clone.addProp(ItemTypeCloner.clone(i)); } - // // or + // // or // for(const i of original.prop) { clone.prop.add(ItemTypeCloner.clone(i)); } // } statements.push( @@ -148,46 +152,42 @@ function generateClonePropertyStatements(prop: ts.PropertyDeclaration, typeCheck ts.factory.createIdentifier('original'), propertyName ), - ts.factory.createBlock( - loopItems - ), + ts.factory.createBlock(loopItems), undefined ) - ) + ); } else { // clone.prop = []; // for(const i of original.prop) { clone.addProp(ItemTypeCloner.clone(i)); } - // // or + // // or // for(const i of original.prop) { clone.prop.add(ItemTypeCloner.clone(i)); } statements.push(...loopItems); } } else { - const sliceCall = - ts.factory.createCallExpression( - ts.factory.createPropertyAccessExpression( - ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier('original'), - propertyName - ), - 'slice' - ), - undefined, - [] - ); + const sliceCall = ts.factory.createCallExpression( + ts.factory.createPropertyAccessExpression( + ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier('original'), propertyName), + 'slice' + ), + undefined, + [] + ); if (propertyType.isNullable) { - statements.push(...assign( - ts.factory.createConditionalExpression( - ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier('original'), - propertyName - ), - ts.factory.createToken(ts.SyntaxKind.QuestionToken), - sliceCall, - ts.factory.createToken(ts.SyntaxKind.ColonToken), - ts.factory.createNull() + statements.push( + ...assign( + ts.factory.createConditionalExpression( + ts.factory.createPropertyAccessExpression( + ts.factory.createIdentifier('original'), + propertyName + ), + ts.factory.createToken(ts.SyntaxKind.QuestionToken), + sliceCall, + ts.factory.createToken(ts.SyntaxKind.ColonToken), + ts.factory.createNull() + ) ) - )); + ); } else { // clone.prop = original.prop.splice() statements.push(...assign(sliceCall)); @@ -195,88 +195,97 @@ function generateClonePropertyStatements(prop: ts.PropertyDeclaration, typeCheck } } else { if (isClonable(propertyType.type!)) { - importer(propertyType.type.symbol!.name + "Cloner", './' + propertyType.type.symbol!.name + "Cloner"); + importer(propertyType.type.symbol!.name + 'Cloner', './' + propertyType.type.symbol!.name + 'Cloner'); // clone.prop = original.prop ? TypeNameCloner.clone(original.prop) : null - statements.push(...assign( - ts.factory.createConditionalExpression( - ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier('original'), - propertyName - ), - ts.factory.createToken(ts.SyntaxKind.QuestionToken), - ts.factory.createCallExpression( + statements.push( + ...assign( + ts.factory.createConditionalExpression( ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier(propertyType.type.symbol!.name + "Cloner"), - 'clone' + ts.factory.createIdentifier('original'), + propertyName ), - undefined, - [ + ts.factory.createToken(ts.SyntaxKind.QuestionToken), + ts.factory.createCallExpression( ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier('original'), - propertyName - ) - ] - ), - ts.factory.createToken(ts.SyntaxKind.ColonToken), - ts.factory.createNull() + ts.factory.createIdentifier(propertyType.type.symbol!.name + 'Cloner'), + 'clone' + ), + undefined, + [ + ts.factory.createPropertyAccessExpression( + ts.factory.createIdentifier('original'), + propertyName + ) + ] + ), + ts.factory.createToken(ts.SyntaxKind.ColonToken), + ts.factory.createNull() + ) ) - )); + ); } else { // clone.prop = original.prop - statements.push(...assign( - ts.factory.createPropertyAccessExpression( - ts.factory.createIdentifier('original'), - propertyName + statements.push( + ...assign( + ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier('original'), propertyName) ) - )); + ); } } return statements; } -function generateCloneBody(program: ts.Program, input: ts.ClassDeclaration, importer: (name: string, module: string) => void): ts.Block { +function generateCloneBody( + program: ts.Program, + input: ts.ClassDeclaration, + importer: (name: string, module: string) => void +): ts.Block { const typeChecker = program.getTypeChecker(); - const propertiesToSerialize = input.members.filter( - m => ts.isPropertyDeclaration(m) && isCloneMember(m) - ).map(m => m as ts.PropertyDeclaration); + const propertiesToSerialize = input.members + .filter(m => ts.isPropertyDeclaration(m) && isCloneMember(m)) + .map(m => m as ts.PropertyDeclaration); const bodyStatements = propertiesToSerialize.reduce((stmts, prop) => { stmts.push(...generateClonePropertyStatements(prop, typeChecker, importer)); return stmts; }, new Array()); - return ts.factory.createBlock(addNewLines([ - // const clone = new Type(); - ts.factory.createVariableStatement( - undefined, - ts.factory.createVariableDeclarationList([ - ts.factory.createVariableDeclaration( - 'clone', - undefined, - undefined, - ts.factory.createNewExpression( - ts.factory.createIdentifier(input.name!.text), - undefined, - [] - ) + return ts.factory.createBlock( + addNewLines([ + // const clone = new Type(); + ts.factory.createVariableStatement( + undefined, + ts.factory.createVariableDeclarationList( + [ + ts.factory.createVariableDeclaration( + 'clone', + undefined, + undefined, + ts.factory.createNewExpression(ts.factory.createIdentifier(input.name!.text), undefined, []) + ) + ], + ts.NodeFlags.Const ) - ], ts.NodeFlags.Const) - ), - ...bodyStatements, - // return json; - ts.factory.createReturnStatement(ts.factory.createIdentifier('clone')) - ])); + ), + ...bodyStatements, + // return json; + ts.factory.createReturnStatement(ts.factory.createIdentifier('clone')) + ]) + ); } - -function createCloneMethod(program: ts.Program, input: ts.ClassDeclaration, importer: (name: string, module: string) => void) { +function createCloneMethod( + program: ts.Program, + input: ts.ClassDeclaration, + importer: (name: string, module: string) => void +) { return ts.factory.createMethodDeclaration( undefined, [ ts.factory.createModifier(ts.SyntaxKind.PublicKeyword), - ts.factory.createModifier(ts.SyntaxKind.StaticKeyword), + ts.factory.createModifier(ts.SyntaxKind.StaticKeyword) ], undefined, 'clone', @@ -289,19 +298,13 @@ function createCloneMethod(program: ts.Program, input: ts.ClassDeclaration, impo undefined, 'original', undefined, - ts.factory.createTypeReferenceNode( - input.name!.text, - undefined - ), + ts.factory.createTypeReferenceNode(input.name!.text, undefined), undefined ) ], - ts.factory.createTypeReferenceNode( - input.name!.text, - undefined - ), + ts.factory.createTypeReferenceNode(input.name!.text, undefined), generateCloneBody(program, input, importer) - ) + ); } export default createEmitter('cloneable', (program, input) => { @@ -314,49 +317,52 @@ export default createEmitter('cloneable', (program, input) => { const statements: ts.Statement[] = []; function importer(name: string, module: string) { - statements.push(ts.factory.createImportDeclaration( - undefined, - undefined, - ts.factory.createImportClause( - false, + statements.push( + ts.factory.createImportDeclaration( + undefined, undefined, - ts.factory.createNamedImports([ts.factory.createImportSpecifier( + ts.factory.createImportClause( + false, undefined, - ts.factory.createIdentifier(name) - )]) - ), - ts.factory.createStringLiteral(module) - )) + ts.factory.createNamedImports([ + ts.factory.createImportSpecifier(undefined, ts.factory.createIdentifier(name)) + ]) + ), + ts.factory.createStringLiteral(module) + ) + ); } - statements.push(ts.factory.createClassDeclaration( - [], - [ - ts.factory.createModifier(ts.SyntaxKind.ExportKeyword), - ], - input.name!.text + 'Cloner', - undefined, - undefined, - [ - createCloneMethod(program, input, importer) - ] - )); - - const sourceFile = ts.factory.createSourceFile([ - ts.factory.createImportDeclaration( + statements.push( + ts.factory.createClassDeclaration( + [], + [ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], + input.name!.text + 'Cloner', undefined, undefined, - ts.factory.createImportClause(false, + [createCloneMethod(program, input, importer)] + ) + ); + + const sourceFile = ts.factory.createSourceFile( + [ + ts.factory.createImportDeclaration( undefined, - ts.factory.createNamedImports([ts.factory.createImportSpecifier( + undefined, + ts.factory.createImportClause( + false, undefined, - ts.factory.createIdentifier(input.name!.text) - )]) + ts.factory.createNamedImports([ + ts.factory.createImportSpecifier(undefined, ts.factory.createIdentifier(input.name!.text)) + ]) + ), + ts.factory.createStringLiteral(toImportPath(sourceFileName)) ), - ts.factory.createStringLiteral(toImportPath(sourceFileName)) - ), - ...statements - ], ts.factory.createToken(ts.SyntaxKind.EndOfFileToken), ts.NodeFlags.None); + ...statements + ], + ts.factory.createToken(ts.SyntaxKind.EndOfFileToken), + ts.NodeFlags.None + ); return sourceFile; -}); \ No newline at end of file +}); diff --git a/src.compiler/typescript/SerializerEmitter.ts b/src.compiler/typescript/SerializerEmitter.ts index bcf956714..5a5efa305 100644 --- a/src.compiler/typescript/SerializerEmitter.ts +++ b/src.compiler/typescript/SerializerEmitter.ts @@ -53,7 +53,7 @@ function createStringUnknownMapNode(): ts.TypeNode { } function findModule(type: ts.Type, options: ts.CompilerOptions) { - if (type.symbol) { + if (type.symbol && type.symbol.declarations) { for (const decl of type.symbol.declarations) { const file = decl.getSourceFile(); if (file) { @@ -601,27 +601,23 @@ function createEnumMapping(type: ts.Type): ts.Expression { ); } -function stripRanges(node: T) { - (node as any).pos = -1; - (node as any).end = -1; - return node; -} - -function getDeepMutableClone(node: T): T { - return ts.transform(node, [context => node => deepCloneWithContext(node, context)]).transformed[0]; - - function deepCloneWithContext(node: T, context: ts.TransformationContext): T { - const clonedNode = ts.visitEachChild( - stripRanges(ts.getMutableClone(node)), - child => deepCloneWithContext(child, context), - context - ); - (clonedNode as any).parent = undefined as any; - ts.forEachChild(clonedNode, child => { - (child as any).parent = clonedNode; - }); - return clonedNode; +function cloneTypeNode(node: ts.TypeNode): ts.TypeNode { + if(ts.isUnionTypeNode(node)) { + return ts.factory.createUnionTypeNode(node.types.map(cloneTypeNode)); + } else if(node.kind === ts.SyntaxKind.StringKeyword + || node.kind === ts.SyntaxKind.NumberKeyword + || node.kind === ts.SyntaxKind.BooleanKeyword + || node.kind === ts.SyntaxKind.UnknownKeyword + || node.kind === ts.SyntaxKind.AnyKeyword + || node.kind === ts.SyntaxKind.VoidKeyword) { + return ts.factory.createKeywordTypeNode(node.kind); + } else if(ts.isLiteralTypeNode(node)) { + return ts.factory.createLiteralTypeNode(node.literal); + } else if(ts.isArrayTypeNode(node)) { + return ts.factory.createArrayTypeNode(cloneTypeNode(node.elementType)); } + + throw new Error(`Unsupported TypeNode: '${ts.SyntaxKind[node.kind]}' extend type node cloning`); } function generateSetPropertyBody( @@ -658,7 +654,7 @@ function generateSetPropertyBody( type.isNullable ? ts.factory.createIdentifier('v') : ts.factory.createNonNullExpression(ts.factory.createIdentifier('v')), - getDeepMutableClone(prop.property.type!) + cloneTypeNode(prop.property.type!) ) ) ); @@ -680,7 +676,7 @@ function generateSetPropertyBody( const collectionAddMethod = ts .getJSDocTags(prop.property) .filter(t => t.tagName.text === 'json_add') - .map(t => t.comment ?? '')[0]; + .map(t => t.comment ?? '')[0] as string; // obj.fieldName = []; // for(const i of value) { @@ -820,7 +816,7 @@ function generateSetPropertyBody( mapValue = ts.factory.createAsExpression( ts.factory.createIdentifier('v'), ts.isTypeReferenceNode(prop.property.type!) && prop.property.type.typeArguments - ? getDeepMutableClone(prop.property.type.typeArguments[1]) + ? cloneTypeNode(prop.property.type.typeArguments[1]) : ts.factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword) ); } else { @@ -836,7 +832,7 @@ function generateSetPropertyBody( const collectionAddMethod = ts .getJSDocTags(prop.property) .filter(t => t.tagName.text === 'json_add') - .map(t => t.comment ?? '')[0]; + .map(t => t.comment ?? '')[0] as string; caseStatements.push( assignField( @@ -1251,7 +1247,7 @@ export default createEmitter('json', (program, input) => { property: propertyDeclaration, jsonNames: jsonNames, partialNames: !!ts.getJSDocTags(member).find(t => t.tagName.text === 'json_partial_names'), - target: ts.getJSDocTags(member).find(t => t.tagName.text === 'target')?.comment + target: ts.getJSDocTags(member).find(t => t.tagName.text === 'target')?.comment as string }); } } diff --git a/src/AlphaTabApiBase.ts b/src/AlphaTabApiBase.ts index 09dc1a91f..68b94ae9f 100644 --- a/src/AlphaTabApiBase.ts +++ b/src/AlphaTabApiBase.ts @@ -114,7 +114,7 @@ export class AlphaTabApiBase { if ( this.settings.core.useWorkers && this.uiFacade.areWorkersSupported && - Environment.getRenderEngineFactory(this.settings).supportsWorkers + Environment.getRenderEngineFactory(this.settings.core.engine).supportsWorkers ) { this.renderer = this.uiFacade.createWorkerRenderer(); } else { @@ -208,7 +208,7 @@ export class AlphaTabApiBase { } ); } catch (e) { - this.onError(e); + this.onError(e as Error); return false; } } @@ -342,7 +342,7 @@ export class AlphaTabApiBase { let score: Score = parser.readScore(); this.renderScore(score, tracks); } catch (e) { - this.onError(e); + this.onError(e as Error); } } @@ -916,7 +916,7 @@ export class AlphaTabApiBase { } if (!this._beatMouseDown && this.settings.player.scrollMode !== ScrollMode.Off) { let scrollElement: IContainer = this.uiFacade.getScrollContainer(); - let isVertical: boolean = Environment.getLayoutEngineFactory(this.settings).vertical; + let isVertical: boolean = Environment.getLayoutEngineFactory(this.settings.display.layoutMode).vertical; let mode: ScrollMode = this.settings.player.scrollMode; if (isVertical) { // when scrolling on the y-axis, we preliminary check if the new beat/bar have diff --git a/src/DisplaySettings.ts b/src/DisplaySettings.ts index 2d3d8fafa..daca870af 100644 --- a/src/DisplaySettings.ts +++ b/src/DisplaySettings.ts @@ -1,45 +1,6 @@ import { RenderingResources } from '@src/RenderingResources'; - -/** - * Lists all stave profiles controlling which staves are shown. - */ -export enum StaveProfile { - /** - * The profile is auto detected by the track configurations. - */ - Default, - /** - * Standard music notation and guitar tablature are rendered. - */ - ScoreTab, - /** - * Only standard music notation is rendered. - */ - Score, - /** - * Only guitar tablature is rendered. - */ - Tab, - /** - * Only guitar tablature is rendered, but also rests and time signatures are not shown. - * This profile is typically used in multi-track scenarios. - */ - TabMixed -} - -/** - * Lists all layout modes that are supported. - */ -export enum LayoutMode { - /** - * Bars are aligned in rows using a fixed width. - */ - Page, - /** - * Bars are aligned horizontally in one row - */ - Horizontal -} +import { LayoutMode } from '@src/LayoutMode'; +import { StaveProfile } from '@src/StaveProfile'; /** * The display settings control how the general layout and display of alphaTab is done. diff --git a/src/Environment.ts b/src/Environment.ts index 03fe21eb3..f816e235c 100644 --- a/src/Environment.ts +++ b/src/Environment.ts @@ -1,4 +1,5 @@ -import { LayoutMode, StaveProfile } from '@src/DisplaySettings'; +import { LayoutMode} from '@src/LayoutMode'; +import { StaveProfile } from '@src/StaveProfile'; import { AlphaTexImporter } from '@src/importer/AlphaTexImporter'; import { Gp3To5Importer } from '@src/importer/Gp3To5Importer'; import { Gp7Importer } from '@src/importer/Gp7Importer'; @@ -41,14 +42,12 @@ import { WhammyBarEffectInfo } from '@src/rendering/effects/WhammyBarEffectInfo' import { WideBeatVibratoEffectInfo } from '@src/rendering/effects/WideBeatVibratoEffectInfo'; import { WideNoteVibratoEffectInfo } from '@src/rendering/effects/WideNoteVibratoEffectInfo'; import { EffectBarRendererInfo } from '@src/rendering/EffectBarRendererInfo'; -import { IScoreRenderer } from '@src/rendering/IScoreRenderer'; import { HorizontalScreenLayout } from '@src/rendering/layout/HorizontalScreenLayout'; import { PageViewLayout } from '@src/rendering/layout/PageViewLayout'; import { ScoreLayout } from '@src/rendering/layout/ScoreLayout'; import { ScoreBarRendererFactory } from '@src/rendering/ScoreBarRendererFactory'; import { ScoreRenderer } from '@src/rendering/ScoreRenderer'; import { TabBarRendererFactory } from '@src/rendering/TabBarRendererFactory'; -import { Settings } from '@src/Settings'; import { FontLoadingChecker } from '@src/util/FontLoadingChecker'; import { Logger } from '@src/Logger'; import { LeftHandTapEffectInfo } from './rendering/effects/LeftHandTapEffectInfo'; @@ -294,22 +293,19 @@ export class Environment { public static layoutEngines: Map = Environment.createDefaultLayoutEngines(); public static staveProfiles: Map = Environment.createDefaultStaveProfiles(); - public static createScoreRenderer(settings: Settings): IScoreRenderer { - return new ScoreRenderer(settings); - } - - public static getRenderEngineFactory(settings: Settings): RenderEngineFactory { - if (!settings.core.engine || !Environment.renderEngines.has(settings.core.engine)) { + + public static getRenderEngineFactory(engine:string): RenderEngineFactory { + if (!engine || !Environment.renderEngines.has(engine)) { return Environment.renderEngines.get('default')!; } - return Environment.renderEngines.get(settings.core.engine)!; + return Environment.renderEngines.get(engine)!; } - public static getLayoutEngineFactory(settings: Settings): LayoutEngineFactory { - if (!settings.display.layoutMode || !Environment.layoutEngines.has(settings.display.layoutMode)) { + public static getLayoutEngineFactory(layoutMode: LayoutMode): LayoutEngineFactory { + if (!layoutMode || !Environment.layoutEngines.has(layoutMode)) { return Environment.layoutEngines.get(LayoutMode.Page)!; } - return Environment.layoutEngines.get(settings.display.layoutMode)!; + return Environment.layoutEngines.get(layoutMode)!; } /** diff --git a/src/LayoutMode.ts b/src/LayoutMode.ts new file mode 100644 index 000000000..1c976602f --- /dev/null +++ b/src/LayoutMode.ts @@ -0,0 +1,13 @@ +/** + * Lists all layout modes that are supported. + */ + export enum LayoutMode { + /** + * Bars are aligned in rows using a fixed width. + */ + Page, + /** + * Bars are aligned horizontally in one row + */ + Horizontal +} \ No newline at end of file diff --git a/src/StaveProfile.ts b/src/StaveProfile.ts new file mode 100644 index 000000000..db91215cd --- /dev/null +++ b/src/StaveProfile.ts @@ -0,0 +1,26 @@ +/** + * Lists all stave profiles controlling which staves are shown. + */ +export enum StaveProfile { + /** + * The profile is auto detected by the track configurations. + */ + Default, + /** + * Standard music notation and guitar tablature are rendered. + */ + ScoreTab, + /** + * Only standard music notation is rendered. + */ + Score, + /** + * Only guitar tablature is rendered. + */ + Tab, + /** + * Only guitar tablature is rendered, but also rests and time signatures are not shown. + * This profile is typically used in multi-track scenarios. + */ + TabMixed +} diff --git a/src/alphatab.ts b/src/alphatab.ts index a05e51973..cac9384af 100644 --- a/src/alphatab.ts +++ b/src/alphatab.ts @@ -1,5 +1,7 @@ import { CoreSettings } from '@src/CoreSettings'; -import { DisplaySettings, LayoutMode, StaveProfile } from '@src/DisplaySettings'; +import { DisplaySettings } from '@src/DisplaySettings'; +import { LayoutMode } from '@src/LayoutMode'; +import { StaveProfile } from '@src/StaveProfile'; import { ImporterSettings } from '@src/ImporterSettings'; import { FingeringMode, NotationMode, NotationSettings, TabRhythmMode } from '@src/NotationSettings'; import { PlayerSettings, ScrollMode, VibratoPlaybackSettings } from '@src/PlayerSettings'; diff --git a/src/exporter/Gp7Exporter.ts b/src/exporter/Gp7Exporter.ts index 722ce04b2..56a59dbe0 100644 --- a/src/exporter/Gp7Exporter.ts +++ b/src/exporter/Gp7Exporter.ts @@ -1,4 +1,4 @@ -import { Logger } from '@src/alphatab'; +import { Logger } from '@src/Logger'; import { Score } from '@src/model/Score'; import { ZipEntry } from '@src/zip/ZipEntry'; import { ScoreExporter } from './ScoreExporter'; diff --git a/src/exporter/ScoreExporter.ts b/src/exporter/ScoreExporter.ts index 87e03743f..e6d06971a 100644 --- a/src/exporter/ScoreExporter.ts +++ b/src/exporter/ScoreExporter.ts @@ -1,4 +1,4 @@ -import { Settings } from '@src/alphatab'; +import { Settings } from '@src/Settings'; import { ByteBuffer } from '@src/io/ByteBuffer'; import { IWriteable } from '@src/io/IWriteable'; import { Score } from '@src/model/Score'; diff --git a/src/generated/DisplaySettingsSerializer.ts b/src/generated/DisplaySettingsSerializer.ts index aa3e694bc..e29db092a 100644 --- a/src/generated/DisplaySettingsSerializer.ts +++ b/src/generated/DisplaySettingsSerializer.ts @@ -6,8 +6,8 @@ import { DisplaySettings } from "@src/DisplaySettings"; import { JsonHelper } from "@src/io/JsonHelper"; import { RenderingResourcesSerializer } from "@src/generated/RenderingResourcesSerializer"; -import { LayoutMode } from "@src/DisplaySettings"; -import { StaveProfile } from "@src/DisplaySettings"; +import { LayoutMode } from "@src/LayoutMode"; +import { StaveProfile } from "@src/StaveProfile"; export class DisplaySettingsSerializer { public static fromJson(obj: DisplaySettings, m: unknown): void { if (!m) { diff --git a/src/importer/CapellaImporter.ts b/src/importer/CapellaImporter.ts index 2441deeb2..132b52323 100644 --- a/src/importer/CapellaImporter.ts +++ b/src/importer/CapellaImporter.ts @@ -55,7 +55,7 @@ export class CapellaImporter extends ScoreImporter { let score: Score = capellaParser.score; return score; } catch (e) { - throw new UnsupportedFormatError('Failed to parse CapXML', e); + throw new UnsupportedFormatError('Failed to parse CapXML', e as Error); } } } diff --git a/src/importer/CapellaParser.ts b/src/importer/CapellaParser.ts index 59d9c714b..7f2085038 100644 --- a/src/importer/CapellaParser.ts +++ b/src/importer/CapellaParser.ts @@ -21,7 +21,7 @@ import { XmlNode, XmlNodeType } from '@src/xml/XmlNode'; import { BeamDirection } from '@src/rendering/utils/BeamDirection'; import { TextAlign } from '@src/platform/ICanvas'; import { ModelUtils } from '@src/model/ModelUtils'; -import { Logger } from '@src/alphatab'; +import { Logger } from '@src/Logger'; import { Fermata, FermataType } from '@src/model/Fermata'; import { DynamicValue } from '@src/model/DynamicValue'; import { Ottavia } from '@src/model/Ottavia'; @@ -126,7 +126,7 @@ export class CapellaParser { try { dom.parse(xml); } catch (e) { - throw new UnsupportedFormatError('Could not parse XML', e); + throw new UnsupportedFormatError('Could not parse XML', e as Error); } this.parseDom(dom); diff --git a/src/importer/Gp7Importer.ts b/src/importer/Gp7Importer.ts index aec1cbc97..d2d36143a 100644 --- a/src/importer/Gp7Importer.ts +++ b/src/importer/Gp7Importer.ts @@ -33,7 +33,7 @@ export class Gp7Importer extends ScoreImporter { try { entries = fileSystem.read(); } catch (e) { - throw new UnsupportedFormatError('No Zip archive', e); + throw new UnsupportedFormatError('No Zip archive', e as Error); } Logger.debug(this.name, 'Zip entries loaded'); diff --git a/src/importer/GpifParser.ts b/src/importer/GpifParser.ts index d0252d67a..d18818cdc 100644 --- a/src/importer/GpifParser.ts +++ b/src/importer/GpifParser.ts @@ -45,7 +45,7 @@ import { MusicFontSymbol } from '@src/model/MusicFontSymbol'; import { TextBaseline } from '@src/platform/ICanvas'; import { BeatCloner } from '@src/generated/model/BeatCloner'; import { NoteCloner } from '@src/generated/model/NoteCloner'; -import { Logger } from '@src/alphatab'; +import { Logger } from '@src/Logger'; /** * This structure represents a duration within a gpif @@ -136,7 +136,7 @@ export class GpifParser { try { dom.parse(xml); } catch (e) { - throw new UnsupportedFormatError('Could not parse XML', e); + throw new UnsupportedFormatError('Could not parse XML', e as Error); } this.parseDom(dom); diff --git a/src/io/JsonHelper.ts b/src/io/JsonHelper.ts index 7a3f3a08b..3a648a1b4 100644 --- a/src/io/JsonHelper.ts +++ b/src/io/JsonHelper.ts @@ -1,5 +1,4 @@ -import { AlphaTabError } from "@src/alphatab"; -import { AlphaTabErrorType } from "@src/AlphaTabError"; +import { AlphaTabError, AlphaTabErrorType } from "@src/AlphaTabError"; /** * @partial diff --git a/src/platform/javascript/AlphaSynthWebWorkerApi.ts b/src/platform/javascript/AlphaSynthWebWorkerApi.ts index 70be571cf..83f066856 100644 --- a/src/platform/javascript/AlphaSynthWebWorkerApi.ts +++ b/src/platform/javascript/AlphaSynthWebWorkerApi.ts @@ -11,7 +11,7 @@ import { JsonConverter } from '@src/model/JsonConverter'; import { Logger } from '@src/Logger'; import { LogLevel } from '@src/LogLevel'; import { SynthConstants } from '@src/synth/SynthConstants'; -import { ProgressEventArgs } from '@src/alphatab'; +import { ProgressEventArgs } from '@src/ProgressEventArgs'; import { FileLoadError } from '@src/FileLoadError'; import { MidiEventsPlayedEventArgs } from '@src/synth/MidiEventsPlayedEventArgs'; import { MidiEventType } from '@src/midi/MidiEvent'; diff --git a/src/platform/javascript/AlphaTabApi.ts b/src/platform/javascript/AlphaTabApi.ts index 2d6186e13..ebf186cab 100644 --- a/src/platform/javascript/AlphaTabApi.ts +++ b/src/platform/javascript/AlphaTabApi.ts @@ -2,7 +2,7 @@ import { AlphaTabApiBase } from '@src/AlphaTabApiBase'; import { AlphaSynthMidiFileHandler } from '@src/midi/AlphaSynthMidiFileHandler'; import { MidiFileGenerator } from '@src/midi/MidiFileGenerator'; import { MidiFile } from '@src/midi/MidiFile'; -import { LayoutMode } from '@src/DisplaySettings'; +import { LayoutMode } from '@src/LayoutMode'; import { IEventEmitterOfT, EventEmitterOfT } from '@src/EventEmitter'; import { Track } from '@src/model/Track'; import { AlphaSynthWebWorkerApi } from '@src/platform/javascript/AlphaSynthWebWorkerApi'; diff --git a/src/platform/javascript/AlphaTabWebWorker.ts b/src/platform/javascript/AlphaTabWebWorker.ts index 4fa6dfd46..d96e338ec 100644 --- a/src/platform/javascript/AlphaTabWebWorker.ts +++ b/src/platform/javascript/AlphaTabWebWorker.ts @@ -97,7 +97,7 @@ export class AlphaTabWebWorker { try { this._renderer.renderScore(score, trackIndexes); } catch (e) { - this.error(e); + this.error(e as Error); } } diff --git a/src/platform/javascript/BrowserUiFacade.ts b/src/platform/javascript/BrowserUiFacade.ts index cf66be44d..feabc666c 100644 --- a/src/platform/javascript/BrowserUiFacade.ts +++ b/src/platform/javascript/BrowserUiFacade.ts @@ -26,9 +26,8 @@ import { Cursors } from '@src/platform/Cursors'; import { JsonConverter } from '@src/model/JsonConverter'; import { SettingsSerializer } from '@src/generated/SettingsSerializer'; import { WebPlatform } from './WebPlatform'; -import { AlphaTabError } from '@src/AlphaTabError'; -import { AlphaTabErrorType } from '@src/alphatab'; -import { AlphaSynthAudioWorkletOutput } from './AlphaSynthAudioWorkletOutput'; +import { AlphaTabError, AlphaTabErrorType } from '@src/AlphaTabError'; +import { AlphaSynthAudioWorkletOutput } from '@src/platform/javascript/AlphaSynthAudioWorkletOutput'; /** * @target web diff --git a/src/rendering/ScoreRenderer.ts b/src/rendering/ScoreRenderer.ts index 65c931aca..c1df2abfc 100644 --- a/src/rendering/ScoreRenderer.ts +++ b/src/rendering/ScoreRenderer.ts @@ -1,4 +1,4 @@ -import { LayoutMode } from '@src/DisplaySettings'; +import { LayoutMode } from '@src/LayoutMode'; import { Environment } from '@src/Environment'; import { EventEmitter, IEventEmitter, IEventEmitterOfT, EventEmitterOfT } from '@src/EventEmitter'; import { Score } from '@src/model/Score'; @@ -48,7 +48,7 @@ export class ScoreRenderer implements IScoreRenderer { private recreateCanvas(): boolean { if (this._currentRenderEngine !== this.settings.core.engine) { - this.canvas = Environment.getRenderEngineFactory(this.settings).createCanvas(); + this.canvas = Environment.getRenderEngineFactory(this.settings.core.engine).createCanvas(); this._currentRenderEngine = this.settings.core.engine; return true; } @@ -57,7 +57,7 @@ export class ScoreRenderer implements IScoreRenderer { private recreateLayout(): boolean { if (!this.layout || this._currentLayoutMode !== this.settings.display.layoutMode) { - this.layout = Environment.getLayoutEngineFactory(this.settings).createLayout(this); + this.layout = Environment.getLayoutEngineFactory(this.settings.display.layoutMode).createLayout(this); this._currentLayoutMode = this.settings.display.layoutMode; return true; } diff --git a/src/rendering/glyphs/ScoreBeatGlyph.ts b/src/rendering/glyphs/ScoreBeatGlyph.ts index d329c0dac..626362b12 100644 --- a/src/rendering/glyphs/ScoreBeatGlyph.ts +++ b/src/rendering/glyphs/ScoreBeatGlyph.ts @@ -21,7 +21,7 @@ import { NoteXPosition, NoteYPosition } from '../BarRendererBase'; import { BeatBounds } from '../utils/BeatBounds'; import { PercussionMapper } from '../../model/PercussionMapper'; import { PercussionNoteHeadGlyph } from './PercussionNoteHeadGlyph'; -import { Logger } from '@src/alphatab'; +import { Logger } from '@src/Logger'; import { ArticStaccatoAboveGlyph } from './ArticStaccatoAboveGlyph'; import { MusicFontSymbol } from '../../model/MusicFontSymbol'; import { ICanvas, TextBaseline } from '@src/platform/ICanvas'; diff --git a/src/rendering/layout/ScoreLayout.ts b/src/rendering/layout/ScoreLayout.ts index 4dbf1134a..081dab281 100644 --- a/src/rendering/layout/ScoreLayout.ts +++ b/src/rendering/layout/ScoreLayout.ts @@ -1,4 +1,4 @@ -import { StaveProfile } from '@src/DisplaySettings'; +import { StaveProfile } from '@src/StaveProfile'; import { Environment } from '@src/Environment'; import { Bar } from '@src/model/Bar'; import { Chord } from '@src/model/Chord'; diff --git a/src/synth/AlphaSynth.ts b/src/synth/AlphaSynth.ts index f2ddd3168..4aafaf526 100644 --- a/src/synth/AlphaSynth.ts +++ b/src/synth/AlphaSynth.ts @@ -312,7 +312,7 @@ export class AlphaSynth implements IAlphaSynth { this.checkReadyForPlayback(); } catch (e) { Logger.error('AlphaSynth', 'Could not load soundfont from bytes ' + e); - (this.soundFontLoadFailed as EventEmitterOfT).trigger(e); + (this.soundFontLoadFailed as EventEmitterOfT).trigger(e as Error); } } @@ -342,7 +342,7 @@ export class AlphaSynth implements IAlphaSynth { this.tickPosition = 0; } catch (e) { Logger.error('AlphaSynth', 'Could not load midi from model ' + e); - (this.midiLoadFailed as EventEmitterOfT).trigger(e); + (this.midiLoadFailed as EventEmitterOfT).trigger(e as Error); } } diff --git a/test/audio/FlatMidiEventGenerator.ts b/test/audio/FlatMidiEventGenerator.ts index 0b696ee58..9c1a4eefd 100644 --- a/test/audio/FlatMidiEventGenerator.ts +++ b/test/audio/FlatMidiEventGenerator.ts @@ -3,7 +3,7 @@ import { IMidiFileHandler } from '@src/midi/IMidiFileHandler'; import { DynamicValue } from '@src/model/DynamicValue'; export class FlatMidiEventGenerator implements IMidiFileHandler { - public midiEvents: MidiEvent[]; + public midiEvents: FlatMidiEvent[]; public constructor() { this.midiEvents = []; @@ -62,7 +62,7 @@ export class FlatMidiEventGenerator implements IMidiFileHandler { } } -export class MidiEvent { +export class FlatMidiEvent { public tick: number = 0; public constructor(tick: number) { @@ -73,7 +73,7 @@ export class MidiEvent { return `Tick[${this.tick}]`; } - protected equals_FlatMidiEventGenerator_MidiEvent(other: MidiEvent): boolean { + protected equals_FlatMidiEventGenerator_MidiEvent(other: FlatMidiEvent): boolean { return this.tick === other.tick; } @@ -86,14 +86,14 @@ export class MidiEvent { return true; } - if (obj instanceof MidiEvent) { + if (obj instanceof FlatMidiEvent) { return this.tick === obj.tick; } return false; } } -export class TempoEvent extends MidiEvent { +export class TempoEvent extends FlatMidiEvent { public tempo: number = 0; public constructor(tick: number, tempo: number) { @@ -118,7 +118,7 @@ export class TempoEvent extends MidiEvent { } } -export class TimeSignatureEvent extends MidiEvent { +export class TimeSignatureEvent extends FlatMidiEvent { public numerator: number = 0; public denominator: number = 0; @@ -145,7 +145,7 @@ export class TimeSignatureEvent extends MidiEvent { } } -export class TrackMidiEvent extends MidiEvent { +export class TrackMidiEvent extends FlatMidiEvent { public track: number = 0; public constructor(tick: number, track: number) { diff --git a/test/audio/MidiFileGenerator.test.ts b/test/audio/MidiFileGenerator.test.ts index 85c3d9d57..53e701cff 100644 --- a/test/audio/MidiFileGenerator.test.ts +++ b/test/audio/MidiFileGenerator.test.ts @@ -19,7 +19,7 @@ import { NoteBendEvent, ControlChangeEvent, FlatMidiEventGenerator, - MidiEvent as FlatMidiEvent, + FlatMidiEvent as FlatMidiEvent, NoteEvent, ProgramChangeEvent, TempoEvent, diff --git a/test/importer/AlphaTexImporter.test.ts b/test/importer/AlphaTexImporter.test.ts index 28f95d93f..509c1f85d 100644 --- a/test/importer/AlphaTexImporter.test.ts +++ b/test/importer/AlphaTexImporter.test.ts @@ -1,4 +1,4 @@ -import { StaveProfile } from '@src/DisplaySettings'; +import { StaveProfile } from '@src/StaveProfile'; import { AlphaTexImporter } from '@src/importer/AlphaTexImporter'; import { UnsupportedFormatError } from '@src/importer/UnsupportedFormatError'; import { Beat } from '@src/model/Beat'; diff --git a/test/importer/Gp5Importer.test.ts b/test/importer/Gp5Importer.test.ts index 7a8e4f5fc..c6fd22b8a 100644 --- a/test/importer/Gp5Importer.test.ts +++ b/test/importer/Gp5Importer.test.ts @@ -1,4 +1,4 @@ -import { Settings } from '@src/alphatab'; +import { Settings } from '@src/Settings'; import { Beat } from '@src/model/Beat'; import { Score } from '@src/model/Score'; import { GpImporterTestHelper } from '@test/importer/GpImporterTestHelper'; diff --git a/test/importer/MusicXmlImporterTestHelper.ts b/test/importer/MusicXmlImporterTestHelper.ts index 961ca7003..3d6d49913 100644 --- a/test/importer/MusicXmlImporterTestHelper.ts +++ b/test/importer/MusicXmlImporterTestHelper.ts @@ -1,4 +1,4 @@ -import { LayoutMode } from '@src/DisplaySettings'; +import { LayoutMode } from '@src/LayoutMode'; import { MusicXmlImporter } from '@src/importer/MusicXmlImporter'; import { UnsupportedFormatError } from '@src/importer/UnsupportedFormatError'; import { ByteBuffer } from '@src/io/ByteBuffer'; diff --git a/test/model/JsonConverter.test.ts b/test/model/JsonConverter.test.ts index 6b212b7a5..8f22ccb9f 100644 --- a/test/model/JsonConverter.test.ts +++ b/test/model/JsonConverter.test.ts @@ -1,11 +1,14 @@ -import { FingeringMode, LayoutMode, LogLevel, NotationMode, Settings, StaveProfile } from "@src/alphatab"; +import { LayoutMode } from "@src/LayoutMode"; +import { LogLevel } from "@src/LogLevel"; +import { StaveProfile } from "@src/StaveProfile"; +import { Settings } from "@src/Settings"; import { SettingsSerializer } from "@src/generated/SettingsSerializer"; import { ScoreLoader } from "@src/importer/ScoreLoader"; import { Color } from "@src/model/Color"; import { Font, FontStyle } from "@src/model/Font"; import { JsonConverter } from "@src/model/JsonConverter"; import { Score } from "@src/model/Score"; -import { NotationElement, TabRhythmMode } from "@src/NotationSettings"; +import { NotationElement, TabRhythmMode, NotationMode, FingeringMode} from "@src/NotationSettings"; import { TestPlatform } from "@test/TestPlatform"; import { ComparisonHelpers } from "./ComparisonHelpers"; diff --git a/test/visualTests/VisualTestHelper.ts b/test/visualTests/VisualTestHelper.ts index cb8c7628d..05c894759 100644 --- a/test/visualTests/VisualTestHelper.ts +++ b/test/visualTests/VisualTestHelper.ts @@ -143,7 +143,7 @@ export class VisualTestHelper { await Promise.all(promises); for (const font of allFonts) { - document.fonts.add(font); + (document.fonts as any).add(font); } } diff --git a/test/visualTests/features/General.test.ts b/test/visualTests/features/General.test.ts index 4be0e0471..b1ddc1f05 100644 --- a/test/visualTests/features/General.test.ts +++ b/test/visualTests/features/General.test.ts @@ -1,4 +1,4 @@ -import { StaveProfile } from '@src/DisplaySettings'; +import { StaveProfile } from '@src/StaveProfile'; import { Settings } from '@src/Settings'; import { VisualTestHelper } from '@test/visualTests/VisualTestHelper'; diff --git a/test/visualTests/features/GuitarTabs.test.ts b/test/visualTests/features/GuitarTabs.test.ts index d098f360e..e84f52af5 100644 --- a/test/visualTests/features/GuitarTabs.test.ts +++ b/test/visualTests/features/GuitarTabs.test.ts @@ -1,4 +1,4 @@ -import { StaveProfile } from '@src/DisplaySettings'; +import { StaveProfile } from '@src/StaveProfile'; import { TabRhythmMode } from '@src/NotationSettings'; import { Settings } from '@src/Settings'; import { VisualTestHelper } from '@test/visualTests/VisualTestHelper'; diff --git a/test/visualTests/features/Layout.test.ts b/test/visualTests/features/Layout.test.ts index 8e35e83dc..1d4968a8f 100644 --- a/test/visualTests/features/Layout.test.ts +++ b/test/visualTests/features/Layout.test.ts @@ -1,4 +1,4 @@ -import { LayoutMode } from '@src/DisplaySettings'; +import { LayoutMode } from '@src/LayoutMode'; import { Settings } from '@src/Settings'; import { VisualTestHelper } from '@test/visualTests/VisualTestHelper'; diff --git a/test/visualTests/features/MusicNotation.test.ts b/test/visualTests/features/MusicNotation.test.ts index b98ba1e50..43e89a6ee 100644 --- a/test/visualTests/features/MusicNotation.test.ts +++ b/test/visualTests/features/MusicNotation.test.ts @@ -1,4 +1,5 @@ -import { LayoutMode, StaveProfile } from '@src/DisplaySettings'; +import { LayoutMode } from '@src/LayoutMode'; +import { StaveProfile } from '@src/StaveProfile'; import { Settings } from '@src/Settings'; import { VisualTestHelper } from '@test/visualTests/VisualTestHelper'; import { NotationElement } from '@src/NotationSettings'; diff --git a/test/visualTests/features/NotationElements.test.ts b/test/visualTests/features/NotationElements.test.ts index a4fe63b75..55b9b19ff 100644 --- a/test/visualTests/features/NotationElements.test.ts +++ b/test/visualTests/features/NotationElements.test.ts @@ -1,4 +1,4 @@ -import { LayoutMode } from '@src/DisplaySettings'; +import { LayoutMode } from '@src/LayoutMode'; import { Settings } from '@src/Settings'; import { VisualTestHelper } from '@test/visualTests/VisualTestHelper'; import { NotationElement } from '@src/NotationSettings'; diff --git a/test/visualTests/features/NotationLegend.test.ts b/test/visualTests/features/NotationLegend.test.ts index c565e0459..4bce469d2 100644 --- a/test/visualTests/features/NotationLegend.test.ts +++ b/test/visualTests/features/NotationLegend.test.ts @@ -1,4 +1,4 @@ -import { LayoutMode } from '@src/DisplaySettings'; +import { LayoutMode } from '@src/LayoutMode'; import { Settings } from '@src/Settings'; import { VisualTestHelper } from '@test/visualTests/VisualTestHelper'; import { TestPlatform } from '@test/TestPlatform';