socket onclose
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
{"apiHost":"api.testnet.frontblock.me","apiPort":10001}
|
||||||
Generated
+284
-165
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "assignment1",
|
"name": "frontblock-admin",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
@@ -442,9 +442,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/express": {
|
"@types/express": {
|
||||||
"version": "4.16.1",
|
"version": "4.17.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.0.tgz",
|
||||||
"integrity": "sha512-V0clmJow23WeyblmACoxbHBu2JKlE5TiIme6Lem14FnPW9gsttyHtk6wq7njcdIWH1njAaFgR8gW09lgY98gQg==",
|
"integrity": "sha512-CjaMu57cjgjuZbh9DpkloeGxV45CnMGlVd+XpG7Gm9QgVrd7KFq+X4HY0vM+2v0bczS48Wg7bvnMY5TN+Xmcfw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/body-parser": "*",
|
"@types/body-parser": "*",
|
||||||
"@types/express-serve-static-core": "*",
|
"@types/express-serve-static-core": "*",
|
||||||
@@ -452,14 +452,27 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/express-serve-static-core": {
|
"@types/express-serve-static-core": {
|
||||||
"version": "4.16.6",
|
"version": "4.16.7",
|
||||||
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.6.tgz",
|
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.7.tgz",
|
||||||
"integrity": "sha512-8wr3CA/EMybyb6/V8qvTRKiNkPmgUA26uA9XWD6hlA0yFDuqi4r2L0C2B0U2HAYltJamoYJszlkaWM31vrKsHg==",
|
"integrity": "sha512-847KvL8Q1y3TtFLRTXcVakErLJQgdpFSaq+k043xefz9raEf0C7HalpSY7OW5PyjCnY8P7bPW5t/Co9qqp+USg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/node": "*",
|
"@types/node": "*",
|
||||||
"@types/range-parser": "*"
|
"@types/range-parser": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@types/fs-extra": {
|
||||||
|
"version": "8.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.0.0.tgz",
|
||||||
|
"integrity": "sha512-bCtL5v9zdbQW86yexOlXWTEGvLNqWxMFyi7gQA7Gcthbezr2cPSOb8SkESVKA937QD5cIwOFLDFt0MQoXOEr9Q==",
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/is-valid-path": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/is-valid-path/-/is-valid-path-0.1.0.tgz",
|
||||||
|
"integrity": "sha512-2ontWtpN8O2nf5S7EjDDJ0DwrRa2t7wmS3Wmo322yWYG6yFBYC1QCaLhz4Iz+mzJy8Kf4zP5yVyEd1ANPDmOFQ=="
|
||||||
|
},
|
||||||
"@types/istanbul-lib-coverage": {
|
"@types/istanbul-lib-coverage": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz",
|
||||||
@@ -486,9 +499,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/jest": {
|
"@types/jest": {
|
||||||
"version": "24.0.13",
|
"version": "24.0.15",
|
||||||
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.0.13.tgz",
|
"resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.0.15.tgz",
|
||||||
"integrity": "sha512-3m6RPnO35r7Dg+uMLj1+xfZaOgIHHHut61djNjzwExXN4/Pm9has9C6I1KMYSfz7mahDhWUOVg4HW/nZdv5Pww==",
|
"integrity": "sha512-MU1HIvWUme74stAoc3mgAi+aMlgKOudgEvQDIm1v4RkrDudBh1T+NFp5sftpBAdXdx1J0PbdpJ+M2EsSOi1djA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/jest-diff": "*"
|
"@types/jest-diff": "*"
|
||||||
@@ -506,9 +519,9 @@
|
|||||||
"integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw=="
|
"integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw=="
|
||||||
},
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "11.13.13",
|
"version": "11.13.17",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.13.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.17.tgz",
|
||||||
"integrity": "sha512-GFWH7e4Q/OGLAO545bupVju+nE1YtLSwYAdLfSzAXnTPqoqKoXCOEtB7Cluvg9B/h2nGLhyzCDyCInYvrOE2nw=="
|
"integrity": "sha512-7W3kSMa8diVH6s24a8Qrmvwu+vG3ahOC/flMHFdWSdnPYoQI0yPO84h5zOWYXAha2Npn3Pw3SSuQSwBUfaniyQ=="
|
||||||
},
|
},
|
||||||
"@types/range-parser": {
|
"@types/range-parser": {
|
||||||
"version": "1.2.3",
|
"version": "1.2.3",
|
||||||
@@ -1109,9 +1122,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"base-x": {
|
"base-x": {
|
||||||
"version": "3.0.5",
|
"version": "3.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.6.tgz",
|
||||||
"integrity": "sha512-C3picSgzPSLE+jW3tcBzJoGwitOtazb5B+5YmAxZm2ybmTi9LNgAtDO/jjVEBZwHoXmDBZ9m/IELj3elJVRBcA==",
|
"integrity": "sha512-4PaF8u2+AlViJxRVjurkLTxpp7CaFRD/jo5rPT9ONnKxyhQ8f59yzamEvq7EkriG56yn5On4ONyaG75HLqr46w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "^5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
}
|
}
|
||||||
@@ -1622,6 +1635,21 @@
|
|||||||
"upath": "^1.1.1"
|
"upath": "^1.1.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"is-extglob": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||||
|
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"is-glob": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"is-extglob": "^2.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"normalize-path": {
|
"normalize-path": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
||||||
@@ -2212,9 +2240,9 @@
|
|||||||
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
|
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
|
||||||
},
|
},
|
||||||
"elliptic": {
|
"elliptic": {
|
||||||
"version": "6.4.1",
|
"version": "6.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz",
|
||||||
"integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==",
|
"integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"bn.js": "^4.4.0",
|
"bn.js": "^4.4.0",
|
||||||
"brorand": "^1.0.1",
|
"brorand": "^1.0.1",
|
||||||
@@ -2225,6 +2253,12 @@
|
|||||||
"minimalistic-crypto-utils": "^1.0.0"
|
"minimalistic-crypto-utils": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"emoji-regex": {
|
||||||
|
"version": "7.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
||||||
|
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"emojis-list": {
|
"emojis-list": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
|
||||||
@@ -2764,32 +2798,38 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"findup-sync": {
|
"findup-sync": {
|
||||||
"version": "2.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
|
||||||
"integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
|
"integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"detect-file": "^1.0.0",
|
"detect-file": "^1.0.0",
|
||||||
"is-glob": "^3.1.0",
|
"is-glob": "^4.0.0",
|
||||||
"micromatch": "^3.0.4",
|
"micromatch": "^3.0.4",
|
||||||
"resolve-dir": "^1.0.1"
|
"resolve-dir": "^1.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"is-extglob": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||||
|
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"is-glob": {
|
"is-glob": {
|
||||||
"version": "3.1.0",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
|
||||||
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
|
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-extglob": "^2.1.0"
|
"is-extglob": "^2.1.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flatted": {
|
"flatted": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
|
||||||
"integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg=="
|
"integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg=="
|
||||||
},
|
},
|
||||||
"flush-write-stream": {
|
"flush-write-stream": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
@@ -2854,16 +2894,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"frontblock": {
|
"frontblock": {
|
||||||
"version": "0.2.3",
|
"version": "0.4.3",
|
||||||
"resolved": "https://registry.npmjs.org/frontblock/-/frontblock-0.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/frontblock/-/frontblock-0.4.3.tgz",
|
||||||
"integrity": "sha512-VxKBkt3D3t8r5yVAqb2A2ccJfSBO9tJkS/MIJigjoilDFxwyALoL7ZwcnyEmUBbOzfLssrOp2s4LGCTInStNFg==",
|
"integrity": "sha512-zKR9k4YGS1xMUYID6FoLzoB5iFBYRCj7nJqoYBR/MPxAqgHEE6kqzcV+IWLIQcVugCD23cBpr9X7oKVolqEChg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/node": "^11.13.10",
|
"@types/node": "^11.13.10",
|
||||||
"bip39": "^3.0.2",
|
"bip39": "^3.0.2",
|
||||||
"bitcoinjs-lib": "^5.0.4",
|
"bitcoinjs-lib": "^5.0.4",
|
||||||
"bsock": "^0.1.9",
|
"bsock": "^0.1.9",
|
||||||
"express": "^4.16.4",
|
"express": "^4.16.4",
|
||||||
"frontblock-generic": "^0.2.8",
|
"frontblock-generic": "^0.4.0",
|
||||||
"hdkey": "^1.1.1",
|
"hdkey": "^1.1.1",
|
||||||
"log4js": "^4.3.1",
|
"log4js": "^4.3.1",
|
||||||
"minimist": "^1.2.0",
|
"minimist": "^1.2.0",
|
||||||
@@ -2872,9 +2912,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"frontblock-generic": {
|
"frontblock-generic": {
|
||||||
"version": "0.2.8",
|
"version": "0.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/frontblock-generic/-/frontblock-generic-0.2.8.tgz",
|
"resolved": "https://registry.npmjs.org/frontblock-generic/-/frontblock-generic-0.4.0.tgz",
|
||||||
"integrity": "sha512-bGlJEYprAs1IBlb4kZc2PxTCUI6oUACT5856AYE8jV2PZ6JTErLFyu9P84kUz73zr14gjgv8snLMPmHKcjdxbQ==",
|
"integrity": "sha512-K949BMqdAofO5ka/ov5PLIQqrYX9VheS4mTj2Y/FN/NWRIy1kcHev0IY26Z9iRvFo3kvi2wVdD0yNlDA1VljXw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/node": "^12.0.0",
|
"@types/node": "^12.0.0",
|
||||||
"bsock": "^0.1.9",
|
"bsock": "^0.1.9",
|
||||||
@@ -2885,20 +2925,27 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "12.0.10",
|
"version": "12.0.12",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.12.tgz",
|
||||||
"integrity": "sha512-LcsGbPomWsad6wmMNv7nBLw7YYYyfdYcz6xryKYQhx89c3XXan+8Q6AJ43G5XDIaklaVkK3mE4fCb0SBvMiPSQ=="
|
"integrity": "sha512-Uy0PN4R5vgBUXFoJrKryf5aTk3kJ8Rv3PdlHjl6UaX+Cqp1QE0yPQ68MPXGrZOfG7gZVNDIJZYyot0B9ubXUrQ=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fs-extra": {
|
"fs-extra": {
|
||||||
"version": "7.0.1",
|
"version": "8.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
|
||||||
"integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
|
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"graceful-fs": "^4.1.2",
|
"graceful-fs": "^4.2.0",
|
||||||
"jsonfile": "^4.0.0",
|
"jsonfile": "^4.0.0",
|
||||||
"universalify": "^0.1.0"
|
"universalify": "^0.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"graceful-fs": {
|
||||||
|
"version": "4.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz",
|
||||||
|
"integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg=="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fs-write-stream-atomic": {
|
"fs-write-stream-atomic": {
|
||||||
@@ -3525,6 +3572,12 @@
|
|||||||
"path-dirname": "^1.0.0"
|
"path-dirname": "^1.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"is-extglob": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||||
|
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"is-glob": {
|
"is-glob": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
|
||||||
@@ -3537,14 +3590,25 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"global-modules": {
|
"global-modules": {
|
||||||
"version": "1.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
|
||||||
"integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
|
"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"global-prefix": "^1.0.1",
|
"global-prefix": "^3.0.0"
|
||||||
"is-windows": "^1.0.1",
|
},
|
||||||
"resolve-dir": "^1.0.0"
|
"dependencies": {
|
||||||
|
"global-prefix": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ini": "^1.3.5",
|
||||||
|
"kind-of": "^6.0.2",
|
||||||
|
"which": "^1.3.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"global-prefix": {
|
"global-prefix": {
|
||||||
@@ -3962,10 +4026,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"is-extglob": {
|
"is-extglob": {
|
||||||
"version": "2.1.1",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
|
||||||
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
|
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
@@ -3980,12 +4043,11 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"is-glob": {
|
"is-glob": {
|
||||||
"version": "4.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
|
||||||
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
|
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-extglob": "^2.1.1"
|
"is-extglob": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"is-invalid-path": {
|
"is-invalid-path": {
|
||||||
@@ -3994,21 +4056,6 @@
|
|||||||
"integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=",
|
"integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-glob": "^2.0.0"
|
"is-glob": "^2.0.0"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"is-extglob": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
|
|
||||||
},
|
|
||||||
"is-glob": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
|
|
||||||
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
|
|
||||||
"requires": {
|
|
||||||
"is-extglob": "^1.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"is-number": {
|
"is-number": {
|
||||||
@@ -4754,35 +4801,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"key-file-storage": {
|
"key-file-storage": {
|
||||||
"version": "2.1.5",
|
"version": "2.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/key-file-storage/-/key-file-storage-2.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/key-file-storage/-/key-file-storage-2.2.1.tgz",
|
||||||
"integrity": "sha1-WpRCayQLxNWOipdy0FJZGtfdHJ4=",
|
"integrity": "sha512-wTeuxRiPeXud8oxOC64bKPnLEyhMcu+fK7YTYC7rc3tRuO4GZOuxaxZzYgy5aHYzbInSgejtjNAPMqsArbtOHA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"fs-extra": "^0.30.0",
|
"@types/fs-extra": "^8.0.0",
|
||||||
|
"@types/is-valid-path": "^0.1.0",
|
||||||
|
"fs-extra": "^8.1.0",
|
||||||
"is-valid-path": "^0.1.1",
|
"is-valid-path": "^0.1.1",
|
||||||
"recur-fs": "^2.2.4"
|
"recur-fs": "^2.2.4"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"fs-extra": {
|
|
||||||
"version": "0.30.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
|
|
||||||
"integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
|
|
||||||
"requires": {
|
|
||||||
"graceful-fs": "^4.1.2",
|
|
||||||
"jsonfile": "^2.1.0",
|
|
||||||
"klaw": "^1.0.0",
|
|
||||||
"path-is-absolute": "^1.0.0",
|
|
||||||
"rimraf": "^2.2.8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"jsonfile": {
|
|
||||||
"version": "2.4.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
|
|
||||||
"integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
|
|
||||||
"requires": {
|
|
||||||
"graceful-fs": "^4.1.6"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"kind-of": {
|
"kind-of": {
|
||||||
@@ -4791,14 +4818,6 @@
|
|||||||
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
|
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"klaw": {
|
|
||||||
"version": "1.3.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
|
|
||||||
"integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
|
|
||||||
"requires": {
|
|
||||||
"graceful-fs": "^4.1.9"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"kleur": {
|
"kleur": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
|
||||||
@@ -4898,14 +4917,14 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"log4js": {
|
"log4js": {
|
||||||
"version": "4.3.1",
|
"version": "4.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/log4js/-/log4js-4.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/log4js/-/log4js-4.4.0.tgz",
|
||||||
"integrity": "sha512-nPGS7w7kBnzNm1j8JycFxwLCbIMae8tHCo0cCdx/khB20Tcod8SZThYEB9E0c27ObcTGA1mlPowaf3hantQ/FA==",
|
"integrity": "sha512-xwRvmxFsq8Hb7YeS+XKfvCrsH114bXex6mIwJ2+KmYVi23pB3+hlzyGq1JPycSFTJWNLhD/7PCtM0RfPy6/2yg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"date-format": "^2.0.0",
|
"date-format": "^2.0.0",
|
||||||
"debug": "^4.1.1",
|
"debug": "^4.1.1",
|
||||||
"flatted": "^2.0.0",
|
"flatted": "^2.0.0",
|
||||||
"rfdc": "^1.1.2",
|
"rfdc": "^1.1.4",
|
||||||
"streamroller": "^1.0.5"
|
"streamroller": "^1.0.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -4918,9 +4937,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ms": {
|
"ms": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -5275,9 +5294,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node-libs-browser": {
|
"node-libs-browser": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
|
||||||
"integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==",
|
"integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"assert": "^1.1.1",
|
"assert": "^1.1.1",
|
||||||
@@ -5290,7 +5309,7 @@
|
|||||||
"events": "^3.0.0",
|
"events": "^3.0.0",
|
||||||
"https-browserify": "^1.0.0",
|
"https-browserify": "^1.0.0",
|
||||||
"os-browserify": "^0.3.0",
|
"os-browserify": "^0.3.0",
|
||||||
"path-browserify": "0.0.0",
|
"path-browserify": "0.0.1",
|
||||||
"process": "^0.11.10",
|
"process": "^0.11.10",
|
||||||
"punycode": "^1.2.4",
|
"punycode": "^1.2.4",
|
||||||
"querystring-es3": "^0.2.0",
|
"querystring-es3": "^0.2.0",
|
||||||
@@ -5302,7 +5321,7 @@
|
|||||||
"tty-browserify": "0.0.0",
|
"tty-browserify": "0.0.0",
|
||||||
"url": "^0.11.0",
|
"url": "^0.11.0",
|
||||||
"util": "^0.11.0",
|
"util": "^0.11.0",
|
||||||
"vm-browserify": "0.0.4"
|
"vm-browserify": "^1.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"punycode": {
|
"punycode": {
|
||||||
@@ -5667,9 +5686,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"path-browserify": {
|
"path-browserify": {
|
||||||
"version": "0.0.0",
|
"version": "0.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
|
||||||
"integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
|
"integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"path-dirname": {
|
"path-dirname": {
|
||||||
@@ -5776,9 +5795,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"prettier": {
|
"prettier": {
|
||||||
"version": "1.17.1",
|
"version": "1.18.2",
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.17.1.tgz",
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz",
|
||||||
"integrity": "sha512-TzGRNvuUSmPgwivDqkZ9tM/qTGW9hqDKWOE9YHiyQdixlKbv7kvEqsmDPrcHJTKwthU774TQwZXVtaQ/mMsvjg==",
|
"integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"pretty-format": {
|
"pretty-format": {
|
||||||
@@ -6190,6 +6209,19 @@
|
|||||||
"requires": {
|
"requires": {
|
||||||
"expand-tilde": "^2.0.0",
|
"expand-tilde": "^2.0.0",
|
||||||
"global-modules": "^1.0.0"
|
"global-modules": "^1.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"global-modules": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"global-prefix": "^1.0.1",
|
||||||
|
"is-windows": "^1.0.1",
|
||||||
|
"resolve-dir": "^1.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"resolve-from": {
|
"resolve-from": {
|
||||||
@@ -6219,6 +6251,7 @@
|
|||||||
"version": "2.6.3",
|
"version": "2.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
|
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
|
||||||
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
|
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glob": "^7.1.3"
|
"glob": "^7.1.3"
|
||||||
}
|
}
|
||||||
@@ -6861,10 +6894,20 @@
|
|||||||
"ms": "^2.1.1"
|
"ms": "^2.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"fs-extra": {
|
||||||
|
"version": "7.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
|
||||||
|
"integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
|
||||||
|
"requires": {
|
||||||
|
"graceful-fs": "^4.1.2",
|
||||||
|
"jsonfile": "^4.0.0",
|
||||||
|
"universalify": "^0.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ms": {
|
"ms": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -7181,15 +7224,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tslib": {
|
"tslib": {
|
||||||
"version": "1.9.3",
|
"version": "1.10.0",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
|
||||||
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
|
"integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"tslint": {
|
"tslint": {
|
||||||
"version": "5.17.0",
|
"version": "5.18.0",
|
||||||
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.17.0.tgz",
|
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz",
|
||||||
"integrity": "sha512-pflx87WfVoYepTet3xLfDOLDm9Jqi61UXIKePOuca0qoAZyrGWonDG9VTbji58Fy+8gciUn8Bt7y69+KEVjc/w==",
|
"integrity": "sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/code-frame": "^7.0.0",
|
"@babel/code-frame": "^7.0.0",
|
||||||
@@ -7273,9 +7316,9 @@
|
|||||||
"integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g=="
|
"integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g=="
|
||||||
},
|
},
|
||||||
"typescript": {
|
"typescript": {
|
||||||
"version": "3.5.1",
|
"version": "3.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz",
|
||||||
"integrity": "sha512-64HkdiRv1yYZsSe4xC1WVgamNigVYjlssIoaH2HcZF0+ijsk5YK2g0G34w9wJkze8+5ow4STd22AynfO6ZYYLw==",
|
"integrity": "sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"uglify-js": {
|
"uglify-js": {
|
||||||
@@ -7519,13 +7562,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"vm-browserify": {
|
"vm-browserify": {
|
||||||
"version": "0.0.4",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz",
|
||||||
"integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
|
"integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==",
|
||||||
"dev": true,
|
"dev": true
|
||||||
"requires": {
|
|
||||||
"indexof": "0.0.1"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"w3c-hr-time": {
|
"w3c-hr-time": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
@@ -7563,9 +7603,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"webpack": {
|
"webpack": {
|
||||||
"version": "4.32.2",
|
"version": "4.35.2",
|
||||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-4.32.2.tgz",
|
"resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.2.tgz",
|
||||||
"integrity": "sha512-F+H2Aa1TprTQrpodRAWUMJn7A8MgDx82yQiNvYMaj3d1nv3HetKU0oqEulL9huj8enirKi8KvEXQ3QtuHF89Zg==",
|
"integrity": "sha512-TZAmorNymV4q66gAM/h90cEjG+N3627Q2MnkSgKlX/z3DlNVKUtqy57lz1WmZU2+FUZwzM+qm7cGaO95PyrX5A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@webassemblyjs/ast": "1.8.5",
|
"@webassemblyjs/ast": "1.8.5",
|
||||||
@@ -7595,30 +7635,109 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"acorn": {
|
"acorn": {
|
||||||
"version": "6.1.1",
|
"version": "6.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz",
|
||||||
"integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==",
|
"integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"webpack-cli": {
|
"webpack-cli": {
|
||||||
"version": "3.3.2",
|
"version": "3.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.5.tgz",
|
||||||
"integrity": "sha512-FLkobnaJJ+03j5eplxlI0TUxhGCOdfewspIGuvDVtpOlrAuKMFC57K42Ukxqs1tn8947/PM6tP95gQc0DCzRYA==",
|
"integrity": "sha512-w0j/s42c5UhchwTmV/45MLQnTVwRoaUTu9fM5LuyOd/8lFoCNCELDogFoecx5NzRUndO0yD/gF2b02XKMnmAWQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"chalk": "^2.4.1",
|
"chalk": "2.4.2",
|
||||||
"cross-spawn": "^6.0.5",
|
"cross-spawn": "6.0.5",
|
||||||
"enhanced-resolve": "^4.1.0",
|
"enhanced-resolve": "4.1.0",
|
||||||
"findup-sync": "^2.0.0",
|
"findup-sync": "3.0.0",
|
||||||
"global-modules": "^1.0.0",
|
"global-modules": "2.0.0",
|
||||||
"import-local": "^2.0.0",
|
"import-local": "2.0.0",
|
||||||
"interpret": "^1.1.0",
|
"interpret": "1.2.0",
|
||||||
"loader-utils": "^1.1.0",
|
"loader-utils": "1.2.3",
|
||||||
"supports-color": "^5.5.0",
|
"supports-color": "6.1.0",
|
||||||
"v8-compile-cache": "^2.0.2",
|
"v8-compile-cache": "2.0.3",
|
||||||
"yargs": "^12.0.5"
|
"yargs": "13.2.4"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"cliui": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"string-width": "^3.1.0",
|
||||||
|
"strip-ansi": "^5.2.0",
|
||||||
|
"wrap-ansi": "^5.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"get-caller-file": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"string-width": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"emoji-regex": "^7.0.1",
|
||||||
|
"is-fullwidth-code-point": "^2.0.0",
|
||||||
|
"strip-ansi": "^5.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"supports-color": {
|
||||||
|
"version": "6.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
|
||||||
|
"integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"has-flag": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wrap-ansi": {
|
||||||
|
"version": "5.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
|
||||||
|
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-styles": "^3.2.0",
|
||||||
|
"string-width": "^3.0.0",
|
||||||
|
"strip-ansi": "^5.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yargs": {
|
||||||
|
"version": "13.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz",
|
||||||
|
"integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"cliui": "^5.0.0",
|
||||||
|
"find-up": "^3.0.0",
|
||||||
|
"get-caller-file": "^2.0.1",
|
||||||
|
"os-locale": "^3.1.0",
|
||||||
|
"require-directory": "^2.1.1",
|
||||||
|
"require-main-filename": "^2.0.0",
|
||||||
|
"set-blocking": "^2.0.0",
|
||||||
|
"string-width": "^3.0.0",
|
||||||
|
"which-module": "^2.0.0",
|
||||||
|
"y18n": "^4.0.0",
|
||||||
|
"yargs-parser": "^13.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yargs-parser": {
|
||||||
|
"version": "13.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
|
||||||
|
"integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"camelcase": "^5.0.0",
|
||||||
|
"decamelize": "^1.2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"webpack-sources": {
|
"webpack-sources": {
|
||||||
|
|||||||
+15
-14
@@ -1,41 +1,42 @@
|
|||||||
{
|
{
|
||||||
"name": "assignment1",
|
"name": "frontblock-admin",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "npm run build; node --experimental-modules lib/FrontblockService.js",
|
"start": "npm run build; node --experimental-modules lib/FrontblockAdmin.js",
|
||||||
"build": "npm run clean; tsc; node_modules/.bin/webpack",
|
"build": "npm run clean; tsc; node_modules/.bin/webpack",
|
||||||
"clean": "rm -rf lib",
|
"clean": "rm -rf lib",
|
||||||
"update-frontblock": "rm -rf node_modules/frontblock*; npm install"
|
"update-frontblock": "rm -rf node_modules/frontblock*; npm install"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "http://todo"
|
"url": "http://gitea.frontblock.me/fb-vendor/admin"
|
||||||
},
|
},
|
||||||
"author": "frontblock.me",
|
"author": "frontblock.me",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/express": "^4.16.1",
|
"@types/express": "^4.17.0",
|
||||||
"@types/node": "^11.13.13",
|
"@types/node": "^11.13.17",
|
||||||
"bsock": "^0.1.9",
|
"bsock": "^0.1.9",
|
||||||
"express": "^4.16.4",
|
"express": "^4.16.4",
|
||||||
"frontblock": "latest",
|
"frontblock": "^0.4.3",
|
||||||
|
"frontblock-generic": "^0.4.0",
|
||||||
"http": "0.0.0",
|
"http": "0.0.0",
|
||||||
"key-file-storage": "^2.1.5",
|
"key-file-storage": "^2.2.1",
|
||||||
"log4js": "^4.3.1",
|
"log4js": "^4.4.0",
|
||||||
"node-fetch": "^2.6.0",
|
"node-fetch": "^2.6.0",
|
||||||
"socket.io": "^2.2.0"
|
"socket.io": "^2.2.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^24.0.11",
|
"@types/jest": "^24.0.15",
|
||||||
"jest": "^24.7.1",
|
"jest": "^24.7.1",
|
||||||
"prettier": "^1.16.4",
|
"prettier": "^1.18.2",
|
||||||
"terser-webpack-plugin": "^1.3.0",
|
"terser-webpack-plugin": "^1.3.0",
|
||||||
"ts-jest": "^24.0.2",
|
"ts-jest": "^24.0.2",
|
||||||
"tslint": "^5.15.0",
|
"tslint": "^5.18.0",
|
||||||
"tslint-config-prettier": "^1.18.0",
|
"tslint-config-prettier": "^1.18.0",
|
||||||
"typescript": "^3.4.2",
|
"typescript": "^3.5.2",
|
||||||
"webpack": "^4.30.0",
|
"webpack": "^4.35.2",
|
||||||
"webpack-cli": "^3.3.1"
|
"webpack-cli": "^3.3.5"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"lib/**/*"
|
"lib/**/*"
|
||||||
|
|||||||
@@ -2,28 +2,37 @@
|
|||||||
|
|
||||||
import * as Logger from 'log4js'
|
import * as Logger from 'log4js'
|
||||||
import { Plugin, socketioRPC } from 'frontblock-generic/Plugin';
|
import { Plugin, socketioRPC } from 'frontblock-generic/Plugin';
|
||||||
import { ErrorResponse, SuccessResponse } from 'frontblock-generic/Service';
|
import { ErrorResponse, SuccessResponse } from 'frontblock-generic/Types';
|
||||||
|
import { FrontblockApiConf } from "frontblock/FrontblockApiClient"
|
||||||
|
|
||||||
const pluginList = [
|
type pluginEntry = {pluginPath:string, conf?:any}
|
||||||
'../../paymentmanager/static/Plugin',
|
const pluginList:pluginEntry[] = [
|
||||||
'frontblock/FrontblockLib'
|
{ pluginPath: '../../paymentmanager/static/Plugin', conf:<FrontblockApiConf>{ apiHost: /*'localhost'*/'api.testnet.frontblock.me', apiPort: 10001 } },
|
||||||
|
{ pluginPath: '../../htmlsupplier/static/Plugin' },
|
||||||
|
{ pluginPath: 'frontblock/FrontblockApiClient', conf:<FrontblockApiConf>{ apiHost: /*'localhost'*/'api.testnet.frontblock.me', apiPort: 10001 } }
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
const express = require('express')
|
const express = require('express')
|
||||||
const http = require('http')
|
const http = require('http')
|
||||||
const bsock = require('bsock')
|
const bsock = require('bsock')
|
||||||
const kfs = require("key-file-storage")('conf') //'conf' is a directory that will be generated if it doesn't exist
|
const kfs = require("key-file-storage").default('conf') //'conf' is a directory that will be generated if it doesn't exist
|
||||||
|
Logger.configure({
|
||||||
|
appenders: {
|
||||||
|
"admin": { type: 'stdout' },
|
||||||
|
//app: { type: 'file', filename: 'application.log' }
|
||||||
|
},
|
||||||
|
categories: {
|
||||||
|
default: { appenders: [ 'admin' ], level: 'debug' }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const logger = Logger.getLogger("admin")
|
||||||
|
|
||||||
const logger = Logger.getLogger() // logs to STDOUT
|
type hookRpc = { type: 'hook', generator: (socket) => Function, unhook:(uid:string)=>Promise<ErrorResponse|SuccessResponse>}
|
||||||
logger.level = 'debug'
|
|
||||||
|
|
||||||
|
|
||||||
type hookRpc = { type: 'hook', generator: (socket) => Function, unhook:(uid:string)=>Promise<ErrorResponse|SuccessResponse>}
|
|
||||||
type unhookRPC = { type: 'unhook', fn: Function}
|
type unhookRPC = { type: 'unhook', fn: Function}
|
||||||
type callRPC = { type: 'call', fn: Function}
|
type callRPC = { type: 'call', fn: Function}
|
||||||
|
|
||||||
export type rpcInfo = {
|
export type rpcInfo = {
|
||||||
|
owner: string,
|
||||||
name: string,
|
name: string,
|
||||||
args: string,
|
args: string,
|
||||||
info: hookRpc | unhookRPC | callRPC
|
info: hookRpc | unhookRPC | callRPC
|
||||||
@@ -40,15 +49,17 @@ export type rpcInfo = {
|
|||||||
export class FrontblockAdmin{
|
export class FrontblockAdmin{
|
||||||
private plugins: Plugin[]
|
private plugins: Plugin[]
|
||||||
|
|
||||||
|
private hookToUids:{[hookName:string]:string[]} = {}
|
||||||
|
|
||||||
private express
|
private express
|
||||||
private httpServer
|
private httpServer
|
||||||
private io = bsock.createServer()
|
private io = bsock.createServer()
|
||||||
private wsServer = http.createServer()
|
private wsServer = http.createServer()
|
||||||
|
|
||||||
constructor(){
|
constructor(){
|
||||||
if(!('FrontblockService' in kfs)){
|
if(!('FrontblockAdmin' in kfs)){
|
||||||
logger.warn('No config file found! Generating one')
|
logger.warn('No config file found! Generating one')
|
||||||
kfs.FrontblockService = { httpPort: 8080 }
|
kfs.FrontblockAdmin = { httpPort: 8080 }
|
||||||
}
|
}
|
||||||
|
|
||||||
this.initialize()
|
this.initialize()
|
||||||
@@ -62,16 +73,19 @@ export class FrontblockAdmin{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async loadPlugins(){
|
private async loadPlugins(){
|
||||||
const promises = pluginList.map(path => {
|
this.plugins = []
|
||||||
return import(path)
|
pluginList.forEach(async (entry:pluginEntry) => {
|
||||||
|
const clazz = await import(entry.pluginPath)
|
||||||
|
let obj = new clazz.default(entry.conf)
|
||||||
|
this.plugins.push(obj)
|
||||||
})
|
})
|
||||||
const pluginsClasses = await Promise.all(promises)
|
|
||||||
this.plugins = pluginsClasses.map(clazz => new clazz.default())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private initApis(socket){
|
private initApis(socket){
|
||||||
|
//Declare own functions
|
||||||
const rpcInfos:rpcInfo[] = [
|
const rpcInfos:rpcInfo[] = [
|
||||||
{
|
{
|
||||||
|
owner: 'Admin',
|
||||||
name: 'restartWebserver',
|
name: 'restartWebserver',
|
||||||
args: 'port',
|
args: 'port',
|
||||||
info:{
|
info:{
|
||||||
@@ -79,6 +93,7 @@ export class FrontblockAdmin{
|
|||||||
fn: (port:number) => { this.restartWebserver(port) }
|
fn: (port:number) => { this.restartWebserver(port) }
|
||||||
}
|
}
|
||||||
},{
|
},{
|
||||||
|
owner: 'Admin',
|
||||||
name: 'info',
|
name: 'info',
|
||||||
args: '',
|
args: '',
|
||||||
info:{
|
info:{
|
||||||
@@ -88,10 +103,16 @@ export class FrontblockAdmin{
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
//translate RPCs to socket-bound function metadata
|
||||||
this.plugins.forEach(plugin => {
|
this.plugins.forEach(plugin => {
|
||||||
plugin.exportRPCs().forEach(rpc => rpcInfos.push(this.rpcToRpcInfo(rpc)))
|
const pluginName = plugin.name
|
||||||
|
plugin.exportRPCs().forEach(rpc => {
|
||||||
|
const info = this.rpcToRpcInfo(pluginName, rpc)
|
||||||
|
rpcInfos.push(info)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
//Hook up all the functions
|
||||||
for(const api of rpcInfos){
|
for(const api of rpcInfos){
|
||||||
switch(api.info.type){
|
switch(api.info.type){
|
||||||
case 'call':
|
case 'call':
|
||||||
@@ -108,13 +129,29 @@ export class FrontblockAdmin{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//initialize the lists of open hooks
|
||||||
|
rpcInfos
|
||||||
|
.filter(rpc => rpc.info.type === "hook")
|
||||||
|
.forEach(hook => {
|
||||||
|
this.hookToUids[hook.name] = []
|
||||||
|
})
|
||||||
|
|
||||||
|
//On close, unhook open hooks
|
||||||
socket.on('close', () => {
|
socket.on('close', () => {
|
||||||
logger.info("Client disconnected")
|
logger.info("Client disconnected")
|
||||||
rpcInfos.forEach(rpc => {
|
|
||||||
socket.unhook(rpc.name)
|
rpcInfos.forEach((rpc) => {
|
||||||
|
if(this.hookToUids[rpc.name] == null)
|
||||||
|
return
|
||||||
|
|
||||||
|
this.hookToUids[rpc.name].forEach((uid) => {
|
||||||
|
if(rpc.info.type === "hook"){
|
||||||
|
logger.info("Closing consumer `"+uid+"` owned by `"+rpc.name+"`")
|
||||||
|
rpc.info.unhook(uid)
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private startWebserver(){
|
private startWebserver(){
|
||||||
@@ -123,13 +160,13 @@ export class FrontblockAdmin{
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let port:number = kfs.FrontblockService.httpPort
|
let port:number = kfs.FrontblockAdmin.httpPort
|
||||||
this.express = express()
|
this.express = express()
|
||||||
this.express.use(express.static('static'))
|
this.express.use(express.static('static'))
|
||||||
|
|
||||||
this.httpServer = http.Server(this.express)
|
this.httpServer = http.Server(this.express)
|
||||||
this.httpServer.listen(port, () => {
|
this.httpServer.listen(port, () => {
|
||||||
logger.info('listening on *'+port)
|
logger.info('Admin panel listening for HTTP on *'+port)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -146,7 +183,7 @@ export class FrontblockAdmin{
|
|||||||
|
|
||||||
private restartWebserver(port:number){
|
private restartWebserver(port:number){
|
||||||
this.stopWebserver()
|
this.stopWebserver()
|
||||||
kfs.FrontblockService = { httpPort: port }
|
kfs.FrontblockAdmin = { httpPort: port }
|
||||||
this.startWebserver()
|
this.startWebserver()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,22 +201,22 @@ export class FrontblockAdmin{
|
|||||||
socket.on('error', handleError)
|
socket.on('error', handleError)
|
||||||
this.initApis(socket)
|
this.initApis(socket)
|
||||||
})
|
})
|
||||||
logger.info('websocket listening on *20000')
|
logger.info('Admin websocket listening on *20000')
|
||||||
this.wsServer.listen(20000)
|
this.wsServer.listen(20000)
|
||||||
}catch(e){
|
}catch(e){
|
||||||
logger.error(String(e))
|
logger.error(String(e))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private rpcToRpcInfo(rpc:socketioRPC):rpcInfo{
|
private rpcToRpcInfo(owner:string, rpc:socketioRPC):rpcInfo{
|
||||||
switch(rpc.type){
|
switch(rpc.type){
|
||||||
case 'hook':
|
case 'hook':
|
||||||
let f = this.hookGenerator(rpc)
|
let f = this.hookGenerator(rpc)
|
||||||
return {name: rpc.name, args: this.extractArgs(f(null)), info: { type: 'hook', generator: f, unhook: rpc.unhook } }
|
return {owner: owner, name: rpc.name, args: this.extractArgs(f(null)), info: { type: 'hook', generator: f, unhook: rpc.unhook } }
|
||||||
case 'unhook':
|
case 'unhook':
|
||||||
return {name: rpc.name, args: this.extractArgs(rpc.rpc), info: { type: 'unhook', fn: rpc.rpc } }
|
return {owner: owner, name: rpc.name, args: this.extractArgs(rpc.rpc), info: { type: 'unhook', fn: rpc.rpc } }
|
||||||
case 'call':
|
case 'call':
|
||||||
return {name: rpc.name, args: this.extractArgs(rpc.rpc), info: { type: 'call', fn: rpc.rpc } }
|
return {owner: owner, name: rpc.name, args: this.extractArgs(rpc.rpc), info: { type: 'call', fn: rpc.rpc } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -187,24 +224,21 @@ export class FrontblockAdmin{
|
|||||||
* Generates RPC hooks which support a callback.
|
* Generates RPC hooks which support a callback.
|
||||||
*
|
*
|
||||||
* Note callbacks *need* to accept a singular argument and they have to be the last parameter!
|
* Note callbacks *need* to accept a singular argument and they have to be the last parameter!
|
||||||
*
|
|
||||||
* TODO: Maybe kill open callbacks when socket closes? See rpc.info.unhook for the appropriate function to call.
|
|
||||||
*/
|
*/
|
||||||
hookGenerator = (rpc) => {
|
hookGenerator = (rpc:socketioRPC) => {
|
||||||
const argsArr = this.extractArgs(rpc.rpc).split(',')
|
const argsArr = this.extractArgs(rpc.rpc).split(',')
|
||||||
argsArr.pop()
|
argsArr.pop()
|
||||||
const args = argsArr.join(',')
|
const args = argsArr.join(',')
|
||||||
|
|
||||||
return eval(`(socket) => async (`+args+`) => {
|
return eval(`(socket) => async (`+args+`) => {
|
||||||
const res = await rpc.rpc(`+args+(args.length!==0?',':'')+` (x) => {
|
const res = await rpc.rpc(`+args+(args.length!==0?',':'')+` (x) => {
|
||||||
if(res.uid != null){
|
socket.call(res.uid, x).catch(e => {
|
||||||
console.log("calling "+res.uid)
|
logger.debug(String(e))
|
||||||
|
})
|
||||||
socket.call(res.uid, x).catch(e => {
|
|
||||||
rpc.unhook(res.uid)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
if(res.uid != null){
|
||||||
|
this.hookToUids[rpc.name].push(res.uid)
|
||||||
|
}
|
||||||
return res
|
return res
|
||||||
}`)
|
}`)
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { parseSubResponse, parseResponse } from "frontblock-generic/Service";
|
import { parseSubResponse, parseResponse } from "frontblock-generic/Types";
|
||||||
var bsock = require('bsock')
|
var bsock = require('bsock')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -36,9 +36,10 @@ export class FrontblockConfigLib{
|
|||||||
f = this.unhookGenerator(i.name, i.args)
|
f = this.unhookGenerator(i.name, i.args)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
if(this[i.owner] == null)
|
||||||
this[i.name] = f
|
this[i.owner] = {}
|
||||||
this[i.name].bind(this)
|
this[i.owner][i.name] = f
|
||||||
|
this[i.owner][i.name].bind(this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
|||||||
<!doctype html> <html lang=en> <head> <meta charset=UTF-8> <title>Document</title> <link href="css/app.css?v=a5f963f6" rel="stylesheet"></head> <body> <root></root> <script type="text/javascript" src="js/vendor.461d1c56.js"></script><script type="text/javascript" src="js/app.5d10c2e6.js"></script></body> </html>
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
|||||||
<!doctype html> <html lang=en> <head> <meta charset=UTF-8> <title>Document</title> <link href="css/app.css?v=a54d3946" rel="stylesheet"></head> <body> <root></root> <script type="text/javascript" src="js/vendor.195e4982.js"></script><script type="text/javascript" src="js/app.10653f4e.js"></script></body> </html>
|
<!doctype html> <html lang=en> <head> <meta charset=UTF-8> <title>Document</title> <link href="css/app.css?v=a54d3946" rel="stylesheet"></head> <body> <root></root> <script type="text/javascript" src="js/vendor.195e4982.js"></script><script type="text/javascript" src="js/app.b657fdc7.js"></script></body> </html>
|
||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user