This commit is contained in:
2019-09-18 12:32:29 +02:00
parent e3f09335d8
commit 094fb386db
11 changed files with 403 additions and 239 deletions
+3
View File
@@ -6,4 +6,7 @@ src/**/*.d.ts
test/**/*.js test/**/*.js
test/**/*.d.ts test/**/*.d.ts
*.d.ts
*.js
lib lib
+1
View File
@@ -1,4 +1,5 @@
src src
test test
js
node_modules node_modules
tsconfig.json tsconfig.json
+318 -91
View File
@@ -62,12 +62,6 @@
"integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==",
"dev": true "dev": true
}, },
"@types/semver": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-6.0.2.tgz",
"integrity": "sha512-G1Ggy7/9Nsa1Jt2yiBR2riEuyK2DFNnqow6R7cromXPMNynackRY1vqFTLz/gwnef1LHokbXThcPhqMRjUbkpQ==",
"dev": true
},
"@types/serve-static": { "@types/serve-static": {
"version": "1.13.3", "version": "1.13.3",
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz",
@@ -722,6 +716,17 @@
"ansi-styles": "^3.2.1", "ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5", "escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0" "supports-color": "^5.3.0"
},
"dependencies": {
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
}
} }
}, },
"chokidar": { "chokidar": {
@@ -953,6 +958,14 @@
"semver": "^5.5.0", "semver": "^5.5.0",
"shebang-command": "^1.2.0", "shebang-command": "^1.2.0",
"which": "^1.2.9" "which": "^1.2.9"
},
"dependencies": {
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
}
} }
}, },
"crypto-browserify": { "crypto-browserify": {
@@ -1383,23 +1396,24 @@
} }
}, },
"find-cache-dir": { "find-cache-dir": {
"version": "2.1.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.0.0.tgz",
"integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "integrity": "sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw==",
"dev": true, "dev": true,
"requires": { "requires": {
"commondir": "^1.0.1", "commondir": "^1.0.1",
"make-dir": "^2.0.0", "make-dir": "^3.0.0",
"pkg-dir": "^3.0.0" "pkg-dir": "^4.1.0"
} }
}, },
"find-up": { "find-up": {
"version": "3.0.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true, "dev": true,
"requires": { "requires": {
"locate-path": "^3.0.0" "locate-path": "^5.0.0",
"path-exists": "^4.0.0"
} }
}, },
"findup-sync": { "findup-sync": {
@@ -1449,6 +1463,11 @@
"readable-stream": "^2.0.0" "readable-stream": "^2.0.0"
} }
}, },
"fs": {
"version": "0.0.1-security",
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
"integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ="
},
"fs-write-stream-atomic": { "fs-write-stream-atomic": {
"version": "1.0.10", "version": "1.0.10",
"resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
@@ -2190,6 +2209,11 @@
"parse-passwd": "^1.0.0" "parse-passwd": "^1.0.0"
} }
}, },
"http": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/http/-/http-0.0.0.tgz",
"integrity": "sha1-huYybSnF0Dnen6xYSkVon5KfT3I="
},
"https-browserify": { "https-browserify": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
@@ -2216,6 +2240,51 @@
"requires": { "requires": {
"pkg-dir": "^3.0.0", "pkg-dir": "^3.0.0",
"resolve-cwd": "^2.0.0" "resolve-cwd": "^2.0.0"
},
"dependencies": {
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
"requires": {
"locate-path": "^3.0.0"
}
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
}
},
"p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
"p-limit": "^2.0.0"
}
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
"dev": true
},
"pkg-dir": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
"integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
"dev": true,
"requires": {
"find-up": "^3.0.0"
}
}
} }
}, },
"imurmurhash": { "imurmurhash": {
@@ -2241,10 +2310,9 @@
} }
}, },
"inherits": { "inherits": {
"version": "2.0.4", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
"dev": true
}, },
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
@@ -2430,6 +2498,16 @@
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
"dev": true "dev": true
}, },
"jest-worker": {
"version": "24.9.0",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
"integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
"dev": true,
"requires": {
"merge-stream": "^2.0.0",
"supports-color": "^6.1.0"
}
},
"json-parse-better-errors": { "json-parse-better-errors": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
@@ -2492,13 +2570,12 @@
} }
}, },
"locate-path": { "locate-path": {
"version": "3.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true, "dev": true,
"requires": { "requires": {
"p-locate": "^3.0.0", "p-locate": "^4.1.0"
"path-exists": "^3.0.0"
} }
}, },
"lru-cache": { "lru-cache": {
@@ -2511,13 +2588,12 @@
} }
}, },
"make-dir": { "make-dir": {
"version": "2.1.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz",
"integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==",
"dev": true, "dev": true,
"requires": { "requires": {
"pify": "^4.0.1", "semver": "^6.0.0"
"semver": "^5.6.0"
} }
}, },
"mamacro": { "mamacro": {
@@ -2582,6 +2658,12 @@
"readable-stream": "^2.0.1" "readable-stream": "^2.0.1"
} }
}, },
"merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true
},
"micromatch": { "micromatch": {
"version": "3.1.10", "version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
@@ -2788,6 +2870,15 @@
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
"dev": true "dev": true
},
"util": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
"integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
"dev": true,
"requires": {
"inherits": "2.0.3"
}
} }
} }
}, },
@@ -2915,12 +3006,12 @@
} }
}, },
"p-locate": { "p-locate": {
"version": "3.0.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true, "dev": true,
"requires": { "requires": {
"p-limit": "^2.0.0" "p-limit": "^2.2.0"
} }
}, },
"p-try": { "p-try": {
@@ -2972,6 +3063,15 @@
"integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
"dev": true "dev": true
}, },
"path": {
"version": "0.12.7",
"resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
"integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
"requires": {
"process": "^0.11.1",
"util": "^0.10.3"
}
},
"path-browserify": { "path-browserify": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
@@ -2985,9 +3085,9 @@
"dev": true "dev": true
}, },
"path-exists": { "path-exists": {
"version": "3.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true "dev": true
}, },
"path-is-absolute": { "path-is-absolute": {
@@ -3022,12 +3122,12 @@
"dev": true "dev": true
}, },
"pkg-dir": { "pkg-dir": {
"version": "3.0.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
"integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"find-up": "^3.0.0" "find-up": "^4.0.0"
} }
}, },
"posix-character-classes": { "posix-character-classes": {
@@ -3039,8 +3139,7 @@
"process": { "process": {
"version": "0.11.10", "version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
"integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
"dev": true
}, },
"process-nextick-args": { "process-nextick-args": {
"version": "2.0.1", "version": "2.0.1",
@@ -3304,26 +3403,25 @@
} }
}, },
"schema-utils": { "schema-utils": {
"version": "1.0.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.2.0.tgz",
"integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "integrity": "sha512-5EwsCNhfFTZvUreQhx/4vVQpJ/lnCAkgoIHLhSpp4ZirE+4hzFvdJi0FMub6hxbFVBJYSpeVVmon+2e7uEGRrA==",
"dev": true, "dev": true,
"requires": { "requires": {
"ajv": "^6.1.0", "ajv": "^6.10.2",
"ajv-errors": "^1.0.0", "ajv-keywords": "^3.4.1"
"ajv-keywords": "^3.1.0"
} }
}, },
"semver": { "semver": {
"version": "5.7.1", "version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true "dev": true
}, },
"serialize-javascript": { "serialize-javascript": {
"version": "1.9.1", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.0.tgz",
"integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", "integrity": "sha512-a/mxFfU00QT88umAJQsNWOnUKckhNCqOl028N48e7wFmo2/EHpTo9Wso+iJJCMrQnmFvcjto5RJdAHEvVhcyUQ==",
"dev": true "dev": true
}, },
"set-blocking": { "set-blocking": {
@@ -3660,9 +3758,9 @@
"dev": true "dev": true
}, },
"supports-color": { "supports-color": {
"version": "5.5.0", "version": "6.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"has-flag": "^3.0.0" "has-flag": "^3.0.0"
@@ -3686,20 +3784,19 @@
} }
}, },
"terser-webpack-plugin": { "terser-webpack-plugin": {
"version": "1.4.1", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.1.0.tgz",
"integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", "integrity": "sha512-sZs43FVvNTqHp5hTkTSIC3XKB7rEC2FCbx9Uv0rM7D4iJsbTA1Q84tiaRYSSKSojBe6LCONX44RF73AEHGasvw==",
"dev": true, "dev": true,
"requires": { "requires": {
"cacache": "^12.0.2", "cacache": "^12.0.3",
"find-cache-dir": "^2.1.0", "find-cache-dir": "^3.0.0",
"is-wsl": "^1.1.0", "jest-worker": "^24.9.0",
"schema-utils": "^1.0.0", "schema-utils": "^2.2.0",
"serialize-javascript": "^1.7.0", "serialize-javascript": "^2.1.0",
"source-map": "^0.6.1", "source-map": "^0.6.1",
"terser": "^4.1.2", "terser": "^4.3.1",
"webpack-sources": "^1.4.0", "webpack-sources": "^1.4.3"
"worker-farm": "^1.7.0"
} }
}, },
"through2": { "through2": {
@@ -3780,6 +3877,14 @@
"loader-utils": "^1.0.2", "loader-utils": "^1.0.2",
"micromatch": "^3.1.4", "micromatch": "^3.1.4",
"semver": "^5.0.1" "semver": "^5.0.1"
},
"dependencies": {
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
}
} }
}, },
"tslib": { "tslib": {
@@ -3922,20 +4027,11 @@
"dev": true "dev": true
}, },
"util": { "util": {
"version": "0.11.1", "version": "0.10.4",
"resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
"integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
"dev": true,
"requires": { "requires": {
"inherits": "2.0.3" "inherits": "2.0.3"
},
"dependencies": {
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true
}
} }
}, },
"util-deprecate": { "util-deprecate": {
@@ -4001,6 +4097,112 @@
"terser-webpack-plugin": "^1.4.1", "terser-webpack-plugin": "^1.4.1",
"watchpack": "^1.6.0", "watchpack": "^1.6.0",
"webpack-sources": "^1.4.1" "webpack-sources": "^1.4.1"
},
"dependencies": {
"find-cache-dir": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
"integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
"dev": true,
"requires": {
"commondir": "^1.0.1",
"make-dir": "^2.0.0",
"pkg-dir": "^3.0.0"
}
},
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
"requires": {
"locate-path": "^3.0.0"
}
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
}
},
"make-dir": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
"integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
"dev": true,
"requires": {
"pify": "^4.0.1",
"semver": "^5.6.0"
}
},
"p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
"p-limit": "^2.0.0"
}
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
"dev": true
},
"pkg-dir": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
"integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
"dev": true,
"requires": {
"find-up": "^3.0.0"
}
},
"schema-utils": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
"integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
"dev": true,
"requires": {
"ajv": "^6.1.0",
"ajv-errors": "^1.0.0",
"ajv-keywords": "^3.1.0"
}
},
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
},
"serialize-javascript": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz",
"integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==",
"dev": true
},
"terser-webpack-plugin": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz",
"integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==",
"dev": true,
"requires": {
"cacache": "^12.0.2",
"find-cache-dir": "^2.1.0",
"is-wsl": "^1.1.0",
"schema-utils": "^1.0.0",
"serialize-javascript": "^1.7.0",
"source-map": "^0.6.1",
"terser": "^4.1.2",
"webpack-sources": "^1.4.0",
"worker-farm": "^1.7.0"
}
}
} }
}, },
"webpack-cli": { "webpack-cli": {
@@ -4020,17 +4222,6 @@
"supports-color": "6.1.0", "supports-color": "6.1.0",
"v8-compile-cache": "2.0.3", "v8-compile-cache": "2.0.3",
"yargs": "13.2.4" "yargs": "13.2.4"
},
"dependencies": {
"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"
}
}
} }
}, },
"webpack-sources": { "webpack-sources": {
@@ -4119,6 +4310,42 @@
"which-module": "^2.0.0", "which-module": "^2.0.0",
"y18n": "^4.0.0", "y18n": "^4.0.0",
"yargs-parser": "^13.1.0" "yargs-parser": "^13.1.0"
},
"dependencies": {
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
"requires": {
"locate-path": "^3.0.0"
}
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
}
},
"p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
"p-limit": "^2.0.0"
}
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
"dev": true
}
} }
}, },
"yargs-parser": { "yargs-parser": {
+13 -10
View File
@@ -1,32 +1,35 @@
{ {
"name": "rpclibrary", "name": "rpclibrary",
"version": "1.0.1", "version": "1.0.2",
"description": "", "description": "",
"scripts": { "scripts": {
"tsc": "tsc", "tsc": "tsc",
"webpack": "webpack", "webpack": "webpack",
"build-lib": "npm run webpack --config ./src/webpack.js", "build-lib": "webpack --config ./src/webpack.js",
"build-test": "npm run webpack --config ./test/webpack.js", "build-test": "webpack --config ./test/webpack.js",
"build": "npm run clean && npm run tsc && npm run build-lib && npm run build-test", "build": "npm run clean && npm run build-lib && npm run build-test && mv js/**/*.d.ts .",
"clean": "rm -rf lib ./*.js ./*.d.ts" "clean": "rm -rf ./*.js ./*.d.ts js"
}, },
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"devDependencies": { "devDependencies": {
"@types/express": "^4.17.0", "@types/express": "^4.17.0",
"@types/node": "^11.13.19", "@types/node": "^11.13.19",
"@types/semver": "^6.0.1",
"terser-webpack-plugin": "^1.4.1",
"ts-loader": "^5.3.3", "ts-loader": "^5.3.3",
"typescript": "^3.5.3", "typescript": "^3.5.3",
"webpack": "^4.39.2", "webpack": "^4.40.2",
"webpack-cli": "^3.3.5" "webpack-cli": "^3.3.9",
"terser-webpack-plugin": "^2.1.0"
}, },
"dependencies": { "dependencies": {
"bsock": "^0.1.9", "bsock": "^0.1.9",
"fs": "0.0.1-security",
"http": "0.0.0",
"path": "^0.12.7",
"uuid": "^3.3.3" "uuid": "^3.3.3"
}, },
"files": [ "files": [
"lib/*.js" "*.js",
"*.d.ts"
] ]
} }
+1 -1
View File
@@ -15,7 +15,7 @@ export {
R as Responses R as Responses
} }
export class Backend{ export class Server{
private ws = http.createServer() private ws = http.createServer()
private io = bsock.createServer() private io = bsock.createServer()
+5 -1
View File
@@ -3,11 +3,15 @@
var bsock = require('bsock') var bsock = require('bsock')
import * as T from './Types'; import * as T from './Types';
import * as U from './Utils';
import * as I from './Interfaces'; import * as I from './Interfaces';
import * as R from './Responses';
export { export {
T as Types, T as Types,
U as Utils,
I as Interfaces, I as Interfaces,
R as Responses
} }
@@ -16,7 +20,7 @@ function stripAfterEquals(str:string){
return str.split("=")[0] return str.split("=")[0]
} }
export class Frontend implements I.Socket{ export class Client implements I.Socket{
private socket: I.Socket private socket: I.Socket
constructor(public port:number, private server: string, private tls: boolean = false){ constructor(public port:number, private server: string, private tls: boolean = false){
+7 -27
View File
@@ -1,13 +1,11 @@
const path = require('path'); const path = require('path');
const TerserPlugin = require('terser-webpack-plugin');
const frontendConf = { const frontendConf = {
mode: 'production', mode: 'production',
target: "web", target: "web",
entry: path.resolve(__dirname, 'src', 'Frontend.ts'), entry: path.resolve(__dirname, 'Frontend.ts'),
output: { output: {
path: path.resolve(__dirname, 'lib'), path: path.resolve(__dirname, '..'),
filename: "Frontend.js", filename: "Frontend.js",
libraryTarget: 'commonjs', libraryTarget: 'commonjs',
}, },
@@ -21,26 +19,17 @@ const frontendConf = {
}, },
optimization: { optimization: {
minimize: true, minimize: true,
minimizer: [
new TerserPlugin({
parallel: true,
exclude: [
/\.\/(.*)\/.ts/,
/\.\/(.*).ts/,
],
}),
],
}, },
} }
const backendConf = { const backendConf = {
mode: 'production', mode: 'production',
target: "node", target: "node",
entry: path.resolve(__dirname, 'src', 'Backend.ts'), entry: path.resolve(__dirname, 'Backend.ts'),
output: { output: {
path: path.resolve(__dirname, 'lib'), path: path.resolve(__dirname, '..'),
filename: "Backend.js", filename: "Backend.js",
libraryTarget: 'commonjs', libraryTarget: 'commonjs'
}, },
module: { module: {
rules: [ rules: [
@@ -51,17 +40,8 @@ resolve: {
extensions: [".ts", ".tsx", ".js"] extensions: [".ts", ".tsx", ".js"]
}, },
optimization: { optimization: {
minimize: true, minimize: false,
minimizer: [
new TerserPlugin({
parallel: true,
exclude: [
/\.\/(.*)\/.ts/,
/\.\/(.*).ts/,
],
}),
],
}, },
} }
module.exports = [frontendConf, backendConf] module.exports = [backendConf, frontendConf]
+2 -2
View File
@@ -1,6 +1,6 @@
import { Backend } from '../src/Backend' import { Server } from '../src/Backend'
const testServer = new Backend(20000, [{ const testServer = new Server(20000, [{
name: "HelloWorldRPCGroup", name: "HelloWorldRPCGroup",
publicRPCs: () => [], publicRPCs: () => [],
localRPCs: () => [{ localRPCs: () => [{
+2 -2
View File
@@ -1,6 +1,6 @@
import { Frontend } from '../src/Frontend' import { Client } from '../src/Frontend'
const testClient = new Frontend(20000, 'localhost') const testClient = new Client(20000, 'localhost')
testClient.connect().then(_ => { testClient.connect().then(_ => {
testClient.info().then(console.log) testClient.info().then(console.log)
testClient["HelloWorldRPCGroup"].echo("x").then(console.log) testClient["HelloWorldRPCGroup"].echo("x").then(console.log)
+8 -62
View File
@@ -1,12 +1,12 @@
const path = require('path'); const path = require('path');
const TerserPlugin = require('terser-webpack-plugin');
const frontendConf = { const frontendConf = {
mode: 'production', mode: 'production',
target: "web", target: "web",
entry: path.resolve(__dirname, 'TestFrontend.ts'),
output: { output: {
path: path.resolve(__dirname, 'lib'), path: path.resolve(__dirname, '..'),
filename: "TestFrontend.js",
libraryTarget: 'commonjs', libraryTarget: 'commonjs',
}, },
module: { module: {
@@ -19,23 +19,16 @@ const frontendConf = {
}, },
optimization: { optimization: {
minimize: true, minimize: true,
minimizer: [
new TerserPlugin({
parallel: true,
exclude: [
/\.\/(.*)\/.ts/,
/\.\/(.*).ts/,
],
}),
],
}, },
} }
const backendConf = { const backendConf = {
mode: 'production', mode: 'production',
target: "node", target: "node",
entry: path.resolve(__dirname, 'TestBackend.ts'),
output: { output: {
path: path.resolve(__dirname, 'lib'), path: path.resolve(__dirname, '..'),
filename: "TestBackend.js",
libraryTarget: 'commonjs', libraryTarget: 'commonjs',
}, },
module: { module: {
@@ -47,55 +40,8 @@ resolve: {
extensions: [".ts", ".tsx", ".js"] extensions: [".ts", ".tsx", ".js"]
}, },
optimization: { optimization: {
minimize: true, minimize: false,
minimizer: [
new TerserPlugin({
parallel: true,
exclude: [
/\.\/(.*)\/.ts/,
/\.\/(.*).ts/,
],
}),
],
}, },
} }
const clientConf = { module.exports = [backendConf, frontendConf]
...frontendConf,
...{
entry: path.resolve(__dirname, 'src', 'Client.ts'),
output: {
filename: 'Frontend.js',
}
}
}
const clientTestConf = {
...frontendConf,
...{
entry: path.resolve(__dirname, 'test', 'TestClient.ts'),
output: {
filename: 'TestFrontend.js',
}
}
}
const serverConf = {
...backendConf,
...{
entry: path.resolve(__dirname, 'src', 'Server.ts'),
output: {
filename: 'Backend.js',
}
}
}
const serverTestConf = {
...backendConf,
...{
entry: path.resolve(__dirname, 'test', 'TestServer.ts'),
output: {
filename: 'TestBackend.js',
}
}
}
module.exports = [clientConf, clientTestConf, serverConf, serverTestConf]
+2 -2
View File
@@ -5,10 +5,10 @@
"target": "ESnext", "target": "ESnext",
"module": "commonjs", "module": "commonjs",
"declaration": true, "declaration": true,
"outDir": "./lib", "outDir": "./js",
"strict": true, "strict": true,
"experimentalDecorators": true "experimentalDecorators": true
}, },
"include": ["src/**/*.ts", "test/**/*.ts"], "include": ["src/**/*.ts", "test/**/*.ts"],
"exclude": ["node_modules"], "exclude": ["node_modules"]
} }