Merge branch 'master' into mononaut/sca-loading-ux
This commit is contained in:
		
						commit
						47cc58c610
					
				| @ -229,6 +229,7 @@ class BitcoinRoutes { | |||||||
|       if (e instanceof Error && e instanceof Error && e.message && e.message.indexOf('No such mempool or blockchain transaction') > -1) { |       if (e instanceof Error && e instanceof Error && e.message && e.message.indexOf('No such mempool or blockchain transaction') > -1) { | ||||||
|         statusCode = 404; |         statusCode = 404; | ||||||
|         handleError(req, res, statusCode, 'No such mempool or blockchain transaction'); |         handleError(req, res, statusCode, 'No such mempool or blockchain transaction'); | ||||||
|  |         return; | ||||||
|       } |       } | ||||||
|       handleError(req, res, statusCode, 'Failed to get transaction'); |       handleError(req, res, statusCode, 'Failed to get transaction'); | ||||||
|     } |     } | ||||||
| @ -248,6 +249,7 @@ class BitcoinRoutes { | |||||||
|       if (e instanceof Error && e.message && e.message.indexOf('No such mempool or blockchain transaction') > -1) { |       if (e instanceof Error && e.message && e.message.indexOf('No such mempool or blockchain transaction') > -1) { | ||||||
|         statusCode = 404; |         statusCode = 404; | ||||||
|         handleError(req, res, statusCode, 'No such mempool or blockchain transaction'); |         handleError(req, res, statusCode, 'No such mempool or blockchain transaction'); | ||||||
|  |         return; | ||||||
|       } |       } | ||||||
|       handleError(req, res, statusCode, 'Failed to get raw transaction'); |       handleError(req, res, statusCode, 'Failed to get raw transaction'); | ||||||
|     } |     } | ||||||
| @ -334,6 +336,7 @@ class BitcoinRoutes { | |||||||
|       if (e instanceof Error && e.message && e.message.indexOf('No such mempool or blockchain transaction') > -1) { |       if (e instanceof Error && e.message && e.message.indexOf('No such mempool or blockchain transaction') > -1) { | ||||||
|         statusCode = 404; |         statusCode = 404; | ||||||
|         handleError(req, res, statusCode, 'No such mempool or blockchain transaction'); |         handleError(req, res, statusCode, 'No such mempool or blockchain transaction'); | ||||||
|  |         return; | ||||||
|       } |       } | ||||||
|       handleError(req, res, statusCode, 'Failed to get transaction status'); |       handleError(req, res, statusCode, 'Failed to get transaction status'); | ||||||
|     } |     } | ||||||
|  | |||||||
							
								
								
									
										331
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										331
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -23,9 +23,9 @@ | |||||||
|         "@angular/router": "^17.3.1", |         "@angular/router": "^17.3.1", | ||||||
|         "@angular/ssr": "^17.3.1", |         "@angular/ssr": "^17.3.1", | ||||||
|         "@fortawesome/angular-fontawesome": "~0.14.1", |         "@fortawesome/angular-fontawesome": "~0.14.1", | ||||||
|         "@fortawesome/fontawesome-common-types": "~6.6.0", |         "@fortawesome/fontawesome-common-types": "~6.7.2", | ||||||
|         "@fortawesome/fontawesome-svg-core": "~6.6.0", |         "@fortawesome/fontawesome-svg-core": "~6.7.2", | ||||||
|         "@fortawesome/free-solid-svg-icons": "~6.6.0", |         "@fortawesome/free-solid-svg-icons": "~6.7.2", | ||||||
|         "@mempool/mempool.js": "2.3.0", |         "@mempool/mempool.js": "2.3.0", | ||||||
|         "@ng-bootstrap/ng-bootstrap": "^16.0.0", |         "@ng-bootstrap/ng-bootstrap": "^16.0.0", | ||||||
|         "@types/qrcode": "~1.5.0", |         "@types/qrcode": "~1.5.0", | ||||||
| @ -35,7 +35,6 @@ | |||||||
|         "domino": "^2.1.6", |         "domino": "^2.1.6", | ||||||
|         "echarts": "~5.5.0", |         "echarts": "~5.5.0", | ||||||
|         "esbuild": "^0.24.0", |         "esbuild": "^0.24.0", | ||||||
|         "lightweight-charts": "~3.8.0", |  | ||||||
|         "ngx-echarts": "~17.2.0", |         "ngx-echarts": "~17.2.0", | ||||||
|         "ngx-infinite-scroll": "^17.0.0", |         "ngx-infinite-scroll": "^17.0.0", | ||||||
|         "qrcode": "1.5.1", |         "qrcode": "1.5.1", | ||||||
| @ -62,7 +61,7 @@ | |||||||
|       "optionalDependencies": { |       "optionalDependencies": { | ||||||
|         "@cypress/schematic": "^2.5.0", |         "@cypress/schematic": "^2.5.0", | ||||||
|         "@types/cypress": "^1.1.3", |         "@types/cypress": "^1.1.3", | ||||||
|         "cypress": "^13.15.0", |         "cypress": "^13.17.0", | ||||||
|         "cypress-fail-on-console-error": "~5.1.0", |         "cypress-fail-on-console-error": "~5.1.0", | ||||||
|         "cypress-wait-until": "^2.0.1", |         "cypress-wait-until": "^2.0.1", | ||||||
|         "mock-socket": "~9.3.1", |         "mock-socket": "~9.3.1", | ||||||
| @ -3113,9 +3112,10 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@cypress/request": { |     "node_modules/@cypress/request": { | ||||||
|       "version": "3.0.5", |       "version": "3.0.7", | ||||||
|       "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.5.tgz", |       "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.7.tgz", | ||||||
|       "integrity": "sha512-v+XHd9XmWbufxF1/bTaVm2yhbxY+TB4YtWRqF2zaXBlDNMkls34KiATz0AVDLavL3iB6bQk9/7n3oY1EoLSWGA==", |       "integrity": "sha512-LzxlLEMbBOPYB85uXrDqvD4MgcenjRBLIns3zyhx7vTPj/0u2eQhzXvPiGcaJrV38Q9dbkExWp6cOHPJ+EtFYg==", | ||||||
|  |       "license": "Apache-2.0", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "aws-sign2": "~0.7.0", |         "aws-sign2": "~0.7.0", | ||||||
| @ -3131,9 +3131,9 @@ | |||||||
|         "json-stringify-safe": "~5.0.1", |         "json-stringify-safe": "~5.0.1", | ||||||
|         "mime-types": "~2.1.19", |         "mime-types": "~2.1.19", | ||||||
|         "performance-now": "^2.1.0", |         "performance-now": "^2.1.0", | ||||||
|         "qs": "6.13.0", |         "qs": "6.13.1", | ||||||
|         "safe-buffer": "^5.1.2", |         "safe-buffer": "^5.1.2", | ||||||
|         "tough-cookie": "^4.1.3", |         "tough-cookie": "^5.0.0", | ||||||
|         "tunnel-agent": "^0.6.0", |         "tunnel-agent": "^0.6.0", | ||||||
|         "uuid": "^8.3.2" |         "uuid": "^8.3.2" | ||||||
|       }, |       }, | ||||||
| @ -3141,6 +3141,22 @@ | |||||||
|         "node": ">= 6" |         "node": ">= 6" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/@cypress/request/node_modules/qs": { | ||||||
|  |       "version": "6.13.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", | ||||||
|  |       "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", | ||||||
|  |       "license": "BSD-3-Clause", | ||||||
|  |       "optional": true, | ||||||
|  |       "dependencies": { | ||||||
|  |         "side-channel": "^1.0.6" | ||||||
|  |       }, | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=0.6" | ||||||
|  |       }, | ||||||
|  |       "funding": { | ||||||
|  |         "url": "https://github.com/sponsors/ljharb" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/@cypress/schematic": { |     "node_modules/@cypress/schematic": { | ||||||
|       "version": "2.5.0", |       "version": "2.5.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@cypress/schematic/-/schematic-2.5.0.tgz", |       "resolved": "https://registry.npmjs.org/@cypress/schematic/-/schematic-2.5.0.tgz", | ||||||
| @ -3674,30 +3690,33 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@fortawesome/fontawesome-common-types": { |     "node_modules/@fortawesome/fontawesome-common-types": { | ||||||
|       "version": "6.6.0", |       "version": "6.7.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.6.0.tgz", |       "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz", | ||||||
|       "integrity": "sha512-xyX0X9mc0kyz9plIyryrRbl7ngsA9jz77mCZJsUkLl+ZKs0KWObgaEBoSgQiYWAsSmjz/yjl0F++Got0Mdp4Rw==", |       "integrity": "sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==", | ||||||
|  |       "license": "MIT", | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=6" |         "node": ">=6" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@fortawesome/fontawesome-svg-core": { |     "node_modules/@fortawesome/fontawesome-svg-core": { | ||||||
|       "version": "6.6.0", |       "version": "6.7.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.6.0.tgz", |       "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz", | ||||||
|       "integrity": "sha512-KHwPkCk6oRT4HADE7smhfsKudt9N/9lm6EJ5BVg0tD1yPA5hht837fB87F8pn15D8JfTqQOjhKTktwmLMiD7Kg==", |       "integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==", | ||||||
|  |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@fortawesome/fontawesome-common-types": "6.6.0" |         "@fortawesome/fontawesome-common-types": "6.7.2" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=6" |         "node": ">=6" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@fortawesome/free-solid-svg-icons": { |     "node_modules/@fortawesome/free-solid-svg-icons": { | ||||||
|       "version": "6.6.0", |       "version": "6.7.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.6.0.tgz", |       "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz", | ||||||
|       "integrity": "sha512-IYv/2skhEDFc2WGUcqvFJkeK39Q+HyPf5GHUrT/l2pKbtgEIv1al1TKd6qStR5OIwQdN1GZP54ci3y4mroJWjA==", |       "integrity": "sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==", | ||||||
|  |       "license": "(CC-BY-4.0 AND MIT)", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@fortawesome/fontawesome-common-types": "6.6.0" |         "@fortawesome/fontawesome-common-types": "6.7.2" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=6" |         "node": ">=6" | ||||||
| @ -5673,6 +5692,7 @@ | |||||||
|       "version": "0.2.6", |       "version": "0.2.6", | ||||||
|       "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", |       "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", | ||||||
|       "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", |       "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "safer-buffer": "~2.1.0" |         "safer-buffer": "~2.1.0" | ||||||
| @ -5707,6 +5727,7 @@ | |||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", | ||||||
|       "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", |       "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=0.8" |         "node": ">=0.8" | ||||||
| @ -5827,6 +5848,7 @@ | |||||||
|       "version": "0.7.0", |       "version": "0.7.0", | ||||||
|       "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", |       "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", | ||||||
|       "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", |       "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", | ||||||
|  |       "license": "Apache-2.0", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": "*" |         "node": "*" | ||||||
| @ -5836,6 +5858,7 @@ | |||||||
|       "version": "1.13.2", |       "version": "1.13.2", | ||||||
|       "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", |       "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", | ||||||
|       "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", |       "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true |       "optional": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/axios": { |     "node_modules/axios": { | ||||||
| @ -5993,6 +6016,7 @@ | |||||||
|       "version": "1.0.2", |       "version": "1.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", |       "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", | ||||||
|       "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", |       "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", | ||||||
|  |       "license": "BSD-3-Clause", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "tweetnacl": "^0.14.3" |         "tweetnacl": "^0.14.3" | ||||||
| @ -7068,6 +7092,7 @@ | |||||||
|       "version": "0.12.0", |       "version": "0.12.0", | ||||||
|       "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", |       "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", | ||||||
|       "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", |       "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", | ||||||
|  |       "license": "Apache-2.0", | ||||||
|       "optional": true |       "optional": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/chai": { |     "node_modules/chai": { | ||||||
| @ -7170,15 +7195,16 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/ci-info": { |     "node_modules/ci-info": { | ||||||
|       "version": "3.8.0", |       "version": "4.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", |       "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz", | ||||||
|       "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", |       "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==", | ||||||
|       "funding": [ |       "funding": [ | ||||||
|         { |         { | ||||||
|           "type": "github", |           "type": "github", | ||||||
|           "url": "https://github.com/sponsors/sibiraj-s" |           "url": "https://github.com/sponsors/sibiraj-s" | ||||||
|         } |         } | ||||||
|       ], |       ], | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=8" |         "node": ">=8" | ||||||
| @ -7953,13 +7979,14 @@ | |||||||
|       "peer": true |       "peer": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/cypress": { |     "node_modules/cypress": { | ||||||
|       "version": "13.15.0", |       "version": "13.17.0", | ||||||
|       "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.15.0.tgz", |       "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.17.0.tgz", | ||||||
|       "integrity": "sha512-53aO7PwOfi604qzOkCSzNlWquCynLlKE/rmmpSPcziRH6LNfaDUAklQT6WJIsD8ywxlIy+uVZsnTMCCQVd2kTw==", |       "integrity": "sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA==", | ||||||
|       "hasInstallScript": true, |       "hasInstallScript": true, | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@cypress/request": "^3.0.4", |         "@cypress/request": "^3.0.6", | ||||||
|         "@cypress/xvfb": "^1.2.4", |         "@cypress/xvfb": "^1.2.4", | ||||||
|         "@types/sinonjs__fake-timers": "8.1.1", |         "@types/sinonjs__fake-timers": "8.1.1", | ||||||
|         "@types/sizzle": "^2.3.2", |         "@types/sizzle": "^2.3.2", | ||||||
| @ -7970,6 +7997,7 @@ | |||||||
|         "cachedir": "^2.3.0", |         "cachedir": "^2.3.0", | ||||||
|         "chalk": "^4.1.0", |         "chalk": "^4.1.0", | ||||||
|         "check-more-types": "^2.24.0", |         "check-more-types": "^2.24.0", | ||||||
|  |         "ci-info": "^4.0.0", | ||||||
|         "cli-cursor": "^3.1.0", |         "cli-cursor": "^3.1.0", | ||||||
|         "cli-table3": "~0.6.1", |         "cli-table3": "~0.6.1", | ||||||
|         "commander": "^6.2.1", |         "commander": "^6.2.1", | ||||||
| @ -7984,7 +8012,6 @@ | |||||||
|         "figures": "^3.2.0", |         "figures": "^3.2.0", | ||||||
|         "fs-extra": "^9.1.0", |         "fs-extra": "^9.1.0", | ||||||
|         "getos": "^3.2.1", |         "getos": "^3.2.1", | ||||||
|         "is-ci": "^3.0.1", |  | ||||||
|         "is-installed-globally": "~0.4.0", |         "is-installed-globally": "~0.4.0", | ||||||
|         "lazy-ass": "^1.6.0", |         "lazy-ass": "^1.6.0", | ||||||
|         "listr2": "^3.8.3", |         "listr2": "^3.8.3", | ||||||
| @ -7999,6 +8026,7 @@ | |||||||
|         "semver": "^7.5.3", |         "semver": "^7.5.3", | ||||||
|         "supports-color": "^8.1.1", |         "supports-color": "^8.1.1", | ||||||
|         "tmp": "~0.2.3", |         "tmp": "~0.2.3", | ||||||
|  |         "tree-kill": "1.2.2", | ||||||
|         "untildify": "^4.0.0", |         "untildify": "^4.0.0", | ||||||
|         "yauzl": "^2.10.0" |         "yauzl": "^2.10.0" | ||||||
|       }, |       }, | ||||||
| @ -8201,6 +8229,7 @@ | |||||||
|       "version": "1.14.1", |       "version": "1.14.1", | ||||||
|       "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", |       "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", | ||||||
|       "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", |       "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "assert-plus": "^1.0.0" |         "assert-plus": "^1.0.0" | ||||||
| @ -8687,6 +8716,7 @@ | |||||||
|       "version": "0.1.2", |       "version": "0.1.2", | ||||||
|       "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", |       "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", | ||||||
|       "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", |       "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "jsbn": "~0.1.0", |         "jsbn": "~0.1.0", | ||||||
| @ -9905,6 +9935,7 @@ | |||||||
|       "engines": [ |       "engines": [ | ||||||
|         "node >=0.6.0" |         "node >=0.6.0" | ||||||
|       ], |       ], | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true |       "optional": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/falafel": { |     "node_modules/falafel": { | ||||||
| @ -9921,11 +9952,6 @@ | |||||||
|         "node": ">=0.4.0" |         "node": ">=0.4.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/fancy-canvas": { |  | ||||||
|       "version": "0.2.2", |  | ||||||
|       "resolved": "https://registry.npmjs.org/fancy-canvas/-/fancy-canvas-0.2.2.tgz", |  | ||||||
|       "integrity": "sha512-50qi8xA0QkHbjmb8h7XQ6k2fvD7y/yMfiUw9YTarJ7rWrq6o5/3CCXPouYk+XSLASvvxtjyiQLRBFt3qkE3oyA==" |  | ||||||
|     }, |  | ||||||
|     "node_modules/fast-deep-equal": { |     "node_modules/fast-deep-equal": { | ||||||
|       "version": "3.1.3", |       "version": "3.1.3", | ||||||
|       "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", |       "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", | ||||||
| @ -10193,6 +10219,7 @@ | |||||||
|       "version": "0.6.1", |       "version": "0.6.1", | ||||||
|       "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", |       "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", | ||||||
|       "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", |       "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", | ||||||
|  |       "license": "Apache-2.0", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": "*" |         "node": "*" | ||||||
| @ -10400,6 +10427,7 @@ | |||||||
|       "version": "0.1.7", |       "version": "0.1.7", | ||||||
|       "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", |       "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", | ||||||
|       "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", |       "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "assert-plus": "^1.0.0" |         "assert-plus": "^1.0.0" | ||||||
| @ -10854,6 +10882,7 @@ | |||||||
|       "version": "1.4.0", |       "version": "1.4.0", | ||||||
|       "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.4.0.tgz", |       "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.4.0.tgz", | ||||||
|       "integrity": "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==", |       "integrity": "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==", | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "assert-plus": "^1.0.0", |         "assert-plus": "^1.0.0", | ||||||
| @ -11220,18 +11249,6 @@ | |||||||
|         "url": "https://github.com/sponsors/ljharb" |         "url": "https://github.com/sponsors/ljharb" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/is-ci": { |  | ||||||
|       "version": "3.0.1", |  | ||||||
|       "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", |  | ||||||
|       "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", |  | ||||||
|       "optional": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "ci-info": "^3.2.0" |  | ||||||
|       }, |  | ||||||
|       "bin": { |  | ||||||
|         "is-ci": "bin.js" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/is-core-module": { |     "node_modules/is-core-module": { | ||||||
|       "version": "2.13.1", |       "version": "2.13.1", | ||||||
|       "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", |       "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", | ||||||
| @ -11481,6 +11498,7 @@ | |||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", | ||||||
|       "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", |       "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true |       "optional": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/is-unicode-supported": { |     "node_modules/is-unicode-supported": { | ||||||
| @ -11545,6 +11563,7 @@ | |||||||
|       "version": "0.1.2", |       "version": "0.1.2", | ||||||
|       "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", |       "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", | ||||||
|       "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", |       "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true |       "optional": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/istanbul-lib-coverage": { |     "node_modules/istanbul-lib-coverage": { | ||||||
| @ -11678,6 +11697,7 @@ | |||||||
|       "version": "0.1.1", |       "version": "0.1.1", | ||||||
|       "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", |       "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", | ||||||
|       "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", |       "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true |       "optional": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/jsesc": { |     "node_modules/jsesc": { | ||||||
| @ -11706,6 +11726,7 @@ | |||||||
|       "version": "0.4.0", |       "version": "0.4.0", | ||||||
|       "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", |       "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", | ||||||
|       "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", |       "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", | ||||||
|  |       "license": "(AFL-2.1 OR BSD-3-Clause)", | ||||||
|       "optional": true |       "optional": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/json-schema-traverse": { |     "node_modules/json-schema-traverse": { | ||||||
| @ -11723,6 +11744,7 @@ | |||||||
|       "version": "5.0.1", |       "version": "5.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", |       "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", | ||||||
|       "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", |       "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", | ||||||
|  |       "license": "ISC", | ||||||
|       "optional": true |       "optional": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/json5": { |     "node_modules/json5": { | ||||||
| @ -11783,6 +11805,7 @@ | |||||||
|       "engines": [ |       "engines": [ | ||||||
|         "node >=0.6.0" |         "node >=0.6.0" | ||||||
|       ], |       ], | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "assert-plus": "1.0.0", |         "assert-plus": "1.0.0", | ||||||
| @ -12106,14 +12129,6 @@ | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/lightweight-charts": { |  | ||||||
|       "version": "3.8.0", |  | ||||||
|       "resolved": "https://registry.npmjs.org/lightweight-charts/-/lightweight-charts-3.8.0.tgz", |  | ||||||
|       "integrity": "sha512-7yFGnYuE1RjRJG9RwUTBz5wvF1QtjBOSW4FFlikr8Dh+/TDNt4ci+HsWSYmStgQUpawpvkCJ3j5/W25GppGj9Q==", |  | ||||||
|       "dependencies": { |  | ||||||
|         "fancy-canvas": "0.2.2" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/limiter": { |     "node_modules/limiter": { | ||||||
|       "version": "1.1.5", |       "version": "1.1.5", | ||||||
|       "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", |       "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", | ||||||
| @ -14110,6 +14125,7 @@ | |||||||
|       "version": "2.1.0", |       "version": "2.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", |       "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", | ||||||
|       "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", |       "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true |       "optional": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/picocolors": { |     "node_modules/picocolors": { | ||||||
| @ -14540,12 +14556,6 @@ | |||||||
|         "node": ">= 0.10" |         "node": ">= 0.10" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/psl": { |  | ||||||
|       "version": "1.9.0", |  | ||||||
|       "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", |  | ||||||
|       "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", |  | ||||||
|       "optional": true |  | ||||||
|     }, |  | ||||||
|     "node_modules/public-encrypt": { |     "node_modules/public-encrypt": { | ||||||
|       "version": "4.0.3", |       "version": "4.0.3", | ||||||
|       "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", |       "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", | ||||||
| @ -14661,12 +14671,6 @@ | |||||||
|         "node": ">=0.4.x" |         "node": ">=0.4.x" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/querystringify": { |  | ||||||
|       "version": "2.2.0", |  | ||||||
|       "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", |  | ||||||
|       "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", |  | ||||||
|       "optional": true |  | ||||||
|     }, |  | ||||||
|     "node_modules/queue-microtask": { |     "node_modules/queue-microtask": { | ||||||
|       "version": "1.2.3", |       "version": "1.2.3", | ||||||
|       "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", |       "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", | ||||||
| @ -16028,6 +16032,7 @@ | |||||||
|       "version": "1.18.0", |       "version": "1.18.0", | ||||||
|       "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", |       "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", | ||||||
|       "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", |       "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "asn1": "~0.2.3", |         "asn1": "~0.2.3", | ||||||
| @ -16577,6 +16582,26 @@ | |||||||
|         "readable-stream": "3" |         "readable-stream": "3" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/tldts": { | ||||||
|  |       "version": "6.1.70", | ||||||
|  |       "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.70.tgz", | ||||||
|  |       "integrity": "sha512-/W1YVgYVJd9ZDjey5NXadNh0mJXkiUMUue9Zebd0vpdo1sU+H4zFFTaJ1RKD4N6KFoHfcXy6l+Vu7bh+bdWCzA==", | ||||||
|  |       "license": "MIT", | ||||||
|  |       "optional": true, | ||||||
|  |       "dependencies": { | ||||||
|  |         "tldts-core": "^6.1.70" | ||||||
|  |       }, | ||||||
|  |       "bin": { | ||||||
|  |         "tldts": "bin/cli.js" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "node_modules/tldts-core": { | ||||||
|  |       "version": "6.1.70", | ||||||
|  |       "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.70.tgz", | ||||||
|  |       "integrity": "sha512-RNnIXDB1FD4T9cpQRErEqw6ZpjLlGdMOitdV+0xtbsnwr4YFka1zpc7D4KD+aAn8oSG5JyFrdasZTE04qDE9Yg==", | ||||||
|  |       "license": "MIT", | ||||||
|  |       "optional": true | ||||||
|  |     }, | ||||||
|     "node_modules/tlite": { |     "node_modules/tlite": { | ||||||
|       "version": "0.1.9", |       "version": "0.1.9", | ||||||
|       "resolved": "https://registry.npmjs.org/tlite/-/tlite-0.1.9.tgz", |       "resolved": "https://registry.npmjs.org/tlite/-/tlite-0.1.9.tgz", | ||||||
| @ -16621,27 +16646,16 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/tough-cookie": { |     "node_modules/tough-cookie": { | ||||||
|       "version": "4.1.4", |       "version": "5.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", |       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.0.0.tgz", | ||||||
|       "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", |       "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", | ||||||
|  |       "license": "BSD-3-Clause", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "psl": "^1.1.33", |         "tldts": "^6.1.32" | ||||||
|         "punycode": "^2.1.1", |  | ||||||
|         "universalify": "^0.2.0", |  | ||||||
|         "url-parse": "^1.5.3" |  | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=6" |         "node": ">=16" | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/tough-cookie/node_modules/universalify": { |  | ||||||
|       "version": "0.2.0", |  | ||||||
|       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", |  | ||||||
|       "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", |  | ||||||
|       "optional": true, |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">= 4.0.0" |  | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/transform-ast": { |     "node_modules/transform-ast": { | ||||||
| @ -16810,6 +16824,7 @@ | |||||||
|       "version": "0.6.0", |       "version": "0.6.0", | ||||||
|       "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", |       "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", | ||||||
|       "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", |       "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", | ||||||
|  |       "license": "Apache-2.0", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "safe-buffer": "^5.0.1" |         "safe-buffer": "^5.0.1" | ||||||
| @ -16822,6 +16837,7 @@ | |||||||
|       "version": "0.14.5", |       "version": "0.14.5", | ||||||
|       "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", |       "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", | ||||||
|       "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", |       "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", | ||||||
|  |       "license": "Unlicense", | ||||||
|       "optional": true |       "optional": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/type": { |     "node_modules/type": { | ||||||
| @ -17130,16 +17146,6 @@ | |||||||
|         "querystring": "0.2.0" |         "querystring": "0.2.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/url-parse": { |  | ||||||
|       "version": "1.5.10", |  | ||||||
|       "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", |  | ||||||
|       "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", |  | ||||||
|       "optional": true, |  | ||||||
|       "dependencies": { |  | ||||||
|         "querystringify": "^2.1.1", |  | ||||||
|         "requires-port": "^1.0.0" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/url/node_modules/punycode": { |     "node_modules/url/node_modules/punycode": { | ||||||
|       "version": "1.3.2", |       "version": "1.3.2", | ||||||
|       "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", |       "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", | ||||||
| @ -17207,6 +17213,7 @@ | |||||||
|       "engines": [ |       "engines": [ | ||||||
|         "node >=0.6.0" |         "node >=0.6.0" | ||||||
|       ], |       ], | ||||||
|  |       "license": "MIT", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "assert-plus": "^1.0.0", |         "assert-plus": "^1.0.0", | ||||||
| @ -20348,9 +20355,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@cypress/request": { |     "@cypress/request": { | ||||||
|       "version": "3.0.5", |       "version": "3.0.7", | ||||||
|       "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.5.tgz", |       "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.7.tgz", | ||||||
|       "integrity": "sha512-v+XHd9XmWbufxF1/bTaVm2yhbxY+TB4YtWRqF2zaXBlDNMkls34KiATz0AVDLavL3iB6bQk9/7n3oY1EoLSWGA==", |       "integrity": "sha512-LzxlLEMbBOPYB85uXrDqvD4MgcenjRBLIns3zyhx7vTPj/0u2eQhzXvPiGcaJrV38Q9dbkExWp6cOHPJ+EtFYg==", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "aws-sign2": "~0.7.0", |         "aws-sign2": "~0.7.0", | ||||||
| @ -20366,11 +20373,22 @@ | |||||||
|         "json-stringify-safe": "~5.0.1", |         "json-stringify-safe": "~5.0.1", | ||||||
|         "mime-types": "~2.1.19", |         "mime-types": "~2.1.19", | ||||||
|         "performance-now": "^2.1.0", |         "performance-now": "^2.1.0", | ||||||
|         "qs": "6.13.0", |         "qs": "6.13.1", | ||||||
|         "safe-buffer": "^5.1.2", |         "safe-buffer": "^5.1.2", | ||||||
|         "tough-cookie": "^4.1.3", |         "tough-cookie": "^5.0.0", | ||||||
|         "tunnel-agent": "^0.6.0", |         "tunnel-agent": "^0.6.0", | ||||||
|         "uuid": "^8.3.2" |         "uuid": "^8.3.2" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "qs": { | ||||||
|  |           "version": "6.13.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", | ||||||
|  |           "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", | ||||||
|  |           "optional": true, | ||||||
|  |           "requires": { | ||||||
|  |             "side-channel": "^1.0.6" | ||||||
|  |           } | ||||||
|  |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@cypress/schematic": { |     "@cypress/schematic": { | ||||||
| @ -20649,24 +20667,24 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@fortawesome/fontawesome-common-types": { |     "@fortawesome/fontawesome-common-types": { | ||||||
|       "version": "6.6.0", |       "version": "6.7.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.6.0.tgz", |       "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz", | ||||||
|       "integrity": "sha512-xyX0X9mc0kyz9plIyryrRbl7ngsA9jz77mCZJsUkLl+ZKs0KWObgaEBoSgQiYWAsSmjz/yjl0F++Got0Mdp4Rw==" |       "integrity": "sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==" | ||||||
|     }, |     }, | ||||||
|     "@fortawesome/fontawesome-svg-core": { |     "@fortawesome/fontawesome-svg-core": { | ||||||
|       "version": "6.6.0", |       "version": "6.7.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.6.0.tgz", |       "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz", | ||||||
|       "integrity": "sha512-KHwPkCk6oRT4HADE7smhfsKudt9N/9lm6EJ5BVg0tD1yPA5hht837fB87F8pn15D8JfTqQOjhKTktwmLMiD7Kg==", |       "integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@fortawesome/fontawesome-common-types": "6.6.0" |         "@fortawesome/fontawesome-common-types": "6.7.2" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@fortawesome/free-solid-svg-icons": { |     "@fortawesome/free-solid-svg-icons": { | ||||||
|       "version": "6.6.0", |       "version": "6.7.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.6.0.tgz", |       "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz", | ||||||
|       "integrity": "sha512-IYv/2skhEDFc2WGUcqvFJkeK39Q+HyPf5GHUrT/l2pKbtgEIv1al1TKd6qStR5OIwQdN1GZP54ci3y4mroJWjA==", |       "integrity": "sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@fortawesome/fontawesome-common-types": "6.6.0" |         "@fortawesome/fontawesome-common-types": "6.7.2" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@goto-bus-stop/common-shake": { |     "@goto-bus-stop/common-shake": { | ||||||
| @ -23298,9 +23316,9 @@ | |||||||
|       "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" |       "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" | ||||||
|     }, |     }, | ||||||
|     "ci-info": { |     "ci-info": { | ||||||
|       "version": "3.8.0", |       "version": "4.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", |       "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz", | ||||||
|       "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", |       "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==", | ||||||
|       "optional": true |       "optional": true | ||||||
|     }, |     }, | ||||||
|     "cipher-base": { |     "cipher-base": { | ||||||
| @ -23896,12 +23914,12 @@ | |||||||
|       "peer": true |       "peer": true | ||||||
|     }, |     }, | ||||||
|     "cypress": { |     "cypress": { | ||||||
|       "version": "13.15.0", |       "version": "13.17.0", | ||||||
|       "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.15.0.tgz", |       "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.17.0.tgz", | ||||||
|       "integrity": "sha512-53aO7PwOfi604qzOkCSzNlWquCynLlKE/rmmpSPcziRH6LNfaDUAklQT6WJIsD8ywxlIy+uVZsnTMCCQVd2kTw==", |       "integrity": "sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA==", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@cypress/request": "^3.0.4", |         "@cypress/request": "^3.0.6", | ||||||
|         "@cypress/xvfb": "^1.2.4", |         "@cypress/xvfb": "^1.2.4", | ||||||
|         "@types/sinonjs__fake-timers": "8.1.1", |         "@types/sinonjs__fake-timers": "8.1.1", | ||||||
|         "@types/sizzle": "^2.3.2", |         "@types/sizzle": "^2.3.2", | ||||||
| @ -23912,6 +23930,7 @@ | |||||||
|         "cachedir": "^2.3.0", |         "cachedir": "^2.3.0", | ||||||
|         "chalk": "^4.1.0", |         "chalk": "^4.1.0", | ||||||
|         "check-more-types": "^2.24.0", |         "check-more-types": "^2.24.0", | ||||||
|  |         "ci-info": "^4.0.0", | ||||||
|         "cli-cursor": "^3.1.0", |         "cli-cursor": "^3.1.0", | ||||||
|         "cli-table3": "~0.6.1", |         "cli-table3": "~0.6.1", | ||||||
|         "commander": "^6.2.1", |         "commander": "^6.2.1", | ||||||
| @ -23926,7 +23945,6 @@ | |||||||
|         "figures": "^3.2.0", |         "figures": "^3.2.0", | ||||||
|         "fs-extra": "^9.1.0", |         "fs-extra": "^9.1.0", | ||||||
|         "getos": "^3.2.1", |         "getos": "^3.2.1", | ||||||
|         "is-ci": "^3.0.1", |  | ||||||
|         "is-installed-globally": "~0.4.0", |         "is-installed-globally": "~0.4.0", | ||||||
|         "lazy-ass": "^1.6.0", |         "lazy-ass": "^1.6.0", | ||||||
|         "listr2": "^3.8.3", |         "listr2": "^3.8.3", | ||||||
| @ -23941,6 +23959,7 @@ | |||||||
|         "semver": "^7.5.3", |         "semver": "^7.5.3", | ||||||
|         "supports-color": "^8.1.1", |         "supports-color": "^8.1.1", | ||||||
|         "tmp": "~0.2.3", |         "tmp": "~0.2.3", | ||||||
|  |         "tree-kill": "1.2.2", | ||||||
|         "untildify": "^4.0.0", |         "untildify": "^4.0.0", | ||||||
|         "yauzl": "^2.10.0" |         "yauzl": "^2.10.0" | ||||||
|       }, |       }, | ||||||
| @ -25433,11 +25452,6 @@ | |||||||
|         "object-keys": "^1.0.6" |         "object-keys": "^1.0.6" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "fancy-canvas": { |  | ||||||
|       "version": "0.2.2", |  | ||||||
|       "resolved": "https://registry.npmjs.org/fancy-canvas/-/fancy-canvas-0.2.2.tgz", |  | ||||||
|       "integrity": "sha512-50qi8xA0QkHbjmb8h7XQ6k2fvD7y/yMfiUw9YTarJ7rWrq6o5/3CCXPouYk+XSLASvvxtjyiQLRBFt3qkE3oyA==" |  | ||||||
|     }, |  | ||||||
|     "fast-deep-equal": { |     "fast-deep-equal": { | ||||||
|       "version": "3.1.3", |       "version": "3.1.3", | ||||||
|       "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", |       "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", | ||||||
| @ -26373,15 +26387,6 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", |       "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", | ||||||
|       "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" |       "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" | ||||||
|     }, |     }, | ||||||
|     "is-ci": { |  | ||||||
|       "version": "3.0.1", |  | ||||||
|       "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", |  | ||||||
|       "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", |  | ||||||
|       "optional": true, |  | ||||||
|       "requires": { |  | ||||||
|         "ci-info": "^3.2.0" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "is-core-module": { |     "is-core-module": { | ||||||
|       "version": "2.13.1", |       "version": "2.13.1", | ||||||
|       "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", |       "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", | ||||||
| @ -27015,14 +27020,6 @@ | |||||||
|         "webpack-sources": "^3.0.0" |         "webpack-sources": "^3.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "lightweight-charts": { |  | ||||||
|       "version": "3.8.0", |  | ||||||
|       "resolved": "https://registry.npmjs.org/lightweight-charts/-/lightweight-charts-3.8.0.tgz", |  | ||||||
|       "integrity": "sha512-7yFGnYuE1RjRJG9RwUTBz5wvF1QtjBOSW4FFlikr8Dh+/TDNt4ci+HsWSYmStgQUpawpvkCJ3j5/W25GppGj9Q==", |  | ||||||
|       "requires": { |  | ||||||
|         "fancy-canvas": "0.2.2" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "limiter": { |     "limiter": { | ||||||
|       "version": "1.1.5", |       "version": "1.1.5", | ||||||
|       "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", |       "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", | ||||||
| @ -28806,12 +28803,6 @@ | |||||||
|         "event-stream": "=3.3.4" |         "event-stream": "=3.3.4" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "psl": { |  | ||||||
|       "version": "1.9.0", |  | ||||||
|       "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", |  | ||||||
|       "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", |  | ||||||
|       "optional": true |  | ||||||
|     }, |  | ||||||
|     "public-encrypt": { |     "public-encrypt": { | ||||||
|       "version": "4.0.3", |       "version": "4.0.3", | ||||||
|       "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", |       "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", | ||||||
| @ -28903,12 +28894,6 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", |       "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", | ||||||
|       "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" |       "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" | ||||||
|     }, |     }, | ||||||
|     "querystringify": { |  | ||||||
|       "version": "2.2.0", |  | ||||||
|       "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", |  | ||||||
|       "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", |  | ||||||
|       "optional": true |  | ||||||
|     }, |  | ||||||
|     "queue-microtask": { |     "queue-microtask": { | ||||||
|       "version": "1.2.3", |       "version": "1.2.3", | ||||||
|       "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", |       "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", | ||||||
| @ -30373,6 +30358,21 @@ | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "tldts": { | ||||||
|  |       "version": "6.1.70", | ||||||
|  |       "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.70.tgz", | ||||||
|  |       "integrity": "sha512-/W1YVgYVJd9ZDjey5NXadNh0mJXkiUMUue9Zebd0vpdo1sU+H4zFFTaJ1RKD4N6KFoHfcXy6l+Vu7bh+bdWCzA==", | ||||||
|  |       "optional": true, | ||||||
|  |       "requires": { | ||||||
|  |         "tldts-core": "^6.1.70" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     "tldts-core": { | ||||||
|  |       "version": "6.1.70", | ||||||
|  |       "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.70.tgz", | ||||||
|  |       "integrity": "sha512-RNnIXDB1FD4T9cpQRErEqw6ZpjLlGdMOitdV+0xtbsnwr4YFka1zpc7D4KD+aAn8oSG5JyFrdasZTE04qDE9Yg==", | ||||||
|  |       "optional": true | ||||||
|  |     }, | ||||||
|     "tlite": { |     "tlite": { | ||||||
|       "version": "0.1.9", |       "version": "0.1.9", | ||||||
|       "resolved": "https://registry.npmjs.org/tlite/-/tlite-0.1.9.tgz", |       "resolved": "https://registry.npmjs.org/tlite/-/tlite-0.1.9.tgz", | ||||||
| @ -30405,23 +30405,12 @@ | |||||||
|       "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" |       "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" | ||||||
|     }, |     }, | ||||||
|     "tough-cookie": { |     "tough-cookie": { | ||||||
|       "version": "4.1.4", |       "version": "5.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", |       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.0.0.tgz", | ||||||
|       "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", |       "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", | ||||||
|       "optional": true, |       "optional": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "psl": "^1.1.33", |         "tldts": "^6.1.32" | ||||||
|         "punycode": "^2.1.1", |  | ||||||
|         "universalify": "^0.2.0", |  | ||||||
|         "url-parse": "^1.5.3" |  | ||||||
|       }, |  | ||||||
|       "dependencies": { |  | ||||||
|         "universalify": { |  | ||||||
|           "version": "0.2.0", |  | ||||||
|           "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", |  | ||||||
|           "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", |  | ||||||
|           "optional": true |  | ||||||
|         } |  | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "transform-ast": { |     "transform-ast": { | ||||||
| @ -30757,16 +30746,6 @@ | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "url-parse": { |  | ||||||
|       "version": "1.5.10", |  | ||||||
|       "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", |  | ||||||
|       "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", |  | ||||||
|       "optional": true, |  | ||||||
|       "requires": { |  | ||||||
|         "querystringify": "^2.1.1", |  | ||||||
|         "requires-port": "^1.0.0" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "util-deprecate": { |     "util-deprecate": { | ||||||
|       "version": "1.0.2", |       "version": "1.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", |       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||||||
|  | |||||||
| @ -76,9 +76,9 @@ | |||||||
|     "@angular/router": "^17.3.1", |     "@angular/router": "^17.3.1", | ||||||
|     "@angular/ssr": "^17.3.1", |     "@angular/ssr": "^17.3.1", | ||||||
|     "@fortawesome/angular-fontawesome": "~0.14.1", |     "@fortawesome/angular-fontawesome": "~0.14.1", | ||||||
|     "@fortawesome/fontawesome-common-types": "~6.6.0", |     "@fortawesome/fontawesome-common-types": "~6.7.2", | ||||||
|     "@fortawesome/fontawesome-svg-core": "~6.6.0", |     "@fortawesome/fontawesome-svg-core": "~6.7.2", | ||||||
|     "@fortawesome/free-solid-svg-icons": "~6.6.0", |     "@fortawesome/free-solid-svg-icons": "~6.7.2", | ||||||
|     "@mempool/mempool.js": "2.3.0", |     "@mempool/mempool.js": "2.3.0", | ||||||
|     "@ng-bootstrap/ng-bootstrap": "^16.0.0", |     "@ng-bootstrap/ng-bootstrap": "^16.0.0", | ||||||
|     "@types/qrcode": "~1.5.0", |     "@types/qrcode": "~1.5.0", | ||||||
| @ -87,7 +87,6 @@ | |||||||
|     "clipboard": "^2.0.11", |     "clipboard": "^2.0.11", | ||||||
|     "domino": "^2.1.6", |     "domino": "^2.1.6", | ||||||
|     "echarts": "~5.5.0", |     "echarts": "~5.5.0", | ||||||
|     "lightweight-charts": "~3.8.0", |  | ||||||
|     "ngx-echarts": "~17.2.0", |     "ngx-echarts": "~17.2.0", | ||||||
|     "ngx-infinite-scroll": "^17.0.0", |     "ngx-infinite-scroll": "^17.0.0", | ||||||
|     "qrcode": "1.5.1", |     "qrcode": "1.5.1", | ||||||
| @ -115,7 +114,7 @@ | |||||||
|   "optionalDependencies": { |   "optionalDependencies": { | ||||||
|     "@cypress/schematic": "^2.5.0", |     "@cypress/schematic": "^2.5.0", | ||||||
|     "@types/cypress": "^1.1.3", |     "@types/cypress": "^1.1.3", | ||||||
|     "cypress": "^13.15.0", |     "cypress": "^13.17.0", | ||||||
|     "cypress-fail-on-console-error": "~5.1.0", |     "cypress-fail-on-console-error": "~5.1.0", | ||||||
|     "cypress-wait-until": "^2.0.1", |     "cypress-wait-until": "^2.0.1", | ||||||
|     "mock-socket": "~9.3.1", |     "mock-socket": "~9.3.1", | ||||||
|  | |||||||
| @ -644,7 +644,7 @@ export class AccelerateCheckout implements OnInit, OnDestroy { | |||||||
|                 return; |                 return; | ||||||
|               } |               } | ||||||
|               const verificationToken = await this.$verifyBuyer(this.payments, tokenResult.token, tokenResult.details, costUSD.toFixed(2)); |               const verificationToken = await this.$verifyBuyer(this.payments, tokenResult.token, tokenResult.details, costUSD.toFixed(2)); | ||||||
|               if (!verificationToken) { |               if (!verificationToken || !verificationToken.token) { | ||||||
|                 console.error(`SCA verification failed`); |                 console.error(`SCA verification failed`); | ||||||
|                 this.accelerateError = 'SCA Verification Failed. Payment Declined.'; |                 this.accelerateError = 'SCA Verification Failed. Payment Declined.'; | ||||||
|                 this.processing = false; |                 this.processing = false; | ||||||
| @ -657,10 +657,11 @@ export class AccelerateCheckout implements OnInit, OnDestroy { | |||||||
|               this.servicesApiService.accelerateWithGooglePay$( |               this.servicesApiService.accelerateWithGooglePay$( | ||||||
|                 this.tx.txid, |                 this.tx.txid, | ||||||
|                 tokenResult.token, |                 tokenResult.token, | ||||||
|                 verificationToken, |                 verificationToken.token, | ||||||
|                 cardTag, |                 cardTag, | ||||||
|                 `accelerator-${this.tx.txid.substring(0, 15)}-${Math.round(new Date().getTime() / 1000)}`, |                 `accelerator-${this.tx.txid.substring(0, 15)}-${Math.round(new Date().getTime() / 1000)}`, | ||||||
|                 costUSD |                 costUSD, | ||||||
|  |                 verificationToken.userChallenged | ||||||
|               ).subscribe({ |               ).subscribe({ | ||||||
|                 next: () => { |                 next: () => { | ||||||
|                   this.processing = false; |                   this.processing = false; | ||||||
| @ -795,9 +796,9 @@ export class AccelerateCheckout implements OnInit, OnDestroy { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** |   /** | ||||||
|    * Required in SCA Mandated Regions: Learn more at https://developer.squareup.com/docs/sca-overview
 |    * https://developer.squareup.com/docs/sca-overview
 | ||||||
|    */ |    */ | ||||||
|   async $verifyBuyer(payments, token, details, amount) { |   async $verifyBuyer(payments, token, details, amount): Promise<{token: string, userChallenged: boolean}> { | ||||||
|     const verificationDetails = { |     const verificationDetails = { | ||||||
|       amount: amount, |       amount: amount, | ||||||
|       currencyCode: 'USD', |       currencyCode: 'USD', | ||||||
| @ -817,7 +818,7 @@ export class AccelerateCheckout implements OnInit, OnDestroy { | |||||||
|       token, |       token, | ||||||
|       verificationDetails, |       verificationDetails, | ||||||
|     ); |     ); | ||||||
|     return verificationResults.token; |     return verificationResults; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** |   /** | ||||||
|  | |||||||
| @ -46,6 +46,8 @@ export class AccelerationFeesGraphComponent implements OnInit, OnChanges, OnDest | |||||||
| 
 | 
 | ||||||
|   aggregatedHistory$: Observable<any>; |   aggregatedHistory$: Observable<any>; | ||||||
|   statsSubscription: Subscription; |   statsSubscription: Subscription; | ||||||
|  |   aggregatedHistorySubscription: Subscription; | ||||||
|  |   fragmentSubscription: Subscription; | ||||||
|   isLoading = true; |   isLoading = true; | ||||||
|   formatNumber = formatNumber; |   formatNumber = formatNumber; | ||||||
|   timespan = ''; |   timespan = ''; | ||||||
| @ -80,7 +82,7 @@ export class AccelerationFeesGraphComponent implements OnInit, OnChanges, OnDest | |||||||
|     this.radioGroupForm = this.formBuilder.group({ dateSpan: this.miningWindowPreference }); |     this.radioGroupForm = this.formBuilder.group({ dateSpan: this.miningWindowPreference }); | ||||||
|     this.radioGroupForm.controls.dateSpan.setValue(this.miningWindowPreference); |     this.radioGroupForm.controls.dateSpan.setValue(this.miningWindowPreference); | ||||||
| 
 | 
 | ||||||
|     this.route.fragment.subscribe((fragment) => { |     this.fragmentSubscription = this.route.fragment.subscribe((fragment) => { | ||||||
|       if (['24h', '3d', '1w', '1m', '3m', 'all'].indexOf(fragment) > -1) { |       if (['24h', '3d', '1w', '1m', '3m', 'all'].indexOf(fragment) > -1) { | ||||||
|         this.radioGroupForm.controls.dateSpan.setValue(fragment, { emitEvent: false }); |         this.radioGroupForm.controls.dateSpan.setValue(fragment, { emitEvent: false }); | ||||||
|       } |       } | ||||||
| @ -113,7 +115,7 @@ export class AccelerationFeesGraphComponent implements OnInit, OnChanges, OnDest | |||||||
|       share(), |       share(), | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|     this.aggregatedHistory$.subscribe(); |     this.aggregatedHistorySubscription = this.aggregatedHistory$.subscribe(); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   ngOnChanges(changes: SimpleChanges): void { |   ngOnChanges(changes: SimpleChanges): void { | ||||||
| @ -335,8 +337,8 @@ export class AccelerationFeesGraphComponent implements OnInit, OnChanges, OnDest | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   ngOnDestroy(): void { |   ngOnDestroy(): void { | ||||||
|     if (this.statsSubscription) { |     this.aggregatedHistorySubscription?.unsubscribe(); | ||||||
|       this.statsSubscription.unsubscribe(); |     this.fragmentSubscription?.unsubscribe(); | ||||||
|     } |     this.statsSubscription?.unsubscribe(); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -172,13 +172,19 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On | |||||||
|   ngOnDestroy(): void { |   ngOnDestroy(): void { | ||||||
|     if (this.animationFrameRequest) { |     if (this.animationFrameRequest) { | ||||||
|       cancelAnimationFrame(this.animationFrameRequest); |       cancelAnimationFrame(this.animationFrameRequest); | ||||||
|       clearTimeout(this.animationHeartBeat); |  | ||||||
|     } |     } | ||||||
|  |     clearTimeout(this.animationHeartBeat); | ||||||
|     if (this.canvas) { |     if (this.canvas) { | ||||||
|       this.canvas.nativeElement.removeEventListener('webglcontextlost', this.handleContextLost); |       this.canvas.nativeElement.removeEventListener('webglcontextlost', this.handleContextLost); | ||||||
|       this.canvas.nativeElement.removeEventListener('webglcontextrestored', this.handleContextRestored); |       this.canvas.nativeElement.removeEventListener('webglcontextrestored', this.handleContextRestored); | ||||||
|       this.themeChangedSubscription?.unsubscribe(); |  | ||||||
|     } |     } | ||||||
|  |     if (this.scene) { | ||||||
|  |       this.scene.destroy(); | ||||||
|  |     } | ||||||
|  |     this.vertexArray.destroy(); | ||||||
|  |     this.vertexArray = null; | ||||||
|  |     this.themeChangedSubscription?.unsubscribe(); | ||||||
|  |     this.searchSubscription?.unsubscribe(); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   clear(direction): void { |   clear(direction): void { | ||||||
| @ -447,7 +453,7 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On | |||||||
|     } |     } | ||||||
|     this.applyQueuedUpdates(); |     this.applyQueuedUpdates(); | ||||||
|     // skip re-render if there's no change to the scene
 |     // skip re-render if there's no change to the scene
 | ||||||
|     if (this.scene && this.gl) { |     if (this.scene && this.gl && this.vertexArray) { | ||||||
|       /* SET UP SHADER UNIFORMS */ |       /* SET UP SHADER UNIFORMS */ | ||||||
|       // screen dimensions
 |       // screen dimensions
 | ||||||
|       this.gl.uniform2f(this.gl.getUniformLocation(this.shaderProgram, 'screenSize'), this.displayWidth, this.displayHeight); |       this.gl.uniform2f(this.gl.getUniformLocation(this.shaderProgram, 'screenSize'), this.displayWidth, this.displayHeight); | ||||||
| @ -489,9 +495,7 @@ export class BlockOverviewGraphComponent implements AfterViewInit, OnDestroy, On | |||||||
|     if (this.running && this.scene && now <= (this.scene.animateUntil + 500)) { |     if (this.running && this.scene && now <= (this.scene.animateUntil + 500)) { | ||||||
|       this.doRun(); |       this.doRun(); | ||||||
|     } else { |     } else { | ||||||
|       if (this.animationHeartBeat) { |  | ||||||
|       clearTimeout(this.animationHeartBeat); |       clearTimeout(this.animationHeartBeat); | ||||||
|       } |  | ||||||
|       this.animationHeartBeat = window.setTimeout(() => { |       this.animationHeartBeat = window.setTimeout(() => { | ||||||
|         this.start(); |         this.start(); | ||||||
|       }, 1000); |       }, 1000); | ||||||
|  | |||||||
| @ -19,6 +19,7 @@ export class FastVertexArray { | |||||||
|   freeSlots: number[]; |   freeSlots: number[]; | ||||||
|   lastSlot: number; |   lastSlot: number; | ||||||
|   dirty = false; |   dirty = false; | ||||||
|  |   destroyed = false; | ||||||
| 
 | 
 | ||||||
|   constructor(length, stride) { |   constructor(length, stride) { | ||||||
|     this.length = length; |     this.length = length; | ||||||
| @ -32,6 +33,9 @@ export class FastVertexArray { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   insert(sprite: TxSprite): number { |   insert(sprite: TxSprite): number { | ||||||
|  |     if (this.destroyed) { | ||||||
|  |       return; | ||||||
|  |     } | ||||||
|     this.count++; |     this.count++; | ||||||
| 
 | 
 | ||||||
|     let position; |     let position; | ||||||
| @ -45,11 +49,14 @@ export class FastVertexArray { | |||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     this.sprites[position] = sprite; |     this.sprites[position] = sprite; | ||||||
|     return position; |  | ||||||
|     this.dirty = true; |     this.dirty = true; | ||||||
|  |     return position; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   remove(index: number): void { |   remove(index: number): void { | ||||||
|  |     if (this.destroyed) { | ||||||
|  |       return; | ||||||
|  |     } | ||||||
|     this.count--; |     this.count--; | ||||||
|     this.clearData(index); |     this.clearData(index); | ||||||
|     this.freeSlots.push(index); |     this.freeSlots.push(index); | ||||||
| @ -61,20 +68,26 @@ export class FastVertexArray { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   setData(index: number, dataChunk: number[]): void { |   setData(index: number, dataChunk: number[]): void { | ||||||
|  |     if (this.destroyed) { | ||||||
|  |       return; | ||||||
|  |     } | ||||||
|     this.data.set(dataChunk, (index * this.stride)); |     this.data.set(dataChunk, (index * this.stride)); | ||||||
|     this.dirty = true; |     this.dirty = true; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   clearData(index: number): void { |   private clearData(index: number): void { | ||||||
|     this.data.fill(0, (index * this.stride), ((index + 1) * this.stride)); |     this.data.fill(0, (index * this.stride), ((index + 1) * this.stride)); | ||||||
|     this.dirty = true; |     this.dirty = true; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   getData(index: number): Float32Array { |   getData(index: number): Float32Array { | ||||||
|  |     if (this.destroyed) { | ||||||
|  |       return; | ||||||
|  |     } | ||||||
|     return this.data.subarray(index, this.stride); |     return this.data.subarray(index, this.stride); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   expand(): void { |   private expand(): void { | ||||||
|     this.length *= 2; |     this.length *= 2; | ||||||
|     const newData = new Float32Array(this.length * this.stride); |     const newData = new Float32Array(this.length * this.stride); | ||||||
|     newData.set(this.data); |     newData.set(this.data); | ||||||
| @ -82,7 +95,7 @@ export class FastVertexArray { | |||||||
|     this.dirty = true; |     this.dirty = true; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   compact(): void { |   private compact(): void { | ||||||
|     // New array length is the smallest power of 2 larger than the sprite count (but no smaller than 512)
 |     // New array length is the smallest power of 2 larger than the sprite count (but no smaller than 512)
 | ||||||
|     const newLength = Math.max(512, Math.pow(2, Math.ceil(Math.log2(this.count)))); |     const newLength = Math.max(512, Math.pow(2, Math.ceil(Math.log2(this.count)))); | ||||||
|     if (newLength !== this.length) { |     if (newLength !== this.length) { | ||||||
| @ -110,4 +123,13 @@ export class FastVertexArray { | |||||||
|   getVertexData(): Float32Array { |   getVertexData(): Float32Array { | ||||||
|     return this.data; |     return this.data; | ||||||
|   } |   } | ||||||
|  | 
 | ||||||
|  |   destroy(): void { | ||||||
|  |     this.data = null; | ||||||
|  |     this.sprites = null; | ||||||
|  |     this.freeSlots = null; | ||||||
|  |     this.lastSlot = 0; | ||||||
|  |     this.dirty = false; | ||||||
|  |     this.destroyed = true; | ||||||
|  |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -116,7 +116,7 @@ export class BlockViewComponent implements OnInit, OnDestroy { | |||||||
|         this.isLoadingBlock = false; |         this.isLoadingBlock = false; | ||||||
|         this.isLoadingOverview = true; |         this.isLoadingOverview = true; | ||||||
|       }), |       }), | ||||||
|       shareReplay(1) |       shareReplay({ bufferSize: 1, refCount: true }) | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|     this.overviewSubscription = block$.pipe( |     this.overviewSubscription = block$.pipe( | ||||||
| @ -176,5 +176,8 @@ export class BlockViewComponent implements OnInit, OnDestroy { | |||||||
|     if (this.queryParamsSubscription) { |     if (this.queryParamsSubscription) { | ||||||
|       this.queryParamsSubscription.unsubscribe(); |       this.queryParamsSubscription.unsubscribe(); | ||||||
|     } |     } | ||||||
|  |     if (this.blockGraph) { | ||||||
|  |       this.blockGraph.destroy(); | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -117,7 +117,7 @@ export class BlockPreviewComponent implements OnInit, OnDestroy { | |||||||
|         this.openGraphService.waitOver('block-data-' + this.rawId); |         this.openGraphService.waitOver('block-data-' + this.rawId); | ||||||
|       }), |       }), | ||||||
|       throttleTime(50, asyncScheduler, { leading: true, trailing: true }), |       throttleTime(50, asyncScheduler, { leading: true, trailing: true }), | ||||||
|       shareReplay(1) |       shareReplay({ bufferSize: 1, refCount: true }) | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|     this.overviewSubscription = block$.pipe( |     this.overviewSubscription = block$.pipe( | ||||||
|  | |||||||
| @ -1,8 +1,8 @@ | |||||||
| import { Component, OnInit, OnDestroy, ViewChildren, QueryList, ChangeDetectorRef } from '@angular/core'; | import { Component, OnInit, OnDestroy, ViewChildren, QueryList, ChangeDetectorRef } from '@angular/core'; | ||||||
| import { Location } from '@angular/common'; | import { Location } from '@angular/common'; | ||||||
| import { ActivatedRoute, ParamMap, Router } from '@angular/router'; | import { ActivatedRoute, ParamMap, Params, Router } from '@angular/router'; | ||||||
| import { ElectrsApiService } from '@app/services/electrs-api.service'; | import { ElectrsApiService } from '@app/services/electrs-api.service'; | ||||||
| import { switchMap, tap, throttleTime, catchError, map, shareReplay, startWith, filter } from 'rxjs/operators'; | import { switchMap, tap, throttleTime, catchError, map, shareReplay, startWith, filter, take } from 'rxjs/operators'; | ||||||
| import { Observable, of, Subscription, asyncScheduler, EMPTY, combineLatest, forkJoin } from 'rxjs'; | import { Observable, of, Subscription, asyncScheduler, EMPTY, combineLatest, forkJoin } from 'rxjs'; | ||||||
| import { StateService } from '@app/services/state.service'; | import { StateService } from '@app/services/state.service'; | ||||||
| import { SeoService } from '@app/services/seo.service'; | import { SeoService } from '@app/services/seo.service'; | ||||||
| @ -68,6 +68,7 @@ export class BlockComponent implements OnInit, OnDestroy { | |||||||
|   paginationMaxSize = window.matchMedia('(max-width: 670px)').matches ? 3 : 5; |   paginationMaxSize = window.matchMedia('(max-width: 670px)').matches ? 3 : 5; | ||||||
|   numUnexpected: number = 0; |   numUnexpected: number = 0; | ||||||
|   mode: 'projected' | 'actual' = 'projected'; |   mode: 'projected' | 'actual' = 'projected'; | ||||||
|  |   currentQueryParams: Params; | ||||||
| 
 | 
 | ||||||
|   overviewSubscription: Subscription; |   overviewSubscription: Subscription; | ||||||
|   accelerationsSubscription: Subscription; |   accelerationsSubscription: Subscription; | ||||||
| @ -80,8 +81,8 @@ export class BlockComponent implements OnInit, OnDestroy { | |||||||
|   timeLtr: boolean; |   timeLtr: boolean; | ||||||
|   childChangeSubscription: Subscription; |   childChangeSubscription: Subscription; | ||||||
|   auditPrefSubscription: Subscription; |   auditPrefSubscription: Subscription; | ||||||
|  |   isAuditEnabledSubscription: Subscription; | ||||||
|   oobSubscription: Subscription; |   oobSubscription: Subscription; | ||||||
|    |  | ||||||
|   priceSubscription: Subscription; |   priceSubscription: Subscription; | ||||||
|   blockConversion: Price; |   blockConversion: Price; | ||||||
| 
 | 
 | ||||||
| @ -118,7 +119,7 @@ export class BlockComponent implements OnInit, OnDestroy { | |||||||
|     this.setAuditAvailable(this.auditSupported); |     this.setAuditAvailable(this.auditSupported); | ||||||
| 
 | 
 | ||||||
|     if (this.auditSupported) { |     if (this.auditSupported) { | ||||||
|       this.isAuditEnabledFromParam().subscribe(auditParam => { |       this.isAuditEnabledSubscription = this.isAuditEnabledFromParam().subscribe(auditParam => { | ||||||
|         if (this.auditParamEnabled) { |         if (this.auditParamEnabled) { | ||||||
|           this.auditModeEnabled = auditParam; |           this.auditModeEnabled = auditParam; | ||||||
|         } else { |         } else { | ||||||
| @ -281,7 +282,7 @@ export class BlockComponent implements OnInit, OnDestroy { | |||||||
|         } |         } | ||||||
|       }), |       }), | ||||||
|       throttleTime(300, asyncScheduler, { leading: true, trailing: true }), |       throttleTime(300, asyncScheduler, { leading: true, trailing: true }), | ||||||
|       shareReplay(1) |       shareReplay({ bufferSize: 1, refCount: true }) | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|     this.overviewSubscription = this.block$.pipe( |     this.overviewSubscription = this.block$.pipe( | ||||||
| @ -363,6 +364,7 @@ export class BlockComponent implements OnInit, OnDestroy { | |||||||
|       .subscribe((network) => this.network = network); |       .subscribe((network) => this.network = network); | ||||||
| 
 | 
 | ||||||
|     this.queryParamsSubscription = this.route.queryParams.subscribe((params) => { |     this.queryParamsSubscription = this.route.queryParams.subscribe((params) => { | ||||||
|  |       this.currentQueryParams = params; | ||||||
|       if (params.showDetails === 'true') { |       if (params.showDetails === 'true') { | ||||||
|         this.showDetails = true; |         this.showDetails = true; | ||||||
|       } else { |       } else { | ||||||
| @ -414,6 +416,7 @@ export class BlockComponent implements OnInit, OnDestroy { | |||||||
|   ngOnDestroy(): void { |   ngOnDestroy(): void { | ||||||
|     this.stateService.markBlock$.next({}); |     this.stateService.markBlock$.next({}); | ||||||
|     this.overviewSubscription?.unsubscribe(); |     this.overviewSubscription?.unsubscribe(); | ||||||
|  |     this.accelerationsSubscription?.unsubscribe(); | ||||||
|     this.keyNavigationSubscription?.unsubscribe(); |     this.keyNavigationSubscription?.unsubscribe(); | ||||||
|     this.blocksSubscription?.unsubscribe(); |     this.blocksSubscription?.unsubscribe(); | ||||||
|     this.cacheBlocksSubscription?.unsubscribe(); |     this.cacheBlocksSubscription?.unsubscribe(); | ||||||
| @ -421,8 +424,16 @@ export class BlockComponent implements OnInit, OnDestroy { | |||||||
|     this.queryParamsSubscription?.unsubscribe(); |     this.queryParamsSubscription?.unsubscribe(); | ||||||
|     this.timeLtrSubscription?.unsubscribe(); |     this.timeLtrSubscription?.unsubscribe(); | ||||||
|     this.childChangeSubscription?.unsubscribe(); |     this.childChangeSubscription?.unsubscribe(); | ||||||
|     this.priceSubscription?.unsubscribe(); |     this.auditPrefSubscription?.unsubscribe(); | ||||||
|  |     this.isAuditEnabledSubscription?.unsubscribe(); | ||||||
|     this.oobSubscription?.unsubscribe(); |     this.oobSubscription?.unsubscribe(); | ||||||
|  |     this.priceSubscription?.unsubscribe(); | ||||||
|  |     this.blockGraphProjected.forEach(graph => { | ||||||
|  |       graph.destroy(); | ||||||
|  |     }); | ||||||
|  |     this.blockGraphActual.forEach(graph => { | ||||||
|  |       graph.destroy(); | ||||||
|  |     }); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   // TODO - Refactor this.fees/this.reward for liquid because it is not
 |   // TODO - Refactor this.fees/this.reward for liquid because it is not
 | ||||||
| @ -733,8 +744,7 @@ export class BlockComponent implements OnInit, OnDestroy { | |||||||
|   toggleAuditMode(): void { |   toggleAuditMode(): void { | ||||||
|     this.stateService.hideAudit.next(this.auditModeEnabled); |     this.stateService.hideAudit.next(this.auditModeEnabled); | ||||||
| 
 | 
 | ||||||
|     this.route.queryParams.subscribe(params => { |     const queryParams = { ...this.currentQueryParams }; | ||||||
|       const queryParams = { ...params }; |  | ||||||
|     delete queryParams['audit']; |     delete queryParams['audit']; | ||||||
| 
 | 
 | ||||||
|     let newUrl = this.router.url.split('?')[0]; |     let newUrl = this.router.url.split('?')[0]; | ||||||
| @ -742,10 +752,10 @@ export class BlockComponent implements OnInit, OnDestroy { | |||||||
|     if (queryString) { |     if (queryString) { | ||||||
|       newUrl += '?' + queryString; |       newUrl += '?' + queryString; | ||||||
|     } |     } | ||||||
|    |  | ||||||
|     this.location.replaceState(newUrl); |     this.location.replaceState(newUrl); | ||||||
|     }); |  | ||||||
| 
 | 
 | ||||||
|  |     // avoid duplicate subscriptions
 | ||||||
|  |     this.auditPrefSubscription?.unsubscribe(); | ||||||
|     this.auditPrefSubscription = this.stateService.hideAudit.subscribe((hide) => { |     this.auditPrefSubscription = this.stateService.hideAudit.subscribe((hide) => { | ||||||
|       this.auditModeEnabled = !hide; |       this.auditModeEnabled = !hide; | ||||||
|       this.showAudit = this.auditAvailable && this.auditModeEnabled; |       this.showAudit = this.auditAvailable && this.auditModeEnabled; | ||||||
|  | |||||||
| @ -162,6 +162,9 @@ export class EightBlocksComponent implements OnInit, OnDestroy { | |||||||
|     this.cacheBlocksSubscription?.unsubscribe(); |     this.cacheBlocksSubscription?.unsubscribe(); | ||||||
|     this.networkChangedSubscription?.unsubscribe(); |     this.networkChangedSubscription?.unsubscribe(); | ||||||
|     this.queryParamsSubscription?.unsubscribe(); |     this.queryParamsSubscription?.unsubscribe(); | ||||||
|  |     this.blockGraphs.forEach(graph => { | ||||||
|  |       graph.destroy(); | ||||||
|  |     }); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   shiftTestBlocks(): void { |   shiftTestBlocks(): void { | ||||||
|  | |||||||
| @ -120,6 +120,7 @@ export class MempoolBlockOverviewComponent implements OnInit, OnDestroy, OnChang | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   ngOnDestroy(): void { |   ngOnDestroy(): void { | ||||||
|  |     this.blockGraph?.destroy(); | ||||||
|     this.blockSub.unsubscribe(); |     this.blockSub.unsubscribe(); | ||||||
|     this.timeLtrSubscription.unsubscribe(); |     this.timeLtrSubscription.unsubscribe(); | ||||||
|     this.websocketService.stopTrackMempoolBlock(); |     this.websocketService.stopTrackMempoolBlock(); | ||||||
|  | |||||||
| @ -240,7 +240,7 @@ export class TransactionComponent implements OnInit, AfterViewInit, OnDestroy { | |||||||
|         retry({ count: 2, delay: 2000 }), |         retry({ count: 2, delay: 2000 }), | ||||||
|         // Try again until we either get a valid response, or the transaction is confirmed
 |         // Try again until we either get a valid response, or the transaction is confirmed
 | ||||||
|         repeat({ delay: 2000 }), |         repeat({ delay: 2000 }), | ||||||
|         filter((transactionTimes) => transactionTimes?.length && transactionTimes[0] > 0 && !this.tx.status?.confirmed), |         filter((transactionTimes) => transactionTimes?.[0] > 0 || this.tx.status?.confirmed), | ||||||
|         take(1), |         take(1), | ||||||
|       )), |       )), | ||||||
|     ) |     ) | ||||||
|  | |||||||
| @ -143,8 +143,8 @@ export class ServicesApiServices { | |||||||
|     return this.httpClient.post<any>(`${this.stateService.env.SERVICES_API}/accelerator/accelerate/applePay`, { txInput: txInput, cardTag: cardTag, token: token, referenceId: referenceId, userApprovedUSD: userApprovedUSD }); |     return this.httpClient.post<any>(`${this.stateService.env.SERVICES_API}/accelerator/accelerate/applePay`, { txInput: txInput, cardTag: cardTag, token: token, referenceId: referenceId, userApprovedUSD: userApprovedUSD }); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   accelerateWithGooglePay$(txInput: string, token: string, verificationToken: string, cardTag: string, referenceId: string, userApprovedUSD: number) { |   accelerateWithGooglePay$(txInput: string, token: string, verificationToken: string, cardTag: string, referenceId: string, userApprovedUSD: number, userChallenged: boolean) { | ||||||
|     return this.httpClient.post<any>(`${this.stateService.env.SERVICES_API}/accelerator/accelerate/googlePay`, { txInput: txInput, cardTag: cardTag, token: token, verificationToken: verificationToken, referenceId: referenceId, userApprovedUSD: userApprovedUSD }); |     return this.httpClient.post<any>(`${this.stateService.env.SERVICES_API}/accelerator/accelerate/googlePay`, { txInput: txInput, cardTag: cardTag, token: token, verificationToken: verificationToken, referenceId: referenceId, userApprovedUSD: userApprovedUSD, userChallenged: userChallenged }); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   getAccelerations$(): Observable<Acceleration[]> { |   getAccelerations$(): Observable<Acceleration[]> { | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ import { NgbCollapseModule, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstra | |||||||
| import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome'; | import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome'; | ||||||
| import { faFilter, faAngleDown, faAngleUp, faAngleRight, faAngleLeft, faBolt, faChartArea, faCogs, faCubes, faHammer, faDatabase, faExchangeAlt, faInfoCircle, | import { faFilter, faAngleDown, faAngleUp, faAngleRight, faAngleLeft, faBolt, faChartArea, faCogs, faCubes, faHammer, faDatabase, faExchangeAlt, faInfoCircle, | ||||||
|   faLink, faList, faSearch, faCaretUp, faCaretDown, faTachometerAlt, faThList, faTint, faTv, faClock, faAngleDoubleDown, faSortUp, faAngleDoubleUp, faChevronDown, |   faLink, faList, faSearch, faCaretUp, faCaretDown, faTachometerAlt, faThList, faTint, faTv, faClock, faAngleDoubleDown, faSortUp, faAngleDoubleUp, faChevronDown, | ||||||
|   faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft, faFastForward, faWallet, faUserClock, faWrench, faUserFriends, faQuestionCircle, faHistory, faSignOutAlt, faKey, faSuitcase, faIdCardAlt, faNetworkWired, faUserCheck, faCircleCheck, faUserCircle, faCheck, faRocket, faScaleBalanced, faHourglassStart, faHourglassHalf, faHourglassEnd, faWandMagicSparkles, faFaucetDrip, faTimeline, faCircleXmark, faCalendarCheck } from '@fortawesome/free-solid-svg-icons'; |   faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft, faFastForward, faWallet, faUserClock, faWrench, faUserFriends, faQuestionCircle, faHistory, faSignOutAlt, faKey, faSuitcase, faIdCardAlt, faNetworkWired, faUserCheck, faCircleCheck, faUserCircle, faCheck, faRocket, faScaleBalanced, faHourglassStart, faHourglassHalf, faHourglassEnd, faWandMagicSparkles, faFaucetDrip, faTimeline, faCircleXmark, faCalendarCheck, faMoneyBillTrendUp } from '@fortawesome/free-solid-svg-icons'; | ||||||
| import { InfiniteScrollModule } from 'ngx-infinite-scroll'; | import { InfiniteScrollModule } from 'ngx-infinite-scroll'; | ||||||
| import { MenuComponent } from '@components/menu/menu.component'; | import { MenuComponent } from '@components/menu/menu.component'; | ||||||
| import { PreviewTitleComponent } from '@components/master-page-preview/preview-title.component'; | import { PreviewTitleComponent } from '@components/master-page-preview/preview-title.component'; | ||||||
| @ -451,5 +451,6 @@ export class SharedModule { | |||||||
|     library.addIcons(faTimeline); |     library.addIcons(faTimeline); | ||||||
|     library.addIcons(faCircleXmark); |     library.addIcons(faCircleXmark); | ||||||
|     library.addIcons(faCalendarCheck); |     library.addIcons(faCalendarCheck); | ||||||
|  |     library.addIcons(faMoneyBillTrendUp); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user