diff --git a/Node/package-lock.json b/Node/package-lock.json index 200aa9e..32eaf9f 100644 --- a/Node/package-lock.json +++ b/Node/package-lock.json @@ -9,21 +9,32 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "dotenv": "^16.0.3", "excel-date-to-js": "^1.1.5", - "kuzzle-sdk": "^7.10.1", - "pocketbase": "^0.7.0", - "read-excel-file": "^5.5.0", - "surrealdb.js": "^0.3.1", + "neo4j-driver": "^5.0.1", + "uuid": "^9.0.0", "xlsx": "^0.18.5" }, "devDependencies": { "@types/node": "^18.7.18", + "@types/uuid": "^8.3.4", "nodemon": "^2.0.19", "rimraf": "^3.0.2", "ts-node": "^10.9.1", "typescript": "^4.8.3" } }, + "node_modules/@babel/runtime": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", + "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -91,13 +102,11 @@ "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==", "dev": true }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.2.tgz", - "integrity": "sha512-+R0juSseERyoPvnBQ/cZih6bpF7IpCXlWbHRoCRzYzqpz6gWHOgf8o4MOEf6KBVuOyqU+gCNLkCWVIJAro8XyQ==", - "engines": { - "node": ">=10.0.0" - } + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "dev": true }, "node_modules/abbrev": { "version": "1.1.1", @@ -156,27 +165,27 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/binary-extensions": { "version": "2.2.0", @@ -187,15 +196,11 @@ "node": ">=8" } }, - "node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -213,33 +218,27 @@ "node": ">=8" } }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/bufferutil": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", - "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", - "hasInstallScript": true, - "optional": true, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, "node_modules/cfb": { @@ -254,17 +253,6 @@ "node": ">=0.8" } }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" - } - }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -303,12 +291,8 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "node_modules/crc-32": { "version": "1.2.2", @@ -345,12 +329,12 @@ "node": ">=0.3.1" } }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dependencies": { - "readable-stream": "^2.0.2" + "node_modules/dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "engines": { + "node": ">=12" } }, "node_modules/excel-date-to-js": { @@ -361,11 +345,6 @@ "node": ">=4.2.4" } }, - "node_modules/fflate": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.3.tgz", - "integrity": "sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==" - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -389,7 +368,8 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true }, "node_modules/fsevents": { "version": "2.3.2", @@ -405,35 +385,11 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -461,11 +417,6 @@ "node": ">= 6" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -475,6 +426,25 @@ "node": ">=4" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", @@ -485,6 +455,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -493,7 +464,8 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "node_modules/is-binary-path": { "version": "2.1.0", @@ -537,43 +509,17 @@ "node": ">=0.12.0" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/kuzzle-sdk": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/kuzzle-sdk/-/kuzzle-sdk-7.10.1.tgz", - "integrity": "sha512-tz8yZmka5HcO1JCi3KYfoUiWtozBMMdO4ViKMh8XHLKhbEBvJRK7Jici5e8BCVj80H/8DlgF5HBXmb45v0PxAg==", - "dependencies": { - "min-req-promise": "^1.0.1", - "ws": "^8.8.1" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" - }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, - "node_modules/min-req-promise": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-req-promise/-/min-req-promise-1.0.1.tgz", - "integrity": "sha512-PD2LObOGZPBPk3EMiuxc4Te0a0T0C6ZZni4m6eNl1zgxqJh+jThM026TmxV6IcJM8MWPHagJm3Q+zm2CNOAiDg==" - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -581,50 +527,38 @@ "node": "*" } }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/nanoid": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", - "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==", - "bin": { - "nanoid": "bin/nanoid.js" - }, - "engines": { - "node": "^14 || ^16 || >=18" + "node_modules/neo4j-driver": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/neo4j-driver/-/neo4j-driver-5.0.1.tgz", + "integrity": "sha512-JtZfM+Ba3oA6C93FeH+Oh8zPcVzDW8wGqncpYG5XTzawEwzUpqIKecpccuQ/AV77cYZuee+qG/G3PNKvHwGtnQ==", + "dependencies": { + "@babel/runtime": "^7.17.8", + "neo4j-driver-bolt-connection": "^5.0.1", + "neo4j-driver-core": "^5.0.1", + "rxjs": "^7.5.5" } }, - "node_modules/node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "node_modules/neo4j-driver-bolt-connection": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/neo4j-driver-bolt-connection/-/neo4j-driver-bolt-connection-5.0.1.tgz", + "integrity": "sha512-je++gqcAAlsJ0IoiEh4yMdYPt9a71KtJpdm0OaukvxvnFWoJ0IfSHYRz+n15oJ9mP2Ikr8A/ZRU5KET59N0prg==", + "dependencies": { + "buffer": "^6.0.3", + "neo4j-driver-core": "^5.0.1", + "string_decoder": "^1.3.0" } }, + "node_modules/neo4j-driver-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/neo4j-driver-core/-/neo4j-driver-core-5.0.1.tgz", + "integrity": "sha512-ZwwINcTAHB1pgtamHKAkazfxHOZgv1dCvGCNSYh4ap+8AOoExKIU3jh4N++fdHvaN/TV0zYB6EshNCizs4WkCw==" + }, "node_modules/nodemon": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz", @@ -682,6 +616,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "dependencies": { "wrappy": "1" } @@ -690,6 +625,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -706,46 +642,12 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pocketbase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/pocketbase/-/pocketbase-0.7.0.tgz", - "integrity": "sha512-55le5D1dfthouWzxTIkL3eMgEsQqZsdT9O5HWFkCmbw889EKZsz0kf+2kkWgPvZqeVVXfOhMpJNHVOK5L2fJ3A==" - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "dev": true }, - "node_modules/read-excel-file": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/read-excel-file/-/read-excel-file-5.5.0.tgz", - "integrity": "sha512-YIQNqzgIpg4SjzlnQV+Hj19BEc0qexBz3t7rX00RnfCQchWKfBa9NELXrM065XrqkK5a1/MT8k+8a4HsskBw0g==", - "dependencies": { - "@xmldom/xmldom": "^0.8.2", - "fflate": "^0.7.3", - "unzipper": "^0.10.11" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -758,6 +660,11 @@ "node": ">=8.10.0" } }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -773,10 +680,32 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/semver": { "version": "5.7.1", @@ -787,11 +716,6 @@ "semver": "bin/semver" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, "node_modules/simple-update-notifier": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", @@ -825,11 +749,11 @@ } }, "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dependencies": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "node_modules/supports-color": { @@ -844,19 +768,6 @@ "node": ">=4" } }, - "node_modules/surrealdb.js": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/surrealdb.js/-/surrealdb.js-0.3.1.tgz", - "integrity": "sha512-qVd3xIaZ120KClGBe5WKDswwI2y7ZYjXfhI2F2eRvr1Uv9t/tz8tF0heqdDXXfPqqZA4S2GadEwjBkGSIRNBCw==", - "dependencies": { - "nanoid": "^4.0.0", - "ws": "^8.8.1" - }, - "optionalDependencies": { - "bufferutil": "^4.0.6", - "utf-8-validate": "^5.0.9" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -881,14 +792,6 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", - "engines": { - "node": "*" - } - }, "node_modules/ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", @@ -932,6 +835,11 @@ } } }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, "node_modules/typescript": { "version": "4.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", @@ -951,41 +859,14 @@ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, - "node_modules/unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" + "node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/utf-8-validate": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz", - "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", @@ -1011,27 +892,8 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/ws": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", - "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "node_modules/xlsx": { "version": "0.18.5", @@ -1064,6 +926,14 @@ } }, "dependencies": { + "@babel/runtime": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", + "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, "@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -1125,10 +995,11 @@ "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==", "dev": true }, - "@xmldom/xmldom": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.2.tgz", - "integrity": "sha512-+R0juSseERyoPvnBQ/cZih6bpF7IpCXlWbHRoCRzYzqpz6gWHOgf8o4MOEf6KBVuOyqU+gCNLkCWVIJAro8XyQ==" + "@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "dev": true }, "abbrev": { "version": "1.1.1", @@ -1172,21 +1043,13 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" - }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - } + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "binary-extensions": { "version": "2.2.0", @@ -1194,15 +1057,11 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/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" @@ -1217,23 +1076,13 @@ "fill-range": "^7.0.1" } }, - "buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==" - }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==" - }, - "bufferutil": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", - "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", - "optional": true, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "node-gyp-build": "^4.3.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, "cfb": { @@ -1245,14 +1094,6 @@ "crc-32": "~1.2.0" } }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "requires": { - "traverse": ">=0.3.0 <0.4" - } - }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -1277,12 +1118,8 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "crc-32": { "version": "1.2.2", @@ -1310,24 +1147,16 @@ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "requires": { - "readable-stream": "^2.0.2" - } + "dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" }, "excel-date-to-js": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/excel-date-to-js/-/excel-date-to-js-1.1.5.tgz", "integrity": "sha512-grZW0MPye0VGCzLNljI7H22QWgrI8/hkTCvIUczYsQTTSaPQU/UTcz1fBPHNxWKpiv8Zu2I/98z+aAnlp6STNw==" }, - "fflate": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.3.tgz", - "integrity": "sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==" - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -1345,7 +1174,8 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true }, "fsevents": { "version": "2.3.2", @@ -1354,31 +1184,11 @@ "dev": true, "optional": true }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1397,17 +1207,17 @@ "is-glob": "^4.0.1" } }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", @@ -1418,6 +1228,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -1426,7 +1237,8 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "is-binary-path": { "version": "2.1.0", @@ -1458,73 +1270,52 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "kuzzle-sdk": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/kuzzle-sdk/-/kuzzle-sdk-7.10.1.tgz", - "integrity": "sha512-tz8yZmka5HcO1JCi3KYfoUiWtozBMMdO4ViKMh8XHLKhbEBvJRK7Jici5e8BCVj80H/8DlgF5HBXmb45v0PxAg==", - "requires": { - "min-req-promise": "^1.0.1", - "ws": "^8.8.1" - } - }, - "listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" - }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, - "min-req-promise": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-req-promise/-/min-req-promise-1.0.1.tgz", - "integrity": "sha512-PD2LObOGZPBPk3EMiuxc4Te0a0T0C6ZZni4m6eNl1zgxqJh+jThM026TmxV6IcJM8MWPHagJm3Q+zm2CNOAiDg==" - }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "nanoid": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", - "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==" + "neo4j-driver": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/neo4j-driver/-/neo4j-driver-5.0.1.tgz", + "integrity": "sha512-JtZfM+Ba3oA6C93FeH+Oh8zPcVzDW8wGqncpYG5XTzawEwzUpqIKecpccuQ/AV77cYZuee+qG/G3PNKvHwGtnQ==", + "requires": { + "@babel/runtime": "^7.17.8", + "neo4j-driver-bolt-connection": "^5.0.1", + "neo4j-driver-core": "^5.0.1", + "rxjs": "^7.5.5" + } }, - "node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", - "optional": true + "neo4j-driver-bolt-connection": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/neo4j-driver-bolt-connection/-/neo4j-driver-bolt-connection-5.0.1.tgz", + "integrity": "sha512-je++gqcAAlsJ0IoiEh4yMdYPt9a71KtJpdm0OaukvxvnFWoJ0IfSHYRz+n15oJ9mP2Ikr8A/ZRU5KET59N0prg==", + "requires": { + "buffer": "^6.0.3", + "neo4j-driver-core": "^5.0.1", + "string_decoder": "^1.3.0" + } + }, + "neo4j-driver-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/neo4j-driver-core/-/neo4j-driver-core-5.0.1.tgz", + "integrity": "sha512-ZwwINcTAHB1pgtamHKAkazfxHOZgv1dCvGCNSYh4ap+8AOoExKIU3jh4N++fdHvaN/TV0zYB6EshNCizs4WkCw==" }, "nodemon": { "version": "2.0.19", @@ -1563,6 +1354,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "requires": { "wrappy": "1" } @@ -1570,7 +1362,8 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true }, "picomatch": { "version": "2.3.1", @@ -1578,46 +1371,12 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, - "pocketbase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/pocketbase/-/pocketbase-0.7.0.tgz", - "integrity": "sha512-55le5D1dfthouWzxTIkL3eMgEsQqZsdT9O5HWFkCmbw889EKZsz0kf+2kkWgPvZqeVVXfOhMpJNHVOK5L2fJ3A==" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, "pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "dev": true }, - "read-excel-file": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/read-excel-file/-/read-excel-file-5.5.0.tgz", - "integrity": "sha512-YIQNqzgIpg4SjzlnQV+Hj19BEc0qexBz3t7rX00RnfCQchWKfBa9NELXrM065XrqkK5a1/MT8k+8a4HsskBw0g==", - "requires": { - "@xmldom/xmldom": "^0.8.2", - "fflate": "^0.7.3", - "unzipper": "^0.10.11" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -1627,6 +1386,11 @@ "picomatch": "^2.2.1" } }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -1636,10 +1400,18 @@ "glob": "^7.1.3" } }, + "rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "requires": { + "tslib": "^2.1.0" + } + }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "semver": { "version": "5.7.1", @@ -1647,11 +1419,6 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, "simple-update-notifier": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", @@ -1678,11 +1445,11 @@ } }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "supports-color": { @@ -1694,17 +1461,6 @@ "has-flag": "^3.0.0" } }, - "surrealdb.js": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/surrealdb.js/-/surrealdb.js-0.3.1.tgz", - "integrity": "sha512-qVd3xIaZ120KClGBe5WKDswwI2y7ZYjXfhI2F2eRvr1Uv9t/tz8tF0heqdDXXfPqqZA4S2GadEwjBkGSIRNBCw==", - "requires": { - "bufferutil": "^4.0.6", - "nanoid": "^4.0.0", - "utf-8-validate": "^5.0.9", - "ws": "^8.8.1" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -1723,11 +1479,6 @@ "nopt": "~1.0.10" } }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==" - }, "ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", @@ -1749,6 +1500,11 @@ "yn": "3.1.1" } }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, "typescript": { "version": "4.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.3.tgz", @@ -1761,36 +1517,10 @@ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, - "unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", - "requires": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, - "utf-8-validate": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz", - "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==", - "optional": true, - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" }, "v8-compile-cache-lib": { "version": "3.0.1", @@ -1811,13 +1541,8 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "ws": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", - "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", - "requires": {} + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "xlsx": { "version": "0.18.5", diff --git a/Node/package.json b/Node/package.json index b9c076f..bb46a17 100644 --- a/Node/package.json +++ b/Node/package.json @@ -6,24 +6,24 @@ "scripts": { "build": "rimraf ./build && tsc", "start": "npm run build && node build/index.js", - "start:dev": "nodemon" + "dev": "nodemon" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "@types/node": "^18.7.18", + "@types/uuid": "^8.3.4", "nodemon": "^2.0.19", "rimraf": "^3.0.2", "ts-node": "^10.9.1", "typescript": "^4.8.3" }, "dependencies": { + "dotenv": "^16.0.3", "excel-date-to-js": "^1.1.5", - "kuzzle-sdk": "^7.10.1", - "pocketbase": "^0.7.0", - "read-excel-file": "^5.5.0", - "surrealdb.js": "^0.3.1", + "neo4j-driver": "^5.0.1", + "uuid": "^9.0.0", "xlsx": "^0.18.5" } } diff --git a/Node/src/convertToJson.ts b/Node/src/convertToJson.ts index e72062e..37058ab 100644 --- a/Node/src/convertToJson.ts +++ b/Node/src/convertToJson.ts @@ -1,25 +1,7 @@ -import reader from "xlsx"; import { getJsDateFromExcel } from "excel-date-to-js"; - -import { readdirSync, writeFileSync } from "fs"; +import { writeFileSync } from "fs"; import { join } from "path"; - -const excelPath = join(__dirname, "..", "..", "Excel"); - -const excelFiles = readdirSync(excelPath); - -const readExcel = (filePath: string) => { - let data: unknown[] = []; - const file = reader.readFile(filePath); - const sheets = file.SheetNames; - for (let i = 0; i < sheets.length; i++) { - const temp = reader.utils.sheet_to_json(file.Sheets[file.SheetNames[i]]); - temp.forEach((res) => { - data.push(res); - }); - } - return data; -}; +import excelData from "./excelToJson"; const recordsToJson = () => { let pacientiNr = 0; @@ -31,111 +13,105 @@ const recordsToJson = () => { let bariNr = 0; let records: any[] = []; - excelFiles.every((file) => { - if (!file.includes("raw_") && !file.includes("lock")) { - const excelFile = join(excelPath, file); - const data = readExcel(excelFile); - const klinika_emer = file.split("_")[0]; - klinikaNr++; - const klinika: any = { - nr: klinikaNr, - emer: klinika_emer, - shtrimi: [], - }; - data.every((record: any) => { - const emer = record.EMER; - const mbiemer = record.MBIEMER; - const mosha = record.MOSHA; - let gjinia = record.GJINIA; - let datelindja = record.DATELINDJA_KORIGJ; - let data_shtrimit = record.DT_SHTRIMI_KORIGJ; - let diagnozaRaw = record.DIAGNOZA; - let kodi_dg_icd_9Raw = record["Kodi DG ICD-9"]; - let dite_qendrimiRaw = record["DITE QENDRIMI NE SPITAL"]; - let trajtimiRaw = - record["TRAJTIMI SPITALOR Urgjence"] || - record["TRAJTIMI SPITALOR Pavion"]; - if (emer.trim() !== "" && mbiemer.trim() !== "") { - pacientiNr++; - try { - datelindja = getJsDateFromExcel(datelindja); - data_shtrimit = getJsDateFromExcel(data_shtrimit); - } catch (error) { - errorNr++; - // console.log(errorNr, pacientiNr, emer, mbiemer); - // return false; - } - let trajtimi = {}; - if (trajtimiRaw) { - trajtimiRaw = trajtimiRaw.trim(); - let barnatArr = trajtimiRaw.split("\n"); - barnatArr = barnatArr.map((bar: any) => { - bar = bar.trim(); - let obj: any = {}; - let bariRaw = bar.split(","); - if ( - bariRaw[0] === "" || - bariRaw[0] === "??" || - bariRaw[0] === "???" || - bariRaw[0] === "????" || - bariRaw[0] === "---" || - bariRaw[0] === "----" || - bariRaw[0] === "-----" - ) { - return; - } else { - bariNr++; - obj.bari = bariRaw[0]; - obj.sasia = null; - obj.nr = bariNr; - console.log(obj.bari); - return obj; - } - }); - trajtimiNr++; - trajtimi = { - nr: trajtimiNr, - trajtimi: barnatArr, - }; - } - let diagnoza = {}; - if (diagnozaRaw.trim()) { - diagnozaNr++; - diagnoza = { - nr: diagnozaNr, - emer: diagnozaRaw.trim(), - kodi_dg_icd_9: kodi_dg_icd_9Raw.trim(), - }; + const data = excelData(); + const klinika_emer = 'file.split("_")[0];' + klinikaNr++; + const klinika: any = { + nr: klinikaNr, + emer: klinika_emer, + shtrimi: [], + }; + data.every((record: any) => { + const emer = record.EMER; + const mbiemer = record.MBIEMER; + const mosha = record.MOSHA; + let gjinia = record.GJINIA; + let datelindja = record.DATELINDJA_KORIGJ; + let data_shtrimit = record.DT_SHTRIMI_KORIGJ; + let diagnozaRaw = record.DIAGNOZA; + let kodi_dg_icd_9Raw = record["Kodi DG ICD-9"]; + let dite_qendrimiRaw = record["DITE QENDRIMI NE SPITAL"]; + let trajtimiRaw = + record["TRAJTIMI SPITALOR Urgjence"] || + record["TRAJTIMI SPITALOR Pavion"]; + if (emer.trim() !== "" && mbiemer.trim() !== "") { + pacientiNr++; + try { + datelindja = getJsDateFromExcel(datelindja); + data_shtrimit = getJsDateFromExcel(data_shtrimit); + } catch (error) { + errorNr++; + // console.log(errorNr, pacientiNr, emer, mbiemer); + // return false; + } + let trajtimi = {}; + if (trajtimiRaw) { + trajtimiRaw = trajtimiRaw.trim(); + let barnatArr = trajtimiRaw.split("\n"); + barnatArr = barnatArr.map((bar: any) => { + bar = bar.trim(); + let obj: any = {}; + let bariRaw = bar.split(","); + if ( + bariRaw[0] === "" || + bariRaw[0] === "??" || + bariRaw[0] === "???" || + bariRaw[0] === "????" || + bariRaw[0] === "---" || + bariRaw[0] === "----" || + bariRaw[0] === "-----" + ) { + return; + } else { + bariNr++; + obj.bari = bariRaw[0]; + obj.sasia = null; + obj.nr = bariNr; + console.log(obj.bari); + return obj; } + }); + trajtimiNr++; + trajtimi = { + nr: trajtimiNr, + trajtimi: barnatArr, + }; + } + let diagnoza = {}; + if (diagnozaRaw.trim()) { + diagnozaNr++; + diagnoza = { + nr: diagnozaNr, + emer: diagnozaRaw.trim(), + kodi_dg_icd_9: kodi_dg_icd_9Raw.trim(), + }; + } - const pacienti = { - nr: pacientiNr, - emer: emer.trim(), - mbiemer: mbiemer.trim(), - mosha: mosha, - datelindja, - gjinia: gjinia, - }; - shtrimiNr++; - const shtrimi = { - nr: shtrimiNr, - data_shtrimit, - dite_qendrimi: parseInt(dite_qendrimiRaw), - pacienti, - diagnoza: diagnoza, - trajtimi, - }; - klinika.shtrimi.push(shtrimi); - } - return true; - }); - records.push(klinika); - console.log(`Mbaroi ${klinika_emer}`); + const pacienti = { + nr: pacientiNr, + emer: emer.trim(), + mbiemer: mbiemer.trim(), + mosha: mosha, + datelindja, + gjinia: gjinia, + }; + shtrimiNr++; + const shtrimi = { + nr: shtrimiNr, + data_shtrimit, + dite_qendrimi: parseInt(dite_qendrimiRaw), + pacienti, + diagnoza: diagnoza, + trajtimi, + }; + klinika.shtrimi.push(shtrimi); } return true; }); + records.push(klinika); + console.log(`Mbaroi ${klinika_emer}`); const jsonFile = join(__dirname, "..", "..", "JSON", "records.json"); writeFileSync(jsonFile, JSON.stringify(records)); }; -export default recordsToJson; +export { recordsToJson, excelData }; diff --git a/Node/src/excelToJson.ts b/Node/src/excelToJson.ts new file mode 100644 index 0000000..57897f2 --- /dev/null +++ b/Node/src/excelToJson.ts @@ -0,0 +1,29 @@ +import { join } from "path"; +import reader, { WorkBook, WorkSheet } from "xlsx"; +import { readdirSync } from "fs"; + +let excelPath = join(__dirname, "..", "..", "Excel"); +let excelFiles = readdirSync(excelPath); + +const excelData = () => { + return excelFiles.flatMap((fileName) => { + const filePath = join(excelPath, fileName); + if (!fileName.includes("raw_") && !fileName.includes("lock")) { + const klinika_emer = fileName.split("_")[0]; + const wb: WorkBook = reader.readFile(filePath); + const sheets: string[] = wb.SheetNames; + return sheets.flatMap((sheet: string) => { + const ws: WorkSheet = wb.Sheets[sheet]; + const data = reader.utils.sheet_to_json(ws); + return data.map((record: any) => { + record.klinika = klinika_emer; + return record; + }); + }); + } else { + return; + } + }); +}; + +export default excelData; diff --git a/Node/src/index.ts b/Node/src/index.ts index 58804c6..b141329 100644 --- a/Node/src/index.ts +++ b/Node/src/index.ts @@ -1,23 +1,10 @@ -// import { run } from "./kuzzle"; +// import { initDriver } from "./neo4j.driver"; +import createObjects from "./structureData"; +require("dotenv").config(); -import recordsToJson from "./convertToJson"; -recordsToJson(); -// (async () => { -// const kuzzle = await run(); -// if (kuzzle) { -// const credentials = { -// username: "julian.cuni", -// password: "MatraPaPuPa..11", -// }; -// try { -// const jwt = await kuzzle.auth.login("local", credentials); -// // const apiKey = await kuzzle.auth.createApiKey("Sigfox API key"); -// } catch (error: any) { -// console.error(error.message); -// } -// } -// })(); +// const { NEO4J_URL, NEO4J_USER, NEO4J_PASS } = process.env; // (async () => { -// await login(); +// await initDriver(NEO4J_URL!, NEO4J_USER!, NEO4J_PASS!); // })(); +createObjects(); diff --git a/Node/src/interfaces.ts b/Node/src/interfaces.ts new file mode 100644 index 0000000..b9167c2 --- /dev/null +++ b/Node/src/interfaces.ts @@ -0,0 +1,42 @@ +export interface Klinika { + id: string; + emer: string; + pacientet: Pacienti[], + diagnozat: Diagnoza[] +} +export interface Diagnoza { + id: string; + emer: string; + kodi_dg_icd_9: string[]; + pacientet: Pacienti[] +} +export interface Pacienti { + id: string; + emer: string; + mbiemer: string; + datelindja: Date; + mosha: number; + gjinia: string; +} + +export interface Shtrimi { + id: string; + date: Date; + dite_qendrimi: number; +} + + + +export interface Trajtimi { + id: string; + urgjence: boolean; + salle_lindje: boolean; + barnat: Bari[]; +} + +export interface Bari { + id: string; + emer: string; + njesia: string | null; + sasia: string | null; +} diff --git a/Node/src/kuzzle.ts b/Node/src/kuzzle.ts deleted file mode 100644 index e8ec486..0000000 --- a/Node/src/kuzzle.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Kuzzle, WebSocket, Http } from "kuzzle-sdk"; - -const kuzzle = new Kuzzle(new Http("localhost")); - -kuzzle.on("networkError", (error: any) => { - console.error("Network Error: ", error); -}); - -const run = async () => { - try { - // Connects to the Kuzzle server - await kuzzle.connect(); - // Creates an index - // await kuzzle.index.create("nyc-open-data"); - // // Creates a collection - // await kuzzle.collection.create("nyc-open-data", "yellow-taxi", {}); - // console.log("nyc-open-data/yellow-taxi ready!"); - return kuzzle; - } catch (error: any) { - console.error(error.message); - } -// finally { -// kuzzle.disconnect(); -// } - return null; -}; -export { run }; diff --git a/Node/src/neo4j.driver.ts b/Node/src/neo4j.driver.ts new file mode 100644 index 0000000..0d1fcfa --- /dev/null +++ b/Node/src/neo4j.driver.ts @@ -0,0 +1,13 @@ +import neo4j, { Driver } from "neo4j-driver"; + +let driver: Driver; + +export const initDriver = async (uri: string, username: string, password: string) => { + driver = neo4j.driver(uri, neo4j.auth.basic(username, password)); + await driver.getServerInfo(); + return driver; +}; + +export const getDriver = () => { + return driver; +} \ No newline at end of file diff --git a/Node/src/saveToNeo4j.ts b/Node/src/saveToNeo4j.ts new file mode 100644 index 0000000..e9fae52 --- /dev/null +++ b/Node/src/saveToNeo4j.ts @@ -0,0 +1,81 @@ +import { ManagedTransaction, QueryResult } from "neo4j-driver"; +import { Klinika, Pacienti } from "./interfaces"; +import { getDriver } from "./neo4j.driver"; + +export const findPacient = async (pacienti: Pacienti) => { + const driver = getDriver(); + const session = driver.session(); + + try { + const result: QueryResult = await session.executeRead( + (tx: ManagedTransaction) => { + return tx.run( + `MATCH (p:Pacienti) WHERE p.emer = $emer AND p.mbiemer = $mbiemer AND p.mosha = $mosha + RETURN p + `, + { + emer: pacienti.emer, + mbiemer: pacienti.mbiemer, + mosha: pacienti.mosha, + } + ); + } + ); + await session.close(); + return result; + } catch (error) { + console.error(error); + await session.close(); + return null; + } +}; + +export const findKlinika = async (klinika: Klinika) => { + const driver = getDriver(); + const session = driver.session(); + try { + const result: QueryResult = await session.executeRead( + (tx: ManagedTransaction) => { + return tx.run( + `OPTIONAL MATCH (k:Klinika) WHERE k.emer = $emer RETURN k IS NOT NULL AS Predicate + + `, + { + emer: klinika.emer, + } + ); + } + ); + await session.close(); + return result; + } catch (error) { + console.error(error); + await session.close(); + return null; + } +}; + +export const upsertKlinika = async (klinika: Klinika) => { + const klinikaFromDb = await findKlinika(klinika); + if (!klinikaFromDb?.records[0].get('Predicate')) { + const driver = getDriver(); + const session = driver.session(); + + try { + const result: QueryResult = await session.run( + `MERGE (k:Klinika {emer: $emer}) RETURN k + `, + { + emer: klinika.emer, + } + ); + await session.close(); + return result; + } catch (error) { + console.error(error); + await session.close(); + return null; + } + } + return klinikaFromDb; +}; diff --git a/Node/src/sdb.ts b/Node/src/sdb.ts deleted file mode 100644 index 4c20417..0000000 --- a/Node/src/sdb.ts +++ /dev/null @@ -1,37 +0,0 @@ -const Surreal = require("surrealdb.js"); - -const db = new Surreal("https://baas.microservices.al/rpc"); -async function main() { - try { - await db.use("fluxem", "fluxem"); - - const token = await db.signin({ - NS: "fluxem", - DB: "fluxem", - SC: "allusers", - email: "test@acme.com", - pass: "some password", - marketing: true, - tags: ["rust", "golang", "javascript"], - }); - - let created = await db.create("person", { - title: "Founder & CEO", - name: { - first: "Tobie", - last: "Morgan Hitchcock", - }, - marketing: true, - identifier: Math.random().toString(36).substr(2, 10), - }); - - // await db.invalidate(); - - // const res = await db.authenticate(token) - console.log("token", created); - } catch (e) { - console.error("ERROR", e); - } -} - -main(); diff --git a/Node/src/structureData.ts b/Node/src/structureData.ts new file mode 100644 index 0000000..683c123 --- /dev/null +++ b/Node/src/structureData.ts @@ -0,0 +1,172 @@ +import excelData from "./excelToJson"; +import { v4 as uuidv4 } from "uuid"; +import { getJsDateFromExcel } from "excel-date-to-js"; +import { + Klinika, + Pacienti, + Shtrimi, + Diagnoza, + Trajtimi, + Bari, +} from "./interfaces"; +// import { findPacient, upsertKlinika } from "./saveToNeo4j"; + +let klinikat: Klinika[] = []; +let pacientet: Pacienti[] = []; +let shtrimet: Shtrimi[] = []; +let diagnozat: Diagnoza[] = []; +let trajtimet: Trajtimi[] = []; +let barnat: Bari[] = []; + +const createObjects = () => { + let errorNr = 0; + let pacientiNr = 0; + + const data = excelData(); + data.every(async (record: any) => { + if (record && record["EMER"] && record["MBIEMER"]) { + let emerPacienti = record.EMER; + let mbiemerPacienti = record.MBIEMER; + let moshaPacienti = record.MOSHA; + let gjiniaPacienti = record.GJINIA; + let datelindjaPacienti = record.DATELINDJA_KORIGJ; + let klinikaEmer = record.klinika; + let dataEShtrimit = record.DT_SHTRIMI_KORIGJ; + let dite_qendrimi = record["DITE QENDRIMI NE SPITAL"]; + let diagnozaRaw = record.DIAGNOZA; + let kodi_dg_icd_9Raw = record["Kodi DG ICD-9"]; + let trajtimiUrgjence = record["TRAJTIMI SPITALOR Urgjence"]; + let trajtimiPavion = record["TRAJTIMI SPITALOR Pavion"]; + let trajtimiSalleLindje = record["TRAJTIMI SALLE LINDJE"]; + try { + datelindjaPacienti = getJsDateFromExcel(datelindjaPacienti); + dataEShtrimit = getJsDateFromExcel(dataEShtrimit); + } catch (error: any) { + datelindjaPacienti = null; + } + + let klinika: Klinika = { + id: uuidv4(), + emer: klinikaEmer.trim(), + pacientet: [], + diagnozat: [], + }; + insertKlinikaArr(klinika); + let pacienti: Pacienti = { + id: uuidv4(), + emer: emerPacienti.trim(), + mbiemer: mbiemerPacienti.trim(), + datelindja: datelindjaPacienti, + mosha: moshaPacienti, + gjinia: klinika.emer === "OBS-GYN" ? "F" : gjiniaPacienti.trim(), + }; + const newPacient = insertPacientiArr(pacienti); + klinika.pacientet.push(newPacient); + let diagnoza: Diagnoza = { + id: uuidv4(), + emer: diagnozaRaw.trim(), + kodi_dg_icd_9: kodi_dg_icd_9Raw ? kodi_dg_icd_9Raw.split("\n") : [], + pacientet: [], + }; + diagnoza.pacientet.push(newPacient); + const newDiagnoze = insertDiagnozaArr(diagnoza); + klinika.diagnozat.push(newDiagnoze); + let shtrimi: Shtrimi = { + id: uuidv4(), + date: dataEShtrimit, + dite_qendrimi: dite_qendrimi ? dite_qendrimi : null, + }; + shtrimet.push(shtrimi); + + if (trajtimiPavion) rregulloBarnat(trajtimiPavion); + if (trajtimiSalleLindje) rregulloBarnat(trajtimiSalleLindje); + if (trajtimiUrgjence) rregulloBarnat(trajtimiUrgjence); + let trajtimi: Trajtimi = { + id: uuidv4(), + salle_lindje: trajtimiSalleLindje ? true : false, + urgjence: trajtimiUrgjence ? true : false, + barnat: barnat, + }; + // return false; + } else { + // console.log(errorNr++, record); + } + return true; + }); + console.log(barnat.length); +}; + +const rregulloBarnat = (trajtimiRaw: any): Bari[] => { + let barnatRawArr = trajtimiRaw.split("\n"); + + return barnatRawArr.map((bar: any) => { + bar = bar.trim(); + let bariRaw = bar.split(","); + if ( + bariRaw[0] === "" || + bariRaw[0] === "??" || + bariRaw[0] === "???" || + bariRaw[0] === "????" || + bariRaw[0] === "---" || + bariRaw[0] === "----" || + bariRaw[0] === "-----" + ) { + return null; + } else { + let newBar: Bari = { + id: uuidv4(), + emer: bariRaw[0], + njesia: null, + sasia: null, + }; + const isFoundBari = barnat.some((bar) => { + if (newBar.emer === bar.emer) { + return true; + } + return false; + }); + if (!isFoundBari) { + barnat.push(newBar); + } + return newBar; + } + }); +}; + +const insertKlinikaArr = (klinika: Klinika) => { + const isFoundKlinika = klinikat.some((klinike) => { + if (klinika.emer === klinike.emer) { + return true; + } + return false; + }); + if (!isFoundKlinika) klinikat.push(klinika); + return klinika; +}; + +const insertPacientiArr = (pacienti: Pacienti) => { + const isFoundPacienti = pacientet.some((pacient) => { + if ( + pacienti.emer === pacient.emer && + pacienti.mbiemer === pacient.mbiemer + ) { + return true; + } + return false; + }); + if (!isFoundPacienti) pacientet.push(pacienti); + return pacienti; +}; + +const insertDiagnozaArr = (diagnoza: Diagnoza) => { + const isFoundDiagnoza = diagnozat.some((diagnoze) => { + if (diagnoza.emer === diagnoze.emer) { + return true; + } + return false; + }); + if (!isFoundDiagnoza) diagnozat.push(diagnoza); + return diagnoza; +}; + +export default createObjects;