I remember why I stopped working on this, read more

it's because the query parser is impossible to understand, and the handlers
are too long for this to be usable. It's a nice idea, but I can't do this
while drinking.
This commit is contained in:
2021-01-19 01:50:14 +11:00
parent 9ac32e918c
commit 128a42aaa6
9 changed files with 127 additions and 151 deletions

View File

@@ -3,7 +3,7 @@ const parseInput = require('./parse-input');
const parseQuery = require('./parse-query'); const parseQuery = require('./parse-query');
//the main function to be returned (sineQL()) //the main function to be returned (sineQL())
const main = (schema, handler, options = {}) => { const sineQL = (schema, handler, options = {}) => {
let typeGraph; let typeGraph;
try { try {
@@ -21,8 +21,8 @@ const main = (schema, handler, options = {}) => {
const tokens = parseInput(reqBody, true, options); const tokens = parseInput(reqBody, true, options);
let pos = 0; let pos = 0;
//check for keywords
switch(tokens[pos]) { switch(tokens[pos]) {
//check for keywords
case 'create': case 'create':
case 'update': case 'update':
case 'delete': case 'delete':
@@ -40,8 +40,6 @@ const main = (schema, handler, options = {}) => {
} }
return [200, result]; return [200, result];
break;
} }
} }
catch(e) { catch(e) {
@@ -52,4 +50,4 @@ const main = (schema, handler, options = {}) => {
}; };
//return to the caller //return to the caller
module.exports = main; module.exports = sineQL;

View File

@@ -13,7 +13,7 @@ const parseInput = (body, allowStrings, options) => {
case '"': { case '"': {
if (!allowStrings) { if (!allowStrings) {
throw 'Can\'t lex strings'; throw 'Can\'t parse strings';
} }
const start = current; const start = current;

View File

@@ -53,7 +53,7 @@ const parseQuery = async (handler, tokens, pos, typeGraph, parent = null, superM
//push the scalar object to the queryFields //push the scalar object to the queryFields
scalarFields.push({ typeName: typeGraph[superType][tokens[pos - 1]].typeName, name: tokens[pos - 1], filter: matching ? tokens[pos++] : null }); scalarFields.push({ typeName: typeGraph[superType][tokens[pos - 1]].typeName, name: tokens[pos - 1], filter: matching ? tokens[pos++] : null });
//if I am a scalar child of a match amd I do not match //if I am a scalar child of a match and I do not match
if (parent && superMatching && !matching) { if (parent && superMatching && !matching) {
throw 'Broken match chain in scalar type ' + tokens[pos - 1]; throw 'Broken match chain in scalar type ' + tokens[pos - 1];
} }

View File

@@ -4,7 +4,7 @@ scalars: [{ typeName: String, name: String, filter: any | null }, ...]
matching: Boolean matching: Boolean
*/ */
//BUG: Book { author { name } } - this gives a weird result //BUG: Book { authors { name } } - this gives a weird result
const database = require('./database.js'); const database = require('./database.js');

View File

@@ -220,13 +220,13 @@
} }
}, },
"@pm2/js-api": { "@pm2/js-api": {
"version": "0.6.1", "version": "0.6.7",
"resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.1.tgz", "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.7.tgz",
"integrity": "sha512-LImZWHEzcpIrLZ7kt4z3Gllkoz+CChHk2waDretOWeinSItyTMrNpzcXcZd2QikP/57qPolLfHGFipHJmOKkwQ==", "integrity": "sha512-jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw==",
"requires": { "requires": {
"async": "^2.6.3", "async": "^2.6.3",
"axios": "^0.19.0", "axios": "^0.21.0",
"debug": "~3.2.6", "debug": "~4.3.1",
"eventemitter2": "^6.3.1", "eventemitter2": "^6.3.1",
"ws": "^7.0.0" "ws": "^7.0.0"
}, },
@@ -240,11 +240,11 @@
} }
}, },
"debug": { "debug": {
"version": "3.2.7", "version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"requires": { "requires": {
"ms": "^2.1.1" "ms": "2.1.2"
} }
}, },
"eventemitter2": { "eventemitter2": {
@@ -253,9 +253,9 @@
"integrity": "sha512-t0A2msp6BzOf+QAcI6z9XMktLj52OjGQg+8SJH6v5+3uxNpWYRR3wQmfA+6xtMU9kOC59qk9licus5dYcrYkMQ==" "integrity": "sha512-t0A2msp6BzOf+QAcI6z9XMktLj52OjGQg+8SJH6v5+3uxNpWYRR3wQmfA+6xtMU9kOC59qk9licus5dYcrYkMQ=="
}, },
"ms": { "ms": {
"version": "2.1.3", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
} }
} }
}, },
@@ -389,11 +389,11 @@
} }
}, },
"axios": { "axios": {
"version": "0.19.2", "version": "0.21.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
"integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
"requires": { "requires": {
"follow-redirects": "1.5.10" "follow-redirects": "^1.10.0"
} }
}, },
"balanced-match": { "balanced-match": {
@@ -402,9 +402,9 @@
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
}, },
"binary-extensions": { "binary-extensions": {
"version": "2.1.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
}, },
"blessed": { "blessed": {
"version": "0.1.81", "version": "0.1.81",
@@ -470,13 +470,13 @@
"integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY=" "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY="
}, },
"chokidar": { "chokidar": {
"version": "3.4.3", "version": "3.5.1",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
"integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
"requires": { "requires": {
"anymatch": "~3.1.1", "anymatch": "~3.1.1",
"braces": "~3.0.2", "braces": "~3.0.2",
"fsevents": "~2.1.2", "fsevents": "~2.3.1",
"glob-parent": "~5.1.0", "glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0", "is-binary-path": "~2.1.0",
"is-glob": "~4.0.1", "is-glob": "~4.0.1",
@@ -795,22 +795,9 @@
} }
}, },
"follow-redirects": { "follow-redirects": {
"version": "1.5.10", "version": "1.13.1",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg=="
"requires": {
"debug": "=3.1.0"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
}
}
}, },
"forwarded": { "forwarded": {
"version": "0.1.2", "version": "0.1.2",
@@ -828,9 +815,9 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
}, },
"fsevents": { "fsevents": {
"version": "2.1.3", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz",
"integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==",
"optional": true "optional": true
}, },
"ftp": { "ftp": {
@@ -1086,16 +1073,16 @@
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
}, },
"mime-db": { "mime-db": {
"version": "1.44.0", "version": "1.45.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz",
"integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w=="
}, },
"mime-types": { "mime-types": {
"version": "2.1.27", "version": "2.1.28",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz",
"integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==",
"requires": { "requires": {
"mime-db": "1.44.0" "mime-db": "1.45.0"
} }
}, },
"minimatch": { "minimatch": {
@@ -1312,9 +1299,9 @@
} }
}, },
"pm2": { "pm2": {
"version": "4.5.0", "version": "4.5.1",
"resolved": "https://registry.npmjs.org/pm2/-/pm2-4.5.0.tgz", "resolved": "https://registry.npmjs.org/pm2/-/pm2-4.5.1.tgz",
"integrity": "sha512-sXKn0Qsrqj++qgsdGTASEsWfURhM6vSPIqFPwSwk3bK5/QPLxuRmVDW1y82M9wEnlgEjiIryaLhZUp5saLuhPA==", "integrity": "sha512-gEOYugy4vEGazszDtjbZcWnZhHpBLKl0JiYhEnIJqmMj576a0D5LNCmd9grJswB1ziZim+9YInqFrG3FQTxvEg==",
"requires": { "requires": {
"@pm2/agent": "~1.0.2", "@pm2/agent": "~1.0.2",
"@pm2/io": "~4.3.5", "@pm2/io": "~4.3.5",
@@ -1328,7 +1315,7 @@
"commander": "2.15.1", "commander": "2.15.1",
"cron": "1.8.2", "cron": "1.8.2",
"dayjs": "~1.8.25", "dayjs": "~1.8.25",
"debug": "^4.2.0", "debug": "^4.3.0",
"enquirer": "2.3.6", "enquirer": "2.3.6",
"eventemitter2": "5.0.1", "eventemitter2": "5.0.1",
"fclone": "1.0.11", "fclone": "1.0.11",
@@ -1344,7 +1331,7 @@
"semver": "^7.2", "semver": "^7.2",
"source-map-support": "0.5.19", "source-map-support": "0.5.19",
"sprintf-js": "1.1.2", "sprintf-js": "1.1.2",
"systeminformation": "^4.23.3", "systeminformation": "^4.32",
"vizion": "0.2.13", "vizion": "0.2.13",
"yamljs": "0.3.0" "yamljs": "0.3.0"
}, },
@@ -1564,9 +1551,9 @@
} }
}, },
"require-in-the-middle": { "require-in-the-middle": {
"version": "5.0.3", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.0.3.tgz", "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.1.0.tgz",
"integrity": "sha512-p/ICV8uMlqC4tjOYabLMxAWCIKa0YUQgZZ6KDM0xgXJNgdGQ1WmL2A07TwmrZw+wi6ITUFKzH5v3n+ENEyXVkA==", "integrity": "sha512-M2rLKVupQfJ5lf9OvqFGIT+9iVLnTmjgbOmpil12hiSQNn5zJTKGPoIisETNjfK+09vP3rpm1zJajmErpr2sEQ==",
"requires": { "requires": {
"debug": "^4.1.1", "debug": "^4.1.1",
"module-details-from-path": "^1.0.3", "module-details-from-path": "^1.0.3",
@@ -1764,9 +1751,9 @@
} }
}, },
"systeminformation": { "systeminformation": {
"version": "4.32.0", "version": "4.34.7",
"resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-4.32.0.tgz", "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-4.34.7.tgz",
"integrity": "sha512-8/LM0EvwhW34+n3fzmcl4swG7Ngx8h8s/5MooXlIJKyMbSiO9juCqftdQIpwa3NneKrca1uYO55JHZeYJUaSZw==", "integrity": "sha512-cS3FiSZasFgVNjO9CP3aZmTO2VHwXKG+JN6Z85nWRyOzxRMNbZe7Xzwrewp42hj+OPMC3hk7MrAFyu/qLM65Mw==",
"optional": true "optional": true
}, },
"thunkify": { "thunkify": {
@@ -1788,9 +1775,9 @@
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
}, },
"tslib": { "tslib": {
"version": "2.0.3", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
"integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
}, },
"tv4": { "tv4": {
"version": "1.3.0", "version": "1.3.0",

View File

@@ -13,8 +13,8 @@
"author": "Kayne Ruse", "author": "Kayne Ruse",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"cors": "^2.8.5", "cors": "latest",
"express": "^4.17.1", "express": "latest",
"pm2": "^4.4.1" "pm2": "latest"
} }
} }

