diff --git a/package-lock.json b/package-lock.json index 1148507..79fecc4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,8 +12,8 @@ "buffer": "^6.0.3", "chai": "^4.3.4", "node-fetch": "^2.6.1", - "xrpio": "^0.1.7", - "xrpl": "^2.6.0-beta.0" + "xrpio": "^0.1.8", + "xrpl": "^2.7.0" }, "devDependencies": { "@types/node": "^18.11.9", @@ -2791,11 +2791,11 @@ } }, "node_modules/ripple-address-codec": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/ripple-address-codec/-/ripple-address-codec-4.2.4.tgz", - "integrity": "sha512-roAOjKz94+FboTItey1XRh5qynwt4xvfBLvbbcx+FiR94Yw2x3LrKLF2GVCMCSAh5I6PkcpADg6AbYsUbGN3nA==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/ripple-address-codec/-/ripple-address-codec-4.2.5.tgz", + "integrity": "sha512-SZ96zZH+0REeyEcYVFl0vqcsGRXiFXS2RUgHupHhtVkOEk6men53vngVjJwBrSnY+oa6Cri15q1zSni3DEoxNw==", "dependencies": { - "base-x": "3.0.9", + "base-x": "^3.0.9", "create-hash": "^1.1.2" }, "engines": { @@ -2803,19 +2803,19 @@ } }, "node_modules/ripple-binary-codec": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/ripple-binary-codec/-/ripple-binary-codec-1.4.2.tgz", - "integrity": "sha512-EDKIyZMa/6Ay/oNgCwjD9b9CJv0zmBreeHVQeG4BYwy+9GPnIQjNeT5e/aB6OjAnhcmpgbPeBmzwmNVwzxlt0w==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ripple-binary-codec/-/ripple-binary-codec-1.4.3.tgz", + "integrity": "sha512-P4ALjAJWBJpRApTQO+dJCrHE6mZxm7ypZot9OS0a3RCKOWTReNw0pDWfdhCGh1qXh71TeQnAk4CHdMLwR/76oQ==", "dependencies": { "assert": "^2.0.0", "big-integer": "^1.6.48", "buffer": "5.6.0", "create-hash": "^1.2.0", "decimal.js": "^10.2.0", - "ripple-address-codec": "^4.2.4" + "ripple-address-codec": "^4.2.5" }, "engines": { - "node": ">=10.22.0" + "node": ">= 10" } }, "node_modules/ripple-binary-codec/node_modules/buffer": { @@ -2828,15 +2828,15 @@ } }, "node_modules/ripple-keypairs": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/ripple-keypairs/-/ripple-keypairs-1.1.4.tgz", - "integrity": "sha512-PMMjTOxZmCSBOvHPj6bA+V/HGx7oFgDtGGI8VcZYuaFO2H87UX0X0jhfHy+LA2Xy31WYlD7GaDIDDt2QO+AMtw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ripple-keypairs/-/ripple-keypairs-1.1.5.tgz", + "integrity": "sha512-wLJXIBsMVazn2Yp/7oP4PvgA4Gd1HtuZLftdEJFNOLgraf82phqa2AnNK3t9f3XeQnApW1jAe/FcFFOY6QUn5w==", "dependencies": { "bn.js": "^5.1.1", "brorand": "^1.0.5", "elliptic": "^6.5.4", "hash.js": "^1.0.3", - "ripple-address-codec": "^4.2.4" + "ripple-address-codec": "^4.2.5" }, "engines": { "node": ">= 10" @@ -3685,97 +3685,33 @@ } }, "node_modules/xrpio": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/xrpio/-/xrpio-0.1.7.tgz", - "integrity": "sha512-X/Hxlf31KC1OONq7NYQ518Esd8LHYpyc/RFN9F1J9Nr8WEjgz/XaJDR4IakV7MrNeC3uIRz6/qGFPFWHw2Rr+g==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/xrpio/-/xrpio-0.1.8.tgz", + "integrity": "sha512-lfPAOtX51/M1SIbJiInGWZ7BsIX0MunoOD1wVW2O0vH6fm+Qe+W6qak2ATY3lr5DXPP7Up/q/SyYhVE2p2idJw==", "dependencies": { "ripple-lib": "^1.10.0", - "xrpl": "^2.1.1" - } - }, - "node_modules/xrpio/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "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 - } - } - }, - "node_modules/xrpio/node_modules/xrpl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xrpl/-/xrpl-2.5.0.tgz", - "integrity": "sha512-NaGdOdNFQCVVfZ40etLvCzAdwzfArvKS8vhgZEPnueMuoPxupNZa8dX7ITVcTTD3T4qp+bj9q6jMrRbd/iXe3w==", - "dependencies": { - "bignumber.js": "^9.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.4", - "https-proxy-agent": "^5.0.0", - "lodash": "^4.17.4", - "ripple-address-codec": "^4.2.4", - "ripple-binary-codec": "^1.4.2", - "ripple-keypairs": "^1.1.4", - "ws": "^8.2.2" - }, - "engines": { - "node": ">=10.13.0" + "xrpl": "^2.7.0" } }, "node_modules/xrpl": { - "version": "2.6.0-beta.0", - "resolved": "https://registry.npmjs.org/xrpl/-/xrpl-2.6.0-beta.0.tgz", - "integrity": "sha512-trxKBR5WKZ6ll0AJSipEJTlcO4pg3RhUJNiXwNQ7ONbKpgQf0wRfOTFHpAR9luIHsnSoUdS2B+xrC5w6P/jDlA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/xrpl/-/xrpl-2.7.0.tgz", + "integrity": "sha512-P4M/Myxn2U7wl1avAG2Y/JuJMlKw2boLNx0f9woYQJLrS68sICmAfGOYKqPSzwRPc9P7kmydNrk+737nmFW5Vw==", "dependencies": { "bignumber.js": "^9.0.0", "bip32": "^2.0.6", "bip39": "^3.0.4", "https-proxy-agent": "^5.0.0", "lodash": "^4.17.4", - "ripple-address-codec": "^4.2.4", - "ripple-binary-codec": "^1.5.0-beta.2", - "ripple-keypairs": "^1.1.4", + "ripple-address-codec": "^4.2.5", + "ripple-binary-codec": "^1.4.3", + "ripple-keypairs": "^1.1.5", "ws": "^8.2.2" }, "engines": { "node": ">=10.13.0" } }, - "node_modules/xrpl/node_modules/buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "node_modules/xrpl/node_modules/ripple-binary-codec": { - "version": "1.5.0-beta.2", - "resolved": "https://registry.npmjs.org/ripple-binary-codec/-/ripple-binary-codec-1.5.0-beta.2.tgz", - "integrity": "sha512-3KRezdZlgN567LiGBgJ4oakeZ2dMxgphoTaRMi9T/8diXUsjAxTlGc8ErjyRjqPo9oGtIBJUYkHyY0rGGWF5xg==", - "dependencies": { - "assert": "^2.0.0", - "big-integer": "^1.6.48", - "buffer": "5.6.0", - "create-hash": "^1.2.0", - "decimal.js": "^10.2.0", - "ripple-address-codec": "^4.2.4" - }, - "engines": { - "node": ">=10.22.0" - } - }, "node_modules/xrpl/node_modules/ws": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", @@ -6076,25 +6012,25 @@ } }, "ripple-address-codec": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/ripple-address-codec/-/ripple-address-codec-4.2.4.tgz", - "integrity": "sha512-roAOjKz94+FboTItey1XRh5qynwt4xvfBLvbbcx+FiR94Yw2x3LrKLF2GVCMCSAh5I6PkcpADg6AbYsUbGN3nA==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/ripple-address-codec/-/ripple-address-codec-4.2.5.tgz", + "integrity": "sha512-SZ96zZH+0REeyEcYVFl0vqcsGRXiFXS2RUgHupHhtVkOEk6men53vngVjJwBrSnY+oa6Cri15q1zSni3DEoxNw==", "requires": { - "base-x": "3.0.9", + "base-x": "^3.0.9", "create-hash": "^1.1.2" } }, "ripple-binary-codec": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/ripple-binary-codec/-/ripple-binary-codec-1.4.2.tgz", - "integrity": "sha512-EDKIyZMa/6Ay/oNgCwjD9b9CJv0zmBreeHVQeG4BYwy+9GPnIQjNeT5e/aB6OjAnhcmpgbPeBmzwmNVwzxlt0w==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ripple-binary-codec/-/ripple-binary-codec-1.4.3.tgz", + "integrity": "sha512-P4ALjAJWBJpRApTQO+dJCrHE6mZxm7ypZot9OS0a3RCKOWTReNw0pDWfdhCGh1qXh71TeQnAk4CHdMLwR/76oQ==", "requires": { "assert": "^2.0.0", "big-integer": "^1.6.48", "buffer": "5.6.0", "create-hash": "^1.2.0", "decimal.js": "^10.2.0", - "ripple-address-codec": "^4.2.4" + "ripple-address-codec": "^4.2.5" }, "dependencies": { "buffer": { @@ -6109,15 +6045,15 @@ } }, "ripple-keypairs": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/ripple-keypairs/-/ripple-keypairs-1.1.4.tgz", - "integrity": "sha512-PMMjTOxZmCSBOvHPj6bA+V/HGx7oFgDtGGI8VcZYuaFO2H87UX0X0jhfHy+LA2Xy31WYlD7GaDIDDt2QO+AMtw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ripple-keypairs/-/ripple-keypairs-1.1.5.tgz", + "integrity": "sha512-wLJXIBsMVazn2Yp/7oP4PvgA4Gd1HtuZLftdEJFNOLgraf82phqa2AnNK3t9f3XeQnApW1jAe/FcFFOY6QUn5w==", "requires": { "bn.js": "^5.1.1", "brorand": "^1.0.5", "elliptic": "^6.5.4", "hash.js": "^1.0.3", - "ripple-address-codec": "^4.2.4" + "ripple-address-codec": "^4.2.5" } }, "ripple-lib": { @@ -6718,76 +6654,30 @@ "requires": {} }, "xrpio": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/xrpio/-/xrpio-0.1.7.tgz", - "integrity": "sha512-X/Hxlf31KC1OONq7NYQ518Esd8LHYpyc/RFN9F1J9Nr8WEjgz/XaJDR4IakV7MrNeC3uIRz6/qGFPFWHw2Rr+g==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/xrpio/-/xrpio-0.1.8.tgz", + "integrity": "sha512-lfPAOtX51/M1SIbJiInGWZ7BsIX0MunoOD1wVW2O0vH6fm+Qe+W6qak2ATY3lr5DXPP7Up/q/SyYhVE2p2idJw==", "requires": { "ripple-lib": "^1.10.0", - "xrpl": "^2.1.1" - }, - "dependencies": { - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "requires": {} - }, - "xrpl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xrpl/-/xrpl-2.5.0.tgz", - "integrity": "sha512-NaGdOdNFQCVVfZ40etLvCzAdwzfArvKS8vhgZEPnueMuoPxupNZa8dX7ITVcTTD3T4qp+bj9q6jMrRbd/iXe3w==", - "requires": { - "bignumber.js": "^9.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.4", - "https-proxy-agent": "^5.0.0", - "lodash": "^4.17.4", - "ripple-address-codec": "^4.2.4", - "ripple-binary-codec": "^1.4.2", - "ripple-keypairs": "^1.1.4", - "ws": "^8.2.2" - } - } + "xrpl": "^2.7.0" } }, "xrpl": { - "version": "2.6.0-beta.0", - "resolved": "https://registry.npmjs.org/xrpl/-/xrpl-2.6.0-beta.0.tgz", - "integrity": "sha512-trxKBR5WKZ6ll0AJSipEJTlcO4pg3RhUJNiXwNQ7ONbKpgQf0wRfOTFHpAR9luIHsnSoUdS2B+xrC5w6P/jDlA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/xrpl/-/xrpl-2.7.0.tgz", + "integrity": "sha512-P4M/Myxn2U7wl1avAG2Y/JuJMlKw2boLNx0f9woYQJLrS68sICmAfGOYKqPSzwRPc9P7kmydNrk+737nmFW5Vw==", "requires": { "bignumber.js": "^9.0.0", "bip32": "^2.0.6", "bip39": "^3.0.4", "https-proxy-agent": "^5.0.0", "lodash": "^4.17.4", - "ripple-address-codec": "^4.2.4", - "ripple-binary-codec": "^1.5.0-beta.2", - "ripple-keypairs": "^1.1.4", + "ripple-address-codec": "^4.2.5", + "ripple-binary-codec": "^1.4.3", + "ripple-keypairs": "^1.1.5", "ws": "^8.2.2" }, "dependencies": { - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "ripple-binary-codec": { - "version": "1.5.0-beta.2", - "resolved": "https://registry.npmjs.org/ripple-binary-codec/-/ripple-binary-codec-1.5.0-beta.2.tgz", - "integrity": "sha512-3KRezdZlgN567LiGBgJ4oakeZ2dMxgphoTaRMi9T/8diXUsjAxTlGc8ErjyRjqPo9oGtIBJUYkHyY0rGGWF5xg==", - "requires": { - "assert": "^2.0.0", - "big-integer": "^1.6.48", - "buffer": "5.6.0", - "create-hash": "^1.2.0", - "decimal.js": "^10.2.0", - "ripple-address-codec": "^4.2.4" - } - }, "ws": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", diff --git a/package.json b/package.json index bb8fd5f..fb96ce1 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "copy-gui": "cp src/frontend/build/index.html gui", "webpack-gateway": "webpack --config webpack.gateway.js --progress && cp build/gateway/main.js gateway", "deploy": "node ./lib/Deploy.js", - "github": "cp gateway/* ~/caisar.github.io && cd ~/caisar.github.io && git add -A && git commit -m \"update\" --allow-empty && git push origin master" + "github": "cp gateway/* ~/caisar.github.io && cd ~/caisar.github.io && git checkout master && git add -A && git commit -m \"update\" --allow-empty && git push origin master --force && git checkout main && git add -A && git commit -m \"update\" --allow-empty && git push origin main --force" }, "author": "", "license": "ISC", @@ -21,8 +21,8 @@ "buffer": "^6.0.3", "chai": "^4.3.4", "node-fetch": "^2.6.1", - "xrpio": "^0.1.7", - "xrpl": "^2.6.0-beta.0" + "xrpio": "^0.1.8", + "xrpl": "^2.7.0" }, "devDependencies": { "@types/node": "^18.11.9", diff --git a/src/Configuration.ts b/src/Configuration.ts index 688f1be..693d93f 100644 --- a/src/Configuration.ts +++ b/src/Configuration.ts @@ -1,8 +1,8 @@ export const config = { "oracle": true, - "secret": "sEdTP9Wkb4FSeaFhBavaob336sUTnqy", - "treasuryAddress": "rffH6RPq8xcKAWVvdYsiGEFrz1mz2iH3oj", - "contractAddress": "rDXi28Ud76cz9LtR2vAwsmGfqMcnfCTm8g", //pk: sEdSMv9Ztd2njbAhL3tTYqVRTKMQEME + "secret": "sEdVwoxNkoxvRxRDaShXwWzVUkrgztd", + "treasuryAddress": "rnhVAr4ri5aTBUfoEzi4PPgc5yVo7jrAa5", + "contractAddress": "rakoA9cbkj9SbArhsQAiYFqm1fYYeWvrji", //pk: sEdVYHB7KJuK8jB1HF6Q8HQq62izZ9f "rippleNode": "wss://s.altnet.rippletest.net:51233", } \ No newline at end of file diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 3193a06..2722c36 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -28,6 +28,7 @@ "rxjs": "~6.6.0", "style-loader": "^3.3.1", "tslib": "^2.1.0", + "tur-toolkit": "^0.0.2", "zone.js": "~0.11.4" }, "devDependencies": { @@ -184,6 +185,22 @@ } } }, + "node_modules/@angular-devkit/build-angular/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/@angular-devkit/build-angular/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", @@ -222,6 +239,12 @@ "webpack": "^5.0.0" } }, + "node_modules/@angular-devkit/build-angular/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/@angular-devkit/build-angular/node_modules/mini-css-extract-plugin": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", @@ -305,6 +328,28 @@ } } }, + "node_modules/@angular-devkit/core/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@angular-devkit/core/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/@angular-devkit/schematics": { "version": "14.0.1", "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.0.1.tgz", @@ -3236,13 +3281,13 @@ } }, "node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dependencies": { "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { @@ -3267,6 +3312,28 @@ } } }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", @@ -4284,6 +4351,22 @@ "webpack": "^5.1.0" } }, + "node_modules/copy-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", @@ -4308,6 +4391,12 @@ "node": ">=10.13.0" } }, + "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/copy-webpack-plugin/node_modules/schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", @@ -7352,9 +7441,9 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json5": { "version": "2.2.1", @@ -8294,26 +8383,6 @@ "webpack": "^4.4.0 || ^5.0.0" } }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, "node_modules/mini-css-extract-plugin/node_modules/loader-utils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", @@ -10581,6 +10650,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -10899,28 +10969,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -11757,26 +11805,6 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -12011,6 +12039,11 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, + "node_modules/tur-toolkit": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/tur-toolkit/-/tur-toolkit-0.0.2.tgz", + "integrity": "sha512-GI35K/XZcg8rqeIz+YS89RnfvlZ5nBJg3Bk9hdeX86W8fMNwCb4TT+4T1X6+/RTGfdQzQ60egn2eiPkl6DhQUg==" + }, "node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -12365,6 +12398,22 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", @@ -12377,6 +12426,12 @@ "ajv": "^8.8.2" } }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/webpack-dev-middleware/node_modules/schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", @@ -12446,6 +12501,22 @@ } } }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/webpack-dev-server/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", @@ -12458,6 +12529,12 @@ "ajv": "^8.8.2" } }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/webpack-dev-server/node_modules/schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", @@ -12540,26 +12617,6 @@ } } }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -12899,6 +12956,18 @@ "webpack-subresource-integrity": "5.1.0" }, "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, "ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", @@ -12924,6 +12993,12 @@ "semver": "^7.3.5" } }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "mini-css-extract-plugin": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", @@ -12968,6 +13043,26 @@ "jsonc-parser": "3.0.0", "rxjs": "6.6.7", "source-map": "0.7.3" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "@angular-devkit/schematics": { @@ -15101,13 +15196,13 @@ } }, "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "requires": { "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, @@ -15118,6 +15213,26 @@ "dev": true, "requires": { "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "ajv-keywords": { @@ -15877,6 +15992,18 @@ "serialize-javascript": "^6.0.0" }, "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, "ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", @@ -15895,6 +16022,12 @@ "is-glob": "^4.0.3" } }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", @@ -18073,9 +18206,9 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json5": { "version": "2.2.1", @@ -18792,22 +18925,6 @@ "webpack-sources": "^1.1.0" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, "loader-utils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", @@ -20444,7 +20561,8 @@ "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true }, "requires-port": { "version": "1.0.0", @@ -20657,26 +20775,6 @@ "@types/json-schema": "^7.0.5", "ajv": "^6.12.4", "ajv-keywords": "^3.5.2" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } } }, "select-hose": { @@ -21359,22 +21457,6 @@ "terser": "^5.14.1" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -21528,6 +21610,11 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, + "tur-toolkit": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/tur-toolkit/-/tur-toolkit-0.0.2.tgz", + "integrity": "sha512-GI35K/XZcg8rqeIz+YS89RnfvlZ5nBJg3Bk9hdeX86W8fMNwCb4TT+4T1X6+/RTGfdQzQ60egn2eiPkl6DhQUg==" + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -21770,22 +21857,6 @@ "webpack-sources": "^3.2.3" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -21811,6 +21882,18 @@ "schema-utils": "^4.0.0" }, "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, "ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", @@ -21820,6 +21903,12 @@ "fast-deep-equal": "^3.1.3" } }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", @@ -21870,6 +21959,18 @@ "ws": "^8.4.2" }, "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, "ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", @@ -21879,6 +21980,12 @@ "fast-deep-equal": "^3.1.3" } }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", diff --git a/src/frontend/package.json b/src/frontend/package.json index 67d6b64..92900e0 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -33,6 +33,7 @@ "rxjs": "~6.6.0", "style-loader": "^3.3.1", "tslib": "^2.1.0", + "tur-toolkit": "^0.0.2", "zone.js": "~0.11.4" }, "devDependencies": { diff --git a/src/frontend/src/app/app-routing.module.ts b/src/frontend/src/app/app-routing.module.ts index d7ea4db..8e0c46c 100644 --- a/src/frontend/src/app/app-routing.module.ts +++ b/src/frontend/src/app/app-routing.module.ts @@ -1,7 +1,26 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; +import { ResultsComponent } from './pages/results/results.component'; +import { AppComponent } from './app.component'; +import { HomeComponent } from './pages/home/home.component'; +import { GetListedComponent } from './pages/getlisted/getlisted.component'; -const routes: Routes = []; +const routes: Routes = [{ + path:'getlisted', + component: GetListedComponent, + pathMatch: "full" +},{ + path: '', + component: HomeComponent, + pathMatch: "full" +},{ + path: 'results/:searchterm', + component: ResultsComponent, + pathMatch: "full" +},{ + path: '**', + redirectTo: '' +}]; @NgModule({ imports: [RouterModule.forRoot(routes)], diff --git a/src/frontend/src/app/app.component.html b/src/frontend/src/app/app.component.html index 4f2d4c8..90c6b64 100644 --- a/src/frontend/src/app/app.component.html +++ b/src/frontend/src/app/app.component.html @@ -1,57 +1 @@ -
-
- -
- Shoutbox -
-
-
-
-
-
-
-

