From c28b25883e9d9c856dbe0c021ef84ac4f5884cb3 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Mon, 8 Apr 2019 19:42:23 +0200 Subject: [PATCH] fix(core): update --- package-lock.json | 318 +++++++++++++++++++++++++++++++++-------- package.json | 7 +- test/test.ts | 24 +++- ts/index.ts | 59 +++++++- ts/smartipc.plugins.ts | 18 ++- 5 files changed, 360 insertions(+), 66 deletions(-) diff --git a/package-lock.json b/package-lock.json index e3f3276..4796f10 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,53 +26,86 @@ "@pushrocks/smartpath": "^4.0.1", "@pushrocks/smartpromise": "^2.0.5", "typescript": "^3.2.2" + }, + "dependencies": { + "@pushrocks/smartpromise": { + "version": "2.0.5", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", + "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==", + "dev": true + } } }, "@gitzone/tsrun": { - "version": "1.2.1", - "resolved": "https://verdaccio.lossless.one/@gitzone%2ftsrun/-/tsrun-1.2.1.tgz", - "integrity": "sha512-0cGgwFBCu+OutqqsNHWrZyhN4Yh8fC0/P5beK+wdsWG9s0guc2ydNivpmCLMC9IZHIfihjQvdVQYbD3qiG9yjg==", + "version": "1.2.5", + "resolved": "https://verdaccio.lossless.one/@gitzone%2ftsrun/-/tsrun-1.2.5.tgz", + "integrity": "sha512-yUE4ndfIak90IOF8CdQ+COD4dCarA+WPdmjFNG/o5R1KhXFnLKJ9kXtdvshFn2cF5HbpSfDNS6RVVuuBgjpFvg==", "dev": true, "requires": { "@gitzone/tsbuild": "^2.1.8", - "@pushrocks/smartfile": "^7.0.0", - "ts-node": "^8.0.2", - "typescript": "^3.3.3333" + "@pushrocks/smartfile": "^7.0.2", + "ts-node": "^8.0.3", + "typescript": "^3.4.2" }, "dependencies": { "@pushrocks/smartfile": { - "version": "7.0.0", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartfile/-/smartfile-7.0.0.tgz", - "integrity": "sha512-9agUyfv5FNqZC0QNcLxuhgjrJFh9fZQm+KFwlLlkAvkziGwbamlj2i64T79a4pZCgE7cFpwaSeiK2O+yQpNPPA==", + "version": "7.0.2", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartfile/-/smartfile-7.0.2.tgz", + "integrity": "sha512-38l9DRalp1McEBFG+qKzBqefVQZZLPNk+uo7Ff1guy8BDxA+tATlZ6O6FuXW7M3wjFDBi245VJs+KWVKcCxBRA==", "dev": true, "requires": { "@pushrocks/smartpath": "^4.0.1", - "@pushrocks/smartpromise": "^2.0.5", + "@pushrocks/smartpromise": "^3.0.2", "@pushrocks/smartrequest": "^1.1.14", "@types/fs-extra": "^5.0.5", "@types/vinyl": "^2.0.2", "fs-extra": "^7.0.1", "glob": "^7.1.3", - "js-yaml": "^3.12.1", + "js-yaml": "^3.13.1", "vinyl-file": "^3.0.0" } + }, + "typescript": { + "version": "3.4.2", + "resolved": "https://verdaccio.lossless.one/typescript/-/typescript-3.4.2.tgz", + "integrity": "sha512-Og2Vn6Mk7JAuWA1hQdDQN/Ekm/SchX80VzLhjKN9ETYrIepBFAd8PkOdOTK2nKt0FCkmMZKBJvQ1dV1gIxPu/A==", + "dev": true } } }, "@gitzone/tstest": { - "version": "1.0.18", - "resolved": "https://verdaccio.lossless.one/@gitzone%2ftstest/-/tstest-1.0.18.tgz", - "integrity": "sha512-/owFKFsiFWh6miL+G/DYxBr+B6mgy9WzthLTqNyC7xriYoymvBgnmm5Wo3bo1NQN+1GY83zKeSpY7JB4r2LuEQ==", + "version": "1.0.19", + "resolved": "https://verdaccio.lossless.one/@gitzone%2ftstest/-/tstest-1.0.19.tgz", + "integrity": "sha512-dtuesc+u9D2wgMVqDLFSdFava9g3iVydpZPVanw46AJ3iwDmV3hm/hQGwlDiUPRPOQno1JMlYtdqKASw/FRkpQ==", "dev": true, "requires": { - "@gitzone/tsrun": "^1.1.17", + "@gitzone/tsrun": "^1.2.5", "@pushrocks/consolecolor": "^2.0.1", - "@pushrocks/smartfile": "^6.0.11", - "@pushrocks/smartlog": "^2.0.9", - "@pushrocks/smartpromise": "^2.0.5", - "@pushrocks/smartshell": "^2.0.11", + "@pushrocks/smartfile": "^7.0.2", + "@pushrocks/smartlog": "^2.0.19", + "@pushrocks/smartpromise": "^3.0.2", + "@pushrocks/smartshell": "^2.0.13", "@types/figures": "^2.0.0", "figures": "^2.0.0" + }, + "dependencies": { + "@pushrocks/smartfile": { + "version": "7.0.2", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartfile/-/smartfile-7.0.2.tgz", + "integrity": "sha512-38l9DRalp1McEBFG+qKzBqefVQZZLPNk+uo7Ff1guy8BDxA+tATlZ6O6FuXW7M3wjFDBi245VJs+KWVKcCxBRA==", + "dev": true, + "requires": { + "@pushrocks/smartpath": "^4.0.1", + "@pushrocks/smartpromise": "^3.0.2", + "@pushrocks/smartrequest": "^1.1.14", + "@types/fs-extra": "^5.0.5", + "@types/vinyl": "^2.0.2", + "fs-extra": "^7.0.1", + "glob": "^7.1.3", + "js-yaml": "^3.13.1", + "vinyl-file": "^3.0.0" + } + } } }, "@pushrocks/consolecolor": { @@ -92,13 +125,20 @@ "requires": { "@pushrocks/consolecolor": "^2.0.1", "@pushrocks/smartpromise": "^2.0.5" + }, + "dependencies": { + "@pushrocks/smartpromise": { + "version": "2.0.5", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", + "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==", + "dev": true + } } }, "@pushrocks/lik": { "version": "3.0.5", "resolved": "https://verdaccio.lossless.one/@pushrocks%2flik/-/lik-3.0.5.tgz", "integrity": "sha512-pc5Nq0WUysS34qPpyiZXiX254kL3vyRVbt3D36Q5QU+eHhxAThHofSzgOdyVHUZU2WFoaMlKowIVsyUFzIkfdw==", - "dev": true, "requires": { "@pushrocks/smartdelay": "^2.0.2", "@pushrocks/smartpromise": "^2.0.5", @@ -107,6 +147,13 @@ "@types/minimatch": "^3.0.3", "minimatch": "^3.0.4", "symbol-tree": "^3.2.2" + }, + "dependencies": { + "@pushrocks/smartpromise": { + "version": "2.0.5", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", + "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==" + } } }, "@pushrocks/smartcli": { @@ -122,13 +169,20 @@ "@types/yargs": "^12.0.1", "rxjs": "^6.3.3", "yargs": "^12.0.5" + }, + "dependencies": { + "@pushrocks/smartpromise": { + "version": "2.0.5", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", + "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==", + "dev": true + } } }, "@pushrocks/smartdelay": { "version": "2.0.3", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartdelay/-/smartdelay-2.0.3.tgz", "integrity": "sha512-TXKDDqsc7sBTLl+oiYNaF6IdNk1n70i8ur8QfwcUU6tegTnrEkvMWy9h5Zdty/fq1ioCNpKLvuXoA+fgYVwKGQ==", - "dev": true, "requires": { "@pushrocks/smartpromise": "^3.0.2" }, @@ -136,8 +190,7 @@ "@pushrocks/smartpromise": { "version": "3.0.2", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-3.0.2.tgz", - "integrity": "sha512-jmrJMUEmBCWChWK8CIcx4Vw3wv/8OgVNmkaxJrbs+WMaoRUfJtpWWJfrAwwHWt9ZXJbarJ+CwfwfYiiZXymndQ==", - "dev": true + "integrity": "sha512-jmrJMUEmBCWChWK8CIcx4Vw3wv/8OgVNmkaxJrbs+WMaoRUfJtpWWJfrAwwHWt9ZXJbarJ+CwfwfYiiZXymndQ==" } } }, @@ -145,9 +198,15 @@ "version": "2.0.3", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartevent/-/smartevent-2.0.3.tgz", "integrity": "sha512-x4B1mzzE6LrMATXsRLNuZpMTlB2JodL44MA4bF4FucU3SBBiWhFv3CFJRlO9B23SKZ1fwdJQrk2lT7YTUHXXJQ==", - "dev": true, "requires": { "@pushrocks/smartpromise": "^2.0.5" + }, + "dependencies": { + "@pushrocks/smartpromise": { + "version": "2.0.5", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", + "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==" + } } }, "@pushrocks/smartfile": { @@ -165,6 +224,14 @@ "glob": "^7.1.3", "js-yaml": "^3.12.1", "vinyl-file": "^3.0.0" + }, + "dependencies": { + "@pushrocks/smartpromise": { + "version": "2.0.5", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", + "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==", + "dev": true + } } }, "@pushrocks/smartlog": { @@ -191,6 +258,14 @@ "@pushrocks/smartpromise": "^2.0.5", "is-promise": "^2.1.0", "minimatch": "^3.0.4" + }, + "dependencies": { + "@pushrocks/smartpromise": { + "version": "2.0.5", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", + "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==", + "dev": true + } } }, "@pushrocks/smartpath": { @@ -200,10 +275,9 @@ "dev": true }, "@pushrocks/smartpromise": { - "version": "2.0.5", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", - "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==", - "dev": true + "version": "3.0.2", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-3.0.2.tgz", + "integrity": "sha512-jmrJMUEmBCWChWK8CIcx4Vw3wv/8OgVNmkaxJrbs+WMaoRUfJtpWWJfrAwwHWt9ZXJbarJ+CwfwfYiiZXymndQ==" }, "@pushrocks/smartrequest": { "version": "1.1.14", @@ -214,18 +288,32 @@ "@pushrocks/smartpromise": "^2.0.5", "@types/form-data": "^2.2.1", "form-data": "^2.3.2" + }, + "dependencies": { + "@pushrocks/smartpromise": { + "version": "2.0.5", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", + "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==", + "dev": true + } } }, "@pushrocks/smartrx": { "version": "2.0.3", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrx/-/smartrx-2.0.3.tgz", "integrity": "sha512-OWxagu+CBdPaq76AIg91hJyrNhDTlEpesj01ooWCeVIaLY3G7yvFkqHsEKNOwPUG1LzCWmjq1l1dHQx9p2vJ9A==", - "dev": true, "requires": { "@pushrocks/lik": "^3.0.2", "@pushrocks/smartevent": "^2.0.3", "@pushrocks/smartpromise": "^2.0.5", "rxjs": "^6.3.3" + }, + "dependencies": { + "@pushrocks/smartpromise": { + "version": "2.0.5", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", + "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==" + } } }, "@pushrocks/smartshell": { @@ -237,17 +325,42 @@ "@pushrocks/smartpromise": "^2.0.5", "@types/which": "^1.3.1", "which": "^1.3.1" + }, + "dependencies": { + "@pushrocks/smartpromise": { + "version": "2.0.5", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", + "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==", + "dev": true + } + } + }, + "@pushrocks/smartspawn": { + "version": "2.0.4", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartspawn/-/smartspawn-2.0.4.tgz", + "integrity": "sha512-9OaS1ySEpO1xAmy4Hrezt31SUSt5BrGlE6ECfFtGsqZ4039IzsQFnINkz13VqzEVwuqM3SD54s6uMNSQS50jng==", + "dev": true, + "requires": { + "@pushrocks/smartpromise": "^3.0.2", + "spawn-wrap": "^1.4.2", + "threads": "^0.12.1" } }, "@pushrocks/smarttime": { "version": "3.0.5", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmarttime/-/smarttime-3.0.5.tgz", "integrity": "sha512-nHjJ8xRZ87OE8tBBIAOgjHJmJrc3MaPZtEZ5JDY2U9gjaED6JdRcdQ+vhSaLJT+U2u8YzXOuA6LfNN+X4jZm6A==", - "dev": true, "requires": { "@pushrocks/smartpromise": "^2.0.5", "@types/luxon": "^1.4.1", "luxon": "^1.8.0" + }, + "dependencies": { + "@pushrocks/smartpromise": { + "version": "2.0.5", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", + "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==" + } } }, "@pushrocks/tapbundle": { @@ -261,6 +374,14 @@ "@pushrocks/smartpromise": "^2.0.5", "leakage": "^0.4.0", "smartchai": "^2.0.1" + }, + "dependencies": { + "@pushrocks/smartpromise": { + "version": "2.0.5", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", + "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==", + "dev": true + } } }, "@types/chai": { @@ -314,19 +435,17 @@ "@types/luxon": { "version": "1.12.0", "resolved": "https://verdaccio.lossless.one/@types%2fluxon/-/luxon-1.12.0.tgz", - "integrity": "sha512-+UzPmwHSEEyv7aGlNkVpuFxp/BirXgl8NnPGCtmyx2KXIzAapoW3IqSVk87/Z3PUk8vEL8Pe1HXEMJbNBOQgtg==", - "dev": true + "integrity": "sha512-+UzPmwHSEEyv7aGlNkVpuFxp/BirXgl8NnPGCtmyx2KXIzAapoW3IqSVk87/Z3PUk8vEL8Pe1HXEMJbNBOQgtg==" }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://verdaccio.lossless.one/@types%2fminimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "@types/node": { - "version": "10.14.4", - "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-10.14.4.tgz", - "integrity": "sha512-DT25xX/YgyPKiHFOpNuANIQIVvYEwCWXgK2jYYwqgaMrYE6+tq+DtmMwlD3drl6DJbUwtlIDnn0d7tIn/EbXBg==" + "version": "11.13.0", + "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-11.13.0.tgz", + "integrity": "sha512-rx29MMkRdVmzunmiA4lzBYJNnXsW/PhG4kMBy2ATsYaDjGGR75dCFEVVROKpNwlVdcUX3xxlghKQOeDPBJobng==" }, "@types/node-ipc": { "version": "9.1.1", @@ -446,8 +565,7 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://verdaccio.lossless.one/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "bindings": { "version": "1.5.0", @@ -462,7 +580,6 @@ "version": "1.1.11", "resolved": "https://verdaccio.lossless.one/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -631,8 +748,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://verdaccio.lossless.one/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "core-util-is": { "version": "1.0.2", @@ -723,6 +839,12 @@ "resolved": "https://verdaccio.lossless.one/event-pubsub/-/event-pubsub-4.3.0.tgz", "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==" }, + "eventemitter3": { + "version": "2.0.3", + "resolved": "https://verdaccio.lossless.one/eventemitter3/-/eventemitter3-2.0.3.tgz", + "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=", + "dev": true + }, "execa": { "version": "1.0.0", "resolved": "https://verdaccio.lossless.one/execa/-/execa-1.0.0.tgz", @@ -771,6 +893,28 @@ "readable-stream": "^2.0.2" } }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://verdaccio.lossless.one/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "dev": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://verdaccio.lossless.one/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + } + } + }, "form-data": { "version": "2.3.3", "resolved": "https://verdaccio.lossless.one/form-data/-/form-data-2.3.3.tgz", @@ -997,11 +1141,20 @@ "path-exists": "^3.0.0" } }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://verdaccio.lossless.one/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, "luxon": { "version": "1.12.0", "resolved": "https://verdaccio.lossless.one/luxon/-/luxon-1.12.0.tgz", - "integrity": "sha512-enPnPIHd5ZnZT0vpj9Xv8aq4j0yueAkhnh4xUKUHpqlgSm1r/8s6xTMjfyp2ugOWP7zivqJqgVTkW+rpHed61w==", - "dev": true + "integrity": "sha512-enPnPIHd5ZnZT0vpj9Xv8aq4j0yueAkhnh4xUKUHpqlgSm1r/8s6xTMjfyp2ugOWP7zivqJqgVTkW+rpHed61w==" }, "make-error": { "version": "1.3.5", @@ -1054,7 +1207,6 @@ "version": "3.0.4", "resolved": "https://verdaccio.lossless.one/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -1088,6 +1240,12 @@ "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", "dev": true }, + "native-promise-only": { + "version": "0.8.1", + "resolved": "https://verdaccio.lossless.one/native-promise-only/-/native-promise-only-0.8.1.tgz", + "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=", + "dev": true + }, "nice-try": { "version": "1.0.5", "resolved": "https://verdaccio.lossless.one/nice-try/-/nice-try-1.0.5.tgz", @@ -1128,6 +1286,12 @@ "wrappy": "1" } }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://verdaccio.lossless.one/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, "os-locale": { "version": "3.1.0", "resolved": "https://verdaccio.lossless.one/os-locale/-/os-locale-3.1.0.tgz", @@ -1229,6 +1393,12 @@ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://verdaccio.lossless.one/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, "pump": { "version": "3.0.0", "resolved": "https://verdaccio.lossless.one/pump/-/pump-3.0.0.tgz", @@ -1287,11 +1457,19 @@ "path-parse": "^1.0.6" } }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://verdaccio.lossless.one/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "rxjs": { "version": "6.4.0", "resolved": "https://verdaccio.lossless.one/rxjs/-/rxjs-6.4.0.tgz", "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", - "dev": true, "requires": { "tslib": "^1.9.0" } @@ -1356,15 +1534,29 @@ "dev": true }, "source-map-support": { - "version": "0.5.11", - "resolved": "https://verdaccio.lossless.one/source-map-support/-/source-map-support-0.5.11.tgz", - "integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==", + "version": "0.5.12", + "resolved": "https://verdaccio.lossless.one/source-map-support/-/source-map-support-0.5.12.tgz", + "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, + "spawn-wrap": { + "version": "1.4.2", + "resolved": "https://verdaccio.lossless.one/spawn-wrap/-/spawn-wrap-1.4.2.tgz", + "integrity": "sha512-vMwR3OmmDhnxCVxM8M+xO/FtIp6Ju/mNaDfCMMW7FDcLRTPFWUswec4LXJHTJE2hwTI9O0YBfygu4DalFl7Ylg==", + "dev": true, + "requires": { + "foreground-child": "^1.5.6", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.6.2", + "signal-exit": "^3.0.2", + "which": "^1.3.0" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://verdaccio.lossless.one/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -1442,8 +1634,17 @@ "symbol-tree": { "version": "3.2.2", "resolved": "https://verdaccio.lossless.one/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", - "dev": true + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" + }, + "threads": { + "version": "0.12.1", + "resolved": "https://verdaccio.lossless.one/threads/-/threads-0.12.1.tgz", + "integrity": "sha512-2USeV2FDNZtVP1xt3TW86solU7W6WYjaTMd+gvAHJat+dEMFh7of2DR9MEFLkhMerxc1t5b1DMJiVx1meRzk0w==", + "dev": true, + "requires": { + "eventemitter3": "^2.0.2", + "native-promise-only": "^0.8.1" + } }, "ts-node": { "version": "8.0.3", @@ -1461,8 +1662,7 @@ "tslib": { "version": "1.9.3", "resolved": "https://verdaccio.lossless.one/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, "tslint": { "version": "5.15.0", @@ -1625,6 +1825,12 @@ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, + "yallist": { + "version": "2.1.2", + "resolved": "https://verdaccio.lossless.one/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, "yargs": { "version": "12.0.5", "resolved": "https://verdaccio.lossless.one/yargs/-/yargs-12.0.5.tgz", @@ -1656,9 +1862,9 @@ } }, "yn": { - "version": "3.0.0", - "resolved": "https://verdaccio.lossless.one/yn/-/yn-3.0.0.tgz", - "integrity": "sha512-+Wo/p5VRfxUgBUGy2j/6KX2mj9AYJWOHuhMjMcbBFc3y54o9/4buK1ksBvuiK01C3kby8DH9lSmJdSxw+4G/2Q==", + "version": "3.1.0", + "resolved": "https://verdaccio.lossless.one/yn/-/yn-3.1.0.tgz", + "integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==", "dev": true } } diff --git a/package.json b/package.json index 2d9bef9..bec2bab 100644 --- a/package.json +++ b/package.json @@ -14,13 +14,16 @@ }, "devDependencies": { "@gitzone/tsbuild": "^2.0.22", - "@gitzone/tstest": "^1.0.15", + "@gitzone/tstest": "^1.0.19", + "@pushrocks/smartspawn": "^2.0.4", "@pushrocks/tapbundle": "^3.0.7", - "@types/node": "^10.11.7", + "@types/node": "^11.13.0", "tslint": "^5.11.0", "tslint-config-prettier": "^1.15.0" }, "dependencies": { + "@pushrocks/smartpromise": "^3.0.2", + "@pushrocks/smartrx": "^2.0.3", "@types/node-ipc": "^9.1.1", "node-ipc": "^9.1.1" } diff --git a/test/test.ts b/test/test.ts index f2cee02..5eccebc 100644 --- a/test/test.ts +++ b/test/test.ts @@ -1,8 +1,24 @@ import { expect, tap } from '@pushrocks/tapbundle'; -import * as smartipc from '../ts/index' +import * as smartipc from '../ts/index'; -tap.test('first test', async () => { - console.log(smartipc.standardExport) +import * as smartspawn from '@pushrocks/smartspawn'; +import * as smartpromise from '@pushrocks/smartpromise'; + +let testIpc: smartipc.SmartIpc; + +tap.test('should instantiate a valid instance', async () => { + testIpc = new smartipc.SmartIpc({ + ipcSpace: 'testSmartIpc', + type: 'server' + }); }) -tap.start() +tap.test('should create a client', async (tools) => { + +}); + +tap.test('should terminate the smartipc process', async () => { + +}); + +tap.start(); diff --git a/ts/index.ts b/ts/index.ts index 2f1780c..2cf2069 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -1,3 +1,60 @@ import * as plugins from './smartipc.plugins'; -export let standardExport = 'Hi there! :) This is an exported string'; +export interface ISmartIpcConstructorOptions { + type: 'server' | 'client'; + + /** + * the name of the message string + */ + ipcSpace: string; +} + + +export interface ISmartIpcHandlerPackage { + keyword: string; + handlerFunc: () => void; +} + +export class SmartIpc { + public handlers: ISmartIpcHandlerPackage[] = []; + + public options: ISmartIpcConstructorOptions; + constructor(optionsArg: ISmartIpcConstructorOptions) { + this.options = optionsArg; + } + + + /** + * connect to the channel + */ + public async start() { + switch (this.options.type) { + case 'server': + plugins.nodeIpc.config.id = this.options.ipcSpace; + const done = plugins.smartpromise.defer(); + plugins.nodeIpc.serve(() => { + done.resolve(); + }); + await done.promise; + break; + case 'client': + plugins.nodeIpc.connectTo(this.options.ipcSpace); + default: + throw new Error('type of ipc is not valid. Must be "server" or "client"'); + } + } + + /** + * should stop the server + */ + public async stop() { + plugins.nodeIpc.server.stop(); + } + + /** + * regsiters a handler + */ + registerHandler (handlerPackage: ISmartIpcHandlerPackage) { + this.handlers.push(handlerPackage); + } +} diff --git a/ts/smartipc.plugins.ts b/ts/smartipc.plugins.ts index d00ae0c..53b1656 100644 --- a/ts/smartipc.plugins.ts +++ b/ts/smartipc.plugins.ts @@ -1,4 +1,16 @@ -const removeme = {}; +// pushrocks scope +import * as smartpromise from '@pushrocks/smartpromise'; +import * as smartrx from '@pushrocks/smartrx'; + export { - removeme -} + smartpromise, + smartrx +}; + +// third party scope +import * as nodeIpc from 'node-ipc'; + +export { + nodeIpc +}; +