Build should pass again
This commit is contained in:
parent
e6233405ff
commit
515765e296
1
.gitignore
vendored
1
.gitignore
vendored
@ -34,6 +34,7 @@ npm-debug.log
|
||||
yarn-error.log
|
||||
testem.log
|
||||
/typings
|
||||
.phpunit.result.cache
|
||||
|
||||
# e2e
|
||||
/e2e/*.js
|
||||
|
570
package-lock.json
generated
570
package-lock.json
generated
@ -5,12 +5,12 @@
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@angular-devkit/architect": {
|
||||
"version": "0.803.21",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.21.tgz",
|
||||
"integrity": "sha512-E2K/YexIWVyKM/xmyxvDjkJf+wX9u4c8YYpNaK4htsRzA06juc7N1MhlL/jURZiRl5b/K9sapYeq3tMX76saxA==",
|
||||
"version": "0.803.22",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.22.tgz",
|
||||
"integrity": "sha512-5Gr0LH+Hjd/NLdmi660VBoo3WbzQM7/yeG+ziktb7hbeVaYK4Mejtcg/DJnCoZ3hzlZuZokWVwvpdFo+A9xKbg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@angular-devkit/core": "8.3.21",
|
||||
"@angular-devkit/core": "8.3.22",
|
||||
"rxjs": "6.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
@ -26,23 +26,23 @@
|
||||
}
|
||||
},
|
||||
"@angular-devkit/build-angular": {
|
||||
"version": "0.803.21",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.803.21.tgz",
|
||||
"integrity": "sha512-flfgflvfpwdsm3x/U7QnfbtyZPEbsVipzQAoao1Zo58Beq1a+NsKsWbjrF/x4TSoI2czt0OVWXNytlfXM7LMhg==",
|
||||
"version": "0.803.22",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.803.22.tgz",
|
||||
"integrity": "sha512-2q9qLsD52D4GACUAuQhvkgQ7vLAhZzdU0jzfs74RTxqUZ3PS6Ltrrwpdg2kp9RlQ53+nSCYjWBDLk1CxoEt4pg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@angular-devkit/architect": "0.803.21",
|
||||
"@angular-devkit/build-optimizer": "0.803.21",
|
||||
"@angular-devkit/build-webpack": "0.803.21",
|
||||
"@angular-devkit/core": "8.3.21",
|
||||
"@angular-devkit/architect": "0.803.22",
|
||||
"@angular-devkit/build-optimizer": "0.803.22",
|
||||
"@angular-devkit/build-webpack": "0.803.22",
|
||||
"@angular-devkit/core": "8.3.22",
|
||||
"@babel/core": "7.7.5",
|
||||
"@babel/preset-env": "7.7.6",
|
||||
"@ngtools/webpack": "8.3.21",
|
||||
"@ngtools/webpack": "8.3.22",
|
||||
"ajv": "6.10.2",
|
||||
"autoprefixer": "9.6.1",
|
||||
"browserslist": "4.6.6",
|
||||
"browserslist": "4.8.3",
|
||||
"cacache": "12.0.2",
|
||||
"caniuse-lite": "1.0.30000989",
|
||||
"caniuse-lite": "1.0.30001019",
|
||||
"circular-dependency-plugin": "5.2.0",
|
||||
"clean-css": "4.2.1",
|
||||
"copy-webpack-plugin": "5.1.1",
|
||||
@ -119,9 +119,9 @@
|
||||
}
|
||||
},
|
||||
"@angular-devkit/build-optimizer": {
|
||||
"version": "0.803.21",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.803.21.tgz",
|
||||
"integrity": "sha512-gNN6kPaF4phZco3TmsrNr9tIEKXYsoSeoaUiDUfgmCYwa7fAqM8Ojh7HX6IQuB2PpVmEwKGlCcSh6xDtB33NjA==",
|
||||
"version": "0.803.22",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.803.22.tgz",
|
||||
"integrity": "sha512-VIDeQcBn88PjHBTen3BRVA7DJiKEJdDwukx61mUvUDOcY7S5Ot5WqG0nrZifRjha17Z+fl3XuwS9TZNYmlF7WQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"loader-utils": "1.2.3",
|
||||
@ -146,13 +146,13 @@
|
||||
}
|
||||
},
|
||||
"@angular-devkit/build-webpack": {
|
||||
"version": "0.803.21",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.803.21.tgz",
|
||||
"integrity": "sha512-zCFVla/Xdk8qGVybvnHtoKml2h0/ShasSjT55VNZO1XaTCMqYkQEwwqSGEiVajpauafWjKrKxxBhsmWoI4efAA==",
|
||||
"version": "0.803.22",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.803.22.tgz",
|
||||
"integrity": "sha512-RDLAhKHfTFzthzeawHEefYB1MxHiU2I32QzXI3XTCpR2XySw5JG9jIVIcsyDHQH1JtIfpHGq8vgfiTsE3r0YWA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@angular-devkit/architect": "0.803.21",
|
||||
"@angular-devkit/core": "8.3.21",
|
||||
"@angular-devkit/architect": "0.803.22",
|
||||
"@angular-devkit/core": "8.3.22",
|
||||
"rxjs": "6.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
@ -168,9 +168,9 @@
|
||||
}
|
||||
},
|
||||
"@angular-devkit/core": {
|
||||
"version": "8.3.21",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.21.tgz",
|
||||
"integrity": "sha512-BYyVbrbys535FplX0+GVOlYBg/cyk1U5SRhSxRRFZYi9epVlEBBPk8/6wV4cQPGb6EwXkVj7YtPWXjXcGfzWmA==",
|
||||
"version": "8.3.22",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.22.tgz",
|
||||
"integrity": "sha512-lOEYcvK3MktjR9YZT/cUjiQE5dZxl8rZ/vgWgwDiL7RtzfXTt8lPapoJe7YKS53gLbUYiBNPCtTyTAqnslWgGA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "6.10.2",
|
||||
@ -198,28 +198,15 @@
|
||||
}
|
||||
},
|
||||
"@angular-devkit/schematics": {
|
||||
"version": "8.3.21",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.21.tgz",
|
||||
"integrity": "sha512-+wH0362CRr/SijVX4w2baY2ANZ4scQ1k2xO8lT+NMeZQkw3IJQPOfwk1IaqiAs2xuBJZcSDH1Gn80+Jh4Dit7w==",
|
||||
"version": "8.3.22",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.22.tgz",
|
||||
"integrity": "sha512-ETLdV1ftT+ZuuiHl6FjFQ4XLQznWMcxWognX+qgByn+DQOXsYRRvZK1L5eG/SG8CKJ8NL5oteTDloDnghARHFw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@angular-devkit/core": "8.3.21",
|
||||
"@angular-devkit/core": "8.3.22",
|
||||
"rxjs": "6.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@angular-devkit/core": {
|
||||
"version": "8.3.21",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.21.tgz",
|
||||
"integrity": "sha512-BYyVbrbys535FplX0+GVOlYBg/cyk1U5SRhSxRRFZYi9epVlEBBPk8/6wV4cQPGb6EwXkVj7YtPWXjXcGfzWmA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "6.10.2",
|
||||
"fast-json-stable-stringify": "2.0.0",
|
||||
"magic-string": "0.25.3",
|
||||
"rxjs": "6.4.0",
|
||||
"source-map": "0.7.3"
|
||||
}
|
||||
},
|
||||
"rxjs": {
|
||||
"version": "6.4.0",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
|
||||
@ -228,12 +215,6 @@
|
||||
"requires": {
|
||||
"tslib": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.7.3",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
|
||||
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -246,16 +227,16 @@
|
||||
}
|
||||
},
|
||||
"@angular/cli": {
|
||||
"version": "8.3.21",
|
||||
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.21.tgz",
|
||||
"integrity": "sha512-ZZpA7mMfIobFT06rBNxm8vucAh8W2s0huJZ4iL0BPujnhIr71PL+gDwssySWDEz2q6i4CkH9QRH76DHhtL6VSQ==",
|
||||
"version": "8.3.22",
|
||||
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.22.tgz",
|
||||
"integrity": "sha512-OT2rzwnxwI0ETP7rXCxjxsIAZEYo9wHP/5rRbu3m15GlQ3Bclq34ZDRwC/bRxXL5+1DfmhAs9AjtYNoFoDM4Tg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@angular-devkit/architect": "0.803.21",
|
||||
"@angular-devkit/core": "8.3.21",
|
||||
"@angular-devkit/schematics": "8.3.21",
|
||||
"@schematics/angular": "8.3.21",
|
||||
"@schematics/update": "0.803.21",
|
||||
"@angular-devkit/architect": "0.803.22",
|
||||
"@angular-devkit/core": "8.3.22",
|
||||
"@angular-devkit/schematics": "8.3.22",
|
||||
"@schematics/angular": "8.3.22",
|
||||
"@schematics/update": "0.803.22",
|
||||
"@yarnpkg/lockfile": "1.1.0",
|
||||
"ansi-colors": "4.1.1",
|
||||
"debug": "^4.1.1",
|
||||
@ -273,29 +254,6 @@
|
||||
"uuid": "^3.3.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"@angular-devkit/architect": {
|
||||
"version": "0.803.21",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.21.tgz",
|
||||
"integrity": "sha512-E2K/YexIWVyKM/xmyxvDjkJf+wX9u4c8YYpNaK4htsRzA06juc7N1MhlL/jURZiRl5b/K9sapYeq3tMX76saxA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@angular-devkit/core": "8.3.21",
|
||||
"rxjs": "6.4.0"
|
||||
}
|
||||
},
|
||||
"@angular-devkit/core": {
|
||||
"version": "8.3.21",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.21.tgz",
|
||||
"integrity": "sha512-BYyVbrbys535FplX0+GVOlYBg/cyk1U5SRhSxRRFZYi9epVlEBBPk8/6wV4cQPGb6EwXkVj7YtPWXjXcGfzWmA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "6.10.2",
|
||||
"fast-json-stable-stringify": "2.0.0",
|
||||
"magic-string": "0.25.3",
|
||||
"rxjs": "6.4.0",
|
||||
"source-map": "0.7.3"
|
||||
}
|
||||
},
|
||||
"ansi-colors": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
|
||||
@ -326,26 +284,11 @@
|
||||
"glob": "^7.1.3"
|
||||
}
|
||||
},
|
||||
"rxjs": {
|
||||
"version": "6.4.0",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
|
||||
"integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.7.3",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
|
||||
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2187,12 +2130,12 @@
|
||||
}
|
||||
},
|
||||
"@ngtools/webpack": {
|
||||
"version": "8.3.21",
|
||||
"resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.3.21.tgz",
|
||||
"integrity": "sha512-DGqmFQ52sV4uB3y3spQTNLa69oU5cwd1yIqMB4GSM+Qp+hozdzrPA2gVH90N2DDhWe8icsSQHAtZQiR9+BDL8g==",
|
||||
"version": "8.3.22",
|
||||
"resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.3.22.tgz",
|
||||
"integrity": "sha512-MES7Q0k6GpQEY74cxElUVy7jIaDBSLvY+eOUN2GKL5CznvBSp3+U5px6X7ZjPGzCp7no1L1JkV9g2e0hPatlcw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@angular-devkit/core": "8.3.21",
|
||||
"@angular-devkit/core": "8.3.22",
|
||||
"enhanced-resolve": "4.1.0",
|
||||
"rxjs": "6.4.0",
|
||||
"tree-kill": "1.2.1",
|
||||
@ -2211,53 +2154,23 @@
|
||||
}
|
||||
},
|
||||
"@schematics/angular": {
|
||||
"version": "8.3.21",
|
||||
"resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.21.tgz",
|
||||
"integrity": "sha512-KahQ+dHvTsGOZwY6IdzqJZLDEn0G89rrK3OY+7okZujoaLM+LXhxlPoznW1udnZJVTa3VNxYGx11fkgLtRJRqA==",
|
||||
"version": "8.3.22",
|
||||
"resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.22.tgz",
|
||||
"integrity": "sha512-vD+UgPdbEoFPOH6xe2laFpHn/MC9R5C4A/+J9yQ6HBg5kt1YdyIBakvPOcXQCyWr5VZzDmTyMO76rd3zaef3DQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@angular-devkit/core": "8.3.21",
|
||||
"@angular-devkit/schematics": "8.3.21"
|
||||
},
|
||||
"dependencies": {
|
||||
"@angular-devkit/core": {
|
||||
"version": "8.3.21",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.21.tgz",
|
||||
"integrity": "sha512-BYyVbrbys535FplX0+GVOlYBg/cyk1U5SRhSxRRFZYi9epVlEBBPk8/6wV4cQPGb6EwXkVj7YtPWXjXcGfzWmA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "6.10.2",
|
||||
"fast-json-stable-stringify": "2.0.0",
|
||||
"magic-string": "0.25.3",
|
||||
"rxjs": "6.4.0",
|
||||
"source-map": "0.7.3"
|
||||
}
|
||||
},
|
||||
"rxjs": {
|
||||
"version": "6.4.0",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
|
||||
"integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.7.3",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
|
||||
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
|
||||
"dev": true
|
||||
}
|
||||
"@angular-devkit/core": "8.3.22",
|
||||
"@angular-devkit/schematics": "8.3.22"
|
||||
}
|
||||
},
|
||||
"@schematics/update": {
|
||||
"version": "0.803.21",
|
||||
"resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.803.21.tgz",
|
||||
"integrity": "sha512-D3BRvEBF2cJEgogvFaNOfqtTFHHv/ctSRfOeAYWjUxILtb+2DpuZ9h5QYDFhN9MPgz/vRaOqFORa3sEZCRkX4g==",
|
||||
"version": "0.803.22",
|
||||
"resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.803.22.tgz",
|
||||
"integrity": "sha512-X+1sJ7YadcYxDqcLX7l7MEAIL3SHIXpCqToQdAZbAE06NdTFvg5eqiKreSdmm7ZdfL0dBe6oXi/yCDVMoL2zcw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@angular-devkit/core": "8.3.21",
|
||||
"@angular-devkit/schematics": "8.3.21",
|
||||
"@angular-devkit/core": "8.3.22",
|
||||
"@angular-devkit/schematics": "8.3.22",
|
||||
"@yarnpkg/lockfile": "1.1.0",
|
||||
"ini": "1.3.5",
|
||||
"pacote": "9.5.5",
|
||||
@ -2266,19 +2179,6 @@
|
||||
"semver-intersect": "1.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@angular-devkit/core": {
|
||||
"version": "8.3.21",
|
||||
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.21.tgz",
|
||||
"integrity": "sha512-BYyVbrbys535FplX0+GVOlYBg/cyk1U5SRhSxRRFZYi9epVlEBBPk8/6wV4cQPGb6EwXkVj7YtPWXjXcGfzWmA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "6.10.2",
|
||||
"fast-json-stable-stringify": "2.0.0",
|
||||
"magic-string": "0.25.3",
|
||||
"rxjs": "6.4.0",
|
||||
"source-map": "0.7.3"
|
||||
}
|
||||
},
|
||||
"rxjs": {
|
||||
"version": "6.4.0",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
|
||||
@ -2293,12 +2193,6 @@
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.7.3",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
|
||||
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2364,9 +2258,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "12.12.22",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.22.tgz",
|
||||
"integrity": "sha512-r5i93jqbPWGXYXxianGATOxTelkp6ih/U0WVnvaqAvTqM+0U6J3kw6Xk6uq/dWNRkEVw/0SLcO5ORXbVNz4FMQ==",
|
||||
"version": "13.1.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.1.6.tgz",
|
||||
"integrity": "sha512-Jg1F+bmxcpENHP23sVKkNuU3uaxPnsBMW0cLjleiikFKomJQbsn0Cqk2yDvQArqzZN6ABfBkZ0To7pQ8sLdWDg==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/q": {
|
||||
@ -2753,14 +2647,6 @@
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"type-fest": "^0.8.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"type-fest": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
|
||||
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"ansi-html": {
|
||||
@ -3650,14 +3536,14 @@
|
||||
}
|
||||
},
|
||||
"browserslist": {
|
||||
"version": "4.6.6",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz",
|
||||
"integrity": "sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==",
|
||||
"version": "4.8.3",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.3.tgz",
|
||||
"integrity": "sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"caniuse-lite": "^1.0.30000984",
|
||||
"electron-to-chromium": "^1.3.191",
|
||||
"node-releases": "^1.1.25"
|
||||
"caniuse-lite": "^1.0.30001017",
|
||||
"electron-to-chromium": "^1.3.322",
|
||||
"node-releases": "^1.1.44"
|
||||
}
|
||||
},
|
||||
"browserstack": {
|
||||
@ -3858,9 +3744,9 @@
|
||||
}
|
||||
},
|
||||
"caniuse-lite": {
|
||||
"version": "1.0.30000989",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz",
|
||||
"integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==",
|
||||
"version": "1.0.30001019",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001019.tgz",
|
||||
"integrity": "sha512-6ljkLtF1KM5fQ+5ZN0wuyVvvebJxgJPTmScOMaFuQN2QuOzvRJnWSKfzQskQU5IOU4Gap3zasYPIinzwUjoj/g==",
|
||||
"dev": true
|
||||
},
|
||||
"canonical-path": {
|
||||
@ -3925,9 +3811,9 @@
|
||||
}
|
||||
},
|
||||
"chownr": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz",
|
||||
"integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==",
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
|
||||
"integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
|
||||
"dev": true
|
||||
},
|
||||
"chrome-trace-event": {
|
||||
@ -4162,18 +4048,18 @@
|
||||
"dev": true
|
||||
},
|
||||
"compressible": {
|
||||
"version": "2.0.17",
|
||||
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz",
|
||||
"integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==",
|
||||
"version": "2.0.18",
|
||||
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
|
||||
"integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime-db": ">= 1.40.0 < 2"
|
||||
"mime-db": ">= 1.43.0 < 2"
|
||||
},
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.42.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz",
|
||||
"integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==",
|
||||
"version": "1.43.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
|
||||
"integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
@ -4454,37 +4340,20 @@
|
||||
}
|
||||
},
|
||||
"core-js": {
|
||||
"version": "3.6.1",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.1.tgz",
|
||||
"integrity": "sha512-186WjSik2iTGfDjfdCZAxv2ormxtKgemjC3SI6PL31qOA0j5LhTDVjHChccoc7brwLvpvLPiMyRlcO88C4l1QQ=="
|
||||
"version": "3.6.3",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.3.tgz",
|
||||
"integrity": "sha512-DOO9b18YHR+Wk5kJ/c5YFbXuUETreD4TrvXb6edzqZE3aAEd0eJIAWghZ9HttMuiON8SVCnU3fqA4rPxRDD1HQ=="
|
||||
},
|
||||
"core-js-compat": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.0.tgz",
|
||||
"integrity": "sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg==",
|
||||
"version": "3.6.3",
|
||||
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.3.tgz",
|
||||
"integrity": "sha512-Y3YNGU3bU1yrnzVodop23ghArbKv4IqkZg9MMOWv/h7KT6NRk1/SzHhWDDlubg2+tlcUzAqgj1/GyeJ9fUKMeg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"browserslist": "^4.8.2",
|
||||
"browserslist": "^4.8.3",
|
||||
"semver": "7.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"browserslist": {
|
||||
"version": "4.8.2",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.2.tgz",
|
||||
"integrity": "sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"caniuse-lite": "^1.0.30001015",
|
||||
"electron-to-chromium": "^1.3.322",
|
||||
"node-releases": "^1.1.42"
|
||||
}
|
||||
},
|
||||
"caniuse-lite": {
|
||||
"version": "1.0.30001016",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz",
|
||||
"integrity": "sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA==",
|
||||
"dev": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
|
||||
@ -4690,9 +4559,9 @@
|
||||
"integrity": "sha1-LkYovhncSyFLXAJjDFlx6BFhgGI="
|
||||
},
|
||||
"cyclist": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
|
||||
"integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
|
||||
"integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
|
||||
"dev": true
|
||||
},
|
||||
"damerau-levenshtein": {
|
||||
@ -5090,9 +4959,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.3.322",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz",
|
||||
"integrity": "sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==",
|
||||
"version": "1.3.331",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.331.tgz",
|
||||
"integrity": "sha512-GuDv5gkxwRROYnmIVFUohoyrNapWCKLNn80L7Pa+9WRF/oY4t7XLH7wBMsYBgIRwi8BvEvsGKLKh8kOciOp6kA==",
|
||||
"dev": true
|
||||
},
|
||||
"elliptic": {
|
||||
@ -5355,9 +5224,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"events": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
|
||||
"integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
|
||||
"integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==",
|
||||
"dev": true
|
||||
},
|
||||
"eventsource": {
|
||||
@ -5924,12 +5793,12 @@
|
||||
}
|
||||
},
|
||||
"fs-minipass": {
|
||||
"version": "1.2.6",
|
||||
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz",
|
||||
"integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==",
|
||||
"version": "1.2.7",
|
||||
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
|
||||
"integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minipass": "^2.2.1"
|
||||
"minipass": "^2.6.0"
|
||||
}
|
||||
},
|
||||
"fs-write-stream-atomic": {
|
||||
@ -6540,9 +6409,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"ignore-walk": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
|
||||
"integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz",
|
||||
"integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimatch": "^3.0.4"
|
||||
@ -7550,12 +7419,12 @@
|
||||
}
|
||||
},
|
||||
"karma-jasmine": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz",
|
||||
"integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==",
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-3.1.0.tgz",
|
||||
"integrity": "sha512-IVGbC8gap5x5NNCEOsAE77ic8rZtHDt6wmO0fFC5yT5FeB8qKnGTeud2mtKyQ41xl7vZkZ7ZxKr4wMGR6tWN+A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"jasmine-core": "^3.3"
|
||||
"jasmine-core": "^3.5.0"
|
||||
}
|
||||
},
|
||||
"karma-jasmine-html-reporter": {
|
||||
@ -7827,16 +7696,16 @@
|
||||
"dev": true
|
||||
},
|
||||
"make-fetch-happen": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.0.tgz",
|
||||
"integrity": "sha512-nFr/vpL1Jc60etMVKeaLOqfGjMMb3tAHFVJWxHOFCFS04Zmd7kGlMxo0l1tzfhoQje0/UPnd0X8OeGUiXXnfPA==",
|
||||
"version": "5.0.2",
|
||||
"resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz",
|
||||
"integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"agentkeepalive": "^3.4.1",
|
||||
"cacache": "^12.0.0",
|
||||
"http-cache-semantics": "^3.8.1",
|
||||
"http-proxy-agent": "^2.1.0",
|
||||
"https-proxy-agent": "^2.2.1",
|
||||
"https-proxy-agent": "^2.2.3",
|
||||
"lru-cache": "^5.1.1",
|
||||
"mississippi": "^3.0.0",
|
||||
"node-fetch-npm": "^2.0.2",
|
||||
@ -7845,35 +7714,6 @@
|
||||
"ssri": "^6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"cacache": {
|
||||
"version": "12.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz",
|
||||
"integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"bluebird": "^3.5.5",
|
||||
"chownr": "^1.1.1",
|
||||
"figgy-pudding": "^3.5.1",
|
||||
"glob": "^7.1.4",
|
||||
"graceful-fs": "^4.1.15",
|
||||
"infer-owner": "^1.0.3",
|
||||
"lru-cache": "^5.1.1",
|
||||
"mississippi": "^3.0.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"move-concurrently": "^1.0.1",
|
||||
"promise-inflight": "^1.0.1",
|
||||
"rimraf": "^2.6.3",
|
||||
"ssri": "^6.0.1",
|
||||
"unique-filename": "^1.1.1",
|
||||
"y18n": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
|
||||
"integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
|
||||
"dev": true
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
||||
@ -7883,16 +7723,10 @@
|
||||
"yallist": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"y18n": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
|
||||
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
|
||||
"dev": true
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
|
||||
"integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
||||
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
@ -8194,9 +8028,9 @@
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.3.5",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
|
||||
"integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
|
||||
"version": "2.9.0",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
|
||||
"integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.2",
|
||||
@ -8204,20 +8038,20 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"yallist": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
|
||||
"integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
||||
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"minizlib": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
|
||||
"integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
|
||||
"integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minipass": "^2.2.1"
|
||||
"minipass": "^2.9.0"
|
||||
}
|
||||
},
|
||||
"mississippi": {
|
||||
@ -8441,9 +8275,9 @@
|
||||
}
|
||||
},
|
||||
"node-releases": {
|
||||
"version": "1.1.43",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.43.tgz",
|
||||
"integrity": "sha512-Rmfnj52WNhvr83MvuAWHEqXVoZXCcDQssSOffU4n4XOL9sPrP61mSZ88g25NqmABDvH7PiAlFCzoSCSdzA293w==",
|
||||
"version": "1.1.45",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.45.tgz",
|
||||
"integrity": "sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"semver": "^6.3.0"
|
||||
@ -8658,10 +8492,13 @@
|
||||
}
|
||||
},
|
||||
"npm-bundled": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz",
|
||||
"integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
|
||||
"dev": true
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz",
|
||||
"integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"npm-normalize-package-bin": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"npm-normalize-package-bin": {
|
||||
"version": "1.0.1",
|
||||
@ -8682,9 +8519,9 @@
|
||||
}
|
||||
},
|
||||
"npm-packlist": {
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.4.tgz",
|
||||
"integrity": "sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw==",
|
||||
"version": "1.4.7",
|
||||
"resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.7.tgz",
|
||||
"integrity": "sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ignore-walk": "^3.0.1",
|
||||
@ -8703,9 +8540,9 @@
|
||||
}
|
||||
},
|
||||
"npm-registry-fetch": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz",
|
||||
"integrity": "sha512-Jllq35Jag8dtv0M17ue74XtdQTyqKzuAYGiX9mAjOhkmNjib3bBUgK6mUY61+AHnXeSRobQkpY3/xIOS/omptw==",
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.2.tgz",
|
||||
"integrity": "sha512-Z0IFtPEozNdeZRPh3aHHxdG+ZRpzcbQaJLthsm3VhNf6DScicTFRHZzK82u8RsJUsUHkX+QH/zcB/5pmd20H4A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"JSONStream": "^1.3.4",
|
||||
@ -8713,7 +8550,8 @@
|
||||
"figgy-pudding": "^3.4.1",
|
||||
"lru-cache": "^5.1.1",
|
||||
"make-fetch-happen": "^5.0.0",
|
||||
"npm-package-arg": "^6.1.0"
|
||||
"npm-package-arg": "^6.1.0",
|
||||
"safe-buffer": "^5.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"lru-cache": {
|
||||
@ -8725,10 +8563,16 @@
|
||||
"yallist": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
|
||||
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
|
||||
"dev": true
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
|
||||
"integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
||||
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
@ -8976,22 +8820,22 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"es-abstract": {
|
||||
"version": "1.17.0-next.1",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0-next.1.tgz",
|
||||
"integrity": "sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==",
|
||||
"version": "1.17.0",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz",
|
||||
"integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"es-to-primitive": "^1.2.1",
|
||||
"function-bind": "^1.1.1",
|
||||
"has": "^1.0.3",
|
||||
"has-symbols": "^1.0.1",
|
||||
"is-callable": "^1.1.4",
|
||||
"is-regex": "^1.0.4",
|
||||
"is-callable": "^1.1.5",
|
||||
"is-regex": "^1.0.5",
|
||||
"object-inspect": "^1.7.0",
|
||||
"object-keys": "^1.1.1",
|
||||
"object.assign": "^4.1.0",
|
||||
"string.prototype.trimleft": "^2.1.0",
|
||||
"string.prototype.trimright": "^2.1.0"
|
||||
"string.prototype.trimleft": "^2.1.1",
|
||||
"string.prototype.trimright": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"es-to-primitive": {
|
||||
@ -9010,6 +8854,21 @@
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
|
||||
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
|
||||
"dev": true
|
||||
},
|
||||
"is-callable": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
|
||||
"integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
|
||||
"dev": true
|
||||
},
|
||||
"is-regex": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
|
||||
"integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has": "^1.0.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -9274,18 +9133,6 @@
|
||||
"mkdirp": "^0.5.0",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"minipass": {
|
||||
"version": "2.9.0",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
|
||||
"integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"yallist": {
|
||||
@ -9303,12 +9150,12 @@
|
||||
"dev": true
|
||||
},
|
||||
"parallel-transform": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz",
|
||||
"integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
|
||||
"integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cyclist": "~0.2.2",
|
||||
"cyclist": "^1.0.1",
|
||||
"inherits": "^2.0.3",
|
||||
"readable-stream": "^2.1.5"
|
||||
}
|
||||
@ -10261,22 +10108,22 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"es-abstract": {
|
||||
"version": "1.17.0-next.1",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0-next.1.tgz",
|
||||
"integrity": "sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==",
|
||||
"version": "1.17.0",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz",
|
||||
"integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"es-to-primitive": "^1.2.1",
|
||||
"function-bind": "^1.1.1",
|
||||
"has": "^1.0.3",
|
||||
"has-symbols": "^1.0.1",
|
||||
"is-callable": "^1.1.4",
|
||||
"is-regex": "^1.0.4",
|
||||
"is-callable": "^1.1.5",
|
||||
"is-regex": "^1.0.5",
|
||||
"object-inspect": "^1.7.0",
|
||||
"object-keys": "^1.1.1",
|
||||
"object.assign": "^4.1.0",
|
||||
"string.prototype.trimleft": "^2.1.0",
|
||||
"string.prototype.trimright": "^2.1.0"
|
||||
"string.prototype.trimleft": "^2.1.1",
|
||||
"string.prototype.trimright": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"es-to-primitive": {
|
||||
@ -10295,6 +10142,21 @@
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
|
||||
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
|
||||
"dev": true
|
||||
},
|
||||
"is-callable": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
|
||||
"integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
|
||||
"dev": true
|
||||
},
|
||||
"is-regex": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
|
||||
"integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has": "^1.0.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -10338,9 +10200,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"regjsparser": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.1.tgz",
|
||||
"integrity": "sha512-7LutE94sz/NKSYegK+/4E77+8DipxF+Qn2Tmu362AcmsF2NYq/wx3+ObvU90TKEhjf7hQoFXo23ajjrXP7eUgg==",
|
||||
"version": "0.6.2",
|
||||
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz",
|
||||
"integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"jsesc": "~0.5.0"
|
||||
@ -10897,9 +10759,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"smart-buffer": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz",
|
||||
"integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==",
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz",
|
||||
"integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==",
|
||||
"dev": true
|
||||
},
|
||||
"snapdragon": {
|
||||
@ -11158,13 +11020,13 @@
|
||||
}
|
||||
},
|
||||
"socks": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz",
|
||||
"integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==",
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz",
|
||||
"integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ip": "^1.1.5",
|
||||
"smart-buffer": "4.0.2"
|
||||
"ip": "1.1.5",
|
||||
"smart-buffer": "^4.1.0"
|
||||
}
|
||||
},
|
||||
"socks-proxy-agent": {
|
||||
@ -11502,9 +11364,9 @@
|
||||
}
|
||||
},
|
||||
"stream-shift": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
|
||||
"integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
|
||||
"integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
|
||||
"dev": true
|
||||
},
|
||||
"streamroller": {
|
||||
@ -12001,16 +11863,16 @@
|
||||
}
|
||||
},
|
||||
"ts-node": {
|
||||
"version": "8.5.4",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.5.4.tgz",
|
||||
"integrity": "sha512-izbVCRV68EasEPQ8MSIGBNK9dc/4sYJJKYA+IarMQct1RtEot6Xp0bXuClsbUSnKpg50ho+aOAx8en5c+y4OFw==",
|
||||
"version": "8.6.1",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.6.1.tgz",
|
||||
"integrity": "sha512-KqPbO7/UuOPE4ANAOV9geZjk6tet6rK2K+DFeEJq6kIXUi0nLkrOMksozGkIlFopOorkStlwar3DdWYrdl7zCw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"arg": "^4.1.0",
|
||||
"diff": "^4.0.1",
|
||||
"make-error": "^1.1.1",
|
||||
"source-map-support": "^0.5.6",
|
||||
"yn": "^3.0.0"
|
||||
"yn": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
@ -12099,6 +11961,12 @@
|
||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
|
||||
"optional": true
|
||||
},
|
||||
"type-fest": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
|
||||
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
|
||||
"dev": true
|
||||
},
|
||||
"type-is": {
|
||||
"version": "1.6.18",
|
||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
||||
@ -14615,9 +14483,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"yn": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
||||
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-4.0.0.tgz",
|
||||
"integrity": "sha512-huWiiCS4TxKc4SfgmTwW1K7JmXPPAmuXWYy4j9qjQo4+27Kni8mGhAAi1cloRWmBe2EqcLgt3IGqQoRL/MtPgg==",
|
||||
"dev": true
|
||||
},
|
||||
"zone.js": {
|
||||
|
14
package.json
14
package.json
@ -34,7 +34,7 @@
|
||||
"test": "npm-run-all test:app test:api",
|
||||
"test:app": "ng test --code-coverage --watch=false",
|
||||
"test:api": "./src/api/vendor/phpunit/phpunit/phpunit -c test/api/phpunit.xml",
|
||||
"test:api-single": "./src/api/vendor/phpunit/phpunit/phpunit -c test/api/phpunit.xml -g single",
|
||||
"test:api-single": "./src/api/vendor/phpunit/phpunit/phpunit -c test/api/phpunit.xml --group single",
|
||||
"test:watch": "ng test --code-coverage --watch",
|
||||
"lint": "ng lint",
|
||||
"postinstall": "cd src/api/ && composer update && composer install --optimize-autoloader && cd ../../"
|
||||
@ -52,7 +52,7 @@
|
||||
"chartist": "^0.11.4",
|
||||
"chartist-plugin-tooltips": "^0.0.17",
|
||||
"classlist.js": "^1.1.20150312",
|
||||
"core-js": "^3.6.1",
|
||||
"core-js": "^3.6.3",
|
||||
"dragula": "^3.7.2",
|
||||
"highlight.js": "^9.17.1",
|
||||
"marked": "^0.8.0",
|
||||
@ -63,8 +63,8 @@
|
||||
"zone.js": "^0.9.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/build-angular": "^0.803.21",
|
||||
"@angular/cli": "^8.3.21",
|
||||
"@angular-devkit/build-angular": "^0.803.22",
|
||||
"@angular/cli": "^8.3.22",
|
||||
"@angular/compiler-cli": "^8.2.14",
|
||||
"@angular/language-service": "^8.2.14",
|
||||
"@types/chartist": "^0.9.46",
|
||||
@ -72,7 +72,7 @@
|
||||
"@types/jasmine": "~3.5.0",
|
||||
"@types/jasminewd2": "~2.0.8",
|
||||
"@types/marked": "^0.7.2",
|
||||
"@types/node": "^12.12.22",
|
||||
"@types/node": "^13.1.6",
|
||||
"bourbon": "6.0.0",
|
||||
"bourbon-neat": "4.0.0",
|
||||
"codelyzer": "^5.2.1",
|
||||
@ -82,13 +82,13 @@
|
||||
"karma": "^4.4.1",
|
||||
"karma-chrome-launcher": "^3.1.0",
|
||||
"karma-coverage-istanbul-reporter": "^2.1.1",
|
||||
"karma-jasmine": "~2.0.1",
|
||||
"karma-jasmine": "~3.1.0",
|
||||
"karma-jasmine-html-reporter": "^1.5.1",
|
||||
"nodemon": "^2.0.2",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"protractor": "~5.4.2",
|
||||
"puppeteer": "^2.0.0",
|
||||
"ts-node": "^8.5.4",
|
||||
"ts-node": "^8.6.1",
|
||||
"tslint": "~5.20.1",
|
||||
"typescript": "^3.5.3"
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
$container = $app->getContainer();
|
||||
|
||||
// Inject a Monolog logger into the dependency container
|
||||
$container['logger'] = function($c) {
|
||||
$container['logger'] = function() {
|
||||
$logger = new Monolog\Logger('API');
|
||||
$fileHandler = new Monolog\Handler\StreamHandler('logs/api.log');
|
||||
|
||||
@ -13,7 +13,7 @@ $container['logger'] = function($c) {
|
||||
|
||||
// Replace notFoundHandler to use an API response
|
||||
$container['notFoundHandler'] = function($c) {
|
||||
return function($request, $response) use ($c) {
|
||||
return function() use ($c) {
|
||||
return $c['response']
|
||||
->withHeader('Content-Type', 'application/json')
|
||||
->write('{ message: "Matching API call not found." }');
|
||||
@ -22,7 +22,7 @@ $container['notFoundHandler'] = function($c) {
|
||||
|
||||
// Replace the errorHandler to use an API response
|
||||
$container['errorHandler'] = function ($c) {
|
||||
return function ($request, $response, $exception) use ($c) {
|
||||
return function ($exception) use ($c) {
|
||||
$c['logger']->addError('Server error', $exception->getTrace());
|
||||
|
||||
return $c['response']->withStatus(500)
|
||||
@ -33,7 +33,7 @@ $container['errorHandler'] = function ($c) {
|
||||
};
|
||||
|
||||
$container['phpErrorHandler'] = function ($c) {
|
||||
return function ($request, $response, $exception) use ($c) {
|
||||
return function ($exception) use ($c) {
|
||||
$c['logger']->addError('Server error', $exception->getTrace());
|
||||
|
||||
return $c['response']->withStatus(500)
|
||||
|
@ -1,12 +1,12 @@
|
||||
{
|
||||
"require": {
|
||||
"monolog/monolog": "^1.18",
|
||||
"gabordemooij/redbean": "^5.1",
|
||||
"slim/slim": "^3.3",
|
||||
"monolog/monolog": "^2.0",
|
||||
"gabordemooij/redbean": "^5.4",
|
||||
"slim/slim": "^4.3",
|
||||
"firebase/php-jwt": "^5.0",
|
||||
"phpmailer/phpmailer": "^6.0",
|
||||
"phpunit/phpunit": "^6.0",
|
||||
"myclabs/php-enum": "^1.5"
|
||||
"phpmailer/phpmailer": "^6.1",
|
||||
"phpunit/phpunit": "^8.5",
|
||||
"myclabs/php-enum": "^1.7"
|
||||
},
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
|
681
src/api/composer.lock
generated
681
src/api/composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -99,7 +99,7 @@ class Boards extends BaseController {
|
||||
|
||||
$data = json_decode($request->getBody());
|
||||
|
||||
if (!property_exists($args, 'id')) {
|
||||
if (is_null($args) || !array_key_exists('id', $args)) {
|
||||
$this->logger->addError('Update Board: ', [$data]);
|
||||
$this->apiJson->addAlert('error', 'Error updating board. ' .
|
||||
'Please check your entries and try again.');
|
||||
@ -113,14 +113,6 @@ class Boards extends BaseController {
|
||||
return $this->jsonResponse($response, 403);
|
||||
}
|
||||
|
||||
if (!property_exists($data, 'id')) {
|
||||
$this->logger->addError('Update Board: ', [$board, $data]);
|
||||
$this->apiJson->addAlert('error', 'Error updating board. ' .
|
||||
'Please check your entries and try again.');
|
||||
|
||||
return $this->jsonResponse($response);
|
||||
}
|
||||
|
||||
$update = R::load('board', (int)$args['id']);
|
||||
$update->id = BeanLoader::LoadBoard($update, $request->getBody())
|
||||
? $board->id : 0;
|
||||
|
@ -78,6 +78,15 @@ class Columns extends BaseController {
|
||||
return $this->jsonResponse($response, $status);
|
||||
}
|
||||
|
||||
$data = json_decode($request->getBody());
|
||||
|
||||
if (is_null($args) || !array_key_exists('id', $args)) {
|
||||
$this->logger->addError('Update Task: ', [$data]);
|
||||
$this->apiJson->addAlert('error', 'Error updating task. Please try again.');
|
||||
|
||||
return $this->jsonResponse($response);
|
||||
}
|
||||
|
||||
$column = R::load('column', (int)$args['id']);
|
||||
|
||||
$update = R::dispense('column');
|
||||
|
@ -79,6 +79,16 @@ class Comments extends BaseController {
|
||||
return $this->jsonResponse($response, $status);
|
||||
}
|
||||
|
||||
$data = json_decode($request->getBody());
|
||||
|
||||
if (is_null($args) || !$args['id']) {
|
||||
$this->logger->addError('Update Comment: ', [$data]);
|
||||
$this->apiJson->addAlert('error', 'Error updating comment. ' .
|
||||
'Please try again.');
|
||||
|
||||
return $this->jsonResponse($response);
|
||||
}
|
||||
|
||||
$actor = R::load('user', Auth::GetUserId($request));
|
||||
$comment = R::load('comment', (int)$args['id']);
|
||||
|
||||
@ -94,7 +104,6 @@ class Comments extends BaseController {
|
||||
}
|
||||
} // @codeCoverageIgnore
|
||||
|
||||
$data = json_decode($request->getBody());
|
||||
$update = R::dispense('comment');
|
||||
$update->id = BeanLoader::LoadComment($update, json_encode($data))
|
||||
? $comment->id
|
||||
|
@ -84,6 +84,15 @@ class Tasks extends BaseController {
|
||||
return $this->jsonResponse($response, $status);
|
||||
}
|
||||
|
||||
$data = json_decode($request->getBody());
|
||||
|
||||
if (is_null($args) || !array_key_exists('id', $args)) {
|
||||
$this->logger->addError('Update Task: ', [$data]);
|
||||
$this->apiJson->addAlert('error', 'Error updating task. Please try again.');
|
||||
|
||||
return $this->jsonResponse($response);
|
||||
}
|
||||
|
||||
$task = R::load('task', (int)$args['id']);
|
||||
|
||||
$update = R::load('task', (int)$args['id']);
|
||||
@ -209,7 +218,9 @@ class Tasks extends BaseController {
|
||||
}
|
||||
|
||||
private function checkAutomaticActions($before, $after) {
|
||||
$boardId = $this->getBoardId($after[0]['column_id']);
|
||||
$boardId = $this->getBoardId(
|
||||
is_array($after) ? $after[0]['column_id'] : $after['column_id']
|
||||
);
|
||||
$autoActions = R::find('autoaction', ' board_id = ? ', [ $boardId ]);
|
||||
|
||||
foreach ($autoActions as $action) {
|
||||
@ -220,6 +231,7 @@ class Tasks extends BaseController {
|
||||
$this->alterTask($action, $after[0]['id']);
|
||||
}
|
||||
break;
|
||||
|
||||
case ActionTrigger::ASSIGNED_TO_USER():
|
||||
$prevAssigned = $this->isInList($action->source_id,
|
||||
isset($before[0]['sharedUser']) ?
|
||||
@ -236,6 +248,7 @@ class Tasks extends BaseController {
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case ActionTrigger::ADDED_TO_CATEGORY():
|
||||
$prevAssigned = $this->isInList($action->source_id,
|
||||
isset($before[0]['sharedCategory']) ?
|
||||
@ -250,8 +263,8 @@ class Tasks extends BaseController {
|
||||
$this->alterTask($action, $after[0]['id']);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case ActionTrigger::POINTS_CHANGED():
|
||||
$points = (isset($before[0]['points'])) ?
|
||||
(int)$before[0]['points'] :
|
||||
@ -263,6 +276,7 @@ class Tasks extends BaseController {
|
||||
$after[0]['points']);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -132,6 +132,7 @@ export class BoardDisplayComponent implements OnInit, OnDestroy, AfterContentIni
|
||||
}
|
||||
});
|
||||
|
||||
/* istanbul ignore next */
|
||||
this.dragula.dropModel('tasks-bag').subscribe((value: any) => {
|
||||
const taskId = +value[1].id;
|
||||
const toColumnId = +value[2].parentNode.id;
|
||||
@ -298,6 +299,7 @@ export class BoardDisplayComponent implements OnInit, OnDestroy, AfterContentIni
|
||||
}
|
||||
}
|
||||
|
||||
/* istanbul ignore next */
|
||||
private changeTaskColumn(taskId: number, toColumnId: number) {
|
||||
const column = this.activeBoard.columns
|
||||
.find(col => col.id === toColumnId);
|
||||
|
@ -134,6 +134,7 @@ export class BoardService {
|
||||
);
|
||||
}
|
||||
|
||||
/* istanbul ignore next */
|
||||
uploadAttachment(attachment: Attachment, data: FormData): Observable<ApiResponse> {
|
||||
const headers = new HttpHeaders();
|
||||
const options = { headers, params: new HttpParams() };
|
||||
@ -151,7 +152,10 @@ export class BoardService {
|
||||
}
|
||||
|
||||
private defaultCallback = (err: any, text: string) => {
|
||||
console.log('default', err, text);
|
||||
if (err) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return text;
|
||||
}
|
||||
|
||||
|
@ -281,10 +281,12 @@ export class ColumnDisplayComponent implements OnInit, OnDestroy {
|
||||
});
|
||||
}
|
||||
|
||||
/* istanbul ignore next */
|
||||
fileChange(file: File) {
|
||||
this.fileUpload = file;
|
||||
}
|
||||
|
||||
/* istanbul ignore next */
|
||||
uploadFile() {
|
||||
if (!this.fileUpload) {
|
||||
this.notes.add({ type: 'error', text: this.strings.boards_taskNoFileError });
|
||||
|
@ -1,5 +1,6 @@
|
||||
import { Component, Input } from '@angular/core';
|
||||
|
||||
/* istanbul ignore next */
|
||||
@Component({
|
||||
selector: 'tb-calendar',
|
||||
templateUrl: './calendar.component.html'
|
||||
|
@ -1,6 +1,7 @@
|
||||
import { Component, Input, AfterViewInit } from '@angular/core';
|
||||
import * as Chartist from 'chartist';
|
||||
|
||||
/* istanbul ignore next */
|
||||
@Component({
|
||||
selector: 'tb-charts',
|
||||
templateUrl: './charts.component.html'
|
||||
|
@ -4,6 +4,7 @@ import { Title } from '@angular/platform-browser';
|
||||
// import { Charts } from './charts/charts.component';
|
||||
// import { Calendar } from './calendar/calendar.component';
|
||||
|
||||
/* istanbul ignore next */
|
||||
@Component({
|
||||
selector: 'tb-dashboard',
|
||||
templateUrl: './dashboard.component.html'
|
||||
|
@ -5,14 +5,14 @@ use RedBeanPHP\R;
|
||||
class ActivityTest extends PHPUnit\Framework\TestCase {
|
||||
private $activity;
|
||||
|
||||
public static function setupBeforeClass() {
|
||||
public static function setUpBeforeClass(): void {
|
||||
try {
|
||||
R::setup('sqlite:tests.db');
|
||||
} catch (Exception $ex) {
|
||||
}
|
||||
}
|
||||
|
||||
public function setUp() {
|
||||
public function setUp(): void {
|
||||
R::nuke();
|
||||
Auth::CreateInitialAdmin(new ContainerMock());
|
||||
|
||||
|
@ -5,14 +5,14 @@ use RedBeanPHP\R;
|
||||
class AttachmentsTest extends PHPUnit\Framework\TestCase {
|
||||
private $attachments;
|
||||
|
||||
public static function setupBeforeClass() {
|
||||
public static function setUpBeforeClass(): void {
|
||||
try {
|
||||
R::setup('sqlite:tests.db');
|
||||
} catch (Exception $ex) {
|
||||
}
|
||||
}
|
||||
|
||||
public function setUp() {
|
||||
public function setUp(): void {
|
||||
R::nuke();
|
||||
Auth::CreateInitialAdmin(new ContainerMock());
|
||||
|
||||
|
@ -5,14 +5,14 @@ use Firebase\JWT\JWT;
|
||||
class AuthTest extends PHPUnit\Framework\TestCase {
|
||||
private $auth;
|
||||
|
||||
public static function setupBeforeClass() {
|
||||
public static function setUpBeforeClass(): void {
|
||||
try {
|
||||
R::setup('sqlite:tests.db');
|
||||
} catch (Exception $ex) {
|
||||
}
|
||||
}
|
||||
|
||||
public function setUp() {
|
||||
public function setUp(): void {
|
||||
R::nuke();
|
||||
|
||||
$this->auth = new Auth(new ContainerMock());
|
||||
|
@ -5,14 +5,14 @@ use RedBeanPHP\R;
|
||||
class AutoActionsTest extends PHPUnit\Framework\TestCase {
|
||||
private $actions;
|
||||
|
||||
public static function setupBeforeClass() {
|
||||
public static function setUpBeforeClass(): void {
|
||||
try {
|
||||
R::setup('sqlite:tests.db');
|
||||
} catch (Exception $ex) {
|
||||
}
|
||||
}
|
||||
|
||||
public function setUp() {
|
||||
public function setUp(): void {
|
||||
R::nuke();
|
||||
Auth::CreateInitialAdmin(new ContainerMock());
|
||||
|
||||
|
@ -5,14 +5,14 @@ use RedBeanPHP\R;
|
||||
class BoardsTest extends PHPUnit\Framework\TestCase {
|
||||
private $boards;
|
||||
|
||||
public static function setupBeforeClass() {
|
||||
public static function setUpBeforeClass(): void {
|
||||
try {
|
||||
R::setup('sqlite:tests.db');
|
||||
} catch (Exception $ex) {
|
||||
}
|
||||
}
|
||||
|
||||
public function setUp() {
|
||||
public function setUp(): void {
|
||||
R::nuke();
|
||||
Auth::CreateInitialAdmin(new ContainerMock());
|
||||
|
||||
@ -229,11 +229,14 @@ class BoardsTest extends PHPUnit\Framework\TestCase {
|
||||
public function testUpdateBoardForbidden() {
|
||||
DataMock::CreateBoardAdminUser();
|
||||
|
||||
$args = [];
|
||||
$args['id'] = 1;
|
||||
|
||||
$request = new RequestMock();
|
||||
$request->header = [DataMock::GetJwt(2)];
|
||||
|
||||
$actual = $this->boards->updateBoard($request,
|
||||
new ResponseMock(), null);
|
||||
new ResponseMock(), $args);
|
||||
$this->assertEquals('Access restricted.',
|
||||
$actual->alerts[0]['text']);
|
||||
}
|
||||
|
@ -5,14 +5,14 @@ use RedBeanPHP\R;
|
||||
class ColumnsTest extends PHPUnit\Framework\TestCase {
|
||||
private $columns;
|
||||
|
||||
public static function setupBeforeClass() {
|
||||
public static function setUpBeforeClass(): void {
|
||||
try {
|
||||
R::setup('sqlite:tests.db');
|
||||
} catch (Exception $ex) {
|
||||
}
|
||||
}
|
||||
|
||||
public function setUp() {
|
||||
public function setUp(): void {
|
||||
R::nuke();
|
||||
Auth::CreateInitialAdmin(new ContainerMock());
|
||||
|
||||
@ -192,6 +192,13 @@ class ColumnsTest extends PHPUnit\Framework\TestCase {
|
||||
$request->header = [DataMock::GetJwt()];
|
||||
$request->invalidPayload = true;
|
||||
|
||||
$args = [];
|
||||
$args['id'] = 1;
|
||||
|
||||
$response = $this->columns->updateColumn($request,
|
||||
new ResponseMock(), $args);
|
||||
$this->assertEquals('error', $response->alerts[0]['type']);
|
||||
|
||||
$response = $this->columns->updateColumn($request,
|
||||
new ResponseMock(), null);
|
||||
$this->assertEquals('error', $response->alerts[0]['type']);
|
||||
|
@ -5,14 +5,14 @@ use RedBeanPHP\R;
|
||||
class CommentsTest extends PHPUnit\Framework\TestCase {
|
||||
private $comments;
|
||||
|
||||
public static function setupBeforeClass() {
|
||||
public static function setUpBeforeClass(): void {
|
||||
try {
|
||||
R::setup('sqlite:tests.db');
|
||||
} catch (Exception $ex) {
|
||||
}
|
||||
}
|
||||
|
||||
public function setUp() {
|
||||
public function setUp(): void {
|
||||
R::nuke();
|
||||
Auth::CreateInitialAdmin(new ContainerMock());
|
||||
|
||||
@ -154,6 +154,13 @@ class CommentsTest extends PHPUnit\Framework\TestCase {
|
||||
$request->header = [DataMock::GetJwt()];
|
||||
$request->invalidPayload = true;
|
||||
|
||||
$args = [];
|
||||
$args['id'] = 1;
|
||||
|
||||
$response = $this->comments->updateComment($request,
|
||||
new ResponseMock(), $args);
|
||||
$this->assertEquals('error', $response->alerts[0]['type']);
|
||||
|
||||
$response = $this->comments->updateComment($request,
|
||||
new ResponseMock(), null);
|
||||
$this->assertEquals('error', $response->alerts[0]['type']);
|
||||
|
@ -5,14 +5,14 @@ use RedBeanPHP\R;
|
||||
class TasksTest extends PHPUnit\Framework\TestCase {
|
||||
private $tasks;
|
||||
|
||||
public static function setupBeforeClass() {
|
||||
public static function setUpBeforeClass(): void {
|
||||
try {
|
||||
R::setup('sqlite:tests.db');
|
||||
} catch (Exception $ex) {
|
||||
}
|
||||
}
|
||||
|
||||
public function setUp() {
|
||||
public function setUp(): void {
|
||||
R::nuke();
|
||||
Auth::CreateInitialAdmin(new ContainerMock());
|
||||
|
||||
@ -223,6 +223,13 @@ class TasksTest extends PHPUnit\Framework\TestCase {
|
||||
$request->header = [DataMock::getJwt()];
|
||||
$request->invalidPayload = true;
|
||||
|
||||
$args = [];
|
||||
$args['id'] = 1;
|
||||
|
||||
$response = $this->tasks->updateTask($request,
|
||||
new ResponseMock(), $args);
|
||||
$this->assertEquals('error', $response->alerts[0]['type']);
|
||||
|
||||
$response = $this->tasks->updateTask($request,
|
||||
new ResponseMock(), null);
|
||||
$this->assertEquals('error', $response->alerts[0]['type']);
|
||||
|
@ -5,14 +5,14 @@ use RedBeanPHP\R;
|
||||
class UsersTest extends PHPUnit\Framework\TestCase {
|
||||
private $users;
|
||||
|
||||
public static function setupBeforeClass() {
|
||||
public static function setUpBeforeClass(): void {
|
||||
try {
|
||||
R::setup('sqlite:tests.db');
|
||||
} catch (Exception $ex) {
|
||||
}
|
||||
}
|
||||
|
||||
public function setUp() {
|
||||
public function setUp(): void {
|
||||
R::nuke();
|
||||
Auth::CreateInitialAdmin(new ContainerMock());
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
<phpunit>
|
||||
<testsuites>
|
||||
<testsuite>
|
||||
<testsuite name="api">
|
||||
<directory>./</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
@ -82,7 +82,7 @@ describe('ApiInterceptor', () => {
|
||||
it('handles errors and clears the JWT',
|
||||
inject([HttpClient, HttpTestingController],
|
||||
(http: HttpClient, httpMock: HttpTestingController) => {
|
||||
sessionStorage.setItem('taskboard.jwt', 'fake');
|
||||
sessionStorage.setItem('taskboard.jwt', null);
|
||||
|
||||
http.get('').subscribe(response => {
|
||||
expect(response).toBeTruthy();
|
||||
|
@ -41,180 +41,186 @@ describe('BoardService', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
|
||||
// it('lets the active board get updated', () => {
|
||||
// let changed = false;
|
||||
//
|
||||
// service.activeBoardChanged.subscribe(() => (changed = true));
|
||||
//
|
||||
// service.updateActiveBoard(<any>{});
|
||||
//
|
||||
// expect(changed).toEqual(true);
|
||||
// });
|
||||
//
|
||||
// it('gets all boards', () => {
|
||||
// service.getBoards().subscribe(response => {
|
||||
// expect(response.data.length).toEqual(0);
|
||||
// });
|
||||
//
|
||||
// testCall('api/boards', 'GET');
|
||||
// });
|
||||
//
|
||||
// it('handles errors when getting all boards', () => {
|
||||
// service.getBoards().subscribe(() => {}, response => {
|
||||
// expect(response.alerts.length).toEqual(1);
|
||||
// });
|
||||
//
|
||||
// testCall('api/boards', 'GET', true);
|
||||
// });
|
||||
//
|
||||
// it('toggles the collapsed state of a column', () => {
|
||||
// service.toggleCollapsed(1, 1).subscribe(response => {
|
||||
// expect(response.data.length).toEqual(0);
|
||||
// });
|
||||
//
|
||||
// testCall('api/users/1/cols', 'POST');
|
||||
// });
|
||||
//
|
||||
// it('handles error when toggling collapse', () => {
|
||||
// service.toggleCollapsed(1, 1).subscribe(() => {}, response => {
|
||||
// expect(response.alerts.length).toEqual(1);
|
||||
// });
|
||||
//
|
||||
// testCall('api/users/1/cols', 'POST', true);
|
||||
// });
|
||||
//
|
||||
// it('updates a board', () => {
|
||||
// service.updateBoard(<any>{ id: 1 }).subscribe(response => {
|
||||
// expect(response.data.length).toEqual(0);
|
||||
// });
|
||||
//
|
||||
// testCall('api/boards/1', 'POST');
|
||||
// });
|
||||
//
|
||||
// it('handles errors on board update', () => {
|
||||
// service.updateBoard(<any>{ id: 1 }).subscribe(() => {}, response => {
|
||||
// expect(response.alerts.length).toEqual(1);
|
||||
// });
|
||||
//
|
||||
// testCall('api/boards/1', 'POST', true);
|
||||
// });
|
||||
//
|
||||
// it('updates a column', () => {
|
||||
// service.updateColumn(<any>{ id: 1 }).subscribe(response => {
|
||||
// expect(response.data.length).toEqual(0);
|
||||
// });
|
||||
//
|
||||
// testCall('api/columns/1', 'POST');
|
||||
// });
|
||||
//
|
||||
// it('handles errors on column update', () => {
|
||||
// service.updateColumn(<any>{ id: 1 }).subscribe(() => {}, response => {
|
||||
// expect(response.alerts.length).toEqual(1);
|
||||
// });
|
||||
//
|
||||
// testCall('api/columns/1', 'POST', true);
|
||||
// });
|
||||
//
|
||||
// it('adds a task', () => {
|
||||
// service.addTask(<any>{}).subscribe(response => {
|
||||
// expect(response.data.length).toEqual(0);
|
||||
// });
|
||||
//
|
||||
// testCall('api/tasks', 'POST');
|
||||
// });
|
||||
//
|
||||
// it('handles errors on task add', () => {
|
||||
// service.addTask(<any>{}).subscribe(() => {}, response => {
|
||||
// expect(response.alerts.length).toEqual(1);
|
||||
// });
|
||||
//
|
||||
// testCall('api/tasks', 'POST', true);
|
||||
// });
|
||||
//
|
||||
// it('updates a task', () => {
|
||||
// service.updateTask(<any>{ id: 1 }).subscribe(response => {
|
||||
// expect(response.data.length).toEqual(0);
|
||||
// });
|
||||
//
|
||||
// testCall('api/tasks/1', 'POST');
|
||||
// });
|
||||
//
|
||||
// it('handles errors on task update', () => {
|
||||
// service.updateTask(<any>{ id: 1 }).subscribe(() => {}, response => {
|
||||
// expect(response.alerts.length).toEqual(1);
|
||||
// });
|
||||
//
|
||||
// testCall('api/tasks/1', 'POST', true);
|
||||
// });
|
||||
//
|
||||
// it('removes a task', () => {
|
||||
// service.removeTask(1).subscribe(response => {
|
||||
// expect(response.data.length).toEqual(0);
|
||||
// });
|
||||
//
|
||||
// testCall('api/tasks/1', 'DELETE');
|
||||
// });
|
||||
//
|
||||
// it('handles errors on task removal', () => {
|
||||
// service.removeTask(1).subscribe(() => {}, response => {
|
||||
// expect(response.alerts.length).toEqual(1);
|
||||
// });
|
||||
//
|
||||
// testCall('api/tasks/1', 'DELETE', true);
|
||||
// });
|
||||
//
|
||||
// it('gets task activity', () => {
|
||||
// service.getTaskActivity(1).subscribe(response => {
|
||||
// expect(response.data.length).toEqual(0);
|
||||
// });
|
||||
//
|
||||
// testCall('api/activity/task/1', 'GET');
|
||||
// });
|
||||
//
|
||||
// it('handles errors on get task activity', () => {
|
||||
// service.getTaskActivity(1).subscribe(() => {}, response => {
|
||||
// expect(response.alerts.length).toEqual(1);
|
||||
// });
|
||||
//
|
||||
// testCall('api/activity/task/1', 'GET', true);
|
||||
// });
|
||||
//
|
||||
// it('updates a comment', () => {
|
||||
// service.updateComment(<any>{ id: 1 }).subscribe(response => {
|
||||
// expect(response.data.length).toEqual(0);
|
||||
// });
|
||||
//
|
||||
// testCall('api/comments/1', 'POST');
|
||||
// });
|
||||
//
|
||||
// it('handles errors on comment update', () => {
|
||||
// service.updateComment(<any>{ id: 1 }).subscribe(() => {}, response => {
|
||||
// expect(response.alerts.length).toEqual(1);
|
||||
// });
|
||||
//
|
||||
// testCall('api/comments/1', 'POST', true);
|
||||
// });
|
||||
//
|
||||
// it('removes a comment', () => {
|
||||
// service.removeComment(1).subscribe(response => {
|
||||
// expect(response.data.length).toEqual(0);
|
||||
// });
|
||||
//
|
||||
// testCall('api/comments/1', 'DELETE');
|
||||
// });
|
||||
//
|
||||
// it('handles errors on comment removal', () => {
|
||||
// service.removeComment(1).subscribe(() => {}, response => {
|
||||
// expect(response.alerts.length).toEqual(1);
|
||||
// });
|
||||
//
|
||||
// testCall('api/comments/1', 'DELETE', true);
|
||||
// });
|
||||
//
|
||||
// it('refreshes the API token', () => {
|
||||
// service.refreshToken();
|
||||
// testCall('api/refresh', 'POST');
|
||||
// });
|
||||
it('lets the active board get updated', () => {
|
||||
let changed = false;
|
||||
|
||||
service.activeBoardChanged.subscribe(() => (changed = true));
|
||||
|
||||
service.updateActiveBoard(<any>{});
|
||||
|
||||
expect(changed).toEqual(true);
|
||||
});
|
||||
|
||||
it('gets all boards', () => {
|
||||
service.getBoards().subscribe(response => {
|
||||
expect(response.data.length).toEqual(0);
|
||||
});
|
||||
|
||||
testCall('api/boards', 'GET');
|
||||
});
|
||||
|
||||
it('converts markdown', () => {
|
||||
const actual = service.convertMarkdown('# Test');
|
||||
|
||||
expect(actual.html).toEqual('<h1 id="test">Test</h1>\n');
|
||||
});
|
||||
|
||||
it('handles errors when getting all boards', () => {
|
||||
service.getBoards().subscribe(() => {}, response => {
|
||||
expect(response.alerts.length).toEqual(1);
|
||||
});
|
||||
|
||||
testCall('api/boards', 'GET', true);
|
||||
});
|
||||
|
||||
it('toggles the collapsed state of a column', () => {
|
||||
service.toggleCollapsed(1, 1).subscribe(response => {
|
||||
expect(response.data.length).toEqual(0);
|
||||
});
|
||||
|
||||
testCall('api/users/1/cols', 'POST');
|
||||
});
|
||||
|
||||
it('handles error when toggling collapse', () => {
|
||||
service.toggleCollapsed(1, 1).subscribe(() => {}, response => {
|
||||
expect(response.alerts.length).toEqual(1);
|
||||
});
|
||||
|
||||
testCall('api/users/1/cols', 'POST', true);
|
||||
});
|
||||
|
||||
it('updates a board', () => {
|
||||
service.updateBoard(<any>{ id: 1 }).subscribe(response => {
|
||||
expect(response.data.length).toEqual(0);
|
||||
});
|
||||
|
||||
testCall('api/boards/1', 'POST');
|
||||
});
|
||||
|
||||
it('handles errors on board update', () => {
|
||||
service.updateBoard(<any>{ id: 1 }).subscribe(() => {}, response => {
|
||||
expect(response.alerts.length).toEqual(1);
|
||||
});
|
||||
|
||||
testCall('api/boards/1', 'POST', true);
|
||||
});
|
||||
|
||||
it('updates a column', () => {
|
||||
service.updateColumn(<any>{ id: 1 }).subscribe(response => {
|
||||
expect(response.data.length).toEqual(0);
|
||||
});
|
||||
|
||||
testCall('api/columns/1', 'POST');
|
||||
});
|
||||
|
||||
it('handles errors on column update', () => {
|
||||
service.updateColumn(<any>{ id: 1 }).subscribe(() => {}, response => {
|
||||
expect(response.alerts.length).toEqual(1);
|
||||
});
|
||||
|
||||
testCall('api/columns/1', 'POST', true);
|
||||
});
|
||||
|
||||
it('adds a task', () => {
|
||||
service.addTask(<any>{}).subscribe(response => {
|
||||
expect(response.data.length).toEqual(0);
|
||||
});
|
||||
|
||||
testCall('api/tasks', 'POST');
|
||||
});
|
||||
|
||||
it('handles errors on task add', () => {
|
||||
service.addTask(<any>{}).subscribe(() => {}, response => {
|
||||
expect(response.alerts.length).toEqual(1);
|
||||
});
|
||||
|
||||
testCall('api/tasks', 'POST', true);
|
||||
});
|
||||
|
||||
it('updates a task', () => {
|
||||
service.updateTask(<any>{ id: 1 }).subscribe(response => {
|
||||
expect(response.data.length).toEqual(0);
|
||||
});
|
||||
|
||||
testCall('api/tasks/1', 'POST');
|
||||
});
|
||||
|
||||
it('handles errors on task update', () => {
|
||||
service.updateTask(<any>{ id: 1 }).subscribe(() => {}, response => {
|
||||
expect(response.alerts.length).toEqual(1);
|
||||
});
|
||||
|
||||
testCall('api/tasks/1', 'POST', true);
|
||||
});
|
||||
|
||||
it('removes a task', () => {
|
||||
service.removeTask(1).subscribe(response => {
|
||||
expect(response.data.length).toEqual(0);
|
||||
});
|
||||
|
||||
testCall('api/tasks/1', 'DELETE');
|
||||
});
|
||||
|
||||
it('handles errors on task removal', () => {
|
||||
service.removeTask(1).subscribe(() => {}, response => {
|
||||
expect(response.alerts.length).toEqual(1);
|
||||
});
|
||||
|
||||
testCall('api/tasks/1', 'DELETE', true);
|
||||
});
|
||||
|
||||
it('gets task activity', () => {
|
||||
service.getTaskActivity(1).subscribe(response => {
|
||||
expect(response.data.length).toEqual(0);
|
||||
});
|
||||
|
||||
testCall('api/activity/task/1', 'GET');
|
||||
});
|
||||
|
||||
it('handles errors on get task activity', () => {
|
||||
service.getTaskActivity(1).subscribe(() => {}, response => {
|
||||
expect(response.alerts.length).toEqual(1);
|
||||
});
|
||||
|
||||
testCall('api/activity/task/1', 'GET', true);
|
||||
});
|
||||
|
||||
it('updates a comment', () => {
|
||||
service.updateComment(<any>{ id: 1 }).subscribe(response => {
|
||||
expect(response.data.length).toEqual(0);
|
||||
});
|
||||
|
||||
testCall('api/comments/1', 'POST');
|
||||
});
|
||||
|
||||
it('handles errors on comment update', () => {
|
||||
service.updateComment(<any>{ id: 1 }).subscribe(() => {}, response => {
|
||||
expect(response.alerts.length).toEqual(1);
|
||||
});
|
||||
|
||||
testCall('api/comments/1', 'POST', true);
|
||||
});
|
||||
|
||||
it('removes a comment', () => {
|
||||
service.removeComment(1).subscribe(response => {
|
||||
expect(response.data.length).toEqual(0);
|
||||
});
|
||||
|
||||
testCall('api/comments/1', 'DELETE');
|
||||
});
|
||||
|
||||
it('handles errors on comment removal', () => {
|
||||
service.removeComment(1).subscribe(() => {}, response => {
|
||||
expect(response.alerts.length).toEqual(1);
|
||||
});
|
||||
|
||||
testCall('api/comments/1', 'DELETE', true);
|
||||
});
|
||||
|
||||
it('refreshes the API token', () => {
|
||||
service.refreshToken();
|
||||
testCall('api/refresh', 'POST');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
@ -44,6 +44,8 @@ describe('ContextMenu', () => {
|
||||
it('captures parent oncontextmenu events', () => {
|
||||
const parentElement = component.el.nativeElement.parentElement;
|
||||
|
||||
component.el.nativeElement.appendChild(document.createElement('div'));
|
||||
|
||||
expect(parentElement.oncontextmenu).toEqual(jasmine.any(Function));
|
||||
|
||||
parentElement.oncontextmenu({
|
||||
|
@ -10,7 +10,7 @@
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"importHelpers": true,
|
||||
"target": "es2015",
|
||||
"target": "es5",
|
||||
"typeRoots": [
|
||||
"node_modules/@types"
|
||||
],
|
||||
|
Reference in New Issue
Block a user