View File

@@ -9,8 +9,6 @@ const database = require('./pokemon.json');
//the handler routines //the handler routines
const handler = { const handler = {
Pokemon: (parent, scalars, matching) => { Pokemon: (parent, scalars, matching) => {
throw 'Nothing here is working';
let pokemon = database; let pokemon = database;
//if this is a sub-query of Pokemon (a form), use the parent to narrow the search //if this is a sub-query of Pokemon (a form), use the parent to narrow the search
@@ -25,6 +23,7 @@ const handler = {
//I am being matched (if true, ALL present scalars will have a filter field) //I am being matched (if true, ALL present scalars will have a filter field)
if (matching) { if (matching) {
console.log('matching');
//check every scalar to every poke - a single false match is a miss on that poke //check every scalar to every poke - a single false match is a miss on that poke
pokemon = pokemon.filter(poke => { pokemon = pokemon.filter(poke => {
return scalars.every(scalar => { return scalars.every(scalar => {
@@ -34,7 +33,7 @@ const handler = {
case 'Integer': case 'Integer':
case 'Float': case 'Float':
case 'Boolean': case 'Boolean':
return poke[scalar.name].toString() == scalar.filter; //dumb comparison for now return poke[scalar.name] == scalar.filter; //dumb comparison for now
default: default:
throw `Unknown scalar typeName in handler: ${scalar.typeName} (${scalar.name})`; throw `Unknown scalar typeName in handler: ${scalar.typeName} (${scalar.name})`;
@@ -59,8 +58,7 @@ const handler = {
case 'Integer': case 'Integer':
case 'Float': case 'Float':
case 'Boolean': case 'Boolean':
console.log(scalar, poke[scalar.name]); return poke[scalar.name] == scalar.filter; //dumb comparison for now
return poke[scalar.name].toString() == scalar.filter; //dumb comparison for now
default: default:
throw `Unknown scalar typeName in handler: ${scalar.typeName} (${scalar.name})`; throw `Unknown scalar typeName in handler: ${scalar.typeName} (${scalar.name})`;
@@ -88,22 +86,22 @@ const handler = {
}, },
Stats: (parent, scalars, matching) => { Stats: (parent, scalars, matching) => {
throw 'Nothing here is working';
if (!parent || parent.typeName != 'Pokemon') { if (!parent || parent.typeName != 'Pokemon') {
throw 'Stats must be inside a Pokemon query'; throw 'Stats must be inside a Pokemon query';
} }
console.log(parent.scalars, scalars); console.log('mark 1');
//skip unknown/empty pokemon stats //skip unknown/empty pokemon stats
let pokemon = database.filter(poke => poke.base_stats != null); let pokemon = database.filter(poke => poke.base_stats != null);
//if this is a sub-query of Pokemon (already checked), use the parent to narrow the search //if this is a sub-query of a Pokemon (already checked), use the parent to narrow the search
pokemon = pokemon.filter(poke => { pokemon = pokemon.filter(poke => {
return scalars.every(scalar => poke[scalar.name] == parent.context[scalar.name]); return scalars.every(scalar => poke[scalar.name] == parent.context[scalar.name]);
}); });
console.log('mark 2', pokemon);
//handle forms instead of normal queries //handle forms instead of normal queries
if (pokemon.length == 0) { if (pokemon.length == 0) {
pokemon = database.filter(poke => poke.base_stats != null);//skip unknown/empty pokemon stats pokemon = database.filter(poke => poke.base_stats != null);//skip unknown/empty pokemon stats
@@ -118,6 +116,8 @@ const handler = {
}); });
} }
console.log('mark 3');
//I am being matched (if true, ALL present scalars will have a filter field) //I am being matched (if true, ALL present scalars will have a filter field)
if (matching) { if (matching) {
//check every scalar to every poke - a single false match is a miss on that poke //check every scalar to every poke - a single false match is a miss on that poke
@@ -140,6 +140,8 @@ const handler = {
} }
} }
console.log('mark 4');
//scalars are being matched on their own //scalars are being matched on their own
if (scalars.some(s => s.filter)) { if (scalars.some(s => s.filter)) {
//check every scalar to every poke - a single match is a hit //check every scalar to every poke - a single match is a hit
@@ -162,6 +164,8 @@ const handler = {
} }
} }
console.log('mark 5');
//process (filter out unwanted fields) and return the array of pokemon //process (filter out unwanted fields) and return the array of pokemon
return pokemon.map(poke => { return pokemon.map(poke => {
let ret = {}; let ret = {};

View File

@@ -220,13 +220,13 @@
} }
}, },
"@pm2/js-api": { "@pm2/js-api": {
"version": "0.6.1", "version": "0.6.7",
"resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.1.tgz", "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.7.tgz",
"integrity": "sha512-LImZWHEzcpIrLZ7kt4z3Gllkoz+CChHk2waDretOWeinSItyTMrNpzcXcZd2QikP/57qPolLfHGFipHJmOKkwQ==", "integrity": "sha512-jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw==",
"requires": { "requires": {
"async": "^2.6.3", "async": "^2.6.3",
"axios": "^0.19.0", "axios": "^0.21.0",
"debug": "~3.2.6", "debug": "~4.3.1",
"eventemitter2": "^6.3.1", "eventemitter2": "^6.3.1",
"ws": "^7.0.0" "ws": "^7.0.0"
}, },
@@ -240,11 +240,11 @@
} }
}, },
"debug": { "debug": {
"version": "3.2.7", "version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"requires": { "requires": {
"ms": "^2.1.1" "ms": "2.1.2"
} }
}, },
"eventemitter2": { "eventemitter2": {
@@ -253,9 +253,9 @@
"integrity": "sha512-t0A2msp6BzOf+QAcI6z9XMktLj52OjGQg+8SJH6v5+3uxNpWYRR3wQmfA+6xtMU9kOC59qk9licus5dYcrYkMQ==" "integrity": "sha512-t0A2msp6BzOf+QAcI6z9XMktLj52OjGQg+8SJH6v5+3uxNpWYRR3wQmfA+6xtMU9kOC59qk9licus5dYcrYkMQ=="
}, },
"ms": { "ms": {
"version": "2.1.3", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
} }
} }
}, },
@@ -389,11 +389,11 @@
} }
}, },
"axios": { "axios": {
"version": "0.19.2", "version": "0.21.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
"integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
"requires": { "requires": {
"follow-redirects": "1.5.10" "follow-redirects": "^1.10.0"
} }
}, },
"balanced-match": { "balanced-match": {
@@ -402,9 +402,9 @@
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
}, },
"binary-extensions": { "binary-extensions": {
"version": "2.1.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
}, },
"blessed": { "blessed": {
"version": "0.1.81", "version": "0.1.81",
@@ -470,13 +470,13 @@
"integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY=" "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY="
}, },
"chokidar": { "chokidar": {
"version": "3.4.3", "version": "3.5.1",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
"integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
"requires": { "requires": {
"anymatch": "~3.1.1", "anymatch": "~3.1.1",
"braces": "~3.0.2", "braces": "~3.0.2",
"fsevents": "~2.1.2", "fsevents": "~2.3.1",
"glob-parent": "~5.1.0", "glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0", "is-binary-path": "~2.1.0",
"is-glob": "~4.0.1", "is-glob": "~4.0.1",
@@ -795,22 +795,9 @@
} }
}, },
"follow-redirects": { "follow-redirects": {
"version": "1.5.10", "version": "1.13.1",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg=="
"requires": {
"debug": "=3.1.0"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
}
}
}, },
"forwarded": { "forwarded": {
"version": "0.1.2", "version": "0.1.2",
@@ -828,9 +815,9 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
}, },
"fsevents": { "fsevents": {
"version": "2.1.3", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz",
"integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==",
"optional": true "optional": true
}, },
"ftp": { "ftp": {
@@ -1086,16 +1073,16 @@
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
}, },
"mime-db": { "mime-db": {
"version": "1.44.0", "version": "1.45.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz",
"integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w=="
}, },
"mime-types": { "mime-types": {
"version": "2.1.27", "version": "2.1.28",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz",
"integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==",
"requires": { "requires": {
"mime-db": "1.44.0" "mime-db": "1.45.0"
} }
}, },
"minimatch": { "minimatch": {
@@ -1312,9 +1299,9 @@
} }
}, },
"pm2": { "pm2": {
"version": "4.5.0", "version": "4.5.1",
"resolved": "https://registry.npmjs.org/pm2/-/pm2-4.5.0.tgz", "resolved": "https://registry.npmjs.org/pm2/-/pm2-4.5.1.tgz",
"integrity": "sha512-sXKn0Qsrqj++qgsdGTASEsWfURhM6vSPIqFPwSwk3bK5/QPLxuRmVDW1y82M9wEnlgEjiIryaLhZUp5saLuhPA==", "integrity": "sha512-gEOYugy4vEGazszDtjbZcWnZhHpBLKl0JiYhEnIJqmMj576a0D5LNCmd9grJswB1ziZim+9YInqFrG3FQTxvEg==",
"requires": { "requires": {
"@pm2/agent": "~1.0.2", "@pm2/agent": "~1.0.2",
"@pm2/io": "~4.3.5", "@pm2/io": "~4.3.5",
@@ -1328,7 +1315,7 @@
"commander": "2.15.1", "commander": "2.15.1",
"cron": "1.8.2", "cron": "1.8.2",
"dayjs": "~1.8.25", "dayjs": "~1.8.25",
"debug": "^4.2.0", "debug": "^4.3.0",
"enquirer": "2.3.6", "enquirer": "2.3.6",
"eventemitter2": "5.0.1", "eventemitter2": "5.0.1",
"fclone": "1.0.11", "fclone": "1.0.11",
@@ -1344,7 +1331,7 @@
"semver": "^7.2", "semver": "^7.2",
"source-map-support": "0.5.19", "source-map-support": "0.5.19",
"sprintf-js": "1.1.2", "sprintf-js": "1.1.2",
"systeminformation": "^4.23.3", "systeminformation": "^4.32",
"vizion": "0.2.13", "vizion": "0.2.13",
"yamljs": "0.3.0" "yamljs": "0.3.0"
}, },
@@ -1564,9 +1551,9 @@
} }
}, },
"require-in-the-middle": { "require-in-the-middle": {
"version": "5.0.3", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.0.3.tgz", "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.1.0.tgz",
"integrity": "sha512-p/ICV8uMlqC4tjOYabLMxAWCIKa0YUQgZZ6KDM0xgXJNgdGQ1WmL2A07TwmrZw+wi6ITUFKzH5v3n+ENEyXVkA==", "integrity": "sha512-M2rLKVupQfJ5lf9OvqFGIT+9iVLnTmjgbOmpil12hiSQNn5zJTKGPoIisETNjfK+09vP3rpm1zJajmErpr2sEQ==",
"requires": { "requires": {
"debug": "^4.1.1", "debug": "^4.1.1",
"module-details-from-path": "^1.0.3", "module-details-from-path": "^1.0.3",
@@ -1764,9 +1751,9 @@
} }
}, },
"systeminformation": { "systeminformation": {
"version": "4.32.0", "version": "4.34.7",
"resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-4.32.0.tgz", "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-4.34.7.tgz",
"integrity": "sha512-8/LM0EvwhW34+n3fzmcl4swG7Ngx8h8s/5MooXlIJKyMbSiO9juCqftdQIpwa3NneKrca1uYO55JHZeYJUaSZw==", "integrity": "sha512-cS3FiSZasFgVNjO9CP3aZmTO2VHwXKG+JN6Z85nWRyOzxRMNbZe7Xzwrewp42hj+OPMC3hk7MrAFyu/qLM65Mw==",
"optional": true "optional": true
}, },
"thunkify": { "thunkify": {
@@ -1788,9 +1775,9 @@
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
}, },
"tslib": { "tslib": {
"version": "2.0.3", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
"integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
}, },
"tv4": { "tv4": {
"version": "1.3.0", "version": "1.3.0",

View File

@@ -13,8 +13,8 @@
"author": "Kayne Ruse", "author": "Kayne Ruse",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"cors": "^2.8.5", "cors": "latest",
"express": "^4.17.1", "express": "latest",
"pm2": "^4.4.1" "pm2": "latest"
} }
} }