AQ update

This commit is contained in:
peter
2020-08-13 12:03:35 +02:00
parent bd5b33e4a1
commit 7c1b0b73ed
35 changed files with 1343 additions and 881 deletions
+239 -56
View File
@@ -2645,6 +2645,14 @@
"integrity": "sha1-ytdV8Pxt57cPpuXgivqB70wiSN4=",
"dev": true
},
"@types/engine.io": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/@types/engine.io/-/engine.io-3.1.4.tgz",
"integrity": "sha512-98rXVukLD6/ozrQ2O80NAlWDGA4INg+tqsEReWJldqyi2fulC9V7Use/n28SWgROXKm6003ycWV4gZHoF8GA6w==",
"requires": {
"@types/node": "*"
}
},
"@types/events": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
@@ -2705,10 +2713,9 @@
"dev": true
},
"@types/node": {
"version": "6.0.90",
"resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.90.tgz",
"integrity": "sha512-tXoGRVdi7wZX7P1VWoV9Wfk0uYDOAHdEYXAttuWgSrN76Q32wQlSrMX0Rgyv3RTEaQY2ZLQrzYHVM2e8rfo8sA==",
"dev": true
"version": "14.0.27",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz",
"integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g=="
},
"@types/q": {
"version": "0.0.32",
@@ -2722,6 +2729,20 @@
"integrity": "sha512-/DJGXtMuklLQef49qDsmjQofzaGU6D5To2xJZRLBNZO4GLAi30IjxLy6hHRQdycXP+IZKKXqJhYyNJ53SglJ8w==",
"dev": true
},
"@types/socket.io": {
"version": "2.1.10",
"resolved": "https://registry.npmjs.org/@types/socket.io/-/socket.io-2.1.10.tgz",
"integrity": "sha512-1fQMaDU/x2LPljEI/QI5IKl8sBYHM/zv32YYKvNrVEor7/1+MLqMqmWt8Bb8Vpf+PlIPBiTTC0BnrRx7ju3xOw==",
"requires": {
"@types/engine.io": "*",
"@types/node": "*"
}
},
"@types/socket.io-client": {
"version": "1.4.33",
"resolved": "https://registry.npmjs.org/@types/socket.io-client/-/socket.io-client-1.4.33.tgz",
"integrity": "sha512-m4LnxkljsI9fMsjwpW5QhRpMixo2BeeLpFmg0AE+sS4H1pzAd/cs/ftTiL60FLZgfFa8PFRPx5KsHu8O0bADKQ=="
},
"@types/source-list-map": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
@@ -2952,7 +2973,6 @@
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
"integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
"dev": true,
"requires": {
"mime-types": "~2.1.24",
"negotiator": "0.6.2"
@@ -3004,8 +3024,7 @@
"after": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
"integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
"dev": true
"integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
},
"agent-base": {
"version": "4.3.0",
@@ -3437,8 +3456,7 @@
"async-limiter": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
"dev": true
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
},
"asynckit": {
"version": "0.4.0",
@@ -3683,8 +3701,7 @@
"backo2": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
"integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
"dev": true
"integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
},
"balanced-match": {
"version": "1.0.0",
@@ -3749,8 +3766,7 @@
"base64-arraybuffer": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
"integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
"dev": true
"integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
},
"base64-js": {
"version": "1.3.1",
@@ -3797,7 +3813,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
"integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
"dev": true,
"requires": {
"callsite": "1.0.0"
}
@@ -4076,19 +4091,6 @@
"node-releases": "^1.1.47"
}
},
"bsert": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/bsert/-/bsert-0.0.10.tgz",
"integrity": "sha512-NHNwlac+WPy4t2LoNh8pXk8uaIGH3NSaIUbTTRXGpE2WEbq0te/tDykYHkFK57YKLPjv/aGHmbqvnGeVWDz57Q=="
},
"bsock": {
"version": "0.1.9",
"resolved": "https://registry.npmjs.org/bsock/-/bsock-0.1.9.tgz",
"integrity": "sha512-/l9Kg/c5o+n/0AqreMxh2jpzDMl1ikl4gUxT7RFNe3A3YRIyZkiREhwcjmqxiymJSRI/Qhew357xGn1SLw/xEw==",
"requires": {
"bsert": "~0.0.10"
}
},
"buffer": {
"version": "4.9.2",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
@@ -4277,8 +4279,7 @@
"callsite": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
"integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
"dev": true
"integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
},
"callsites": {
"version": "2.0.0",
@@ -4752,8 +4753,7 @@
"component-bind": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
"integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
"dev": true
"integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
},
"component-emitter": {
"version": "1.3.0",
@@ -4764,8 +4764,7 @@
"component-inherit": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
"integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
"dev": true
"integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM="
},
"compressible": {
"version": "2.0.18",
@@ -9131,11 +9130,25 @@
}
}
},
"has-binary2": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
"integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
"requires": {
"isarray": "2.0.1"
},
"dependencies": {
"isarray": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
"integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
}
}
},
"has-cors": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
"integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
"dev": true
"integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
},
"has-flag": {
"version": "3.0.0",
@@ -9571,8 +9584,7 @@
"indexof": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
"dev": true
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
},
"infer-owner": {
"version": "1.0.4",
@@ -13468,8 +13480,7 @@
"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
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
},
"neo-async": {
"version": "2.6.1",
@@ -13925,8 +13936,7 @@
"object-component": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
"integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
"dev": true
"integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
},
"object-copy": {
"version": "0.1.0",
@@ -14440,7 +14450,6 @@
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
"integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
"dev": true,
"requires": {
"better-assert": "~1.0.0"
}
@@ -14449,7 +14458,6 @@
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
"integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
"dev": true,
"requires": {
"better-assert": "~1.0.0"
}
@@ -15043,6 +15051,12 @@
"webdriver-manager": "^12.0.6"
},
"dependencies": {
"@types/node": {
"version": "6.14.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-6.14.10.tgz",
"integrity": "sha512-pF4HjZGSog75kGq7B1InK/wt/N08BuPATo+7HRfv7gZUzccebwv/fmWVGs/j6LvSiLWpCuGGhql51M/wcQsNzA==",
"dev": true
},
"del": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
@@ -15775,20 +15789,191 @@
"integrity": "sha512-ZYzRkETgBrdEGzL5JSKimvjI2CX7ioyZCkX2BpcfyjqI+079W0wHAyj5W4rIZMcDSOHgLZtgz1IdDi/vU77KEQ=="
},
"rpclibrary": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/rpclibrary/-/rpclibrary-1.10.2.tgz",
"integrity": "sha512-uf4FtylK+tyVo1O8YVihxYxaI4KHnKBzq05SsLYe8ZPXdO8Hqrv7Je5cwv3bfx0FBCO1vVrSc8DT1P6ypGY6uQ==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/rpclibrary/-/rpclibrary-2.0.1.tgz",
"integrity": "sha512-phdU0TkrnNVXdFa5PKkbWvn+MxocowvqalEUG1jfpkc1CoQkJ9AXa4OXSEu5r2a2IFhVauYva/qXv1em5yrHSg==",
"requires": {
"bsock": "^0.1.9",
"crypto-js": "^4.0.0",
"@types/socket.io": "^2.1.8",
"@types/socket.io-client": "^1.4.33",
"http": "0.0.0",
"socket.io": "^2.3.0",
"socket.io-client": "^2.3.0",
"uuid": "^3.3.3"
},
"dependencies": {
"crypto-js": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz",
"integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg=="
"arraybuffer.slice": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
"integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
},
"base64id": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
"integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog=="
},
"blob": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
"integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="
},
"component-emitter": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
},
"cookie": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
},
"engine.io": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz",
"integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==",
"requires": {
"accepts": "~1.3.4",
"base64id": "2.0.0",
"cookie": "0.3.1",
"debug": "~4.1.0",
"engine.io-parser": "~2.2.0",
"ws": "^7.1.2"
}
},
"engine.io-client": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz",
"integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==",
"requires": {
"component-emitter": "~1.3.0",
"component-inherit": "0.0.3",
"debug": "~4.1.0",
"engine.io-parser": "~2.2.0",
"has-cors": "1.1.0",
"indexof": "0.0.1",
"parseqs": "0.0.5",
"parseuri": "0.0.5",
"ws": "~6.1.0",
"xmlhttprequest-ssl": "~1.5.4",
"yeast": "0.1.2"
},
"dependencies": {
"component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
},
"ws": {
"version": "6.1.4",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
"integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
"requires": {
"async-limiter": "~1.0.0"
}
}
}
},
"engine.io-parser": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz",
"integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==",
"requires": {
"after": "0.8.2",
"arraybuffer.slice": "~0.0.7",
"base64-arraybuffer": "0.1.5",
"blob": "0.0.5",
"has-binary2": "~1.0.2"
}
},
"isarray": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
"integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"socket.io": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz",
"integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==",
"requires": {
"debug": "~4.1.0",
"engine.io": "~3.4.0",
"has-binary2": "~1.0.2",
"socket.io-adapter": "~1.1.0",
"socket.io-client": "2.3.0",
"socket.io-parser": "~3.4.0"
}
},
"socket.io-adapter": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz",
"integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g=="
},
"socket.io-client": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz",
"integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==",
"requires": {
"backo2": "1.0.2",
"base64-arraybuffer": "0.1.5",
"component-bind": "1.0.0",
"component-emitter": "1.2.1",
"debug": "~4.1.0",
"engine.io-client": "~3.4.0",
"has-binary2": "~1.0.2",
"has-cors": "1.1.0",
"indexof": "0.0.1",
"object-component": "0.0.3",
"parseqs": "0.0.5",
"parseuri": "0.0.5",
"socket.io-parser": "~3.3.0",
"to-array": "0.1.4"
},
"dependencies": {
"socket.io-parser": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz",
"integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==",
"requires": {
"component-emitter": "1.2.1",
"debug": "~3.1.0",
"isarray": "2.0.1"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
}
}
}
}
},
"socket.io-parser": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz",
"integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==",
"requires": {
"component-emitter": "1.2.1",
"debug": "~4.1.0",
"isarray": "2.0.1"
}
},
"ws": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
"integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA=="
},
"xmlhttprequest-ssl": {
"version": "1.5.5",
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
"integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="
}
}
},
@@ -17979,8 +18164,7 @@
"to-array": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
"integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
"dev": true
"integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
},
"to-arraybuffer": {
"version": "1.0.1",
@@ -21030,8 +21214,7 @@
"yeast": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
"integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
"dev": true
"integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk="
},
"yn": {
"version": "3.1.1",
+2 -2
View File
@@ -79,7 +79,7 @@
"normalize.css": "6.0.0",
"pace-js": "1.0.2",
"roboto-fontface": "0.8.0",
"rpclibrary": "^1.10.2",
"rpclibrary": "^2.0.1",
"rxjs": "6.5.2",
"rxjs-compat": "6.3.0",
"socicon": "3.0.5",
@@ -102,7 +102,7 @@
"@types/jasmine": "2.5.54",
"@types/jasminewd2": "2.0.3",
"@types/leaflet": "1.2.3",
"@types/node": "6.0.90",
"@types/node": "^14.0.27",
"codelyzer": "^5.0.1",
"conventional-changelog-cli": "1.3.4",
"jasmine-core": "2.6.4",
@@ -51,6 +51,7 @@ export class FrontcraftArmoryComponent implements OnInit {
const geardata = maybeItems.filter(maybeItem => maybeItem != null)
this.gear = geardata
console.log(this.gear)
console.log(this.gear.map(g => g.stats).reduce(sumStats))
}))
}
@@ -21,24 +21,5 @@ class = "col-12 col-xl-9">
<span *ngIf="link === 'owner'">
Owned by <a [routerLink]="'/frontcraft/user/'+char.username"> {{char.username}} ({{char.rank}})</a>
</span>
<br/>
<br />
<br />
<h3>Tokens</h3>
<span *ngFor="let token of tokens">
[ {{token.level}} ]
<wowhead [item]="token"></wowhead><br />
</span>
<br />
<br />
<br />
<h3>Gear of the last reported kill <a target="_blank" *ngIf="dataLink != null && dataLink != ''" style="size: 0.5em;" [href]="dataLink">(data)</a></h3>
<h5>{{boss2.name}} {{boss2.date | date : 'MMM d @ HH : mm'}}</h5>
<ng-container *ngFor="let item of gear2">
<wowhead [item]="item"></wowhead><br />
</ng-container>
</nb-card-body>
</nb-card>
@@ -4,6 +4,7 @@
</nb-card-header>
<nb-card-body>
<textarea
fullWidth
placeholder="Add a note (optional)"
rows="7"
cols="50"
@@ -13,30 +14,38 @@
<br />
<br />
<nb-card *ngFor="let character of characters">
<nb-card-header [ngStyle]="{'color': character.color}">
<nb-card-header [ngStyle]="{'color': character.color}" style="text-transform: capitalize;">
<img [src]="'../../../../assets/images/'+character.class.toLowerCase()+'.png'" />
{{character.charactername}}
</nb-card-header>
<nb-card-body>
<button
(click)="signup(character, false)"
(click)="signup(character, false, false)"
nbButton
outline
fullWidth
status="success"
size="medium">
<nb-icon icon="checkmark-outline"></nb-icon> On Time
</button>
&nbsp;
&nbsp;
&nbsp;
<button
(click)="signup(character, true)"
(click)="signup(character, true, false)"
nbButton
outline
fullWidth
status="warning"
size="medium">
<nb-icon icon="clock-outline"></nb-icon> Late
</button>
<button
(click)="signup(character, false, true)"
nbButton
outline
fullWidth
status="danger"
size="medium">
<nb-icon icon="person-delete-outline"></nb-icon> Absent
</button>
</nb-card-body>
</nb-card>
</nb-card-body>
@@ -20,12 +20,12 @@ export class FrontcraftCharacerpickerComponent implements OnInit{
private toast : NbToastrService
){}
signup = async (character: Character, late: boolean) => {
signup = async (character: Character, late: boolean, attending: boolean = true) => {
const auth = this.api.getAuth()
const signup = this.api.get('signup')
if(!signup) return
await signup.sign(auth.token.value, character, this.raid, late, this.memo)
await signup.sign(auth.token.value, character, this.raid, late, attending, this.memo)
this.toast.show('Signup', 'Success', { status: 'success' })
this.dialogRef.close()
}
@@ -26,35 +26,40 @@
({{mySignup.race}} {{mySignup.specname}} {{mySignup.class}})
<br />
Status: {{mySignup.status}}<br /><br />
<textarea [status]="mySignup.status === 'Attending'?'success':'warning'"
<textarea fullWidth *ngIf="mySignup.status !== 'Absent'"
[status]="mySignup.status === 'Attending'?'success':'warning'"
placeholder="Add a note (optional)" rows="10" cols="50" nbInput
style="white-space: pre-line;" [(ngModel)]="mySignup.memo">
</textarea>
</p>
<button *ngIf="mySignup.status === 'Late'" (click)="setLate(false)" nbButton outline
status="success" size="medium">
<button *ngIf="mySignup.status !== 'Attending'" (click)="setLate(false)" nbButton
fullWidth outline status="success" size="medium">
<nb-icon icon="checkmark-outline"></nb-icon> On Time
</button>
<button *ngIf="mySignup.status === 'Attending'" (click)="setLate(false)" nbButton
outline status="success" size="medium">
fullWidth outline status="success" size="medium">
<nb-icon icon="checkmark-outline"></nb-icon> Update
</button>
<button *ngIf="mySignup.status === 'Late'" (click)="setLate(true)" nbButton outline
status="warning" size="medium">
<button *ngIf="mySignup.status === 'Late'" (click)="setLate(true)" nbButton fullWidth
outline status="warning" size="medium">
<nb-icon icon="clock-outline"></nb-icon> Update
</button>
<button *ngIf="mySignup.status === 'Attending'" (click)="setLate(true)" nbButton outline
status="warning" size="medium">
<button *ngIf="mySignup.status !== 'Late'" (click)="setLate(true)" nbButton fullWidth
outline status="warning" size="medium">
<nb-icon icon="clock-outline"></nb-icon> Late
</button>
<button (click)="unsign()" nbButton outline status="danger" size="medium">
<button *ngIf="mySignup.status !== 'Absent'" (click)="setAbsent()" nbButton fullWidth
outline status="danger" size="medium">
<nb-icon icon="person-delete-outline"></nb-icon> Absent
</button>
<p>&nbsp;</p>
<button (click)="unsign()" nbButton fullWidth status="danger" size="medium">
<nb-icon icon="close"></nb-icon>unsign
</button>
</div>
<div *ngIf="!isSignedup">
<button (click)="signup()" nbButton outline status="success" size="medium">
<button (click)="signup()" fullWidth nbButton outline status="success" size="medium">
<nb-icon icon="person-done-outline"></nb-icon> sign up
</button>
</div>
@@ -83,21 +88,26 @@
[src]="'/assets/images/'+participant.class.toLowerCase()+'.png'" />
{{ participant.charactername }}
</a>
<ng-template #template>
<ng-template #timeInfo>
<div style="padding: 10px">
{{participant.timestamp | date : 'HH:mm EEE MMM d'}}
({{participant.before | date : 'dd'}} days before start)
</div>
</ng-template>
<nb-icon [nbPopover]="timeInfo" nbPopoverTrigger="hover"
style="width: 0.75em; height: 0.75em;" icon="clock-outline"
[status]="participant.before>8.64e+7?(participant.before>2.592e+8?'success':'warning'):'danger'">
</nb-icon>
<ng-template #memoBox>
<div style="padding: 10px">
<p
style="white-space: pre-line; max-width: 50vw; word-wrap: break-word;">
{{participant.memo}}
</p>
{{participant.timestamp | date : 'HH:mm EEE MMM d'}} ({{participant.before | date : 'dd'}} days before start)
</div>
</ng-template>
<nb-icon
[nbPopover]="template"
nbPopoverTrigger="hover"
style="width: 0.75em; height: 0.75em;"
[icon]="participant.memo != null && participant.memo != ''?'message-circle-outline':'clock-outline'"
[status]="participant.before>8.64e+7?(participant.before>2.592e+8?'success':'warning'):'danger'">
<nb-icon *ngIf="participant.memo" [nbPopover]="memoBox" nbPopoverTrigger="hover"
style="width: 0.75em; height: 0.75em;" icon="message-circle-outline">
</nb-icon>
<span *ngIf="participant.rank=='Trial'" style="font-size: 9px;">
@@ -127,21 +137,6 @@
[src]="'/assets/images/'+participant.class.toLowerCase()+'.png'" />
{{ participant.charactername }}
</a>
<ng-template #template>
<div style="padding: 10px">
<p style="white-space: pre-line;">
{{participant.memo}}
</p>
{{participant.timestamp | date : 'HH:mm EEE MMM d'}} ({{participant.before | date : 'dd'}} days before start)
</div>
</ng-template>
<nb-icon
[nbPopover]="template"
nbPopoverTrigger="hover"
style="width: 0.75em; height: 0.75em;"
[icon]="participant.memo != null && participant.memo != ''?'message-circle-outline':'clock-outline'"
[status]="participant.before>8.64e+7?(participant.before>2.592e+8?'success':'warning'):'danger'">
</nb-icon>
<span *ngIf="participant.rank=='Trial'" style="font-size: 9px;">
Trial
</span>
@@ -171,22 +166,6 @@
[src]="'/assets/images/'+participant.class.toLowerCase()+'.png'" />
{{ participant.charactername }}
</a>
<ng-template #template>
<div style="padding: 10px">
<p style="white-space: pre-line;">
{{participant.memo}}
</p>
{{participant.timestamp | date : 'HH:mm EEE MMM d'}} ({{participant.before | date : 'dd'}} days before start)
</div>
</ng-template>
<nb-icon
[nbPopover]="template"
nbPopoverTrigger="hover"
style="width: 0.75em; height: 0.75em;"
[icon]="participant.memo != null && participant.memo != ''?'message-circle-outline':'clock-outline'"
[status]="participant.before>8.64e+7?(participant.before>2.592e+8?'success':'warning'):'danger'">
</nb-icon>
<span *ngIf="participant.rank=='Trial'" style="font-size: 9px;">
Trial
</span>
@@ -200,6 +179,9 @@
<button (click)="startRaid(raid)" nbButton outline status="success" size="medium">
start
</button>
<button (click)="cancelRaid(raid)" nbButton outline status="danger" size="medium">
cancel
</button>
</nb-tab>
</nb-tabset>
</nb-card-body>
@@ -120,6 +120,12 @@ export class FrontcraftRaidComponent
this.router.navigateByUrl('/frontcraft/archive/' + raid.id)
}
async cancelRaid(raid: Raid) {
await this.manageRaid!.cancelRaid(raid)
this.toast.show('Raid cancelled', 'Success', { status: 'success' })
this.router.navigateByUrl('/frontcraft/raids')
}
unsign = async () => {
const signupFeature = this.api.get('signup')
if (!signupFeature) return
@@ -139,7 +145,21 @@ export class FrontcraftRaidComponent
await signup.sign(auth.token.value, {
...this.mySignup,
id: this.mySignup.characterid,
}, this.raid, value, this.mySignup.memo)
}, this.raid, value, false, this.mySignup.memo)
this.toast.show('Signup', 'Success', { status: 'success' })
}
setAbsent = async () => {
const auth = this.api.getAuth()
const signup = this.api.get('signup')
if (!signup) return
await signup.sign(auth.token.value, {
...this.mySignup,
id: this.mySignup.characterid,
}, this.raid, false, true, this.mySignup.memo)
this.toast.show('Signup', 'Success', { status: 'success' })
}
@@ -184,7 +204,9 @@ export class FrontcraftRaidComponent
if (matchingSignup) {
this.mySignup = matchingSignup
this.isSignedup = true
this.mySignup['status'] = matchingSignup['benched'] ? 'Bench' : matchingSignup['late'] ? 'Late' : 'Attending'
console.log(this.mySignup);
this.mySignup['status'] = matchingSignup['absent'] ? 'Absent' : matchingSignup['benched'] ? 'Bench' : matchingSignup['late'] ? 'Late' : 'Attending'
} else {
this.isSignedup = false
this.mySignup = null
@@ -209,11 +231,21 @@ export class FrontcraftRaidComponent
}
setBench(signup: Signup) {
this.manageRaid.setBenched({
characterid: signup.characterid,
raidid: signup.raidid,
late: false,
benched: !signup.benched
}).then(_ => this.refresh())
const manageRaid = this.api.get('manageRaid')
if(manageRaid){
const signupUpdated:Signup = {
benched: !signup.benched,
absent: false,
late: false,
characterid: signup.characterid,
raidid: signup.raidid,
timestamp: signup.timestamp,
id: signup.id,
memo: signup.memo
}
manageRaid.updateSignup(signupUpdated)
.then(_ => this.refresh())
}
}
}
@@ -14,7 +14,7 @@ import { IApiService } from '../../services/ApiService/ApiService';
</nb-card-header>
<nb-card-body>
<p>
{{currency}} softreserves remaining
You have {{currency}} softreserve(s) remaining
</p>
<div *ngIf="currency>0">
<nb-alert accent="danger" *ngIf="invalidatedTokens.length > 0">
@@ -37,7 +37,7 @@ import { IApiService } from '../../services/ApiService/ApiService';
The following reserve will be created<br />
<ul>
<li>
[ {{1+modifier}} ]
[ {{1+currency+modifier}} ]
<img style="min-width: 20px; width: 2.25vw; max-width: 35px" [src]="'https://wow.zamimg.com/images/wow/icons/large/'+item.iconname+'.jpg'" />
<span [ngStyle]="{'color':item.quality=='Epic'?'#a335ee':'#ff8000'}">
{{item.itemname}}
@@ -49,10 +49,10 @@ import { IApiService } from '../../services/ApiService/ApiService';
</nb-alert>
<nb-alert accent="info" *ngIf="upgradableToken != null">
The following reserve will be created<br />
The following reserve will be upgraded<br />
<ul>
<li>
[ {{upgradableToken.level}} ] => [ {{upgradableToken.level+1}} ] <img style="min-width: 20px; width: 2.25vw; max-width: 35px" [src]="'https://wow.zamimg.com/images/wow/icons/large/'+upgradableToken.iconname+'.jpg'" />
[ {{upgradableToken.level}} ] => [ {{upgradableToken.level+1+currency}} ] <img style="min-width: 20px; width: 2.25vw; max-width: 35px" [src]="'https://wow.zamimg.com/images/wow/icons/large/'+upgradableToken.iconname+'.jpg'" />
<span [ngStyle]="{'color':upgradableToken.quality=='Epic'?'#a335ee':'#ff8000'}">{{upgradableToken.itemname}}</span>
</li>
</ul>
@@ -65,7 +65,7 @@ import { IApiService } from '../../services/ApiService/ApiService';
outline
status="success"
size="small">
<nb-icon icon="checkmark-outline"></nb-icon> claim
<nb-icon icon="checkmark-outline"></nb-icon> okay
</button>
</nb-card-body>
</nb-card>
@@ -59,7 +59,7 @@ export class ClientApiService implements IApiService{
// document.cookie = JSON.stringify(auth)
return authSock
}catch(e){
if(this.privSocket) this.privSocket.destroy()
if(this.privSocket) this.privSocket.close()
return;
}
}
@@ -120,14 +120,14 @@ export class ClientApiService implements IApiService{
}
}
if(this.privSocket) this.privSocket.destroy()
if(this.privSocket) this.privSocket.close()
this.privSocket = null
this.auth = null
}
initialize = async (force = false) : Promise<any> => {
if(this.socket){
this.socket.destroy()
this.socket.close()
this.socket = null
}
@@ -71,14 +71,14 @@ export class ServerApiService implements IApiService {
}
}
if (this.privSocket) this.privSocket.destroy()
if (this.privSocket) this.privSocket.close()
this.privSocket = null
this.auth = null
}
initialize = async (): Promise<any> => {
if (this.socket) {
this.socket.destroy()
this.socket.close()
this.socket = null
}