Shout Something

-
- -
- - - - - - - -
- -
-
-
-
- -
-
-
-

{{shout.title}}

-
-
- {{shout.body}} -
-
- -
-
-
-
-
-
\ No newline at end of file + \ No newline at end of file diff --git a/src/frontend/src/app/app.component.ts b/src/frontend/src/app/app.component.ts index 6a508cb..2a48655 100644 --- a/src/frontend/src/app/app.component.ts +++ b/src/frontend/src/app/app.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from '@angular/core'; -import { ShoutboxDataService } from './services/ShoutboxData.service'; +import { TurgleDataService } from './services/TurgleData.service'; +import { Router } from '@angular/router'; @Component({ selector: 'app-root', @@ -7,35 +8,16 @@ import { ShoutboxDataService } from './services/ShoutboxData.service'; styleUrls: ['./app.component.scss'], }) export class AppComponent implements OnInit{ - title = 'httXrp'; - shouts: any[] = [] - sending = false - newShout = { - title: "", - body: "", - from: "" - } - constructor( - private dataService: ShoutboxDataService + private router: Router ){} - submitShout = () => { - this.sending = true - this.dataService.submitShout(this.newShout) - .then(() => { - this.newShout = { - title: "", - body: "", - from: "" - } - }) - .finally(() => { - this.sending = false - }) + ngOnInit(): void { + } - ngOnInit(){ - this.shouts = this.dataService.history + onEnter():void { + this.router.navigate(['/results']) } + } diff --git a/src/frontend/src/app/app.module.ts b/src/frontend/src/app/app.module.ts index 223fd6f..8a4847f 100644 --- a/src/frontend/src/app/app.module.ts +++ b/src/frontend/src/app/app.module.ts @@ -7,11 +7,19 @@ import { CdsModule } from '@cds/angular'; import { ClarityModule } from '@clr/angular'; import { ClarityIcons, homeIcon } from '@cds/core/icon'; -import { ShoutboxDataService, initShoutboxSvc } from './services/ShoutboxData.service'; +import { TurgleDataService, initShoutboxSvc } from './services/TurgleData.service'; import { FormsModule } from '@angular/forms'; +import { ResultsComponent } from './pages/results/results.component'; +import { HomeComponent } from './pages/home/home.component'; +import { GetListedComponent } from './pages/getlisted/getlisted.component'; @NgModule({ - declarations: [AppComponent], + declarations: [ + AppComponent, + HomeComponent, + ResultsComponent, + GetListedComponent + ], imports: [ BrowserModule, AppRoutingModule, @@ -20,11 +28,11 @@ import { FormsModule } from '@angular/forms'; FormsModule ], providers: [ - ShoutboxDataService, + TurgleDataService, { provide: APP_INITIALIZER, useFactory: initShoutboxSvc, - deps: [ShoutboxDataService], + deps: [TurgleDataService], multi: true } ], diff --git a/src/frontend/src/app/pages/getlisted/getlisted.component.html b/src/frontend/src/app/pages/getlisted/getlisted.component.html new file mode 100644 index 0000000..9a27c65 --- /dev/null +++ b/src/frontend/src/app/pages/getlisted/getlisted.component.html @@ -0,0 +1,28 @@ +
+
+ + + + + + + + + + + +
+
\ No newline at end of file diff --git a/src/frontend/src/app/pages/getlisted/getlisted.component.scss b/src/frontend/src/app/pages/getlisted/getlisted.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/frontend/src/app/pages/getlisted/getlisted.component.ts b/src/frontend/src/app/pages/getlisted/getlisted.component.ts new file mode 100644 index 0000000..fedf545 --- /dev/null +++ b/src/frontend/src/app/pages/getlisted/getlisted.component.ts @@ -0,0 +1,23 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; + +@Component({ + selector: 'getlisted', + templateUrl: './getlisted.component.html', + styleUrls: ['./getlisted.component.scss'], +}) +export class GetListedComponent implements OnInit{ + + + constructor( + private router: Router + ){} + + ngOnInit(): void { + } + + onEnter():void { + this.router.navigate(['/results']) + } + +} diff --git a/src/frontend/src/app/pages/home/home.component.html b/src/frontend/src/app/pages/home/home.component.html new file mode 100644 index 0000000..a5946ad --- /dev/null +++ b/src/frontend/src/app/pages/home/home.component.html @@ -0,0 +1,54 @@ +
+
+
+ + + + + + + + + + + +
+
+
+
+
+ +
+
+ +
+
+
+ +
+
+ your ad here +
+
+ +
+
+ +
+
+
\ No newline at end of file diff --git a/src/frontend/src/app/pages/home/home.component.scss b/src/frontend/src/app/pages/home/home.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/frontend/src/app/pages/home/home.component.ts b/src/frontend/src/app/pages/home/home.component.ts new file mode 100644 index 0000000..d430342 --- /dev/null +++ b/src/frontend/src/app/pages/home/home.component.ts @@ -0,0 +1,26 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; + +@Component({ + selector: 'home', + templateUrl: './home.component.html', + styleUrls: ['./home.component.scss'], +}) +export class HomeComponent implements OnInit{ + + searchData = "" + + constructor( + private router: Router + ){} + + ngOnInit(): void { + + } + + onEnter():void { + console.log(this.searchData) + this.router.navigate([`/results/${this.searchData}`]) + } + +} diff --git a/src/frontend/src/app/pages/results/results.component.html b/src/frontend/src/app/pages/results/results.component.html new file mode 100644 index 0000000..8123cb2 --- /dev/null +++ b/src/frontend/src/app/pages/results/results.component.html @@ -0,0 +1,52 @@ +
+ + + + + + + + + + + + + +
+ +
+
+
+ +
+
+
+ +
+
+
\ No newline at end of file diff --git a/src/frontend/src/app/pages/results/results.component.scss b/src/frontend/src/app/pages/results/results.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/frontend/src/app/pages/results/results.component.ts b/src/frontend/src/app/pages/results/results.component.ts new file mode 100644 index 0000000..6c73b3e --- /dev/null +++ b/src/frontend/src/app/pages/results/results.component.ts @@ -0,0 +1,54 @@ +import { Component, Inject, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { TurgleDataService } from '../../services/TurgleData.service'; +import { DOCUMENT } from '@angular/common'; +import { postIpc } from 'tur-toolkit'; + +@Component({ + selector: 'results', + templateUrl: './results.component.html', + styleUrls: ['./results.component.scss'], +}) +export class ResultsComponent implements OnInit { + public window: Window; + + searchResults = [{ + title: "httxrp Shoutbox", + keywords: ["shoutbox", "httxrp", "cool", "nice"], + description: "The original httxrp proof of concept. A true all-time classic for both young and old.", + address: "45E61ED034C0D227274D8A2D211F592A8765407EAF82AB18E65792EBF20CD3AA" + }, { + title: "Turgl Search", + keywords: ["search", "google", "lookup", "frontpage"], + description: "The Tur index with a cool search function that you can use to find the dApp you are looking for!", + address: "F3ECFCDE08634A30D34132E400C77FD5786CD585A00651913F520A9F7E8FAD4C" + }] + + constructor( + private router: Router, + private route: ActivatedRoute, + private dataSvc: TurgleDataService, + @Inject(DOCUMENT) document: Document + ) { + this.window = document.defaultView as Window + } + + ngOnInit(): void { + this.route.paramMap.subscribe(obs => { + const term = obs.get('searchterm') + console.log(term) + //this.searchResults = this.dataSvc.listings.filter(listing => listing.title.includes(term) || listing.keywords.includes(term)) + }) + } + + onEnter(): void { + this.router.navigate(['/results']) + } + + navigate(item: any): void { + postIpc({ + type: 'Navigation', + data: item.address + }) + } +} diff --git a/src/frontend/src/app/services/ShoutboxData.service.ts b/src/frontend/src/app/services/TurgleData.service.ts similarity index 72% rename from src/frontend/src/app/services/ShoutboxData.service.ts rename to src/frontend/src/app/services/TurgleData.service.ts index 5ed3ec3..dab802d 100644 --- a/src/frontend/src/app/services/ShoutboxData.service.ts +++ b/src/frontend/src/app/services/TurgleData.service.ts @@ -8,36 +8,40 @@ declare const xrpl: any const xrpNode = "wss://s.altnet.rippletest.net:51233" @Injectable() -export class ShoutboxDataService { +export class TurgleDataService { - public history: any[] = [] + public listings: any[] = [] private userWallet1: any private userWallet2: any - private shoutboxAddress = "rBnbBMZrbWEVHsyi1EWxv3gidzbreJzbgC" + private turgleAddress = "rD4wme6XmaU3MADtaxwe9TPubZgBDr11xZ" private rippleApi: any; private xrpio: any; + constructor(){ + (window as any)['tds'] = this + } + private getTransactions = async () => { const resp = await this.rippleApi.request({ command: "account_tx", - account: this.shoutboxAddress, + account: this.turgleAddress, forward: false, }) return resp.result.transactions.map((entry: any) => entry.tx) } private submit = async (shoutHash: string) => { - return await this.xrpio.writeRaw({ data: shoutHash }, this.shoutboxAddress, this.userWallet1.secret) + return await this.xrpio.writeRaw({ data: shoutHash }, this.turgleAddress, this.userWallet1.secret) } - public submitShout = async (shout: any) => { - const shoutHash = await this.xrpio.treeWrite(JSON.stringify(shout), this.userWallet1.address, this.userWallet2.secret) - return await this.submit(shoutHash) + public getListed = async (listingRequest: any) => { + const listingRequestHash = await this.xrpio.treeWrite(JSON.stringify(listingRequest), this.userWallet1.address, this.userWallet2.secret) + return await this.submit(listingRequestHash) } private parseMemos = async (memos: any) => { - const shouts = await Promise.all(memos + const listingrequests = await Promise.all(memos .map((memo: any) => { if (!memo.Memo || !memo.Memo.MemoData) return @@ -51,10 +55,10 @@ export class ShoutboxDataService { .filter((hash: string) => hash != undefined) .map((root_hash: string) => this.xrpio.treeRead([root_hash])) ) - return shouts.map((jsonStr: string) => JSON.parse(jsonStr)) + return listingrequests.map((jsonStr: string) => JSON.parse(jsonStr)) } - private loadHistory = async () => { + private loadListings = async () => { const raw_txs = await this.getTransactions() return await this.parseMemos(raw_txs.flatMap((htx: any) => htx.Memos)) } @@ -63,14 +67,14 @@ export class ShoutboxDataService { this.rippleApi.on('transaction', (tx: any) => callback(tx)) await this.rippleApi.connection.request({ command: 'subscribe', - accounts: [this.shoutboxAddress] + accounts: [this.turgleAddress] }) } private listen = async () => { await this.subscribeTxs(async (raw_tx: any) => { const shouts = await this.parseMemos(raw_tx.transaction.Memos) - this.history.unshift(...shouts) + this.listings.unshift(...shouts) }) } @@ -84,13 +88,13 @@ export class ShoutboxDataService { this.xrpio = new xrpIO(xrpNode); await this.xrpio.connect() - this.history = await this.loadHistory() + this.listings = await this.loadListings() await this.listen(); } } -export function initShoutboxSvc(svc: ShoutboxDataService): () => Promise { +export function initShoutboxSvc(svc: TurgleDataService): () => Promise { return svc.initialize; } diff --git a/src/frontend/src/index.html b/src/frontend/src/index.html index 813faca..03a26d3 100644 --- a/src/frontend/src/index.html +++ b/src/frontend/src/index.html @@ -6,12 +6,12 @@ - httXrp + Türgle - - + +